双目深度估计算法总结

双目深度估计算法总结

基于人工特征的:

双目深度估计算法总结_第1张图片

双目深度估计算法总结_第2张图片

1.AD-census:

(1)代价计算:

双目深度估计算法总结_第3张图片

(2)代价聚合:它基于一个假设:相邻的颜色相近的像素有相近的视差值。如果参与聚合的像素和被聚合的像素具有相同的视差值,那么聚合的可靠性会更高。基于此,CBCA的目标是找到像素 p pp 周围和其颜色相近的像素,并以某种规则将它们的代价值聚合到 p pp 的代价上。

AD-Census代价聚合分为两步:1十字交叉域构造( Cross Construction2)代价聚合(Cost Aggregation

 

双目深度估计算法总结_第4张图片双目深度估计算法总结_第5张图片

迭代4次

(3)扫描线优化

双目深度估计算法总结_第6张图片

双目深度估计算法总结_第7张图片

双目深度估计算法总结_第8张图片双目深度估计算法总结_第9张图片

路径代价目的:是通过周围像素点的视差值去优化当前点像素的视差值,比如当前点x1和周围像素点的颜色亮度差不多,周围像素点在当前的视差值d1下有是最小的代价值,则这个像素点x1的路径代价就是之前的代价值,不变。但是如果当前的视差d2,周围像素点在d+1上找到最小代价点,x1像素点路径代价=代价+平滑约束(0<约束

再比如如果在视差非连续的地方,临近像素点跟当前像素点x2颜色变化很大,这个像素点路径代价=代价+平滑约束(0<约束

意思就是极限约束就是通过周围像素点和当前像素点的颜色差异去判断周围像素点可以对当前像素点有多大影响,颜色差别不大,会增加周围像素点的影响力,如果周围点当前视差下代价最小,则这个点的当前视差下的代价不会变,如果周围点在当前视差下的代价比较大,也会给当前点增加点平滑约束,增加值在0~p10~p2之间,通过周围像素点的可能视差来凸显当前点的可能视差。并且随着像素点和周围像素点的颜色差异,周围像素点对这个像素点的影响越来越小,对这个像素点的可能视差值的凸显能力越来越小。

多步骤时差优化

  1. Outlier Detection离群点检测

双目深度估计算法总结_第10张图片

 

(2)Iterative Region Voting迭代局部投票

无效点赋值问题,构造十字交叉域,域内有效像素点进行投票,每个像素点的视差范围内对视差进行投票,占有最多像素(也就是得票最多)的视差值记为dp*。可靠像素数量记为Sp。如果可靠像素的数量足够多,且得票最多的视差值得票率足够多,则把 d p ∗ d_p^*dp∗​ 赋给p。这里的两个“足够多”,用阈值来控制:

迭代5次,赋值成功的会在下一轮变成有效像素。

(3)Proper Interpolation 合理插值

此步骤其实就是视差填充。在一致性检查中无效视差被区分为遮挡区和误匹配区。首先对无效像素 p ,沿其周围16个方向搜索可靠像素视差值(貌似太夸张了些),对于遮挡区像素,则选择所有可靠像素视差值中的最小值,因为遮挡区大概率来自于背景,背景视差往往是较小值;对于误匹配区像素,则选择和 p pp 颜色最近的像素的视差,因为颜色相近的像素往往具有相近的视差值(这里应该是要限制下搜索步长的,太远了假设大概率都失效了)。

作者以实验说明,经过第(2)步和第(3)步,离群点(Outlier)得到很好的剔除,算法的视差错误率得到明显改善。如图所示:

双目深度估计算法总结_第11张图片

5)Sub-pixel Enhancement子像素优化

子像素优化很常规,和SGM一样,来一个一元二次拟合。公式如下:

 

双目深度估计算法总结_第12张图片

双目深度估计算法总结_第13张图片

2.MC-CNN

双目深度估计算法总结_第14张图片双目深度估计算法总结_第15张图片

双目深度估计算法总结_第16张图片

 

3.flownet

双目深度估计算法总结_第17张图片双目深度估计算法总结_第18张图片

双目深度估计算法总结_第19张图片

 

4.级联残差学习

双目深度估计算法总结_第20张图片

 

你可能感兴趣的:(基于深度学习的立体匹配,计算机视觉,算法,深度学习)