专注工科类创新实验教学、科研开发20余年!方案覆盖嵌入式、IOT、AI、机器人、新能源等领域。
 
  当前位置:首页 >> 新闻动态 >> 行业新闻
 
公司新闻
 
培训与竞赛
行业新闻
 
产品资讯

点击排行(TOP 10)
  创新设计方案:手机便携式
  首届NAO机器人在线程序设计
  Altera官方视频教程
  中国EDA助力移动互联发展
  嵌入式微处理器选型的考虑
  在京高校专利申请去年首破
  无线充电时代即将普及
  英特尔挑战ARM移动市场
  日本三大电子巨头走下神坛
  德州仪器不再重点投资移动
  华为“网络天线”,颠覆传
 
基于人脸landmark检测实现眼睛疲劳/睡意检测
     革新科技  来源:英特尔物联网 日期:2022/3/17 13:32:03 阅读:693 次
- 返回 -
 

人脸landmark介绍

人脸landmark在人脸对齐、人脸重建、身份鉴别、人脸编辑与人脸AR等方面都有重要作用。人脸landmark是在检测人脸白色矩形框的基础上,通过OpenVINO™自带的人脸landmark模型实现了对人脸区域关键部位35个点位的标记,它就是典型的人脸landmark提取。在深度学习没有那么流行之前,传统的人脸landmark提取有两个让人吐槽的痛点:
1. 人脸的landmark中128个点位与68个点位提取是高耗时操作;
2. 人脸landmark提取算法的抗干扰能力与普适性很差。

自从深度学习方式在计算机视觉领域大显身手之后,人脸landmark算法通过卷积神经网络实现了稳定性与精准度双提升,现在已经是很多应用标配中间步骤。根据提取的人脸landmark点数的不同,最常见分为:
5点提取最简单人脸对齐
35点提取常见人脸对齐、人脸比对、人脸AR
68点提取场景适用人脸对齐、人脸比对、人脸AR等
128点提取场景适用人脸对齐、人脸比对、人脸AR等
192及更多点提取,场景适用人脸对齐、人脸比对、人脸AR、人脸3D重建

更多点位的人脸landmark提取这里就不再列出了。
300W是人脸landmark提取最常用的一个基准数据集,支持68个点位与51个点位的人脸landmark数据标注与训练。


人脸landmark实现疲劳检测基本原理

我们首先使用人脸检测模型,检测得到人脸ROI区域,然后使用一个人脸landmark预测模型得到人脸区域的68个点位,其中对我们最有用的是分别来自图-2中的左右眼睛周围的38、39、41、42与44、45、47、48八个点位。人的疲劳最明显的特征之一就是会闭上眼睛,要打瞌睡,我们通过上述八个点来求解,它们的横纵比就可以度量眼睛的闭合程度,辅助一个阈值就可以很好过滤,达到根据眼睛的闭合程度实现睡意/疲劳检测的目的。

网络模型

OpenVINO™ 中有两个自带的landmark预测模型,分别支持5点与35点定位,不符合我们期望的68个点定位的landmark模型预测。所以这里使用Github上一个开源的基于Pytorch版本实现的68个点位预测模型,它支持OpenVINO™ 加速,工程地址如下:
https://github.com/github-luffy/PFLD_68points_Pytorch
我git clone了上述的工程地址,然后通过下面的脚本把其中mobilenetv2的PFLD的预训练模型转换为OpenVINO™可以正确读取与解析的ONNX格式。

代码实现与运行演示

在代码实现与运行演示环节,参考之前的对象检测部分,我们可以实现人脸检测,然后从人脸检测输出中得到人脸的ROI区域,这部分的代码实现在前面的文章中已经详细分享过,这里就不再赘述,我们把代码实现主要放在如何提取landmark的68个点位预测与眼睛疲劳检测部分,这部分的代码实现主要分为以下几个部分:

Step1:加载人脸landmark网络,设置输入与输出
代码(省略)

Step2:提取人脸ROI区域,并实现输入预处理
代码(省略)

Step3:解析预测68个定位点并计算眼睛四个点的横纵比
代码(省略)

原文链接:https://mp.weixin.qq.com/s/zv57IGZawDJXO0Zgv-5EbQ


 
 
   
销售电话:010-82608898     技术支持:82608898-800    Email:sales@gexin.com.cn
Copyright © 2012-2024 版权所有:北京革新创展科技有限公司   京ICP备20004067号-1