对于像 yolo 或 R-CNN 这样的算法,他们使用 anchor 框的概念来预测对象。 https://pjreddie.com/darknet/yolo/

anchor 框是在特定数据集上训练的,COCO 数据集的一个是:

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

但是,我不明白如何解释这些 anchor 框?一对值 (0.57273, 0.677385) 是什么意思?

最佳答案

在最初的 YOLO 或 YOLOv1 中,预测是在没有对目标物体的形状做任何假设的情况下完成的。假设网络试图检测人类。我们知道,一般来说,人类适合放在一个垂直的矩形盒子里,而不是方形盒子里。然而,最初的 YOLO 试图以相等的概率检测矩形和方形框的人类。

但这效率不高,可能会降低预测速度。
所以在 YOLOv2 中,我们对物体的形状做了一些假设。这些是 anchor 盒。通常我们将 anchor 框作为一些数字的列表提供给网络,这是一系列宽度和高度对:

anchor = [0.57273, 0.677385, 1.87446, 2.06253, 3.33843, 5.47434, 7.88282, 3.52778, 9.77052, 9.16828]

在上面的例子中,(0.57273, 0.677385) 表示单个 anchor 框,其中两个元素分别是宽度和高度。也就是说,这个列表定义了 5 个不同的 anchor 框。请注意,这些值与输出大小有关。例如,YOLOv2 输出 13x13 的特征垫,您可以通过将 13 乘以 anchor 的值来获得绝对值。

使用 anchor 框使预测更快一点。但准确率可能会降低。 The paper of YOLOv2 说:

关于computer-vision - 如何解释 Yolo 或 R-CNN 中的 anchor 框?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49403497/

10-12 22:07