首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用“人脸识别”(lib)来识别10万张现有人脸中的新人脸?

使用“人脸识别”(lib)来识别10万张现有人脸中的新人脸?
EN

Stack Overflow用户
提问于 2017-06-21 04:08:36
回答 2查看 823关注 0票数 1

我想使用"Face Recognition"库来识别新面孔。我有一个100k用户的数据集,每个用户有3-5张图像。我不太明白如何使用这个库。

有这样一种方法:

代码语言:javascript
复制
import face_recognition
known_image = face_recognition.load_image_file("obama.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")

obama_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]

results = face_recognition.compare_faces([obama_encoding], unknown_encoding)
if results[0] == True:
    print("It's a picture of Obama!")
else:
    print("It's not a picture of Obama!")

我是否必须遍历所有图像(100k用户*5个图像)才能“识别”未知图像中的人?或者,我将每个图像的所有face_encodings()保存在数据库中,然后使用新图像的face_encoding在数据库中进行搜索?如果是这样的话,我的数据集有5张不同的同一人的图像,这种方法不会从中受益吗?

这个库来自@ageitgey,他在这个article中描述了另一种使用OpenFace和dlib的方法,其中CNN从5张人的图像中计算出128个测量值。(向下滚动到Step2) -哪种方法更好?我在"face recognition“库中找不到这个功能。

EN

回答 2

Stack Overflow用户

发布于 2017-06-21 04:20:27

我正在做一个和你类似的项目。您必须使用库.Choose训练您的图像数据集,以训练一组图像并将其放置在文件夹中。一定要在人名后面贴上标签。现在选择一组不属于训练图像的测试图像(未知图像),并将其保存在文件夹中。

然后,您只需运行命令face_recognition,传入包含已知人员的文件夹和包含未知人员的文件夹(或单个图像),它就会告诉您每个图像中的人是谁:

代码语言:javascript
复制
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/

/unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person

对于每个面,输出中都有一行。数据以逗号分隔,其中包含文件名和找到的人员的姓名。

票数 0
EN

Stack Overflow用户

发布于 2020-09-07 16:24:01

如果在deepface中使用dlib,则不必构建for循环来完成此任务。

代码语言:javascript
复制
#!pip install deepface
from deepface import DeepFace
df = DeepFace.find("obama.jpg", db_path = "C:/my_db"
   , model_name = 'dlib', detector_backend = 'dlib')
print(df.head())

它将在my_db文件夹中查找img1.jpg的身份。

您也可以对图片对进行人脸验证。

代码语言:javascript
复制
from deepface import DeepFace
obj = DeepFace.verify("obama.jpg", "unknown.jpg"
   , model_name = 'dlib', detector_backend = 'dlib')
print(obj["verified"])

此外,你也可以采用VGG-Face,Google Facenet,OpenFace,Facebook DeepFace,DeepID来代替Dlib。

代码语言:javascript
复制
models = ["VGG-Face", "Facenet", "OpenFace", "DeepFace", "DeepID", "Dlib"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44662149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档