《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于OpenCV的嵌入式车辆驾驶偏离报警系统
基于OpenCV的嵌入式车辆驾驶偏离报警系统
2015年微型机与应用第16期
陈洁婧1,高 铮1,桂颖溢2
(1.中国农业大学 信息与电气工程学院,北京 100083; 2.北京理工大学 光电学院,北京 100081)
摘要: 为减少因驾驶员无意识偏离车道行驶造成的交通事故,基于ARM和OpenCV建立嵌入式车道偏离报警系统。重点介绍了系统的设计、平台的搭建和算法处理流程。该系统通过摄像头采集获取图像信息,并应用OpenCV对图像进行预处理,通过提取图像中车道线信息,评估车辆行驶状态是否偏离车道中心位置,根据车辆的行驶状态,发出报警,提醒车辆驾驶人员当前行驶偏离情况,以达到辅助安全驾驶的目的。
Abstract:
Key words :

  摘  要: 为减少因驾驶员无意识偏离车道行驶造成的交通事故,基于ARM和OpenCV建立嵌入式车道偏离报警系统。重点介绍了系统的设计、平台的搭建和算法处理流程。该系统通过摄像头采集获取图像信息,并应用OpenCV对图像进行预处理,通过提取图像中车道线信息,评估车辆行驶状态是否偏离车道中心位置,根据车辆的行驶状态,发出报警,提醒车辆驾驶人员当前行驶偏离情况,以达到辅助安全驾驶的目的。

  关键词车辆离道报警系统嵌入式系统;OpenCV;安全辅助驾驶

0 引言

  近些年随着智能汽车的发展,汽车的主动安全性能受到人们的广泛关注,安全辅助驾驶的设备大量涌现,相关研究已经成为智能交通系统研究的重要内容。大量相关研究表明,约有44%的车辆事故是由驾驶员疲劳驾驶或其他因素引起的车辆无意识偏离车道导致的。因此,车辆离道报警系统能够有效避免事故的发生,提高驾驶安全性能。

  目前大多数嵌入式车辆离道报警系统多由一块简单的嵌入式CPU配以DSP或FPGA处理器加速图像处理部分[1],抑或在ARM处理器的Linux操作系统上直接运行车道偏离检测算法[2]。随着近些年嵌入式处理器性能的大幅度提升,已经可以将全部的图像采集、处理、报警系统全部交给高性能嵌入式CPU进行处理,开发人员只需要在一种平台上进行设计、开发即可完成全部系统的搭建,具有降低开发难度的优势。本研究在高性能ARM平台上移植OpenCV(Open Source Computer Vision Library),使用OpenCV完成全部图像采集处理以及报警功能,系统集成度高,具有可用性强、稳定性高、维护与升级简单等优势。

1 系统设计

001.jpg

  在汽车行驶过程中,驾驶员、汽车、行驶情况(路况)三者呈紧密耦合的闭环系统[3],如图1所示。本文主要从监控形式情况中的路面信息入手,解决驾驶员无意识行驶偏离情况,通过报警的方式提醒驾驶员车辆偏离车道,从而实现辅助安全驾驶的目的。

  本文所实现的系统由硬件平台、Linux操作系统和上层OpenCV软件及算法程序组成。系统主要实现功能包括:通过摄像头获取包含车道信息的视频帧图像,通过OpenCV对取得的图像进行预处理、车道边缘提取,再根据提取出的车道边缘信息进行车辆驾驶离道评估,最终根据评估结果进行相应的报警措施。其流程图如图2所示。

002.jpg

2 系统搭建

  硬件层面,本系统的核心处理器选用ARM4412四核处理器,具有1.4~1.6 GHz主频,通过Pin口在硬件电路上直接与500万像素高清晰摄像头相连,外围配以42 V转5 V供电电路,可以直接接入汽车42 V电源系统。

  软件层面,本系统在ARM处理器上移植Linux 2.6.38操作系统,并配置摄像头驱动。在宿主机上通过交叉编译的方式,向其移植OpenCV。由操作系统控制,通过摄像头采集来的数据交付OpenCV进行处理,返回的报警信息经操作系统判断是否为无意识车道偏离,并发送给报警系统,发出报警。系统结构如图3所示。

