摘要

驾驶员注意力不集中或者分心是道路交通事故的主要原因。 为了减少道路交通事故,设计开发驾驶员疲劳检测系统至关重要。 本研究利用人脸关键点检测方法提出了驾驶员睡意检测系统,目的是使驾驶更安全。

一.人类检测方法

人脸关键点检测是人脸识别任务中重要的基础环节,人脸关键点精确检测对众多科研和应用课题具有关键作用,如:表情识别、疲劳监测等。因此,如何获取高精度人脸关键点,一直以来都是计算机视觉、模式识别、图像处理等领域的热点研究问题。然而人脸关键点检测方法根据是否需要参数化模型可分为以下两类,基于参数化形状模型的方法和基于非参数形状模型的方法。目前,最为常用的是基于非参数形状模型的深度学习方法。

2013 年,Face++在 DCNN 模型上进行改进,提出从粗到精的人脸关键点检测算法,实现了 68 个人脸关键点的高精度定位。该算法将人脸关键点分为内部关键点和轮廓关键点,内部关键点包含眉毛、眼睛、鼻子、嘴巴共计 51 个关键点,轮廓关键点包含 17 个关键点。针对内部关键点和外部关键点,该算法并行的采用两个级联的 CNN 进行关键点检测,网络结构如图所示:

其中,Level-1 主要作用是获得面部器官的边界框;Level-2 的输出是 51 个关键点预测位置,这里起到一个粗定位作用,目的是为了给 Level-3 进行初始化;Level-3 会依据不同器官进行从粗到精的定位;Level-4 的输入是将 Level-3 的输出进行一定的旋转,最终将 51 个关键点的位置进行输出。针对外部 17 个关键点,仅采用两个层级的级联网络进行检测。Level-1 与内部关键点检测的作用一样,主要是获得轮廓的 bounding box;Level-2 直接预测 17 个关键点,没有从粗到精定位的过程,因为轮廓关键点的区域较大,若加上 Level-3 和 Level-4,会比较耗时间。最终面部 68 个关键点由两个级联 CNN 的输出进行叠加得到。

相关代码文章可参考:

Extensive Facial Landmark Localization with Coarse-to-fine Convolutional Network Cascade

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

在阅读许多其它论文后发现,现在应用成熟最常用的是68个关键点检测。如下图所示:

关键点检测主要流程:
  1. 调用dlib库来进行人脸识别,调用预测器“shape_predictor_68_face_landmarks.dat”进行68点标定。
  2. 存入68个点坐标。
  3. 利用 cv2.circle 来画68个点。
  4. 利用 cv2.putText() 函数来画数字1-68。

本次实现的应用运用开源库Dlib训练好的模型“shape_predictor_68_face_landmarks.dat”进行68点标定,利用OpenCv进行图像化处理,在人脸上画出68个点,并标明序号。当检测到驾驶员的眼睛闭上4-5 秒时候,就会产生警报。

shape_predictor_68_face_landmarks.dat文件为训练好的保持文件,可直接调用。

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

点击驾驶员困倦检测时,系统会自动打开电脑摄像头,你便可以模拟驾驶室的角色进行测试,当驾驶员在驾驶过程中闭眼,且超过5s系统会触发警报进行提醒。测试界面如下所示:

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

全部代码下载链接:

