opencv+dlib+于仕琪算法实现人脸检测和简单疲劳检测

刚开始接触人脸识别,特征点提取方面,主要根据人脸的特征判定人(司机)是否疲劳,先上一张效果图:

 

 

具体实现分为以下几个步骤:

 

1.算法环境搭建:

 

这个部分网上教程很多,可自行百度。主要涉及到opencv安装,配置,dlib配置以及于仕琪库的应用。

 

2.人脸识别:

 

opencv自带人脸识别直接启用,识别精度低,达不到效果,采用的是于仕琪的人脸识别,识别快而且比较精准,这样保证人脸特征点找的比较准确,在后续的疲劳判定上就比较可靠了。

 

3.人脸特征点检测:

 

调用dlib开源库,把第二部的人脸框传递给dlib就可以得出68个特征点。

 

4.疲劳检测算法:

 

根据得出的眼部特征点,根据形状可以判断人脸是否闭合,如果超过多长时间则可以判定疲劳状态。

 

dlib实现的ert算法来源文章One Millisecond Face Alignment with an Ensemble of Regression Trees,该算法根据人脸框中随机点对的像素差和一个随机阈值进行比较,判断是否人脸特征。算法参数设置为10层级联,每层500棵树,树深度为5,其他参数参见论文。算法具体思路如下:

 

1.训练样本

 

(1)归一化样本。所有样本的形状shape进行归一化(保证左右样本基准一致),然后计算所有样本的平均值(mean shape),把除去样本的其他任何一个样本的shape作为当前的形状(curr

评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值