YOLOv11改进 | Conv篇 | 2024利用 Haar 小波的下采样HWD替换传统下采样(改变YOLO传统的Conv下采样)

 一、本文介绍

本文给大家带来的改进机制是Haar 小波的下采样HWD替换传统下采样(改变YOLO传统的Conv下采样)在小波变换中,Haar小波作为一种基本的小波函数,用于将图像数据分解为多个层次的近似和细节信息,这是一种多分辨率的分析方法。我将其用在YOLOv11上其明显降低参数和GFLOPs在V11n上使用该机制后参数量为220W计算量GFLOPs为5.5(轻量化效果十分明显).

欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。

  欢迎大家订阅我的专栏一起学习YOLO!  

 专栏回顾:YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备


目录

 一、本文介绍

二、原理介绍

三、核心代码 

四、手把手教你添加HWD机制

4.1 修改一

4.2 修改二 

4.3 修改三 

4.4 修改四 

五、HWD的yaml文件和运行记录

5.1 HWD的yaml文件1

5.2 训练代码

### YOLOv8 下采样模块实现与作用 #### 功能概述 YOLOv8 中的下采样模块旨在通过特定的方式减少输入图像的空间维度,从而加速处理过程并保持重要特征。这种技术不仅提高了效率还增强了模型的表现力。 #### Haar小波下采样的引入及其优势 为了克服传统最大池化或步幅卷积可能带来的空间信息损失问题,在YOLOv8中采用了基于Haar小波变换的新型下采样方案——HWDHaar Wavelet Downsampling)。这种方法能够在降低特征图分辨率的同时最大限度地保存原始数据中的有用细节[^4]。 #### HWD的工作原理 - **核心思想**: 应用离散Haar小波变换来压缩特征映射尺寸; - **特点**: - 更好地保护边缘和其他显著结构特性; - 减少因过度简化而导致的信息丢失风险; - 提升下游任务如物体检测、实例分割等的效果。 ```python import torch.nn as nn class HWDDownsample(nn.Module): """Haar wavelet downsampling layer.""" def __init__(self, channels_in, scale_factor=2): super(HWDDownsample, self).__init__() # Initialize filters according to haar matrix pattern. h = [[1/np.sqrt(2), 1/np.sqrt(2)], [-1/np.sqrt(2), 1/np.sqrt(2)]] w = np.array(h).reshape((2, 2)) weight = torch.from_numpy(w[np.newaxis, np.newaxis]).float() self.register_buffer('weight', weight.repeat(channels_in, 1, 1, 1)) self.scale_factor = scale_factor def forward(self, x): b, c, h, w = x.size() # Apply convolution with fixed weights corresponding to the haar transform. out = F.conv2d(x, self.weight, stride=self.scale_factor) return out ``` 此代码片段展示了如何定义一个简单的PyTorch层来进行Haar小波下采样操作。它接受任意数量通道作为输入,并利用预设权重矩阵执行转换以达到降维目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Snu77

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

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

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

打赏作者

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

抵扣说明:

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

余额充值