https://download.csdn.net/download/weixin_40651515/87348333

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

  1. 智慧教室—基于人脸表情识别的考试防作弊系统

    需要源码的朋友请私信我!!!! 智慧教室-基于人脸表情识别的考试防作弊系统 课堂专注度分析 作弊检测 关键点计算方法 逻辑回归关键点 下载权重 使用 部分源码 课堂专注度及考试作弊系统.课堂动态点名, ...

  2. 基于人脸关键点修复人脸,腾讯等提出优于SOTA的LaFIn生成网络

    作者 | Yang Yang.Xiaojie Guo.Jiayi Ma.Lin Ma.Haibin Ling 译者 | 刘畅 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) ...

  3. 基于人脸关键点的疲劳检测

    闲暇之余做了一个简单的疲劳检测系统. 方案:首先获取重要的关键点位,需要眼部的和嘴部的. 对于眼部的如下: 分别采用眼部6个点位计算纵横比,超过连续三帧小于0.2判断为疲劳.分别采用眼部6个点位计算纵 ...

  4. 【深度学习】基于人脸关键点的视频心率检测

    一起做大创的同学在 Github 找到的源码,我调试了一下,就在这里分享吧(那tuo绿绿的是检测框,,,一打马赛克就变得emmmm一言难尽

  5. Python OpenCV --Drowsiness Detector 睡意检测--项目记录

    睡意检测是一项安全技术,可以防止驾驶员在驾驶中入睡而导致的事故. 目的是建立一个睡意检测系统,该系统将检测人的眼睛闭合几秒钟. 当检测到困倦时,该系统将警告驾驶员. 睡意检测版本1.0 睡眠检测关键步 ...

  6. 基于人脸识别的考勤系统开发

    在科学技术和经济快速发展的今天,企业规模不断扩大,考勤管理对企业的发展也变得相当重要.要更好地管理企业,一个简单.快速和有效的考勤系统必不可少的.基于实时图像处理的人脸识别是物联网技术应用的重要领域之 ...

  7. 基于人脸识别技术的智能安防系统优化升级

    作者:禅与计算机程序设计艺术 近年来随着无人机.机器人等新型产品的出现,越来越多的人群开始把目光投向安防领域.虽然在短时间内智能化建筑.物联网.无人机等技术出现并迅速崛起,但由于技术发展速度不断加快, ...

  8. 基于人脸识别的老年人照顾服务系统设计与实现

    作者:禅与计算机程序设计艺术 基于人脸识别的老年人照顾服务系统设计与实现 引言 随着社会的发展,人口老龄化现象日益严重,对老年人群体的照顾和服务需求也越来越大.为了提高老年人的生活质量,降低照顾成本, ...

  9. MTCNN——基于级联模型的人脸关键点检测网络

    目录 1 致谢 2 前言 3 MTCNN--基于级联模型的人脸关键点检测网络 3.1 P-Net 3.1.1 训练数据是12x12,那么检测时也是要把所有的图像都放缩到12x12吗? 3.1.2 图像 ...

最新文章

  1. 边缘计算 — 与车联网
  2. delphi项目文件说明
  3. Airflow 中文文档:概念
  4. sysbench在美团点评中的应用
  5. 插入公式_一个小工具,彻底帮你搞定在Markdown中插入公式的问题
  6. 关于VS.NET RSACryptoServiceProvider的疑惑
  7. 利用 jQuery 克隆 Object
  8. 数组和JSON之间的格式转换
  9. 三中好用的数组去重方式
  10. Navicat过期问题的解决
  11. 《Java程序员职场全功略:从小工到专家》连载五:当今主流公司的企业文化
  12. 华成英-模拟电子技术P11 场效应管及其放大电路 笔记
  13. 机器人 迷宫算法_机器人,迷宫和附属建筑
  14. 漏洞复现篇——ewebeditor编辑器解析漏洞
  15. CSS 笔记(十):布局 —— 伸缩
  16. 3Dmax Script 自动减面
  17. Android 获取SIM卡信号
  18. 中序和先序、中序和后序
  19. python给数组乘以某个数
  20. react-native入门之使用图片

热门文章

  1. 【渝粤题库】陕西师范大学151109财务报告分析 作业(高起专)
  2. 漫谈核心能力(4) -- 有条理,更清晰
  3. 担心 GitHub?那就试试极狐GitLab 吧
  4. FreeRtos 获取任务运行时状态以及实现方式分析
  5. 新网银行java面试题_新网银行面试
  6. 2015年计算机网考统考,2015年3次统考计划
  7. 怎么批量对多个视频文件进行消音处理
  8. 项目前期调研及其文档编写
  9. 时间与日期插件 -- laydate 使用方法(摘自官网)
  10. javaScript中URL编码转换