• YOLO先验框的设计理解


    YOLO先验框的设计理解

    首先,YOLOV5的输入shape为[640, 640],一张图片的大小。当我们通过backbone之后得到的tensor为
    [batch_size, 3, 20, 20, 15],其中[20, 20]是一个feature_map的大小,也就是[640, 640]缩小了32倍,一个特征点实际的感受野是原始图片的32*32。

    其次,3为先验框的数量,也就说[20, 20]每个特征点,围绕着这个特征点都有3个先验框。

    最后15是当然就是channel数量了,每一个channel都有不同的信息:
    1、channel_1,[20, 20]一共400个值,每个值代表对应位置特征点的x轴信息;
    2、channel_2,[20, 20]一共400个值,对应着y轴的信息。
    3、channel_3,x轴方向缩放倍数;
    4、channel_4,y轴方向缩放倍数;
    5、channel_5,[20, 20]对应位置是否有物体,比如[2, 3],第二行第三列这个特征点如果值为1,也就是在feature_map的第二行,第三列判断有一个物体,折回到原始图片就是[64, 96]这个点的周围有一个目标,其目标的大小还需要由channel_3和_4的锚框缩放倍数来确定。

    也就说一个epoch中的一张图片,每个像素点都要计算3个先验框,来小幅度修改先验框的大小,和x、y轴方向的小浮动移动,比如特征点[1, 1]这个位置会移动到[1.5, 1.5],他不会移动到[2, 2]这个特征点。也就说每个特征点的管辖范围都是半个特征点,对应原始图片的位置就是32+16这个位置。

  • 相关阅读:
    C++零基础教程(C++中的类1)
    【开学季】再见大一,你好大二 | 完成自己的未完成
    JDK、JRE、JVM 三者关系
    swift加载h5页面空白
    webrtc优势与模块拆分
    [附源码]计算机毕业设计springboot咖啡销售平台
    ShardingSphere-Proxy基本使用
    rust - 理解 ToOwned trait
    Android 源码解析: SharedPreferences的解析
    动态规划——63. 不同路径 II
  • 原文地址:https://blog.csdn.net/lipengyu1363658871/article/details/126834094