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