2.6 活体检测


2.6 活体检测

本节摘要:活体检测(Liveness Detection)回答一个比"你是谁"更先决的问题——"眼前这到底是不是一个活人"。它专门与照片、翻屏视频、打印面具这类伪造物对抗,是验证与搜索之外的第三道闸。本节讲清它为什么必要,梳理动作指令、打印检测、深度真伪判别与多模态四条路线,以及各自面对的攻击与成本。

先看一条案子:一张 A4 纸打开了门

想象最朴素的一次攻击:把印着陌生人脸的高清 A4 照片举到门禁摄像头前。前几节一路顺风——检测出框、对齐、提出特征、和库比对,余弦相似度给到 0.99,门开了。可你举的是张纸,不是人。问题出在哪?识别只验证了"这脸和注册脸像",从来没验证过"这是一张有呼吸的脸"。

这就是活体检测存在的理由:它不关心你是谁,只盯你别是假的——照片要有光照的呼吸、视频要有眨眼转头的连贯、面具要有弹性。为什么它躲不掉?因为"比对通过"只说明"像",而"活体通过"才加上了"是真的"。两者合起来,冒充者就必须同时过"像"和"活"两关,伪造成本一下被抬高不止一个量级。

四条路线的攻防谱系

动作指令:最朴素的一代

最简单的一代是"指令互动"——让你眨眼、摇头、张嘴、左右转头。系统逐帧跟踪关键点,验证这些动作真实发生、顺序连贯。它挡得住静态照片,但有一个天生的裂缝:攻击者只要预录一段包含这些动作的视频就能骗过去,所以纯动作指令挡不住"活视频"。

动作指令的体验代价也高——每次都要真人配合做动作,双双抬了门槛。于是行业往"静默活体"走:不问指令,靠被动分析判断。

打印检测:直接看向"纸张"

第二种思路盯"打印物的物理缺陷":屏摄有摩尔纹与屏幕呼吸,照片有交界高光与平面边缘,面具会有褶皱反光。通过分析纹理、边缘、光谱信息,能认出"这是一张纸或一块屏"的痕迹。它挡得住相当一部分静态攻击,但遇到高质量打印或视频直出就捉襟见肘。

深度真伪判别:让数据学"活"

现代活体主要是深度学习二分类:喂一组人脸帧,网络学习"真实活人脸"与"照片/视频/合成脸"在纹理、光照一致性、微动等维度上的分布差异。它关注去重影、眼神细微游移、皮肤反光模式这类"不太好伪造"的细节,配上中心化检测框、多角度对照,能扛较高等级的翻拍攻击。代价是它本身需要大量真实攻击样本来训练,数据渠道是隐形成本。

多模态:红外加深度叠闸

最硬核的场景同时用多路信号——红外相机抓的肤色热成 RGB 互补,深度相机抓的 3D 几何能识别"打印物是平的、面具是空的"。多模态活体几乎把"伪造一张同时骗过多路信号的脸"的成本抬到高不可攀,代价是需要专门传感硬件与更高算力。

# 活体的"闸门语义":给一组帧,判真伪二分类 def liveness(frames): feats = [encoder(f) for f in frames] # 每组帧编码 prob = predictor(pool(feats)) # 判出"是真人的概率" return low_pass := prob > 0.8 # 到底给不给过

这段示意说明它在系统的位置:像流水线末端一道独立闸门,拿到帧序列输出"真/假",只是判断的维度不是身份,而是生机。

一张表:四条路线谁挡谁

活体路线 挡得住 挡不住 成本
动作指令 静态照片 预录动作视频 低,需用户配合
打印检测 相纸/屏摄痕迹 高质量打印、视频直出
深度真伪判别 照片、视频、合成脸 极逼真的 3D 高仿 中高,需数据
多模态叠闸 单路伪造几乎全被拦 骗过多路信号的高仿 高,需专用硬件

02-06-fig01

路线没有通吃,靠"叠"。命门是别让攻击者只钻一路的空子。

工程实践:按场景分级上强度

  • 应用按"代价"分级:手机解锁可用动作+深度的轻量方案,金融、门禁必须上更严的多模态或至少深度真伪判别,低压力的场景动作指令足够。
  • 别依赖单一防线。动作指令+打印检测+深度真伪可以叠加,即便单点被打穿,整体的伪造成本依然高企。
  • 训练与评测一定要放"翻拍视频、打印图、3D 面具"这些真实攻击样本,缺了它们,活体的拒假能力就是空谈——只在纯真人样本上测,数字再漂亮也没意义。
  • 别忘了"静默活体"这个方向:现代活体追求无指令、靠被动分析完成,体验更好,对其健壮性的要求也更高。
  • 加一个兜底思路:给活体设"置信不足就转人工复核"的出口,别让低价值场景的用户被严苛防线无谓拦死。

一句话直觉:活体和识别分成两道闸。识别赌"像",活体赌"真",两道都过才算数;缺一道,冒充的杠杆就被留给了攻击者。

攻防的投入产出账

选哪一级活体,本质是算"攻防成本"这笔账。一张打印照的攻击成本几乎为零,所以哪怕最低端的场景也不该裸奔;但要挡住 3D 面具、深度合成,防守投入就直线上升,既要专用硬件,又要海量攻击数据。实践的判断原则是:让"成功伪造一次"的代价,高过"伪造者能预期的收益"。手机解锁这种低频低价值交互,动作+深度的轻方案就够;金融、门禁这种要么钱要命的高价值闸门,才值得砸多模态——多花在防伪上的每一块钱,都要对应到"一次被成功冒充会损失多少"。

评测活体,先回答四个问题

评测活体比评测识别更容易自欺,一道过硬的评测要做四件事:第一,攻击集要够"真"——必须放真实打印照、翻拍视频、3D 面具,而不是只在纯真人样本上跑;第二,攻击集要与训练集严格分开,防止模型"记住"了攻击样本;第三,要分场景测,手机弱光、闸机逆光对活体的影响不同,别拿一个场景的成绩代表全部;第四,报指标要同时给"真人通过率"和"攻击拦截率",两者缺一,活体的成色就说不清。记住那句反直觉的话:一套只在美观样本上显威的活体,往往在对真实攻击时原形毕露。

别让"识别去兼任活体"

一个常见的工程诱拐:既然识别准确率这么高,能不能让识别顺带把伪造也判了?答案是别。识别网络学的是"像不像登记过的人",它天生没有"这个动作是真的还是演出来的"这种标签;你指望它看穿一张打印照,等于让考官看见照片就放行——它根本没学这个任务。活体的职责必须由专门的活体模块(动作、打印检测、真伪判别、多模态)承担,和识别各司其职、两道闸都过才算数。

到这一步,一条流水线从像素走到了"身份+真凭"的双重结论。下一章,我们把这条链上每个工位的"算法内脏"一件件拆出来给你看。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U