本发明涉及一种基于ceva公司dsp平台的驾驶员打电话行为检测方法及系统,涉及深度学习、图像处理技术及数字信号处理(dsp)技术等领域。
技术背景
随着现代信息技术发展,智能手机在日常生活中使用愈加频繁,使得驾驶途中的打电话行为愈演愈烈,其导致的道路交通事故报道不时见诸新闻,而且开车时打电话行为亦是违反交通法的行为,因此驾驶员打电话行为检测系统具有很大的需求。
现有的检测系统虽然可以通过某些方法来检测驾驶员打电话行为,如检测手机信号、监测驾驶员声音等生理数据的方法,但无法得到十分准确的检测结果。而基于机器视觉的检测方法能准确有效地监控驾驶员打电话行为,但现有检测系统存在如下缺点:1)传统的图像处理算法检测效果较差,无法达到实际应用要求;2)采用深度学习算法的检测系统需要借助专门的工具提高运算速度,如gpu、高性能电脑等,但这些设备价格昂贵,无法大范围普及;3)设备体积较大,影响驾驶员安全驾驶,使用场合受到限制,不适合于车载安装检测。
技术实现要素:
针对现有驾驶员打电话行为检测系统准确率不高,实时性差,价格昂贵,无法满足车载环境检测要求等缺陷,本发明设计了一种基于dsp的驾驶员打电话行为检测系统。
本发明设计的驾驶员打电话行为检测系统,采用红外摄像头作为图像采集模块,通过arm来控制图像的采集、存储及数据传输。dsp端作为数据处理中心,首先通过深度学习算法来检测驾驶员人脸,然后同时检测驾驶员手持电话动作以及嘴巴讲话状态,融合两者检测结果来判断是否存在驾驶员打电话行为。手持电话行为的检测方法,先由人脸框坐标确定手持电话待检测区域,并通过提取特征加线性分类器的方法,判断驾驶员耳旁及嘴部周围是否存在驾驶员手持电话行为,其中包括听筒和免提两种接听状态;嘴巴讲话状态的检测,首先根据脸部特征点定位到嘴巴来裁剪嘴部区域,通过级联回归算法生成嘴巴特征点,并据此特征点计算嘴巴的宽高比,然后通过统计一段时间内的宽高比变化来判断驾驶员是否在讲话。
本发明提出的基于dsp的驾驶员打电话行为检测系统,采用深度学习算法大大提高了系统的检测准确率;同时充分利用ceva-dsp平台的高性能、并行计算、支持卷积运算等特点,极大的缩短了系统的检测时间;而且由于此dsp平台价格低廉,因此其成本较低。与现有的检测系统相比,该系统具有准确率高、处理速度快高、抗干扰性强、性价比高,体积小等特点,可以普及到任意驾驶环境下,给与驾驶员准确及时的检测结果及提醒,不仅保证驾驶员及乘客的人身安全,而且避免违反道路交通安全法的规定。
附图说明
图1是本发明提出的基于dsp的驾驶员打电话行为检测系统的硬件平台;
图2是本发明提出的基于dsp的驾驶员打电话行为检测系统的算法流程图;
图3是人脸检测算法流程框图;
图4是嘴巴宽高比统计图;
图5是本发明的系统检测效果图。
具体实施方式
本发明的基于dsp的驾驶员打电话行为检测系统,采用图像处理算法对机器视觉采集的图像进行处理。打电话行为检测属于二分类问题,即正常状态或者打电话状态,通过大量的研究实验发现,打电话与正常驾驶状态在驾驶员脸部周围区域的图像特征存在较大区别,因此对此区域进行图像特征提取以及模型训练可检测到手持电话行为,并结合嘴巴讲话状态检测便可达到驾驶员打电话行为分类判别的目的。
本发明提出的驾驶员打电话行为检测系统结构框图如图1所示,包括视频采集模块、数据存储及控制模块、dsp端信号处理模块、检测结果报警模块。图2显示的是本发明的算法总体流程图,下面将结合附图和公式对本发明的系统实现方法展开详细的描述。
当车辆启动后,系统直接进入运行状态,自动通过置于内后视镜下方的红外摄像头采集驾驶室内视频图像,图像分辨率为1280x720像素点,图片存储在外部存储空间并实时更新。系统将外存中的视频帧搬运至系统内存中并进行预处理,包括图像缩放为640x360尺寸以及图片格式由yuv转为rgb等操作,然后传输给dsp端。
dsp端作为系统的信号处理模块,是系统的数据处理核心。dsp使用的是cevadspxm4芯片,其运算单元由4个spu(scalarprocessunit)、2个vpu(vectorprocessunit)以及2个lsu(loadstoreunit)构成。其中4个spu位宽为32bit,支持32bit定点加法、减法、乘法、移位、逻辑运算以及位运算,以及32bit浮点运算。2个vpu位宽为256bit,支持8x32bit、16x16bit、32x8bit向量加法、减法、乘法、逻辑、移位运算以及位运算,8x32bit浮点运算,以及向量内的求和、最大、最小、最小值等运算。2个lsu支持32bit数据的读写操作,以及256bit(8x32bit、16x16bit、32x8bit)数据连续读或写操作、256bit(8x32bit、16x16bit)随机读或写操作。可以看到,xm4的vpu有很强向量运算能力(可以同时对8个32bit、16个16bit或32个8bit数做运算),而xm4的lsu也有很强的向量存取能力,因此能很快地对图像数据进行处理。打电话行为检测的图像处理算法,包括人脸检测、敏感区域定位、特征提取及行为分类判别。
人脸检测算法采用的是多任务卷积神经网络(multi-taskconvolutionalneuralnetwork,mtcnn),使用级联cnn通过多任务学习来集成“检测人脸”“边框回归”和“人脸关键点识别“等多个任务。mtcnn是一种由三层网络组成的重新组合的cnn模型,其检测顺序如下:对原图像进行图像金字塔→p-net→r-net→o-net,其人脸检测算法流程图如图3所示。它利用候选框和分类器的思想实现了快速、高效的人脸检测:p-net用于快速生成候选框;r-net作为筛选器,用于高精度地拾取候选框;o-net用于生成边界框和人脸的关键特征点,其中关键点包括左右眼、鼻子以及左右嘴角五个特征。mtcnn的主题框架与级联cnn相似,但它同时处理人脸区域检测和人脸特征检测。
敏感区域指的是用于判别驾驶员打电话行为的图像区域。本系统的敏感区域包含两个部分,第一部分用于判别手持电话行为,采取裁剪脸部左右及下方一定区域图像作为为敏感区域,由于驾驶员在打电话过程中使用听筒和免提方式都有可能,因此必须同时考虑到两种情况。在经过mtcnn算法得到人脸框坐标及大小后,可以确定人脸框的左上角坐标(x,y)以及高h和宽w,则待检测区域的坐标和框大小的计算公式如式(1)所示。第二部分用于判别驾驶员嘴巴讲话动作,采取裁剪嘴巴区域图像作为待检测区域,由人脸检测的特征点可以定位到嘴角两个点的坐标(lx,ly),(rx,ry),则此部分的待检测区域的坐标和框的大小计算公式如式(2)所示。
式中:(px,py)为手持电话待检测区域的基准坐标,pw和ph分别表示电话待检测区域框的宽和高;(mx,my)为嘴部待检测区域的基准坐标,mw和mh分别表示待检测区域框的宽和高,lr代表左右嘴角之间的长度。
手持电话行为的检测,采用融合方向梯度直方图(histogramoforientedgradient,hog)与局部二值模式(localbinarypattern,lbp)得到hog-lbp特征,再通过svm线性分类器得出待检测区域内的手持电话检测结果。其中hog-lbp特征的融合采用串联方式,由于hog特征可以较好地描述物体的轮廓和边缘信息,但其特征维度较高,没有利用图像中的纹理信息;而lbp特征则可以描述出图像局部的纹理特征,但又忽略了整体的边缘信息,因此通过提取特征串联的方式,能够很好地融合弥补两者的优缺点,实现更加完善的特征提取效果。其手持电话行为检测的实现过程如下流程所示:
(1)首先将图像缩放为宽96、高128的尺寸,并进行灰度化处理。
(2)hog特征计算。首先对灰度图像进行gamma标准化,来降低光照或阴影的干扰,处理步骤包括归一化、预补偿和反归一化操作,其变换公式如式(3)所示,ga为标准化因子:
然后求图像的梯度特征,使用[-1,0,1]卷积操作得x方向梯度值gradx,再采用[-1,0,1]的转至进行卷积操作得到y方向的梯度值grady,再由x和y的方向梯度值求得像素点(x,y)处的梯度值和梯度方向,分别如式(4)和式(5)所示:
之后在cell单元格内构建梯度方向直方图,将图像分成若干个cell单元格,其中每个cell中包含8*8个像素点,并把每个cell从0~360度划分为9个bins,即每个bin包含20度的方向范围,再统计每个cell中各个像素点的梯度方向,得到该cell的9维梯度方向直方图。再组合成block并归一化梯度方向直方图,即将每个2*2的cells组合为一个block,并根据block内的36维特征向量进行归一化,其中bolck的滑动步长采用一个cell的宽度,使得相邻block之间建立起联系。最后生成hog特征向量。集合整幅图像内所有block的梯度方向直方图,得到hog特征向量。
(3)lbp特征计算。使用16*16像素的滑动窗口在整幅图像内滑动提取特征,特征计算采用圆形lbp,先在窗口内通过距离线性插值法计算中心像素点周围八个方向上的像素值,然后此八个像素值与中心点像素值进行大小比较,大于中心点像素值的为1,否则为0,从而得出窗口的圆形lbp特征。滑动步长设置为8个像素点,然后统计整幅图像内的特征得出lbp特征向量。
(4)特征融合。将hog特征与lbp特征串联融合,得到待检测区域的hog-lbp特征向量。
(5)分类判别。行为分类判别的方法采用支持向量机(supportvectormachines,svm),这是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。简单说来就是要将上述提取到的hog-lbp特征,通过采集的正负样本数据集训练模型,以在更高维度找到一条分割界限,来将手持电话行为和正常行为区分开来。svm的核函数经过实验表明,在本算法中采用线性核函数能达到最优分类效果,并且模型参数较少,运算时间短。
驾驶员嘴巴讲话动作的检测,首先采用级联形状回归的方法来预测嘴部特征点,然后根据特征点计算嘴巴的宽高比,并统计一段时间内的宽高比变化,根据嘴巴在不同状态下的宽高比变化模型来判断驾驶员是否处于讲话状态。其中级联型状回归采用的是sdm算法,算法是由嘴角两个特征点衍生出嘴部特征点初始形状,然后通过不断的迭代回归到最优的特征点位置上,级联回归的框架如式(6)所示:
s=f(i)=fn(fn-1(...f1(s0,i),i),i)(6)
其中s0为初始形状,s是最后输出的形状,f是总回归函数,i是输入的图像。f作为总回归函数采用的是线性回归的方式,其回归目标如式(7)所示:
δst=wt(φt(i,st-1))(7)
式中i为输入图像,δst为特征点形状变化矩阵。φt为采用hog提取到的特征,wt表示线性回归矩阵,对样本的训练就是不断学习φt和wt的过程,每一层的回归函数都会使得预测点更加贴近样本特征点。经过大量的数据测试,五层级联回归能达到较好的预测效果。
在得到嘴巴特征点后,计算并统计嘴巴的宽高比,宽高比的计算方法采用上嘴唇外部最高的两个点取平均值作为上嘴唇点,同样取下嘴唇外部最低的两个点取平均值作为下嘴唇点,然后计算上、下嘴唇点的高度差作为嘴巴的高,以左、右嘴角的距离作为宽,用嘴巴的高比上宽便得到嘴巴的闭合度,并统计连续多帧的闭合度用来做讲话判断。图4为一段时间内的嘴巴宽高比统计图,其中包含正常、讲话和打哈欠三种常见的状态,通过对这三种状态的宽高比统计结果进行分析可以得出,正常状态下嘴巴宽高比会在较小的值有轻微的波动,如图4中y轴0.4的位置;打哈欠状态会出现很高的峰值,一般大于1,且无频繁波动;讲话状态下宽高比值会在0.45至0.5的高度上下大范围并且频繁地波动。因此由上述特征,本发明采用统计连续多帧图像的宽高比,判断其是否存在较多大范围的跳变,以及其值多数处于0.45~0.5之间,若满足上述所有条件便可判断为处于讲话状态。
本发明的驾驶员打电话行为检测,通过上述两种动作检测结果来判别:手持电话行为与驾驶员讲话行为。将两种行为的判别结果进行‘与’运算,即只有当两种动作同时存在时才可判断驾驶员处于打电话状态,否则便不成立。
本发明的检测报警模块通过语音报警和视频提示两种方式展现,两者集成在一块hdmi屏幕设备上。当dsp端数据处理完成后,将其检测判别结果传输给预警端,后者将所处理的视频图像及检测结果更新至报警模块。本系统的检测效果图如图5所示。
1.一种基于dsp的驾驶员打电话行为检测系统,其特征在于:该系统首先通过深度学习算法mtcnn检测图像中的人脸,并根据人脸坐标及脸部五个特征点确定待检测区域,包括脸部周围区域和嘴巴区域,然后对两块区域分别进行手持电话行为检测与讲话行为检测,再对两种行为的检测结果进行‘与’运算,得出判别结果是否存在打电话行为,最后将dsp端的处理结果反馈给预警系统,通过语音报警和视频提示等方式提醒驾驶员安全驾驶。
2.根据权利要求1所述的一种基于dsp的驾驶员打电话行为检测系统,其特征在于:手持电话行为检测考虑到打电话的两种状态:听筒和免提接听,避免以往的方法中只对听筒接听进行检测,而漏掉免提状态。在检测方法上,采用hog-lbp特征的方式来提取待检测区域的特征,其中hog特征能较好地描述物体的轮廓和边缘,但无法提取图像中丰富的纹理信息;而lbp特征则能够描述图像局部的纹理特征,但对物体的边缘信息提取不足,因此通过将两者串联的方式来融合各自的优点,能够更好地提取图像的特征,再通过线性svm进行分类,得出是否存在手持电话行为。
3.根据权利要求1所述的一种基于dsp的驾驶员打电话行为检测系统,其特征在于:讲话行为的检测通过嘴巴的闭合度变化来判断。闭合度即是嘴巴的宽高比,其计算方法为:首先根据嘴角两个特征点裁剪敏感区域,然后对此区域通过级联型状回归的方法得到嘴部特征点,之后由特征点计算并统计嘴巴的宽高比,根据嘴部常见三种状态(正常、打哈欠和讲话)在宽高比统计图中的不同变化形式,得出讲话状态的宽高比变化形式为:在连续多帧图像中,存在较多大范围的跳变,并且其值在跳变过程中几乎都要经过0.45~0.5的范围。因此当嘴巴宽高比满足上述条件时便可判断为处于讲话状态。
4.根据权利要求1所述的一种基于dsp的驾驶员打电话行为检测系统,其特征在于:通过使用手持电话行为检测与讲话行为检测及其两者之间的‘与’运算操作,能够极大程度地减少由于单一判别结果误检所造成的误判,提高驾驶员打电话行为检测的准确率。
技术总结