基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】

基于双目立体视觉的图像匹配与测距

引言

1.1研究背景和意义

人类通过感觉器官获取的外部世界信息里有 80%是来自视觉。研究生物视觉系统发现,双目是生物具有视觉的重要前提。以人为例,当人用两眼分别观察视野前方的物体时,会发现左眼和右眼观察到的物体在距离和方位上不大一致,这就是视差。通过视差对比分析,才能更好地研究物体在实际世界的中位置。

由于双目立体视觉系统是通过模拟人的双眼来进行感知这一原理,因此在实际中只需要两个相机,并将它们像人的双眼一样,安装在同一水平线上经过简单校正之后就可以投入使用。实现方式相对简单,使用成本低廉。因此,本文通过对双目立体视觉系统的研究,可以更好地理解图像特征提取与匹配的算法原理和效率,并且实现在非接触条件下快速准确测量。

1.2主要研究内容

(1)在对相机成像和坐标系原理研究的基础上,依托维视双目立体视觉测量平台 MV-VS220 实现了双目相机标定,以及目标物体图像数据采集。

(2)在灰度化、二值化以及加噪等必要图像预处理的基础上,研究 SIFT、SURF 特征点提取与匹配算法,进行实验并显示提取和匹配效果;研究测距模型和视差深度计算目标物体的深度信息, 进行实验并获取测量结果,对测量误差进行分析与讨论。

(3)基于维视双目立体视觉测量平台 MV-VS220,采用 Python+OpenCV 开发工具,设计实现了一个双目立体视觉图像匹配与测距原型系统,可实现对关键环节的过程与结果的演示,以及不同算法的性能比较。

2相机成像与标定

探究摄像机成像模型与视觉坐标系之间的转换关系,世界坐标系中物点 P 的坐标(, , )与图像像素坐标系中成像点 p 的坐标(, )间的关系,如式(1)所示。

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第1张图片

之后采用张正友标定法进行相机标定实验,得到的相机参数如下表 1 所示。

表 1 相机标定参数结果

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第2张图片

3 特征点的提取与匹配

研究 SIFT 和 SURF 两种算法所提取的特征关键点,针对环境变化时的性质与提取效率,并通过实验数据显示研究结果。首先利用搭建好的维视双目立体视觉测量平台 MV-VS220 采集目标物体图像,然后对比原图像和灰度化、二值化、加噪等不同预处理图像,在 SIFT 特征提取和 SURF 特征提取之后的效果如图1所示。

(a)原图像 (b)SIFT 特征提取 ©SURF 特征提取

图 1 原图像与预处理图像特征提取之后效果图

原图像和预处理图像经过 SIFT 特征提取和 SURF 特征提取后效率对比如图 2 所示。

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第3张图片

图 2 原图像和预处理图像经过 SIFT 和 SURF 特征提取后效率对比图

原图像和加噪图像、旋转变化图像、光照图像经过 SIFT 和 SURF 特征提取后效果如图3所示。

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第4张图片

(a)原图像 (b)SIFT 特征提取 ©SURF 特征提取

图 3 原图像和不同环境图像经过 SIFT 和 SURF 特征提取后效果图

原图像和不同环境图像经过 SIFT 特征提取和SURF 特征提取后效率对比如图4所示。

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第5张图片

图 4 原图像和不同环境图像经过 SIFT 特征提取和 SURF 特征提取后效率对比图

提取特征点之后进行图像特征匹配研究,主要采用 SURF 特征点分别结合 FLANN 匹配法和 BF匹配法进行研究分析,实验效果图如下图 5 所示。

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第6张图片

​ (a) FLANN 匹配 (b) BF 匹配

图 5 SURF 特征点结合 FLANN 匹配和 BF 匹配效果图

最后得到的不同特征点与匹配方法组合的实验结果如下表2所示。

表 2 不同特征点和匹配方法组合实验结果

