
Bumblebee双目测量基本原理.docx
4页Bumblebee 双目测量基本原理一.双目视觉原理:双目立体视觉三维测量是基于视差原理图双目立体成像原理其中基线距B=两摄像机的投影中心连线的距离;相机焦距为f设两摄像机在同一时刻观看空间物体的同一特征点P(x ,y ,z ),分别在“左眼”和“右 c c c眼”上获取了点P的图像,它们的图像坐标分别为p = (X , Y ) , p = (X , Y )left left left right right right现两摄像机的图像在同一个平面上,则特征点 P 的图像坐标 Y 坐标相同,即Y = Y = Y,则由三角几何关系得到: left rightX _匚left zc(1-1)czcY = &zc< X _ f (x- B)right则视差为:Disparity = X -X 由此可计算出特征点P在相机坐标系下的三维 left right坐标为:BOX= left—Disparity_ BOYDisparity_ B OfDisparity(1-2)因此,左相机像面上的任意一点只要能在右相机像面上找到对应的匹配点,就可以确定 出该点的三维坐标这种方法是完全的点对点运算,像面上所有点只要存在相应的匹配点, 就可以参与上述运算,从而获取其对应的三维坐标。
二.立体视觉测量过程1. 图像获取(1) 单台相机移动获取(2) 双台相机获取:可有不同位置关系(一直线上、一平面上、立体分布) 2. 相机标定:确定空间坐标系中物体点同它在图像平面上像点之间的对应关系1) 内部参数:相机内部几何、光学参数(2) 外部参数:相机坐标系与世界坐标系的转换 3.图像预处理和特征提取预处理:主要包括图像对比度的增强、随机噪声的去除、滤波和图像的增强、伪彩色处 理等;特征提取:常用的匹配特征主要有点状特征、线状特征和区域特征等 4.立体匹配:根据对所选特征的计算,建立特征之间的对应关系,将同一个空间物理点在 不同图像中的映像点对应起来立体匹配有三个基本的步骤组成:1)从立体图像对中的一幅图像如左图上选择与实际物 理结构相应的图像特征;2)在另一幅图像如右图中确定出同一物理结构的对应图像特征;3) 确定这两个特征之间的相对位置,得到视差其中的步骤2 是实现匹配的关键 5.深度确定通过立体匹配得到视差图像之后,便可以确定深度图像,并恢复场景3-D信息三.Triclops库中的数据流程Triclops库中的数据流程如下图所示系统首先从相机模型中获得raw格式的图像,最 终将其处理成深度图像。
在系统中有两个主要的处理模块第一个处理模块是一个应用了低 通滤波、图像校正和边缘检测的预处理模块第二个处理模块用来做立体匹配、结果确认和 亚像素插值最后的处理结果就是一幅深度图像1.预处理(Pre-processing)为了校正一幅图像,事先对其进行平滑是非常重要的所以如果要校正一幅图像,事先 将低通滤波器打开是很好的方法当然不使用低通滤波器同样可以校正图像,但校正后的图 像可能会出现混淆的现象如果要提高处理速度,可以将低通滤波器关掉2 .校正(Rectification)校正是用来修正镜头所产生的畸变的在原始图像中可以看到镜头所带来的这种畸变 例如,场景中的一条直线在原始图像中会变成一条曲线,这种效果在图像的边角处尤为明显 校正就是为了修正这种类型的畸变进一步来讲,如果没有正确的校正,那么沿着行或者列所做的特征搜索将可能产生错误 的结果3. 边缘检测( Edge detection)边缘检测为任选特性,它使用亮度的变化来匹配特征当系统中的相机具有自动增益功 能时,这项功能是非常有用的如果每个相机的自动增益的变化是不一致的,那么图像间的 绝对亮度是不一致的,而虽然绝对亮度是不一致的,但亮度的变化却是一个常数。
因此边缘 检测适用于光照有很大变化的环境当中虽然边缘检测可以改善检测的结果,但这相当于又 引入了另外的处理步骤,因此要权衡结果的改善状况和速度之间的关系来使用这项功能注意,确认功能仅在边缘检测模式下有效4. 立体处理( Stereo processing)使用绝对方差相关性计算:m n IL IL Id=d... 讪min i =— m j =— ~m22leftLx + i +d ][y + j ]其中:d .和d 是最小和最大视差(disparity)min maxm是模板尺寸(mask size)I 和 I 是右边和左边的图像 right left5. 视差范围(Disparity range)视差范围是立体算法为了在两幅图像中搜寻最佳匹时,所搜寻的像素的范围在 Triclops 系统中 0 个像素的视差代表了无穷远处的物体最大的视差定义了能被检测到的最近的物体 我们需要根据实际的任务来设置合适的视差范围减小视差范围可以加快系统的运行速度, 并降低误匹配的几率6. 相关模板( Correlation mask)相关模板是围绕着一个像素的一个正方形邻域,这个像素就是系统想要为其寻找匹配的 像素。
我们可以设定这个相关模板的尺寸大的模板会产生更密集更平滑的深度图像,然而, 在识别不连续深度位置的精度上会有所欠缺另一方面,小的模板所产生的图像较为稀疏且 会有更多的噪声,但在定位不连续深度的时候会有上佳的表现为了生成相同的结果,模板的尺寸要与被处理图像的分辨率成一定的比例就是说为了 得到具有可比性的结果,对于160x120图像的5x5的模板,对于320x240图像的时候模板要 增大到9x9模板的尺寸必须是奇数o 3x3, 5x5, 7x7是有效的模板尺寸,而4x4, 6x6, 8x8 则是无效的模板尺寸Triclops提供了最大为15x15和最小为1x1的模板另外,Triclops 中提供了一个新的用于实验的函数:troclopsSetAnyStereoMask,这个函数允许用户设置任意 尺寸的相关模板7.确认(Validation)在一些情况下,例如封闭的缺乏变化的质地,是无法建立图像之间的相关的如果相关 建立的不正确,那么测量的结果也就是不正确的了为了避免不正确的测量,系统引入了两 个确认的方法:• 质地确认(Texture validation)是基于相关模板的质地的水平的,它决定了视差值是否 有效。
如果质地的水平不足以产生一个正确的匹配,这个像素就会被声明为无效• 唯一性确认(Uniqueness validation)是指对于一个特定像素的最佳匹配和这个相关模板 下的其他匹配比起来是不是足够好即使相关模板的质地满足要求,由于封闭的原因, 可能还是得不到正确的匹配如果相关的结果不足够强,这个像素就会被声明为无效 用户可以设定两个阈值来控制确认的严格程度—一个是质地另一个是唯一性。
