如何在yolov2-tiny.cfg中选择锚值?

时间:2019-03-21 06:43:32

标签: conv-neural-network object-detection yolo

yolov2-tiny.cfg 中,锚定为:-

anchors = 0.57273, 0.677385, 1.87446, 2.06253, 3.33843, 5.47434, 7.88282, 3.52778, 9.77052, 9.16828

这些是什么值?是高度,宽度还是其他? 有人可以向我解释一下。

1 个答案:

答案 0 :(得分:0)

这些数字是宽度和高度。如果将这些数字分组,它将形成宽度和高度的集合,像这样

(0.57273, 0.677385), (1.87446, 2.06253), (3.33843, 5.47434), (7.88282, 3.52778), (9.77052, 9.16828)

如您所见,有5个括号,表示每个网格有 5个不同的锚框。例如,Yolo将输入图像划分为13x13网格,因此每个网格将具有5个通讯锚框。这些值仅仅是初始值或由作者设置的默认值,随后框将被调整大小到最接近的预测对象。因此,网络会将最近的锚框的大小调整为预测对象的大小。

为什么5?对于Yolo V2,它具有5个锚定框,而Yolo V3有9个锚定框,用于更高的IOU。

如何为您的自定义数据集生成锚定框?您必须使用K-Means聚类来生成锚点。例如,使用Alexey的仓库:https://github.com/AlexeyAB/darknet/blob/master/scripts/gen_anchors.py

有关更多详细讨论,请参见github链接:https://github.com/pjreddie/darknet/issues/568
有关锚框和K均值聚类的更多详细信息,请跳至第3节https://medium.com/@vivek.yadav/part-1-generating-anchor-boxes-for-yolo-like-network-for-vehicle-detection-using-kitti-dataset-b2fe033e5807