01 什么是人脸识别?(What is face recognition?)
01 什么是人脸识别?(What is face recognition?)
01 什么是人脸识别?(What is face recognition?)
一、课程背景与目标
- 本节是卷积神经网络(CNN)课程的最后一周的开篇。
目标:介绍 CNN 的两个重要应用:
- 人脸识别(Face Recognition)
- 神经风格迁移(Neural Style Transfer)
- 本节聚焦于人脸识别系统的基本概念、应用场景及技术挑战。
二、人脸识别的实际演示
案例:百度AI团队开发的人脸识别门禁系统。
- 用户无需工卡,仅凭人脸即可通过门禁。
系统具备活体检测(Liveness Detection) 能力:
- 能区分真实人脸 vs 照片/视频等伪造输入。
活体检测可视为一个二分类监督学习问题:
\[\text{输入图像} \xrightarrow{\text{模型}} \begin{cases} 1 & \text{真人} \\ 0 & \text{非真人(如照片)} \end{cases}\]
✅ 关键点:活体检测是保障人脸识别系统安全性的关键技术,防止“照片攻击”。
三、核心概念区分:人脸验证 vs 人脸识别
1. 人脸验证(Face Verification)
- 定义:给定一张输入图像和一个身份(ID/姓名),判断该图像是否属于该身份。
- 任务类型:1对1匹配(One-to-One)
数学形式:
\[\text{给定 } (x, \text{ID}),\quad \text{输出 } f(x, \text{ID}) = \begin{cases} \text{True} & \text{若 } x \text{ 属于 ID} \\ \text{False} & \text{否则} \end{cases}\]- 应用场景:手机解锁、银行身份核验。
2. 人脸识别(Face Recognition)
- 定义:给定一张输入图像,在数据库中所有已知身份中找出匹配的身份(或判断是否为未知人)。
- 任务类型:1对多匹配(One-to-Many)
数学形式:
\[\text{给定 } x,\quad \text{在数据库 } \{ \text{ID}_1, \text{ID}_2, \dots, \text{ID}_N \} \text{ 中找到 } \text{ID}_i \text{ 使得 } x \in \text{ID}_i\]- 应用场景:公司门禁、安防监控、社交平台自动标记。
四、为什么人脸识别比人脸验证更难?
误差累积效应:
- 假设人脸验证系统的错误率为 1%(即准确率 99%)。
在包含 $N = 100$ 人的数据库中进行人脸识别时,至少出错一次的概率为:
\[P_{\text{error}} = 1 - (0.99)^{100} \approx 1 - 0.366 = 0.634 \quad (\text{即 } 63.4\%)\]- 这意味着即使验证系统很准,直接用于识别也会导致高错误率。
结论:
- 要构建可靠的人脸识别系统,其底层的人脸验证模块必须具有极高的准确率(如 99.9% 甚至更高)。
- 因此,课程将先聚焦于如何构建高精度的人脸验证系统,再扩展到识别任务。
五、技术挑战:一次性学习(One-Shot Learning)
问题背景:
- 在实际应用中,系统可能只见过某个人的一张照片(例如注册时上传的证件照)。
- 但之后需要识别该人在不同光照、角度、表情下的新图像。
传统深度学习的局限:
- 标准 CNN 需要大量样本才能学习一个类别。
- 但人脸识别常面临每个类只有一个训练样本的情况。
解决方案方向(将在后续视频讲解):
- 使用相似度学习(Similarity Learning) 或 孪生网络(Siamese Networks)
学习一个嵌入函数(Embedding Function) $f(x) \in \mathbb{R}^d$,将人脸映射到低维空间,使得:
\[\| f(x^{(1)}) - f(x^{(2)}) \|_2 \text{ 小} \iff x^{(1)} \text{ 和 } x^{(2)} \text{ 是同一人}\]
六、小结(Key Takeaways)
| 概念 | 描述 | 难度 | 应用 |
|---|---|---|---|
| 人脸验证 | 1对1:验证“你是你吗?” | 较低 | 手机解锁、支付验证 |
| 人脸识别 | 1对多:识别“你是谁?” | 较高(需极高验证精度) | 门禁、安防、社交 |
| 活体检测 | 判断输入是否为真实活人 | 中等 | 防止照片/视频欺骗 |
| 一次性学习 | 仅用一张图学会识别人脸 | 核心挑战 | 实际系统必备能力 |
七、后续预告
- 下一节将深入讲解 “一次性学习问题”(One-Shot Learning) 及其解决方案(如 Siamese 网络、triplet loss 等)。
- 最终目标:构建一个可用于大规模人脸识别系统的高鲁棒性验证模块。
本文由作者按照 CC BY 4.0 进行授权