双目立体视觉
双目视觉简介

双目立体视觉,在百度百科里的解释是这样解释的:双目立体视觉(Bin ocular Stereo Visio n )是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。
我相信未来的世界一定是三维感知的世界,毕竟二维世界很多情况下不能满足要求的。
一视差Dis parity 与深度图那么提到双目视觉就不得不提视差图:双目立体视觉融合两只眼睛获得的图像并观察它们之间的差别,使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间物理点在不同图像中的映像点对应起来,这个差别,我们称作视差(Disparity) 图像。
对于视差的理解自己可以体验一下:将手指头放在离眼睛不同距离的位置,并轮换睁、闭左右眼,可以发现手指在不同距离的位置,视觉差也不同,且距离越近,视差越大。
那么提到视差图,就有深度图,深度图像也叫距离影像,是指将从图像采集器到场景中各点的距离(深度)值作为像素值的图像。
获取方法有:激光雷达深度成像法、计算机立体视觉成像、坐标测量机法、莫尔条纹法、结构光法。
那么这里引申一下深度图与点云的区别,点云:当一束激光照射到物体表面时,所反射的激光会携带方位、距离等信息。
若将激光束按照某种轨迹进行扫描,便会边扫描边记录到反射的激光点信息,由于扫描极为精细,则能够得到大量的激光点,因而就可形成激光点云。
深度图像经过坐标转换可以计算为点云数据;有规则及必要信息的点云数据可以反算为深度图像。
两者在一定条件下是可以相互转化的,之前的博客里,有使用PCL库实现过点云提取深度图,当然给出相机参数也是可以由深度图转为点云的。
截图一个深度图:h 也JrruK"■arru举所以深度与视差的关系如下比如绝对差值法D=| L-R|式中,L、R和D分别代表左视图、右视图和对应的绝对差值图的亮度值。
绝对差值图并不是严格意义上的视差图,但是它的计算方法最为简单,速度快,它给出的结果可以作为参考。
双目立体视觉原理

双目立体视觉原理双目立体视觉是指人类通过两只眼睛同时观察同一物体时产生的立体效果。
这种视觉原理是人类视觉系统中非常重要的一部分,它使我们能够感知到物体的深度和距离,为我们的日常生活和工作提供了重要的信息。
在本文中,我们将深入探讨双目立体视觉的原理和应用。
首先,双目立体视觉的原理是基于人类两只眼睛的位置差异而产生的。
由于两只眼睛分别位于头部的两侧,它们所看到的同一物体会有微小的差异。
这种差异包括视差、视角和视线方向等,这些差异为我们的大脑提供了丰富的信息,使我们能够感知到物体的深度和距离。
其次,双目立体视觉的原理还涉及到视觉系统的处理过程。
当两只眼睛同时观察同一物体时,它们所接收到的图像会被传送到大脑的视觉皮层进行处理。
在这个过程中,大脑会将两只眼睛接收到的信息进行比对和整合,从而产生立体效果。
这种比对和整合的过程是非常复杂的,它涉及到大脑的神经元网络和神经递质的作用,是一个高度精密的生物信息处理过程。
另外,双目立体视觉的原理还与人类的视觉经验和学习有关。
通过长期的视觉训练和经验积累,人类能够更加准确地感知物体的深度和距离。
这种经验和学习会影响到我们的视觉系统的发育和功能,使我们能够更加灵活地应对各种复杂的立体环境。
在实际应用中,双目立体视觉原理被广泛应用于计算机视觉、虚拟现实、医学影像等领域。
通过模拟人类的双目立体视觉原理,计算机可以实现立体图像的获取、处理和显示,从而实现立体视觉效果。
在虚拟现实技术中,双目立体视觉原理可以为用户提供更加逼真的虚拟体验,增强沉浸感和真实感。
在医学影像领域,双目立体视觉原理可以帮助医生更加准确地诊断疾病,提高医疗水平。
总之,双目立体视觉原理是人类视觉系统中非常重要的一部分,它使我们能够感知物体的深度和距离,为我们的日常生活和工作提供了重要的信息。
通过深入研究双目立体视觉的原理和应用,我们可以更好地理解人类视觉系统的工作机制,推动计算机视觉、虚拟现实、医学影像等领域的发展和创新。
《2024年度基于双目立体视觉定位和识别技术的研究》范文

