【汇总】人脸识别项目集合
1. 基于OpenCV的人脸识别模型
一般安装过opencv后,配置文件的路径为: /usr/share/opencv4/haarcascades/haarcascade_frontalface_default.xml
import cv2
filepath = "test.jpg"
img = cv2.imread(filepath)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# OpenCV人脸识别分类器
# /usr/share/opencv4/haarcascades/haarcascade_frontalface_default.xml
classifier = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
faceRects = classifier.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
if len(faceRects):
for faceRect in faceRects:
x, y, w, h = faceRect
cv2.rectangle(img, (x, y), (x + h, y + w), (0, 255, 0), 2)
cv2.imshow("image", img)
c = cv2.waitKey(10)
cv2.waitKey(0)
cv2.destroyAllWindows()
OpenCV 有三种人脸识别的算法:
-
Eigenfaces: 是通过 PCA(主成分分析)实现的,它识别人脸数据集的主成分,并计算出待识别图像区域相对于数据集的发散程度(020k),该值越小,表示差别越小,0值表示完全匹配。低于4k5k都是相当可靠的识别。
-
FisherFaces: 是从 PCA发展而来,采用更复杂的计算,容易得到更准确的结果。低于4k~5k都是相当可靠的识别。
-
LBPH: 将人脸分成小单元,并将其与模型中的对应单元进行比较,对每个区域的匹配值产生一个直方图。它允许待检测人脸区域可以和数据集中图像的形状、大小不同,更方便灵活。参考值低于50则算是好的识别,高于80则认为比较差。
2. pypi: face_recognition
本项目是世界上最简洁的人脸识别库,你可以使用Python和命令行工具提取、识别、操作人脸。代码实现基于业内领先的C++开源库 dlib
中的深度学习模型,用 Labeled Faces in the Wild
人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。
确定项目依赖:
face_recognition_models
Click>=6.0
dlib>=19.3.0
numpy
Pillow
scipy>=0.17.0
当然现在的项目在Jetson上运行效率很低,使用的是多核CPU运算,未能通过GPU提速。
2.1. 查找 & 定位人脸
import face_recognition
image = face_recognition.load_image_file("xxx.jpg")
face_locations = face_recognition.face_locations(image)
2.2. 识别人脸关键点
包括眼睛、鼻子、嘴和下巴:
import face_recognition
image = face_recognition.load_image_file("xxx.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)
2.3. 识别人脸的身份
import face_recognition
known_image = face_recognition.load_image_file("biden.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")
biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
results = face_recognition.compare_faces([biden_encoding], unknown_encoding)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?