热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

双目摄像头三维坐标python_基于双目视觉的行车中障碍距离检测方法研究

目前无人驾驶汽车以及汽车安全辅助驾驶技术是近几年的研究热点。针对汽车在城市拥堵道路上低速运行时完全自动驾驶安全性问题,重点研究了基于双目立体视觉行车中障碍距离检测方法。该方法首先根

目前无人驾驶汽车以及汽车安全辅助驾驶技术是近几年的研究热点。针对汽车在城市拥堵道路上低速运行时完全自动驾驶安全性问题,重点研究了基于双目立体视觉行车中障碍距离检测方法。

该方法首先根据双目标定理论获取左右摄像机的内外参数和畸变系数,再进行双目图像校正与匹配,然后根据左右图像中目标点的不同坐标得出视差,最后利用三维重建方程组得出障碍物的距离。实验结果表明:该方法对汽车前方 5 米左右的障碍物检测精度高,距离误差小,能在城市复杂交通环境中及时作出相应的反应,有效避免交通事故的发生。

视觉作为汽车重要的环境感知手段已经得到了越来越多的研究。视觉感知的研究主要包括基于视觉的定位,基于视觉的道路和交通标志检测与识别和基于视觉的避撞技术。单目视觉测距系统相对于双目视觉测距系统而言,由于单目获取的信息量比较少,仅靠标定后的单目相机来测距并不能准确获取目标距离,因此对于双目测距国内外的研究也越来越多。

1.双目立体视觉测距系统,更好的模拟人眼功能

在国外,就是利用双目视觉获取被检测车辆的深度信息,再用 Kalmam 滤波对被检测车辆在图像坐标系和世界坐标系中进行跟踪。基于双目视觉系统,提出了对运动目标的检测方法,并能很好测出运动目标深度信息和速度大小,该方法能够较好获得运动目标的轮廓和速度。

通过双目立体视觉系统对牌照特征进行提取以及获取中心坐标来匹配相应的牌照对,然后利用 3D 重建方程组来获取前车位置参数。而在国内,在双目视觉基础上,应用 MeanShift 跟踪算法和双目立体视觉中空间点定位算法,设计了对运动目标的跟踪和测量系统。

利用双目立体视觉系统实现了对目标的识别与定位,从而控制机器人手臂完成抓取操作。利用双目立体视觉算法获得路标信息,进而辅助全球卫星导航系统(GNSS)。

然而尽管国内外的研究人员在测量前车距离方面做了很多研究,但是目前还是基于单目视觉的测距系统居多,由于单目视觉图像的距离感知精度偏低,因此,重点研究了双目立体视觉测距系统,它能够很好地模拟人眼功能,对三维世界进行感知。

《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》

双目立体视觉测距系统主要包括摄像机标定、图像分割、立体匹配和三维重建四个部分。对摄像机标定部分做了一定的改进,舍弃了原有的世界坐标系,提出了一种基于摄像机安装位置的汽车坐标系,这样就能够得出运动目标与汽车的相对位置,然后对汽车做出相应的控制处理,达到安全行驶的目的。具体流程,如图 1 所示。该方法能够有效提高障碍物检测精度,精确测得与前方物体的相对位置信息,具有一定的实用价值。

2.双目视觉的原理

2.1 摄像机标定

摄像机标定是获取摄像机内外参数的一个过程,其目的是建立一个从客观世界坐标系到图像平面坐标系之间的一个对应过程。现在应用比较广泛的是张正友教授提出的标定法,它是基于传统标定法和自标定法之间的一种优化方法。而所选用的标定方法就是改进的张正友标定法。

2.1.1 单目标定

单目标定是摄像机双目标定的前提,只有两个摄像机的内外参数都知道后才可以进行双目标定,首先建立坐标投影模型,明确现实中的点在世界坐标系下,经过旋转、平移怎样映射到图像平面上,如图 2 所示。

《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》
《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》
《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》
《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》

2.2.2 双目标定

《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》

2.3 改进的标定算法

双目标定中涉及到的世界坐标系是客观存在的,使用张正友标定法标定完后,内外参数一旦确定,则世界坐标系与汽车之间的位置关系也就相对静止了,若汽车在运动,则世界坐标系也在做了相同的运动。