《基于双目立体视觉定位和识别技术的研究》篇一一、引言随着科技的飞速发展,计算机视觉技术在许多领域中得到了广泛的应用。
其中,双目立体视觉定位和识别技术以其高精度、高效率的特点,在机器人导航、工业检测、无人驾驶等领域展现出巨大的应用潜力。
本文将围绕双目立体视觉定位和识别技术进行深入的研究和探讨。
二、双目立体视觉技术概述双目立体视觉技术是一种模拟人类双眼视觉的计算机视觉技术。
通过模拟人眼的视差感知原理,双目立体视觉技术利用两个相机从不同角度获取场景的图像信息,然后通过图像处理和算法分析,得到场景中物体的三维信息。
双目立体视觉技术主要包括相机标定、图像获取、图像预处理、特征提取、立体匹配、三维重建等步骤。
三、双目立体视觉定位技术双目立体视觉定位技术是双目立体视觉技术的核心部分,它通过计算左右相机获取的图像间的视差信息,实现场景中物体的三维定位。
具体而言,双目立体视觉定位技术首先需要对相机进行精确的标定,以获取相机的内外参数。
然后通过图像预处理和特征提取,获取场景中的特征点或特征线。
接着,利用立体匹配算法,将左右相机获取的图像进行匹配,得到视差图。
最后,根据视差信息和相机的内外参数,计算得到场景中物体的三维坐标信息。
四、双目立体视觉识别技术双目立体视觉识别技术是在定位技术的基础上,进一步对场景中的物体进行分类和识别。
通过分析物体的形状、大小、纹理等特征信息,结合机器学习、深度学习等算法,实现对物体的识别和分类。
双目立体视觉识别技术可以广泛应用于无人驾驶、机器人导航、工业检测等领域。
五、双目立体视觉技术的应用双目立体视觉技术在许多领域都得到了广泛的应用。
在无人驾驶领域,双目立体视觉技术可以实现车辆的定位和障碍物识别,提高车辆的行驶安全性和自动驾驶的准确性。
在机器人导航领域,双目立体视觉技术可以帮助机器人实现精准的路径规划和导航。
在工业检测领域,双目立体视觉技术可以实现对产品的快速检测和质量控制。
六、研究展望随着计算机视觉技术的不断发展,双目立体视觉定位和识别技术将会有更广泛的应用前景。
双目立体视觉在工业中运用的例子

双目立体视觉在工业中有很多应用例子,以下是一些常见的应用场景:
1.零件识别与定位:双目立体视觉可以通过对物体进行三维测量和重构,实现零件的精确识别和定位。
在生产线中,机器人可以使用双目立体视觉
系统来识别零件的位置和姿态,从而精确地拾取和操作零件。
2.质量检测:双目立体视觉可以用于检测产品的外观质量和尺寸精度。
通过获取产品的三维模型,可以对产品进行全方位的检测和分析,如检测产
品表面的缺陷、尺寸偏差、对称性等。
3.机器人导航:双目立体视觉可以用于机器人的自主导航和定位。
通过获取环境的三维信息,机器人可以精确地识别障碍物和路径,并进行避障和
路径规划。
4.增强现实:双目立体视觉可以与增强现实技术结合,将虚拟物体与现实场景进行融合。
通过获取现实场景的三维信息,可以将虚拟物体精确地放
置在场景中,从而实现更加逼真的增强效果。
5.自动化装配:在制造业中,装配过程需要很高的精度和准确性。
双目立体视觉可以通过对零件进行精确的定位和操作,实现自动化装配。
机器人
可以使用双目立体视觉系统来识别零件的位置和姿态,从而精确地装配零件。
总之,双目立体视觉在工业中具有广泛的应用前景,可以提高生产效率、降低成本、提高产品质量等。
随着技术的不断发展,双目立体视觉将会在更多的领域得到应用。
平行双目立体视觉的基本构成及测量原理

