MVSNet
论文全称(MVSNet: Depth Inference for Unstructured Multi-view Stereo)
Abstract
作者提出一个端到端即一个架构就可以直接从多张图片中推断深度图。整体流程是:
- 提取图像特征(卷积生成特征图)
- 构建 3D cost volume,用到的方法是根据已知的拍摄点相机位姿进行单应性变换,后面细讲。
- 根据3D cost volume 生成深度图
Introduction
传统的MVS有很多缺点,例如因为他们是基于朗伯体的,对低纹理、镜面、反光区域无法重建,而且虽然精度高,但是完整性差。最近的基于深度学习的方法也有这样那样的问题,作者提出的CNN网络能达到好的效果。
MVSNet
先上图,根据图和 Abstract 中描述的步骤,一步步看。
特征提取
作者用一张图作为 reference image,多张图作为 source image,用这 N 张图得到reference image的深度图。对这N张图进行卷积,提取特征。
Cost Volume
先理解几个概念:
- 视锥:就是指相机的拍摄范围,我们知道相机的拍摄范围是一个锥形,沿视锥方向的点在成像上是一个点,与笛卡尔坐标系不同,这对计算深度方便。
- 单应性变换(Homography):两张拍摄的图片不会是你把图片上下放,就点点重合的,因为有视差和旋转的存在。单应性变换就是根据相机的内参、外参,把一张图片中的点映射到,如果在另一个相机位姿下拍摄,应该成像的位置。
继续说Cost Volume,它是基于视锥计算的。把特征提取步骤计算的 *N *张图片–一张 reference image的特征图,多张 source image(不是全部图片的特征图,而是选取几张,例如2、3张图片)使用单应性变换,变换到与reference image平行的成像平面,把变换后的特征图转为特征向量V,Cost Volume就是这些V的方差。
我们可以相想一下,V是一个三维向量DWH,存储的是经过单应性变换后每个图片的特征。把他们做方差,即每个V减去平均值,每个V的成像平面平行,它们相减就应该是同一视锥方向、同一深度、同一像素坐标的特征值相减,如果越小,那么表示特征越接近。Cost Volume每个元素存储的就是这 N 张图相同视锥方向、深度、像素坐标下的匹配程度,称为置信度。
经过Regularization后,Cost Volume变为概率体P,每个元素与原先意思相同,只不过Regularization后剔除噪音。
Depth Map
根据概率体P包含多个图片的拍摄点相机位姿信息,还计算了特征匹配信息,因此能够用来计算深度图,这个深度图是 reference image 的深度图,计算公式看原论文。
上面就是论文主要内容,后面还有深度图融合生成点云等。还是要看原论文。