3. 活体检测技术分类:交互式 vs 非交互式,硬件 vs 软件
活体检测技术怎么分类?这个问题我当年刚入行时也困惑过。市面上方案五花八门,有的让你眨眼,有的让你对着镜头晃脑袋,还有的啥都不用做就能判断真假。其实说白了,就两个维度:交互方式和传感器类型。
我个人习惯把技术先按「交互」和「非交互」切一刀,再按「硬件」和「软件」切第二刀。这样一组合,所有方案都能对号入座。
3.1 交互式活体检测
交互式活体检测,说白了就是让用户「做动作」来证明自己是真人。你想想看,一张照片能眨眼吗?一段录制好的视频能按随机指令张嘴吗?很难。
我最早接触活体检测是在2016年,那时候金融APP刚兴起人脸登录。我记得当时主流方案就是交互式,因为算法能力有限,只能靠动作来增加攻击难度。
3.1.1 眨眼检测
这是最经典的交互方式。系统随机要求用户眨眼,算法检测眼睛的开合状态变化。
- 原理:通过人脸关键点定位眼睛区域,计算眼睛纵横比(EAR, Eye Aspect Ratio)。闭眼时EAR值骤降,睁眼时恢复。
- 攻击方式:打印照片、手机屏幕翻拍、提前录好的眨眼视频。
- 防攻击手段:随机间隔+多次眨眼验证,配合光线变化检测。
3.1.2 张嘴检测
张嘴检测和眨眼类似,但检测的是嘴巴区域。算法通过唇部关键点计算嘴巴纵横比(MAR, Mouth Aspect Ratio)。
- 优势:张嘴动作幅度大,容易检测,对低分辨率视频也友好。
- 劣势:用户配合度低,很多人觉得张嘴拍照很傻。
- 常见攻击:连续张嘴的GIF图、循环播放的短视频。
3.1.3 摇头/点头检测
这个方案要求用户左右摇头或上下点头。算法通过头部姿态估计来判断动作是否真实。
- 原理:使用PnP(Perspective-n-Point)算法从2D人脸关键点估计3D头部姿态,计算偏航角(yaw)和俯仰角(pitch)。
- 攻击难点:照片无法产生连续的角度变化,视频重放需要精确同步。
- 我的建议:摇头检测一定要结合「动作连续性校验」,不能只看首尾帧。我曾经见过攻击者用两张不同角度的照片快速切换,居然骗过了某些算法。
3.2 非交互式活体检测(静默活体)
静默活体,顾名思义就是用户啥也不用做,系统自动判断你是不是真人。你站在摄像头前,1秒钟内就出结果。体验确实好,但技术难度也上了一个台阶。
我参与过好几个静默活体项目,说实话,踩过的坑比交互式多得多。为什么?因为没有动作辅助,算法只能从单帧或短时视频中提取「活体特征」。
3.2.1 基于RGB图像的静默活体
这是最主流的方案,只用普通摄像头。算法从RGB图像中提取以下特征:
| 特征类型 | 具体内容 | 防攻击能力 |
|---|---|---|
| 纹理特征 | LBP、LPQ、HOG等,检测照片/屏幕的摩尔纹、反光 | 中(对高清打印照无效) |
| 颜色特征 | 肤色一致性、屏幕色偏、环境光反射 | 中低(受光照影响大) |
| 深度特征 | CNN提取的高维特征,如FaceNet、ResNet | 高(依赖训练数据) |
| 时序特征 | 微表情、脉搏、呼吸引起的微小运动 | 高(需要连续帧) |
3.2.2 基于硬件的静默活体
硬件方案是「降维打击」。你想想看,RGB图像再怎么做,也防不住3D打印面具。但红外摄像头和3D结构光就不一样了。
- 红外活体:利用红外摄像头捕捉人脸的红外图像。真人皮肤对红外光的反射特性与照片、屏幕完全不同。攻击者即使用红外照片翻拍,也会因为材质差异被识别。
- 3D结构光:投射数万个红外光点,通过光点变形计算深度信息。照片是平面的,没有深度信息,直接就被过滤掉了。
- ToF(飞行时间):通过测量红外光往返时间计算深度,精度不如结构光,但成本更低。
3.3 交互式 vs 非交互式:怎么选?
这个问题没有标准答案,完全看场景。我列个对比表,你一看就明白。
| 对比维度 | 交互式 | 非交互式(静默) |
|---|---|---|
| 用户体验 | 差(需要主动配合) | 好(无感通过) |
| 检测速度 | 3-10秒 | 0.5-2秒 |
| 防攻击能力 | 中高(动作随机性) | 中(RGB)/ 高(硬件) |
| 设备要求 | 普通摄像头即可 | RGB方案普通摄像头;硬件方案需专用传感器 |
| 适用场景 | 金融、政务等安全要求高的场景 | 门禁、考勤、支付等高频场景 |
| 算法复杂度 | 低(动作检测简单) | 高(需要深度学习模型) |
3.4 硬件 vs 软件:成本与安全的博弈
硬件方案和软件方案,说白了就是「花钱买安全」还是「用算法换成本」。
- 软件方案(RGB):成本低,部署方便,任何带摄像头的设备都能用。但防攻击能力有限,尤其是面对高清屏幕翻拍和3D面具时,很容易翻车。
- 硬件方案(红外/3D):成本高,需要专用传感器。但防攻击能力强,尤其是3D结构光,几乎能防住所有已知的2D攻击方式。
3.5 实际项目中的组合策略
在实际项目中,我很少只用单一方案。通常的做法是「多模态融合」:
- 基础层:RGB静默活体做第一道过滤,拦截低端攻击(照片、手机翻拍)。
- 增强层:红外或3D硬件做第二道验证,拦截高级攻击(高清屏幕、面具)。
- 兜底层:交互式动作检测做最后一道防线,应对极端攻击(深度伪造视频)。
你想想看,三层防护下来,攻击者要同时绕过RGB算法、硬件传感器和随机动作检测,难度有多大?基本上可以防住99.9%的攻击。