这个程序会通过哪些流程?
这个程序会通过哪些流程?
大致地说,处理阶段如下:
通常使用经典的Viola&Jones人脸检测算法来完成第1步。它非常快速和可靠。
在第1步发现的人脸可能具有不同的亮度、对比度和大小。为了简化处理,它们都被缩放到相同的大小,并且在第2步中补偿曝光差异(例如使用直方图均衡化)。
对于第3步,有许多方法。早期的人脸检测器试图找到特定的位置(眼睛中心、鼻子末端、嘴唇末端等),并使用这些之间的几何距离和角度作为识别特征。根据我的阅读,这些方法很快,但不太可靠。
最近的一种方法是“特征脸”,它基于这样一个事实:人脸图像可以近似表示为一组基本图像的线性组合(通过大量训练图像的PCA计算得到)。这个近似中的线性因子可以用作特征。该方法也可以分别应用于脸部的部分(眼睛、鼻子、嘴巴)。如果所有图像之间的姿态相同,它的效果最好。如果有些面向左侧,其他面向上方,则效果不会那么好。主动外观模型试图通过训练完整的3D模型而不是平面2D图片来抵消这种效果。
第4步相对简单:对于每个面孔,你都有一组数字,并且对于在训练期间获得的面部图像,你想找到与当前测试面部“最相似”的训练面部。这就是机器学习算法所做的事情。我认为最常见的算法是支持向量机(SVM)。其他选择包括人工神经网络或k最近邻算法。如果特征很好,ML算法的选择不会太重要。
相关文献: