论文信息
标题 Binocular vision measurement using Dammann grating
作者 SHENGBIN WEI,SHAOQING WANG,CHANGHE ZHOU, KUN LIU, XIN FAN
三维重建
下图是所需的硬件系统。由两个相机加一个小型激光器组成。激光器前放置了达曼光栅(Dammann grating)。
达曼光栅是一种可以将入射单色光在傅里叶变换的远场处高效生成均匀光强点阵的位相光栅。偶数点阵达曼光栅结构能排除零级衍射光对制作误差的敏感性,在实际制作中,偶数点阵的光均匀性更容易高于奇数点阵。使用达曼光栅的优点是能保持同一张图像中不同激光点的灰度值能基本一致,这个性质非常有利于准确提取激光斑点。
通过简单设定灰度阈值,可以将激光斑点过滤出来,并提取每个连通域的中心,记为激光斑点的中心,其相机平面中的坐标为:
其中L,R表示左右相机。如前文 双目立体视觉原理 讲到,双目匹配是深度恢复中最关键的问题,那我们来好好看看,在本文的方法中是如何处理这个问题。
在本文中双目匹配问题可以被定义为:对于左相机图像中任意一点
,寻找右相机图像中对应点
。
和随机散斑图案不同,激光斑点在整幅图像上具有非常大的相似性,因此无法通过ZNCC(zero mean normalized cross correlation)来区分。那该如何查找匹配点呢?本文引入了几条规则来完成双目匹配。
极线约束
极线约束是对双目匹配搜索空间的降维操作。如前文 双目立体视觉 介绍,当对左右相机图像进行极线矫正后,对于左图像中任一点,可以在右图像中同等高度行(亚像素精度)中查找。实际中,由于相机标定误差,激光斑点提取误差,上文“同等高度行”需要设置在一定容错范围
内,如下图。
极线约束将匹配点的搜索空间限制到如下范围:
Ray约束
受景深影响,激光器投射的激光线只有一段能被双目相机捕获并高质量成像。这一段就是被近远裁剪面
所截断得到的
(如下图所示)。空间中待恢复深度的三维点
,其在左右图像上的投影分别满足:
更进一步地,还需要满足一组三角相似关系:
有了这组约束,理想情况下可以将线性的搜索简化成解析计算。从算法的时间复杂度上看,极线约束将
降为
,Ray约束又将
降为
。实际情况下由于误差的存在没法直接通过解析计算得到匹配点,但是可以在理想匹配点附近的小邻域内查找。我们来看看实际该如何操作:
- 首先,事先记录好所有激光斑点在
处,左右图象上的坐标(经过极线矫正):注意,其中索引是以激光斑点所在的行列号来换算:
- 对于左图像任一点
,通过极线约束可以得到候选点集。接下来就开始利用Ray约束来筛选候选点解:
- 筛选左图像中穿过
的光线段,其筛选条件为:
- 筛选出来的左图光线段可以借助LAPC得到其对应右图中的光线段
- 对于每个右图候选光线段,判断候选点集
是否有落于其上的点,注意至多会有一个点,其判断条件为:这两个判断条件这么长,看起来有点吓人,其实拆出来细看就是判断点是否落在线段上。
- 经过上述条件判断,已经将候选点集的数量减少了,进一步地,可以通过下式再次筛选:
如此处理完后,候选点集的个数有三种情况,要么为0,要么为1,要么为多个。即使候选点集个数为1,仍然有可能产生错误的匹配点,在最终的三维点云中得到一个离群点(outlier)。调小可以减少离群点,但也可能误删正确的匹配点,所以如何设计需要通过实际的实验来判断。以上的步骤可以参考下图来推导。
- 筛选左图像中穿过
离群点消除
相比在三维点云中去除杂点,在双目匹配过程中剔除离群点,可以利用更多信息,增加更多约束,比如视差约束:
参考下图中各点的分布。(
注:我对上式括号中的符号还有些疑惑,在没搞懂之前先保留原文的公式。)
结果
贴个文章中的重建结果,从图中可以看出,设备体积很小,功耗也底,重建出的点云共15万点,从图像上看细节比较明显,曲面光滑,重建质量相当高。
参考
- https://jingyan.baidu.com/article/47a29f247a935bc01523997e.html
- https://book.douban.com/subject/5921462/