基于车联网V2P的行人检测安全预警行车辅助系统设计
2021-01-27
(武汉科技大学城市学院 430083)
0 引言
自动驾驶如今已经成为众多车企坚定不移的未来重点研发方向。然而在现阶段的技术、社会背景下,自动驾驶技术更多的停留在概念与测试阶段,其实际应用还有很长的路要走[1]。因此,将未来可期的自动驾驶技术以智能辅助驾驶系统的方式逐步引入汽车现有的配置中,提高驾驶安全系数,简化驾驶过程,是现今的主流趋势。
所谓车联网,指的是通过汽车上集成的GPS 定位,RFID 识别,传感器、摄像头和图像处理等电子组件。按照约定的通信协议和数据交互标准,在V2V、V2P、V2I 等之间,进行无线通信和信息交换的大系统网络。车联网技术不仅可以改善道路通行效率,解决交通拥堵,还能提高交通安全水平,是未来智慧交通的重点发展方向[2]。由于缺乏可行的沟通渠道,V2P 安全系统的发展并未达到与V2V 和V2I 同等的高度[3]。
本文设计的系统就是在这种理念下,将自动驾驶中的一项关键技术:行人检测功能应用到已经普遍配备于汽车上的行车记录仪上。同时增加对车内驾驶员情况的监督功能,达到提示驾驶员车辆非行驶或行驶状态下可能遇到的与行人相关的危险情况以及车辆盗窃、疲劳驾驶和注意力不集中等车内情况。
1 系统组成及功能
1.1 系统组成及功能概述
本系统在硬件结构组成上可以分为3 个部分:控制模块、行人检测模块和驾驶员监督模块。其中控制模块由树莓派和音频输出模块组成;行人检测模块包含一个带有夜视功能的摄像头和三色LED 灯发光模块;驾驶员监督模块则包含一个带有夜视功能的摄像头。
1.2 控制模块
系统的控制器为8G 内存版本的树莓派4B,该控制器配备ARM Cortex-A72 1.5GHz(四核)内核,8GB 运行内存,支持有线/WiFi/4G 网络连接,40 个外接I/O 引脚,能够运行基于Linux内核的Raspbian 系统,并能够连接显示器、鼠标和键盘等外部设备直接进行桌面可视化操作。以上特性为系统的功能实现提供了硬件支持,并且极大程度的简化了系统的研发、提高了项目设计和程序调试的效率。
在样机开发、调试过程中,音频输出模块使用了可同时支持3.5 mm 音频输入连接和蓝牙连接的可充电便携式扬声器,可分别实现与控制器的有线/无线连接。该模块的主要功能是完成系统中包含的全部语音提示功能,具体有:在检测到汽车行驶方向范围内出现行人时,提示行人所在的方向和大致距离;在检测到驾驶位置上出现非授权使用者时发出警告音;车辆行驶中,在检测到驾驶员出现面部特征识别不清时提示注意安全驾驶[4]。
图1 树莓派4B
图2 摄像头(带夜视功能)
图3 三色LED
1.3 行人检测模块
行人检测模块由带有夜视功能的摄像头(图2)和三色LED模块(图3)组成。由于车辆行驶过程及停车后环境光线可能存在较暗的情况,本系统采用带有夜视功能的摄像头以增强视频、图像的采集质量。除传统行车记录仪必备的车辆行驶过程录制功能外,摄像头模块的另一个重要功能是每隔一定时间间隔截取一帧图像,应用人体检测算法,得到汽车行驶方向范围内行人的位置和距离,并通过语音提示驾驶员。同时,点亮对应方向的LED,经由特制反光板反射在仪表台上,既起到提示驾驶员的作用,又不至于影响正常驾驶的视野。
1.4 驾驶员监督模块
驾驶员监督模块包含一个带有夜视功能的摄像头。由于夜晚行车时容易出现疲劳驾驶的情况,而这种条件下车内的光线普遍不足,对内摄像头采用的仍然是与对外模块相同的带有夜视功能的摄像头。对内摄像头每隔一定时间间隔会对驾驶员面部方向拍摄一帧图像,应用人脸识别算法,得到驾驶员的人脸信息,并实现2 个功能。
(1)当驾驶员不属于授权人员时,通过扬声器发出警告。
(2)当车辆行驶过程中出现面部特征识别不清时,提示驾驶员注意安全驾驶。
2 系统关键技术研究
2.1 系统关键技术概述
系统关键技术分为3 个部分:第一,用于实现行人检测的人体检测算法;第二,用于实现驾驶员监督的人脸识别算法;第三,用于提示驾驶员的语音合成算法。由于前两者(视频/图像处理)需要的硬件资源支持要求较高,这里对部署算法方式的可行性分析着重考虑系统关键技术中的第一点和第二点。
本系统选择的控制器树莓派4B 的性能参数足以支撑部署在本地的图像处理算法,同时该控制器支持有线/WiFi/4G 网络连接,所以备选的算法部署方案有以下2 种。
(1)本地部署OpenCV 库,应用python 编程实现上述三个部分的算法设计。其优点为不需要依赖网络,缺点为图像处理较大的运算量对整个系统的硬件资源占用率较高、对系统实时性的影响较为明显。
(2)本地采集视频/图像信息,经由网络连接上传至智能云应用相应算法后返回处理结果,再由本地根据返回值执行后续操作。其优点为本地硬件资源占用率低、系统实时性较好,缺点为对网络连接的依赖较强且受网络信号强度、智能云服务质量等因素制约[5]。
由于本系统为汽车智能辅助驾驶系统,对实时性的要求较高,且系统设计基于智能车联网平台,网络连接功能应处在一个符合上述要求的条件下,所以本系统选择上述方案中的后者,即采用智能云计算的方式部署系统关键算法。市面上常见的可以为本项目研发提供技术支持的智能云计算包含百度云、华为云、阿里云等品牌,本文选择了百度智能云作为解决方案,算法名称与官方网站提供的在线算法名称保持一致。
2.2 人体检测
人体检测功能的实现过程如下(经由python 代码实现)。
(1)本地对外摄像头采集车辆行驶路径方向前方的图像并保存至本地目录。
(2)连接百度智能云服务器上传拍摄图像。
(3)从百度智能云服务器得到该上传图像应用人体检测算法后的返回结果(图4),包含检测到人体所在的位置长方形边框左上角端点的坐标。
(4)根据拍摄图像像素点将图片区域划分为左、中和右三个部分。以1080P 图像为例:横坐标1-640 属于左侧区域;641-1280 属于中间区域;1281-1920 属于右侧区域。
(5)根据步骤(3)中百度智能云返回的坐标值判断行人出现的区域,经由I/O 口驱动对应三色LED 灯点亮。左侧区域,红色LED 点亮;中间区域,黄色LED 点亮;右侧区域,绿色LED点亮,提示驾驶员注意避让。(6)生成对应语音提示语句,经由在线语音合成功能提示驾驶员注意避让。
图4 人体检测算法应用举例
图5 人脸识别算法应用举例
2.3 人脸识别
人脸识别功能包含车辆防盗和疲劳驾驶及注意力不集中提醒两部分,分别对应汽车非行驶状态与行驶状态两种情况[6]。当汽车属于非行驶状态时,车辆防盗功能的实现过程如下。
(1)摄像头采集驾驶员面部方向的图像并保存至本地目录。
(2)连接百度智能云服务器上传拍摄图像。
(3)从服务器得到该上传图像应用人脸识别算法后的返回结果(图5),包含检测到人脸所属用户组姓名信息。
(4)此时若返回信息中人脸所属用户姓名为unknown,则表示此时驾驶员不是用户授权的车辆使用者。
(5)生成提示语句,经在线语音合成功能提示停止操作车辆。此时非授权车辆使用者的面部信息已存储至本地目录,可根据需要进一步选择提醒车主车辆非授权使用状态的方式。
当汽车属于行驶状态时,疲劳驾驶、注意力不集中提醒功能的实现过程如下(经由python 代码实现)。
(1)~(3)同上。
(4)此时若返回信息:未检测到人脸,则系统判定出现低头、扭头等影响驾驶安全的行为出现,对内摄像头进入连续拍照模式。参照预先设定的阈值时间,当超过该时间的情况下仍然返回信息:未检测到人脸时,判定驾驶员出现疲劳驾驶、注意力不集中的情况。
(5)生成对应语音提示语句,经由在线语音合成功能提示驾驶员注意安全驾驶。
2.4 在线语音合成
在线语音合成功能的实现过程如下(经由python 代码实现)。
(1)本地生成需要播放的语句的字符串。
(2)连接百度智能云服务器上传字符串。
(3)从百度智能云服务器得到返回的机器合成语音音频文件。
(4)由树莓派4B 驱动扬声器播放音频文件,达到提示驾驶员的目的。
3 结束语
本文设计了一款以行车记录仪为载体的基于车联网V2P 的行人检测安全预警行车辅助系统。该系统实现了3 个方面的主要功能:通过三色LED 灯光、语音两种方式提示车辆行驶方向上出现的行人及其所在位置;非授权人员驾驶车辆监控;通过语音方式对驾驶员疲劳驾驶、注意力不集中的行为进行提醒。该系统的设计基于车联网V2P 理念,并结合了在线智能云技术,达到了智能辅助驾驶的目的。该项目得到了《2019年省级大学生创新创业训练计划项目》的支持,团队设计的样机经测试能够达到预期效果。