003.jpg

3 算法设计

  本系统核心算法实现于OpenCV上,在OpenCV上对采集来的图像进行按帧处理,通过以下算法进行车道图像的预处理、车道检测、偏离报警功能。

  在原始图像中,由于路面障碍物、车道远方景物以及天空等信息具有很强的干扰性,因此,需要将图像进行预处理后才能用于车道的检测。预处理阶段将图像初始化,裁剪选择适当的区域[4],以减少干扰并提高计算效率。为了消除画面中的噪声,同时提高后续算法的准确性,还需要对图像进行滤波操作。在综合考虑处理效果与运算速度的情况下,本系统在预处理阶段首先对图像进行灰度化,以便加快后续处理速度;再对画面进行高斯模糊,去除原始图像中的噪点;然后进行连通域滤波,通过预先设定的面积阈值,消除画面中小面积的干扰图像,使画面中干扰点大幅度降低。

  对经过预处理后的图像进行车道提取时,首先使用Canny算子运算,提取出画面中物体的边缘,由于Canny算子使用时需要确定阈值,一些图像识别算法采用动态阈值的方法进行处理,而导致运算量增加,系统实时性降低[5]。本文通过实验确定在较高时速行驶时Canny算子恰当阈值,采用固定阈值算法进行运算,在保证实时性的前提下,达到准确检测车道的目的[6]。提取边缘后,通过霍夫变换[7]提取图片中车道的信息。再通过抛物线车道线拟合,将车道信息变换成数学模型,即完成完整的车道信息提取步骤。

  将处理好的车道线数学模型经过运算,求出车道中心点,并与车辆中心点进行比较。由于本系统选用前置摄像头模式,并默认将摄像头安装在车头的中央,画面的中心即为车辆的中心,因此将车道中点与画面中心坐标进行对比判断,即可得出车辆相对于车道的偏移量,从而得出车辆的离道情况。根据道路宽度和车辆的宽度,本系统默认设置车辆偏离车道达到约30 cm时为偏离,约50 cm时为严重偏离,该阈值可以在系统中进行调整。总体流程图如图4所示。

004.jpg

4 实际效果

005.jpg

  以实际路面为例,显示本系统在不同阶段处理图像后的结果。图5为原始图像经过灰度、高斯模糊后的图像,图6为Canny算子运算后的图像,图7为提取出的车道线以及其延长线。

5 结论

  本系统创新之处在于将OpenCV移植到嵌入式平台上,通过高性能的嵌入式处理器,支持系统的高性能运作。相较于以往的车辆离道报警系统,本系统良好地屏蔽了嵌入式环境,提供了更好的开发模式,易于升级和系统维护。

参考文献

  [1] 芮晴波.基于DSP Builder的行车道检测的实现[J].电子技术应用,2007,33(6):60-61.

  [2] 李晓松.基于ARM汽车视觉导航的车道线识别技术研究[D].武汉:湖北工业大学,2013.

  [3] 陈清阳,李健,安向京,等.嵌入式车道跑偏告警系统设计[J].计算机仿真,2008,25(11):261-265.

  [4] 刘纪红,康小霞,杨丽.结合机器视觉的车道偏离识别算法研究[J].电子技术应用,2013,39(3):133-135.

  [5] BERTOZZI M, BROGGI A, CELLARIO M, et al. Artificial vision in road vehicles[C]. Proceedings of the IEEE, 2002,90(7):1258-1271.

  [6] 雒涛,郑喜凤,丁铁夫.改进的自适应阈值Canny边缘检测[J].光电工程,2009,36(11):106-111.

  [7] 韩博.嵌入式车道偏离预警系统[D].吉林:东北师范大学,2014.


此内容为AET网站原创,未经授权禁止转载。