活体人脸识别技术总结及实践

文章目录

  • 1、背景
  • 2、人脸反伪装技术
    • 2.1 活体人脸识别常见模式
    • 2.2 学术上反伪装研究
  • 3、工程实现
    • 3.1 Silent-Face
    • 3.2 Silent-Face模型转rknn
    • 3.3 Silent-Face模型的限制


1、背景

1.1 什么是活体检测?
在人脸识别之前,先判断一下屏幕前摄像头捕捉到的人脸是真实人脸还是伪造的人脸(如:照片,视频,面具等)
1.2 为什么人脸识别中需要加入活体检测?
在金融领域或安全等级需求较高的人脸识别应用场景,活体检测一般是人脸识别的前提工作,先要做真人验证,才做人脸识别,以保证非法人脸识别攻击。
1.3 人脸识别常见的攻击手段?
常见攻击手段有A4纸打印,照片,局部五官替换,手机屏幕播放照片/视频,3D面具等,示例图如下:
在这里插入图片描述
1.4 活体检测对应的计算机视觉问题?
活体检测按真假人脸可以看成是分类问题,可看成二分类(真人脸 or 假人脸);也可按不同攻击手段看成多分类(真人,纸张攻击,屏幕攻击,面具攻击)


2、人脸反伪装技术

2.1 活体人脸识别常见模式

第一种是静默的活体识别,判断是真人、照片还是视频,如果照片逼真、等身大小,可能就能攻击成功,因此适合对安全要求不是特别高的场景,比如小区门禁。

第二种是单目可见光摄像头结合动作配合式的识别,通过系统指定一串口令,待识别人完成相应动作,从而可以判断屏幕前是否是真人,这种方式需要待识别人的高度配合,一般应用在安全性较高的金融领域场景。

第三种是可见光加近红外双目摄像头的识别,人的脸是有温度的,在850至940纳米的近红外光下,人脸和照片视频的差异很大,通过人的温度皮肤性能的二维图像,机器可以作出判断。在室外场景,此种方式稳定性不高。

第四种是3D的人脸防伪,通过近红外加3D摄像头捕获到三维结构信息进行识别,一般支付场景就是如此。

2.2 学术上反伪装研究

1. Anti-spoofing 1.0 时代
从早期 handcrafted特征的传统方法说起,目标很明确,就是找到活体与非活体攻击的不同点,然后根据这些差异来设计特征,最后送给分类器去决策。
那么问题来了,活体与非活体有哪些差异?
A. 颜色纹理
B. 非刚性运动变形
C. 材料(皮肤,纸质,镜面)
D. 图像or视频质量
E. 结合动作判别或者多模态

2. Anti-spoofing 2.0 时代
用 Deep learning 来做活体检测,从15年陆陆续续就有人在研究,但由于公开数据集样本太少,一直性能也超越不了传统方法。
A. 多帧方法,CNN-LSTM
B. 单帧,直接用CNN分类
C. 直接把假人脸当成一个类嵌入到人脸检测中,即人脸检测有三个类别(背景,真人脸,假人脸)


3、工程实现

在实际工程应用中,活体人脸识别常嵌入在人脸识别系统中,作为人脸识别阶段的前置条件,当活体人脸识别通过后才进行人脸识别,保证人脸识别系统的安全性。常见流程框图如下图所示,图片来自工程:https://github.com/lishanlu136/FaceRecognition
在这里插入图片描述

3.1 Silent-Face

小视科技团队开源的基于RGB图像的活体检测模型(傅里叶频谱图辅助)。傅里叶频谱图在一定程度上能反应真假脸在频域的差异,因此小视科技采用了一种基于傅里叶频谱图辅助监督的静默活体检测方法,模型架构由分类主分支和傅里叶频谱图辅助监督分支构成。
源代码地址:https://github.com/minivision-ai/Silent-Face-Anti-Spoofing

