(笔记)yolov5自适应anchors

article/2025/11/5 13:53:45
训练一开始会先计算Best Possible Recall (BPR),当BPR < 0.98时,再在kmean_anchors函数中进行k 均值和遗传学习算法更新anchors。

情况一:

在进行yolov5训练的时候,会输出:

Analyzing anchors... Best Possible Recall (BPR) = 0.8838. Attempting to generate improved anchors, please wait...
WARNING: Extremely small objects found. 2274 of 14719 labels are < 4 pixels in width or height.
Running kmeans for 9 anchors on 14700 points...
thr=0.25: 0.9927 best possible recall, 5.10 anchors past thr
n=9, img_size=480, metric_all=0.348/0.766-mean/best, past_thr=0.515-mean: 10,3,  18,6,  24,12,  36,16,  42,28,  62,39,  77,68,  110,49,  121,100
Evolving anchors with Genetic Algorithm: fitness = 0.7855: 100%|████████████| 1000/1000 [00:02<00:00, 484.50it/s]
thr=0.25: 0.9972 best possible recall, 5.23 anchors past thr
n=9, img_size=480, metric_all=0.358/0.785-mean/best, past_thr=0.524-mean: 11,2,  16,5,  22,8,  28,12,  36,18,  44,28,  62,39,  79,64,  117,96
New anchors saved to model. Update model *.yaml to use these anchors in the future.

此时新的anchors就已经生成,保存到model类对象的属性里面了。check_anchors函数里面有说。

情况二:

这种情况时,说明默认的预设anchors很匹配你的训练数据,anchors就不会在更改,就使用预设的。

 

函数在train.py的line206 check_anchors函数。check_anchors函数在utils/general.py。

Yolov5原本在模型配置文件(如yolov5l.py)中有默认的anchors,这些anchors是基于COCO数据集在640×640图像大小下锚定框的尺寸。Yolov5会自动按照新的数据集的labels自动学习anchors的尺寸。采用 k 均值和遗传学习算法对自定义数据集进行分析,获得适合自定义数据集中对象边界框预测的预设锚定框。

一开始会先计算Best Possible Recall (BPR)

再在kmean_anchors函数中进行k 均值和遗传学习算法更新anchors。


————————————————
版权声明:本文为CSDN博主「zicai_jiayou」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zicai_jiayou/article/details/109626712


http://chatgpt.dhexx.cn/article/sYjuP3MP.shtml

相关文章

Roson讲Qt#16 QML中的anchors(锚)

QML中有一个数据类型叫Item&#xff0c;Item里面有很多属性&#xff0c;其中一个就是anchors. anchors翻译过来叫“锚”&#xff0c;锚可能不好理解&#xff0c;在我看来&#xff0c;可以把anchors当成是一个控件浓缩而成的一个点&#xff0c;可以通过设置点的上下左右等属性来…

Qml基于锚(anchors)的布局

锚(anchors)布局&#xff0c;每一个项目都可以认为有一组无形的锚线 left,horizontalCenter,right,top,verticalCenter,baseline和bottom. 如上图&#xff1a;图中没有显示baseline&#xff0c;它是一条假想的线&#xff0c;文本坐落在这条线上。对于没有文本的项目它与top相同…

RPN之生成anchors

看不懂anchor生成方法&#xff0c;就看不懂参数。 faster_rcnn的anchors生成 在这里我就不看faster_rcnn的anchors生成源代码了&#xff0c;我们用numpy自己去实现&#xff0c;在128*128大小的图片中生成anchors. 开始上代码 import numpy as np import matplotlib.pyplot …

Qml anchors锚点布局

关于qml的锚点布局的一些分享&#xff0c;并不能算是教学之类的。 锚点布局会自动设置宽度高度&#xff0c;并且优先级比 width height更高 import QtQuick 2.13 import QtQuick.Window 2.12 import QtQml 2.13Window {width: 640height: 480visible: truetitle: qsTr("a…

yolo_anchors.txt超参数值设置

keras-yolov3在训练自定义图片集之前&#xff0c;设置合理的yolo_anchors.txt值&#xff0c;有利于模型训练的收敛&#xff0c;一般都带有默认的参数如下&#xff1a; 在实际项目中&#xff0c;yolo_anchors的值可以根据kmeans.py计算获取&#xff0c;通过聚类得到最佳anchors数…

QML之anchors锚布局

QML的布局方式一般采用两种&#xff0c;一种就是直接设置&#xff0c;X与Y坐标的值。一种是采用相对位置布局&#xff0c;anchors锚布局。使用锚布局的能够使界面更紧凑&#xff0c;更有整体化。我个人相对比较喜欢使用锚布局&#xff0c;选取一个最合适的参考点&#xff0c;其…

YOLOV5源代码学习之check_anchors()函数

