gpt4 book ai didi

python - 为什么人脸聚类算法不使用距离矩阵而不是聚类算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:51 24 4
gpt4 key购买 nike

我正在阅读 dlib's face clustering code并注意到这个过程是这样的:

  1. 使用经过训练的网络将面孔转换为矢量
  2. 使用中文耳语聚类算法根据距离计算分组

在尝试对大量(>10,000 张)图像进行聚类时,Chinese whisper clustering 可能需要相当长的时间。

在此pyimagesearch文章作者使用另一种聚类算法 DBSCAN 按人物对大量图像进行分组。

既然神经网络生成的向量可以用来计算两张人脸的相似度,那么只计算一个euclidean distance matrix不是更好吗? , 然后搜索所有满足置信度阈值的值(例如 x < 0.3 表示 70% 的置信度)?

当您只需将每张脸与其他每张脸进行比较以确定哪些是同一个人时,为什么还要使用聚类算法呢? DBSCAN 和 chinese whisper clustering 都比计算距离矩阵花费更长的时间。对于我的 30,000 张图像数据集,时间是:

C-耳语 - 5 分钟

距离矩阵 + 搜索 - 10-20 秒

最佳答案

DBSCAN 实际上只比计算距离矩阵稍微长一点(如果正确实现,99% 的计算是距离计算)并且使用索引有时会快得多,因为如果索引可以修剪,它不需要每个成对的距离计算。

但是您不能只从距离矩阵中“读出”簇。那里的数据可能是矛盾的:人脸检测器可能认为 A 和 B 相似,B 和 C 相似,但 A 和 C 不相似!那你怎么办呢?聚类算法试图准确地解决这种情况。例如,单链接和更小的 DBSCAN 扩展将使 A 和 C 成为同一集群,而完全链接将决定 AB 或 BC。

关于python - 为什么人脸聚类算法不使用距离矩阵而不是聚类算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55465574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com