技术路线:
基于成像介质种类的不同,小视科技团队将样本分为真脸、电子屏幕人脸以及其他伪装人脸三类,根据上述的准则整理和收集训练数据。小视科技团队采用自研的剪枝轻量级网络作为 backbone 训练模型,使用 Softmax + CrossEntropy Loss作为训练分类的监督。使用不同尺度的图片作为网络的输入训练数据,增加模型间的互补性,从而进行模型融合。考虑到用于真假脸判别的有效信息不一定完全分布在脸部区域,可能在取景画面的任何地方(如边框,摩尔纹等),小视科技团队在 backbone 中加入了 SE(Squeeze-and-Excitation)的注意力模块,动态适应分散的判别线索。同时小视科技团队也通过实验发现真假脸在频域中存在明显的差异,为此引入傅里叶频谱图作为模型训练的辅助监督,有效提升了模型精度。

多尺度训练:
在这里插入图片描述
注意力模块:
在这里插入图片描述
傅里叶辅助loss:
在这里插入图片描述
网络整体架构图:
在这里插入图片描述
关键指标:
在这里插入图片描述
在这里插入图片描述
训练方式:见该工程readme

3.2 Silent-Face模型转rknn

步骤:pth -> onnx -> rknn
在这里插入图片描述
就正常转就可以,需注意mean_values,std_values,channel设置。

3.3 Silent-Face模型的限制

通过实践发现,该模型对防御屏幕类攻击能力较强,但对纸张攻击防御能力偏弱,可增加一个纸张边缘分类模型辅助判别活体人脸。单纯靠单目RGB可见光静默活体识别,很容易受到纸张形变,光线等影响,通过增加相应数据是一个解决办法,但可见光静默活体识别受到条件限制,精度的很难再上升。如果需要进一步提升活体人脸识别的精度,可以结合动作配合来完成判定或者结合近红外图像共同判定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/454643.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度解析RLS(Recursive Least Squares)算法

目录 一、引言二、RLS算法的基本思想三、RLS算法的数学推导四、RLS算法的特点五、RLS算法的应用场景六、RLS算法的局限性七、总结 一、引言 在自适应滤波领域,LMS(Least Mean Squares)算法因其计算简单、实现方便而广受欢迎。然而&#xff0…

【leetcode|哈希表、动态规划】最长连续序列、最大子数组和

目录 最长连续序列 解法一:暴力枚举 复杂度 解法二:优化解法一省去二层循环中不必要的遍历 复杂度 最大子数组和 解法一:暴力枚举 复杂度 解法二:贪心 复杂度 解法三:动态规划 复杂度 最长连续序列 输入输…

【数据结构与算法】时间、空间复杂度详解

大家有没有遇到过,为什么有些程序跑得飞快,而有些程序却慢得让人抓狂?我们可能都是这样认为的:他写的程序效率高等等,确实如此。但这背后隐藏着两个重要的概念:时间复杂度和空间复杂度。它们就像程序的“效…

算法题总结(十九)——图论

图论 DFS框架 void dfs(参数) { if (终止条件) {存放结果;return; }for (选择:本节点所连接的其他节点) {处理节点;dfs(图,选择的节点); // 递归回溯,撤销处理结果 } }深搜三部曲 确认递归函数,参数确认终止条件处理目前搜索节…

Windows系统启动MongoDB报错无法连接服务器

文章目录 发现问题解决办法 发现问题 1)、先是发现执行 mongo 命令,启动报错: error: MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017; 2)、再检查 MongoDB 进程 tasklist | findstr mongo 发现没有进程&a…

爬虫基础--requests模块

