yolov5增加一层小目标检测层
1.原始YOLOv5模型
# YOLOv5 head
head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 6], 1, Concat, [1]], # cat backbone P4[-1, 3, C3, [512, False]], # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, Concat, [1]], # cat backbone P3[-1, 3, C3, [256, False]], # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]], # cat head P4[-1, 3, C3, [512, False]], # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]], # cat head P5[-1, 3, C3, [1024, False]], # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)]
若输入图像尺寸=640X640,
# P3/8 对应的检测特征图大小为80X80,用于检测大小在8X8以上的目标。
# P4/16对应的检测特征图大小为40X40,用于检测大小在16X16以上的目标。
# P5/32对应的检测特征图大小为20X20,用于检测大小在32X32以上的目标。
2.增加小目标检测层
# parameters
nc: 1 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple# anchors
anchors:- [5,6, 8,14, 15,11] #4- [10,13, 16,30, 33,23] # P3/8- [30,61, 62,45, 59,119] # P4/16- [116,90, 156,198, 373,326] # P5/32# YOLOv5 backbone
backbone:# [from, number, module, args][[-1, 1, Focus, [64, 3]], # 0-P1/2[-1, 1, Conv, [128, 3, 2]], # 1-P2/4[-1, 3, BottleneckCSP, [128]], #160*160[-1, 1, Conv, [256, 3, 2]], # 3-P3/8[-1, 9, BottleneckCSP, [256]], #80*80[-1, 1, Conv, [512, 3, 2]], # 5-P4/16[-1, 9, BottleneckCSP, [512]], #40*40[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32[-1, 1, SPP, [1024, [5, 9, 13]]],[-1, 3, BottleneckCSP, [1024, False]], # 9 20*20]# YOLOv5 head
head:[[-1, 1, Conv, [512, 1, 1]], #20*20[-1, 1, nn.Upsample, [None, 2, 'nearest']], #40*40[[-1, 6], 1, Concat, [1]], # cat backbone P4 40*40[-1, 3, BottleneckCSP, [512, False]], # 13 40*40[-1, 1, Conv, [512, 1, 1]], #40*40[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, Concat, [1]], # cat backbone P3 80*80[-1, 3, BottleneckCSP, [512, False]], # 17 (P3/8-small) 80*80[-1, 1, Conv, [256, 1, 1]], #18 80*80[-1, 1, nn.Upsample, [None, 2, 'nearest']], #19 160*160[[-1, 2], 1, Concat, [1]], #20 cat backbone p2 160*160[-1, 3, BottleneckCSP, [256, False]], #21 160*160[-1, 1, Conv, [256, 3, 2]], #22 80*80[[-1, 18], 1, Concat, [1]], #23 80*80[-1, 3, BottleneckCSP, [256, False]], #24 80*80[-1, 1, Conv, [256, 3, 2]], #25 40*40[[-1, 14], 1, Concat, [1]], # 26 cat head P4 40*40[-1, 3, BottleneckCSP, [512, False]], # 27 (P4/16-medium) 40*40[-1, 1, Conv, [512, 3, 2]], #28 20*20[[-1, 10], 1, Concat, [1]], #29 cat head P5 #20*20[-1, 3, BottleneckCSP, [1024, False]], # 30 (P5/32-large) 20*20[[21, 24, 27, 30], 1, Detect, [nc, anchors]], # Detect(p2, P3, P4, P5)]
# 新增加160X160的检测特征图,用于检测4X4以上的目标。
改进后,虽然计算量和检测速度有所增加,但对小目标的检测精度有明显改善。
yolov5增加一层小目标检测层相关推荐
- TensorRT+yolov5:yolov5添加小目标检测层2--TensorRT部署
前面我们在yolov5添加了小目标检测层,进行了训练,但是训练的次数也不是很多,接下来我们使用tensorrt进行四个检测头的yolov5部署.具体如何添加小目标检测层可以查看我上一篇文章. Tens ...
- YOLOv8/YOLOv7/YOLOv5系列算法改进【NO.6】增加小目标检测层,提高对小目标的检测效果
前 言:作为当前先进的深度学习目标检测算法YOLO,已经集合了大量的trick,但是在处理一些复杂检测问题的时候,还是容易出现错漏检的问题.此后的系列文章,将重点对YOLOv8.YOLOv7以及YOL ...
- 目标检测算法——YOLOv5改进|增加小目标检测层
关注"PandaCVer"公众号 >>>深度学习Tricks,第一时间送达<<< 小目标检测一直以来是CV领域的难点之一,那么,YOLOv5该如 ...
- YOLOv5增加小目标检测层
采用增加小目标检测层的方式来使YOLOv5能够检测小目标,只需要修改models下的yaml文件中的内容即可. 主要改变如下: 原yaml: # parameters nc: 80 # number ...
- [YOLOv7/YOLOv5系列算法改进NO.5]改进特征融合网络PANET为BIFPN(更新添加小目标检测层yaml)
前 言:作为当前先进的深度学习目标检测算法YOLOv5,已经集合了大量的trick,但是在处理一些复杂背景问题的时候,还是容易出现错漏检的问题.此后的系列文章,将重点对YOLOv5的如何改 ...
- 目标检测算法——YOLOv7改进|增加小目标检测层
>>>深度学习Tricks,第一时间送达<<< 小目标检测一直以来是计算机CV领域的难点之一,那么,刚出炉的YOLOv7该如何增加小目标检测层呢? 目录 1.YOL ...
- YOLOV7改进--增加小目标检测层
YOLOV7改进--增加小目标检测层 说明 代码 原始p5配置 添加小目标检测层 说明 yolov7来啦!!!因为项目需要,尝试跑了下yolov7,感觉还不错. 由于现在使用的数据集大部分都是&quo ...
- YOLOv7 tiny 新增小目标检测层
YOLOv7 tiny 新增小目标检测层 YOLOv7 tiny 新增小目标检测层 修改yolov7-tiny.yaml文件 YOLOv7 tiny 结构图 调用 models/yolo.py验证 Y ...
- YOLO-Z | 记录修改YOLOv5以适应小目标检测的实验过程
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 随着自动驾驶汽车和自动赛车越来越受欢迎,对更快.更准确的检测器 ...
最新文章
- Youth---青春
- 如何禁止Linux内核的-O2编译选项【转】
- devexpress PivotGrid Grand Total
- WPF企业内训全程实录(下)
- CSS 普通流 和 行格式化上下文 IFC
- linux分析目录内存,在 Linux x86-64 模式下分析内存映射流程
- Python Tkinter Grid布局管理器详解
- JavaEE思维导图
- ecshop如何增加多个产品详细描述的编辑器
- 用python画一只皮卡丘_用python画一只可爱的皮卡丘实例
- js/json 数组的操作
- 太原理工大学计算机课程设计报告,太原理工大学matlab课程设计报告
- android studio代理设置
- MySQL——事务(Transaction)详解
- quasi-Newton method 拟牛顿法
- 公众号bmob_newgd.js
- 初识DE2-115(包含光盘demo)
- Scrapy 爬虫框架(基础)
- 谈谈Http长连接和Keep-Alive以及Tcp的Keepalive
- java urlrewrite