1.人脸检测模块:使用 OpenCV 提供的 Haar 级联分类器或 DNN 模块进行人脸检测。Haar 级联 分类器是一种基于特征分类的方法,通过训练得到一系列的分类器,用于检测人脸的位置和大小。 DNN 模块则是一种基于深度学习的方法,通过训练得到一个卷积神经网络模型,用于检测人脸的位置和大小。
2.人脸对齐模块:将检测到的人脸进行对齐,以便后续的特征提取和比对。本课程设计报告 采用了仿射变换的方法进行人脸对齐。首先根据人脸的位置和大小计算仿射变换矩阵,然后对原始 人脸图像进行仿射变换,得到对齐后的人脸图像。
3.特征提取模块:从对齐的人脸中提取特征,用于后续的比对。本课程设计报告采用了 LBP 特征提取方法。LBP 是一种局部二值模式方法,通过计算像素点周围邻域的灰度值差异来提取特征。 在 LBP 的基础上,本课程设计报告还采用了加权 LBP 的方法,根据像素点的重要程度赋予不同的权重。
4.人脸比对模块:将提取的特征与已知的人脸进行比对,判断是否匹配。本课程设计报告采 用了余弦相似度进行人脸比对。首先计算待比对人脸的特征向量与已知人脸特征向量的余弦相似度, 然后根据相似度阈值判断是否匹配。
5.OpenCV 模块:OpenCV(Open Source Computer Vision Library)是一个开源的计算机视 觉库,广泛用于图像处理、计算机视觉、机器学习和深度学习等领域。它提供了大量的工具和函数, 用于图像采集、处理、分析、计算机视觉任务等。优点:强大的图像处理功能:OpenCV 支持各种图 像操作,包括滤波、变换、特征提取、目标检测、颜色空间转换等。广泛的平台支持:可以在多个 平台上运行,包括 Windows、Linux 和 macOS。丰富的文档和社区支持:有大量的文档和教程,以及 活跃的社区,可帮助解决问题和获取支持。应用领域:OpenCV 广泛用于图像处理、视频分析、计算 机视觉项目,包括人脸检测、对象跟踪、手势识别、机器学习和深度学习等。
6.face_recognition 模块:face_recognition 是建立在 dlib 之上的 Python 库,专注于人 脸识别。它提供了简单易用的 API,用于从图像中提取人脸特征,比较人脸特征,进行人脸识别等任务。优点:高级人脸识别功能:face_recognition 可以实现快速的人脸识别,而不需要深度学习 专业知识。准确的人脸检测:它内部使用 dlib 的强大人脸检测器,能够检测到多个面部和关键点。 支持多种图像格式:可以处理各种图像格式,包括 JPEG、PNG 等。应用领域:face_recognition 通 常用于人脸识别和验证应用,例如人脸解锁、人脸门禁系统、人脸标签等。
opencv-python
dlib==19.17.0
face_recognition
pyqt5
创建虚拟环境前请大家先下载博客开头的码云源码到本地。
本次我们需要使用到python3.7的虚拟环境,命令如下:
conda create -n face python==3.7.3
conda activate face
跑轮子(原作者这里是要钱的,轮子也是必要的,其实也有其他方法实现,但是我也付费了的,也请尊重知识付费)
pip install dlib-19.17.0-cp37-cp37m-win_amd64.whl
pip install -r requirements.txt
执行下面的主文件即可
python main.py