驾驶员监控系统是基于驾驶员面部图像处理来研究驾驶员状态的实时系统。首先挖掘出人在疲劳状态下的表情特征,然后将这些定性的表情特征进行量化,提取出面部特征点及特征指标作为判断依据,再结合实验数据总结出基于这些参数的识别方法,最后输入获取到的状态数据进行识别和判断。
通过一个面向驾驶员的红外摄像头来实时监测头部、眼部、面部、手部等细节,可以从眼睛闭合、眨眼、凝视方向、打哈欠和头部运动等检测驾驶员状态。通常通过检测人脸眼睛和其他脸部特征以及行为,同时跟踪变化,提取症状实现驾驶员疲劳、分神、不规范驾驶检测。
至于为什么采用红外摄像机,是因为系统要求能够在全部工况环境下(包括白天、夜晚、顺光、逆光等)工作,能适应各种光源环境,即视在夜间、逆光等情况下,也能提供高品质的。同时在驾驶员佩戴帽子、眼镜、墨镜、口罩等情况下由于红外特性可以穿透墨镜镜片,被遮挡的眼部信息也能正常成像,很好地解决了驾驶员眼镜反光或佩戴墨镜的问题。
DMS系统挑战:
1.如何定义疲劳:面部状态和大脑活动之间存在关系,可从面部提取眼睛嘴巴鼻子及突出点。
2.如何测量注意力:从驾驶员的头部和注视方向估计驾驶员对道路的注意力。
3.人脸检测难点:面部旋转、化妆品胡须眼镜等、表情(快乐,哭泣)、照明及遮挡。
4.面部跟踪难点:三维映射到二维的信息丢失,部分遮挡,光线变化。
DMS症状提取:
1.与眼部区域有关的症状:开/闭距离、闭合频率、凝视方向、眼皮运动。
2.与嘴巴区域有关的症状:开/闭距离,打哈欠频率。
3.与头部区域有关的症状:点头、左右转动、头部运动。
4.与面部预取有关的症状:不同的表情。
5.与身体姿势有关的症状:喝酒抽烟,调收音机,面向后面,与乘客交谈,打电话,发短信。
DMS主要预警功能:
闭眼预警:闭眼检测分为两个等级:闭眼0.8秒触发1级预警,闭眼2秒触发2级预警
低头预警:检测到低头超过超过1.0秒,触发报警
打哈欠预警:检测到打哈欠超过0.8秒,触发报警
打电话预警:检测到驾驶员有打电话行为时,触发报警
抽烟预警:检测到驾驶员有抽烟行为时,触发报警
左顾右盼预警:检测到驾驶员视线偏移超过1.0秒,触发报警
遮挡镜头预警:通过画面检测功能发现一定范围内的黑屏,触发报警
驾驶座无人预警:检测到驾驶座位上没有驾驶员时触发报警
眼镜墨镜过滤:检测到戴眼镜/墨镜驾驶员出现疲劳状态触发报警
身份验证预警:对比司机实时照片和数据库内照片识别出司机身份,或给出未知身份警报
DMS之疲劳检测:
脸部检测:其过程又分为人脸定位、人脸识别和人脸跟踪。人脸定位的作用是在图像中通过识别面部特征点以检测人脸并标记出位置;人脸识别的作用是将在新图像中检测到到的面部数据和已储存的数据进行匹配;人脸跟踪的作用是在每帧图像上跟踪之前图像帧里发现的人脸。
头部特征:由三个姿态角构成,基于CNN设计头部跟踪系统以图像中脸部区域为输入,通过检测出的面部特征点结合默认的头部模型,可以得到大概的头部姿态。通过进一步跟踪已发现的面部特征和寻找到的更多特征,可以获取更多的数据用以添加到头部模型中,进而更新头部的几何特性。系统运行中,此过程不停的循环,从而以三维姿态角持续输出头部的当前姿态。
眼神检测:利用视线方向来判断驾驶员是否注意力分散。根据之前得到的头部姿态可以推算出大概的视线方向。在瞳孔、角膜能够良好识别的情况下,可以进一步根据普尔钦斑点计算出准确的视线方向。再根据系统内搭建的相关零部件布置数据,就可以知道当前驾驶员的观察目标。结合当前的驾驶行为进而判断驾驶员是否注意力分散。
眨眼检测:根据识别出的人脸和头部姿态进一步识别出眼睛的位置及其状态,主要用于进行疲劳状态和注意力是否分散的计算。其中,利用眼睛开度等信息基于PERCLOS来判断疲劳状态。包括眨眼信息(速率与时差)和眼部信息(开与合)。眼部信息为二分类问题,需要神经网络较小;眨眼信息需要分析过去数帧。
DMS之危险动作检测:
在驾驶过程中,一切注意力不在驾驶上的行为都被称为危险驾驶行为。例如,低头找东西,看窗外的风景,接打电话,抽烟、喝水,未系安全带、故意遮挡等等。对于这些异常情况,可以将其分为两种。例如低头或者看窗外都是跟人头有关,如果能够得到人头姿态角度,那么问题就可以解决;喝水,打电话等动作,都属于动作识别,设计一个动作识别的算法也可以解决。
头部姿态检测:得到人头姿态角度,一般有两种方法。第一种是上文中提到的landmark,人脸上关键点的坐标全部已知,使用PnP算法可以直接拟合出人头三维角度;第二种是使用标记好的yaw,pitch,roll三个角度的人脸图片直接训练一个小型网络,网络输出层直接回归三个float量,简单粗暴,精度较高,训练数据集直接使用开源人脸数据集,无需标注。
异常动作识别:识别打电话动作,喝水动作,抽烟等动作,如果单纯地将其是作为动作行为识别,使用LSTM或者3D-Conv算法,其计算消耗资源很严重。所以,一般有两种比较简单的方法。第一种是将此类的动作识别视为目标检测问题,例如打电话识别,就将手机视为待检目标,喝水检测就将水杯视为待检目标。这种方法思路很简单,但是有一个缺点就是,例如DMS摄像头装在汽车A柱,司机右手打电话,这时候成像画面中是看不到手机的,所以这种场景下检出率不高。另一种方法是将动作识别视为单帧图像分类任务,采集多种动作行为下的图片,人工标注监督信号进行训练,使用分类器判断最后的动作分类。
DMS之驾驶员身份识别:
驾驶员身份识别主要是根据驾驶员面部图像或识别信息来对驾驶员身份确认。技术流程包括:
人脸图像采集及检测
人脸图像预处理
人脸图像特征提取
人脸图像匹配与识别
DMS系统流程: