一张照片再也刷不开人脸锁,活体检测到底识别哪些细节?
前几年总有传闻说,拿张照片对着手机摄像头晃一晃,就能解锁别人的手机。
那时候可能行,但现在?你拿高清打印的照片、平板上的视频,甚至AI生成的换脸视频去试,基本都会被当场识破。
很多人以为人脸识别就是"看脸认人",其实在它认出你是谁之前,得先过一道更狠的关卡——活体检测(Liveness Detection)。
这套系统的核心逻辑只有一个:证明你不是一张纸,也不是一块发光的屏幕。 今天揭秘现在的智能门锁、支付系统是怎么用几招"火眼金睛",把各种作弊手段堵死的。
第一道防线:3D 景深,专治平面照片
最古老的破解法是打印照片。对付这种攻击,现在的设备根本不需要看你的五官,只看一个维度:深度(Depth)。
不管是苹果的FaceID结构光,还是安卓阵营的ToF(飞行时间)镜头,它们发射出去的不是普通光线,而是几万个肉眼看不见的红外光点,投射在你脸上形成一个立体的"点云"。
真人脸:鼻子是凸的,眼窝是凹的,下巴是有厚度的。设备算出来的深度图是一个起伏的3D模型。
照片/打印纸:哪怕你剪了眼睛部位的洞,整张纸依然是平的。设备扫一眼,发现所有点的深度值几乎一致,或者只有纸张弯曲的微小弧度,立马就会判定:"检测到二维平面攻击,拒绝。"
这就是为啥现在的手机"刘海"或"药丸"里塞满了各种传感器。它们不是在拍照,是在扫描地形。你想用平面骗过3D扫描,从物理层面上就行不通。
第二道防线:捕捉瞳孔反光与生理微动
如果你的照片是贴在面具上,做出了立体效果呢?那还有第二道防线:生物特征检测。
人类的脸是活的,这种"活性"藏在很多细节里,算法专门盯着这些点抓:
瞳孔反光(Photometric Analysis):人的瞳孔是个天然的凹透镜,对强光有特定的反射模式。当你盯着摄像头时,系统会打一束红外闪光。
真人的瞳孔收缩、晶状体折射和视网膜的纹理,会产生一种特殊的"红眼效应"或纹理反光;而照片上的眼睛,反光是平面的,面具上的眼睛则是塑料质感,一眼就能看出来。
微小动作(Micro-Movements):你以为你不动,其实你的面部肌肉一直在抖。眼球在眼眶里的微小震颤(微跳动)、眼皮的细微抽搐、甚至说话时面部肌肉的牵动,这些都是活体特有的信号。
系统会要求你"眨眨眼、张张嘴",或者在你无意识时分析这些微动的频率和幅度。照片里的眼睛永远不会眨,视频里的动作也是预设好的循环,很难模拟这种随机的生理噪声。
第三道防线:屏幕摩尔纹与环境纹理
最高级的作弊是用另一块手机屏幕播放受害者的视频(视频重放攻击)。这招对付老式摄像头有用,但对付现在的旗舰机,就是自投罗网。
现在的算法引入了一种叫摩尔纹(Moiré Pattern)的检测技术。当你的手机摄像头对着另一块电子屏幕拍摄时,由于两个屏幕的像素排列网格(Grid)频率不同,会产生一种特有的波浪状干涉条纹,这就是摩尔纹。
活体检测系统会把这当成"屏幕攻击"的专属指纹。 哪怕你用4K高清屏播放视频,摩尔纹依然会出现在算法的视野里。
此外,系统还会检测环境光的一致性。如果摄像头发现你的脸光源单一(比如来自屏幕背光),且背景虚化得不自然,或者视频边缘有明显的屏幕边框残影,都会触发风控。
这三道防线叠加在一起,构成了一个多层防御体系:
3D结构光负责踢掉"纸片人";
虹膜与微动检测负责踢掉"假面具";
摩尔纹与环境分析负责踢掉"视频流"。
这也是为什么现在的银行App、支付软件敢用人脸支付——它赌的不是你长得像谁,而是屏幕对面那个东西有没有生命特征。
当然,道高一尺魔高一丈。现在的黑客开始用AI换脸(DeepFake)实时渲染视频,或者用3D打印头套。
为了应对这些,活体检测还在不断进化,比如加入近红外光谱分析(检测皮肤下的血红蛋白含氧量)等更硬核的技术。
但至少在消费级市场,你想拿一张照片去刷开邻居的门锁,或者解锁别人的手机,基本属于痴人说梦。
你有没有试过用照片或者视频去"骗"手机的人脸识别?结果成功了还是被无情拒绝了?评论区聊聊你的翻车现场。
信源参考:
ISO/IEC 30107 系列标准(生物特征识别防呈现攻击检测)
商汤科技/旷视科技人脸识别活体检测技术白皮书
IEEE Transactions on Information Forensics and Security(关于摩尔纹检测的研究论文)


