双目立体视觉原理大揭秘
转载 :http://www.ca800.com/apply/d_1nrvosgiuvdq3_1.html
——双目视觉导航、定位;
双目立体视觉是一门有着广阔应用前景的学科,根据双目立体视觉CCAS提供的思路及组成原理,随着光学、电子学以及计算机技术的发展,将不断进步,逐渐实用化,不仅将成为工业检测、生物医学、虚拟现实等领域的关键技术,还有可能应用于航天遥测、军事侦察等领域。目前在国外,双目体视技术已广泛应用于生产、生 活中。双目立体视觉是计算机视觉的一个重要分支,单从双目视觉的应用来说,主要分为四大部分:
一 双目视觉导航、定位;
二 三维重构;
三 双目立体测量;
四 空间三维立体跟踪。
很多科研项目或工业现场需要用双目视觉来解决问题时,很多人都不知道该从哪里着手。其实只要理解了双目视觉的基本原理,以上应用都是大同小异的事情。本文仅从“基于双目视觉的导航、定位”方面讲述其基本原理及实现过程。
双目视觉的基本原理就是模拟人眼并利用空间几何模型推导出相应的算法来解决实际问题。再说白一点,双目视觉最基本的目的就是从复杂的客观世界中提取出我们感兴趣的“点”、“线”、“面”,再用数字来描述,从而精确的理解并控制它们。这个原理里面包含三大部分内容:
下面以机器人导航应用为例进行说明,在这个应用中需要做的事情就是告诉机器人:在它的前方有障碍物、还要告诉它该障碍物在机器人的导航坐标系中的位置信息。这样机器人才能做出判断并进行规避。实现这个功能的时候,就包含了以下三部分内容。
第一、提取感兴趣的点(特征检测)。就是把我们感兴趣的物体分割出来,针对导航、定位来说就是把机器人前面的障碍物找到。这种应用在特征点提取这部分的特点是:需要提取的特征点较少、提取速度要求高。具体速度需要根据机器人的总体精度来衡量。一般来说一秒钟至少要给机器人5个以上的信号,也就是说每秒至少采集5帧以上的图像并分别处理。
在这个过程中,首先必须得提取到障碍物的信息,我们很容易想到可以给机器人上面安装一个摄像头来对前方的道路情况进行拍摄。但是如果是用一个摄像头,我们只能得到障碍物的平面信息,也就是X、Y坐标信息,机器人并不知道应该再走多远才能实施避障动作。所以我们需要再加一个摄像头从另外的角度去拍摄这个障碍物。这样一来就能得到2张从不同角度来描述该障碍物的图片了。然后再加入一些合适的预处理算法(图像处理),比如二值化、边缘提取、特征点去噪(需要根据具体的场景,选择合适的算法)等把两张图片中的障碍物提取、分割出来。这样就完成了特征点提取,为下一步“精确化数字描述”做好了基础。
第二、精确化数字描述(立体匹配、姿态测量)。这部分指的是分割出障碍物的特征点以后需要用有效的数值来描述,在双目视觉系统中当然就是用三维坐标来描述了。如果在安装好双目相机的同时还进行了单目相机标定和双目相机标定(见第三部分),确认了双相机、镜头的参数矩阵,得到平移向量和旋转矩阵。那么根据双目立体匹配原理带入就可以得出该障碍物的三维坐标值了。把该三维坐标值输入机器人控制系统,机器人就可以智能的实现避障了。
在这部分中用到了“立体匹配”算法,其实该算法是和双目标定相结合,该算法根据特征点在左右图像中的坐标点进行基础矩阵的计算并将左右图像的同名坐标点一一对应。在这个过程中用到的“平移向量”和“旋转矩阵”就是下一步双目标定中给出的参数。
第三、双目标定。双目标定就是利用已知世界坐标系(标定板)和图像坐标系(对标定板图像处理后结果)的对应关系,计算出双目相机在当前位置关系下的参数信息。标定完成后,用该双目系统去观测未知世界坐标系时就可以得到其三维信息了。事实上,在双目标定前,还需要对每个相机做单相机标定,以确定其畸变系数、相机内参矩阵等。这样做的目的是为了使左右相机获取到的图像都能校正为标准图像后再进行处理。
一般来说,只要涉及到的是双目项目,这一步是通用的且是必不可少的。针对不同应用,只是在获取到具体的世界坐标体系的时候再做不同的处理即可。非常感谢CCAS双目视觉软件对我们研究解析的大力支持,关于这方面的内容可以去试试CCAS双目视觉软件,感兴趣的朋友可以去网上找找相关资料。
事实上,双目立体视觉的算法研究顺序应该是先双目标定、再立体匹配、最后进行特征点检测。本文为了让读者易于理解,所以先讲结果、再讲原因。后续再讲三维重构、三维测量及空间跟踪应用。