平行双目立体视觉是一种利用两个并行的摄像头来创建三维图像的技术。
它通过比较两个或更多摄像头捕获的图像来确定场景中的距离和形状。
这种技术通常用于计算机视觉和机器人视觉中,以实现物体识别、测量和导航。
基本构成:1. 摄像头:这是双目立体视觉系统的核心,它负责捕捉场景的图像。
通常,摄像头会安装在相同的距离和角度,以产生尽可能多的视差。
2. 图像处理:这部分包括对摄像头捕获的图像进行预处理,如去噪、对比度调整和色彩校正等。
这些处理步骤有助于提高后续图像分析的准确性。
3. 特征匹配:这一步骤涉及到将两个摄像头的图像进行匹配,以确定它们之间的视差。
通常使用特征检测算法,如SIFT(尺度不变特征变换)或SURF(加速稳健特征),来识别图像中的关键点。
4. 深度计算:基于匹配的特征点,系统会使用一种算法来估计它们在三维空间中的位置。
这通常涉及到三角测量,即通过两个摄像头的视差信息来计算深度。
5. 立体视觉系统:将两个摄像头的输出进行合并,形成一个立体视觉系统。
这个系统可以提供场景的三维视图,包括物体的距离、形状和纹理等信息。
测量原理:双目立体视觉的基本原理是基于视差,即两个不同角度观察到的图像之间的距离差异。
在双目立体视觉系统中,这种差异被用来创建深度信息。
具体来说:1. 双目立体视觉系统中的摄像头捕获同一场景的图像时,由于存在视角、距离和光线条件等因素的差异,导致图像中的特征点在两个摄像头中的位置略有不同。
2. 通过比较这两个图像的特征点,系统可以确定这些特征点在三维空间中的相对位置。
这个位置就是物体的距离和形状信息。
3. 基于这些信息,系统可以进一步推断出场景中其他物体的深度。
这是因为人类的视觉系统可以根据双眼接收到的视差信息来推断物体的距离和形状。
需要注意的是,双目立体视觉的准确性受到许多因素的影响,如光源条件、镜头畸变和噪声等。
因此,在实际应用中,通常会采用一些优化技术来提高系统的性能,如使用更先进的特征匹配算法、优化相机参数和采用稳健的深度计算方法等。
双目立体视觉匹配

双目立体视觉匹配双目立体视觉匹配是指通过两个视觉传感器(眼睛)同时获取的视觉信息,进行图像的匹配与处理,从而实现对三维空间中物体位置、形状和深度的感知。
在人类视觉系统中,我们的两只眼睛分别观察到不同的景象,这两个视角的差异被大脑处理后,使我们能够感知到三维世界。
双目立体视觉匹配的核心就是模拟人类视觉系统的工作原理,通过计算机对不同眼睛拍摄到的图像进行处理,提取出深度信息,从而实现对三维空间的感知。
双目立体视觉匹配的基本原理是寻找两个图像之间的对应点。
当两个图像的视角或位置发生变化时,同一物体在两个图像中的像素值可能会发生变化。
通过分析这种变化,可以计算出物体的深度信息。
1. 图像获取:使用两个摄像机同时获取两幅图像,这两个摄像机应具有一定的基线距离,即两个摄像机之间的距离。
2. 校准:对两个摄像机进行标定和校准,确定两个摄像机之间的位置关系和相机参数。
3. 特征提取:从图像中提取出能够用于匹配的特征点,常用的特征点包括角点、边缘等。
4. 特征描述:对提取出的特征点进行描述,通常使用局部特征描述方法,如SIFT、SURF等。
5. 特征匹配:将一个图像中的特征点与另一个图像中的特征点进行匹配,通常使用特征向量的距离度量方法,如欧氏距离、余弦相似度等。
6. 匹配剔除:对匹配点进行剔除,以排除误匹配和无效匹配。
7. 深度计算:根据匹配点的位置信息以及两个摄像机之间的位置关系,计算出物体的深度信息。
8. 三维重建:根据深度信息和摄像机参数,将匹配点重建为三维空间中的点云,从而得到三维物体模型。
双目立体视觉匹配在计算机视觉领域有重要的应用,例如机器人导航、三维重建、物体跟踪等。
由于双目立体视觉匹配能够提供精确的深度信息,因此在许多应用中可以取得比单目视觉更好的效果。
双目立体视觉匹配也存在一些挑战和限制。
对于低纹理区域或者高度相似的物体,匹配点的提取和匹配可能会受到干扰。
摄像机的标定和校准是一个关键的步骤,如果标定不准确或者摄像机之间的位置关系发生变化,都会影响匹配的准确性。
《双目立体视觉》课件

