【Block总结】HWD,小波下采样,适用分类、分割、目标检测等任务|即插即用

news2025/1/31 12:45:35

论文信息

Haar wavelet downsampling (HWD) 是一项针对语义分割的创新模块,旨在通过减少特征图的空间分辨率来提高深度卷积神经网络(DCNNs)的性能。该论文的主要贡献在于提出了一种新的下采样方法,能够在下采样阶段有效地减少信息损失。论文的详细信息如下:

  • 标题: Haar Wavelet Downsampling: A Simple but Effective Downsampling Module for Semantic Segmentation
  • 作者: Guoping Xu, Wentao Liao, Xuan Zhang, Chang Li, Xinwei He, Xinglong Wu
  • 发表年份: 2023
  • 期刊: Pattern Recognition
  • DOI: 10.1016/j.patcog.2023.109819
    在这里插入图片描述

创新点

HWD 模块的核心创新在于:

  • 信息保留: 通过使用 Haar 小波变换,HWD 能够在下采样过程中最大限度地保留信息,避免传统下采样方法中常见的信息损失。

  • 特征熵指数: 论文中提出了一种新的度量标准,称为特征熵指数(Feature Entropy Index, FEI),用于评估下采样特征图与预测结果之间的信息不确定性。

  • 易于集成: HWD 模块可以直接替代现有的池化层或带步幅的卷积层,而不会显著增加计算开销。

方法

HWD 模块的实现方法包括以下几个步骤:

  1. Haar 小波变换: 该模块利用 Haar 小波变换对特征图进行下采样,降低空间分辨率的同时保留重要信息。

  2. 特征图编码: 在下采样过程中,部分空间信息被编码到通道维度,以便后续的卷积层能够提取判别性特征。

  3. 集成到 CNN 中: HWD 模块可以无缝集成到现有的卷积神经网络架构中,增强其语义分割能力。

HWD模块与传统下采样方法相比有哪些优势?

Haar Wavelet Downsampling (HWD) 模块相较于传统下采样方法(如最大池化和步幅卷积)具有多项显著优势:

优势

  1. 信息保留能力:

    • HWD 模块通过 Haar 小波变换进行下采样,能够在降低特征图的空间分辨率时最大限度地保留重要信息。这种方法有效减少了传统下采样过程中常见的信息损失,尤其是在语义分割任务中,保持空间信息对于像素级预测至关重要[2][5]。
  2. 特征熵指数(FEI):

    • HWD 引入了一种新的度量标准,称为特征熵指数(Feature Entropy Index, FEI),用于评估下采样后特征图与预测结果之间的信息不确定性。FEI 可以帮助量化下采样方法在保留关键信息方面的能力,从而为模型的性能提供更深入的理解[2][5]。
  3. 计算开销低:

    • HWD 模块可以直接替代现有的池化层或带步幅的卷积层,而不会显著增加计算开销。这使得 HWD 易于集成到现有的卷积神经网络架构中,提升了模型的灵活性和适应性[2][3][5]。
  4. 广泛的适用性:

    • 实验表明,HWD 模块在不同模态的图像数据集和多种 CNN 架构中均能有效提高分割性能。这种广泛的适用性使得 HWD 成为一种通用的下采样解决方案,适合多种应用场景[4][6]。
  5. 减少信息不确定性:

    • HWD 模块在下采样过程中有效减少了信息不确定性,相比传统方法,能够更好地保留特征的判别性,从而提升模型的整体表现[5][6]。

效果与实验结果

论文通过一系列综合实验验证了 HWD 模块的有效性,结果显示:

  • HWD 模块在与七种最先进的分割方法进行比较时,表现出更优的性能。

  • 实验结果表明,HWD 在保持高精度的同时,显著减少了信息损失,提升了模型的整体表现。

总结

Haar wavelet downsampling 模块为语义分割任务提供了一种简单而有效的下采样解决方案。通过引入 Haar 小波变换,该模块不仅提高了信息保留能力,还通过特征熵指数的引入,为特征重要性评估提供了新的视角。综合实验结果表明,HWD 模块在多种语义分割任务中均表现出色,具有广泛的应用潜力。

