DMS(Driver Monitor System)是驾驶员监控系统的简称,也称为驾驶员疲劳检测系统或行为分析系统。最初,DMS系统的主要应用是监测驾驶员的状态,以防止驾驶员疲劳、分神等危险行为发生。随着机器视觉技术的进步,现在DMS系统的功能已经变得非常丰富,包括支持疲劳驾驶检测、分心驾驶检测、司机视线检测、手势识别(用于与车载系统交互)、人脸识别(用于解锁、个性化设置)、以及表情识别等功能。简而言之,随着边缘计算算力的提升,基于机器视觉的功能变得越来越多样化。
疲劳检测 疲劳驾驶对公共汽车、泥头车、卡车等大型车辆的危害不言而喻。通常我们会主观地判断一个人是否疲劳,例如观察其是否打哈欠或闭眼。在机器视觉领域,检测驾驶员闭眼和打哈欠动作的方法是至关重要的,因为打哈欠动作通常表现为张嘴动作。那么,如何识别闭眼和张嘴动作呢?目前常用的方法主要有两种:一种是人脸关键点检测(landmark),另一种是图像分类。对于眼睛,可以通过计算眼睑、眼角的关键点坐标来确定眼睛的开合程度,嘴巴也是类似。人脸关键点检测方法的优点在于思路相对简单,只需根据关键点坐标进行计算,但其缺点也显而易见,即算法精度取决于关键点定位的准确性。如果关键点定位准确,那么最终计算结果也会更准确。除了人脸关键点检测,还可以采用图像分类方法。这种方法对关键点定位的精度要求不那么高,通常会收集正负样本,训练一个鲁棒性较强的分类器来判断状态。分类器直接输出最终结果,这种方法相对更灵活,能够更好地应对不同情况。
分心驾驶检测 在驾驶过程中,所有让注意力从驾驶任务上分散的行为都被称为分心行为。这些行为包括低头找东西、看窗外风景、接打电话、喝水等。因此,在分心驾驶检测算法中,需要检测出所有这些行为。针对这些异常情况,可以将其分为两种类型。例如,低头或者看窗外都涉及到人头的位置,如果能够获取到人头的姿态角度,这个问题就可以得到解决;而喝水、打电话等动作属于动作识别范畴,设计一个动作识别算法也可以解决这类问题。 人头姿态角算法 获取人头姿态角度通常有两种方法。第一种方法是利用之前提到的人脸关键点检测(landmark),通过已知的人脸关键点坐标,可以使用PnP算法直接拟合出人头的三维角度;第二种方法是利用预先标记好yaw、pitch、roll三个角度的人脸图像,训练一个小型神经网络,使网络的输出层直接回归这三个浮点数,这种方法简单直接,精度较高,训练数据集可以直接使用开源人脸数据集,无需额外标注。 动作识别算法 在驾驶监控系统(DMS)应用中,通常需要识别打电话、喝水、抽烟等动作,而实现这一目标一般有两种较为简单的方法。第一种方法是将这些动作识别任务视为目标检测问题,例如,识别打电话动作时,将手机视为待检测目标,识别喝水动作时,则将水杯视为待检测目标。这种方法思路简单明了,但存在一个缺点,即在某些情况下,比如DMS摄像头安装在汽车A柱上,司机右手打电话时,摄像头无法看到手机,因此在这种情况下检测率较低。另一种方法是将动作识别视为单帧图像分类任务,收集多种动作行为的图像样本,通过人工标注的监督信号进行训练,利用分类器对最终的动作分类进行判断。 视线检测 在行驶过程中,司机的注视方向也是一个值得关注的问题。司机的注视方向不仅反映了其驾驶习惯,还可以用于确定视野范围,辅助责任认定。 随着机器视觉技术的迅速发展,驾驶监控系统(DMS)能够实现的功能也日益丰富,已经成为车载电脑中不可或缺的功能之一。
|