使用K均值聚类生成锚框

时间:2019-06-04 10:52:05

标签: computer-vision k-means object-detection bounding-box yolo

我试图了解YOLO的工作原理以及它如何检测图像中的物体。我的问题是,k均值聚类在检测对象周围的边界框时起什么作用?谢谢。

2 个答案:

答案 0 :(得分:2)

通常,对象的边界框由以下形式的元组给出 (x0,y0,x1,y1),其中x0,y0是左下角的坐标,x1,y1是右上角的坐标。

需要从这些坐标中提取宽度和高度,并针对图像的宽度和高度标准化数据。

K均值指标

  1. 欧几里德距离
  2. IoU(Jaccard索引)

IoU比以前更好

Jaccard索引=(选定框与簇头框之间的交集)/(选定框与簇头框之间的联合)

在初始化时,我们可以选择k个随机框作为簇头。根据IoU值>阈值将锚定框分配给各个群集,并计算群集的平均IoU。

可以重复此过程,直到收敛为止。

答案 1 :(得分:1)

K均值聚类算法是数据科学中非常著名的算法。该算法旨在将n个观测划分为k个簇。主要包括:

  1. 初始化:K表示(即质心)是随机生成的。
  2. 分配:通过将每个观察值与最近的质心相关联来形成聚类。

  3. 更新聚类:新创建的聚类的质心变为均值。

分配和更新将反复进行,直到收敛为止。 最终结果是最小化了点及其质心之间的平方误差总和。

编辑:

  

为什么用K表示

    与其他无监督学习算法相比,k-means在计算上更快,更高效。不要忘记时间复杂度是线性的。
  1. 它产生的聚类要比层次聚类高。群集数量更多有助于获得更准确的最终结果。
  2. 重新计算质心时,实例可以更改群集(移至另一个群集)。
  3. 即使您的某些假设被打破,效果也很好。
  

确定锚框的真正作用

  1. 它将为表示形状,位置,大小等的每个预测变量创建一个锚框(即k均值的簇)。
  2. 对于每个锚点框,计算哪个对象的边界框具有最高重叠率除以非重叠率。这称为“联合路口或IOU”。
  3. 如果最高IOU大于50%(可以自定义),请告诉锚框它应该检测到具有最高IOU的对象。
  4. 否则,如果IOU大于40%,请告诉神经网络真实的检测是模棱两可的,不要从该示例中学习。
  5. 如果最高IOU小于40%,则应预测没有对象。

谢谢!