基于计算机视觉的双手脱离方向盘检测方法与流程

文档序号:18467067发布日期:2019-08-17 02:35
基于计算机视觉的双手脱离方向盘检测方法与流程

本发明涉及图像通信技术领域,特别是一种基于计算机视觉的双手脱离方向盘检测方法。



背景技术:

众所周知,司机的驾驶行为和车辆交通事故的产生直接相关。良好的驾驶行为,会极大的减少交通事故的产生和人员的伤亡;相反,不良的驾驶行为如疲劳驾驶、酒驾、驾驶过程中打电话、双手脱离方向盘等不规范驾驶行为,则很大可能导致交通事故的产生,从而造成无法挽回的人员伤亡和财产损失。据统计,90%以上的交通事故是人为因素造成的,而其中有87%是因为司机的违规操作、经验不足、行为规范性差等原因造成的。

显然,司机在整个驾驶过程中,双手应该握住方向盘,而绝对不能双手脱离方向盘,因为一旦双手脱离方向盘,当遇到路面凹凸不平或者其他复杂路况时,则极有可能偏离正常的驾驶轨道,导致产生严重的交通事故。因此,一种自动的实时监测司机双手是否长时间脱离方向盘的方法或者装置就显得非常必要。就目前而言,司机双手脱离方向盘的检测方法主要有三种:

基于司机生理信号的测量方法;

基于方向盘上安装传感器的测量方法;

基于计算机视觉图像分析的方法;

基于司机生理信号的测量方法:一般是要求司机佩戴一种特殊的装置,这种装置可以实时监控司机的状态,而这种装置一般都比较贵,另外可能会影响司机的正常驾驶,因此该方法比较难大规模的推广使用。

基于方向盘上安装传感器的测量方法:一般是改造方向盘,在方向盘两侧或者周围安装压力传感器、电磁传感器等,通过传感器返回的压力等信息,判断司机是否双手脱离了方向盘。这种方法,一般容易受到不同司机的个体差异的影响,如手握方向盘的位置、力度等等;另外,它的成本相对比较高,当测量数据不准的情况下,容易产生误报,所以,这种方法也尚未得到普及。

基于计算机视觉图像分析的方法:一方面,很多客车、公交车甚至各种私家车等,都会安装监控摄像头,这些监控摄像头就使得利用图像来分析司机的状态成为了可能;另一方面,随着计算机视觉相关技术的发展,尤其是深度学习技术如卷积神经网络(CNN)在图像领域的各种任务中都取得的各种突破性进展,因此,近来越来越多的研究者采用计算机视觉相关的方法,实时分析监控摄像头的视频图片,判断司机是否存在双手脱离方向盘的危险行为。

上述现有技术存在的缺点:

(1)基于司机生理信号和基于方向盘上安装传感器设备的测量方法,速度快,但是成本贵,而且不同的个体可能会有比较大的差异,容易产生误报;

(2)基于图像分析的方法,现有大部分方法需要提前给出方向盘的位置(或者通过一些传统的技术检测方向盘的位置,如Hough椭圆检测算法),当给定方向盘的位置后,再通过一些图像的处理技术或者手势检测方法给出手的位置,基于方向盘的位置和手的位置,或者方向盘上手的数目结合车速等信息,综合判断是否手脱离了方向盘。这些方法,一般都需要给出方向盘的位置;另外通过手的数目或者手和方向盘位置的判断方法不直观。



技术实现要素:

本发明的目的在于提供一种基于计算机视觉的双手脱离方向盘检测方法,通过把双手脱离方向盘的检测作为一种目标检测任务来实现,结合深度学习技术,克服以往图像检测分析过于复杂、成本高准确率低及判断方式不直观的问题。

为实现上述目的,本发明采用的技术方案为:

基于计算机视觉的双手脱离方向盘检测方法,包括数据采集与标注、线下模型训练、线上模型部署与预测三个阶段;

所述数据采集与标注阶段包括:

A1、收集图片;

A2、对收集到的图片预处理,将预处理好的图片进行人工标注;

A3、将原始图片和标注信息整理成标注数据集;

所述线下模型训练阶段包括:

B1、以数据采集和标注阶段获得的标准数据集作为输入;

B2、以Yolo v3网络结构为基础,通过裁剪优化,设计出适用于手势检测的网络结构;

B3、基于Caffe框架,通过调参调优训练手势检测模型;

线上模型预测阶段,包括:部署线下训练好的手势检测模型至嵌入式检测设备,实时检测司机的状态,并根据检测模型返回的结果,最终判断司机双手是否脱离方向盘。