1、requests模块的认识 requests模块的认识请跳转到 requests请求库使用_使用requests库-CSDN博客 2、爬取数据 这里我们以b站动漫追番人数为例。 首先进去b站官网 鼠标右键点击检查或者键盘的F12,进入开发者模式。(这里我使用的是谷歌浏览器为例&#…

【JVM】—深入理解G1回收器—回收过程详解

深入理解G1回收器—回收过程详解 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 文章目录 深入理解G1回收…

基于PERL语言的MS中CASTEP模块批量提交计算脚本

在现代科学研究中,高效的计算工具对于推动科研进步具有不可估量的价值。为了满足广大科研工作者在材料科学、化学、物理等领域日益增长的计算需求,我们特别推出了一款基于Perl语言的MS CASTEP模块批量提交计算脚本。 一、批量提交,高效处理 …

Vulnhub打靶-Empire-LupinOne

基本信息 靶机下载:https://download.vulnhub.com/empire/01-Empire-Lupin-One.zip 攻击机器:192.168.20.128(Windows操作系统)& 192.168.20.138(kali) 提示信息: 这个盒子被创建为中等…

RNN,LSTM,GRU的区别和联系? RNN的梯度消失问题?如何解决?

RNN,LSTM,GRU的区别和联系? RNN(Recurrent Neural Network)、LSTM(Long Short-Term Memory)和GRU(Gated Recurrent Unit)都是用于处理序列数据的神经网络模型,它们之间…

《黑神话悟空》各章节boss顺序汇总

第一章BOSS顺序: 1、牯护院:犀牛精,位于苍狼岭娟,击败后能获得定身术。 2、广智:火刀狼, 位于观音禅院,击败后获得广智变身,记得敲钟。 3、蓝皮幽魂:蓝皮大头&#xff0…

间充质干细胞疗法迎来快速发展:国内新药申请超93项,全球临床试验超1300项

间充质干细胞(Mesenchymal Stem Cells, MSCs)独一无二的特性和机制构建了非凡的治疗前景和成药空间。截止到2024年10月18日,临床试验注册库clinicaltrials.gov网站上有关“Mesenchymal Stem Cell”的项目有1303项。在国家药品监督管理局药品审…

Active Directory(活动目录)密码审核工具

什么是Active Directory密码审核 Active Directory密码审核涉及监控用户密码的状态及其身份验证尝试,以便 IT 管理员收到有关弱 Active Directory密码或任何异常身份验证行为的通知。 Active Directory密码审核可帮助管理员评估用户密码的强度并采取必要措施来加强…

Composio:AI 开发利器,集成 100+ 工具,简化智能体构建

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 微信公众号|搜一搜&…

SimpleLive 1.7.3 | TV+手机,聚合抖B虎鱼四大直播

SimpleLive是一款聚合多个直播平台的应用程序,内置虎牙、斗鱼、哔哩哔哩及抖音直播,提供无广告体验,支持弹幕显示调整、夜间模式切换等功能,无需登录即可关注不同平台主播并查看其直播状态。下载安装APK后打开应用,选择…

Web Service

目录 1、概览2、SOA架构2.1 Web Service的基础协议2.2 Web Service协议栈 3 Web Service的分类3.1 应用领域3.2 服务器类型 4 厂商支持4.1 Java EE4.2 .NET4.3 WebSphere 5 其他5.1 微服务与 Web Service5.1.1 微服务与 Web 服务之间的区别5.1.2 微服务、 Web 服务的最佳实践 5…

laravel 查询数据库

数据库准备 插入 三行 不同的数据 自行搭建 laravel 工程 参考 工程创建点击此处 laravel 配置 数据库信息 DB_CONNECTIONmysql #连接什么数据库 DB_HOST127.0.0.1 # 连接 哪个电脑的 ip (决定 电脑 本机) DB_PORT3306 # 端口 DB_DATABASEyanyu…

FloodFill 算法(DFS)

文章目录 FloodFill 算法(DFS)图像渲染岛屿数量岛屿的最大面积被围绕的区域太平洋大西洋水流问题扫雷游戏衣橱整理 FloodFill 算法(DFS) 漫水填充(Flood Fi)算法是一种图像处理算法,在计算机图形学和计算机视觉中被广泛…

超详细的 Stable Diffusion Webui入门教程(二)基础操作

前言 工欲善其事,必先利其器!今天我们聊聊 Stable Diffusion WebUI 的基础操作以及各个参数都代表了什么。 所有的AI设计工具,安装包、模型和插件,都已经整理好了,👇获取~ 一、大模型的切换 在 Stable D…

【从零开始的LeetCode-算法】3185. 构成整天的下标对数目 II

给你一个整数数组 hours&#xff0c;表示以 小时 为单位的时间&#xff0c;返回一个整数&#xff0c;表示满足 i < j 且 hours[i] hours[j] 构成 整天 的下标对 i, j 的数目。 整天 定义为时间持续时间是 24 小时的 整数倍 。 例如&#xff0c;1 天是 24 小时&#xff0c…