关于活体检测的一些理论方法

最近研究活体检测,主要是针对防止身份证照片攻击,通过提示用户完成某些动作进行识别;

想要检测用户的动作,最基础的一个前提,必须将人脸的特征点提取出来,才能做之后的判断;opencv自带的方法貌似只能画出矩形的人脸框,我们必须要准确检测出眼睛鼻子和人脸的轮廓,从网上找了两个人脸特征提取库:

  1.IntrafaceDll

  2.libfacedetect

两个库的共同点是,都能提取人脸68个关键点,这对我们的检测提供了很有利的条件;

也各有利弊,IntrafaceDll提取相对准确,尤其是针对眨眼,张嘴等动作时,相当灵敏,但是当前网上我只找到了lib库,没有找到源码,其只支持opencv246版本(和我的项目冲突);libfacedetect对于眨眼并不灵敏,张嘴效果还行,主要是引入方便,兼容性好;

好,提取68个点之后,效果大概是这样:

好,现在我说一下活体检测的思路把,

第一个张嘴,首先要找出嘴巴上下左右嘴唇的位置,通过上下的绝对距离/左右的绝对距离,得到一个比例,设定一个阙值,大于此值时,为张嘴,小于则为闭嘴;

眨眼,和张嘴的逻辑一样,不过要分左眼和右眼;

摇头,检测左右脸的晃动,需要三个点,鼻子,脸最左位置,脸最右位置,鼻子到左绝对距离为left,到右绝对距离为right, 总距离记为w=left+right;  当left<w/3 则判定为向左晃动,right>w/3则判断为向右晃动,其他情况 为正脸;

以上是我通过实验总结出来的几种方法,效果比较理想,代码这里就不贴了,毕竟原理最重要

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龍林1102

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值