APP下载

危险驾驶行为预警与求救系统的设计与实现

2022-01-19王康威叶前程蒋丽珍

物联网技术 2022年1期
关键词:树莓驾驶员按钮

王康威,叶前程,蒋丽珍

(浙江工商大学 信息与电子工程学院,浙江 杭州 310018)

0 引 言

据统计,我国汽车保有量已突破2.81亿辆,且该数据还在不断增加。与此同时,因疲劳驾驶、抽烟、打电话等违规驾驶行为引发的交通事故也在不断增多,驾驶员突发疾病因救助不及时导致的悲剧也常有报道。如何规范驾驶以及驾驶过程中遇到突发疾病如何求救一直是热议话题,市场急需研发一款针对驾驶员危险驾驶行为的预警与求救系统。目前市场上已有的相关产品,如疲劳驾驶检测仪、耳夹式检测仪等,不仅功能单一、检测精度不高,而且价格较为昂贵,很难做到大规模地应用推广。目前,在轮船上有关于危险驾驶行为检测和报警系统的应用,但这种检测系统没有在汽车上大规模地推广。因此,本文设计了一款操作简单、功能丰富,且兼具危险驾驶行为预警与自动求救双重功能的系统,不仅实用性强,而且成本较低,适合市场推广。

1 系统功能设计

本系统主要包括驾驶员危险驾驶行为检测、语音提醒、驾驶员突发疾病的检测和自动求救等功能。本系统包括两种工作模式:第一种工作模式,当驾驶员在正常驾驶过程中出现如抽烟、打电话、打哈欠等行为时,摄像头实时采集驾驶员的肢体动作,并将数据存储在树莓派的存储区域,树莓派的主控单元对获取的数据进行分析判断,从而判别出驾驶员是否存在违规驾驶行为,并根据判断结果决定执行相应的语音提醒功能;第二种工作模式,当驾驶员在行驶过程中出现如心梗等突发疾病时,可按下求救按钮,系统将启动报警求救模块,发送求救信息和驾驶员的空间位置给事先设定的紧急联系人,语音反复呼喊“我突发疾病遇到危险了,请帮忙拨打120”,同时LED屏显示求救信息。启动报警求救模块的同时系统也启动了防碰撞模块,超声波传感器开始实时检测汽车与前方障碍物之间的距离,以便及时制动,减少二次伤害的发生。如果驾驶员突发疾病无法按下求救按钮,摄像头通过采集驾驶员的面部表情和肢体动作,树莓派进行数据分析处理,判断出驾驶员是否具有按下求救按钮的能力。若驾驶员此时不具备该能力,系统将会自动启动报警求救模块和防碰撞模块。在此基础上,考虑到可能出现系统误判的情况,增加取消报警的功能,一旦出现误断,驾驶员可按下取消按钮,系统将发送相应的取消信息给事先设定的紧急联系人,停止语音播放和LED屏显示,同时系统停止防碰撞模块的运行。功能设计流程如图1所示,实验室产品实物照片如图2所示,实验室产品经测试已经实现全部预设的功能。

图1 系统功能设计流程

图2 实验室产品图

2 系统硬件设计

根据功能实现的流程设计系统的硬件架构。系统硬件主要由树莓派开发板、摄像头、扬声器、GPS定位器、超声波传感器、求救和取消按钮、LED显示屏等组成,其框架如图3所示。接通电源后,摄像头和树莓派同时开始工作,摄像头将采集到的数据进行模数转换(A/D)传送至树莓派,树莓派根据输入的数据输出相应的信号。若输出语音提醒信号,该信号则会驱动扬声器执行相应的程序;若输出求救信号,LED求救灯将会被点亮,经过按钮的选择之后,向超声波传感器发送防碰撞信号和向GPS定位器发送报警信号,驱动超声波传感器和GPS定位器执行相应的程序。

图3 系统硬件框架

2.1 GPS模块

