YOLOv5目标检测之anchor设定
作者:Marlowee 时间:2022-04-23 16:22:10
前言
yolo算法作为one-stage领域的佼佼者,采用anchor-based的方法进行目标检测,使用不同尺度的anchor直接回归目标框并一次性输出目标框的位置和类别置信度。
为什么使用anchor进行检测?
最初的YOLOv1的初始训练过程很不稳定,在YOLOv2的设计过程中,作者观察了大量图片的ground truth,发现相同类别的目标实例具有相似的gt长宽比:比如车,gt都是矮胖的长方形;比如行人,gt都是瘦高的长方形。所以作者受此启发,从数据集中预先准备几个几率比较大的bounding box,再以它们为基准进行预测。
anchor的检测过程
首先,yolov5中使用的coco数据集输入图片的尺寸为640x640,但是训练过程的输入尺寸并不唯一,因为v5可以采用masaic增强技术把4张图片的部分组成了一张尺寸一定的输入图片。但是如果需要使用预训练权重,最好将输入图片尺寸调整到与作者相同的尺寸,而且输入图片尺寸必须是32的倍数,这与下面anchor检测的阶段有关。
上图是我自己绘制的v5 v6.0的网络结构图。当我们的输入尺寸为640*640时,会得到3个不同尺度的输出:80x80(640/8)、40x40(640/16)、20x20(640/32),即上图中的CSP2_3模块的输出。
anchors:
- [10,13, 16,30, 33,23] # P3/8
- [30,61, 62,45, 59,119] # P4/16
- [116,90, 156,198, 373,326] # P5/32
其中,80x80代表浅层的特征图(P3),包含较多的低层级信息,适合用于检测小目标,所以这一特征图所用的anchor尺度较小;同理,20x20代表深层的特征图(P5),包含更多高层级的信息,如轮廓、结构等信息,适合用于大目标的检测,所以这一特征图所用的anchor尺度较大。另外的40x40特征图(P4)上就用介于这两个尺度之间的anchor用来检测中等大小的目标。yolov5之所以能高效快速地检测跨尺度目标,这种对不同特征图使用不同尺度的anchor的思想功不可没。
来源:https://blog.csdn.net/weixin_43427721/article/details/123608508
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
MySQL 数据(字段)类型
ASP中数据库调用中常见错误的现象和解决
ASP获取远程文件大小信息(通过header头信息)
MDB格式网站文件如何解压
PHP伪静态页面函数附使用方法
python把数组中的数字每行打印3个并保存在文档中的方法
![](https://img.aspxhome.com/file/2023/8/78658_0s.jpg)
解析ROC曲线绘制(python+sklearn+多分类)
![](https://img.aspxhome.com/file/2023/4/78564_0s.png)
搜索结果页(SERP):个性化如何影响用户行为?
![](https://img.aspxhome.com/file/UploadPic/20097/22/12344d4b41cg214-19s.jpg)
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
![](https://img.aspxhome.com/file/2023/5/67925_0s.png)
Asp 编码互转的研究和实现代码
php 无法载入mysql扩展
python绘制汉诺塔
![](https://img.aspxhome.com/file/2023/1/60511_0s.gif)
redis之django-redis的简单缓存使用
python+unittest+requests实现接口自动化的方法
![](https://img.aspxhome.com/file/2023/3/65123_0s.png)
Javascript中数组方法汇总(推荐)
Python元组常见操作示例
Python中利用pyqt5制作指针钟表显示实时时间(指针时钟)
![](https://img.aspxhome.com/file/2023/6/82746_0s.jpg)