Artificial intelligence 如何处理多张照片中同一个人的面部描述符?

Artificial intelligence 如何处理多张照片中同一个人的面部描述符?,artificial-intelligence,face-recognition,dlib,Artificial Intelligence,Face Recognition,Dlib,使用神经网络进行人脸识别,该网络将生成一个“人脸描述符”,当然,这取决于网络,通常是一个描述人脸的128D向量(“通常,如果两个人脸描述符向量之间的欧几里德数小于0.6,则它们来自同一个人,否则它们来自不同的人。”) 我正在尝试开发一个具有人脸识别功能的照片应用程序,尽管我不知道如何存储一个人的人脸描述符。问题是不是如何序列化它们,但是当同一个人有数百张不同的照片,但每一张都产生不同的面部描述(因为角度、照明等不同),如何选择存储哪一张?据推测,随着越来越多的照片被处理,应该有一种方法来“改进”

使用神经网络进行人脸识别,该网络将生成一个“人脸描述符”,当然,这取决于网络,通常是一个描述人脸的128D向量(“通常,如果两个人脸描述符向量之间的欧几里德数小于0.6,则它们来自同一个人,否则它们来自不同的人。”)

我正在尝试开发一个具有人脸识别功能的照片应用程序,尽管我不知道如何存储一个人的人脸描述符。问题是不是如何序列化它们,但是当同一个人有数百张不同的照片,但每一张都产生不同的面部描述(因为角度、照明等不同),如何选择存储哪一张?据推测,随着越来越多的照片被处理,应该有一种方法来“改进”描述符,而无需对神经网络进行训练


谢谢

我问Python库的作者Adam Geitgey,他回答说:

有几种方法可以实现这一点:

  • 你可以只为每个人保留一张脸的编码。但是,人们往往会随着时间的推移而改变,等等。因此,对于大型图像集,这可能无法提供最佳的准确性

  • 您可以为每个人使用所有人脸编码,并训练一个分类器,用于确定新人脸编码中的人物。您可以使用SVM分类器,甚至可以使用简单的线性分类器。这是使用的策略。缺点是,当用户添加和验证新数据时,您必须反复训练新的分类器

  • 一个更聪明的方法是使用聚类算法,如。其思想是,每个人脸编码都是图形数据结构中的一个节点。聚类算法自动对节点进行排序,以便最近距离的节点得到聚类,并且可以假设是同一个人。有一个(用C++编写)演示了这一点