如何根据面部特征点对人脸进行聚类?

问题描述 投票:0回答:2

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

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

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

问题:

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

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

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

image-processing cluster-analysis dlib biometrics facial-identification
2个回答
1
投票

我所指定的聚类方式对于面部图像来说是不正确的。最好使用卷积神经网络来训练特征,而不是手动计算距面部标志的距离。

稍后,在这些经过训练的特征上,我们可以应用任何流行的聚类算法,如下所示:https://arxiv.org/pdf/1604.00989.pdf 或如 @sascha 建议的“近似最近邻”或如 @Davis King 建议的“中文耳语”,具体取决于您的需求。

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


0
投票

如果您正在对无监督数据进行聚类,请使用face_recognition。 Dlib 或面部地标根据面部表情而不是面部特征对图像进行聚类。

© www.soinside.com 2019 - 2024. All rights reserved.