编者按:本文来自微信公众号“机器之心”(ID:almosthuman2014),作者 Synced,36氪经授权发布。原标题:《一张贴纸破解顶级FaceID,华为新研究让人脸识别不再安全》
用来刷脸解锁的 Face ID 也可以被「对抗样本」攻击了。最近,来自莫斯科国立大学、华为莫斯科研究中心的研究者们找到的新型攻击方法,让已经广泛用于手机、门禁和支付上的人脸识别系统突然变得不再靠谱。
在这一新研究中,科学家们只需用普通打印机打出一张带有图案的纸条贴在脑门上,就能让目前业内性能领先的公开 Face ID 系统识别出错,这是首次有 AI 算法可以在现实世界中实现攻击:
AI 人脸识别系统在正常情况下的分类效果,它识别出了特定的人:Person_1
贴上纸条以后,即使没有遮住脸,系统也会把 Person_1 识别成另外一些人「0000663」和「0000268」等
变换角度、改变光照条件都不会改变错误的识别效果。加了贴纸后,我们可以看到 Person_1 的概率非常低
使用对抗样本攻击图像识别系统,在人工智能领域里已经不算什么新鲜事了,但是想要在现实世界里做到无差别攻击,还是人脸识别这种数千万人都在使用的应用技术,这就显得有些可怕了。使用这种新方法,人们可以轻松地打印一个破解纸条贴在脑门上,随后让 AI 识别的准确率显著下降。
从上面的动图可以看出,研究者实现的是非定向的攻击,且对抗信息都集成在贴纸上。那么如果我们要找到一种定向的攻击方式,让系统将我们识别为特定的某个人,然后解锁 ta 的手机,这也并不遥远,只要我们将以前定向攻击的方式迁移到贴纸上就行了。
研究人员不仅发布了论文:https://arxiv.org/abs/1908.08705
更是直接公开了项目的代码:https://github.com/papermsucode/advhat
「对抗样本」是人工智能的软肋,这是一种可以欺骗神经网络,让图像识别 AI 系统出错的技术,是近期计算机视觉,以及机器学习领域的热门研究方向。
在这篇论文中,研究者们提出了一种全新且易于复现的技术 AdvHat,可以在多种不同的拍摄条件下攻击目前最强的公共 Face ID 系统。想要实现这种攻击并不需要复杂的设备——只需在彩色打印机上打印特定的对抗样本,并将其贴到你的帽子上,而对抗样本的制作采用了全新的算法,可在非平面的条件下保持有效。
研究人员称,这种方法已经成功地破解了目前最先进的 Face ID 模型 LResNet100E-IR、ArcFace@ms1m-refine-v2,其攻击方式也可以迁移到其他 Face ID 模型上。
以前对抗攻击主要体现在虚拟世界中,我们可以用电子版的对抗样本欺骗各种识别系统,例如通用的图像识别或更细致的人脸识别等。但这些攻击有一些问题,例如人脸识别攻击只能是在线的识别 API,将对抗样本打印出来也不能欺骗真实系统。
一个标准的线上人脸对抗样本,它只能攻击线上人脸识别模型或 API,无法用于线下的真实人脸识别场景
对抗样本的这种局限性,很大程度在于真实识别系统不止有人脸识别模块,还有活体检测等其它处理模块。只要活体检测判断对抗样本不是真人,那么它自然就失去了效果。因此,很多研究者在思考,我们能不能将对抗信息打印出来,贴在脸上或头上某个位置,那么这不就能攻击真实的人脸识别了么。甚至,我们可以把对抗信息嵌入到帽子或其它饰品内,这样不会更方便么。
沿着这样的思路,华为莫斯科研究中心的两位研究者就创造了这样的对抗样本。他们表示在以前 Face ID 模型还需要大量的私有数据,而随着大规模公开数据的发布,ArcFace 等研究模型也能与微软或谷歌的模型相媲美。如果他们的对抗样本能攻击到 ArcFace,那么差不多就能攻击业务模型。
研究者表示他们提出的 AdvHat 有如下特点:
AdvHat 是一种现实世界的对抗样本,只要在帽子加上这种「贴纸」,那么就能攻击顶尖的公开 Face ID 系统;
这种攻击是非常容易实现的,只要有彩印就行;
该攻击在各种识别环境下都能起作用,包括光照、角度和远近等;
这种攻击可以迁移到其它 Face ID 系统上。
在 Face ID 系统的真实应用场景中,并非捕获到的每张人脸都是已知的,因此 top-1 类的预测相似度必须超过一些预定义的阈值,才能识别出人脸。
这篇论文的目的是创造一个可以粘贴在帽子上的矩形图像,以诱导 Face ID 系统将人脸与 ground truth 相似度降到决策阈值之下。
这种攻击大概包含以下流程:
将平面贴纸进行转换以凸显三维信息,转换结果模拟矩形图像放在帽子上后的形状。
为了提高攻击的鲁棒性,研究者将得到的图像投影到高质量人脸图像上,投影参数中含有轻微的扰动。
将得到的图像转换为 ArcFace 输入的标准模板。
降低初始矩形图像的 TV 损失以及余弦相似度损失之和,其中相似性是原图嵌入向量与 ArcFace 算出嵌入向量之间的距离。
流程图如下图 2 所示:
图 2:攻击流程示意图
首先,研究者将贴纸重塑成真实大小和外观的图像,之后将其添加到人脸图像上,然后再使用略为不同的转换参数将图像转换为 ArcFace 输入模板,最后将模板输入到 ArcFace 中。由此评估余弦相似度和 TV 损失,这样就可以得到用于改进贴纸图像的梯度信号。
图 3:步骤 1 转换贴纸的示意图
如前所言,在将图像输入到 ArcFace 之前,研究者对其进行了随机修改。他们构造了一批生成图像,并通过整个流程计算在初始贴纸上的平均梯度。可以用一种简单的方法计算梯度,因为每个变换都是可微分的。
注意,在每一次迭代中,批中的每一个图像上的贴纸都是相同的,只有转换参数是不同的。此外,研究者使用了带有动量的 Iterative FGSM 以及在实验中非常有效的几个启发式方法。
研究者将攻击分为两个阶段。在第一阶段,研究者使用了 5255 的步长值和 0.9 的动量;在第二阶段,研究者使用了 1255 的步长值和 0.995 的动量。TV 损失的权重一直为 1e − 4。
研究者利用一张带有贴纸的固定图像进行验证,其中他们将所有参数都设置为看起来最真实的值。
他们使用了最小二乘法法,并通过线性函数来插入最后 100 个验证值:经历了第一阶段的 100 次迭代和第二阶段的 200 次迭代。如果线性函数的角系数不小于 0,则:1)从第一阶段过渡到第二阶段的攻击;2)在第二阶段停止攻击。
研究者在实验中使用一张 400×900 像素的图像作为贴纸图像,接着将这张贴纸图像投射到 600×600 像素的人脸图像上,然后再将其转换成 112×112 像素的图像。
为了找出最适合贴纸的位置,研究者针对贴纸定位进行了两次实验。首先,他们利用粘贴在 eyez 线上方不同高度的贴纸来攻击数字域中的图像。然后,他们根据空间 transformer 层参数的梯度值,在每次迭代后变更贴纸的位置。
下图 4 展示了典型对抗贴纸的一些示例。看起来就像是模特在贴纸上画了挑起的眉毛。
图 4:对抗贴纸示例
为了检测 AdvHat 方法在不同拍摄条件下的鲁棒性,研究者为最开始 10 个人中的 4 人另拍了 11 张照片。拍摄条件示例如下图 6 所示:
图 6:研究者为一些人另拍了 11 张照片,以检测不同拍摄条件下的攻击效果
检测结果如下图 7 所示:虽然最终相似度增加了,但攻击依然有效。
图 7:各种拍摄条件下的基线和最终相似度。图中不同颜色的圆点代表不同的人。圆表示对抗攻击下的相似性,而 x 表示基线条件下的相似性
最后,研究人员检验了该方法对于其他 Face ID 模型的攻击效果。他们选取了 InsightFace Model Zoo 中的一些人脸识别方法。在每个模型上均测试了 10 个不同的人。
图 8:不同模型中,基线和最终相似度的差异
虽然 AdvHat 生成的对抗样本很简单,但这种攻击方式看起来已适用于大多数基于摄像头的人脸识别系统。看来想要不被人「冒名顶替」,我们还是需要回到虹膜识别?