面部识别程序如何工作?[关闭]

How do facial recognition programs work? [closed]

提问人:Aaron 提问时间:2/12/2011 最后编辑:skaffmanAaron 更新时间:9/28/2020 访问量:20102

问:


想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。

3年前关闭。

程序将经过什么流程?

计算机视觉 人脸识别

评论

3赞 Daniel A. White 2/12/2011
您的问题偏离了主题 - 它可能适合 cstheory.stackexchange.com
16赞 Niki 2/13/2011
@Daniel A. White:根据FAQ,关于软件算法和编程问题的问题在SO上是主题。人脸识别是一个使用软件算法解决的编程问题。我不明白这是怎么跑题的。

答:

3赞 Darin Dimitrov 2/12/2011 #1

主成分分析是模式识别系统(如面部识别)的基础。

评论

2赞 Predictor 2/13/2011
我想说的是,主成分分析是人脸识别中的一种技术。尽管 PCA 很有用,但并非所有人脸识别解决方案都使用 PCA。
36赞 Niki 2/13/2011 #2

粗略地说,处理阶段是:

  1. 检测人脸位置
  2. 规范化人脸
  3. 收集每个检测到的人脸的特征
  4. 将特征提供给机器学习算法

第 1 步通常使用经典的 Viola&Jones 人脸检测算法完成。它非常快速和可靠。

在步骤 1 中发现的人脸可能具有不同的亮度、对比度和不同的大小。为了简化处理,它们都缩放到相同的大小,并在步骤 2 中补偿曝光差异(例如使用直方图均衡)。

步骤 3 有许多方法。早期的面部检测器试图找到特定的位置(眼睛中心、鼻子末端、嘴唇末端等),并使用它们之间的几何距离和角度作为识别特征。从我所读到的内容来看,这些方法非常快,但不是那么可靠。

最近的方法“特征面”是基于这样一个事实,即人脸图片可以近似为基础图像的线性组合(通过PCA从大量训练图像中找到)。此近似值中的线性因子可用作特征。这种方法也可以单独应用于面部的各个部位(眼睛、鼻子、嘴巴)。如果所有图像之间的姿势相同,则效果最佳。如果有些脸向左看,有些脸向上看,那就行不通了。主动外观模型试图通过训练完整的 3D 模型而不是平面 2D 图片来抵消这种影响。

第 4 步相对简单:对于每张人脸和训练期间获取的人脸图像,您都有一组数字,并且您希望找到与当前测试人脸“最相似”的训练人脸。这就是机器学习算法的作用。我认为最常见的算法是支持向量机(SVM)。其他选择包括人工神经网络或k最近邻。如果功能很好,那么 ML 算法的选择就不那么重要了。

关于该主题的文献:

  • 计算机视觉 - 算法和应用程序处理人脸检测、人脸识别和机器学习(以及许多其他主题)。这是相当新的,所以它涵盖了最新的研究。它还有一个很棒的参考书目。
  • 计算机视觉中的模板匹配技术深入探讨了人脸识别的模板匹配方法。
  • 你可以使用谷歌学术搜索找到很多研究文章。