使用k均值聚类的颜色分类



我正试图通过球衣颜色来区分一些球员。我有一个模型,检测和放置边界框的球员。现在我想根据球队的球衣颜色来区分他们。我做了一些研究,发现k均值聚类可以用于此目的。然而,它主要用于查找图像中的主色。我的困惑是,我是为每个边界框执行聚类,找到主色并进行比较,还是将所有边界框一起执行聚类,然后执行分类步骤?

def draw_bboxes(image, detected):
for box, label, score in zip(detected['boxes'], detected['labels'], detected['scores']):
if label == PLAYER:
x1, y1, x2, y2 = box
detect_team(image, box) #how to implement this with k-means clustering?

这里似乎已经按照您想要的方式演示了您想要的内容。要通过K-Means获得主色,您需要执行以下步骤

  1. 分离图像的R、G和B颜色,这样您就有了3个颜色列表
  2. 缩放颜色值
  3. 应用K-Means聚类保持您选择的聚类计数,例如2
  4. 聚类后得到聚类中心,它们是你的主色或至少是主色的平均值
  5. 根据颜色决定团队

最新更新