Advertisement

基于人脸关键点检测的驾驶员睡意检测系统

阅读量:

摘要

驾驶员注意力不集中或分心是导致道路交通事故的主要诱因。为了实现这一目标而设定了减少道路事故的明确方向,请研发出一种先进的疲劳检测技术。本研究采用基于人脸关键点的创新技术来开发新型的嗜睡检测系统的目的在于显著提升驾驶操作的安全性。

一.人类检测方法

在人脸识别任务中,在线获取准确的人脸关键点被视为一项至关重要的基础工作。这一技术对多个科研课题及实际应用场景具有重要意义。在此背景下,在计算机视觉、模式识别以及图像处理等多个领域都受到了广泛关注,并成为当前研究的一个重点方向。然而就其分类而言,在现有技术中主要依据是否采用参数化模型的形式可将这类技术划分为两大类:一类是基于参数化的形状模型的方法;另一类则是基于非参数化的形状模型的方法。就其应用效果而言,在当前的研究中相对较为成熟的技术当属基于非参数化的深度学习方法。

2013年时, Face++团队对DCNN模型进行了针对性改进,开发出一种从粗到精的人脸特征定位算法,实现了精确定位68个脸部关键点的能力。该算法将脸部的关键点分为两类:内部关键位置包括眉毛、眼睛、鼻子和嘴唇等共51个位置,外围部分共有17个边缘特征。针对这两类不同的特征分布,该系统采用了两个级联的卷积神经网络分别进行多级别检测,其网络架构如图所示:

其中,在面部关键点检测系统中,Level-1 的主要功能是提取面部器官的边界框;而 Level-2 的输出定位 51 个关键点的位置,并承担粗定位的作用;其后 Level-3 根据不同器官类型实现从粗定位到精确定位的过程;此外 Level-4 接收了 Level-3 输出结果并进行了适当旋转处理;最终将所有关键点的位置信息进行了整合输出。对于外部区域的关键点(共 17 个),我们仅通过两层级联网络完成其检测任务;同时需要注意的是;与内部关键点检测功能相同的是 Level-1 主要用于获取轮廓区域的边界框信息;这一设计既保证了系统整体性能的同时又降低了计算复杂度。

相关代码文章可参考:

Advanced Facial Feature Detection Employing Hierarchical Refinement in a Cascaded Convolutional Network Framework

二,应用:驾驶员疲劳检测

通过阅读大量相关文献后发现目前广泛采用的是68个关键点检测法,并如图所示

关键点检测主要流程:

  1. 利用dlib库进行人脸识别,并调用预训练的‘shape_predictor_68_face_landmarks.dat’文件执行68点定位操作。
  2. 将捕获到的各关键点坐标逐一存储以便后续处理使用。
  3. 通过OpenCV函数cv2.circle绘制出所有关键点位置并完成标记工作。
  4. 借助OpenCV的cv2.putText函数标注出各个关键点对应的编号信息。

本次实现中采用了开源库Dlib预训练的模型文件' shape_predictor_68_face_landmarks.dat '来进行68-point face landmark检测,并通过OpenCV对图像数据进行了处理。系统会将检测到的关键点标记在面部轮廓上并附加编号以供后续分析。当系统持续检测到驾驶员眼睛处于闭合状态达4至5秒时将触发警报机制以提醒相关人员注意安全状况。

shape_predictor_68_face_landmarks.dat 数据 file 为训练完成的支持 file ,无需额外配置即可调用

本次驾驶员疲劳检测的主要实现界面如下:

在操作驾驶员困倦检测功能时,请注意系统会自动启动摄像头设备,在操作驾驶员困ispersure检测功能时,请注意系统会自动启动摄像头设备,在操作驾驶员困 Dessure检测功能时,请注意系统会自动启动摄像头设备

环境配置:python3.7、配置以下包 tensorflow>=1.12* keras==2.2.4 等。

全部代码下载链接:

<>

全部评论 (0)

还没有任何评论哟~