13、YOLOv8教程--- 使用KITTI数据集为Yolo样式的车辆检测生成锚框 第二部分。

3. 使用K均值聚类生成锚框

有许多计算检测任务边界框的方法。一种方法是直接预测边界框的值,然而这种方法容易出现错误,因为它倾向于支持具有大尺寸的边界框。此外,训练过程不稳定,因为要预测的值的范围可以变化很大。另一种方法是使用称为锚框或先验的模板边界框,然后在这些锚框之上进行修正,以匹配实际边界框的尺寸。在其他模型中,如单发检测(SSD),在一组固定的手动选择的大小和纵横比的边界框上进行修正。例如,在SSD中,每个单元格预测9个锚/先验框,基于手动选择的纵横比和大小。然而,这并不保证锚框是边界框的良好候选。在YOLO中,不使用锚框,而是直接预测边界框的位置和尺寸。在YOLOv2中,第一步是计算良好的候选锚框。这是通过使用K均值聚类来实现的。然而,使用直接的欧氏距离度量K均值会导致大型边界框的错误,但不会导致小型边界框的错误。因此,在YOLOv2中,使用交并比(IOU)作为距离度量。IOU计算是基于所有边界框都位于一个点的假设进行的,即只使用宽度和高度作为特征。下图显示了高度和宽度相互绘制。固定的斜率表明大多数边界框具有特定的预定义纵横比和大小。这并不令人意外,因为人和车辆预计具有一定的固定尺寸。

接下来,我使用K均值聚类来计算聚类中心(质心)。由于不清楚要使用多少个质心,我计算了不同数量的聚类,并计算了边界框与单个锚框之间最大IOU的均值。下图显示了kitti数据集的IOU与聚类数之间的数据。

猜你喜欢

转载自blog.csdn.net/Knowledgebase/article/details/133488444