gpt4 book ai didi

deep-learning - YOLO中的 anchor 框: How are they decided

转载 作者:行者123 更新时间:2023-12-04 20:28:21 24 4
gpt4 key购买 nike

我已经看过一些YOLO教程,但是我发现很难确定要分割图像的每个单元格的“ anchor ”框是否是预先确定的。在我经历的其中一个指南中,该图像被分为 13x13 单元格,并指出每个单元格预测 5 anchor 框(比它大,好,这是我的第一个问题,因为它还说它将首先检测到什么对象是出现在小盒子中,然后再进行盒子预测)。

小单元格如何预测比它大的对象的 anchor 框。也有人说,每个单元格在预测其 anchor 框之前都会进行分类,如果只有一小部分对象落入该单元格内,小单元格如何在不查询相邻单元格的情况下对其中的正确对象进行分类
E.g.说, 13 细胞之一仅包含一个穿着T恤衫的男人的白色口袋部分,该细胞如何正确分类一个男人的存在而又不与周围的细胞联系在一起?使用普通的CNN尝试定位单个对象时,我知道边界框预测与整个图像有关,因此至少我可以说,网络在决定框应位于的位置之前先对图像上各处发生的事情有所了解。

PS:我目前对YOLO的工作方式的看法是,在为每个单元分配最高分数的框之前,在每个末端都给每个单元分配了一个带有分类器的预定 anchor 框,但是我确定它不会添加在某处。

UPDATE: Made a mistake with this question, it should have been about how regular bounding boxes were decided rather than anchor/prior boxes. So I am marking @craq's answer as correct because that's how anchor boxes are decided according to the YOLO v2 paper

最佳答案

我认为这里有两个问题。首先,标题中的那个,询问 anchor 从何而来。其次,如何将 anchor 分配给对象。我会尽力回答这两个问题。

  • anchor 由a k-means procedure确定,查看数据集中的所有边界框。如果您正在看车辆,那么从侧面看的那些车辆的纵横比大约为2:1(宽度= 2 *高度)。从前面看的那些大约是1:1的正方形。如果您的数据集包含人物,则长宽比可能为1:3。前景对象将很大,背景对象将很小。 k-means例程将找出代表您的数据集的 anchor 的选择。对于yolov3,k = 5,但是每个YOLO版本的 anchor 数量都不同。

  • 拥有代表您的数据集的 anchor 很有用,因为YOLO学习了如何对 anchor 框进行一些小的调整,以便为您的对象创建一个准确的边界框。 YOLO可以比大调整更好/更轻松地学习小调整。
  • 分配问题比较棘手。据我了解,培训过程的一部分是让YOLO学习针对哪个对象使用哪些 anchor 。因此,“分配”并非像匈牙利算法那样具有确定性。因此,通常,多个 anchor 将检测到每个对象,之后您需要进行非最大抑制,以选择“最佳”对象(即最高置信度)。

  • 在接触 anchor 之前,需要了解以下几点:
  • anchor 可以是任意大小,因此它们可以扩展到以下范围之外
    13x13网格单元。它们必须是为了检测大
    对象。
  • anchor 仅进入YOLO的最后一层。 YOLO的神经网络做出13x13x5 = 845的预测(假设有13x13的网格和5个 anchor )。预测被解释为相对于 anchor 的偏移量,从该偏移量可以计算出边界框。 (预测还包括置信度/客观性得分和类别标签。)
  • YOLO的损失函数将地面真相中的每个对象与一个 anchor 进行比较。与地面真实情况相比,它选择IoU最高的 anchor (在任何偏移之前)。然后,将预测作为偏移量添加到 anchor 。所有其他 anchor 都指定为背景。
  • 如果已分配给对象的 anchor 具有较高的IoU,则其损失很小。未分配给对象的 anchor 应该通过将置信度设置为接近零来预测背景。最终损失函数是所有 anchor 的组合。由于YOLO试图最大程度地降低其总体损失函数,因此训练最接近地面真相的 anchor 会识别该对象,而其他 anchor 会被训练以忽略该对象。

  • 以下页面帮助我了解了YOLO的 anchor :

    https://medium.com/@vivek.yadav/part-1-generating-anchor-boxes-for-yolo-like-network-for-vehicle-detection-using-kitti-dataset-b2fe033e5807

    https://github.com/pjreddie/darknet/issues/568

    关于deep-learning - YOLO中的 anchor 框: How are they decided,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52710248/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com