AD-Census算法来自于中国学者Xing Mei等在ICCV2011发表的论文《On Building an Accurate Stereo Matching System on Graphics Hardware》1。算法效率高、效果出色,Intel RealSense D400就是基于该算法实现的立体匹配 2。 本系列将带大家深入了解AD-Census的理论,希望能够对同学们的立体匹配算法研究有所帮助。 AD-Census是一个将局部算法和半全局算法相结合的算法,它包含四个步骤:1 初始代价计算、2 代价聚合、3 扫描线优化、4 视差优化。本篇的内容是最后一个步骤:多步骤视差优化。 Step 1. AD-Census Cost Initialization 视差优化是基本上是立体匹配必备步骤,各家的立体匹配算法都会带上这一步,主要目的是剔除错误视差、提高视差精度,以及填充视差图。AD-Census当然也不例外,我们来看看它都做了哪些操作。
Outlier离群点实际上就是误差较大的点,它们的视差值是错的。AD-Census使用一致性检查来做Outlier Detection,一致性检查不必多说,基本没见过哪个立体匹配算法不做它的,可以说是必备良药了。AD-Census的一致性检查和SGM是类似的,参考博文: 【理论恒叨】【立体匹配系列】经典SGM:(4)视差计算、视差优化 一致性检查的同时,也会把无效像素分为遮挡区(occlusion)和误匹配区(mismatch),划分的方法和SGM原文一直,参考博文: 从名字我们可以读到三个信息:(1)迭代表示此步骤要重复执行多次(2)局部表示考虑的是局部范围内的像素(3)投票表示在既定规则内进行统计,数量最多的对象具有优势。 我们看原文中的描述: 对无效像素 式中, 以上操作会重复迭代执行5次,每次迭代成功赋值的像素 此步骤其实就是视差填充。在一致性检查中无效视差被区分为遮挡区和误匹配区。首先对无效像素 作者以实验说明,经过第(2)步和第(3)步,离群点(Outlier)得到很好的剔除,算法的视差错误率得到明显改善。如图所示: 这是个新鲜词,在其他论文中比较少见。此步的目的是进一步优化视差非连续区域的视差值。 首先,会对视差图做一个边缘检测,对于边缘上的像素 其实就是对边缘上的像素值进行微调,选择左右两边使其代价更小的那个视差值。 作者通过实验表明,该步骤可以明显减少视差非连续区域的视差错误。如图所示: 子像素优化很常规,和SGM一样,来一个一元二次拟合。公式如下: 式中
至此,AD-Census的理论部分就此完结,贴出一些论文中的实验结果,有不明白的欢迎大家给我留言。后续我会着手编码实现该方法并在我的Github主页中开源,感谢大家的观看,再见! Zhang K , Lu J , Lafruit G . Cross-Based Local Stereo Matching Using Orthogonal Integral Images[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2009, 19(7):1073-1079. ↩︎ Keselman L , Woodfill J I , Grunnet-Jepsen A , et al. Intel® RealSense™ Stereoscopic Depth Cameras[C]// 2017 IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW). IEEE, 2017. ↩︎
Step 2. Cross-based Cost Aggregation
Step 3. Scanline Optimization
Step 4. Multi-step Disparity Refinement【理论恒叨】【立体匹配系列】经典AD-Census: (4)多步骤视差优化
(1)Outlier Detection离群点检测
【码上实战】【立体匹配系列】经典SGM:(5)视差优化
(2)Iterative Region Voting迭代局部投票
p 的十字交叉域支持区内的所有可靠像素,统计[0,
dmax]范围视差分布的直方图
Hp (直方图的值相当于视差的得票数)。占有最多像素(也就是得票最多)的视差值记为
dp∗ 。可靠像素数量记为
Sp 。如果可靠像素的数量足够多,且得票最多的视差值得票率足够多,则把
dp∗ 赋给
p 。这里的两个“足够多”,用阈值来控制:
τs和
τH为两个预设阈值。
p 都会被标记为可靠像素,以为下一次迭代提供有效值。(3)Proper Interpolation(找不到合适的词翻译,你们理解就好)
p ,沿其周围16个方向搜索可靠像素视差值(貌似太夸张了些),对于遮挡区像素,则选择所有可靠像素视差值中的最小值,因为遮挡区大概率来自于背景,背景视差往往是较小值;对于误匹配区像素,则选择和
p 颜色最近的像素的视差,因为颜色相近的像素往往具有相近的视差值(这里应该是要限制下搜索步长的,太远了假设大概率都失效了)。(4)Depth Discontinuity Adjustment视差非连续区调整
p ,记其视差值为
D(p) ,记录其左右两边像素
p1、
p2的视差值
DL(p1)、
DL(p2)。如果
DL(p1)、
DL(p2)中存在一个视差值赋给像素
p 后的匹配代价比
p 原先的匹配代价
C2(p,D(p)) 更小,则把
D(p)替换成该视差值。(5)Sub-pixel Enhancement子像素优化
d=DL(p),
d+=d+1,
d−=d−1。对此步有疑问可以参考博文:
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算