一种驾驶员行车过程中手持电话通话行为检测方法
技术领域
本发明属于驾驶辅助安全技术领域,具体涉及一种驾驶员行车过程中手持电话通话行为检测方法。
背景技术
近年来,随着“互联网+”时代的到来,手机在人们日常生活中扮演的角色越来越重要,而驾驶员在驾驶过程中使用手持电话通话行为也越来越普遍,成为了导致交通事故的主要原因之一。为了有效降低由于驾驶员使用手持电话通话行为而导致的交通事故率,我国也制定了相应的法律制度,但实效性不好。因此,对驾驶员行车过程中手持电话通话行为进行有效地检测预警已经迫在眉睫。
目前,对于驾驶员行车过程中手持电话通话行为检测方面的研究还比较少,其主要技术方法有以下两种:(1)基于手机信号的检测方法。此检测方法虽识别率高和鲁棒性强,但是很难判断手持电话通话的是驾驶员还是乘客,导致很多误检,也影响驾驶员正常操作行为,且需要的硬件设备复杂、成本较高。(2)基于机器视觉的检测方法。近几年,随着计算机视觉、图像处理、模式识别和人工智能技术的发展,基于机器视觉的驾驶员手持电话通话行为检测逐渐得到了研究。现有的相关技术方法中,主要存在以下问题:1、多数都只是单纯地通过检测驾驶员耳边区域是否存在手持电话行为进行判断,而没有考虑驾驶员嘴部状态;2、考虑了嘴部状态,没有建立手部行为和嘴部行为的模式逻辑判别法;针对手部行为和嘴部行为模式判别方法,也没有建立合理的逻辑关系来综合判断驾驶员手持电话通话行为。这样会出现检测率偏低、误检率和漏检率偏大、鲁棒性差等问题。
综上所述,目前亟需提出一种检测率较高、鲁棒性较好的驾驶员行车过程中手持电话通话行为检测方法。
发明内容
为了解决现有技术中存在的技术问题,本发明的目的是提供一种驾驶员行车过程中手持电话通话行为检测方法,通过实时检测驾驶员耳边区域的手部行为和嘴部状态,分别建立驾驶员手部行为模式判别法和嘴部行为模式判别法,结合手部和嘴部的两种判别法建立了合理的逻辑关系,并提出二模式逻辑判别方法来判断驾驶员手持电话通话行为,其具有准确度高、鲁棒性强及可靠性好的优点。
本发明所采用的技术方案为:一种驾驶员行车过程中手持电话通话行为检测方法,该检测方法包括以下步骤:
步骤S1,实时采集驾驶员脸部及附近区域图像,并对图像进行预处理;
步骤S2,从预处理之后的图像中获取驾驶员脸部区域、手部行为ROI区域和嘴部状态ROI区域;
步骤S3,对手部行为ROI区域和嘴部状态ROI区域进行分割处理,提取手部行为特征和嘴部状态特征,确定手部行为和嘴部状态模式识别参数;
步骤S4,根据步骤S3中的手部行为和嘴部状态的特征及模式识别参数,分别建立用于判别驾驶员耳边手部存在状态的手部行为模式判别法,以及用于判别驾驶员嘴部说话状态的嘴部行为模式判别法;
步骤S5,结合步骤S4中的手部行为模式判别法和嘴部行为模式判别法,建立驾驶员手部存在状态与嘴部说话状态之间的关系,获得驾驶员手持电话通话行为二模式逻辑判别法,以此来判断驾驶员是否存在手持电话通话行为。
进一步的,步骤S2中获取驾驶员脸部区域的实现方式如下,
2a)将采集的驾驶员图像的RGB颜色空间先转换为YCbCr颜色空间,再将YCbCr空间进行非线性变换为YCb'Cr'颜色空间,具体转换公式为:
其中,Y为亮度分量,Cb为蓝色色度分量,Cr为红色色度分量,R、G、B分别为红、绿、蓝三原色,
和
为YCb'Cr'颜色空间中的色度分量,K
l和K
h表示非线性分段颜色变换的分段阈值,Y
min和Y
max分别表示肤色聚类区域中Y分量的最小值和最大值;
2b)完成非线性分段色彩变换之后,在Ymin<Y<Ymax区间内,建立椭圆肤色模型:
其中,x和y分别为像素点转换成Cb'和Cr'的两个坐标值,a和b分别为椭圆方程的长短轴,ecx和ecy分别为椭圆中心的横纵坐标点,θ为椭圆的倾斜弧度,Cb'和Cr'分别为非线性变换后的蓝色色度分量和红色色度分量,cb0和cr0为椭圆在Cb'Cr'平面上的圆心,其值通过统计肤色点在Cb'Cr'平面上统计得到;
对于图像中的每个点,如果满足方程
时,即认为该像素点为肤色;
2c)利用建立的椭圆肤色模型对驾驶员脸部肤色进行检测得到肤色区域,对检测出的肤色区域的二值化图像采用数学形态学中的开运算进行处理,筛选脸部肤色区域;
2d)采用基于Haar矩形特征的Adaboost算法获得Adaboost强分类器,利用该分类器对步骤2c)中脸部肤色区域进行二次检测,得到更加准确的驾驶员脸部区域,并根据检测出的脸部区域标定出人脸矩形框。
进一步的,步骤2d)中Adaboost强分类器的实现方式如下,
2d1)设S={(xi,yi)i=1,2,...,n}为样本训练集,(x1,y1),(x2,y2),...,(xn,yn)为训练样本,其中yi=1表示为正样本(人脸),yi=-1表示为负样本(非人脸),n为训练样本的个数;
2d2)初始化权值,对y
i=-1表示为负样本(非人脸),
对y
i=1表示为正样本(人脸),
其中,m,r分别表示负样本和正样本的个数;
2d3)归一化权值
然后对于每一个特征j训练出一个相应的弱分类器h
j,t=1…T,T为训练次数,这里的特征包括基于Haar矩形特征检测脸部肤色区域图像获得的边缘特征、线性特征和特定方向特征;再计算该弱分类器的加权错误率
将本轮的最佳的弱分类器h
t(即拥有最小错误率(minξ
j))添加到最终强分类器中;根据本轮选中的弱分类器分类结果更新下一轮样本权值:
进一步的,步骤S2中获取驾驶员手部行为ROI区域的实现方式为,根据2d)中检测出的人脸矩形框,向左右各延伸人脸矩形框宽度的1/2,高度不变,获得驾驶员左、右耳部ROI区域,即手部行为ROI区域。
进一步的,步骤S2中获取驾驶员嘴部状态ROI区域的实现方式为,根据2d)中检测出的人脸矩形框和“三庭五眼”原则,选择高为人脸矩形框的下1/3,宽为人脸矩形框中间3/4的矩形区域为驾驶员嘴部状态ROI区域。
进一步的,步骤S3中提取手部行为特征和确定手部行为模式识别参数的实现方式如下,
31a)采用步骤2b中的基于YCb'Cr'颜色空间的椭圆肤色模型对手部行为ROI区域进行检测,得到手部肤色图像;
31b)利用形态学上的开运算对手部肤色图像进行处理,筛选出驾驶员手部肤色区域;
31c)采用手部存在率
作为手部在耳边区域内的存在与否主要判别指标,手部存在率计算见下式:
其中,
分别表示该时刻下左、右耳部ROI区域内检测出的肤色面积,即肤色区域内含有像素点的个数,
表示该时刻下检测到的驾驶员人脸的面积,即人脸矩形框的面积;
31d)为了进一步提高手部检测的准确率,将累计2s图像的手部存在状态的平均值A
hand作为判别手部存在的条件,设手部存在
表示每一帧手部存在的情况,
0代表“不存在”,1代表“存在”,将累计2s图像的手部存在状态的平均值A
hand作为判别手部存在的条件,计算公式为:
其中,n为图像帧数。
进一步的,步骤S3中提取嘴部状态特征和确定嘴部状态模式识别参数的实现方式如下,
32a)将步骤S2中嘴部状态ROI区域图像转换为HSI颜色空间,采用固定色调H分量值对其进行分割得到粗略的嘴唇ROI区域;
32b)对嘴唇ROI区域进行直方图均衡化和中值滤波处理,采用算法对嘴唇ROI区域进一步进行检测得到唇部区域;
32c)对32b)中唇部区域采用膨胀运算将其按经验值膨胀1.2倍,再进行灰度增强,最后利用SUSAN算法对唇色区域角点进行检测,根据生理先验知识进行角点筛选与匹配,获取图像中最具表征意义的嘴唇特征角点,再对上下嘴唇边缘进行NURBS三次曲线拟合得到嘴唇轮廓线;
32d)由嘴唇轮廓线得到嘴唇的最大高度和最大宽度,选用嘴唇开合度(嘴唇最大高度与最大宽度之比)及其方差来表征嘴部张开闭合运动状态参数,具体为:
根据嘴唇轮廓线定义嘴部行为模式识别参数:
Dheight=|y3-y4|
其中,p
1(x
1,y
1),p
2(x
2,y
2)分别表示左、右嘴角的像素坐标,D
width表示左右嘴角之间的距离;p
3(x
3,y
3),p
4(x
4,y
4)分别表示上、下嘴唇特征点的像素坐标,D
height表示上下嘴唇之间的最大高度,
为嘴唇的开合度,
为一定时间窗口(帧数N)内嘴唇的开合度平均值,S
2为开合度的样本方差,N为一定时间窗口内统计的图像帧数。
进一步的,步骤S4中手部行为模式判别法的具体实现方式如下,
S411,实时检测出每帧驾驶员脸部区域和左、右耳部ROI区域的肤色像素点的个数,并计算出每帧图像驾驶员左左、右耳部ROI区域手部存在率
S412,若
则驾驶员左、右耳部ROI区域手部存在,即
否则不存在,即
S413,无论
还是
继续对累计2s图像的手部存在状态的平均值A
hand进行计算,若A
hand≥0.9则手部存在,否则不存在;
S414,再重新开始对下帧图像进行检测。
进一步的,步骤S4中嘴部行为模式判别法的具体实现方式如下,
S421,对累计2s的驾驶员图像进行实时逐帧检测,计算出每帧图像中驾驶员嘴唇开合度
S422,再计算出2s内的开合度方差S2,若S2≥S2 Threshold=0.04,则表明驾驶员嘴部状态为“说话”,否则为“闭嘴”;
S423,再重新开始对下帧图像进行检测。
进一步的,步骤S5中所述二模式逻辑判别法包括开始模式和实时模式,
其中开始模式是先对累计2s驾驶员图像的手部行为和嘴部状态进行判别,Y1表示嘴部为“闭嘴状态”,而手部为“存在状态”且存在时间超过4s,Y2表示嘴部为“说话状态”,手部为“存在状态”且存在时间不超过4s,Y3表示已经判别出该驾驶员正处于手持电话通话行为中,N1表示手部和嘴部的其他情况;
通过开始模式判断驾驶员是否存在手持电话通话行为的实现方式为:若手部和嘴部的行为状态满足Y1或Y2,则判别该驾驶员处于手持电话通话状态;否则,重新开始检测手部行为和嘴部状态;
当已判别出驾驶员处于手持电话通话状态时,进入实时模式,实时模式中,对累计2s的驾驶员图像进行判别,Y4和N2分别表示嘴部为“任何状态”时手部状态为“存在”和“不存在”,实时模式只关注手部状态,当手部状态为“存在”时,则判别为手持电话通话行为;否则,进入开始模式,重新对手部行为和嘴部状态进行检测。
与现有的驾驶员手持电话通话行为的检测技术相比,本发明的有益效果包括:采用椭圆肤色模型和Adaboost算法的驾驶员脸部检测准确度高、鲁棒性好;分别建立手部行为模式判别法和嘴部行为模式判别法,提高了驾驶员手部行为和嘴部行为的检测准确度;结合手部行为和嘴部行为模式判别法之间的逻辑关系建立二模式逻辑判别法对驾驶员手持电话通话行为进行综合判断,具有准确度高、鲁棒性强及可靠性好的优点。
附图说明
图1是本发明实施例的方法流程图;
图2是本发明实施例中手部行为模式判别法流程图;
图3是本发明实施例中嘴部行为模式判别法流程图;
图4是本发明实施例中二模式逻辑判别法流程图;
图5是驾驶员脸部区域、左右耳部ROI区域和嘴部状态ROI区域示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清晰完整,下面结合附图对本发明进行进一步详细说明。
本发明一种驾驶员行车过程中手持电话通话行为检测方法流程图如图1所示,包括步骤为S1-S5,具体步骤如下:
S1,摄像头实时采集驾驶员脸部及附近区域图像。
摄像头安装在驾驶员仪表盘上正对着驾驶员脸部区域,对实时采集的每帧驾驶员彩色图像进行预处理:对采集的驾驶员图像(包括正常驾驶手部图像和操作手机手部图像)彩色图像进行预处理:对驾驶员图像进行双边滤波和直方图均衡化处理,以去除图像中的噪声,图像质量更高、更清晰,提高图像有效信息的可识别性。
S2,从采集的图像中获取驾驶员脸部区域图像、手部行为区域图像和嘴部行为区域图像。
S21,获取驾驶员脸部区域,具体步骤为:
1)将驾驶员图像的RGB颜色空间先转换为YCbCr颜色空间,为了改善YCbCr颜色空间中肤色在亮度较大和较小时的聚类性不好的缺点,再将YCbCr空间进行非线性变换为YCb'Cr'颜色空间,具体转换公式为:
其中,Y为亮度分量,Cb为蓝色色度分量,Cr为红色色度分量,R、G、B分别为红、绿、蓝三原色,
和
为YCb'Cr'颜色空间中的色度分量,K
l和K
h表示非线性分段颜色变换的分段阈值,本实施例根据参考文献资料设定K
l=125,K
h=188,Y
min和Y
max都由实验数据得到,分别表示肤色聚类区域中Y分量的最小值和最大值,Y
min=16,Y
max=235。
3)完成步骤2)中的非线性分段色彩变换之后,在Ymin<Y<Ymax区间内,亮度对肤色聚类性的影响较小,肤色在色彩空间Cb'Cr'平面上的分布形状近似于一个椭圆,椭圆肤色模型可以用以下公式表示:
其中,x和y分别为像素点转换成Cb'和Cr'的两个坐标值,a和b分别为椭圆方程的长短轴,ecx和ecy分别为椭圆中心的横纵坐标点,θ为椭圆的倾斜弧度,Cb'和Cr'分别为非线性变换后的蓝色色度分量和红色色度分量,cb0和cr0为椭圆在Cb'Cr'平面上的圆心,其值通过统计肤色点在Cb'Cr'平面上统计得到,cb0=109.38,cb0=152.02,θ=2.53,ecx=1.6,ecy=2.41,a=26.39,b=14.03。
对于图像中的每个点,如果满足方程
时,即认为该像素点为肤色。
利用建立的椭圆肤色模型对驾驶员脸部肤色进行检测得到肤色区域,对检测出的肤色区域的二值化图像采用数学形态学中的开运算进行处理,筛选脸部肤色区域。
4)Adaboost算法是基于特征的人脸分类器,采用基于Haar矩形特征的Adaboost算法再对步骤3)中脸部肤色区域进行二次检测,得到更加准确的驾驶员脸部区域,并标定出检测出的人脸矩形框。具体内容为:
基于Haar矩形特征是由2-3个矩形组成,分别检测图像的边缘特征、线性特征和特定方向特征,图像上两个以上(包括两个)大小相同矩形内部的所有像素点的灰度值和的差值作为每个特征模板的特征值,Haar矩形特征的特征值采用积分图的方法可以快速计算出来,提高了计算速度;Adaboost强分类器训练步骤如下:
(1)S={(xi,yi)|i=1,2,...,n}为样本训练集,(x1,y1),(x2,y2),...,(xn,yn)为训练样本,其中yi=1表示为正样本(人脸),yi=-1表示为负样本(非人脸),n为训练样本的个数;
(2)初始化权值,对y
i=-1表示为负样本(非人脸),
对y
i=1表示为正样本(人脸),
其中,m,r分别表示负样本和正样本的个数;
(3)t=1…T,T为训练次数
然后,对于每一个特征j训练出一个相应的弱分类器hj,这里的特征包括基于Haar矩形特征检测脸部肤色区域图像获得的边缘特征、线性特征和特定方向特征;
再计算该弱分类器的加权错误率
将本轮的最佳的弱分类器h
t(即拥有最小错误率(minξ
j))添加到最终强分类器中;
最后,根据本轮选中的弱分类器分类结果更新下一轮样本权值:
(4)最终的强分类器为:
经过T次这样的训练后,就可以得到T个基本分类器及T个相对应的权重。最后把这T个基本分类器按相应的权重累加起来就能得到了最终的强分类器。最后,用2000张人脸图像作为正样本,2000张非人脸作为负样本,训练出基于Haar矩形特征的Adaboost算法的人脸分类器。
S22,获取驾驶员手部行为区域具体内容为:步骤S21中已经获得驾驶员脸部区域,并用矩形框标定出驾驶员脸部位置,再向左右各延伸头部宽度(人脸矩形框宽度)的1/2,高度不变,这样就包含了左、右耳部ROI区域(手部行为ROI区域),如图5所示,中间的大矩形框为人脸矩形框,左右两侧的分别为左、右耳部ROI区域;
S23,人脸当中的五官分布和人脸长与宽符合比例“三庭五眼”,所以按照一定的比例关系就可以确定出嘴部检测的ROI,选择高为人脸矩形框的下1/3,宽为人脸矩形框中间3/4的矩形区域为驾驶员嘴部状态ROI区域,如图5所示,中间的大矩形框为人脸矩形框,底部的虚线矩形框为嘴部状态ROI区域;
S3,对手部行为ROI区域和嘴部状态ROI区域进行分割等处理,提取手部行为特征和嘴部状态特征,确定手部行为和嘴部行为模式识别参数。
S31,对手部行为ROI区域进行分割处理,提取手部行为特征,确定手部行为模式识别参数,具体为:
1)采用步骤S21中的基于YCb'Cr'颜色空间的椭圆肤色模型对手部行为ROI区域进行检测;
2)用开运算(对原图像先腐蚀后膨胀)对手部肤色图像进行处理,筛选出驾驶员手部肤色区域,具体为:开运算:
其中A代表原图像,B代表核元素,E代表A经过开运算后的效果图;
3)采用手部存在率
作为手部在耳边区域内的存在与否主要判别指标,手部存在率计算见下式:
其中,
分别表示该时刻下左、右耳部ROI区域内检测出的肤色面积,即肤色区域内含有像素点的个数,
表示该时刻下检测到的驾驶员人脸的面积,即人脸矩形框的面积。手部存在率阈值E
threshold设为10%,即该时刻的手部存在率大于10%,则手部存在。
为了进一步提高手部检测的准确率,将累计2s图像的手部存在状态的平均值A
hand作为判别手部存在的条件,设手部存在
表示每一帧手部存在的情况,
0代表“不存在”,1代表“存在”。将累计2s图像的手部存在状态的平均值A
hand作为判别手部存在的条件,计算公式为:
其中,n=34帧,根据大量数据统计,将Ahand的下限值设为0.9,即Ahand大于等于0.9则表示手部“存在”,Ahand小于0.9则表示手部“不存在”。
S32,获取嘴部行为的特征和模式识别参数具体内容为:
1)将步骤S2中嘴部状态ROI区域图像转换为HSI颜色空间,采用固定色调H分量值对其进行分割得到粗略地嘴唇ROI区域;
2)对嘴唇ROI区域进行直方图均衡化和中值滤波处理,采用如下算法对嘴唇ROI区域进一步进行检测得到唇部区域,算法基本原理为:
设图像像素点总数为N,灰度值变化范围为[0,L-1],且灰度级为i的像素点数有ni个,则灰度级i概率为pi:
pi=ni/N
用阈值T将图像的像素点灰度值分成u0和u1两类,灰度值在[0,T]范围内的像素点集合用u0表示,在[T+1,L-1]范围内的像素点的集合用u1表示,则整幅图像的灰度均值为下式:
则u0和u1的均值分别为:
可以得到:
u=w0u0+w1u1
类间方差为:
让T依次在[0,L-1]范围取值,使得类间方差
达到最大的T值就是Otsu方法选取的最佳阈值。
3)对2)中唇部区域采用膨胀运算将其按经验值膨胀1.2倍,再进行灰度增强,最后利用SUSAN算法对唇色区域角点进行检测,根据生理先验知识进行角点筛选与匹配,获取图像中最具表征意义的嘴唇特征角点,再对上下嘴唇边缘进行NURBS三次曲线拟合得到嘴唇轮廓线;
4)由嘴唇轮廓线可以得到嘴唇的最大高度和最大宽度,选用嘴唇开合度(嘴唇最大高度与最大宽度之比)及其方差来表征嘴部张开闭合运动状态参数,具体为:
根据嘴唇轮廓线定义嘴部行为模式识别参数:
Dheight=|y3-y4|
用p
1(x
1,y
1),p
2(x
2,y
2)分别表示左、右嘴角的像素坐标,D
width表示左右嘴角之间的距离。p
3(x
3,y
3),p
4(x
4,y
4)分别表示上、下嘴唇特征点的像素坐标,D
height表示上下嘴唇之间的最大高度,
为嘴唇的开合度,
为第i帧图像的嘴唇开合度
为一定时间窗口(帧数N)内嘴唇的开合度平均值,S
2为开合度的样本方差,N为一定时间窗口内统计的图像帧数。
S4,根据步骤S3中的手部行为和嘴部行为的特征及模式识别参数,分别建立手部行为模式判别法和嘴部行为模式判别法,以此来判断驾驶员耳边区域是否存在手部和嘴部是处于张开还是闭合状态,具体内容为:
S41,手部行为模式判别法流程如图2所示。具体流程为:
S411,实时检测出每帧驾驶员脸部区域和左、右耳部ROI区域的肤色像素点的个数,并计算出每帧图像驾驶员左、右耳部ROI区域的手部存在率
S412,若
则驾驶员左、右耳部ROI区域手部存在,即
否则不存在,即
S413,无论
还是
继续对累计2s图像的手部存在状态的平均值A
hand进行计算,若A
hand≥0.9则手部存在,否则不存在;
S414,再重新开始对下帧图像进行检测。
S42,嘴部行为模式判别法流程如图3所示。具体流程为:
S421,对累计2s的驾驶员图像进行实时逐帧检测,计算出每帧驾驶员嘴唇开合度
S422,再计算出2s内的开合度方差S2,若S2≥S2 Threshold=0.04,则表明驾驶员嘴部状态为“说话”,否则为“闭嘴”;
S423,再重新开始对下帧图像进行检测。
S5,驾驶员手持电话通话行为二模式逻辑判别法流程如图4所示。具体流程为:
S51,二模式包括开始模式和实时模式,开始模式先对累计2s驾驶员图像的手部行为和嘴部状态进行判别,Y1表示嘴部为“闭嘴状态”,而手部为“存在状态”且存在时间超过4s,Y2表示嘴部为“说话状态”,手部为“存在状态”且存在时间不超过4s,Y3表示已经判别出该驾驶员正处于手持电话通话行为中,N1表示手部和嘴部的其他情况;
S52,若手部和嘴部的行为状态满足Y1或Y2,则判别该驾驶员处于手持电话通话状态;否则,重新开始检测嘴部和手部的状态;
S53,当已判别出驾驶员处于手持电话通话状态时,进入实时模式;
S54,实时模式中,同样对累计2s的驾驶员图像进行判别,Y4和N2分别表示嘴部为“任何状态”时手部状态为“存在”和“不存在”,实时模式只关注手部状态,当手部状态为“存在”时,则判别为手持电话通话行为;否则,进入开始模式,重新对手部行为和嘴部状态进行检测。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,任何本领域中的技术人员很容易在不脱离本发明精神和范围的情况下进行进一步的改进和完善,因此本发明保护的范围应以所述权利要求的保护范围为准。