yolov5中的初始anchor值以及根据数据集中的目标进行聚类等计算得到自适应anchor

本文详细介绍了YOLOv5中锚框(Anchor)的设定,包括在不同特征图上的初始化配置,并指出在COCO数据集上的默认设置。此外,还阐述了如何自适应地计算Anchor的流程,包括数据预处理、聚类和遗传算法优化等步骤。同时提到,YOLOv5也可不预设Anchor,而是通过训练自动确定。
摘要由CSDN通过智能技术生成

一、yolov5中的初始Anchor设定

在YOLOV5算法之中,针对不同的数据集,一般会预先设置固定的Anchor;

首先,在网络训练中,网络在初始锚框的基础上输出预测框,进而和Ground Truth进行比对,计算两者差距,再反向更新,迭代网络参数

可以看出Anchor也是比较重要的一部分,比如Yolov5在Coco数据集上初始设定的锚框:
在这里插入图片描述
其中:

第1行是在最小的特征图上的锚框;
第2行是在中间的特征图上的锚框;
第3行是在最大的特征图上的锚框;

注:阅读其它人的博客发现,原来yolov5也可以不预设anchor,也可以直接写个3,此时yolov5就会自动按照训练集聚类anchor,如下:

# Parameters
nc: 80  # number of classes
depth_multiple: 1.0  # model depth multiple
width_multiple: 1.0  # layer channel multiple
anchors: 3  # AutoAnchor evolves 3 anchors per P output layer

二、自适应计算Anchor的流程

  1. 载入数据集,得到数据集中所有数据的wh;
  2. 将每张图片中wh的最大值等比例缩放到指定大小img_size,较小边也相应缩放;
  3. 将bboxes从相对坐标改成绝对坐标(乘以缩放后的wh);
  4. 筛选bboxes,保留wh都大于等于两个像素的bboxes;
  5. 使用k-means聚类得到n个anchors(掉k-means包 涉及一个白化操作);
  6. 使用遗传算法随机对anchors的wh进行变异,如果变异后效果变得更好(使用anchor_fitness方法计算得到的fitness(适应度)进行评估)就将变异后的结果赋值给anchors,如果变异后效果变差就跳过,默认变异1000次;

三、本文章来源

  1. 知乎集智书童YOLOv5-Lite 详解教程 | 嚼碎所有原理和思想、训练自己数据集、TensorRT部署落地应有尽有
  2. 知乎赵金健
    Yolov5-模型配置文件(yolov5l.yaml)讲解
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值