GPS定位模块选用的传感器型号是微雪L76X GPS Module。传感器像收音机一样接收、解调卫星的广播C/A码信号,中心频率为1 575.42 MHz。GPS模块并不播发信号,属于被动定位。由于卫星的位置精确可知,在GPS观测中,可得到卫星到接收机的距离。利用三维坐标中的距离公式,就可以组成3个方程式,解出观测点的位置(,,)。考虑到卫星的时钟与接收机时钟之间的钟差,为了得到更精确的位置,引入了第4颗卫星,形成4个方程式进行求解,通过运算与每个卫星的伪距离,采用距离交会法求出接收机的经度、纬度、高度和时间修正量这四个参数。该型号传感器支持GPS、北斗(BDS)和QZSS多重卫星,具有定位快、定位准确和低功耗等优点;且该传感器体积较小,不会阻碍驾驶员的视线。其内部原理如图4所示,连接方式如图5所示。

图4 GPS传感器内部原理图

图5 GPS模块连接方式

2.2 防碰撞模块

系统采用的HC-SR04超声波传感器可以测量3~4 m的距离,精确度可以达到3 mm。该传感器包括超声波发射器、超声波接收器和控制电路三部分,有4个引脚,连接电路如图6所示。本系统向超声波传感器的Trig引脚发送一个10 μs的脉冲,传感器接收到这个脉冲后发射出超声波,同时把Echo置为高电平(在发射之前,Echo引脚一直为低电平)。通过编写代码记录超声波发射时间pulse_start和返回时间pulse_end,运用公式可计算出障碍物与汽车的实时距离,为汽车制动及其他模块提供数据。

图6 超声波传感器电路连接图

2.3 树莓派控制模块

将树莓派连接摄像头、按钮、LED屏和扬声器、超声波传感器等器件,通过树莓派控制各个模块以实现其特定的功能。LED显示屏一端接地,另一端接GPIO14,为其提供电源以及控制信号。GPS模块有四个引脚,考虑到GPS模块与树莓派之间的串口通信,将传感器的RX引脚连接至TXD引脚,TX引脚连接至RXD引脚。求救按钮和取消按钮共有三个引脚,除VCC接电源、GND接地外,求救按钮OUT引脚接GPIO17,取消按钮OUT引脚接GPIO16。扬声器通过3.5 mm口连接至树莓派。超声波传感器的Trig端口接GPIO2脚,GPIO3脚接Echo。树莓派的VCC和GND接口分别与HC-SR04的VCC和GND接口相连。1 kΩ和2 kΩ电阻组成了一个分压电路,正极接到Echo引脚,负极与GND口相连。本电路将所有模块整合在一起最终实现危险驾驶预警功能和突发危险报警功能。树莓派控制电路如图7所示。

图7 树莓派控制电路

3 系统软件设计

在实际情况下,树莓派不仅要处理摄像头传送的信息,还要根据相关的信息做出相应的应答,这对于树莓派而言是一个极其复杂的过程,因此针对软件方面做出相应算法上的改进,以解决姿势识别不准确和图像处理速度过慢等问题。

3.1 姿势识别模块

考虑到目前使用的Dlib68特征点和OpenCV肤色动态追踪图像处理达不到理想效果。为获得更好的效果,精确识别违规驾驶动作,决定获取脸部和手部的关键点信息。为此,本项目引入了机器视觉中一个经典开源模型—OpenPose(人体姿态识别模型),如图8所示。输入一张图片,经过一个 backbone(比如 vgg、resnet、mobilenet),再经过 6个stage,每个stage有两个branch:一个用来检测heatmap;另一个用来检测vectmap。通过heatmap和vectmap就可以知道图片中所有关键点,再通过PAFs把点对应到每个人身上。OpenPose人体姿态识别技术基于卷积神经网络和监督学习的方法,并包含以Caffe为框架开发的开源库,可以实现对人体动作、面部表情、手指运动等姿态的识别,适用于单人和多人,具有极好的鲁棒性。

图8 OpenPose模型

姿势识别模块主要是直接用OpenCV中的dnn.readNetFromCaffe()来调用模型,利用如图9中的模型关键点位置图,把人体关键点提取出来;再将当前关节的位置和对应的置信度提取出来,比对所有点的置信度和设置好的阈值,从而确定图片上真正存在的关节点。

图9 COCO模型关键点位图

3.2 图像处理模块