代码

from pytorch_wavelets import DWTForward
import torch
from torch import nn
class HWD(nn.Module):
    def __init__(self, in_ch, out_ch):
        super(HWD, self).__init__()
        self.wt = DWTForward(J=1, mode='zero', wave='haar')
        self.conv_bn_relu = nn.Sequential(
            nn.Conv2d(in_ch * 4, out_ch, kernel_size=1, stride=1),
            nn.BatchNorm2d(out_ch),
            nn.ReLU(inplace=True),
        )

    def forward(self, x):
        yL, yH = self.wt(x)
        y_HL = yH[0][:, :, 0, ::]
        y_LH = yH[0][:, :, 1, ::]
        y_HH = yH[0][:, :, 2, ::]
        x = torch.cat([yL, y_HL, y_LH, y_HH], dim=1)
        x = self.conv_bn_relu(x)
        return x




if __name__ == "__main__":
    # 如果GPU可用,将模块移动到 GPU
    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    # 输入张量 (batch_size, height, width,channels)
    x = torch.randn(1,32,40,40).to(device)
    # 初始化 HWD 模块
    dim=32
    block = HWD(dim,dim)
    print(block)
    block = block.to(device)
    # 前向传播
    output = block(x)
    print("输入:", x.shape)
    print("输出:", output.shape)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2286921.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【解决方案】MuMu模拟器移植系统进度条卡住98%无法打开

之前在Vmware虚拟机里配置了mumu模拟器,现在想要移植到宿主机中 1、虚拟机中的MuMu模拟器12-1是目标系统,对应的目录如下 C:\Program Files\Netease\MuMu Player 12\vms\MuMuPlayer-12.0-1 2、Vmware-虚拟机-设置-选项,启用共享文件夹 3、复…

力扣面试150 快乐数 循环链表找环 链表抽象 哈希