特征点+匹配方法 阈值 左/右特征点提取个数 总匹配对数 误匹配对数 误匹配率(%) 匹配时间(ms)
SIFT+BF - 538/427 538 438 81.41% 76.4161
SIFT+FLANN - 538/427 538 438 81.41% 45.0403
SURF+BF 3000 98/79 98 63 64.28% 9.5683
SURF+FLANN 3000 98/79 98 63 64.28% 5.2383
SURF+BF 5000 47/34 47 29 61.70% 6.1689
SURF+FLANN 5000 47/34 47 29 61.70% 3.5768
SURF+BF 7000 26/21 26 8 30.76% 4.5186
SURF+FLANN 7000 26/21 26 8 30.76% 2.1976

对于相同的特征点,不同匹配方法得到的情况相同,误匹配率也是一致的,但是 FLANN 明显快于 BF 方法;对应相同的匹配方法,不同的特征点的匹配情况各不相同,SURF 特征点比 SIFT 特征点匹配精度要高很多,而且 SURF 阈值越大,精度越高,速度也要快。

4 目标定位与测距

研究平行双目模型和视差深度算法得到视差深度计算公式,之后需要进行目标测距实验。实验采集的原始图像根据相机参数重构之后的图像如下图6所示。

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第7张图片

图 6 左右相机重构图像

最后得到的深度差异图如图7所示。

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第8张图片

图 7 深度差异图

可由深度差异图获得相应的位置上的对应深度信息,实验结果整理如表3所示。

表 3 目标测距实验结果与误差

匹配点对图像像素坐标(单位:像素) 对应特征点三维坐标(单位:mm) 测量距离(单位:mm) 实际距离(单位:mm) 误差%
(145,77) (-1528.5068,-190.49118,4126.581) 4126.581 4225 2.33%
(171,105) (-1559.8071,-159.69981,4309.4355) 4309.4355 4321 0.27%
(200,121) (-1520.9952,-137.44597,4314.6025) 4314.6025 4322 0.17%
(200,146) (-1481.9042,-99.74401,4203.7134) 4203.7134 4319 2.67%
(200,163) (-1519.1737,-78.43294,4309.4355) 4309.4355 4319 0.22%
(273,135) (-1466.0504,-121.74778,4458.957) 4458.957 4320 3.22%
(341,118) (-1748.8832,-187.22635,5702.66) 5702.66 5502 3.65%
(361,111) (-1144.2224,-133.8237,3811.8416) 3811.8416 4006 4.85%

5 系统设计与实现

基于双目立体视觉原理和已有的相机标定实验、图像匹配实验以及距离测量实验结果,设计并实现了一个立体匹配与测距原型演示原型演示系统。系统主要包括打开图像采集功能、图像匹配功能以及距离测量功能,系统的功能结构如图8所示。
基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第9张图片

图 8 系统功能结构图

系统使用的硬件平台如图9所示。系统软件主界面和各个功能模块截图如

图10所示,主要包括图像采集、图像匹配、距离测量三个功能模块。点击相应的按钮进入单独的功能界面。

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第10张图片

图 9 维视双目立体视觉测量平台 MV-VS220

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第11张图片

图 10 演示系统主界面和各功能模块界面截图

经系统测试,本文所设计实现的图像匹配与测距系统能够成功采集图像并进行特征点提取与匹

配,可以对目标物体进行定位和距离测量。系统从界面、功能与性能方面均达到了设计的要求。

6 总结

在理解双目立体视觉原理的基础上,研究了相机成像模型和视觉坐标系,通过相机标定实验获取了相机参数;研究了基于 SIFT 和 SURF 算法的特征点提取以及 FLANN 和 BF 匹配法的原理,通过实验对比了不同算法的效果与效率;研究了目标物体的定位与测距的原理,通过实验获得对应深度信息及误差;设计并实现了基于双目立体视觉的图像匹配与测距演示系统,完成了必要的功能演示。

今后,仍需深入研究特征提取与匹配方法,使其具有更好的匹配效果与更快的执行速度;还需要进一步完善目标物体的定位和测距以减小测量误差;同时,需要继续进行演示系统的功能完善和界面美化等工作。

♻️ 资源

基于Python+OpenCV实现双目立体视觉的图像匹配与测距【100010478】_第12张图片

大小: 99.2MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87392388

你可能感兴趣的:(opencv,python,数码相机)