你好,我正在使用opencv和facenet模型沿着tensorflow进行人脸检测和识别。现在我的人脸识别工作很好。但我有准确性问题的人脸检测。我有大量的数据,其中包含人脸,但没有检测到harrcascade。所以我想添加到haarcascade的图像,以提高人脸检测的准确性。我如何更新此文件,以检测更多的脸?
93ze6v8z1#
现代人脸识别流程包括4个常见的阶段:检测,对齐,表示和验证。仅仅检测人脸是不够的。根据谷歌的研究,对齐可以提高准确率超过1%。我建议你使用deepface,因为它在后台处理这些阶段。
#!pip install deepface from deepface import DeepFace obj = DeepFace.verify("img1.jpg", "img2.jpg", model_name = "Facenet") print(obj)
验证功能包括检测和对齐任务。也可以验证多个面。
obj = DeepFace.verify([ ["img1.jpg", "img2.jpg"], ["img1.jpg", "img3.jpg"] ], model_name = "Facenet" )
这些都是人脸验证,你可以应用人脸识别。我的意思是,你可以在一个大型数据库中找到一张脸。
df = DeepFace.find(img_path = "img1.jpg", db_path = "C:/my_db", model_name = "Facenet")
你可以测试deepface包中不同的人脸识别模型。VGG-Face,Facenet,OpenFace,DeepFace和DeepID是包中 Package 的模型。根据我的实验,VGG-Face和Facenet是最强大的。
tp5buhyn2#
deepface中的默认人脸检测模块是opencv,但它也包含ssd,dlib和mtcnn。
#!pip install deepface from deepface import DeepFace backends = ['opencv', 'ssd', 'dlib', 'mtcnn'] detected_face = DeepFace.detectFace("img.jpg", detector_backend = backends[0])
你也可以用这些不同的人脸检测器来运行人脸识别,ssd中的人脸检测比opencv haar cascade更成功,但它们都使用opencv的眼睛检测来对齐人脸,dlib的对齐功能的分辨率很低,这就是为什么最好的结果来自mtcnn。
from deepface import DeepFace DeepFace.verify("img1.jpg", "img2.jpg", detector_backend = 'mtcnn')
2条答案
按热度按时间93ze6v8z1#
现代人脸识别流程包括4个常见的阶段:检测,对齐,表示和验证。仅仅检测人脸是不够的。根据谷歌的研究,对齐可以提高准确率超过1%。
我建议你使用deepface,因为它在后台处理这些阶段。
验证功能包括检测和对齐任务。
也可以验证多个面。
这些都是人脸验证,你可以应用人脸识别。我的意思是,你可以在一个大型数据库中找到一张脸。
你可以测试deepface包中不同的人脸识别模型。VGG-Face,Facenet,OpenFace,DeepFace和DeepID是包中 Package 的模型。根据我的实验,VGG-Face和Facenet是最强大的。
tp5buhyn2#
deepface中的默认人脸检测模块是opencv,但它也包含ssd,dlib和mtcnn。
你也可以用这些不同的人脸检测器来运行人脸识别,ssd中的人脸检测比opencv haar cascade更成功,但它们都使用opencv的眼睛检测来对齐人脸,dlib的对齐功能的分辨率很低,这就是为什么最好的结果来自mtcnn。