基于CNN和多尺度融合的驾驶员打电话行为检测
2022-03-16许婷婷傅俊琼
许婷婷,傅俊琼,罗 昆
(1.东华理工大学 信息工程学院,江西 南昌 330013;2.东华理工大学 江西省核地学数据科学与系统工程技术研究中心,江西 南昌 330013;3.南昌市公安局交通管理局,江西 南昌 330013)
0 引 言
近年来,随着智能信息化社会的发展,人们对手机的依赖性越来越强,智能手机也日渐成为人们的信息处理中心,随之而来的是驾驶员在行车过程中使用手机违规接听电话造成的交通事故率逐年上升,成为名副其实的“马路隐形杀手”。因此,实时检测驾驶员的违规接听电话行为在交通安全方面具有现实的研究价值。
目前,众多研究机构和学者也对这一课题进行了深入研究。例如,魏民国提出了通过提取F-B Error信息来获取人脸的特征点,确定人脸大致区域以检测手机,并判断驾驶员是否在打电话;王丹将驾驶员打电话行为分解为一系列满足一定时序关系的子动作,通过统计分析的方法在驾驶员的视频中检测打电话行为;王尽如提出了一种基于半监督支持向量机的驾驶员打电话行为检测方法,采用传统机器学习方法进行目标图像分类,从而检测出打电话行为。然而这些方案过于理想,没有充分考虑到现实环境的复杂性,考量的指标和评判流程过于单一,且难以提取图像的深层特征,使得检测结果极易受外界因素干扰,从而造成误判。
为此,该文从驾驶员的行为姿势、检测区域、违规接听电话评判指标等几个层面综合考虑,调整并优化了检测流程。结合CNN、ROI、YOLOv3等技术,将目标检测物体数学上的空间关系纳入检测系统,环环相扣,构建了一个更加科学全面的违规接听电话行为检测体系。
1 模型构建与数据预处理
1.1 构建检测模型
1.1.1 模型架构
通过对目前驾驶员违规接听电话评判模型的分析可知检测的三个重点在于:确定目标检测区域、检测目标物体、检测驾驶员行为姿势。该文结合实际情况从这三个层面考虑,设计的驾驶员违章接听电话检测流程如图1所示。
图1 驾驶员违章接听电话检测流程
目标检测区域的确定往往依赖于特定的参照物,如利用人脸矩形标识框的位置大小,手动地圈定目标检测区域,这种完全凭借先验知识的方式缺乏科学理论支撑,不仅存在手动圈定的检测区域与实际情况不符的弊端,而且在行车大环境下参照物的检测结果极易受到光照、拍摄角度等外界因素干扰,从而影响后续目标检测的流程。为此,该文提出的评判模型不框定检测区域,人脸、人手、手机等目标物体均采取全局检测的方式。
1.1.2 接听电话行为识别
如图1所示,在检测前,记录下天眼摄像头拍摄第一张图像的时间点,图像经过一系列预处理后,输入到模型中。首先利用Haar-Like特征训练的级联分类器对输入的图像进行全局的人脸检测,并将检测到的人脸标识矩形框;基于成功检测到的人脸目标,继而进行手部检测,手部特征是整个检测流程中的重点,因为它涉及到接听电话姿势(手在耳边)判别和接听电话行为(手持手机)判定两个方面,因此这里采用了检测精度高的卷积神经网络来提取手部特征,并结合感兴趣区域(ROI)技术根据网络提取的特征自动标识手部矩形框;接听电话时手部常规情况下是在耳边的,即靠近脸部,因此,成功检测到人脸和人手后,比对记录的两个矩形框的中心点坐标空间距离是否在阈值范围内来判断是否符合接听电话姿势。
考虑到现实中存在扶眼镜、捋头发等干扰姿势,故在检测到符合接听电话姿势的情况下,进一步采用YOLOv3目标检测算法进行手机检测和定位,手机在待检测图像上所占比例小且极易受异物遮挡,检测难度大,然而大多数检测评判模型却以手机的检测结果作为最后的判断依据。该文对这一检测节点进行了优化,具体过程为:若YOLOv3算法检测到手机,则依据手机区域和手部特征区域中心点在数学上的空间距离是否在阈值范围内来判定是否存在接听电话行为,反之也不会直接判定不存在违规接听电话行为,而是利用天眼摄像头拍摄图像时会记录拍摄时间点这一特性,根据拍摄时间点获取符合接听电话姿势的时长是否在阈值设定范围内来进一步判定是否存在接听电话行为。
1.2 样本预处理
为了弱化背景物体对检测的影响,在进行检测前需对图片进行预处理。样本预处理步骤依次为椭圆肤色分割、全局阈值和中值滤波去噪等操作。
肤色分割技术常用于人像处理领域,提取待检测图像中肤色区域弱化背景,不仅可以降低无关背景的干扰、聚焦检测区域,还能有效提高检测算法的效率。通过查阅资料得知,将RGB图像的三个联通分量转换到YCRCB空间的三个分量后可得:
Y
=0.
299R
+0.
578G
+0.
114B
(1)
C
r=(0.
511R
-0.
428G
-0.
083B
)+128(2)
Cb=(-0.
172R
-0.
339G
+0.
511B
)+128(3)
将三维图像转换到YCRCB二维空间后,肤色像素点会聚集到一个椭圆区域。因此,可将肤色分割的实现思路概括为:定义一个椭圆模型,将RGB图像转换到YCbCr空间并在CbCr平面进行投影得到一个CbCr的椭圆区域;通过判断当前像素点的CbCr是否落在该椭圆区域内(含边界),即可确定当前像素点是否属于肤色像素点。
为了将检测区域和背景尽可能分离,在肤色分割的基础上还需依次采用阈值分割和滤波进行去噪处理,从而提高检测识别的准确率。
2 检测模型算法
2.1 人脸的特征提取与检测
Haar-Like特征通过模板方式将人脸特征量化以区分人脸和非人脸,在表示图像方面灵活性大,计算速度快。Haar-Like特征主要分为四类:边缘特征、线性特征、对角特征以及衍生出来的圆心环绕特征。
首先基于滑动窗口提取出子窗口的Haar-Like特征;再使用矩形模板进行匹配,将匹配区域内白色区域的像素之和减去黑色区域的像素之和,得到“人脸特征值”为:
(4)
对于Haar-Like特征来说,检测人脸需要扫描大量的窗口并计算出每个窗口对应的特征值,如此大的计算量会极大地降低检测速度。为了满足系统实时检测的要求,使用积分图来加速Haar-Like特征值的计算。
积分图的构造是图像中位置(i
,j
)处的值ii(i
,j
)表示原图像(i
,j
)左上角方向所有像素的和:(5)
构造好积分图之后,图像中任何矩阵区域的像素累加和都可以通过简单运算得到且可在常数时间内完成。
在确定了窗口的特征值之后,需要对获取的每一个特征f
,训练出一个较弱分类器,单一弱分类器无法达到理想的效果,因此将训练出的若干分类器进行多轮筛选级联得到强分类器进行人脸检测并在人脸区域标识矩形框,真实车载环境下的人脸检测效果如图2所示。图2 人脸检测效果
2.2 基于CNN和ROI的手部检测定位技术
行车过程中人手姿势动态多变,固定特征模板的匹配检测方式不适用。卷积神经网络CNN通过多个卷积核来提取局部关联性的特征,再从更高层次对局部特征进行整合,得到全局信息;凭借神经元局部连接、权重共享、平移等优点,在图像动态特征提取检测方面应用十分广泛。设计的模型对输入的手部样本图进行多次卷积和池化,充分提取手部特征,提取特征过程结束后,进入特征整合阶段,通过全连接实现特征的维度变换和分类,最后模型根据分类结果预测输出。
在训练模型前,为了减少模型训练消耗的时间、内存以及图像颜色对特征提取的干扰,对手部数据集进行了归一化处理,将样本图像都处理为28×28像素的灰度图像,如图3所示。
图3 28×28手部灰白像素样本图
使用CNN进行手部特征提取的核心是卷积和池化,卷积是用不同尺寸的卷积核在图像上以一定步长不停地移动,对应位置相乘累加直至遍历完整幅图像,最终得到特征图的过程。
池化(pooling),也称欠采样或下采样,主要是通过函数的方式降低数据维度,压缩数据和参数,减少过拟合,提高模型的容错度。池化分为最大池化(max-pooling)和平均池化(mean-pooling)两种函数。平均池化更易保留背景信息,然而最大池化却能较好地保留图像特征纹理,因此其符合上述局部特征提取需求。最大池化通过取局部区域最大值的方式减少数据量。
卷积和池化操作“剥皮式”地提取核心特征,构建了一个“特征工程”,继而全连接层把网络学习到的特征进行整合得到预测输出。
为了提高识别精度,减少图像预处理成本,待CNN模型提取到手部特征之后,利用感兴趣区域(ROI)技术根据模型提取的特征自动在手部区域绘制矩形框;检测具体过程如图4所示。
图4 CNN网络进行手部识别的过程
接听电话时手部和脸部靠的较近,因此手部、脸部边界框中心点距离在数学空间上存在一定的距离阈值,经过交警部门有关专家的调研,实际场景中人手和人脸区域中心点距离在15 cm到20 cm时吻合接听电话姿势,而检测图像样本与实际场景检测区域的中心距离是不同的,因此可利用数值比例尺来衡量它们之间的比例关系。通过多次实验验证,检测图像与实际场景检测区域比例尺取1∶5时,即图像上手脸区域中心点距离在3 cm至4 cm时满足多数情况且检测精度最高,可通过对比人脸、人手矩形边界框的中心点距离和阈值范围来判定是否吻合接听电话场景。令A
为脸部矩形框的中心点坐标(X
,Y
),B
为手部矩形框的中心点坐标(X
,Y
),则中心点距离d
为:(6)
根据d
来判断人脸和手空间位置是否吻合接听电话场景:(1)若d
∈[3,4],符合接听电话场景,进行下一步的流程判断;(2)若d
<3或d
>4,判定不存在接听电话行为,退出检测流程。2.3 多尺度融合手机检测算法
手机在待检测图像中所占比例比较小,且检测结果易受环境干扰,对于这类小目标物体检测难度较大。近些年,YOLOv3目标检测算法采用多尺度融合的方式显著提高了小目标物体的检测精度。对比利用人脸位置来确定检测区域进行手机检测的一般方法,在手脸空间位置距离判断的基础上,引入YOLOv3算法全局检测手机,再通过比对手机和手部的空间距离关系,进一步判定是否存在接听电话行为。
检测过程中,对输入的样本使用Darknet-53网络提取特征,输出检测样本三个不同尺寸的特征图:y
(13×13×255),y
(26×26×255),y
(52×52×255)。使用多尺度特征图实现由粗到细粒度的检测,特征图尺寸越大包含目标物体的信息就越宽泛,尺寸越小包含的信息就越精细。提取特征后生成预测的手机边界框,并使用多尺度特征图融合预测来提高边界框和预测类别的准确性。在图2人脸检测的基础上进行手部和手机检测,成功检测到人手和手机并用不同颜色边框的矩形标识,检测结果如图5所示。
图5 违规接听电话检测图
接听电话时手部和手机在位置空间上存在一定的数学映射关系,据交通部门有关专家的调研结果可知,手部和手机边界框中心点距离在5 cm内符合接听电话情况,同上文提到的利用数值比例尺1∶5来衡量检测图像样本与实际场景检测区域之间的比例关系,即手部、手机边界框中心距离在1 cm内视为符合接听电话情况。此处有别于传统方法的是,不以手机检测结果作为最终的评判依据,而是根据YOLOv3检测结果分为两种情况讨论:
情况一:成功检测到手机,计算手部矩形框和手机边界框的中心距离d
:(1)若d
≤1,判定存在接听电话行为,违规记录上报;(2)若d
>1,判定不存在接听电话行为。情况二:未检测到手机,根据天眼摄像头记录的图片拍摄时间连续检测图像,获取手脸边界框中心距离符合接听电话姿势(手在耳边)的时长t
,据交通权威专家判定,行车过程中,手在耳边的时长t
长达8秒,可判定存在接听电话行为,即:(1)若t
≥8,判定驾驶员存在接听电话行为,违规记录上报;(2)若t
<8,判定不存在接听电话行为。3 实验结果及分析
实验采用Python3.7与OpenCV4.4图像视觉库作为开发环境,运行环境为Centos 7.4,CPU为酷睿8核、2.5 GHz,内存条DDR4 2800 16 GB,SSD固态硬盘512 G。样本数据来自于Kaggle比赛的“state-farm-distracted-driver-detection”数据集,记录了驾驶员行车时的多种状态,比如左右手接听电话、喝水、摸头、玩手机等,且根据这些不同的状态分为10个不同的类别。本次实验总共从中选取了45 000张不同状态、不同拍摄角度和距离的正反例样本,并根据是否接听电话将样本分为2个类别:接听电话和正常行为(非接听电话)。实验中,随机抽取40%的样本作为测试数据集,其余60%的样本作为训练数据集。
由表1可知,人脸检测在正常行为样本测试下的准确度为97.98%,接听电话行为样本检测准确度可达97.34%,表明算法在不同状态下的人脸检测均有良好的效果。
表1 人脸检测结果
针对接听电话行为检测的实验结果如表2所示,可以看出正常行为样本下检测精度为96.67%,接听电话样本检测精度可达96.98%,反映了算法对驾驶员接听电话行为具有较好的检测效果。
表2 接听电话行为检测精度
为了进一步验证方案的检测效果,将设计的CNN+ROI+YOLOv3检测方案与已有文献方法进行对比。具体对比有褚晶辉等提出的多尺度注意力卷积神经网络模型(Multi-scale Attention CNN Model)、赵李坤等提出的LBP+SVM算法,以及卜庆志等提出的基于HOG+SVM_RBF这三种方案。分别对这三种方案和CNN+ROI+YOLOv3检测方案进行了五次实验,每次实验都在上一次实验基础上增加300张测试图片样本;检测效果如图6所示,并对图6数据进行统计,求得的平均识别率如表3所示。
表3 四种方案的平均识别率
实验分别采用了不同数量的样本依次对四种算法的识别率进行验证,通过表3可知,CNN+ROI+YOLOv3方案的平均识别率为92.70%,显著高于其他三种检测模型,表明该方案识别率的变化趋势较为集中,模型稳定好。
为了更直观地显现效果,将五次实验的结果绘制到折线图中。如图6所示,显然,该文提出的CNN+ROI+YOLOv3检测模型在整体精确度和稳定性等方面均显著优于其他方法,具有一定的可行性。
图6 不同样本量下四种方案的检测识别率
4 结束语
通过CNN模型和多尺度融合检测算法,并结合目标检测物体数学上的空间距离,实现了对驾驶员违规接听电话行为实时检测的目标。对比其他检测方案,该方法在精度、稳定性方面均有显著的提高,打破了传统检测的技术壁垒和单一检测模式的局限性,并综合考虑了检测过程中的不确定因素,在检测流程上合理地设定了涵盖多种情况的综合性评判指标,使得检测结果受外界环境因素干扰较小,且最终转化到数学上的空间距离计算显著减少了算法的计算量,因此在交通安全方面有较好的应用前景。