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

Posted

技术标签:

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

程序会经过什么流程?

【问题讨论】:

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

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

【讨论】:

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

粗略地说,处理阶段是:

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

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

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

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

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

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

有关该主题的文献:

Computer Vision - Algorithms an Applications 处理人脸检测、人脸识别和机器学习(以及许多其他主题)。它很新,所以它涵盖了最新的研究。它还有一个很棒的参考书目。 Template Matching Techniques in Computer Vision 深入探讨了人脸识别的模板匹配方法。 您可以使用谷歌学者找到很多研究文章。

【讨论】:

以上是关于面部识别程序如何工作? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

来自网络摄像头的面部表情识别[关闭]

面部识别/合并软件[关闭]

面部识别算法是如何工作的?

Facebook关闭面部识别系统

如何在 iOS 上进行面部识别?

win10无法使用面部识别