1

我正在使用 dlib 获取面部地标。我有超过 1000 张面孔的数据集。我想将这 1000 张图像与一些未知图像进行比较。为了减少数据库搜索时间,我想根据 dlib 的 68 个面部特征将这 1000 张图像聚类到 10 个不同的聚类中。目前,我正在根据不同人脸图像的下巴到鼻子的距离进行聚类。

问题:同一个人的每张图像都会生成不同的面部标志,这会影响从下巴到鼻尖的距离。请找到csv的截图 在此处输入图像描述

  1. 第一列 - 人脸图像名称(同一人脸,大约 25 个样本)
  2. 第 2、3 列 - Kmeans 聚类标签和第 4 列的质心
  3. 4th - 脸下巴到鼻尖的欧式距离
  4. 第 5 - 68 个长 dlib 面部标志,分别为下巴、眼睛......

问题:

  1. 根据面部标志对图像进行聚类是正确的方法吗?如果不是,那么对人脸图像/人脸分组进行聚类以使数据库搜索对更多图像更有效的最佳方法是什么?

我尝试过性别分类,但准确度不好。尝试使用面部颜色/种族分类,但这限制了我的范围。例如,只有亚洲/欧洲面孔会让我再次搜索所有数据库

我无法确定哪个是集群的正确因素。非常感谢任何对文章或想法的引用。

4

1 回答 1

1

以我在问题中指定的方式进行聚类对于面部图像是不正确的。最好使用卷积神经网络来训练特征,而不是手动计算与面部地标的距离。

稍后在这些训练的特征上,我们可以应用任何流行的聚类算法,如下所示:https ://arxiv.org/pdf/1604.00989.pdf 或 @sascha 建议的,Approximate Nearest Neighbor 或 @Davis King 建议的 Chinese Whispers 取决于根据您的需要。

正如@sascha 所建议的那样,有许多深度学习库(如 openface)在 torche/tensorflow 之上执行此操作。

于 2018-02-03T16:48:53.523 回答