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-Net | 0.315 | 0.262 | 0.289 | - | - |
| CasMVSNet | 0.325 | 0.385 | 0.355 | 4591 | - |
| PatchmatchNet | 0.427 | 0.277 | 0.352 | 1629 | 0.139 |
| IterMVS | 0.373 | 0.354 | 0.363 | 886 | 0.093 |
| ZipMVS | 0.369 | 0.284 | 0.327 | 1322 | 0.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,泛化到更高分辨率依赖级联,没有跨数据集微调数字。