考虑到这个因素,而且在这个系统中,只考虑到汽车与障碍物的相对位置即可,因此,选择一个相对不变的坐标系,该坐标系选在了两个摄像机所在的竖直平面内,具体的改进方法如下:

选择一个新的坐标系,把它称为汽车坐标系(X,Y,Z),它的原点位置选在了两台摄像机的中点。则齐次坐标关系为:

《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》

分别为左右摄像机内参数矩阵的逆。这样只要得出运动目标在左右摄像机图像上的坐标,再联立式(5)和式(10)就可以解得与汽车之间的相对位置。

3.双目立体视觉算法

3.1 图像滤波

在实际拍摄过程中,由于受设备和环境等因素的影响,图像信号在记录以及传输过程中,经常会受到各种噪声的影响,使得图像质量下降,目标特征不突出,因此对以后的图像分割、特征点提取以及立体匹配等过程产生影响。

所以必须对图像进行降噪处理,即对图像进行滤波,其中中值滤波属于非线性滤波,它对输入信号的响应是非线性的,因此会使某一点的噪声近似映射为零,而只保留信号的主要特征。所以本实验采用的是非线性滤波技术中的中值滤波。

3.2 图像分割

图像分割就是把图像细分为构成它的子区域或者对象,而进行分割的目的就是将我们所关注的图像目标从背景中提取出来,以便进一步分析和处理。

本实验采用的 Otsu 阈值分割法,根据周围环境光照强度的不同,使类间方差最大,从而能够自动确定阈值,大于阈值的像素用白色表示,其它阈值的像素就用黑色表示,这样就将原图像转化为黑白的二值图像。

《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》

3.3 双目校正与匹配

在获得摄像机内外参数后,再对双目图像进行校正处理,校正步骤有两个,一是消除镜头对图像产生的畸变,可以采用上节相机标定获得摄像机参数后,根据相机模型来进行消除;二是使双目图像共面并且严格行对齐,可以通过 Bouguet 重投影算法[11]将双目图像进行重投影。

双目匹配就是将物体上的一个投影点在左右两相机中同一时刻所拍摄的两幅图像上进行匹配,就是将一幅图像上的目标点与另一幅图像上的目标点对应匹配起来。

所使用的匹配算法是快速双目视觉立体匹配算法,经过该匹配算法处理后,可以将左右两摄像机图像中的

3.4 三维重建

《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》

4.实验验证与分析

4.1 实验的软硬件资源

试验所用的双目视觉测距系统包括两个 USB 摄像头,一台 PC 机,以及一个支架组成,如图 4 所示。软件环境为 VC++6.0,在此基础上载入 OpenCV 视觉库,可以完成整个系统的开发,系统主界面,如图 3 所示。但是由于使用 MATLB 对摄像机进行标定精度比较高,因此标定部分利用了 MATLB 软件。

《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》

4.2 摄像机标定

摄像机的标定有许多办法可以实现,可以用 Opencv 提供的标定函数进行标定,也可以用 MatlabCalibrationToolbox 进行标定,由于我们本次实验采用双目摄像机为固定状态,因此只需要标定一次就可以,虽然用 Matlab 标定工具箱进行标定需要手动操作,使得速度慢,但是标定的精度较高,因此采用了 MATLAB 进行标定。

首先打印一张(7X9)的黑白棋盘格的标定图片,如图 5 所示。并贴附在一个比较平整的水平板上,每个方格的大小为 28mmX28mm。

《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》
《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》
《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》
《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》

4.3 图像分割与立体匹配

在匹配之前先对图像进行预处理,即对图像进行分割得到二值化图像,如图 9 所示。由于分割后的二值化图像仍有一定噪声,对特征点提取不利,所以再进行形态学腐蚀或者膨胀处理,图 10 所示为膨胀处理图像。通过对比可以看出,膨胀处理图像比二值化图像特征点更突出。

《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》
《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》

立体匹配是本次实验的重点,在匹配之前我们要先进行图像的去畸变处理,再将两图片进行极线约束。图 11 就表示了去畸变以后的极线约束,这样两图片所对应的匹配点就在同一条直线上了。左右图像的视差图,如图 12 所示。

《双目摄像头 三维坐标 python_基于双目视觉的行车中障碍距离检测方法研究》

