k学长的深度学习宝库:YOLOv11改进:WTConv小波卷积提升大感受野与检测精度(ECCV 2024)
本文介绍了一种新型小波卷积层(WTConv),通过小波变换解决CNN大感受野带来的参数膨胀问题。WTConv利用多频率响应扩展感受野,参数仅对数增长,显著提升了特征提取效率。实验表明,在YOLOv11中应用WTConv构建的C3k2模块,相比基础模型减少了11.4万参数和0.2GFLOPs计算量,实现了有效的轻量化。该方法参数增长平缓、感受野扩大且形状偏差提升,为CNN改进提供了高效易集成的解决方
本文来自于:k学长的深度学习宝库
一、本文介绍
本文给大家带来的改进机制是一种新的 卷积层 , 称为WTConv(小波卷积层) ,它利用 小波变换 (WT)来解决 卷积神经网络 (CNN)在实现大感受野时遇到的过度参数化问题。WTConv的主要目的是通过对输入数据的不同频率带进行处理,使CNN能够更有效地捕捉局部和全局特征,WTConv成功解决了CNN在感受野扩展中的参数膨胀问题,提供了一种更为高效、鲁棒且易于集成的卷积层解决方案,我将其用于二次创新YOLOv11中的C3k2机制可以减少一定参数量和计算量,达到一个可观的轻量化作用 (这种小波Conv对于目前的创新角度来说是非常流行的) 。
目录
二、原理介绍
这篇名为《用于大感受野的小波卷积》的文章提出了一种新的卷积层,称为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 训练过程截图

更多推荐
所有评论(0)