当前位置: 首页 > 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.lryc.cn/news/431708.html

相关文章:

  • 分类任务实现模型集成代码模版
  • 从Milvus迁移DashVector
  • 彻底改变计算机视觉的 Vision Transformer (ViT) 综合指南(视觉转换器终极指南)
  • vue3 v-bind=“$attrs“ 的一些理解,透传 Attributes相关说明及事例说明
  • 鸿蒙开发基础知识-页面布局【第四篇】
  • 用CSS实现前端响应式布局
  • 【docker】docker启动sqlserver
  • Python爬虫01
  • 关于vue项目启动报错Error: error:0308010C:digital envelope routines::unsupported
  • 随笔1:数学建模与数值计算
  • SDN架构详解
  • platform框架
  • 零成本搞定静态博客——十分钟安装hugo与主题
  • windows C++ 并行编程-转换使用取消的 OpenMP 循环以使用并发运行时
  • 经验笔记:跨站脚本攻击(Cross-Site Scripting,简称XSS)
  • 演示:基于WPF的DrawingVisual和谷歌地图瓦片开发的地图(完全独立不依赖第三方库)
  • 【C++】static作用总结
  • 视频提取字幕的软件有哪些?高效转录用这些
  • (4)SVG-path中的椭圆弧A(绝对)或a(相对)
  • docker国内镜像源报错解决方案
  • 《C++进阶之路:探寻预处理宏的替代方案》
  • 【综合案例】使用鸿蒙编写掘金评论列表案例
  • 【springboot】使用缓存
  • <Linux> 基础IO
  • OpenFeign的使用(一)
  • 【Python报错已解决】`AttributeError: move_to requires a WebElement`
  • 数据结构(邓俊辉)学习笔记】排序 2——快速排序:性能分析
  • 在postman中使用javascript脚本生成sign签名
  • 设计模式—2—单例模式
  • 服务器数据恢复—磁盘坏扇区导致raid6阵列崩溃的数据恢复案例