位置: IT常识 - 正文

yolov5从V1.0到V6.2网络变化梳理(yolov5使用教程)

编辑:rootadmin
yolov5从V1.0到V6.2网络变化梳理

推荐整理分享yolov5从V1.0到V6.2网络变化梳理(yolov5使用教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:yolov5版本,yolov5 5.0,yolov5m,yolov5版本,yolov5版本,yolov5版本,yolov5版本,yolov5 5.0,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在学yolov5的网络结构,发现不同的人描述yolov5的网络结构并不同,有的说是C3模块有的说是BottleneckCSP,这给我一个小白带来了很大困扰。查询了很多文章终于在一篇文章中有博主提到,yolov5新版本用C3代替了BottleneckCSP。所以为了搞清楚yolov5的具体网络结构,在这里把所有的版本结构记录下来,以便之后的学习理解与查看。

v1.0版本如下: backbone主要模块:Focus、Conv、BottleneckCSP、SPP head主要模块:BottleneckCSP、Conv、nn.Upsample、Concat、nn.Conv2d

# YOLOv5 backbonebackbone: # [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]], [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 [-1, 9, BottleneckCSP, [256]], [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 [-1, 9, BottleneckCSP, [512]], [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 [-1, 1, SPP, [1024, [5, 9, 13]]], ]# YOLOv5 headhead: [[-1, 3, BottleneckCSP, [1024, False]], # 9 [-1, 1, Conv, [512, 1, 1]], [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 6], 1, Concat, [1]], # cat backbone P4 [-1, 3, BottleneckCSP, [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, BottleneckCSP, [256, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # 18 (P3/8-small) [-2, 1, Conv, [256, 3, 2]], [[-1, 14], 1, Concat, [1]], # cat head P4 [-1, 3, BottleneckCSP, [512, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # 22 (P4/16-medium) [-2, 1, Conv, [512, 3, 2]], [[-1, 10], 1, Concat, [1]], # cat head P5 [-1, 3, BottleneckCSP, [1024, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # 26 (P5/32-large) [[], 1, Detect, [nc, anchors]], # Detect(P5, P4, P3) ]yolov5从V1.0到V6.2网络变化梳理(yolov5使用教程)

v2.0版本如下: backbone主要模块:Focus、Conv、BottleneckCSP、SPP head主要模块:BottleneckCSP、Conv、nn.Upsample、Concat v2.0与V1.0相比最大的区别就是少了nn.Conv2d模块,并且Detect指定为17, 20, 23层输出

# YOLOv5 backbonebackbone: # [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]], [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 [-1, 9, BottleneckCSP, [256]], [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 [-1, 9, BottleneckCSP, [512]], [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 [-1, 1, SPP, [1024, [5, 9, 13]]], [-1, 3, BottleneckCSP, [1024, False]], # 9 ]# YOLOv5 headhead: [[-1, 1, Conv, [512, 1, 1]], [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 6], 1, Concat, [1]], # cat backbone P4 [-1, 3, BottleneckCSP, [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, BottleneckCSP, [256, False]], # 17 [-1, 1, Conv, [256, 3, 2]], [[-1, 14], 1, Concat, [1]], # cat head P4 [-1, 3, BottleneckCSP, [512, False]], # 20 [-1, 1, Conv, [512, 3, 2]], [[-1, 10], 1, Concat, [1]], # cat head P5 [-1, 3, BottleneckCSP, [1024, False]], # 23 [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5) ]

V3.0与V3.1和V2.0相同,这里不放代码;

从V4.0版本开始,作者开始用C3代替了BottleneckCSP,而其他的结构不变。C3结构作用基本相同均为BottleneckCSP架构,只是在修正单元的选择上有所不同,其包含了3个标准卷积层以及多个Bottleneck模块(数量由配置文件.yaml的n和depth_multiple参数乘积决定)

# YOLOv5 backbonebackbone: # [from, number, module, args] [[-1, 1, Focus, [64, 3]], # 0-P1/2 [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 [-1, 3, C3, [128]], [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 [-1, 9, C3, [256]], [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 [-1, 9, C3, [512]], [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 [-1, 1, SPP, [1024, [5, 9, 13]]], [-1, 3, C3, [1024, False]], # 9 ]# YOLOv5 headhead: [[-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) ]

一张图快速了解C3与BottleneckCSP区别(从别人那扒的,嘘): V5.0版本也没有改变网络结构,这里不放代码;

v6.0版本将第0层的Focus替换成Conv,将SPP替换成SPPF; ps:SPPF比SPP快了一倍时间yolov5 github上有代码验证,这里只放结果。

# YOLOv5 v6.0 backbonebackbone: # [from, number, module, args] [[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 [-1, 3, C3, [128]], [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 [-1, 6, C3, [256]], [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 [-1, 9, C3, [512]], [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 [-1, 3, C3, [1024]], [-1, 1, SPPF, [1024, 5]], # 9 ]# YOLOv5 v6.0 headhead: [[-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) ]

V6.1和V6.2版本与V6.0相同,这里不放代码;

总结: V1.0版本backbone主要模块:Focus、Conv、BottleneckCSP、SPP;head主要模块:BottleneckCSP、Conv、nn.Upsample、Concat、nn.Conv2d。 V2.0版本在V1.0版本基础上删去nn.Conv2d,并且Detect指定为17, 20, 23层输出。 V4.0版本用C3代替了BottleneckCSP,而其他的结构不变。 V6.0版本将第0层的Focus替换成Conv,将SPP替换成SPPF;

最后放一张V6.1版本网络结构图:(来自github官方)

本文链接地址:https://www.jiuchutong.com/zhishi/287068.html 转载请保留说明!

上一篇:对象存储OSS之ossbrowser的使用(oss对象储存的副本储存原则)

下一篇:是谁不断叫醒正在睡眠的电脑?这么一查就知道(是谁唤醒你)

  • 驾驶员培训服务税率
  • 拍卖行业收取手续费标准
  • 增值税发票怎么抵扣
  • 工程招标费计入什么科目
  • 水果销售公司简介
  • 暂估库存商品比发票少1分怎么记账
  • 外出经营活动结束纳税人应当向经营地税务机关填报
  • 行政单位特殊人工手机电话费是否可以报销
  • 增值税月末结转摘要写什么
  • 冲销暂估入库如何做会计核算?
  • 用于出口的进项可以抵扣吗
  • 股东取得利息收入如何纳税
  • 企业为什么用银行承兑汇票
  • 坏账准备一般余额在哪方
  • 增值税专用发票几个点
  • 增值税品目有哪些
  • 在同一预缴地有多个项目的建筑业纳税人总销售额以什么为标准确定?
  • RSync文件备份同步 Linux服务器rsync同步配置图文教程
  • 电脑管家游戏加速怎么卸载
  • 民间非营利组织会计制度及操作实务
  • 个税申报的人数比工资表少了怎么办
  • 销售折扣单独开票
  • laravel快速入门
  • php curl_init
  • 土地增值税安置房收入的确认原则
  • 长期投资有哪些渠道
  • php控制器是用来做什么的
  • 资产负债表中其他流动资产包括哪些科目
  • php使用pdo连接数据库
  • Node.js安装过程
  • Laravel 5.3 学习笔记之 配置
  • 营改增前取得的有形动产为标的物
  • 销项税大于进项税当月交税吗
  • 小规模纳税人如何开专票
  • 土地增值税采用
  • 无形资产商标设计图片
  • python复制文件的代码
  • linux数据库导入命令
  • 预提工资的会计处理
  • 三代手续费操作流程
  • 折扣折让的会计分录
  • 企业可以一次性现金的方式发放工资
  • 跨年度冲红字发票补正账务如何处理
  • 农民工专户个税怎么申报
  • 公司注销未分配利润如何处理
  • 广告公司工程部
  • 结算备付金会计分录
  • 发票系统怎么用
  • 应税服务零税率是什么
  • 开具发票时如何做账务处理?
  • 我国税收税类中的流转税
  • 记账凭证是不是转账凭证
  • 出纳 记账凭证
  • 为什么说进项和销项是相对的
  • 已经开了发票需要退款怎么处理?
  • 企业大额融资需要什么资料
  • 分公司可以设立公司吗
  • 小规模纳税人应纳增值税额的计算
  • win7激活失败提示错误代码0x80072F8F
  • xp系统打印任务一闪就没有了
  • 组策略 guest
  • linux网络协议栈内核分析
  • win8电脑设置
  • 2016年首个国家安全教育日
  • Node.js中的construct构造函数
  • 迅雷如何下载快
  • 数据库多表连接的几种方式
  • jquery 列表控件
  • 批处理改ipv4地址
  • js indexof 对象
  • python的垃圾处理机制
  • 使用筷子就餐会不会传染乙肝病毒
  • 比较常见的电子商务模式
  • Python连接MySQL并使用fetchall()方法过滤特殊字符
  • sql怎么增删改
  • 东莞税收突破2000亿
  • 递延所得税资产怎么计算
  • 广州天河东路税务局地址
  • 税务局的局长是什么级别
  • 商品房增值税如何算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设