ZipMVS用自适应深度假设压缩代价体,DTU整体误差0.327 mm

ZipMVS: Multi-View Stereo with Compressed Cost Volumes

Guanglin Jin, Hongshan Yu, Javier Civera, Zhaoxin Li

cs.CV

2026-08-28

ZipMVS用可微分的深度范围网络和GRU推测器,把较细层的深度假设压到四个再加一个。DTU整体误差0.327毫米,五视图显存1322兆,介于IterMVS与CasMVSNet之间。

这篇在解决什么

多视图立体(MVS)靠平面扫描代价体做对应,体是 C×D×H×W,三维卷积一上,嵌入式平台显存就炸。省显存的常见路子是迭代细化(PatchmatchNet、IterMVS)或二分搜索式深度采样(GBi-Net)。问题是:不靠每层反复搜,只用很少的深度样本,能不能保住重建质量。

粗到细级联有个老毛病:粗层错了,后面只在窄区间里修,逃不出去。PatchmatchNet 用邻域传播补过一刀。这篇把假设生成说成两种策略:保守的,沿粗层估计往里收;探索的,向邻居要备选深度,躲开粗层局部最小。

方法

三级 FPN,通道 16/32/64。最粗层在全深度范围均匀采 48 个假设。细两层各 4 个自适应样本,再加 1 个 GRU 推测值。

可微分深度范围(DDR)用一个小网络 ARNet 从上一层置信度预测逐像素二次系数,深度间隔按置信度缩放,并夹在 [0.5, 5.0](按 DTU 深度变化估的)。采样在逆深度空间、关于中心对称,中心密、两端疏,因为真值落在先验两侧的机会差不多,固定步长会偏。中心就是上采样的上一层深度。

GRU 深度推测器(GDS)沿 4 或 8 个方向从外向内走,最外点的偏移用可变形卷积学。卷积 GRU 把邻域深度收成中心推测,再在方向之间做 winner-take-all。最终假设是 DDR 的 n 个加这 1 个推测。

代价体用分组相关和像素级视图权重,细层深度维只有 5,3D U-Net 下采样步长设成 (1,2,2) 以免把深度维再砍。置信度对最近三个假设求和,因为间隔不等。最后一层深度是半分辨率,用 PatchmatchNet 同款残差网络接到全分辨率 RGB 上修。

结果

DTU 训练 24 epoch,单卡 4090,输入 512×640、5 视图。测试 1200×1600。

方法Acc. (mm)Comp. (mm)Overall显存 (MB)时间 (s)
GBi-Net0.3150.2620.289--
CasMVSNet0.3250.3850.3554591-
PatchmatchNet0.4270.2770.35216290.139
IterMVS0.3730.3540.3638860.093
ZipMVS0.3690.2840.32713220.112

整体误差在表里排第二,仅次于 GBi-Net。相对 IterMVS 显存多 49%、慢 20%,整体更好。Tanks and Temples 只在 DTU 上训:Intermediate F-score 54.46,低于 CasMVSNet 56.84 和 IterMVS 56.22,召回 74.79 是最高;Advanced F-score 33.03,贴近 IterMVS 33.24。N=4 时 DTU 整体最好(0.3266 mm,1250 MB),再加视图显存涨、精度饱和。

自建 ISS 合成场景(900×1200,黑背景低纹理)上,ZipMVS 824 MB / 0.073 s,PatchmatchNet 1024 MB / 0.078 s,质量也更好。去掉自适应范围和中心加密,整体误差回到 0.383 mm。

为什么重要

目标很具体:航空航天和无人系统这种显存紧、质量还不能掉太多的 MVS。它没有打过 GBi-Net 的精度,也没有 IterMVS 那么省,位置在非迭代大代价体和迭代方法之间。细层只用 5 个深度平面,却靠像素自适应区间和邻域推测把搜索撑开。N=4 就饱和,多数竞品要 5 视图,对带宽也友好。代码已开源。

局限与存疑

DTU 精度仍差 GBi-Net 一截(0.369 vs 0.315 mm),Tanks 中间集精度偏低,大场景更偏召回。粗层仍是 48 个均匀假设,压缩发生在细层。空间数据集是概念验证:位姿当作已知、背景纯黑,不能当在轨评测。输入分辨率要能被 64 整除,DTU 测试靠网络内插补齐。和 MVSFormer++ 比,论文自己也写精度不如,只是显存少三倍以上。训练分辨率 512×640,泛化到更高分辨率依赖级联,没有跨数据集微调数字。

术语

原文与代码

社区讨论

相关论文

全部论文解读