工业级静默活体检测开源算法技术解析记录

工业级静默活体检测开源算法技术解析(小视科技分享)

视频链接: https://www.bilibili.com/video/BV1qZ4y1T7CH

在这里插入图片描述

相关背景

在这里插入图片描述

  • 定义:无感鉴别镜头前人脸的真伪,人脸识别系统中尤为关键的安全屏障

  • 应用场景:

    • 高安全级别
      • 刷脸支付
      • 刷脸取款
    • 人脸门禁
    • 一般等级
      • 门禁闸机
      • 自助身份核验
        • 互联网
        • 专用设备
      • 解锁,登录
      • 考勤等其他刷脸设备
  • 常见攻击手段:

    • 电子屏幕攻击
    • 2D打印攻击
    • 局部无关置换
    • 3D打印攻击
    • 数据入侵
  • 工业方案:

    • 数据采集硬件

      • RGB
      • 双目
      • 结构光
      • 温感
        在这里插入图片描述
    • 算法输入

      • 视频流
      • 静态图/单帧
      • 多模态(不止一种的输入)、
    • 部署形式

      • 云端
      • 边端

任务定义

  • 可行性前提

    • 业务需要binary的判别结果(真/假)
    • 真脸与假脸在成像机制上有区别
      • 皮肤反光
      • 屏幕发光
      • 其他材质反光
    • 可供判别的各种线索
      • 摩尔纹
      • 2D平面扭曲
      • 光影异常(打印纸,屏幕反光)
      • 边缘/边框等
      • 其他人眼不可鉴别的线索
  • 分类任务的挑战

    • 类内扰动大(真脸,电子屏幕的人脸,2d与3d攻击放一起合计三类
      • 场景
      • 攻击源
      • senor等海量维度
    • 类间相似度可能极高(攻击hardcase)
    • 判别信息分散度高
      • 摩尔纹
      • 边框
      • 畸变
      • 光影
    • 边缘设备算力十分有限
      • 算法复杂度不能过大
        在这里插入图片描述
  • 任务的强约束

    • 实时抓拍照(视频流)

      • 不接受其他方式拍摄输入,不能让用户上传照片
      • 无美颜等滤镜操作
    • 不同尺度的不同model

    • 限制抓拍照的像素区间

      • 类VGA尺寸(640x480)
    • 限定人脸抓取位置

      • 加引导框
    • 加入主动特殊光源

      • 炫光活体
    • 只适配特定传感器

算法实现

  • 预处理方法

    • 人脸检测
    • 基于人脸box扩展 x2 x3

在这里插入图片描述

  • backbone网络

    • mobeileFaceNet
    • miniFasnetV1
    • miniFasnetv2

在这里插入图片描述

在这里插入图片描述

  • 注意力模块

    • se模块

在这里插入图片描述

  • 傅里叶辅助loss(7%-10%的提升)

    • 正常人的频谱图片比较自然
    • 照片的频谱图片比较规整
    • 训练的时候使用辅助loss,infer的时候直接走softmax loss,不要辅助loss
      在这里插入图片描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rDdWsDWX-1623057005715)(C:\Users\DELL-3020\AppData\Roaming\Typora\typora-user-images\image-20210607170829973.png)]

  • 多尺度融合

    • 不同尺度训练的3分类模型
    • 多模型进行融合

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-spcHUqxE-1623057005717)(C:\Users\DELL-3020\AppData\Roaming\Typora\typora-user-images\image-20210607170901101.png)].
通过模型融合,让三者数据更容易区分开来

  • 训练&测试

    • 训练集

      • 分类采样
      • 量极大(1500w),维度复杂
      • 经验上至少要达到百万级
    • 测试集及指标

      • FPR,控制FPR的大小
      • TPR,保持高的TPR,用于用户的体验
      • 速度

在这里插入图片描述

  • 实验验证测试集指标的一致性

    • 模拟真实场景进行实测
  • 开源项目组件

    • pytorch模型
    • 预训练代码
    • 训练脚本
    • 安卓demo源码

部署建议

  • 常见影响精度的因素
    • 场景环境(真脸)
    • 美颜等
    • 口罩(真脸)
    • sensor种类及isp处理
    • 压缩裁剪等(不建议对图片进行裁剪 80-90k大小)
    • 新的(逼真的)攻击手段(假脸)
    • 工程应用逻辑
  • 解决思路
    • 建立场景测试集
    • 基于测试集调整阈值
    • 合理的设计业务使用逻辑(什么时候触发活体,多次活体,什么位置(三帧都成功才算成功))
    • 基于场景数据进行定制训练(对特定数据进行再训练)

QA

  • 数据量不大的情况下能做成活体吗?

    • 至少百万级
  • 任务的强约束

    • 约束是需要的,不然end2end结果不太理想
  • 通用模型与人脸的专用模型差异是否大

    • 不太清楚
  • 人脸裁剪怎么做的

    • 基于人脸box,进行x2 x3的扩充
  • 蒸馏的效果是否好

    • 蒸馏的效果不错
  • 数据增广

    • 随机裁剪
    • 像素扰动没有做(活体对像素比较依赖)
  • 尝试过不同尺度的特征融合吗?

    • 多个模型的融合
  • 构建测试集的经验

    • 测试集要大
    • 符合真实场景(维度高,光线,硬件,环境,攻击case,fail case)
  • 真实的人脸中有模糊的人脸需要丢掉吗?

    • 使用人脸质量检测进行丢弃
  • 硬件种类影响大吗?

    • 影响大,需要多个摄像头拍摄
  • 数据采集如何实施?

    • 尽可能模拟真实场景,真脸就是多环境进行
  • 模型融合如何做?

    • 基于不同的尺度,使用效果比较好的尺度模型进行融合
  • 公开的数据集是否有使用过?

    • 不认同采集方法及设备,没有使用公开的数据集
    • 比较依赖于实际场景
  • 项目中是否使用强化学习?

    • 使用过,但是效果不太理想
  • 数据一定要使用数据流的帧

    • 用户不能进行相关的操作
    • 视频流中实时抓取的数据
  • RGB图像是否需要转化为灰度图再进行处理?

    • 不建议转化为灰度图,对精度有影响

在这里插入图片描述

参考

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

uncle_ll

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

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

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

打赏作者

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

抵扣说明:

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

余额充值