赞
踩
(71条消息) YOLOv7改进结构系列: 最新结合用于小目标的新CNN卷积构建块_芒果汁没有芒果的博客-CSDN博客
一、SPD论文理论部分
卷积神经网络 (CNN) 在许多计算机视觉任务(例如图像分类和对象检测)中取得了巨大成功。然而,它们的性能在图像分辨率低或物体很小的更艰巨的任务中迅速下降。在本文中,我们指出,这源于现有 CNN 架构中存在缺陷但常见的设计,即使用跨步卷积和/或池化层,这会导致细粒度信息的丢失和对不太有效的特征表示的学习. 为此,我们提出了一个名为SPD-Conv的新 CNN 构建块来代替每个跨步卷积层和每个池化层(因此完全消除了它们)。SPD-Conv 由空间到深度(SPD) 层后跟非跨步卷积 (Conv) 层,可以应用于大多数(如果不是全部)CNN 架构。我们在两个最具代表性的计算机视觉任务下解释了这种新设计:对象检测和图像分类。然后,我们通过将 SPD-Conv 应用于 YOLOv5 和 ResNet 来创建新的 CNN 架构,并通过经验证明我们的方法明显优于最先进的深度学习模型,尤其是在具有低分辨率图像和小物体的更艰巨任务上。
(71条消息) 目标检测模型设计准则 | YOLOv7参考的ELAN模型解读,YOLO系列模型思想的设计源头_人工智能算法研究院的博客-CSDN博客
=================================================================
yaml文件
- # 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, Focus, [64, 3]], # 0-P1/2
- [-1, 1, Conv, [128, 3, 1]], # 1
- [-1,1,space_to_depth,[1]], # 2 -P2/4
- [-1, 3, C3, [128]], # 3
- [-1, 1, Conv, [256, 3, 1]], # 4
- [-1,1,space_to_depth,[1]], # 5 -P3/8
- [-1, 6, C3, [256]], # 6
- [-1, 1, Conv, [512, 3, 1]], # 7-P4/16
- [-1,1,space_to_depth,[1]], # 8 -P4/16
- [-1, 9, C3, [512]], # 9
- [-1, 1, Conv, [1024, 3, 1]], # 10-P5/32
- [-1,1,space_to_depth,[1]], # 11 -P5/32
- [-1, 3, C3, [1024]], # 12
- [-1, 1, SPPF, [1024, 5]], # 13
- ]
-
- # YOLOv5 v6.0 head
- head:
- [[-1, 1, Conv, [512, 1, 1]], # 14
- [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 15
- [[-1, 9], 1, Concat, [1]], # 16 cat backbone P4
- [-1, 3, C3, [512, False]], # 17
-
- [-1, 1, Conv, [256, 1, 1]], # 18
- [-1, 1, nn.Upsample, [None, 2, 'nearest']], # 19
- [[-1, 6], 1, Concat, [1]], # 20 cat backbone P3
- [-1, 3, C3, [256, False]], # 21 (P3/8-small)
-
- [-1, 1, Conv, [256, 3, 1]], # 22
- [-1,1,space_to_depth,[1]], # 23 -P2/4
- [[-1, 18], 1, Concat, [1]], # 24 cat head P4
- [-1, 3, C3, [512, False]], # 25 (P4/16-medium)
-
- [-1, 1, Conv, [512, 3, 1]], # 26
- [-1,1,space_to_depth,[1]], # 27 -P2/4
- [[-1, 14], 1, Concat, [1]], # 28 cat head P5
- [-1, 3, C3, [1024, False]], # 29 (P5/32-large)
-
- [[21, 25, 29], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
- ]
commen.py
- class space_to_depth(nn.Module):
- # Changing the dimension of the Tensor
- def __init__(self, dimension=1):
- super().__init__()
- self.d = dimension
-
- def forward(self, x):
- return torch.cat([x[..., ::2, ::2], x[..., 1::2, ::2], x[..., ::2, 1::2], x[..., 1::2, 1::2]], 1)
yolo.py
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。