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增加一层小目标检测层相关推荐

  1. TensorRT+yolov5:yolov5添加小目标检测层2--TensorRT部署

    前面我们在yolov5添加了小目标检测层,进行了训练,但是训练的次数也不是很多,接下来我们使用tensorrt进行四个检测头的yolov5部署.具体如何添加小目标检测层可以查看我上一篇文章. Tens ...

  2. YOLOv8/YOLOv7/YOLOv5系列算法改进【NO.6】增加小目标检测层,提高对小目标的检测效果

    前 言:作为当前先进的深度学习目标检测算法YOLO,已经集合了大量的trick,但是在处理一些复杂检测问题的时候,还是容易出现错漏检的问题.此后的系列文章,将重点对YOLOv8.YOLOv7以及YOL ...

  3. 目标检测算法——YOLOv5改进|增加小目标检测层

    关注"PandaCVer"公众号 >>>深度学习Tricks,第一时间送达<<< 小目标检测一直以来是CV领域的难点之一,那么,YOLOv5该如 ...

  4. YOLOv5增加小目标检测层

    采用增加小目标检测层的方式来使YOLOv5能够检测小目标,只需要修改models下的yaml文件中的内容即可. 主要改变如下: 原yaml: # parameters nc: 80 # number ...

  5. [YOLOv7/YOLOv5系列算法改进NO.5]改进特征融合网络PANET为BIFPN(更新添加小目标检测层yaml)

     前      言:作为当前先进的深度学习目标检测算法YOLOv5,已经集合了大量的trick,但是在处理一些复杂背景问题的时候,还是容易出现错漏检的问题.此后的系列文章,将重点对YOLOv5的如何改 ...

  6. 目标检测算法——YOLOv7改进|增加小目标检测层

    >>>深度学习Tricks,第一时间送达<<< 小目标检测一直以来是计算机CV领域的难点之一,那么,刚出炉的YOLOv7该如何增加小目标检测层呢? 目录 1.YOL ...

  7. YOLOV7改进--增加小目标检测层

    YOLOV7改进--增加小目标检测层 说明 代码 原始p5配置 添加小目标检测层 说明 yolov7来啦!!!因为项目需要,尝试跑了下yolov7,感觉还不错. 由于现在使用的数据集大部分都是&quo ...

  8. YOLOv7 tiny 新增小目标检测层

    YOLOv7 tiny 新增小目标检测层 YOLOv7 tiny 新增小目标检测层 修改yolov7-tiny.yaml文件 YOLOv7 tiny 结构图 调用 models/yolo.py验证 Y ...

  9. YOLO-Z | 记录修改YOLOv5以适应小目标检测的实验过程

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 随着自动驾驶汽车和自动赛车越来越受欢迎,对更快.更准确的检测器 ...

最新文章

  1. Youth---青春
  2. 如何禁止Linux内核的-O2编译选项【转】
  3. devexpress PivotGrid Grand Total
  4. WPF企业内训全程实录(下)
  5. CSS 普通流 和 行格式化上下文 IFC
  6. linux分析目录内存,在 Linux x86-64 模式下分析内存映射流程
  7. Python Tkinter Grid布局管理器详解
  8. JavaEE思维导图
  9. ecshop如何增加多个产品详细描述的编辑器
  10. 用python画一只皮卡丘_用python画一只可爱的皮卡丘实例
  11. js/json 数组的操作
  12. 太原理工大学计算机课程设计报告,太原理工大学matlab课程设计报告
  13. android studio代理设置
  14. MySQL——事务(Transaction)详解
  15. quasi-Newton method 拟牛顿法
  16. 公众号bmob_newgd.js
  17. 初识DE2-115(包含光盘demo)
  18. Scrapy 爬虫框架(基础)
  19. 谈谈Http长连接和Keep-Alive以及Tcp的Keepalive
  20. java urlrewrite

热门文章

  1. c语言文件不兼容,c)出错和链接问题:i386:x86-64输入文件架构,与i386输出不兼容...
  2. ImportError: DLL load failed while importing win32api
  3. 深入浅出IAM(1)
  4. matlab怎么读取指定坐标的RGB值
  5. 《华仪酒店管理系统》项目研发性总结
  6. Mysql的MMM高可用群集
  7. 映泰主板虚拟机AMD-V设置
  8. CCC认证介绍(转载)
  9. javaweb商城实现在线支付
  10. 基于多智能体模型的街道步行空间量化研究