教你如何用Python做人脸识别,简单易学!
Python是一种计算机编程语言以及配套的软件工具和库。Python简单易学,代码十分简洁,它使用强制空白符作为缩进,这大大提高了Python的开发效率,使用Python能够在更短的时间内完成更多的工作。Python是一门开源的语言,并且Python还有许多强大的开源库,这些库使得Python无论是对云计算、大数据、还是人工智能,都有很强的支持能力。
01、人脸识别
人脸识别是计算机视觉领域的典型,也是最成功的识别应用。
人脸识别可用于人机交互、身份验证、患者监护等多种应用场景。首先需要通过人脸检测找到画面中的所有人脸,通过使用HOG算法进行人脸检测,分析面部特征,HOG算法虽然可以检测出人脸,但无法对人脸进行识别,人脸识别的特征提取通过训练卷积神经网络,为每张人脸生成128个特征值,改特征向量可以很好的表示人脸数据,使得不同人脸的两个特征向量距离尽可能大,同一张人脸的两个特征向量尽可能小,这样就可以通过特征向量进行人脸识别了。
02、HOG
HOG的主要思想是:在一副图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边缘的方向密度分布(即梯度的统计信息,而梯度主要位于边缘的地方)很好地描述。HOG特征检测算法的几个步骤:颜色空间归一化—>梯度计算—>梯度方向直方图—>重叠块直方图归一化—>HOG特征。如下图所示:
03 Dlib
Dlib中的人脸识别算法基于深度卷积神经网络(Deep Convolutional Neural Networks,DCNNs)实现。其中,用于提取人脸特征的模型是一个带有128维输出的卷积神经网络,它使用ResNet架构(Residual Networks,残差网络)进行训练。