【问题标题】:How do facial recognition programs work? [closed]面部识别程序如何工作? [关闭]
【发布时间】:2011-06-26 02:30:21
【问题描述】:

程序会经过什么流程?

【问题讨论】:

  • 你的问题离题了 - 它可能适合 cstheory.stackexchange.com
  • @Daniel A. White:根据常见问题解答,关于软件算法和编程问题的问题是 SO 的主题。人脸识别是一个使用软件算法解决的编程问题。我不明白这是怎么跑题的。

标签: computer-vision face-recognition


【解决方案1】:

Principal Component Analysis 是模式识别系统的基础,例如facial recognition

【讨论】:

  • 我宁愿说主成分分析是人脸识别中使用的一种技术。虽然 PCA 很有用,但并非所有的人脸识别解决方案都使用 PCA。
【解决方案2】:

粗略地说,处理阶段是:

  1. 检测面部位置
  2. 标准化面
  3. 为每个检测到的人脸收集特征
  4. 将特征输入机器学习算法

第 1 步通常使用经典的 Viola&Jones face detection algorithm 完成。它非常快速和可靠。

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

第 3 步有很多方法。早期的人脸检测器试图找到特定的位置(眼睛中心、鼻子末端、嘴唇末端等),并使用它们之间的几何距离和角度作为特征进行识别.根据我的阅读,这些方法非常快,但并不那么可靠。

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

第 4 步相对简单:您为每个人脸以及在训练期间获取的人脸图像都有一组数字,并且您想找到与当前测试人脸“最相似”的训练人脸。这就是机器学习算法所做的。我认为最常见的算法是支持向量机(SVM)。其他选择是例如人工神经网络或 k-最近邻。如果特征很好,ML算法的选择就没有那么重要了。

有关该主题的文献:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-09
    • 2010-09-26
    • 2013-04-25
    • 2021-07-03
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    相关资源
    最近更新 更多