人脸识别是如何工作的?
人脸识别把一张脸转换成一串固定长度的数字,称为特征向量,然后测量两个向量之间的距离。数值接近的人脸会被判定为同一个人。整个过程既不存储也不比较图片本身。
最后审校
要点速览
- 人脸被转换成数字向量;比较的是这些数字的算术运算,而不是像素。
- 所谓匹配,是距离低于某个阈值,而这个阈值是一种选择,不是客观事实。
- 调低阈值会同时找到更多真实匹配和更多错误匹配,两者必然一起增加。
- 在数百万张人脸中检索,与比对两张照片是不同的任务,评测方式也不同。
- 这项技术读取的是几何结构。它不知道姓名,也无法确认姓名。
人脸识别分几步完成?
无论由哪个系统执行,人脸识别都要经过同样的四个步骤。其中只有第三步涉及从数据中学到的模型,其余都是预处理与算术运算。
- 检测:系统找出图像中包含人脸的区域,并丢弃找不到人脸的图片。
- 对齐:把人脸旋转、缩放到标准位置,使不同角度拍摄的两张照片可以比较。
- 向量化:训练好的模型把对齐后的人脸转换成固定长度的数字列表,通常在 128 到 512 个之间。
- 比较:测量两个向量之间的距离,低于所选阈值即判定为匹配。
什么是人脸特征向量,它包含什么?
特征向量是一串数字,描述模型学到的、可用于辨识身份的几何信息:面部各部分的相对比例与结构,而不是像素本身。它不是压缩后的照片,也无法从中还原出有意义的人脸。它同样不具备人类可读性:列表里没有哪个数字对应鼻子或眼睛。它之所以有用,仅仅在于同一个人的两张照片往往产生彼此接近的向量,而不同的人往往不会。
是什么决定两张脸算作匹配?
由阈值决定,而阈值由系统运营方设定,并非从数据中自动得出。任何阈值都是在两类错误之间做权衡,没有一种设置能同时消除两者。
- 阈值越严格,报告的匹配越少,漏掉的真实匹配越多。
- 阈值越宽松,找到的真实匹配越多,返回的陌生人也越多。
- 合适的取值取决于两类错误各自的代价,而解锁手机与检索开放网络的代价并不相同。
为什么在数百万张人脸中检索比比对两张更难?
这是两个不同的任务,评测也分开进行。比对两张照片属于验证,记作 1:1。在大规模集合中检索一张人脸属于辨识,记作 1:N,NIST 正因如此把二者放在不同的测试项中。集合中每多一张人脸,就多一次让陌生人落入阈值之内的机会;因此单次比对中可以忽略的错误率,在重复数百万次之后就不再可以忽略。
人脸识别对照片有什么要求?
模型是在它能够对齐的人脸上训练出来的,因此可提取的信息几乎完全取决于输入图像。画质问题不是小幅扣分,通常直接决定结果。
- 人脸在画面中要足够大,其结构才能在压缩后保留下来。
- 应大致正对镜头,因为极端角度会遮挡模型所依赖的几何结构。
- 光线应均匀,一侧的硬阴影会改变模型测量到的内容。
- 任何遮挡眼睛和鼻梁的物体,都会去掉信息量最大的区域。
人脸搜索与人脸监控有什么区别?
两者共用同一套数学,此外几乎毫无共同之处。搜索是把你提供的一张照片与已经公开的网页进行比对,并返回这些网页的链接。监控系统则是在实时摄像画面中,持续地把人脸与已登记的名单进行比对,且通常不需要当事人提供任何东西。FaceSearch 做的是前者而不是后者:它接收一张上传的图片,检索公开来源,返回出现相似人脸的网页。它不连接任何摄像头,也不保存任何名单。
人脸识别不能告诉你什么?
它无法告诉你某人是谁。它只能报告两张图像在几何上相似;此外的一切——姓名、账号、以及“两张照片是同一个真实的人”这一判断——都来自匹配所在的那个网页,而不是来自模型。如果网页的说明文字本身就是错的,再高的匹配置信度也仍然是错误答案。因此结果是核实的起点,而不是结论。
参考来源
- Face Recognition Vendor Test (FRVT) 1:1 Verification, National Institute of Standards and Technology
- Face Recognition Technology Evaluation (FRTE) 1:N Identification, National Institute of Standards and Technology