0


YOLOv5解析 | 第三篇:如何改进YOLOv5?

大家好,我是K同学啊!

在前面的文章YOLOv5解析 | 第二篇:用YOLOv5训练自己的数据集(超级详细完整版)中我们介绍了使用训练自己的数据集。

这一篇文章,我将带大家一起解析

  1. YOLOv5

  1. 6.0

版本结构并改进模型,先看看我们模型结构图~

由于YOLOv5存在多个版本,所以你在网上可能会看到许多不同版本是网络结构图。(**这里放的是最新的

  1. YOLOv5

  1. 6.0

版本结构图**)

文章目录

一、YOLOv5的结构文件

我们如何找到YOLOv5的结构文件?

文件定位:…/models/***.yaml

你将会看到YOLOv5又分为

  1. YOLOv5l

  1. YOLOv5m

  1. YOLOv5n

  1. YOLOv5s

  1. YOLOv5x

五个版本,这五个版本唯一的区别是网络深度(depth_multiple)与宽度(width_multiple)不一样,这里先不展开,你只需要知道这几个家伙都是YOLOv5只是有细微区别即可。下文我将以YOLOv5s为模板展开介绍。

  1. # YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters
  2. nc:80# number of classes
  3. depth_multiple:0.33# model depth multiple
  4. width_multiple:0.50# layer channel multiple
  5. 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# YOLOv5 v6.0 backbone
  6. backbone:# [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 head
  7. 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)]

二、如何修改网络结构

对于网络结构的修改我们需要改动的文件如下:

  • ./models/yolov5s.yaml
  • ./models/common.py
  • ./models/yolo.py

举例,我现在要将YOLOv5s中的一个

  1. C3

模块修改为自定义的

  1. C3KTongxue

模块,我们需要做哪些工作呢?

1. 修改yolov5s.yaml文件

第一步,定位你想修改的那个C3模块的位置,将名字

  1. C3

修改为

  1. C3KTongxue

(注意根据你自定义的模块修改相关参数)。

2. 修改common.py文件

第二步,在

  1. common.py

文件中添加自定义模块

  1. C3KTongxue

的代码实现类

3. 修改yolo.py文件

第三步,在yolo.py文件中的相关位置添加上自定义模块

  1. C3KTongxue

(位置已经下图中标明)。


本文转载自: https://blog.csdn.net/qq_38251616/article/details/124665998
版权归原作者 K同学啊 所有, 如有侵权,请联系我们删除。

“YOLOv5解析 | 第三篇:如何改进YOLOv5?”的评论:

还没有评论