• 29
驾驶员的行为不仅会对自身安全产生影响,也会对整体交通安全产生影响。通过实时检测驾驶员的不良行为,对驾驶员进行有效的监督和警示,可以减少恶性交通事故发生的概率,提高交通的整体安全性。本文研究基于深度神经网络的驾驶员行为检测方法,通过构建用于目标检测的深度神经网络Mask R-CNN ,并在样本图像库上对该神经网络进行精调,使之能够识别出驾驶员的头部、手、方向盘、手机、香烟、座椅等多个目标,定位边框位置和大小,从而检测出驾驶员双手不握方向盘、单手握方向盘、吸烟、打手机、脱岗等多种危险驾驶行为。1  基于深度学习的目标检测算法目标检测是计算机视觉领域的一个非常具有挑战的研究课题,它的任务是出图像当中所有感兴趣的目标,确定其位置和大小。传统的目标检测方法,大致分为三个步骤:首先是区域选择,一般采用滑动窗口的策略对整幅图像进行遍历,通过不同尺寸,不同长宽比的滑动窗口能选出不同大小的目标所在的区域。然后是特征提取,通常采用Haar 特征、盖伯特征、LBP 特征、HOG 特征、SIFT 特征等对行人和普通目标进行检测。最后,通过之前的特征,使用已经训练好的分类器如SVM ,Adaboost 等进行分类。传统的目标检测方法有如下
几个问题:光线变化较快时,算法效果不好;缓慢运动和背景颜一致时,不能提取特征像素点;时间复杂度高;抗噪性能差。近年来,随着深度学习的发展,基于卷积神经网络的目标检测算法逐渐成为主流。其优势在于可以根据数据集自动提取特征,而且对形变、光照等变化具有一定程度的不变性。基于深度学习的目标检测算法主要分为两个关键子任务:目标分类、目标定位。其中目标分类主要负责判断输入的图像区域内是否有目标物体,并返回表明该区域内存在感兴趣的物体的分数,即可能性的标签。目标定位则负责确定输入的图像区域中感兴趣物体的位置和范围,通常返回bbox (bounding box )来表示物体的位置信息。目前基于深度学习的目标检测算法大致分为:(1)基于回归区域的目标检测(One-Stage ):这类检测算法不需要生成候选区域,通常采用一个阶段直接产生物体的bbox 和类别概率。把目标对象的检测问题直接作为一个位置坐标和置信度评分的回归问题来处理,可一次性实时预测多个目标对象
的类别和边框位置。目前主流的算法有SSD 模型,YOLO 模型等。
(2)基于候选区域的目标检测(Two-Stage ):这类检测算法分为两个步骤,首
先对输入的图像生成候选区域,之后在步骤二中对该候选区域进行分类。预先出
图中目标可能出现的位置,通过利用图像中的纹理、边缘、颜等信息,保证在选
取较少窗口的情况下保持较高的召回率。目前主流的算法有Faster R-CNN ,Mask
R-CNN 模型等。
2  Mask R-CNN算法介绍
区域卷积神经网络(Regions with CNN features )使用深度模型来解决目标检测。
首先对每一张输入图像使用选择性搜索(Selective search ),来选取多个高质量的提议
区域(region proposal );接着对每一个提议区域,将其缩放(warp )成卷积神经网络
需要的输入尺寸;然后选取一个预先训练好的卷积神经网络,去掉最后的输出层来作
为特征抽取模块;然后将每一个提议区域提出的CNN 特征输入到支持向量机(SVM )
来进行物体类别分类;最后,对于支持向量机分好类的提议区域做边框回归,训练一
电子
信息
驾驶
行为
检测的MASK R-CNN
• 30
未识别的网络•个线性回归模型来预测真实边界框,校正原来的建议窗口,生成预测窗口坐标。
R-CNN 的主要性能瓶颈在于需要对每个提议区域(region proposal )独立的抽取特征,这会造成区域会有大量重叠,独立的特征抽取导致了大量的重复计算。因此,2015年出现的Fast R-CNN 对R-CNN 的一个主要改进在于首先对整个图像进行特征抽取,然后再选取提议区域,从而减少重复计算。它将Fast R-CNN 中的选择性搜索替换成区域提议网络(region proposal network )。RPN 以锚框(anchors )为起始点,通过一个小神经网络来选择区域提议。
Faster R-CNN 在物体检测中已达到非常好的性能,Mask R-CNN 在2018年被提出,在此基础上更进一步,对每一个目标物体,不仅给出其边界框,并且对边界框内的各个像素是否属于该物体进行标记。Mask R-CNN 和Faster R-CNN 一样是两阶段框架,第一阶段扫描图像生成候选框;第二阶段根据候选框得到分类结果,边界框,同时在原有Faster R-CNN 模型基础上添加分割分支,得到掩码结果,实现了掩码和类别预测关系的解耦。
Mask R-CNN 算法具有以下特点:
(1)分割任务与定位、分类任务是同时进行的;
(2)引入了RoI Align 代替Faster RCNN 中的RoI Pooling ;
(3)引入语义分割分支,实现了mask 和类别预测的关系的解耦,mask 分支只做语义分割,另一个分支进行类型预测的任务。
3  工程实例
以上海中安电子信息科技有限公司开发的“公交主动安全预警系统”为例,需要利用专用摄像头实时采集驾驶员的图像和车辆前方行驶情况,通过对驾驶员脸部疲劳状态、不安全驾驶行为进行精确分析判断,进行声音预警、人工调度干预,从而减少交通事故发生。
对驾驶员行为检测的预期目标是:五种驾驶行为(双手不握方向盘、单手握方向盘、吸烟、打手机、脱岗)同时检测的平均时间不超过1s/每幅图,并且算法准确率和召回率不小于80%。
基于比较分析,我们挑选了基于PyTorch 深度学习框架的Mask R-CNN 算法作为目标检测的模版。输入一张任意大小的驾驶室右侧俯视摄像头的图像,通过设计并训练好的模型,检测7种不同目标的位置和大小:驾驶员的手、驾驶员的头部、手机、拿着手机的手、方向盘、香烟、空座椅。
考虑到在驾驶员与物体互动的过程中,目标距离近,目标发生重叠,目标较小的可能性广泛存在。因要对目标在图像上的相对位置进行判断,所以对于目标边框的精确度要求交高。在Mask R-CNN 框架中,特征提取选用ResNet-101-FPN ,RoI 选取RoI Align ,Classifier 选取全连接+softmax 分类器。
对检测结果进行分析是一个多标签分类任务,本系统中的四个标签的关联性并不强,可以直接采用一阶策略进行多标签分类任务对各个目标进行分析:如果驾驶员头部与空驾驶员座椅均未检出,则摄像头已经被遮挡;如果驾驶员头部与手机、耳机距离近或重合,则该驾驶员在打电话;如果在图像中检测出香烟,则该驾驶员在抽烟;如果在图像中检测出空驾驶员座椅,或者驾驶员头部未检出,都可认为该驾驶员已经脱岗。
经过200次实验验证,五种驾驶行为的识别准确率接近90%,高于其它的目标检测算法。并且适用于重叠目标检测和小目标检测,速度约为2fps ,达到了我们的设计需求。
结论:由于无需进行人工的特征设计、良好的特征表达能力及优良的检测精度,目前,基于深度学习的目标检测算法已经超越传统检测方法,成为当前目标检测算法的主流。从R-CNN 、FAST R-CNN 、FASTER R-CNN 、到MASK R-CNN ,经过三年时间的演进,计算机视觉领域取得了巨大的飞跃,我们可以在保持快速检测数据的前提下,进一步改进了小物体的定位精度。在公共交通安全领域,有效解决了视频存在运动模糊、遮挡、形态变化、光照变化、背景变化等检测不准确的问题,确保驾驶员的不良驾驶行为能被有效检出,并提供主动预警支持,从而提升了驾驶安全。
作者简介:高文(1981-),男,湖北荆州人,大学本科,现供职于上海中安电子信息科技有限公司,研究方向:计算机视觉。