YOLOV8主干改进方法:C2f-Dual——DualConv轻量化双卷积设计(附改进代码)

该博客介绍了C2f-Dual,一种用于YOLOv8的轻量级双卷积设计,旨在降低深度神经网络的计算成本和参数数量,提高模型精度。 DualConv结合3×3和1×1卷积核,利用组卷积技术,有效优化信息处理和特征提取。博客详细阐述了DualConv的工作原理和结构,并提供了将其引入YOLOv8的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原论文地址:原论文下载地址

主要优点:著降低深度神经网络的计算成本和参数数量,显著提高模型的精度

   DualConv是一种创新的卷积网络结构,旨在构建轻量级的深度神经网络。它通过结合3×3和1×1的卷积核处理相同的输入特征映射通道,优化了信息处理和特征提取。DualConv利用组卷积技术高效排列卷积滤波器,大大降低了计算成本和参数数量。

DualConv的基本原理可以总结如下:

1. 结合3×3和1×1卷积核:DualConv使用3×3和1×1的卷积核同时处理相同的输入特征映射通道,结合了两者的优点。

2. 利用组卷积技术:它通过组卷积技术高效地安排卷积滤波器,减少了计算成本和参数数量

卷积介绍:

深度可分离卷积:如图上图(a)所示,标准卷积同时对输入特征映射进行特征提取和通道融合。MobileNetV1中的深度可分离卷积将标准卷积分解为深度卷积和点向卷积,如上图(b)所示。在深度卷积中,单个卷积核应用于每个输入通道。通常,使用3×3卷积进行特征提取。点卷积将1×1卷积应用于深度卷积的输出特征图,进行通道融合。因此,通过分离特征提取和通道融合,深度可分离卷积显着减少了参数数量,从而减少了网络执行的计算量。

分组卷积:在组卷积中,输入和输出特征图被分成多个组,每组的卷积滤波器仅处理对应的输入特征图的一部分,这减少了模型的复杂度。DualConv利用这一技术来进一步降低计算成本,因为它允许组内的不同卷积核(如3×3和1×1)并行处理同一组输入通道,优化了信息流和特征提取效率,同时保持了网络的表征能力。 

DualConv的结构布局:3×3和1×1卷积核在输入特征映射通道上的并行布局。具体来说,这种布局利用了组卷积技术将卷积核分组,并在同一组内并行使用不同尺寸的卷积核。这样的设计有助于同时利用大尺寸卷积核的空间特征提取能力和小尺寸卷积核的计算效率,从而在保持准确性的同时减少模型的参数数量和计算成本。 

详细内容见论文原文

2.C2f_DUAL引入到YOLOv8的步骤:

2.1 在/ultralytics/nn/modules/block.py添加代码到末尾

def autopad(k, p=None, d=1):  # kernel, padding, dilation
    """Pad to 'same' shape outputs."""
    if d > 1:
        k = d * (k - 1) + 1 if isinstance(k, int) else [d * (x - 1) + 1 for x in k]  # actual kernel-size
    if p is None:
        p = k // 2 if isinstance(k, int) else [x // 2 for x in k]  # auto-pad
    return p
 
 
class Conv(nn.Module):
    """Standard convolution with args(ch_in, ch_out, kernel, stride, padding, groups, dilation, activation)."""
    default_act = nn.SiLU()  # default activation
 
    def __init__(self, c1, c2, k=1, s=1, p=None, g=1, d=1, act=True):
        """Initialize Conv layer with given arguments including activation."""
        super().__init__()
        self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p, d), g
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安安喜乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值