05
双目立体视觉的应用案例
机器人视觉导航
机器人视觉导航是双目立体视觉的重要应用之一。通过双目立体视觉技术,机器 人可以获取周围环境的深度信息,实现自主导航、避障和路径规划等功能。
双目立体视觉技术可以帮助机器人识别障碍物、行人和车辆等,提高机器人的安 全性和可靠性。
医学影像分析
在医学领域,双目立体视觉技术被广泛应用于医学影像分析 。通过双目立体视觉技术,医生可以获取患者的三维立体图 像,提高诊断的准确性和可靠性。
深度学习技术Байду номын сангаас
随着深度学习算法的不断发展, 双目立体视觉技术将更加智能化 ,能够自动识别和提取更多的三
维信息。
实时处理能力
随着计算能力的提升,双目立体 视觉技术将实现更快速、实时的 三维重建,满足实时应用的需求
。
多传感器融合
未来双目立体视觉技术将与其他 传感器技术(如激光雷达、毫米 波雷达等)融合,实现更全面的
运动模糊问题
总结词
运动模糊是由于摄像机或物体快速移动导致图像模糊的现象,对双目立体视觉的深度感知造成干扰。
详细描述
在动态环境中,摄像机或物体的快速移动可能导致图像模糊,从而影响双目立体视觉系统的深度感知 能力。为了解决这一问题,研究者们提出了基于运动补偿的算法,通过分析图像中的运动轨迹,对模 糊图像进行还原和补偿,以提高深度感知的准确性。
详细描述
在复杂的光照条件下,如明暗交替、阴影或高光,双目视觉 系统可能难以准确判断物体的深度和距离。这主要是因为阴 影或高光区域中的物体可能会与背景融为一体,导致立体匹 配算法失效。
遮挡和透明物体问题
总结词
遮挡和透明物体是双目立体视觉中的常见挑战,需要特殊算法来处理。
双目立体视觉原理