5.结语

主要研究了基于双目立体视觉测距的汽车前方障碍物的测量方法,为了完成测距,先后研究了双目立体视觉原理,摄像机标定,图像滤波与图像分割等预处理,双目校正与匹配,三维重建等关键技术,并且利用了 MATLAB OpenCV 相结合的方法完成了测距。

好让汽车进一步作出相应的配合。经过实验证明,该方法能够有效的测得前方障碍物的距离信息,提高汽车的感知精度。汽车在复杂环境下行驶时,如何自动提取多个目标物并准确完成距离测量工作将是无人驾驶汽车下一步研究的重点。


推荐阅读
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 魅族Flyme 7正式发布:全面解析与亮点介绍
    在22日晚的发布会上,魅族不仅推出了m15、15和15 Plus三款新机型,还正式发布了全新的Flyme 7系统。Flyme 7在保持流畅体验的基础上,进一步增强了功能性和实用性,为用户带来更加丰富的使用体验。首批适配包已准备就绪,将逐步推送给现有设备。 ... [详细]
  • 每日一书丨AI圣经《深度学习》作者斩获2018年图灵奖
    2019年3月27日——ACM宣布,深度学习之父YoshuaBengio,YannLeCun,以及GeoffreyHinton获得了2018年的图灵奖, ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 当前物联网领域十大核心技术解析:涵盖哪些关键技术?
    经过近十年的技术革新,物联网已悄然渗透到日常生活中,对社会产生了深远影响。本文将详细解析当前物联网领域的十大核心关键技术,包括但不限于:1. 军事物联网技术,该技术通过先进的感知设备实现战场环境的实时监测与数据传输,提升作战效能和决策效率。其他关键技术还包括传感器网络、边缘计算、大数据分析等,这些技术共同推动了物联网的快速发展和广泛应用。 ... [详细]
  • 在 Python 中,列表(list)是一种内置的数据类型,属于有序且可变的集合,支持随时添加或删除元素。此外,Python 还提供了多种独特的数据结构,如字典(dict)、集合(set)和元组(tuple),每种数据结构都有其特定的应用场景和优势。了解这些数值类型和数据结构对于高效编程至关重要。 ... [详细]
  • 如果程序使用Go语言编写并涉及单向或双向TLS认证,可能会遭受CPU拒绝服务攻击(DoS)。本文深入分析了CVE-2018-16875漏洞,探讨其成因、影响及防范措施,为开发者提供全面的安全指导。 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
  • 了解供应链简单来说,供应链涉及一系列旨在向最终用户提供产品或服务的步骤。企业组织及其供应商之间始终存在一个网络,来生产特定产品并将其交付给最终用户。该网络包括不同的活动、人员、实体 ... [详细]
  • 简介时间同步是指以中心控制系统的标准时钟作为基准使各分布系统和终设备的时钟与中心控制系统时钟进行同步的过程。随着5G和工业5.0的到来,网络终端设备和网络业务的飞速增 ... [详细]
  • PHP与MySQL的Web应用开发技术深入解析
    PHP与MySQL的Web应用开发技术深入解析 ... [详细]
  • 设计实战 | 10个Kotlin项目深度解析:首页模块开发详解
    设计实战 | 10个Kotlin项目深度解析:首页模块开发详解 ... [详细]
  • 深入探讨:Java 8 中 HashMap 链表为何选择红黑树而非 AVL 树
    深入探讨:Java 8 中 HashMap 链表为何选择红黑树而非 AVL 树 ... [详细]
  • 本文深入探讨了二叉树路径和问题的算法优化方法。具体而言,给定一棵二叉树,需要找出所有从根节点到叶节点的路径,其中各节点值的总和等于指定的目标值。通过详细分析和优化,提出了一种高效的解决方案,并通过多个样例验证了其有效性和性能。 ... [详细]
  • 本文深入解析了计算力扣平台上汉明距离问题的官方解法,并通过优化算法提高了计算效率。具体而言,我们详细探讨了如何利用位运算技巧来高效计算数组中所有数对之间的汉明距离,从而在时间和空间复杂度上实现了显著改进。通过实例代码演示,使读者能够更直观地理解这一优化方法。 ... [详细]
author-avatar
手机用户2602937435
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有