双目立体视觉原理大揭秘之双目立体测量

2016-07-21技术资料

双目立体视觉是计算机视觉的一个重要分支。它以模拟人类视觉处理景物的方式,利用两台位置相对固定的摄像机同时对同一景物从不同角度成像,通过计算其中对应点的视差来获取空间场景的三维信息。单从双目视觉的应用来说,主要分为四大部分:

双目立体视觉 的图像结果

一 双目视觉导航、定位;

二 三维重构;

三 双目立体测量

四 空间三维立体跟踪。

前文介绍过基于双目立体视觉的导航、定位及三位重构原理,本文再介绍下基于CCAS双目立体视觉的“双目立体测量”应用。

基于双目立体视觉的三维测量是一种被动式非接触测量方法,它除了可以获得目标的宽、高信息外,还可以获得目标的距离信息,已被广泛应用于三维重建、自主车(移动机器人)导航、工业检测、基于图像的建模和绘制等领域。基于双目立体视觉的三维测量技术在国外已经得到了比较深入的研究和广泛的应用,在国内也受到了越来越多的重视

本文以双目立体视觉理论为基础,简单讲述下基于双目立体视觉的三维测量技术,重点在于双目立体视觉的几个关键技术,包括:相机标定、双目标定、图像处理、特征检测、立体匹配、双目三维测量以及姿态测量等。

根据CCAS双目立体视觉提供的思路和方法,双目立体测量的基本原理如上图:左右相机分别找到被测物需要测量的特征点,通过之前标定好的参数,计算出被测物上特征点的三维坐标,然后再得出尺寸信息。双目立体测量的Zui大优势在于:相机和被测物之间的距离不像单目测量那样要求的严格,一般只要在镜头的景深范围内都可以精确的实现测量

双目立体测量的特点类似于“双目导航、定位”,一般来说:第一、需要提取的点不多,仅把被测物需要测量部分的点找到即可;第二、速度要求较高,一般要求一秒中测量多个产品;第三、对光照环境要求高。因为测量的时候相机和被测物必然有相对位移,所以拍摄到的图像可能各个角度都会有。一般的实现步骤如下:

第一、相机参数标定。这部分前文已经说过,不再细说了,有兴趣的可以去看CCAS双目立体视觉的相关资料。这部分的主要目的:获取相机的内参数和镜头畸变系数、获取双相机在当前角度下立体参数。

第二、对被测物进行拍摄,并获取被测部分的特征点。这是双目立体视觉测量Zui重要的部分。主要难点在于该用哪些算法来获取特征点,并且这种特征点的获取方式上,不能用打激光点或手动贴特征点这样的方式来“取巧”,必须尊重原图。根据CCAS提供的一些图像预处理算法进行实验后发现,一般提取特征点时需要用到数十种以上的预处理算法,而这些算法中的参数需要不断的去实验。由于CCAS提供二次开发库,所以在一些极端情况下用户还可以在其中加入一些其他的算法。其Zui终目的还是把特征点准确的找到。

第三、三维坐标获取。完成以上步骤后,就可以进行立体匹配并计算三维坐标来。这部分比较简单,只要给出来数学模型了直接带入公式即可。CCAS提供了相应的算法模型和和例程。

第四、指定测量范围并输出结果。

由于CCAS提供了算法模型、例程等,所以本文在讲解的时候以实际项目开发的思路来讲述,感兴趣的朋友可以根据这些算法模型、例程自己研究代码。由于测量是机器视觉应用中Zui广泛的一个,不同的项目都有各自不同的解决方案。故本文未提供实际的案例,后续将讲解下给予双目视觉的“空间三维跟踪”。