当前位置: 首页 > news >正文

利用KMeans重新计算自己数据集的anchor

YOLOv5YOLOv7中,anchors(锚框)是预设的一组不同大小、不同长宽比的边界框,它们用于在图像中的每个网格单元上进行偏移和缩放,以生成目标的候选框。这些anchors的设定对于提高目标检测的效率和准确性至关重要。

并且预先设定的anchors是根据COCO数据集中目标的大小和形状分布来设定的,能够覆盖大多数目标可能的尺寸和形状。

但是在训练我们自己的数据集时,若数据集内的目标与COCO数据集内的目标尺寸分别差异较大,长宽比较大时,根据自己的数据集聚类anchor可能会更直接有效。

聚类求解方法

YOLOv7为例,YOLOv7中已经实现了相关聚类算法来从数据集中自动学习anchors。是通过迭代优化,找到一组能够最好地代表数据集中目标尺寸和形状的anchors

YOLOv7项目的根目录新建calc_anchor.py,将下方代码复制其中:

import utils.autoanchor as autoAC# 对数据集重新计算 anchors
new_anchors = autoAC.kmean_anchors('D:\\yolov7-main\\data\\bubbleplume.yaml', 9, 320, 8.0, 1000, True)
print(new_anchors)
参数:path:数据集 *.yaml,或已加载数据集的路径n:锚点数量img_size:训练时使用的图像大小thr:用于训练的锚标签 临界值超参数 hyp['anchor_t'],默认值=4.0gen:使用遗传算法演化锚点的代数verbose:是否打印所有结果返回:k:均值进化锚点

运行程序后便输出自己数据集的9对anchors

在这里插入图片描述


http://www.mrgr.cn/news/21107.html

相关文章:

  • C/C++的自由落体运动
  • 软件测试学习笔记丨Pytest的使用
  • Qt/C++开源项目 TCP客户端调试助手(源码分享+发布链接下载)
  • GIT:git add命令指定文件夹
  • Linux多线程——互斥锁的封装与生产消费模型的实现
  • MySQL你必须知道的事
  • (感知机-Perceptron)—有监督学习方法、非概率模型、判别模型、线性模型、参数化模型、批量学习、核方法
  • 解决安装mpi4py失败的问题
  • python恶搞无限弹窗脚本
  • QT核心内容(9.6)
  • 【2024高教社杯全国大学生数学建模竞赛】B题完整解析(含论文、代码分享)
  • 代码随想录算法训练营第38天 | LeetCode322.零钱兑换、LeetCode279.完全平方数、LeetCode139.单词拆分、56. 携带矿石资源
  • Android12 MTK 二级菜单拖拽图标到主屏时出现图标重复
  • s let 和const的区别 ,它们可以变量提升吗
  • python转换并提取pdf文件中的图片
  • SpringBoot整合Minio及阿里云OSS(配置文件无缝切换)
  • Spring事务
  • 【Qt】事件的处理
  • pytorch torch.einsum函数介绍
  • RAML学习