在YOLOv2论文中,作者有对Dimension Cluster做一个介绍,这个cluster的目的就是寻找出anchor的先验(简称为先验框)。
什么是先验框呢,简单来说,在YOLOv1中,作者遇到了一个问题,虽然我们通过实验知道要选两个boxes是最优的,但是如何这两个boxes的尺寸如何决定呢?网络自身可以学着不断调节box的大小,但是我们能够提前给定一个/多个尺寸作为备选不是更好吗?所以作者就决定利用 k-means 聚类方法在 training set bounding boxes上来寻找先验框(框的尺寸)。
标准的k-means方法用的是欧氏距离,但是这样会导致 larger boxes generate more error than smaller boxes. 我们想要得到的先验框,是能够带领我们得到更高的IOU的,如果用欧氏距离来衡量,可能会导致“大框优势”。所以作者使用了
来作为k-means中“距离”的判定。
我们期待距离越小越好(IOU越大越好),所以距离判定时候用 1 - IOU
讨论内容见(需要翻墙):https://groups.google.com/forum/#!topic/darknet/qrcGefJ6d5g
其中,