基于ROS机器视觉的辅助驾驶系统设计
2020-11-02曾仕峰吴锦均叶智文赖怡雯叶妙欣
曾仕峰 吴锦均 叶智文 赖怡雯 叶妙欣
摘要:随着社会科技的发展和人工智能时代的来临,辅助驾驶技术逐渐走进人们的视野,开始在社会中发挥作用。为了进一步解决在人为驾驶中存在的主观因素的交通隐患问题,本项目紧跟目前已有的"机器学习+路径规划"技术设计一种基于ROS机器视觉设计的智能辅助驾驶系统。本设计运用激光雷达结合GPS模块的导航定位技术精确定位辅助驾驶系统的位置并规划行进路线,再结合“激光雷达+景深摄像头”可实现系统的环境数据采集和做出规避。
关键词:激光雷达建模;路径规划;景深摄像头;Open CV机器识别
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2020)26-0173-03
随着5G时代的到来以及人工智能技术的发展和完善,现如今我们已不再局限于人为驾驶,辅助驾驶技术开始进入我们的生活。众所周知,我们现如今在货物和外卖等一些运输工作上还有更多完善的空间,且汽车行车过程中的安全问题和风险也需要我们去尽量降低。本设计可以有效监控红绿灯或突发意外,为人们的生活工作提供帮助。本设计是通过Open CV景深摄像头模块对红绿灯进行跟踪识别。该无人驾驶汽车对行驶控制进行了优化,例如制动、加速等方面,这对于汽车提高发动机效率、降低污气排放有积极的作用。同时运用上了结合雷达实地三维建模的视频处理技术,这将大大地提高小车的性能,更好地实现无人安全驾驶,使无人驾驶技术能够在生活中得到更好运用。
1 系统总体设计
本设计系统总体设计框图如图1所示。
在硬件方面,該项目以英特尔i3工控机作为数据处理中心,激光雷达、景深摄像头作为环境数据采集模块,MPU6050、TB6612以及霍尔编码器电机作为辅助系统姿态控制模块,双模GPS作为系统定位模块。
在软件方面,英特尔i3工控机搭载ROS(Robot Operating System)对环境信息、GPS位置信息等进行处理。在此过程中,我们可以利用Open CV算法对环境信息中的图像信息进行备注,并对交通信号以及其他汽车、自行车和行人进行识别,并利用RRT(即Rapid-exploration Random Tree)算法处理当前GPS位置信息来对路径进行规划,最终利用PID算法对激光雷达采集的景深和点云数据进行处理,输出数据,进而控制系统的姿态调整。
工作原理:Lidar采集到环境中的点云数据,而点云数据负责提供二维环境中物体之间的距离;景深摄像头则采集到的是3D图像数据,3D图像数据则提供二维图像数据。可用于识别标识颜色和字体,帮助检测道路标志、交通信号灯和街道标记等。3D图像数据还提供环境中物体的三维数据,用于识别车辆、行人及其他障碍物,帮助系统实现避障和姿态控制。双模GPS提供全球经纬度数据,用于定位系统位置,帮助系统实现路径规划。英特尔i3工控机从激光雷达、景深摄像头中获取环境数据,并分别提取距离、图像数据,再用Open CV处理图像数据提取特征图像,用PID算法处理距离数据。工控机从双模GPS模块中提取经纬度数据并送入RRT算法[1]中进行处理。经过上述的数据处理过后,最终输出姿态控制数据给TB6612电机控制板控制系统运动姿态。
2 系统硬件设计
2.1 交通灯的检测设计
本设计运用景深摄像头来实现识别检测,对于交通灯,主要有红、绿、黄三种颜色,当辅助驾驶系统行驶在公路上,不排除周围环境也存在其中三种颜色,可想单纯用颜色识别进行检测交通灯是行不通的。所以,首先用基于Open CV的景深摄像头进行颜色识别,比如:当红灯亮时,首先利用颜色识别将周围红色物体提取出来,再利用Open CV算法[2]进行边缘检测,最后再进行霍夫找圆来实现对红灯的检测,接着做出识别到了红灯点亮的判断,并命令小车停止前进。
2.2 基于Open CV机器识别检测
本设计采用景深摄像头,该摄像头拥有一个一个红外发射器,RGB彩色摄像头,一个红外线CMOS摄像机。红外线CMOS摄像机在图像阴影处、光线条件不好的环境下有较好的成像性能,能弥补RGB彩色摄像机的不足,并利用Open CV算法对数据处理,进行监测当前路况,判断小车是否行驶在安全路段?是否闯红灯?是否与前后车辆保持安全距离和行驶速度?结合上述三个摄像头组成了景深摄像头,能对三维立体空间中的物体进行较为准确地感知,辅助驾驶系统通过对三个摄像头的数据进行获取并处理后,能够构建摄像头周围环境,并做出相应的运动或规避。
2.3 自动定位导航设计
本设计利用工作在红外和可见光波段的激光雷达来实现自动导航[3],并结合近距离精度高特点的GPS模块[4]来实现辅助驾驶系统的精准定位。激光雷达是以发射激光束探测目标的位置、速度等特征量的雷达系统。向目标发出探测信号(激光束)然后将捕获到从目标反射回来的信号(回波信号)与发射信号进行比较作适当处理后就可获取目标的相关信息如目标距离、方位、时速、形状、甚至位置姿态等参数,再加上具有较强的抗干扰能力,即可实现自主巡航。但激光雷达对于近距离物体的测量精度不够高,运用于辅助驾驶系统上会大大降低安全性,则可结合近距离高精度的GPS模块进行补偿系统测距问题。
3 系统软件设计
3.1 主程序设计
如图3所示为主程序设计流程图。运作流程为:1)工控机打开电源之后进入Ubuntu系统,然后初始化景深摄像头和普通摄像头、GPS定位模块和激光雷达等模块;2)初始化成功之后不停地检查有无指令输入;3)当收到启动功能指令后,将目标经纬度和目的地经纬度经行多次对比,然后使用地图的数据库规划出一条正确的路径;4)景深摄像头和激光雷达开始工作,工控机开始进行环境3D建模[5];5)确认行车路线无障碍且适合行驶后,使用PID算法对姿态进行调整,并且计算出最终的输出值,将输出值转换为PWM以此驱动电机到达目的地。
3.2 功能程序设计
3.2.1框架的技术设计图
系统在道路中辅助驾驶的时候会遇到各种不可想象的情况这就对机器视觉部分提出了非常高的要求仅靠激光雷达与深度摄像头还不足以完成自动驾驶的全部功能所以我们采用了图像处理Open CV。我们使用了Open CV能够实现运动车辆的检测与跟踪、信号灯与停止线的检测与识别、车辆超速检测还有行人检测[6]等功能。
3.2.2运动车辆的检测与跟踪
可以采用基于帧间差分与背景差分的算法[7]对车辆进行追踪先用摄像机所得到的视频图像进行滤波处理之后再用Open CV进行帧间差分和背景差分运算。图5是基于小波变换的车辆跟踪流程图。
3.2.3 信号灯与停止线的检测与识别
信号灯检测:首先将摄像头获取得到的图像使用cvtColor函数进行灰度图的转换,然后将得到的灰度图使用inRange函数进行红色、黄色、绿色这三种颜色色块的寻找,再将寻找到的色块区域设置为感兴趣区域(ROI),再从ROI区域中使用霍夫找圆函数HoughCircles()对ROI区域进行找圆,如果在红色区域找到圆则说明当时是红灯。
停止线检测:先对停止线进行设定,确定初始的位置,然后将Hough变换[8]应用于固定的区域里进行候选点检测, 再结合背景图方面现有的各种先验知识,将不属于停止线检测结果的數据或错误的数据排除掉,最后将剩余的可用检测点集中起来,求取平均值,以此求出运动目标和停止线之间的实际位置情况。
3.2.4车辆超速检测
方法一:通过GPS获取到当前车道的行车信息,然后再通过该行车信息进行车速的控制。
方法二:通过识别该车道上的各种路标,例如对摄像机获取到的限速标志使用Opencv中的cvtColor函数将其转为灰度图,然后再使用Canny算法找出图像中的边界,再使用霍夫找圆将找到的圆设置为感兴趣区域,再将这些感兴趣区域与我们之前训练好的数据库中的路标进行对比,最后得出该限速路标的最高时速,知道该路段的最大速度后再与系统的自身速度进行对比就可得知小车有无超速。
3.2.5 行人检测
对于辅助驾驶系统来说,行人检测是最主要的部分,其关乎人身的安全。这也是我们最难的一部分,我们采用的方案是人工特征+分类器,人体有其自带的特征,比如衣服的颜色, 人体的边缘等,这些特征都是我们用来检测行人的重要标志,我们采用分类器有SVM,AdaBoost这些在机器视觉经常被人们用到的算法[9]。采用HOG+SVM, HOG特征检测[10]能够找出行人的形状和一些重要的外观信息,找到该信息后就能确定行人的感兴趣区域,然后再对该区域使用SVM分类器进行更加确定的分析。
4 总结
本项目致力于研究十字路口人/车交通违章行为AI监测中基于ROS的辅助驾驶技术。运用“双模GPS导航定位”技术,精确定位辅助驾驶系统的位置并规划行进路线;其次,本系统设计结合了深度摄像头,其原理类似于人眼,能够利用视差进行三维的检测,因此我们决定用深度摄像头来对环境进行三维的检测,以此来辅助雷达进行更加准确的建模,保证准确性,再将数据发送给工控机,工控机再将处理好的数据通过ROS传输给驱动板以此来完成辅助驾驶。测试结果表明,系统检测的精度和灵敏度能够得到增大,既节省驾驶员的精力,又可以减轻违法违规现象和交通事故的发生,达到了我们所需的设计要求。
参考文献:
[1] 施杨洋,杨家富,布升强,等.基于RRT改进的智能车辆路径规划算法[J].计算技术与自动化,2019,38(4):81-86.
[2] 吕晶晶.机器人视觉识别的设计与研究[J].江苏科技信息,2016(22):74-76.
[3] 郭子明,蔡伯根,姜维.基于激光雷达的铁路轨道检测方法[J].中南大学学报(自然科学版),2020,51(2):560-566.
[4] 王君刚,王解先,陈俊平,等.U-Blox 6接收机解码与定位测试[J].测绘通报,2015(11):24-27.
[5] 陈超,张伟伟,徐军.一种基于三维视觉的移动机器人定位与建图方法[J].现代电子技术,2020,43(6):34-38,42.
[6] 白中浩,李智强,蒋彬辉,等.基于改进YOLOv2模型的驾驶辅助系统实时行人检测[J].汽车工程,2019,41(12):1416-1423.
[7] 陈媛,蔡晓燕.改进的帧间差分运动目标检测算法研究[J].现代计算机,2019(33):41-44.
[8] 于升源,陈乐庚,蒙双,等.基于暗通道优先和Hough变换的雾天车道线识别算法[J].传感器与微系统,2020,39(1):146-149.
[9] 何松华,章阳.基于快速检测和AdaBoost的车辆检测[J].计算机工程与设计,2020,41(1):203-207.
[10] 王阿南,荣宪伟,庞新雨.基于超像素的行人检测算法研究[J].哈尔滨师范大学自然科学学报,2019,35(3):66-71.
【通联编辑:唐一东】