面部识别程序如何工作? [英] How do facial recognition programs work?

查看:164
本文介绍了面部识别程序如何工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

解决方案

大致上,处理阶段是:


  1. 检测脸部位置

  2. 规范化脸部



  3. $ b

    步骤1通常使用经典中提琴与琼斯面部检测算法。这是相当快速和可靠。



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



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



    一个更新的方法,Eigenfaces,是基于这样的事实:面部的图片可以近似为基本图像的线性组合(通过PCA从大一组训练图像)。该近似中的线性因子可以用作特征。该方法还可以单独地应用于脸部(眼睛,鼻子,嘴)的部分。如果所有图像之间的姿势是相同的,它最好工作。如果一些面孔向左看,其他人向上看,它不会工作。活动外观模型尝试通过训练一个完整的3d模型,而不是平面的2d图片来抵消这种效果。



    步骤4是相对直接的:你有一组数字为每个面,以及在训练期间获取的面部图像,并且您想要找到与当前测试面最相似的训练面部。这就是机器学习算法。我认为最常见的算法是支持向量机(SVM)。其他选择是例如。人工神经网络或k-最近邻。



    有关主题的文献:










    b

    What flow would the program go through?

    解决方案

    Very roughly, the processing stages would be:

    1. Detect face positions
    2. Normalize the faces
    3. Collect features for each detected face
    4. Feed the features to a machine learning algorithm

    Step 1 is usually done using the classic Viola&Jones face detection algorithm. It's quite fast and reliable.

    The faces found in step 1 may have different brightness, contrast and different sizes. To simplify processing, they are all scaled to the same size and exposure differences are compensated (e.g. using histogram equalization) in step 2.

    There are many approaches to step 3. Early face detectors tried to find specific positions (center of the eyes, end of the nose, end of the lips, etc.) and use geometric distances and angles between those as features for recognition. From what I've read, these approaches were very fast, but not that reliable.

    A more recent approach, "Eigenfaces", is based on the fact that pictures of faces can be approximated as a linear combination of base images (found through PCA from a large set of training images). The linear factors in this approximation can be used as features. This approach can also be applied to parts of the face (eyes, nose, mouth) individually. It works best if there the pose between all images is the same. If some faces look to the left, others look upwards, it won't work as well. Active appearance models try to counter that effect by training a full 3d model instead of flat 2d pictures.

    Step 4 is relatively straightforward: You have a set of numbers for each face, and for the face images acquired during training, and you want to find the training face that's "most similar" to the current test face. That's what machine learning algorithms do. I think the most common algorithm is the support vector machine (SVM). Other choices are e.g. artificial neural networks or k-nearest neighbors. If the features are good, the choice of the ML algorithm won't matter that much.

    Literature on the subject:

    这篇关于面部识别程序如何工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