图像处理时采用神经网络算法通过卷积神经对图片进行降维处理,然后进行分层、展开、连接,最后卷积形成2D矢量图。该算法包含以下四个步骤:

(1)神经网络预测

神经网络结构如图10所示。首先通过VGG-19进行特征提取,然后利用两分支的多阶段CNN,第一分支用来预测 confidence map St,第二分支用来预测PAFSLT。在每个阶段之后,来自两个分支的预测以及图像特征被连接用于下一阶段。为了既增加感受野,同时局部不能模糊,原始图像以四个固定的scale缩放后进入神经网络,将四个预测值求平均即为最后的结果。

图10 神经网络结构

(2)找到关节

通过第一步,获得了关节的 heatmap。如图11所示,第二步要从heatmap提取关节的具体位置。应用非最大抑制(NMS)算法来获得heatmap中的峰值,以此值的置信度作为当前part的score,算法输出值为:第一个part的所有值等于[(,,, 0), (,,, 1), ...];第二个part的所有值等于[(h,w,s,), (h,w,s,+1), ...]。

图11 关节的heatmap图

(3)找到肢体连接

通过第二步,获得了关节的信息(位置和分数);接下来,用关节信息和PAF来获得肢体连接。模型包含19个肢体,确定每一肢体所对应的两个part和PAF,将两个part之间的PAF信息进行积分所得结果作为该肢体的置信度。例如,要寻找所有的左上臂,已经有左肩和左肘part信息以及左上臂的PAF信息,将左肩中的所有part与左肘的所有part进行匹配,计算两个part间的PAF信息的积分,作为当前part相连的score。最后将所有score排序来确定part之间是否相连。这样就获得了所有的连接信息,每一个连接都可以看作是一个肢体。

(4)拼接肢体构成人

在获得了所有肢体后,将拥有相同关节的肢体看作是同一个人的肢体,构成一个完整的人。区别于以往的OpenCV,本系统的识别功能采用了最新的OpenPose模型,相比之前的CPN和PoseNet来说算法精度更高、算法速度也会更快。OpenPose模型能够更为精确地获取脸部和手部关键点信息,精确识别打电话、抽烟、打哈欠等动作,相较之前的模型降低了误判的可能性。除此之外,OpenPose模型可以做到更快地识别动作,提高动作识别效率。

3.3 短信发送模块

在紧急求救功能中,设计了短信发送模块。该模块在驾驶员出现突发疾病按下求救按钮时,会发送驾驶员空间位置和求救信息给驾驶员的紧急联系人,以便驾驶员及时得到救助。该模块的流程如图12所示。

图12 短信发送模块流程

短信发送模块的主要功能是提供一个虚拟号码向事先设定好的紧急联系人发送信息。本模块是在Twilio库的基础上进行编写的。短信发送原理如图13所示,在Twilio网站完成基本信息的注册,从账户界面获取ACCOUNT SID和AUTH TOKEN以及Phone Number,并且在网站完成紧急联系人的保存;之后Client函数调用在Twilio网站申请的SID和TOKEN,从而获得个人信息;再通过编辑短信内容以及收信人和发信人号码,并结合其他模块来实现短信发送。

图13 短信发送原理图

4 结 语

本文对危险驾驶行为检测与求救系统进行了全面、规范的分析,从软件与硬件两个角度对系统进行了设计与制作,实验室已实现产品设计的全部功能。与现有产品相比,该系统提高了对危险驾驶行为的检测精度,并在此基础上设计并实现了针对驾驶员突发疾病时的紧急求救功能,为驾驶员的生命安全增添了一道有力的保障。后续将进一步完善系统,将系统与驾驶车辆进行深度融合,并在不同的使用场景下进行相关的实验测试,以适应市场的需要并加以推广。

猜你喜欢

树莓驾驶员按钮
基于高速公路的驾驶员换道意图识别
驾驶员安全带识别方法综述
基于树莓派的骑行智能头盔设计
基于树莓派的远程家居控制系统的设计
起步前环顾四周是车辆驾驶员的义务
响应面法优化红树莓酒发酵工艺
内心不能碰的按钮
欧盟:速冻树莓比鲜食树莓市场更好
“王牌驾驶员”的来历