本文来自于:k学长的深度学习宝库

一、本文介绍

本文给大家带来的改进机制是一种新的 卷积层 , 称为WTConv(小波卷积层) ,它利用 小波变换 (WT)来解决 卷积神经网络 (CNN)在实现大感受野时遇到的过度参数化问题。WTConv的主要目的是通过对输入数据的不同频率带进行处理,使CNN能够更有效地捕捉局部和全局特征,WTConv成功解决了CNN在感受野扩展中的参数膨胀问题,提供了一种更为高效、鲁棒且易于集成的卷积层解决方案,我将其用于二次创新YOLOv11中的C3k2机制可以减少一定参数量和计算量,达到一个可观的轻量化作用 (这种小波Conv对于目前的创新角度来说是非常流行的) 


目录

一、本文介绍

二、原理介绍

三、核心代码

四、手把手教你添加C3k2

4.1 修改一

4.2 修改二

4.3 修改三

4.4 修改四

五、正式训练

5.1 yaml文件

5.2 训练代码

5.3 训练过程截图

五、本文总结


二、原理介绍

这篇名为《用于大感受野的小波卷积》的文章提出了一种新的卷积层,称为WTConv(小波卷积层),它利用小波变换(WT)来解决卷积神经网络(CNN)在实现大感受野时遇到的过度参数化问题。WTConv的主要目的是通过对输入数据的不同频率带进行处理,使CNN能够更有效地捕捉局部和全局特征,而传统的CNN主要只能处理局部特征。

以下是文章的主要内容总结:

1. 问题背景:传统的CNN受限于卷积核的大小,难以有效捕捉全局上下文信息。尽管近年来通过增大卷积核(如视觉 Transformer )的尝试有所进展,但这通常会导致参数数量激增, 模型 性能饱和。

2. 提出的解决方案(WTConv):WTConv利用小波变换,通过多频率响应扩展卷积感受野,并在不同频率范围内执行小核卷积操作。通过小波分解,模型可以在更大范围内捕捉低频信息,同时避免模型的过度参数化。

3. 主要优势:

  • 参数增长缓慢:与传统方法相比,WTConv的参数数量仅随感受野大小对数级别增长,而不是平方增长。
  • 感受野扩大:WTConv通过层级小波分解,能够在不增加大量参数的情况下显著扩大CNN的感受野。
  • 形状偏差提升:WTConv层对图像中的低频信息更敏感,从而增强了CNN对形状而非纹理的响应能力。

总的来说,WTConv成功解决了CNN在感受野扩展中的参数膨胀问题,提供了一种更为高效、鲁棒且易于集成的卷积层解决方案。


三、核心代码

核心代码的使用方式看:k学长的深度学习宝库


四、手把手教你添加C3k2

4.1 修改一

第一还是建立文件,我们找到如下 ultralytics /nn/modules文件夹下建立一个目录名字呢就是'Addmodules'文件夹( 用群内的文件的话已经有了无需新建) !然后在其内部建立一个新的py文件将核心代码复制粘贴进去即可。


4.2 修改二

第二步我们在该目录下创建一个新的py文件名字为'__init__.py'( 用群内的文件的话已经有了无需新建) ,然后在其内部导入我们的检测头如下图所示。

​​


4.3 修改三

第三步我门中到如下文件'ultralytics/nn/tasks.py'进行导入和注册我们的模块( 用群内的文件的话已经有了无需重新导入直接开始第四步即可) 

​​


4.4 修改四

按照我的添加在parse_model里添加即可。

​​


到此就修改完成了,大家可以复制下面的yaml文件运行。


五、正式训练


5.1 yaml文件

训练信息: YOLO11-C3k2-WTConv summary: 344 layers, 2,480,347 parameters, 2,470,091 gradients, 6.3 GFLOPs

基础版本信息: YOLO11 summary: 319 layers, 2,594,715 parameters, 2,594,699 gradients, 6.5 GFLOPs


5.3 训练过程截图

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