ADCensus立体匹配算法是Xing Mei, Xun Sun, Mingcai Zhou等几个人
在2011年,发表的一篇题目为:《On Building anAccurate Stereo Matching System on Graphics Hardware》中提出的。
ADCensus双目立体匹配算法曾一度排在MiddleBurry官网上第一的位置,引用量很高。
其主要优点是并行加速,精度又好,能有效兼顾这两点。
本经验主要分为以下几个方面:
ADCensus算法优点;算法步骤;匹配代价;代价聚合;视差优化;视差细化;
1、ADCensus算法优点;
基于GPU下的ADCensus立体匹配算法兼顾匹配速度和精度;
根据Scharstein 和Szeliski提出的理论算法分为以下四个步骤:
代价计算(cost initialization):绝对差AD+Census变换算法
代价聚合(cost aggregation):动态十字交叉域
视差优化(disparity computation):扫描线视差优化
后处理(refinement):多步后处理操作
以上算法都可以通过并行加速提高速度。
2、AD-Census Cost Initialization:
对每个像素点和视差等级进行处理,本质上是并行的;
所以此步骤就只考虑如何提高代价计算精度。
常见的代价计算方法:绝对差AD,
互熵信息BT(“Depth Discontinuities by Pixel-to-Pixel Stereo” by S. Birchfield and C. Tomasi),基于梯度的,Census等。
Hirschmuller和Scharstein证明:Census是具有最好效果的算法;
Census是通过对图像局部区域进行编码,具有很好的相对次序性,对光照和图像噪声鲁棒;
然而在重复区域和相似纹理区域具有匹配模糊性,导致误匹配;
又由于AD绝对差对差异性比较敏感,
所以进行结合形成ADCensus算法计算初始代价;
函数的作用:
①使匹配代价的范围在[0,1];
②通过lambda调节两者的作用;
公式效果如图所示:
3、Cross-basedCost Aggregation
代价聚合的目的:减少初始代价中的匹配模糊和图像噪声的影响。
代价聚合的依据:相似的区域具有相似的视差;
常见代价聚合方法:图像分割,自适应权重,自适应窗口等。
这篇文章采用动态交叉域的代价聚合方法:
分为两步:交叉域构建,代价聚合;
代价聚合规则:计算颜色差值和空间距离,通过3规则构建交叉域;通过4次迭代进行代价聚合。
优点:对大的少纹理和视差不连续区域减少匹配误差。
4、ScanlineOptimization
目的:选择最佳的视差范围,生成视差图。
4方向的扫描线优化策略:适合并行计算,减少匹配模糊。
P1、P2惩罚系数:
5、Multi-stepDisparity Refinement
多步视差细化
①:通过左右一致性准则,检测出离群点:遮挡区域和视差不连续区域的点
②:Iterative Region Voting:
③:Proper Interpolation:
④:Depth DiscontinuityAdjustment:
⑤:Sub-pixel Enhancement:
6、实验效果:ADCensus匹配算法:兼顾精度和速度;
据说可以达到实时的效果。
还有篇博文也是ADcensus的,http://www.cnblogs.com/sinbad360/p/7842009.html,互相印证,更好的理解。