单目稠密重建

立体视觉

单目相机通过移动相机之后进行三角化测量像素的距离。---->移动视角的立体视觉

双目相机利用左右目的视察计算像素距离

RGB-D直接获得像素距离

 

单目的稠密估计(估计每个像素的深度)

——>根据视频序列估计图像深度

 对图像提取特征,根据描述子计算特征之间匹配。

通过不同视角下的观测估计特征点的深度(三角测量)

——>稠密深度图估计

无法把每个像素都当做特征点计算描述子,因此需要匹配

——>匹配

极线搜索与块匹配技术

  • ——>极线搜索

建图(SLAM十四讲ch13)

在特征点法中,通过特征匹配得到p2的位置,然而现在没有描述子,只能在极线上搜索和p1想的比较相似的点。(可能沿着极线一直走比较每个像素与p1的相似程度。)

  • ——>块匹配

单个像素亮度没有区分性》在p1周围取像素块提高区分性

  • ——>计算像素块之间的差异:SAD(Sum of Absolute Different)、SSD(Sum of Squared Distance)、NCC(Normalized Cross Correlation,归一化互相关)

深度滤波器技术(高斯分布)

得到的匹配值有多个峰值,但是只是的对应点只有一个。使用概率分布来描述深度值,而非使用单一的数值来描述深度。

问题转为在不断对不同图像进行极线搜索时,我们估计的深度分布将发生怎样的变化,这就是深度滤波器。

稠密深度的整过程

1.假设所有像素的深度满足某个初始的高斯分布

2.当新数据产生时,通过极线搜索和块匹配确定投影点位置

3.根据几何关系计算三角化后的深度及不确定性

4.将当前观测融合进上一次的估计中。若收敛则停止计算,否则返回第二步。

实践

test_data中包括以下内容

image中有200幅无人机俯视图像,TXT文件中为每幅图像的位姿。

建图(SLAM十四讲ch13)

./build/dense_mapping test_data

建图(SLAM十四讲ch13)

loop 24

建图(SLAM十四讲ch13)

loop 40

建图(SLAM十四讲ch13)

最后深度图趋于稳定

像素梯度

逆深度

 

RGB-D稠密建图

拼接点云地图(Point_Cloud Map)

三角网格(Mesh),面片(Surfel)

通过体素(Voxel)建立占据网格地图(Occupancy Map)

SFM 泊松重建

八叉树地图(Octo-Map)

将三维空间建模为很多小方块(体素),每个面切成两片分割为8块。一直重复达到建模的最高精度。

实践(参考第5章PCL拼接点云    ./build/joinMap  )

octovis octomap.bt

分辨率0.05米

建图(SLAM十四讲ch13)

分辨率0.1米

建图(SLAM十四讲ch13)

相关文章: