动态活体检测 | 算法分析
动态活体检测需要用户高度配合,仅需单目RGB摄像头配合特定动作即可完成,安全性比纯图片识别要高一些,主要包含4个动作:
(1)眨眼动作
通过人脸关键点检测确定上眼皮和下眼皮的位置坐标
由于没有中心点,我采用38-42的距离,39-41的距离,这两个值中的最大值作为左眼正常睁眼幅度L0,右眼同理R0。
将视频的第一帧检测到的距离作为标尺,后面判断闭眼的时候就和这个值比对。
将整个视频均匀抽为15-25帧,对于这个序列的每一帧,把38-42的距离和39-41的距离做平均,作为左眼的当前帧检测距离Lc,右眼同理Rc,通过多次实验发现,只要当前帧的Lc小于L0*0.5即可出现很明显的眨眼动作,右眼同理。一个3秒的视频能够出现两次明显的左右眼同时眨眼动作即可认为判定成功。
(2)张嘴检测
通过人脸关键点确定上下嘴唇内测的位置坐标
上嘴唇是62、63、64,下嘴唇是68、67、66。同样以第一帧作为距离标尺,取62-68,63-66,64-66三段距离的最小值M0。
将整个视频均匀抽为15-25帧,对于这个序列的每一帧,对于每一帧图像,把62-68,63-66,64-66三段距离取平均值作为当前帧的张嘴幅度Mc,通过多次实验发现,只要Mc大于M0*3就能看到很明显的张嘴动作,3秒的视频出现两次就可以判定成功。
(3)点头检测
通过一个头部姿态估计模块确定roll,yaw,pitch三个值
点头动作会让pitch的值减小,大概是从0附近到-20多的样子,同样将视频第一帧作为初始状态的pitch值,把视频抽为15-25帧,里面出现当前pitch的绝对值大于初始pitch*2的绝对值就可以看到明显点头动作,所有帧里面出现两次就可以判定成功。
(4)转头检测
通过一个头部姿态估计模块确定roll,yaw,pitch三个值
转头检测会让Yaw的值产生明显的变化
同样把第一帧的Yaw状态作为初始状态,在视频序列里面这个值的变化很广泛,左转头大约在0~+50,右转头大约在0~-50,所以当前帧的yaw如果大于初始值,且当前的yaw大于20小于50就能判断出现一次左转头,相反的如果当前yaw小于初始值,且当前yaw大于-50小于-20就能判断出现一次右转头,3面的时间基本上只够一次左转一次右转,都出现了就能判定成功。
(5)总结
这套算法做下来我觉得其实难在如何优化速度:
一个视频究竟要抽多少帧?多了速度慢,少了会误判。
如何确定每个动作的阈值呢?我觉得只能通过不断试验找出来一个合理值。
关键点检测速度如何?能否考虑多线程?寻找更快的检测器能明显改善。
头部姿态估计的准确性怎么样?不靠谱的头部姿态估计简直离谱。
如何保证视频中间不换人?那就要对每一个抽到的帧做人脸比对,还是只随便抽两帧做比对?亦或是更好的算法去首尾帧+中间帧做人脸比对?
以及要不要加入静态的活体检测,确定这个视频不是预先拍摄好的?检测所有帧还是只检测几帧?
这里面有相当多的优化空间,我找了找很少有单纯讨论动态活体检测算法的资料,可能是大家都觉得很简单?也可能是这个检测过程越少的人知道越好?毕竟知道了如何检测,那么绕过简直轻而易举。这篇帖子只是单纯讨论思考,如果你有更好的方案欢迎一起讨论。
动态活体检测 | 算法分析相关推荐
- APISpace 动态活体检测API
APSpace 的 动态活体检测API,通过完成动态指令(眨眼.张嘴.摇头.点头等组合动作),使用人脸关键点定位和人脸追踪等技术,验证用户是否为真实活体本人操作. APISpace 上面还有很多各种各 ...
- 活体检测方法概述与总结
活体检测 PAD(presentation attack detection) 动作配合式活体检测:给出指定动作要求,用户需配合完成,通过实时检测用户眼睛,嘴巴,头部姿态的状态,来判断是否是活体. H ...
- 双目摄像头——活体检测
随着人脸识别技术应用越来越广泛,安全性也越来越成为焦点.处于对隐私信息泄露的担忧,公民还是要求人脸识别行业尽快规范标准.提升技术水平.使的生物识别技术不仅能够独立应用还能与其他身份证识别等OCR识别技 ...
- 活体检测:keras
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 1. 什么是活体检测? --> 判断捕捉到的人脸是真实人 ...
- 人脸识别有什么漏洞,活体检测又是怎么防伪?
随着人脸识别技术日益成熟,商业化应用越来越广泛,人脸登录.人脸支付.人脸乘梯.人脸闸机等等,在安防.金融.教育.医疗等领域广泛应用,人脸识别技术的智能快捷在国内得到迅速发展,但人脸识别极其容易被照片. ...
- 计算机视觉子方向,计算机视觉方向简介 | 人脸识别中的活体检测算法综述
原标题:计算机视觉方向简介 | 人脸识别中的活体检测算法综述 本文转载自"SIGAI人工智能学习与实践平台"(ID:SIGAICN) 导言 1. 什么是活体检测? 判断捕捉到的人脸 ...
- 照片解锁手机不能忍?教你用OpenCV做活体检测 | 有代码
圆栗子 编译整理 量子位 出品 | 公众号 QbitAI △ 来自虾米妈咪 小朋友用妈妈的一寸照片通过了人脸识别,打击了小度音箱的家长监督机制. 活体检测没做好. 公交车身广告上的董明珠头像,被宁波交 ...
- 旷视科技——身份验证、活体检测、人脸比对
作者 | 彭建宏(旷视科技产品总监彭建宏) 人脸识别技术越来越多地应用在了各种身份验证场景,在这种看起来发生在电光火石之间的应用背后,又有哪些不易察觉的技术在做精准判别?算法又是通过何种方式来抵御各种 ...
- 论文翻译:搜索人脸活体检测的中心差异卷积网络及实现代码
搜索人脸活体检测的中心差异卷积网络 摘要 1. 绪论 2. 相关工作 人脸活体检测 卷积运算符 神经架构搜索 3. 方法论 3.1 中心差分卷积 基本卷积 基本卷积结合中心差分操作 中心差分卷积的实现 ...
最新文章
- numpy找到数组中符合条件的数
- LeetCode之Move Zeroes
- mysql去重取最大值,逻辑类似oracle的over(partition by)函数
- 计算机组成原理——总线系统总结
- python计算运动会某个参赛选手的得分。数据保存在文件中_成绩计算电脑程序的使用说明...
- 产品经理是怎么产生的?
- linux分辨率 保存,linux分辨率设置方法与问题-linux分辨率的设置方法分享-linux修改分辨率的经验分享_169IT.COM...
- WPF多线程更新UI的一个解决途径
- sql server 本地复制订阅 实现数据库服务器 读写分离
- 引起1月12日WIN10 Flash停用原因
- 网维服务器无盘系统,网咖无盘系统网络和系统原理科普
- 双绞线为什么要绞起来
- 关于五十音 片假名 平假名
- 干支纪年法简便算法_2020年天干地支对照表,干支日历表
- python 3.10不支持torch,因而无法安装和使用cnocr
- 【Python编程入门】环境搭建
- tableau应用——某汽车销售分析
- ip地址转换数字函数 iton_数字转IP地址函数
- CnOpenData中国各城市工商注册企业分年份行业企业性质企业数量统计(含新增,注销企业数量)
- 高效精力-R90睡眠法