我正在使用 dlib 获取面部标志。我有超过 1000 张面孔的数据集。我想将这 1000 张图像与一些未知图像进行比较。为了减少数据库搜索时间,我想根据 dlib 的 68 个面部标志特征将这 1000 个图像聚类到 10 个不同的簇中。目前,我正在根据不同人脸图像的下巴到鼻子的距离进行聚类。
问题:同一个人的每张图像都会生成不同的面部标志,这会影响从下巴到鼻尖的距离计算。请找到csv的截图
问题:
我尝试过性别分类,但准确性不好。尝试过面部颜色/种族分类,但这限制了我的范围。例如,只有亚洲/欧洲面孔才会再次让我搜索所有数据库
我无法确定哪个是正确的聚类因素。非常感谢任何对文章或想法的引用。
我所指定的聚类方式对于面部图像来说是不正确的。最好使用卷积神经网络来训练特征,而不是手动计算距面部标志的距离。
稍后,在这些经过训练的特征上,我们可以应用任何流行的聚类算法,如下所示:https://arxiv.org/pdf/1604.00989.pdf 或如 @sascha 建议的“近似最近邻”或如 @Davis King 建议的“中文耳语”,具体取决于您的需求。
正如 @sascha 所建议的,有许多深度学习库(例如 openface)可以在 torche/tensorflow 之上执行此操作。
如果您正在对无监督数据进行聚类,请使用face_recognition。 Dlib 或面部地标根据面部表情而不是面部特征对图像进行聚类。