热门标签 | 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做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 深度学习与神经网络——邱锡鹏
    深度学习与神经网络——邱锡鹏-一、绪论人工智能的一个子领域神经网络:一种以(人工))神经元为基本单元的模型深度学习:一类机器学习问题,主要解决贡献度分配问题知识结构:路线图:顶 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 老牌医药收割AI红利:先投个15亿美元抢中国人才
    萧箫发自凹非寺量子位报道|公众号QbitAI没想到,一场大会把我的“刻板印象”攻破了。2021世界人工智能大会现场,能看见不少熟悉的身影, ... [详细]
  • 驭势科技签约禾赛科技,携手推进“全场景”自动驾驶商业化
    2021年12月8日,全球领先的激光雷达公司禾赛科技和自动驾驶商业化全球领跑的公司驭势科技共同宣布,双方达成战略合作协议。根据协议,禾赛将 ... [详细]
  • 2017亚马逊人工智能奖公布:他们的AI有什么不同?
    事实上,在我们周围,“人工智能”让一切都变得更“智能”极具讽刺意味。随着人类与机器智能之间的界限变得模糊,我们的世界正在变成一个机器 ... [详细]
  • 地产科技战:10+
    作者|肖漫出品|雷锋网产业组一场房地产巨头的求变征战,正悄然开启。近年来,在限价限购、“房住不炒”以及三道红线的调控政策下,房地产企业竞相加快转型升级的步伐。一方面,房地产市场增量 ... [详细]
  • 热点追踪深度探讨实地探访商务合作当一个哲学家遇到大数据分析会发生什么?如果告诉你,这个组合曾帮助美国“猎杀拉登”,你是否会惊讶到瞪眼睛。在 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
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社区 版权所有