进一步的,所述步骤A1收集的图片数据源包括:车辆DVR监控摄像头记录的真实场景视频、车内固定摄像头录取的图片数据及网上爬取的数据集和可公开获取的手势数据集;其中固定摄像头的固定位置含主驾驶正上方和副驾驶正上方两个位置。

进一步的,所述图片预处理,包括从视频中截取图片以及删除场景重复的图片;所述将预处理好的图片进行人工标注,是指在图片上标注出手的框位置信息以及手类别信息,手的框位置信息包含左上右下两个点的坐标值,手类别信息包含手握方向盘和手没握方向盘。

进一步的,所述步骤B2中裁剪优化括:对主干网进行冗余删除,将网络输入从416x416变为128x128,保留20个卷积和1个全连接,同时进行通道剪枝。

进一步的,所述步骤B3中基于Caffe框架,通过调参调优训练手势检测模型包括:采用Adam优化学习方法,设置初始学习率为0.005,权重衰减因子设置为0.00005进行训练,训练时,设置batch_size为256,即每256个样本计算一次loss和基于loss做一次反向传播,更新权值;训练时,还对数据做镜像、随机亮度增强、随机对比度增强、随机裁剪、扩充增强操作。

进一步的,所述嵌入式检测设备为嵌入式ARM检测系统。

进一步的,所述线上模型预测阶段包括:

C1、读取摄像头每帧的图片;

C2、使用第二个阶段训练好的手势检测模型对当前帧的图片进行分析检测;

C3、分析模型返回的检测结果,得出司机双手是否脱离方向盘的结论。

进一步的,所述步骤C3分析模型返回的检测结果,具体如下:

先判断方向盘上手的数目,若等于零,则得出检测不到手且司机双手脱离方向盘的结论,若大于零,则遍历所有手的类别信息;

再判断手握方向盘的数目,若等于零,则得出检测到手且司机双手脱离方向盘的结论,若不等于零,则得出检测到手且手握了方向盘的结论。

采用上述技术方案后,相比于现有技术,本发明的具有以下优点:

1)本发明基于计算机视觉的目标检测任务,通过实时分析监控摄像头的图像,给出司机是否存在双手脱离方向盘的危险驾驶行为,本发明相比传感器设备方案成本更低,且对司机完全透明,不会给司机造成任何困扰和负担;

2)本发明将司机是否存在双手脱离方向盘的行为直接转换为目标检测任务,目标检测任务能够适应不同的监控摄像头的安装位置和角度,如主驾驶正上方或者副驾驶上方;另外本发明检测方式更加直接,不依赖于方向盘的位置,通过深度学习的Yolo v3模型预测,可以直接给出司机双手是否握了方向盘分类信,因此,本发明相比现有技术判断更加直接,适用性更好;

3)本方案结合了最新的目标检测技术,通过适当的调参优化和修改,深度训练的手势检测模型可以在嵌入式ARM检测系统上达到15帧的处理速度(每帧大约60~70ms),且相比传统检测算法,检测效果更好,鲁棒性更好,在本发明中,共计收集图片43712张,测试集4300张,准确率达到95%以上。

附图说明

图1为本发明第一阶段的流程图;

图2为本发明第二阶段的流程图;

图3为本发明第三阶段的流程图;

图4为主驾驶上方摄像头采集的图片;

图5为副驾驶上方摄像头采集的图片;

图6为图片标注示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

如图1-3所示,本发明揭示的基于计算机视觉的双手脱离方向盘检测方法,其包括数据采集与标注、线下模型训练、线上模型部署与预测三个阶段;

其中第一个阶段的主要目的是构造标准的数据集,为第二个阶段训练模型做准备,其具体内容包括:

A1、收集图片;图片的数据源包括:车辆(如大巴车、货运车)DVR监控摄像头记录的真实场景视频、车内固定摄像头录取的图片数据及网上爬取的数据集和可公开获取的手势数据集;其中固定摄像头的固定位置含主驾驶正上方和副驾驶正上方两个位置;本实施例收集图片43712张,测试集4300张;

A2、对收集到的图片预处理,将预处理好的图片进行人工标注;其中,图片预处理包括从视频中截取图片以及删除场景重复的图片;其中,将预处理好的图片进行人工标注,是指在图片上标注出手的框位置信息以及手类别信息,手的框位置信息包含左上右下两个点的坐标值,手类别信息包含手握方向盘和手没握方向盘;

A3、将原始图片和标注信息(label信息)整理成标注数据集;

第二个阶段的主要是目的是使用标注好的标注数据集,训练一个目标检测模型,其具体内容包括:

B1、以数据采集和标注阶段获得的标准数据集作为输入;

