|你熟知的那个杀毒软件公司McAfee,用这种方法骗过护照人脸识别( 二 )


本文插图

对象 B Steve 。
Jesse 是模型黑客攻击领域的专家 , 他通过自己构建的系统生成了 Steve 的一张伪图像 , 然后让 Steve 提交给政府 。 最为关键的是这张提交上去的照片必须看起来像 Steve , 又能与 Jesse 的实时视频完全匹配 。 这样才能帮助 Jesse 顺利地骗过人脸识别系统 。
方法选择
在伪图像生成过程中 , 研究者首先选择使用了 CycleGAN 框架 。 但是 , 在这项人脸识别对抗攻击测试中又用到了图像验证系统 , 所以需要对 CycleGAN 进行扩展 。
所以 , 他们又用到了 FaceNet 。 研究者意识到 , 模型不仅需要准确地创建逼真的对抗性图像 , 而且需要将对抗性图像验证为目标对象 。
最终 , 考虑到需要首先进行白盒测试 , 以理解整个框架 , 研究者选择将 CycleGAN 和开源的 FaceNet 变体架构 InceptionResnet v1 相结合 。
训练过程
研究者清楚他们需要足够大的数据集来准确地训练攻击生成模型 , 但在该研究中的数据集要小于很多其他的用例 。 这是因为他们的研究对象只有两个人:对象 A Jesse 和对象 B Steve , 并在将图像输入 FaceNet 时最小化生成的两个人脸嵌入之间的「距离」 , 同时保持任意一个方向上的误分类 。
换句话说 , 护照照片需要看起来像 Steve , 又能完全匹配 Jesse 的实时视频 。 反过来也是这样 。
研究者在包含 1500 张 Jesse 和 Steve 图像的数据集上进行训练 , 它们都是从实时视频中捕获的静态图像 。 此外还提供了多种表情和人脸姿势 , 以丰富训练数据并准确地表示(represent)为想要拍摄有效护照照片的人 。
|你熟知的那个杀毒软件公司McAfee,用这种方法骗过护照人脸识别
本文插图
【|你熟知的那个杀毒软件公司McAfee,用这种方法骗过护照人脸识别】

对象 A Jesse 和对象 B Steve 。
然后 , 研究者集成 CycleGAN 和 FaceNet 架构 , 并开始训练模型 。
如下图所示 , 生成器的原始输出非常粗糙 , 虽然看起来有几分像人类 , 但辨认起来却非常困难 , 并且出现了极其明显的扰动(perturbation) 。
|你熟知的那个杀毒软件公司McAfee,用这种方法骗过护照人脸识别
本文插图

但随着训练迭代的增加 , 图像的视觉展示效果出现了明显改观 。 人脸开始消除一些异常(abnormality) , 同时融合 Jesse 和 Steve 的特征 。 具体效果如下图所示:
|你熟知的那个杀毒软件公司McAfee,用这种方法骗过护照人脸识别
本文插图

随着训练迭代的进一步增加 , 判别器对生成器的输出图像越来越「满意」 。 虽然还需要处理一些细节 , 但生成的图像越来越像 Steve 了 。
|你熟知的那个杀毒软件公司McAfee,用这种方法骗过护照人脸识别
本文插图

数百次训练迭代之后 , 研究者终于得到了符合要求的「候选图像」 , 它可以作为有效护照照片帮助 Jesse 通过护照人脸识别系统 。
|你熟知的那个杀毒软件公司McAfee,用这种方法骗过护照人脸识别
本文插图

Steve 的伪图像 。
可以看到 , Steve 的伪图像足够真实 , 能够令人相信它不是计算机生成的 。
Demo 展示
下面的三个 Demo 视频展示了使用灰盒模型的对抗攻击 。
但是需要注意的 , 在 Demo 展示中 , 对象 A Jesse 和对象 B Steve 互换了身份 , 即 Steve 成为了攻击者 , 他在禁飞名单中 , 想要骗过护照人脸识别系统;Jesse 成为了同谋者 , 他不在禁飞名单中 , 想要协助 Steve 通过护照人脸识别系统 。
也就是说 , Demo 展示的内容是 Steve 借助生成的 Jesse 伪图像通过护照人脸识别系统 。 此外 , 研究者还添加了一个随机测试对象 Sam , 以作为参考 。


推荐阅读