0


Yolov5更换上采样方式

Yolov5更换上采样方式

文章目录


常用上采样方式介绍

1. 最近邻插值(Nearest neighbor interpolation)

在这里插入图片描述

2. 双线性插值(Bi-Linear interpolation)

在这里插入图片描述

3. 双立方插值(Bi-Cubic interpolation)

在这里插入图片描述

计算效果:最近邻插值算法 < 双线性插值 < 双三次插值
计算速度:最近邻插值算法 > 双线性插值 > 双三次插值

4.反池化

在这里插入图片描述

5.转置卷积

在这里插入图片描述

yolov5

默认采用的就是

最近邻插值

在这里插入图片描述


实验结果

这里我将原本的

最近邻插值

的上采样方式替换为

转置卷积

;有人通过实验证明了确实涨点,但是我在VOC数据集上测试并没有涨点,

mAP0.5

大概掉了不到1点
请添加图片描述

修改方式:

第一步;在

models/yolo.py

添加

nn.ConvTranspose2d

在这里插入图片描述

第二步;

models/yolo.py

添加如下代码

在这里插入图片描述

elif m is nn.ConvTranspose2d:iflen(args)>=7:
                    args[6]= make_divisible(args[6]* gw,8)

第三步;修改配置文件,以yolov5s.yaml为例

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters
nc:80# number of classes
depth_multiple:0.33# model depth multiple
width_multiple:0.50# layer channel multiple
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
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
head:[[-1,1, Conv,[512,1,1]],[-1,1, nn.ConvTranspose2d,[512,4,2,1,0,512]],[[-1,6],1, Concat,[1]],# cat backbone P4[-1,3, C3,[512,False]],# 13[-1,1, Conv,[256,1,1]],[-1,1, nn.ConvTranspose2d,[256,4,2,1,0,256]],[[-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)]

出现下面这样子就是运行成功啦
在这里插入图片描述


本文转载自: https://blog.csdn.net/weixin_43694096/article/details/125416120
版权归原作者 迪菲赫尔曼 所有, 如有侵权,请联系我们删除。

“Yolov5更换上采样方式”的评论:

还没有评论