一种适用于多姿态下的驾驶人员接打电话行为检测方法
技术领域
本发明属于车辆安全系统领域,涉及一种适用于多姿态下的驾驶人员接打电话行为检测的方法,特别是使用多姿态下人脸特征点定位,结合头部三维姿态检测进行轮廓椭圆标定,进而根据人脸与人手相互关系,准确、有效地判断驾驶人员是否存在接打电话的行为。
背景技术
目前,大量统计资料证实,酒后驾驶已不再成为造成车祸与人员伤亡的第一“杀手”,驾驶时驾驶人员注意力不集中才是导致交通事故的最大原因,而驾驶人员开车打电话已成为导致注意力不集中的主要原因。
驾车拨打或接听电话有三大危害:1、分散驾驶人注意力,拨打或接听电话时人脑反应比酒驾还要慢30%,较年轻驾驶人员反应速度仅相当于70岁老年驾驶人,大大削弱了驾驶人员的应变能力;/2、驾车打电话导致交通事故风险比通常高4倍,三成以上致命交通事故是因驾驶人注意力不集中所致;3、驾车拨打或者接听手机还会影响其他车辆的通行效率,加剧路面车辆拥堵。
据了解,早在2004年5月1日起就已经施行的《中华人民共和国道路交通安全法实施条例》第62条明确规定“驾驶机动车不得拨打接听手持电话、观看电视等妨碍安全驾驶的行为。”而现在《道路交通安全法实施条例》亦规定:驾驶机动车不得有拨打电话、接听手 持电话和观看电视,对违反该项规定的驾驶人处20元以上200元以下罚款,并记2分。
然后,目前并没有技术和设备可以针对驾驶人员接打电话的行为进行智能检测和识别,车队管理者也不能够及时准确的知晓驾驶人员接打电话行为并进行制止。因此,有必要提供一种针对驾驶人员是否存在接打电话行为进行智能检测与判断的方法。
发明内容
为解决上述现有技术问题,本发明的目的在于提供一种适用于多姿态下的驾驶人员接打电话行为检测方法,以降低因驾驶人员接打电话行为而导致交通事故之效果。
为实现上述技术目的,本发明所采取的技术方案如下:
一种适用于多姿态下的驾驶人员接打电话行为检测方法,其特征在于,包括以下步骤:
步骤1:图像采集,采集驾驶员人脸图像信息;
步骤2:图像识别,对采集到的图像进行实时人脸检测;
步骤3:面部特征点标定,包括:对检测到的人脸进行眉毛、眼睛、鼻子及嘴巴等特征点定位;
步骤4:头部三维姿态检测,包括:利用几何特征对头部三维姿态进行检测,判断头部姿态;
步骤5:人脸轮廓椭圆标定,包括:利用眉毛、眼睛、鼻子和嘴巴标记特征点以及驾驶人员头部三维姿态,通过线性回归,对驾驶人员进行人脸轮廓椭圆标定;
步骤6:在标定的人脸轮廓椭圆外进行接打电话行为检测判断,包括:依次检测人脸周围是否存在人手,以及人脸与人手之间是否存在直线,判断驾驶人员是否在接打电话。
进一步地,优选的是,步骤2中,包括:采用统计分析与机器学习的方法归纳出人脸样本与非脸样本各自的haar统计特征,再构建区分各自特征的haar分类器,用haar分类器实现人脸定位检测。
进一步地,优选的是,步骤2中,使用AdaBoost算法检测出人脸位置。
进一步地,优选的是,步骤3中,采用监督梯度下降法进行面部特征点标定,监督梯度下降法主要分为训练和检测两个环节;
训练部分在系统运行之前进行操作与计算,主要为了获得人脸特征点定位部分的回归迭代参数,使得算法在运行时可以准确的对人脸中眉毛、眼睛、鼻子、嘴巴等特征点进行定位;
首先,对所有训练库中的人脸图像手工标记眼睛嘴巴鼻子等特征点,并得到一个平均脸;
其次,求出平均脸的扰动参数,即缩放和平移的均值和标准差。针对每一幅图像以该均值和标准差做高斯分布采样,得到特征值点的训练初始值x0,并计算所有初值点的sift特征φ0;
再次,通过公式(1)即可求出特征值点的梯度下降方向及其偏差因子:
其中,{di}训练库中的人脸图像集,是人脸图像集中所有 手工标记的特征点真值。是训练特征值点xi和真值点间的差值矩阵,φi是特征值点的sift特征,R是梯度下降方向,b是偏差因子,k表示迭代次数;
再次,通过公式(2)对每一幅人脸图像中的特征点x进行更新,并重新计算更新后特征点的sift特征:
xk=xk-1+Rk-1φk-1+bk-1 (2)
最后,对公式(1)和公式(2)进行迭代求解,特征值点xk收敛于真值点x*,此时训练结束,最终求得的每次迭代过程当中的梯度下降方向kR和偏差因子bk即检测所需要的回归迭代参数。
进一步地,优选的是,步骤3中,在检测阶段,具体包括:
首先,将训练过程中所得到的标准平均人脸样本定位到摄像头检测得到的人脸图像当中作为特征点的初始坐标;
其次,计算所有初始坐标点的sift特征,记为φ0;
最后,通过公式(3)进行回归迭代计算得到最终的面部特征点坐标,
xk=xk-1+Rk-1φk-1+bk-1 (3)
其中,Rk和bk是训练阶段得到的回归迭代参数,φk为每次迭代特征点的sift特征。
进一步地,优选的是,步骤5中,具体包括:检测驾驶员是否处于头部的左右偏转及上下俯仰状态,其中,左右偏转可通过以下方法进行计算:
当人脸处于正面时,鼻下点与左右外眼点的夹角相等;
当人脸左右偏转,即侧深度旋转后,鼻下点与左右外眼点的夹角差为βeye_out,同时可以算得鼻下点与左右内眼点的夹角差βeye_in,鼻下点与左右嘴角点的夹角差βmouth,为了减少误差,可取人脸的侧深度旋转角度为这三个角度的均值,即:
上下俯仰角度可以通过以下方法进行计算,包括:
人脸的侧面图可以看作是一个椭圆,y轴即为椭圆的中分线,x轴是眼睛和嘴连线的垂直平分线,那么没有上下俯仰,即垂直深度旋转时有α1=α2。垂直深度旋转后,x轴不再是眼睛和嘴连线的垂直平分线,根据等腰三角形的性质,侧深度旋转角度的计算公式为:
α0、β0为近似姿态估计值,利用α0、β0作为初始值,使用拟牛顿法对人脸姿态精确求解,可以求得人脸姿态的精确偏转角度。
进一步地,优选的是,步骤6中,采用在标定的人脸轮廓椭圆外进行接打电话行为检测识别,具体包括:
首先,利用分水岭算法及人脸灰度均值—方差的自适应二值化分割获取候选的人手区域;
其次,利用皮肤纹理分析、人脸-手区域连通分析,人脸-手区域距离分析以及手区域大小分析,对候选人手区域进行置信决策,判断人脸周围是否存在人手;
最后,若判断人脸周围存在人手,则检测人脸与人手之间是否存在直线,如果检测到直线,即认为驾驶人员在接打电话。
进一步地,优选的是,利用分水岭算法及人脸灰度均值—方差的自适应二值化分割获取候选的人手区域采用基于沉浸的离散图像的分水岭变换,具体过程如下:
(1)f:D为灰度图像,最大和最小灰度值h_max和h_min。定义一个从h_min到h_max的水位h不断递增的递归过程;
(2)在递归过程中每个与不同的局部最小相关的汇水盆地都不断扩展,定义X(h)为在水位h时汇水盆地的集合的并,在h+1层,一个连通分量T(h+1)或者是一个新的局部最小,或者是一个已经存在的X(h)中的一个盆地的扩展;对于后者,按邻接关系计算高度为h+1的每一个点与各汇水盆地的距离;如果一个点与两个以上的盆地等距离,则它不属于任何盆地,否则它属于与它距离最近的盆地,这样从而产生新的X(h+1);
(3)把在高度h出现的局部最小记为MIN(h),把Y(h+1,X(h))记做高度为h+1同时属于X(h)的点的集合,则
分水岭变换Watershed(f)就是X(h_max)的补集:
Watershed(f)=D\(h_max)
(4)为了更精确的获得手部图像的分割区域,可先根据之前确定的人脸部区域灰度均值和方差,进行图像的二值化分割,对二值图像的距离进行分水岭变换,进而得到最终结果。
本发明采取了上述方案以后,其有益效果如下:
1、通过对驾驶员头部三维姿态的检测,实现了多角度、多姿态下驾驶人员接打电话行为的灵活检测、智能分析与准确判断;
2、采用了监督梯度下降法来进行人脸特征点定位,并结合人脸轮廓椭圆标定进行判断,使其更加适用于实际驾驶场景,具有很强的实时性、实用性及可靠性,能够全天候、非接触式进行驾驶人员接打电话行为检测,为安全行车提供有效的安全保障。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面用实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
本发明提供的适用于多姿态下的驾驶员接打电话行为检测方法,具体包括如下步骤:
步骤1:图像采集,具体为:通过标/高清摄像头对驾驶员人脸图像进行捕捉,从摄像头处实时的获取视频流,并把数据流送到CPU进行后续的处理;
步骤2:图像识别,具体为:采用统计分析与机器学习的方法归纳出人脸样本与非脸样本各自的haar统计特征,再构建区分各自特 征的haar分类器,用haar分类器实现人脸定位检测,并使用AdaBoost算法检测出人脸位置;
步骤3:采用监督梯度下降法对检测到的人脸进行眉毛、眼睛、鼻子及嘴巴等特征点的标定;
其中,监督梯度下降法主要分为训练和检测两个环节:
训练部分在系统运行之前进行操作与计算,主要为了获得人脸特征点定位部分的回归迭代参数,使得算法在运行时可以准确的对人脸中眉毛、眼睛、鼻子、嘴巴等特征点进行定位,其具体过程如下:
首先,对所有训练库中的人脸图像手工标记眼睛、嘴巴、鼻子等特征点,并得到一个平均脸;
其次,求出平均脸的扰动参数,即缩放和平移的均值和标准差,针对每一幅图像以该均值和标准差做高斯分布采样,得到特征值点的训练初始值x0,并计算所有初值点的sift特征φ0;
再次,通过公式(1)求出特征值点的梯度下降方向及其偏差因子:
其中{di}为训练库中的人脸图像集,是人脸图像集中所有手工标记的特征点真值,是训练特征值点xi和真值点间的差值矩阵,φi是特征值点的sift特征,R是梯度下降方向,b是偏差因子,k表示迭代次数;
再次,通过公式(2)对每一幅人脸图像中的特征点x进行更新,并重新计算更新后特征点的sift特征;
xk=xk-1+Rk-1φk-1+bk-1 (2)
最后,对公式(1)和公式(2)进行迭代求解,特征值点xk收敛于真值点x*,此时训练结束,最终求得的每次迭代过程当中的梯度下降方向kR和偏差因子bk即检测所需要的回归迭代参数。
在检测阶段,具体过程包括:
首先,将训练过程中所得到的标准平均人脸样本定位到摄像头检测得到的人脸图像当中作为特征点的初始坐标;
其次,计算所有初始坐标点的sift特征,记为φ0;
最后,通过公式(3)进行回归迭代计算得到最终的面部特征点坐标,
xk=xk-1+Rk-1φk-1+bk-1 (3)
其中,Rk和bk是训练阶段得到的回归迭代参数,φk为每次迭代特征点的sift特征。
步骤4:利用几何特征对头部三维姿态进行检测,判断头部姿态,具体为:检测驾驶员是否处于头部的左右偏转及上下俯仰状态,
其中,左右偏转可通过以下方法进行计算:
当人脸处于正面时,鼻下点与左右外眼点的夹角相等;
当人脸左右偏转,即侧深度旋转后,鼻下点与左右外眼点的夹角差为βeye_out,同时可以算得鼻下点与左右内眼点的夹角差βeye_in,鼻下点与左右嘴角点的夹角差βmouth,为了减少误差,可取人脸的侧深度旋转角度为这三个角度的均值,即:
上下俯仰角度可以通过以下方法进行计算,包括:
人脸的侧面图可以看作是一个椭圆,y轴即为椭圆的中分线,x轴是眼睛和嘴连线的垂直平分线,那么没有上下俯仰,即垂直深度旋转时有α1=α2。垂直深度旋转后,x轴不再是眼睛和嘴连线的垂直平分线,根据等腰三角形的性质,侧深度旋转角度的计算公式为:
α0、β0为近似姿态估计值,利用α0、β0作为初始值,使用拟牛顿法对人脸姿态精确求解,可以求得人脸姿态的精确偏转角度;
步骤5:利用眉毛、眼睛、鼻子和嘴巴标记特征点以及驾驶人员头部三维姿态,通过线性回归,对驾驶人员进行人脸轮廓椭圆标定;
步骤6:在标定的人脸轮廓椭圆外进行接打电话行为检测判断,具体为:
首先,利用分水岭算法及人脸灰度均值—方差的自适应二值化分割获取候选的人手区域,该过程采用基于沉浸的离散图像的分水岭变换方法,具体如下:
(1)f:D为灰度图像,最大和最小灰度值h_max和h_min。定义一个从h_min到h_max的水位h不断递增的递归过程;
(2)在递归过程中每个与不同的局部最小相关的汇水盆地都不断扩展,定义X(h)为在水位h时汇水盆地的集合的并,在h+1层,一个连通分量T(h+1)或者是一个新的局部最小,或者是一个已经存在的X(h)中的一个盆地的扩展;对于后者,按邻接关系计算高度为h+1的每一个点与各汇水盆地的距离;如果一个点与两个以上的盆地等距离, 则它不属于任何盆地,否则它属于与它距离最近的盆地,这样从而产生新的X(h+1);
(3)把在高度h出现的局部最小记为MIN(h),把Y(h+1,X(h))记做高度为h+1同时属于X(h)的点的集合,则
分水岭变换Watershed(f)就是X(h_max)的补集:
Watershed(f)=D\(h_max)
(4)为了更精确的获得手部图像的分割区域,可先根据之前确定的人脸部区域灰度均值和方差,进行图像的二值化分割,对二值图像的距离进行分水岭变换,进而得到最终结果。
其次,利用皮肤纹理分析、人脸-手区域连通分析,人脸-手区域距离分析以及手区域大小分析,对候选人手区域进行置信决策,判断人脸周围是否存在人手;
最后,如判断人脸周围存在人手,则检测人脸与人手之间是否存在直线,如果检测到直线,即认为驾驶人员在接打电话。
以上显示和描述了本发明的基本原理、主要特征及实施手段。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的步骤及原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。