0


改进YOLOv5系列:30.结合即插即用的动态卷积ODConv

在这里插入图片描述

本篇是《ODConv结构🚀》的修改 演示

使用YOLOv5网络🚀作为示范,可以无缝加入到 YOLOv7、YOLOv6、YOLOX、YOLOR、YOLOv4、Scaled_YOLOv4、YOLOv3等一系列YOLO算法模块

先把理论部分弄一下, 代码部分有空更新。

文章目录

1.ODConv模型理论部分

论文参考:Paper

请添加图片描述
在每个卷积层中学习单个静态卷积核是现代卷积神经网络 (CNN) 的常见训练范式。相反,最近对动态卷积的研究表明,学习n使用依赖于输入的注意力加权的卷积核可以显着提高轻量级 CNN 的准确性,同时保持有效的推理。然而,我们观察到现有的工作通过内核空间的一维(关于卷积核数)赋予卷积核动态属性,但其他三个维度(关于空间大小、输入通道数和输出通道数)每个卷积核)都被忽略了。受此启发,我们提出了全维动态卷积(ODConv),一种更通用但更优雅的动态卷积设计,以推进这一研究方向。ODConv 利用一种新颖的多维注意力机制和并行策略,在任何卷积层沿内核空间的所有四个维度学习卷积内核的互补注意力。作为常规卷积的直接替代品,ODConv 可以插入到许多 CNN 架构中。在 ImageNet 和 MS-COCO 数据集上的大量实验表明,ODConv 为各种流行的 CNN 主干网(包括轻量级和大型主干网)带来了可靠的准确度提升,例如,3.77%5.71%|1.86%3.72% 的绝对 top-1 改进MobivleNetV2|ImageNet 数据集上的 ResNet 系列。有趣的是,由于其改进的特征学习能力,即使只有一个内核的 ODConv 也可以与现有的具有多个内核的动态卷积对应物竞争或优于现有的动态卷积对应物,从而大大减少了额外的参数。

在这里插入图片描述
(a) DyConv (CondConv 使用 GAP+FC+Sigmoid) 和 (b) ODConv 的示意图比较。与计算单个注意力标量的 CondConv 和 DyConv 不同对于卷积核, ODConv 利用一种新颖的多维注意力机制来计算四种类型的注意力,和为了以并行方式沿着内核空间的所有四个维度。
在这里插入图片描述将 ODConv 中的四种注意力逐步乘以卷积核的图示。(a) 沿空间维度的位置乘法运算,(b) 沿输入通道维度的通道乘法运算,© 沿输出通道维度的滤波器乘法运算,以及 (d) 内核乘法运算沿着卷积核空间的核维度。

Experiments

请添加图片描述
请添加图片描述

2.在YOLOv5中使用ODConv模块🚀

使用YOLOv5算法🚀作为演示,模块可以无缝插入到YOLOv7、YOLOv5、YOLOv4、Scaled_YOLOv4、YOLOv3、YOLOR等一系列YOLO算法中

新增YOLOv5的yaml配置文件

首先增加以下yolov5_ODConv.yaml文件,作为改进演示

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters

common.py配置

在./models/common.py文件中增加以下模块,直接复制即可

yolo.py配置

然后找到./models/yolo.py文件下里的parse_model函数,将类名加入进去
在 models/yolo.py文件夹下

  • parse_model函数中
  • for i, (f, n, m, args) in enumerate(d['backbone'] + d['head']):内部
  • 对应位置 下方只需要增加 RepVGGBlock模块

参考代码

训练yolov5_ODConv模型

python train.py --cfg yolov5_ODConv.yaml
标签:

本文转载自: https://blog.csdn.net/qq_38668236/article/details/127097170
版权归原作者 芒果汁没有芒果 所有, 如有侵权,请联系我们删除。

“改进YOLOv5系列:30.结合即插即用的动态卷积ODConv”的评论:

还没有评论