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

文章目录

  • 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可见光静默活体识别,很容易受到纸张形变,光线等影响,通过增加相应数据是一个解决办法,但可见光静默活体识别受到条件限制,精度的很难再上升。如果需要进一步提升活体人脸识别的精度,可以结合动作配合来完成判定或者结合近红外图像共同判定。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

三、语法分析,《编译原理》(本科教学版),第2版

文章目录 一、Antlr-v4 设计语法分析器1.1 Cymbol.g41.1 antlr-v4 代码实现1.2 二义性1.2.1 悬空的else1.2.2 运算符结合性带来的二义性1.2.3 运算符的优先级带来的二义性 1.3 函数调用图1.4 walker 的 时机1.5 ParseTreeWalker 与 Listener 二、上下文无关法2.1 定义2.2 语义2…

Nginx超简洁知识:负载均衡-反向代理,动静分离,配置文件

首先介绍一下为什么需要nginx? 在低并发场景下(也就是用户量特别少的情况下),我们只需要部署一台服务器就能满足用户数量少的需求。 但是如果用户量逐渐增多,只有一台服务器是不够的。于是我们需要部署多台服务器。 …

【算法】归并排序概念及例题运用

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

linux链接、目标文件全解析

内容目录 内容目录 链接 1. 静态链接2. 目标文件3. 可重定位目标文件4. 符号和符号表5. 符号解析 5.1 链接器如何解析多重定义的符号5.2 与静态库链接5.3 链接器如何使用静态库来解析引用 6. 重定位 6.1 重定位条目 - 6.2 重定位符号引用 6.2.1 重定位PC相对引用6.2.2 重定位…

计算机系统的层次

目录 计算机系统的层次ISA(指令集体系结构) 计算机系统的层次 计算机硬件是基础指令集体系结构:将硬件的功能封装从指令供软件使用操作系统:提供人机交互界面、提供服务功能的内核例程语言处理系统: 语言处理程序&…

群晖通过 Docker 安装 GitLab

Docker 配置容器步骤都是大同小异的,可以参考: 群晖通过 Docker 安装 Gitea-CSDN博客 1. 在 Docker 文件夹中创建 GitLab,并创建子文件夹 2. 设置权限 3. 打开 Docker 应用,并在注册表搜索 gitlab-ce 4. 选择 gitlab-ce 映像运行…

什么是不同类型的微服务测试?

大家好,我是锋哥。今天分享关于【什么是不同类型的微服务测试?】面试题?希望对大家有帮助; 什么是不同类型的微服务测试? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 微服务架构中的测试可以分为多种类…

多尺度建模:从理论到实践的深入探讨

#1024程序员节 | 征文# 引言 在现代科学与工程中,很多现象和过程在不同的空间和时间尺度上展现出复杂性。因此,能够有效地进行多尺度建模,已经成为了许多领域(如物理、生物、工程、环境科学等)研究的一个重要方向。本…

vue后台管理系统从0到1(5)

文章目录 vue后台管理系统从0到1(5)完善侧边栏修改bug渲染header导航栏 vue后台管理系统从0到1(5) 接上一期,我们需要完善我们的侧边狼 完善侧边栏 我们在 element 组件中可以看见,这一个侧边栏是符合我们…

【操作系统】06.进程控制

一、进程创建 1.1 认识fork函数 在linux中fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 进程调用fork,当控制转移到内核中的fork代码后,内核将 分配新的内存块和内核数据结构…

Aspose.PDF功能演示:使用 JavaScript 从 PDF 中提取文本

在数据提取、业务文档自动化和文本挖掘方面,使用 JavaScript 从PDF中提取文本非常有用。它允许开发人员自动执行从 PDF 收集信息的过程,从而显著提高处理大量文档的生产力和效率。在这篇博文中,我们将学习如何使用 JavaScript 从 PDF 中提取文…

人工智能的未来应用与发展前景

随着人工智能(AI)技术的快速进步,我们正亲历着它在各行各业中带来的巨大变革。无论是医疗、企业管理,还是日常生活,AI 技术都在改变着我们的工作和生活方式。那么,人工智能的应用前景究竟如何?它…

【消息队列】RabbitMQ实现消费者组机制

目录 1. RabbitMQ 的 发布订阅模式 2. GRPC 服务间的实体同步 2.1 生产者服务 2.2 消费者服务 3. 可靠性 3.1 生产者丢失消息 3.2 消费者丢失消息 3.3 RabbitMQ 中间件丢失消息 1. RabbitMQ 的 发布订阅模式 https://www.rabbitmq.com/tutorials/tutorial-three-go P 生…

winUI3 c++ 入门 2、 样式

目录 一、winUI3 基本概念及样式 1、边距 2、如何使用样式 1)、布局控件内定义样式 2)、APP.xmal定义全局样式 3)、单独的样式文件 3.1)、新增字典资源 xmal 3.2)、在里面设置样式 3.3)、引用样式 3、更多样式修改 1)、修改默认属性 2)、修改所有的默认颜色…

垃圾收集器与内存分配机制(一)

目录 一、为什么我们要去了解垃圾收集和内存分配 二、对象已死? 1. 引用计数算法 2. 可达性分析算法 3. 再谈引用 4. 生存还是死亡 5. 回收方法区 三、垃圾收集算法 1. 简介 2. 分代收集理论 2.1. 弱分代/强分代假说 2.2. 前面两代假说的缺陷 3. 标记-清…

智能去毛刺:2D视觉引导机器人如何重塑制造业未来

机器人技术已经深入到各个工业领域中,为制造业带来了前所未有的变革。其中,2D视觉引导机器人技术以其精准、高效的特点,在去毛刺工艺中发挥着越来越重要的作用。本文将为您介绍2D视觉引导机器人技术的基本原理及其在去毛刺工艺中的应用&#…

blender 理解 积木组合 动画制作 学习笔记

一、学习blender视频教程链接 案例2:积木组合_动画制作_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Bt4y1E7qn?vd_sourced0ea58f1127eed138a4ba5421c577eb1&p10&spm_id_from333.788.videopod.episodes 二、说明 之前已经学习了如何制作积木组…

20 Shell Script输入与输出

标出输入、标准输出、错误输出 一、程序的基本三个IO流 一)文件描述符 ​ 任何程序在Linux系统中都有3个基本的文件描述符 ​ 比如: ​ cd/proc/$$/fd ​ 进入当前shell程序对于内核在文件系统的映射目录中: [rootlocalhost ~]# cd /proc/$$/fd [rootlocalhos…

Ubuntu22.04环境搭建MQTT服务器

官网: https://mosquitto.org 1.引入库 sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa2.升级安装工具 sudo apt-get update 3.安装 sudo apt-get install mosquitto 4.安装客户端 sudo apt-get install mosquitto-clients5.添加修改配置文件 进…

微信小程序上传图片添加水印

微信小程序使用wx.chooseMedia拍摄或从手机相册中选择图片并添加水印&#xff0c; 代码如下&#xff1a; // WXML代码&#xff1a;<canvas canvas-id"watermarkCanvas" style"width: {{canvasWidth}}px; height: {{canvasHeight}}px;"></canvas&…