Small Vision Systems :Hardware and Implementation

Author:Kurt Konolige
这篇文章是opencv里面的StereoMatchingBM算法的参考算法,所以特意找出来研读一番,虽然是1998的产物,但还是值得一看的,它实际有效地用于移动机器人。它的特点是快,实时。但当参数不Tuned的时候,效果不佳。所以需要进行良好的标定和参数的调整。对于一张480*320的32位深度图计算只需要30~40毫秒的时间。这与opencv里面的StereoMatchingGC算法形成对比,GC算法耗时长,以上图则需要几秒但恢复精度高。

2.1 Area Correlation 这篇文章的StereoMatching主要应用在移动机器人上,它用到的区域关联步骤有五:

1.Geometry correction:图像的几何和扭曲的恢复调整
2.Image Transform:灰度图像素值的去误差调整
3.Area Correlation:通过Searching Window区域关联匹配
4.Exrema Extraction:最佳点提取,用于生成深度图
5.Post-filtering:深度图后处理,去噪滤波等,去除误匹配点,如重复和平滑区域的无匹配等

2.2 Epipolar Geometry

极平面约束导致,p从参照图映射到匹配图,肯定在极曲线(epipolar curves)上。假若图片是理想映射,则该epipolar curves是一条直线。为了达到这样的理想条件,为此,确保图像在同一平面,扫描线和图像中心水平对齐,共同拥有相同的焦距,最好还需要知道内外参数。所以照相机的标定起到重要作用。

实际应用中,不断计算标定不实际,只能确定内参数后,再根据偏差进行自动标定。

3.该论文系统的算法

1.LOG滤波去噪,用L1绝对值比较
2.进行深度搜索
3.后处理,去除奇异点,使用左右和右左校验
4.使用X4的插值

作者还对比了使用标定照相机内参后,得到的深度图更为清晰稳定。而针对left/right匹配时,寻找对应最优点采用了hill-climbing和遍历周围最小空间,进行贪心选择。最后对比了一系列StereoMatching组合方法的精度、时间、耗能的区别。

坚持分享,支持原创