双目立体视觉原理双目立体视觉是人类视觉系统利用双眼获取深度信息的一种视觉方式。
在日常生活中,我们常常利用双眼来感知物体的位置、距离和深度,这得益于双目立体视觉原理的作用。
双目立体视觉原理是指人类通过左右两只眼睛同时观察同一物体,由于左右眼之间存在一定的视差,从而产生了深度信息,使我们能够感知到物体的立体形状和位置。
双目立体视觉原理的实现基于人类双眼之间的视差。
当我们观察远处的物体时,左右眼所看到的图像几乎是一样的,视差较小;而当观察近处的物体时,左右眼所看到的图像会有较大的差异,视差较大。
通过比较左右眼的视差,人类大脑能够计算出物体的距离和深度信息。
双目立体视觉原理在人类视觉系统中扮演着重要的角色。
首先,双目立体视觉使我们能够更准确地感知物体的位置和距离,这对于日常生活中的行走、操纵物体等活动至关重要。
其次,双目立体视觉也为我们提供了更加生动和真实的视觉体验,使我们能够感受到物体的立体形状和空间位置,这对于艺术、设计和娱乐等领域具有重要意义。
在工程应用中,双目立体视觉原理也被广泛应用于计算机视觉、机器人技术等领域。
通过模拟人类双目视觉系统,计算机可以实现对物体的三维重建和深度感知,从而实现对环境的理解和感知。
在机器人领域,双目立体视觉也被用于实现机器人的自主导航、避障和抓取等任务,为机器人赋予了更加灵活和智能的能力。
总的来说,双目立体视觉原理是人类视觉系统中一项重要的功能,它使我们能够感知物体的立体形状和位置,为我们的日常生活、艺术创作和工程应用提供了重要的支持。
随着科学技术的不断发展,双目立体视觉原理也将继续发挥着重要的作用,并为人类带来更加丰富和多彩的视觉体验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
双目立体视觉双目立体视觉的研究一直是机器视觉中的热点和难点。
使用双目立体视觉系统可以确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标。
因此双目立体视觉系统可以应用在多个领域。
现说明介绍如何基于HALCON实现双目立体视觉系统,以及立体视觉的基本理论、方法和相关技术,为搭建双目立体视觉系统和提高算法效率。
双目立体视觉是机器视觉的一种重要形式,它是基于视差原理并由多幅图像获取物体三维几何信息的方法。
双目立体视觉系统一般由双摄像机从不同角度同时获得被测物的两幅数字图像,或由单摄像机在不同时刻从不同角度获得被测物的两幅数字图像,并基于视差原理恢复出物体的三维几何信息,重建物体三维轮廓及位置。
双目立体视觉系统在机器视觉领域有着广泛的应用前景。
HALCON是在世界范围内广泛使用的机器视觉软件。
它拥有满足您各类机器视觉应用需求的完善的开发库。
HALCON也包含Blob分析、形态学、模式识别、测量、三维摄像机定标、双目立体视觉等杰出的高级算法。
HALCON支持Linux和Windows,并且可以通过C、C++、C#、Visual Basic和Delphi 语言访问。
另外HALCON与硬件无关,支持大多数图像采集卡及带有DirectShow和IEEE 1394驱动的采集设备,用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件。
一.双目立体视觉相关基本理论说明1.1 双目立体视觉原理双目立体视觉三维测量是基于视差原理,图1所示为简单的平视双目立体成像原理图,两摄像机的投影中心的连线的距离,即基线距为b。
摄像机坐标系的原点在摄像机镜头的光心处,坐标系如图1所示。
事实上摄像机的成像平面在镜头的光心后,图1中将左右成像平面绘制在镜头的光心前f处,这个虚拟的图像平面坐标系O1uv的u轴和v轴与和摄像机坐标系的x轴和y轴方向一致,这样可以简化计算过程。
左右图像坐标系的原点在摄像机光轴与平面的交点O1和O2。
空间中某点P在左图像和右图像中相应的坐标分别为P1(u1,v1)和P2(u2,v2)。
假定两摄像机的图像在同一个平面上,则点P图像坐标的Y坐标相同,即v1=v2。
由三角几何关系得到:上式中(xc,yc,zc)为点P在左摄像机坐标系中的坐标,b为基线距,f为两个摄像机的焦距,(u1,v1)和(u2,v2)分别为点P在左图像和右图像中的坐标。
视差定义为某一点在两幅图像中相应点的位置差:图1 双目立体成像原理图图3 一般双目立体视觉系统原理图由此可计算出空间中某点P在左摄像机坐标系中的坐标为:因此,只要能够找到空间中某点在左右两个摄像机像面上的相应点,并且通过摄像机标定获得摄像机的内外参数,就可以确定这个点的三维坐标。
1.2 双目立体视觉的系统结构以及精度分析由上述双目视觉系统的基本原理可知,为了获得三维空间中某点的三维坐标,需要在左右两个摄像机像面上都存在该点的相应点。
立体视觉系统的一般结构为交叉摆放的两个摄像机从不同角度观测同一被测物体。
图3为原理图。
这样通过求得两个图像中相应点的图像坐标,便可以由双目立体视觉测量原理求取三维空间坐标。
事实上,获取两幅图像也可以由一个摄像机实现,如一个摄像机通过给定方式的运动,在不同位置观测同一个静止的物体,或者通过光学成像方式将两幅图像投影到一个摄像机,都可以满足要求。
各种双目视觉系统结构各有优缺点,这些结构适用于不同的应用场合。
对要求大测量范围和较高测量精度的场合,采用基于双摄像机的双目立体视觉系统比较合适;对测量范围要求比较小,对视觉系统体积和质量要求严格,需要高速度实时测量对象,基于光学成像的单摄像机双目立体视觉系统便成为最佳选择。
基于双摄像机的双目立体视觉系统必须安装在一个稳定的平台上,在进行双目视觉系统标定以及应用该系统进行测量时,要确保摄像机的内参(比如焦距)和两个摄像机相对位置关系不能够发生变化,如果任何一项发生变化,则需要重新对双目立体视觉系统进行标定。
视觉系统的安装方法影响测量结果的精度。
测量的精度可由下式得出:上式中⊿z表示测量得出的被测点与立体视觉系统之间距离的精度,z指被测点与立体视觉系统的绝对距离,f指摄像机的焦距,b表示双目立体视觉系统的基线距,⊿d表示被测点视差精度。
为了得到更高的精度,应该使摄像机的焦距以及基线长度增大,同时应该使被测物体尽可能的靠近立体视觉系统。
另外这个精度和视差的精度有直接的关系。
在HALCON中一般情况下视差结果可以精确到1/5~1/10个像素,如果一个像素代表7.4μm那么视差的精度可以达到1μm。
图4表示深度测量的精度和各个参数之间的关系(假设视差精度为1μm)。
如果b和z之间的比值过大,立体图像对之间的交迭区域将非常小,这样就不能够得到足够的物体表面信息。
b/z可以取的最大值取决于物体的表面特征。
一般情况下,如果物体高度变化不明显,b/z可以取的大一些;如果物体表面高度变化明显,则b/z的值要小一些。
无论在任何情况下,要确保立体图像对之间的交迭区域足够大并且两个摄像机应该大约对齐,也就是说每个摄像机绕光轴旋转的角度不能太大。
图4 深度测量精度与各个参数之间的关系图5 校正后的双目立体视觉系统1.3 双目立体视觉系统标定摄像机内参数的标定和单目视觉系统标定一致,双目立体视觉系统的标定主要是指摄像机的内部参数标定后确定视觉系统的结构参数R和T(即两个摄像机之间的位置关系,R和T分别为旋转矩阵和平移向量)。
一般方法是采用标准的2D或3D精密靶标,通过摄像机图像坐标与三维世界坐标的对应关系求得这些参数。
具体的标定过程如下:1、将标定板放置在一个适当的位置,使它能够在两个摄像机中均可以完全成像。
通过标定确定两个摄像机的内部参数以及他们的外部参数(R1、T1与R2、T2),则R1、T1表示左摄像机与世界坐标系的相对位置,R2、T2表示右摄像机与世界坐标系的相对位置。
2、假定空间中任意一点在世界坐标系、左摄像机坐标系和右摄像机坐标系下的非齐次坐标分别为xw、x1、x2,则:消去xw,得到: 两个摄像机之间的位置关系R、T可以用以下关系式表示:1.4 双目立体视觉中的对应点匹配由双目立体视觉系统原理可以看出双目立体视觉是建立在对应点的视差基础之上,因此左右图像中各点的匹配关系成为双目立体视觉技术的一个极其重要的问题。
然而,对于实际的立体图像对,求解对应问题极富挑战性,可以说是双目立体视觉中最困难的一步。
为了能够增加匹配结果的准确性以及匹配算法的速度,在匹配过程中通常会加入下列几种约束:(1)极线约束。
在此约束下,匹配点已经位于两副图像中相应的极线上。
(2)唯一性约束。
两副图像中的对应的匹配点应该有且仅有一个。
(3)视差连续性约束。
除了遮挡区域和视差不连续区域外,视差的变化都是平滑的。
(4)顺序一致性约束。
位于一副图像极线上的系列点,在另一幅图像中极线上有相同的顺序。
图像匹配的方法有基于图像灰度(区域)的匹配、基于图像特征的匹配和基于解释的匹配或者多种方法结合的匹配。
二.使用HALCON进行双目立体视觉测量本节以电路板高度测量为例,讲述在HALCON中如何方便快捷地实现高效双目立体视觉测量(图像为640*480)。
2.1 双目立体视觉系统安装根据1.2节中对双目立体视觉系统结构分析以及精度的分析,在确保两个立体图像对有足够大的交迭区域的同时,根据待测物体表面形态以及精度要求设计合理的双目立体视觉系统安装方案(图2)。
然后将双目立体视觉系统安装在一个稳定的平台上,确保开始标定后,摄像机的焦距以及摄像机的相对关系都不发生变化。
2.2 双目立体视觉系统标定为了进行视觉系统的标定,需要得到空间点的三维坐标以及该点在左右两幅图像中坐标的对应关系,另外还需要给定两个摄像机的初始参数。
拍摄标定板图像时,要保证标定板在左右两个摄像机中都能够完整成像。
如果使用HALCON标准标定板,首先可以通过函数find_caltab()在标定板图像中分离出标定板区域,然后利用find_marks_and_pose()算子,该算子通过亚象素阈值、亚象素边缘提取、圆心确定等一系列操作计算标定板上每个点的图像坐标以及标定板与摄像机之间大约的位置关系,即摄像机的外参初始值。
其中使用find_caltab()分离标定板区域运算时间大约为5ms,find_marks_and_pose()计算标定板上49个标志点的坐标大约需要时间为40ms,计算坐标精度为亚象素级,如某标志点在左摄像机图像坐标系中坐标为(198.612619165, 344.142354438),右摄像机图像坐标系中相应点坐标为(212.140195587, 226.377754012)。
如果使用自定义的标定板,可以使用HALCON中的图像滤波、亚象素边缘及线提取、亚象素轮廓处理等基本函数开发算法求取标志点的坐标并估算摄像机的外参初始值。
获得标志点相应的坐标以及摄像机的起始参数后,通过调用函数binocular_calibration()来确定两个摄像机的内参数、外参数以及两个摄像机之间的相对位置关系。
通过539个标志点坐标的对应关系计算出摄像机各个参数需要的时间为1.6094s,计算误差约为0.02个象素。
2.3 校正立体图像对为了能够更精确地进行匹配,提高运算的效率,在获得摄像机的内外参数后首先对立体图像对进行校正。
校正的过程其实就是将图像投影到一个公共的图像平面上,这个公共的图像平面方向由双目立体视觉系统基线与原始两个图像平面交线的叉集确定。
校正后的图像可以看作是一个虚拟的立体视觉系统(图5)采集的图像对。
这个视觉系统中摄像机的光心与实际摄像机一致,只是通过绕光心的旋转使光轴平行,并且视觉系统中两个摄像机的焦距相同。
这个虚拟的立体视觉系统就是双目立体视觉原理中提到的最简单的平视双目视觉模型。
HALCON中将标定过程中获得的摄像机的内参以及两个摄像机相对位置关系作为参数传递给函数gen_binocular_rectification_map(),再将获得的两个图像的映射图传递给函数map_ image(),即可得到校正后的两幅图像,并可获得校正后虚拟立体视觉系统中两个摄像机的内参和外参。
其中函数gen_binocular_rectification_map()耗时约为0.3488s,map_image()耗时约为0.0050s。
2.4 获得图像中三维信息为了得到图像中某点的三维信息,需要在另一幅图像中找到该点的对应点坐标。
因此想获得物体的深度信息,首先需要对校正后的立体图像对进行匹配。
由于经过校正后,两幅图像中的对应点在图像的同一行中,因此在匹配时只需要在相应的行中寻找匹配点。
为了得到更佳的匹配结果,如果被测物体表面没有明显的特征信息,则需要测量时在物体表面增加特征点。