CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

雷锋网  •  扫码分享
我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  

雷锋网 (公众号:雷锋网) AI科技评论按,本文作者究竟灰,本文首发于知乎,雷锋网 AI科技评论获其授权转载。

雷锋网注:本文为下篇,内容为 第三章:稠密重建第四章:稠密重建。 第一章和第二章参见 CCCV2017讲习班笔记-基于图像的大规模场景三维重建(上)

3.稠密匹配

稠密匹配是MVS.基本思路是

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

两视图的一致性。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

一致性度量主要包括三个:

  1. SSD(Sum of Squared Differences):平常差的和

  2. SAD(Sum of Absolute Differences):绝对值差的和

  3. NCC(Normalized Cross Correlation):归一化的交叉关系

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

多视图图像一致性需要考虑相机的可视性问题。

但是: 相机可视性需要场景结构、场景结构需要相机可视性

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

MVS算法主要分为三种:

  1. 基于体素的方法:Voxel based MVS

  2. 基于点云扩散的方法:Feature point growing based MVS

  3. 基于深度图融合的方法:Depth-map merging based MVS

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

基于体素的方法

体素的表达,并且说明其MVS等价于一个3D空间Voxel的标记问题。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

优化方法:用马尔科夫随机场优化。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

离散空间的Labeling是典型的MRF优化问题。其中的两项分别是一致性项和气球膨胀。

一致性项表达两点一致。气球膨胀表达的是强制倾向于把点分成内点。因为如果不加气球膨胀,一致性项会把点都分成外点,所以要加一个反向的力量。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

两视图一致性计算:

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

其中如何鲁棒投票寻找局部极值集中的点很重要。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

MRF优化问题求解:Graph-cuts

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

重建结果:

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

体素问题是占内存,即使很小的体素也要很大内存。于是提出以下方法,主要思路是自适应多分辨率网格,在物体表面高分辨率、其他区域低分辨率。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

基于体素方法MVS的并行分布Graph-cuts

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

基于体素方法的优缺点:

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

基于特征点扩散的MVS

方法顾名思义。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

讲了3D点的Patch形式表达。patch在图像上有投影。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

步骤:

  1. 生成初始点云:检测Harris与DoG,其中Harris偏向检测外侧的角点,而DoG偏向于检测内部纹理丰富的点

  2. 点云扩散:3D点投影到图像,并向投影点周围区域扩散

  3. 点云过滤:去除深度值不一致且一致性较低的点,意思是如果扩散的点云在其他图特征点的点云前面了,通过比较各自的一致性来剔除;如果扩散点云跑到后边去了,也比较一致性。这样就能去除深度值不一致且一致性较低的点了。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

结果:

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

优缺点:

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

基于深度图融合的MVS

人的左右眼的立体视觉和深度图。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

转到CV

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

基于深度图融合的MVS方法步骤:

  1. 为每一幅图选择领域图像构成立体图像组: 关键如何选择邻域图像组

  2. 计算每一幅图像的深度图: 关键如何计算深度图

  3. 深度图融合

  4. 抽取物体表面

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

每一幅图中的深度图计算:

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

聚合:对比了SAD聚合和Adaptive weight

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

对比:

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

这里讲了Oriented plane方法,估计空间平面方向

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

空间平面方向估计PathMatch,相机坐标系下空间面片表达为d深度的一个自由度,n法向量的两个自由度。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

接着讲了两视图PathMatch Stereo,先随机申城像素深度和法向量,然后传播。

主要用了随机的思想,检测领域点的深度和法向量,检测加了扰动之后的点,检测立体图像对对应点是否更好,检测前后帧同一位置是否更好。反复几次。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

这种方法是基于大数定律的。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

多视图PathMatch MVS:

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

多视图PathMatch中领域图像组的选择:视线夹角、物距、覆盖度、分散度等。主要通过稀疏点云计算。领域图像组选择是一个NP-hard问题。

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

逐像素点领域选择:

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

通过EM算法来做逐像素点选择领域图像组(最大化后验概率)

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

基于深度图融合的MVS优缺点:

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

稠密重建总结

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

4.资源

主要是算法、数据集和应用

CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下) CCCV2017讲习班笔记-基于图像的大规模场景三维重建(下)

雷锋网版权文章,未经授权禁止转载。详情见。

随意打赏

三维重建
提交建议
微信扫一扫,分享给好友吧。