B2、以Yolo v3(An Incremental Improvement)网络结构为基础,通过裁剪优化,设计出适用于手势检测的网络结构,裁剪后的目标检测网络,速度更快,能满足ARM平台实时性的要求;所述的Yolo v3的骨干网(backbone)是Darknet-53,Darknet-53整个网络包含53个卷积层(实际是52个卷积层和1个全连接层)。根据网络输入大小的不同,Yolo v3的官方提供了三种网络:YOLOv3-320、YOLOv3-416、YOLOv3-608。本发明以YOLOv3-416为例,该网络输入大小416x416,主干网为Darknet-53,模型文件为237M,计算量共计为65.86BFLOPS(BFLOPS是十亿次的浮点运算数);另外,为了提高检出,Yolo v3用三个特征层进行边框的预测。本发明以Yolo v3网络结构为基础,过裁剪优化,设计出适用于手势检测的网络结构。裁剪优化的方法主要包括:网络输入从416x416变为128x128,主干网做了大幅的冗余删除,保留了20个卷积和1个全连接,同时做了通道剪枝,最终的模型参数文件仅有1.32M大小,计算量共计为57.82MFLOPS。考虑到手的大小相对变化不大,本方法只用了两个特征层预测边框。

B3、基于Caffe框架,通过调参调优训练手势检测模型;该步骤具体包括:初始学习率设置为0.005,采用Adam(adaptive moment estimatio,一种基于一阶梯度来优化随机目标函数的算法)优化学习方法,权重衰减因子设置为0.00005;训练时,batch_size设置为256,即每256个样本计算一次loss(损失)和基于损失做一次反向传播,更新权值等参数。为了增强模型的鲁棒性的,训练时还对数据做了扩充增强,主要包括:镜像、随机亮度增强、随机对比度增强、随机裁剪、扩充等操作。

线上模型预测阶段,包括部署线下训练好的手势检测模型至嵌入式检测设备,实时检测司机的状态,并根据检测模型返回的结果,最终判断司机双手是否脱离方向盘;本实施例嵌入式检测设备为嵌入式ARM检测系统,达到15帧的处理速度(每帧大约60~70ms)。

所述线上模型预测阶段的检测内容包括:

C1、读取摄像头每帧的图片;

C2、使用第二个阶段训练好的手势检测模型对当前帧的图片进行分析检测;

C3、分析模型返回的检测结果,得出司机双手是否脱离方向盘的结论,具体如下:

先判断方向盘上手的数目,若等于零,则得出检测不到手且司机双手脱离方向盘的结论,若大于零,则遍历所有手的类别信息;

再判断手握方向盘的数目,若等于零,则得出检测到手且司机双手脱离方向盘的结论,若不等于零,则得出检测到手且手握了方向盘的结论;

显然,检测不到手,或者检测到手,但是手没有握方向盘,这两种情况均意味着司机存在双手脱离方向盘的危险驾驶行为。

本发明的检测方法具有以下特点:

把司机双手脱离方向盘的检测作为一种目标检测任务来实现;

能适应大多数监控摄像头的位置要求(如主驾驶正上方或者副驾驶正上方等);

无需提前知道方向盘的位置,无需判断手和方向盘的位置关系,结果更直接;

裁剪后的目标检测网络,速度更快,能满足ARM平台实时性的要求。而且,本发明提出的基于计算机视觉的双手脱离方向盘检测方法具有通用性,可跨平台的应用,训练出来的模型,不仅可以在普通PC上运行,也可以在GPU服务器上运行,更可以在嵌入式ARM设备中运行。ARM平台、PC和GPU服务器三者的区别在于,硬件条件不同,成本不同,提供的算力不同,导致应用范围不同。本发明特点在于在经过精心设计和裁剪优化后,在成本低、算力小的嵌入式设备中,也可以达到单核CPU每帧60~70ms的速度(接近实时的速度)。本发明所实验的嵌入式ARM设备是瑞芯微公司生产的PX30芯片,其芯片包括4核A53(Quad-core Cortex-A35),默认最低主频为1.0GHZ,最高可以变频到1.5GHZ,考虑到稳定性,实际使用中最高可以变频到1.3GHZ。如前所述,本发明是通用和跨平台的,也可以运行在其他嵌入式设备或者PC以及GPU设备,不同的平台会有不同的运行速度,如在其他主频高于1.3GHZ的嵌入式设备中运行,速度将会提高,相反,在更低主频的嵌入式设备中,速度将会降低。另外,实际使用的摄像头采用的720P的摄像头,同时支持704x576和352x288等分辨率的图像。

上述说明示出并描述了本发明的优选实施例,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1