该函数主要在train.py中调用 为了方便直观的阅读代码&#xff0c;对代码中的变量值进行了输出 def check_anchors(dataset, model, thr4.0, imgsz640):# Check anchor fit to data, recompute if necessaryprefix colorstr(autoanchor: )print(f\n{prefix}Analyzing anchors.…

QML入门教程(3): anchors的用法

QML的布局方法是anchors,锚。 例如界面上四个按钮,可以用绝对坐标 (x, y) 设置他们的位置, 代码如下: import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.5Window {visible: truewidth: 320height: 480title: qsTr("Hello World")co…

目标检测2——借Detectron2源码理解Anchors与RPN

文章目录 1.Regionn Proposal Network背景2.Regionn Proposal Network的结构3.Anchors4.Regionn Proposal Network的训练参考资料 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; 1.Regionn Proposal Network背景 RPN&#xff0c;Region …

QML基础:锚anchors

正文 除了传统的Grid、Row和Column外,Qt Quick还提供了一种使用锚点的方法来布局。可以将每个元素视为具有7条不可见的“锚定线”的集合:left、horizontalCenter、right、top、verticalCenter、baseline和bottom。 baseline(上图未展示)对应于文本所在的虚线。对于没有文…

细说目标检测中的Anchors

本文转载自AI公园。 作者&#xff1a;Raghul Asokan 编译&#xff1a;ronghuaiyang 导读 给大家再次解释一下Anchors在物体检测中的作用。 今天&#xff0c;我将讨论在物体检测器中引入的一个优雅的概念 —— Anchors&#xff0c;它是如何帮助检测图像中的物体&#xff0c;以及…

anchors布局

anchors布局 import QtQuick 2.2 import QtQuick.Window 2.2 Window {visible: truewidth: 640height: 480title: qsTr("Hello World")Rectangle {width: 300;height: 200;color: "blue";Rectangle {id: rectl;anchors.left: parent.left;anchors.leftMar…

PDU Session Anchors

在同一时刻&#xff0c;UE可以建立多条到同一个DN或不同DN的PDU会话&#xff1b;建立到同一个DN的多个PDU会话时&#xff0c;通过不同的UPF&#xff1b;每条PDU会话对应的SMF可以不同。 为了支持到DN的可选择路由功能或支持SSC mode 3模式&#xff0c;SMF可以控制PDU session的…

kmeans++聚类生成anchors

kmeans聚类生成anchors 说明 使用yolo系列通常需要通过kmeans聚类算法生成anchors&#xff0c; 但kmeans算法本身具有一定的局限性&#xff0c;聚类结果容易受初始值选取影响。 因此通过改进原kmeans_for_anchors.py实现 kmeans聚类生成anchors。具体实现如下&#xff1a; i…

anchors如何获得_Yolov3通过k-means聚类得到自己数据的anchors

本文代码参考: https://github.com/lars76/kmeans-anchor-boxes Yolov3中默认的9个anchors是作者通过对voc数据聚类得到的。 anchors 10,14, 23,27, 37,58, 81,82, 135,169, 344,319 不过&#xff0c;当我们训练自己的数据时&#xff0c;如果也采用默认的anchors&#xff0c;可…

Unity 锚点 Anchors

锚点介绍 锚点是Rect Transform组件中的属性&#xff0c;用于描述当前物体相对于父物体的对齐方式。 选中一个UI元素&#xff0c;就会显示其父物体的矩形框以及相对于父物体的锚点。 锚点只能位于父物体的矩形框之内。 锚点表现为四个相对出现的小三角形&#xff0c; 它们时而…

QML anchors 锚布局

锚布局 锚布局有7种锚线 anchors.leftanchors.rightanchors.topanchors.bottomanchors.horizontalCenteranchors.verticalCenteranchors.baseline 5种锚边距 anchors.leftMarginanchors.rightMarginanchors.topMarginanchors.bottomMarginanchors.margins 3种锚偏移 anchor…

anchors生成

关于修改anchor anchor与图片的输入分辨率有关系。 You should use this repository to get anchors: https://github.com/AlexeyAB/darknet By using this command for Yolo v3 (or v2): ./darknet detector calc_anchors data/hand.data -num_of_clusters 9 -width 720 -he…

使用k-means聚类anchors

在之前讲yolo理论基础知识时有提到过&#xff0c;从yolov2开始使用的anchors都是通过聚类得到的。如果想了解更多yolo相关的知识可以看看我在bilibili上录得视频&#xff1a;https://www.bilibili.com/video/BV1yi4y1g7ro 今天补下之前没有细讲的聚类anchors相关知识&#xff…

细说物体检测中的Anchors

点击上方“AI公园”&#xff0c;关注公众号&#xff0c;选择加“星标“或“置顶” 作者&#xff1a;Raghul Asokan 编译&#xff1a;ronghuaiyang 导读 给大家再次解释一下Anchors在物体检测中的作用。 今天&#xff0c;我将讨论在物体检测器中引入的一个优雅的概念 —— Ancho…