CV Dazzle,探寻怎样用时尚来逃避人脸检测技术。
这个在 2013 年左右引起 New York Times,DIS 杂志追捧的“人类对战计算机视觉的胜利”,放在 3 年过后的今天看更像是精神麻醉剂。
人类应该怎样在计算机视觉下隐藏?更悲观地说,人类能够在计算机视觉下隐藏吗?
CV Dazzle 是什么
CV Dazzle 是 Adam Harvey 上纽约大学交互电信通讯课程的硕士论文题目,主要通过化妆、发型或者其他修饰,形成面部的迷彩效果,并由此产生对人脸探测技术的干扰。
CV Dazzle 的效果
第一段视频,比较化妆前后用人脸检测算法检测的效果。左边化妆前使用滑动窗根据黑白块儿(特征)来检测当前区域有没有人脸,如果认为有,用绿色细框标记,如果某区域有重叠的框,就认为这个区域有人脸。
第二段视频,上传了一堆化妆过后的照片到 facebook 相册里面,结果 facebook 没有检测出人脸。
CV Dazzle 为什么会起作用呢?
要回答这个问题先要粗略了解一下视频里面用来检测人脸的技术是什么。
在谷歌学术里面搜索 face detection,出来的第一篇文章是 2004 年 Paul Viola, et al. 发表在 IJCV(计算机视觉领域顶级期刊之一)上的 Robust Real-Time Face Detection。被引用次数达到了惊人的 9782 次。
(下面这两段说明这个技术怎样起作用的,不关心技术的读者可以直接跳过 :) 。)
这个方法是怎么起作用的呢?粗浅地来说,做了如下几步:首先,训练一个分类器,专门区分所给的图片是不是人脸上的器官(比如眼睛、鼻子、嘴唇),这个分类器的输入是一堆可能的“特征”和训练数据,输出是最有区分能力的几个特征。这里面的“特征”具体指的是什么呢?想象一下给一张图片,人类自己怎么确定这张图片里面有没有人脸?我们可能是根据鼻子、眼睛、嘴巴这些部件来确定的吧?“特征”这里就是这些部件的数学表示,也就是视频里面那些黑白块儿。把黑块中所有像素的和加起来得到一个值,白块儿中的所有像素值加起来得到另外一个值,这两个值相减,就是这个特征。
这张图说明的是最具有区分能力的两个特征,第一个特征评估的是人眼部分和脸颊上部分像素值的差异。在一张照片中,眼睛部分经常是暗的,因为凹陷,而脸颊上部骨头凸出,经常是亮的。第二个特征是基于两个眼睛中间的鼻梁一般都比眼窝亮。(注意虽然人为这样给出解释,但是这是事后的解释,换句话说,分类器告诉我们这两个特征非常具有区分力,但是到底是不是因为上面那些解释而被认为具有区分力,谁也不能打包票。)
(技术解释到此为止。如有错欢迎在评论区指出。)
CV Dazzle 为什么会起作用呢?因为这个方法检测人脸是依靠一些特征的,而 CV Dazzle 针对性地通过化妆改变了这些特征。
具体怎么做的来看图说话。
这是放在 Adam Harvey 项目主页上的一张图。上下两组图片的对比可以看出来,针对检测技术里面提出的两个最有区分能力的特征,都通过化妆掩盖掉了:颊骨贴了贴纸,让第一个特征不能倍满足;头发本来是偏向一遍的,化妆后变成垂直落下的盖住两个眼睛之间的鼻梁,让第二个特征不能被满足。
更有趣的是,请看上面那张图的左下方:左脸颊贴了贴纸,右脸颊没有贴贴纸,还是被检测出来了人脸。为什么呢?因为这个贴纸上白下黑,脸颊部分还是亮的,依然满足第一个特征。由此推测,如果我左脸颊不贴贴纸,右脸颊贴贴纸(上黑下白),这个时候应该就不能被检测出来了吧?我试了下,发现确实如此:
图1:左脸颊贴贴纸,能被检测出来,因为贴纸上白下黑,仍旧是满足“脸颊应该比眼窝亮”特征的。
图2:右脸颊贴贴纸,不能被检测出来,因为贴纸上黑下白,破坏了“脸颊应该比眼窝亮”这个特征。
CV Dazzle 现在还有用吗?
重点来了:这个方法提出的时候是 2004 年,距离今天已经 12 年过去了。像 CV Dazzle 这样化妆还有用吗?
答案是肯定的:没用。
上面涉及的方法中,虽然用了机器学习(Adaboost 选取最有用的那些特征),然而在检测过程中,做的仅仅相当于是拿着现成的模子去套,算了一下加减法而已(为了实时性的需要,并且依次提出了“积分图”,这是后话)。在整个检测过程中并没有用到现在流行的那一套深度学习。
所以我在网上搜比较新的人脸检测的实现,搜出来一堆 face++、skybiometry 之类公司的在线 demo。测试之后,skybiometry 的结果如下:
感兴趣的读者可以自己试试看:skybiometry face detect。
更残酷的是,CV Dazzle 项目的先行条件是存在问题的:“针对的是人脸检测——人脸识别的预处理部分”。
如果铁心用计算机视觉去测试一张图片里面到底有没有人脸,得到的结果可能让你大吃一惊。下图是我用 CloudSight 检测图片的结果(注意,CloudSight 还不是专门识别人脸的哟,专门识别人脸的深度学习网络可能更加强劲)。
看了这个识别结果:“女性的黑与白的脸艺术”。你觉得像 CV Dazzle 这样的化妆还有用吗?你可以自己尝试一下:Cloud Sight Object Recognition。
该怎么办
这样的结果不免让人觉得恐慌。
人类应该怎样在计算机视觉下隐藏?更悲观地说,人类能够在计算机视觉下隐藏吗?
我觉得不能。
要知道做了 CV Dazzle 项目的 Adam Harvey,其实自认为是艺术家而非科学家。这可能是导致 CV Dazzle 现在不能起作用的原因。我们转向看科学家:科学家有证明现在 CV(Computer Vision 计算机视觉)这一套东西是不如人类的吗?
这里就要提到科学家的两个派别。一类是认为人工智能迟早超过人类;另一类是认为人工智能只是工具,总有地方不如人。
第一类科学家,刚刚收获了一次胜利:AlphaGO 击败李世石。
第二类科学家,在 2015 年 CVPR 上发表了一篇论文:Deep neural networks are easily fooled: High confidence predictions for unrecognizable images,通过让神经网络反传改变白噪声图的方式获得被网络高置信度判定为某类别的噪声图。换句话说,他们能够获得非常多的像下面这样的噪声图片,虽然在人类看来毫无意义,但是对人工智能(神经网络)来说,它们显然是某种物体。
乍一听:人工智能好蠢啊,这样的噪声图居然都认为是物体。但是仔细想一想:噪声在 20 世纪以前被认为是不可能拿来做音乐的,而现在噪音摇滚已经被越来越多的人接受。所以,神经网络是不是真的看到了我们人类看不到的一些东西?这些东西是不是物体的核心真理?每次从这个角度想,我都会觉得脊背发凉。
我们再回到开篇的那个问题:人类能够在计算机视觉下隐藏吗?
我觉得虽然不能,但是,导致隐私泄露的并不是“计算机视觉”,而是“社交网络”。仔细想想现在的人工智能能做到的范畴,仅仅针对某个特定任务经过大量数据的训练,能够对一定的输入给出一定的输出而已。这种弱智能在当下是不会威胁到人的,更不用说人的隐私了。真正暴露我们隐私的其实是社交网络。如果真有那么一天,人工智能能够发展到强智能,“隐私”这个话题我们也是不会去讨论的,因为,那个时候的核心话题,是“人类生存”。
作者署名:Hongyang Wang
遵守 Creative Commons BY-NC-ND 3.0的情况下自由转载