假的。(多图)
按文章作者的意愿,“头部左右倾斜 15 度以上”只能逃避其所用APP中的人脸检测模块,粗略观测,其所用APP中的人脸检测算法只能适应用正脸( frontal face,而非多视角不变的人脸检测( Invariant Multi-View Face Detection[1]),而目前诸多开放的人脸检测SDK或多或少地实现些功能:

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图

图1.(此结果来自orbe.us | ReKognition [2],好人做到底,给orbe.us | Cloud-based Parallel All-In-One Image, Facial and Brand Recognition Engine.做个广告 http://weibo.com/u/2441316112,美女负责人不在知乎呀!)

人脸检测只是人脸识别系统中的一步,当然是非常重要的一步;反人脸检测(躲开人脸检测)也只是反人脸识别的一种手段,在特定场景下是奏效的,但“头部左右倾斜 15 度以上”的“伎俩”是达不到这效果的,为什么呢?是否有更有效的方法呢?我们来探讨一下:

1、人脸识别的一般过程
首先,我们需要了解人脸识别的一般过程,如图2:

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图1

图2. 人脸识别一般过程

可以看不出,人脸检测是入口,检测失败则后续识别无从谈起;人脸检测一般也包括了人脸关键点检测 (Facial Landmark Detection),检测成功后的预处理是根据人脸关键点将人脸摆正、对齐,将人脸图像规定在只包含五官的部分,当然也可能包含对光照的处理;
识别过程则类似一般图像(模式)分类,大体是提取某种特征(用于表示人脸图像的数学向量,是对人脸图像进行特定的运算获得,如获得矩阵特征值即为一种方法),选择某种分类方法(传统神经网络及DeepLearning方法与此有别)。
那么,影响人脸识别的因素实际上可包含影响人脸检测的因素和影响特征提取的因素:
影响人脸检测的因素有:光照、人脸姿态、遮挡程度;
影响特征提取的因素有:光照、年龄、表情、遮挡程度;
所以,反人脸检测是反人脸识别最直观的方法,题主所引用VEDO中用到的反人脸检测 的方法莫过于从影响人脸检测的因素及人脸检测原理入手,这里留在下一节讲。
同样的道理,破坏影响特征提取的因素在理论上也是可以达到反人脸识别的效果。

2、人脸检测及反人脸检测

2.1 人脸检测
目前流行的人脸检测方法多源自Viola–Jones object detection framework(Viola)[3],这里并不打算描述该过程,OpenCV Face Detection: Visualized [4](自备梯子)非常直观地展现了这一过程。
基本上,了解了该算法,使用OpenCV自带的分类器[5],便可实现正脸的检测;但对于图像中人脸的其他姿态,则有较高的漏检率,这也就是为何题主及其引文将场景设为“头部左右倾斜 15 度以上”,其实还可以为“头部向下俯或向上仰15度以上”或“头部向左或向右偏15度以上”,只不过“头部左右倾斜 15 度以上”伪装或躲避镜头的意图不算太明显而已。
人脸在空间中的旋转有三种[6],即绕水平轴旋转(俯仰)、绕垂直轴旋转(摇摆)和绕视平面法向轴旋转(倾斜),如图 3所示:

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图2

图3. 人脸在空间中的旋转

也即roll, yaw, pitch,注意图1结果中的红框,对应如图4:

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图3

图4. 人脸在空间中的旋转

也就是说,完善的人脸检测算法,是要适应一定多视角的,如[6]考虑的姿态范围为摇摆[-90°, +90°],倾斜[-45°, +45°]和俯仰[-20°, +20°]。更多的结果如下:

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图4

图5. Multi-View Face Detection

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图5

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图6

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图7

图6. Face Detection Project

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图8

图7. CNN for Facial Point Detection

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图9

http://users.soe.ucsc.edu/~milanfar/research/rokaf/.html/ObjectDetectionFromSingleImage.html

2.2 反人脸检测
了解了人脸检测的原理及影响人脸检测的因素,反人脸检测似乎有头绪了,当我们只是产生了这些念头的时候,有人已经实验多时。

A、基于VJ人脸检测原理的反人脸检测
[2.1]中将VJ人脸检测可视化的同学Adam Harvey做了这个实验,前期的实验主要是寻找一种可行的遮挡模式:

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图10

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图11

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图12

第二阶段的实验是对遮掩层的精化(Project):

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图13

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图14

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图15

反人脸检测的动态过程见CV Dazzle: ITP Thesis Demo Look #1 (after) from Adam Harvey on Vimeo.Adam Harvey在facebook.com所用的phototagger上的测试见CV Dazzle vs PhotoTagger from Adam Harvey on Vimeo.

B、基于光照干扰因素的反人脸识别

日本东京国立信息研究院教授ISAO ECHIZEN研发出了世界首款反面部识别的眼镜,通过眼镜上的11组近红外环形灯,可以完美阻止被摄像头的面部识别程序抓取信息。[7]

头部向肩膀左右倾斜 15 度以上就能躲过人脸识别系统是真的吗?插图16

图8. Execution of face detection Research projects

3、针对特征提取的反人脸识别

特征提取方法繁多[9][10][11],要在这个层面上达到反人脸识别,似乎难以做到,除非获知该识别系统可能使用的特征提取方法,即便如此,鲁棒的特征应该具备一定的不变性,比如光照、年龄、噪声等的影响,要做到破坏性,需具备一定的专业水准。

如果不想去推测或遍历当前流行的人脸特征算法,那么在这个层面上要做到反人脸识别,目前我只能不负责任地举出这个栗子:[视频]能骗过面部识别的人脸面具[8]

4、总结

人脸识别的广泛应用,势必对民众的隐私造成一定的影响,这也是Google及Facebook尚未在其SNS系统中公开使用该技术的原因之一。对于大街小巷星罗棋布的监控设备,你我的身影或行迹总会不知不觉地记录在某块硬盘的扇区,尽管2013年波士頓馬拉松爆炸案等事件表明目前的技术并不像鹰眼 (豆瓣)中描述的那样神乎其乎,但做为想像成为拯救无辜人类的化身的技术宅,自然是要事先发起反击战–反人脸识别。

5、参考
[1] High-Performance Rotation Invariant Multiview Face Detection. IEEE Xplore Abstract
[2] orbe.us | ReKognition
[3] OpenCV Face Detection: Visualized from Adam Harvey on Vimeo. http://vimeo.com/12774628
[4] Viola–Jones object detection framework http://en.wikipedia.org/wiki/Viola%E2%80%93Jones_object_detection_framework
[5] OpenCV Cascade Classifier
[6]《基于连续 Adaboost 算法的多视角人脸检测》 http://media.cs.tsinghua.edu.cn/~ahz/papers/crad-20031114-1836.pdf
[7] 和谷歌对着干 日本科学家开发反面部识别眼镜
[8] [视频]能骗过面部识别的人脸面具
[9] http://vis-www.cs.umass.edu/lfw/results.html
[10] 自动人脸识别基本原理
[11] 人脸识别核心算法

— 完 —

本文作者:邹哥亮

【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)

此问题还有 7 个回答,查看全部。
延伸阅读:
LBP (Local Binary Pattern) 是目前流行的模式识别、人脸识别算法吗?
比较好的开源人脸识别软件有哪些?

分享到