前段时间在新闻上看到一个消息,说是有一个APP火了,能用一张人脸照片生成包含面部局部运动的视频,以此模拟"活的"人脸,从而可以骗过刷脸认证系统的活体识别算法。
乍一看这事儿的确很恐怖,毕竟当前的很多人脸活体识别算法的核心思想就是面部器官的运动,例如很多门禁系统的"眨眼"要求就是基于这个逻辑。
如果有人在手机上用我的照片生成眨眼视频、拿去刷公司的门禁,岂不是可以畅通无阻了?
仔细想想,这个问题还是有解决办法的,在此提供三种:
1. 基于大范围运动物体识别(宏观)
入侵者必须把手机屏幕的位置移动到摄像头前方,才能使屏幕上的视频被认证系统检测到。
在这一过程中,摄像头必将检测到对应于手机(或者其他显示屏)及人手臂的、在视野中大幅度移动的大片像素区域,并且手机、人手臂的外形特征也是很明显的。
身份认证算法就能据此判定:此后检测到的人脸视频是恶意生成的。
2. 基于摄像头采样频率的设定(微观时域分辨率)
生成的视频与真实人脸的本质区别在于:前者是有固定刷新频率的数字图像序列;后者是物理世界的"模拟"实体,其光学分布图允许以任何频率进行采样而不失真,并且,这个采样频率很难从外部予以探测。
针对这一区别,可以令认证系统的摄像头采用多种频率进行图像采样,令这些频率尽可能不与常用的显示帧频存在倍数关系,这样,就必然会在某些采样时刻与入侵者显示屏显示的帧间时刻接近,从而必将采到一些比较暗的图像帧。
上述现象在认证系统看来,就是采集到的人脸视频忽明忽暗。
身份识别算法就能据此判定:当前检测到的人脸视频是恶意生成的。
3. 基于面部图像的局部放大(微观空域分辨率)
与第2种方法的思路类似,相比于真实人脸的无限"精细度",视频显示器都是用一个像素阵列来输出图像,表现为一个由很多分立小色块构成的"数字化"图像。
针对这一区别,可以令认证系统的摄像头在定位到人脸之后调整光学系统的聚焦效果,使采集图像的区域集中到人脸的某个细节丰富的极小区域,如果视频是由显示屏显示出来的,这个区域必将只能由很少数量的像素予以显示,从而表现为明显的"马赛克"特征。
身份识别算法就能据此判定:当前检测到的人脸视频是恶意生成的。