跳到主要内容

人脸检测与识别【选修】

本节定位

人脸任务看起来像“只是检测一个特殊目标”,
但真实系统通常至少包含:

  • 找到脸
  • 对齐
  • 提特征
  • 比较相似度

所以这节更重要的是理解:

人脸系统往往是一条流水线,不是单个模型。

学习目标

  • 理解人脸检测、对齐和识别之间的区别
  • 通过可运行示例理解特征比对的直觉
  • 理解人脸系统为什么特别关注误识和隐私问题
  • 建立人脸任务的整体流水线感

一、人脸识别系统通常有哪些步骤?

  1. 检测:先找到脸在哪
  2. 对齐:把角度和姿态尽量规范化
  3. 表示:提取人脸向量
  4. 匹配:比较向量相似度

二、先看一个最小相似度比对示例

from math import sqrt

face_a = [0.9, 0.2, 0.1]
face_b = [0.88, 0.22, 0.12]
face_c = [0.1, 0.8, 0.9]


def cosine(a, b):
dot = sum(x * y for x, y in zip(a, b))
na = sqrt(sum(x * x for x in a))
nb = sqrt(sum(x * x for x in b))
return dot / (na * nb)


print("a vs b:", round(cosine(face_a, face_b), 4))
print("a vs c:", round(cosine(face_a, face_c), 4))

2.1 这个例子最重要的直觉

人脸识别很多时候不是直接分类名字,
而是:

  • 看两张脸的表示是否足够接近

三、最常见误区

3.1 只看检测,不看对齐

对齐往往会直接影响后续识别稳定性。

3.2 只看相似度,不看阈值风险

阈值设太宽容易误识,
设太严又容易漏识。

3.3 忽略隐私和合规

人脸任务几乎天然带有更高合规要求。


小结

这节最重要的是建立一个系统判断:

人脸检测与识别不是单一模型问题,而是一条从检测到匹配的完整流水线。


练习

  1. 自己构造几组向量,看看相似度阈值怎么影响匹配判断。
  2. 为什么说人脸系统特别依赖阈值设置?
  3. 对齐为什么会影响识别质量?
  4. 想一想:人脸系统为什么要特别重视隐私?