点击上方“计算机视觉工坊”,选择“星标”
干货第一时间送达
MVSNet在2018年提出后,在估计深度图的应用中取得了非常好的结果。应用CNN于立体匹配的技术也使得传统的匹配效率整体提高。但是因为使用3D卷积神经网络进行深度正则化处理,所以即便在比较低的分辨率(900*600)下,也需要比较高的GPU消耗。针对该问题,该团队在CVPR2019上提出利用循环神经网络对3D代价体进行切片处理,大幅度减少GPU消耗,使得该网络框架不仅可以估计更大范围的场景,且估计精度更高。
本篇文章仍将就MVSNet内存消耗大的问题,介绍CVPR2020的一篇文章:Cascade Cost Volume for High-Resolution Multi-View Stereo and Stereo Matching. 该文章沿用MVSNet深度估计的框架,具体创新在于改进Cost Volume的构造方式,使得利用深度学习估计深度时,在较低GPU消耗上估计高分辨率、大场景的深度。
1、背景介绍
基于深度学习的多视图立体,例如经典的MVSNet网络架构,通常会构造一个三维的代价体去回归场景的深度值,但MVSNet常受限于显存限制而无法对高分辨率的影像进行深度估计。
在MVSNet框架的基础上,多种方法对显存增长问题提出了改进方案,上一篇文章我们介绍了R-MVSNet,该方法利用循环神经网络GRU,对三维代价体进行切片,这样不仅保留了靠前的深度和纹理信息,也减少了GPU的消耗,深度估计精度和深度估计范围要优于MVSNet,不同方法的比较结果可通过图1体现。
图1 效果比较图
不同于R-MVSNet,本篇文章(以下简称“Cascade-MVSNet”)则仍旧使用了MVSNet网络框架中的3D卷积神经网络对深度代价体进行正则化,但不同于其代价体的构造,Cascade-MVSNet利用链式代价体构造的策略,先估计较为粗糙的深度值,然后再进一步缩小深度估计范围,提高深度估计精度,实现了在较小的GPU消耗的条件下,得到较高分辨率和较高精度的深度图,经过稠密重建后,Cascade-MVSNet的结果也比之前所提到的方法要更为完整(图2)。
图2 稠密重建结果比较
2、代价体构造回顾
沿用立体匹配的视差估计框架,通常深度学习方法都会构造一个沿深度方向的代价体,例如MVSNet借鉴平面扫描算法的原理,构造由沿不同深度而前视平行的平面组成一个相机椎体,然后每一个相机椎体经过采样,变成长宽一致的特征体,通过可微分化的单应性变换将不同视角下的特征扭曲到参考视角上,构成代价体。
一般来说,代价体的长宽则是由输入影像分辨率提供的,深度范围则是通过稀疏重建后的结果提供先验条件。这样的构造方式,使得代价体正则化时,三维代价体的内存消耗会以三次指数的速率增长(图3)。
图3 代价体构造示意图
上一篇文章中R-MVSNet使用循环神经网络,对将代价体沿深度切成不同的深度图,利用GRU结构进行正则化处理,相比较MVSNet,能减少GPU的消耗。可是循环神经网络会涉及一个遗忘的过程,导致网络不能很好地保留像素周围的纹理信息,所以点云完整度不能得到很好地保留(图4)。