Problem: 202. 快乐数 👩‍🏫 参考题解 Code public class Solution {public int squareSum(int n) {int sum 0;while(n > 0){int digit n % 10;sum digit * digit;n / 10;}return sum;}public boolean isHappy(int n) {int slow n, fast squa…

安卓(android)实现注册界面【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的(如果代码有错漏,可查看源码) 1.掌握LinearLayout、RelativeLayout、FrameLayout等布局的综合使用。 2.掌握ImageView、TextView、EditText、CheckBox、Button、RadioGroup、RadioButton、ListView、RecyclerView等控件在项目中的…

SpringSecurity:There is no PasswordEncoder mapped for the id “null“

文章目录 一、情景说明二、分析三、解决 一、情景说明 在整合SpringSecurity功能的时候 我先是去实现认证功能 也就是,去数据库比对用户名和密码 相关的类: UserDetailsServiceImpl implements UserDetailsService 用于SpringSecurity查询数据库 Logi…

微服务入门(go)

微服务入门(go) 和单体服务对比:里面的服务仅仅用于某个特定的业务 一、领域驱动设计(DDD) 基本概念 领域和子域 领域:有范围的界限(边界) 子域:划分的小范围 核心域…

996引擎 - NPC-动态创建NPC

996引擎 - NPC-动态创建NPC 创建脚本服务端脚本客户端脚本添加自定义音效添加音效文件修改配置参考资料有个小问题,创建NPC时没有控制朝向的参数。所以。。。自己考虑怎么找补吧。 多重影分身 创建脚本 服务端脚本 Mir200\Envir\Market_Def\test\test001-3.lua -- NPC八门名…

基于MinIO的对象存储增删改查

MinIO是一个高性能的分布式对象存储服务。Python的minio库可操作MinIO,包括创建/列出存储桶、上传/下载/删除文件及列出文件。 查看帮助信息 minio.exe --help minio.exe server --help …

观察者模式和订阅发布模式的关系

有人把观察者模式等同于发布订阅模式,也有人认为这两种模式存在差异,本质上就是调度的方法不同。 发布订阅模式: 观察者模式: 相比较,发布订阅将发布者和观察者之间解耦。(发布订阅有调度中心处理)

(2025 年最新)MacOS Redis Desktop Manager中文版下载,附详细图文

MacOS Redis Desktop Manager中文版下载 大家好,今天给大家带来一款非常实用的 Redis 可视化工具——Redis Desktop Manager(简称 RDM)。相信很多开发者都用过 Redis 数据库,但如果你想要更高效、更方便地管理 Redis 数据&#x…

Baklib引领内容管理平台新时代优化创作流程与团队协作

内容概要 在迅速变化的数字化时代,内容管理平台已成为各种行业中不可或缺的工具。通过系统化的管理,用户能够有效地组织、存储和共享信息,从而提升工作效率和创意表达。Baklib作为一款新兴的内容管理平台,以其独特的优势和创新功…

Java实现.env文件读取敏感数据

文章目录 1.common-env-starter模块1.目录结构2.DotenvEnvironmentPostProcessor.java 在${xxx}解析之前执行,提前读取配置3.EnvProperties.java 这里的path只是为了代码提示4.EnvAutoConfiguration.java Env模块自动配置类5.spring.factories 自动配置和注册Enviro…

房屋租赁系统在数字化时代中如何重塑租赁服务与提升市场竞争力

内容概要 在当今快速发展的数字化时代,房屋租赁系统的作用愈发重要。随着市场需求的变化,租赁服务正面临着新的挑战与机遇。房屋租赁系统不仅仅是一个简单的管理工具,更是一个能够提升用户体验和市场竞争力的重要平台。其核心功能包括合同管…

C++ ——— 学习并使用 priority_queue 类

目录 何为 priority_queue 类 学习并使用 priority_queue 类 实例化一个 priority_queue 类对象 插入数据 遍历堆(默认是大堆) 通过改变实例化的模板参数修改为小堆 何为 priority_queue 类 priority_queue 类为 优先级队列,其本质就是…

DeepSeek 模型全览:探索不同类别的模型

DeepSeek 是近年来备受关注的 AI 研究团队,推出了一系列先进的深度学习模型,涵盖了大语言模型(LLM)、代码生成模型、多模态模型等多个领域。本文将大概介绍 DeepSeek 旗下的不同类别的模型,帮助你更好地理解它们的特点…

Three.js实现3D动态心形与粒子背景的数学与代码映射解析

一、效果概述 本文通过Three.js构建了一个具有科技感的3D场景,主要包含两大视觉元素: 动态心形模型:采用数学函数生成基础形状,通过顶点操作实现表面弧度。星空粒子背景:随机分布的粒子群组形成空间层次感。复合动画…

linux asio网络编程理论及实现

最近在B站看了恋恋风辰大佬的asio网络编程,质量非常高。在本章中将对ASIO异步网络编程的整体及一些实现细节进行完整的梳理,用于复习与分享。大佬的博客:恋恋风辰官方博客 Preactor/Reactor模式 在网络编程中,通常根据事件处理的触…

多目标优化策略之一:非支配排序

多目标优化策略中的非支配排序是一种关键的技术,它主要用于解决多目标优化问题中解的选择和排序问题,确定解集中的非支配解(也称为Pareto解)。 关于什么是多目标优化问题,可以查看我的文章:改进候鸟优化算法之五:基于多目标优化的候鸟优化算法(MBO-MO)-CSDN博客 多目…

电子电气架构 --- 在智能座舱基础上定义人机交互

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活…

Autosar-Os是怎么运行的?(时间保护)

写在前面: 入行一段时间了,基于个人理解整理一些东西,如有错误,欢迎各位大佬评论区指正!!! 1.功能概述 AUTOSAR OS 的四大可定制类型凸显了时间保护(Timing Protection)…

一种用于低成本水质监测的软传感器开源方法:以硝酸盐(NO3⁻)浓度为例

论文标题 A Soft Sensor Open-Source Methodology for Inexpensive Monitoring of Water Quality: A Case Study of NO3− Concentrations 作者信息 Antonio Jess Chaves, ITIS Software, University of Mlaga, 29071 Mlaga, Spain Cristian Martn, ITIS Software, Universi…