Bootstrap

使用Python搭建人脸识别考勤系统

介绍

在本文中,你将学习如何使用 Python 构建人脸识别系统。人脸识别比人脸检测更进一步。在人脸检测中,我们只检测人脸在图像中的位置,但在人脸识别中,我们制作了一个可以识别人的系统。

“人脸识别是验证或识别图片或视频中的人的挑战。大型科技巨头仍在努力打造更快、更准确的人脸识别模型。”

人脸识别的实际应用

人脸识别目前正被用于让世界更安全、更智能、更方便。

有几个用例:

  • 寻找失踪人员

  • 零售犯罪

  • 安全标识

  • 识别社交媒体上的帐户

  • 考勤系统

  • 识别汽车中的驾驶员

根据性能和复杂性,有多种方法可以执行面部识别。

传统人脸识别算法:

在 1990 年代,整体方法被用于人脸识别。手工制作的局部描述符在 1920 年代初期开始流行,然后在 2000 年代后期采用局部特征学习方法。目前广泛使用并在OpenCV中实现的算法如下:

  • Eigenfaces (1991):http://www.scholarpedia.org/article/Eigenfaces

  • Local Binary Patterns Histograms (LBPH) (1996):https://en.wikipedia.org/wiki/Local_binary_patterns

  • Fisherfaces(1997):http://www.scholarpedia.org/article/Fisherfaces

  • Scale Invariant Feature Transform (SIFT) (1999):https://en.wikipedia.org/wiki/Scale-invariant_feature_transform

  • Speed Up Robust Features (SURF)(2006):https://en.wikipedia.org/wiki/Speeded_up_robust_features

每种方法都遵循不同的方法来提取图像信息并将其与输入图像进行匹配。

Fischer-facesEigenfaces与 SURF 和 SIFT 具有几乎相似的方法。

LBPH 是一种简单但非常有效的方法,但与现代人脸识别器相比,速度较慢。

与现代人脸识别算法相比,这些算法并不快。传统算法不能仅通过拍摄一个人的单张照片来训练。

人脸识别深度学习:

一些广泛使用的基于深度学习的人脸识别系统如下:

  • DeepFace

  • DeepID series of systems

  • VGGFace

  • FaceNet

人脸识别器一般是在人脸图像中找出重要的点,如嘴角、眉毛、眼睛、鼻子、嘴唇等。这些点的坐标称为五官点,这样的点有66个。这样,寻找特征点的不同技术给出不同的结果。

4fe9b61681c651777e5345ca38addc13.png

来源:https://www.pinterest.com/mrmosherart/face-landmarks/

人脸识别模型涉及的步骤:

  1. **人脸检测:**定位人脸并在人脸周围绘制边界框并保留边界框的坐标。

  2. **人脸对齐:**标准化人脸以与训练数据库一致。

  3. **特征提取:**提取将用于训练和识别任务的人脸特征。

  4. 人脸识别: 将人脸与准备好的数据库中的一张或多张已知人脸进行匹配。

在传统的人脸识别方法中ÿ

;