学习记录——EGE-UNet、CFNet

news/2024/10/17 10:36:33/

EGE-UNet: an Efficient Group Enhanced UNet for skin lesion segmentation

上海交大 2023 MICCAI

  基于 U-Net 进行魔改,用于解决医学图像(尤其是皮肤病变)分割中面临的问题。由于它是针对移动健康应用开发的,解决了当前许多模型所面临的高参数和计算负载问题。
EGE-UNet融合了两个主要模块:

  • Group multi-axis Hadamard Product Attention module (GHPA)
  • Group Aggregation Bridge module (GAB)

  GHPA 利用哈达玛积注意力机制(HPA),通过将输入特征进行分组,对不同轴进行 HPA 操作,从多个视角提取病变信息。这种方法是受到多头自注意力机制(MHSA)的启发,而 HPA 则可以减少模型大小,因为它的复杂性被设计为线性的,而且不同于 MHSA 的二次复杂性。
什么是哈达玛积? 转
  GAB 通过分组聚合将不同规模的高级语义特征和低级细节特征以及解码器生成的掩码进行融合,从而有效提取多尺度信息,这对医学图像的分割至关重要。
在这里插入图片描述

GHPA 模块

  HPA采用可学习权值,并对输入进行标准乘积运算以获得输出。随后,受MHSA中的多头模式的启发,我们提出了GHPA,它将输入分成不同的组,并在每个组中执行HPA。然而,值得注意的是,我们在不同的组中对不同的轴进行HPA,这有助于进一步从不同的角度获得信息。另一方面,对于GAB,由于医学图像中分割目标的大小和形状不一致,需要获取多尺度信息[19]。因此,GAB基于分组聚合将大小不同的高层和低层特征集成在一起,并在此基础上引入掩码信息辅助特征融合。通过将上述两个模块与UNet相结合,我们提出了EGE-UNet,它以极低的参数和计算量获得了优异的分割性能。

GAB

它接受三个输入:

  • 低级特征
  • 高级特征
  • 掩码
    在这里插入图片描述
      首先,使用深度可分卷积(DW)和双线性插值调整高级特征的大小,以匹配低级特征的大小。其次,我们将两个特征图沿着通道维度划分为四个组,并将低级特征的一组与高级特征的一组连接起来,得到四组融合特征。对于每组融合特征,掩码被连接。接下来,对不同的组应用带有3个核大小和不同扩张率的扩张卷积,以便提取不同尺度的信息。最后,沿着通道维度连接四个组,然后应用核大小为1的普通卷积以实现不同尺度特征之间的交互。

CFNet: Cascade Fusion Network for Dense Prediction

一种新颖的多尺度融合方法
CVPR 2023

  现有的SOTA方法通常先通过主干网络提取多尺度特征,然后通过轻量级模块(如 FPN)融合这些特征。然而,我们认为通过这样的范例来融合多尺度特征可能是不够充分,因为与重量级主干网络相比,分配给特征融合的参数是有限的。
  为此,我们提出了一种名为级联融合网络(CFNet)的新架构用于提升密集预测性能。除了用于提取初始高分辨率特征的主干和几个模块外,我们还引入了几个级联stage,使得CFNet能够生成更丰富的多尺度特征。每个stage都包括一个用于特征提取的子主干和一个用于特征集成的轻量级的转换模块。这种设计使得可以更深入有效地融合特征与整个主干的大部分参数。 最后,我们在目标检测、实例分割和语义分割等任务中验证了CFNet 的有效性。
在这里插入图片描述
  近几年,CNN和Transformer在许多计算机视觉任务中取得了令人满意的成果,包括图像分类、目标检测、语义分割等任务。对于图像分类任务,CNN和transformer网络在架构设计中均遵循逐渐减小特征图的空间大小的方式,来获取最高级语义特征进行预测。然而,对于许多密集预测任务,例如检测和分割,则需要多尺度特征来处理不同尺度的目标。
  众所周知,特征金字塔网络 (FPN) 被广泛用于多尺度特征提取和融合,如上图(a)所示。然而,我们认为使用这样的范例可能不足以融合多尺度特征,因为与重量级主干网络相比,分配给特征融合的参数是有限的。例如,考虑基于主干 ConvNeXt-S 构建的 FPN,融合模块与主干的参数比例小于 10%。
  那么,在计算资源不变的情况下,如果我们想为特征融合分配更多的参数,一个直观的方法是使用更小的主干并扩大融合模块。然而,使用较小的主干意味着整个模型从大规模预训练(例如 ImageNet 分类预训练)中获益较少,这对于训练数据有限的下游任务至关重要。那么我们如何分配更多的参数来实现特征融合,同时保持一个简单的模型架构,使得模型仍然可以最大程度地受益于大规模的预训练权重呢?
  先回顾一下FPN的融合模块。为了融合多尺度特征,来自相邻层的特征首先通过逐元素相加进行整合,然后使用单个 3×3 卷积对求和特征进行变换。我们将这两个步骤命名为特征集成和特征转换。很明显,我们可以堆叠更多的卷积来转换集成特征,但它同时也引入了更多的参数,为主干留下的参数更少。从另一个角度思考,我们是否可以将特征整合操作插入主干,以便利用它之后的所有参数来转换整合后的特征。

  CFNet主要思想是将特征集成操作插入至骨干网络中,使得更多参数能够用于特征融合,极大地增加了特征融合的丰富度。 本文提出的CFNet方法的主要贡献如下:

  • 本文提出的CFNet能够有效改善密集任务(检测、分割)性能;
  • 由于CFNet架构的简易性,能够轻松从大规模预训练权重中获益;
  • 在目标检测和实例分割任务上超越ConvNeXt以及Swin Transformer 1~2%精度。
    在这里插入图片描述

  上图展示了CFNet网络架构。输入一张尺寸大小为 的 RGB 图像,经过一个 stem 和 N 个连续的块(block)处理,提取到的高分辨率特征。stem 由两个步幅(stride)为 2 的 卷积层组成,每个卷积层后面跟着一个 LayerNorm 层和一个 GELU 单元。CFNet 中的块(block)可以是之前的一些研究中提出的任何设计,例如 ResNet 瓶颈块、ConvNeXt 块、Swin Transformer 块等。

  在CFNet 的多级结构中,高分辨率的特征经过一个步幅(stride)为 2 的 卷积层降采样后,被送入 个级联的stage中。所有的stage都共享相同的结构,但是它们可能具有不同数量的块(block)。在每个stage的最后一个块组中,应用了关注块(focal block)。值得注意的是,每个阶段输出带有步幅为 8、16、32 的特征 P3、P4、P5,但只有 P3 特征被送入后续stage。最后,由最后一个阶段输出的融合特征 P3、P4 和 P5 用于密集预测任务。

在这里插入图片描述
  转换块用于整合每个stage中不同尺度的特征。如上图所示,我们提出了三种简单的转换块。

  • Add: 首先使用1×1卷积将C4和C5的通道数量降低以与C3对齐。在执行逐元素相加之前,使用双线性插值操作对齐特征的空间大小。

  • Concat: 直接上采样C4和C5的特征以与C3的空间大小对齐,然后拼接这些特征,接着使用1×1卷积来减少通道数。

  • Sequentially Add: 将不同尺度的特征逐步上采样和组合。这个设计类似于FPN中的融合模块,不同之处在于没有额外的卷积来转换相加的特征。

在这里插入图片描述

  在密集预测任务中,处理各种尺度的目标一直是一个巨大的挑战。通常采用的解决方案是生成不同分辨率的特征。例如,使用步幅为8、16、32、64、128的特征来检测相应尺度的目标。用于生成步幅较大的特征的神经元通常具有较大的感受野。在CFNet的每个stage中,有三个块组用于提取步幅为8、16、32的特征。理想情况下,我们可以提取另外两个分辨率的特征以整合更多的特征尺度,就像和FPN一样。然而,这会引入更多的参数,因为随着特征的空间尺寸缩小,后面的组的通道数量逐渐增加。因此,我们提出了聚焦块,用于扩大每个stage的最后一个块组中神经元的感受野。
  如上图所示,本文提出了两种聚焦块的设计,分别在ConvNeXt块和Swin Transformer块中引入了膨胀深度卷积和两个跳跃连接。聚焦块可以同时合并细粒度的局部特征和粗粒度的全局特征进行交互。最近,使用全局注意力或大卷积核来扩大感受野已经得到广泛研究。虽然取得了有竞争力的结果,但将这些操作应用于密集预测任务时,由于输入图像的尺寸过大,通常会引入大量的计算成本和内存开销。相比之下,本文提出的聚焦块仅引入了极少量的额外成本。

End

以上仅作个人学习记录使用


http://www.ppmy.cn/news/998276.html

相关文章

python统计mp4/avi视频的时长

目录 介绍导入的库import os:import moviepy.editor as mp:总结 代码 介绍导入的库 当代码中导入了特定的库,它会使得在代码中可以使用该库所提供的功能和工具。以下是导入的两个库及其作用的解释: import os: os(Operating System&#x…

云计算与大数据领域新指南 | 《揭秘云计算与大数据》助您驾驭数字化浪潮!

日前,《揭秘云计算与大数据》正式上市。这本由国际知名的技术专家撰写的书籍,将带领读者深入了解云计算和大数据领域的技术前沿和应用趋势,为读者呈现一个全面而深入的视角。 随着信息技术的飞速发展,云计算和大数据作为两大前沿…

Rust: error: failed to run custom build command for `openssl-sys v0.9.71`

error: failed to run custom build command for openssl-sys v0.9.71 解决 windows : openssl 不要选Light版 设置环境变量 cmd: set OPENSSL_DIR“C:\Program Files\OpenSSL-Win64” OPENSSL_DIR:C:\Program Files\OpenSSL-Win64 linux&#xff1a…

【Linux】自动化运维管理工具 Ansible

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Ansible Ansible 概述Ansible 环境安装部署Ansible 命令行模块inventory 主机清单 Ansible 概述 Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在…

二、数据结构7:KMP 模板题+算法模板(KMP字符串)

文章目录 算法模板KMP题目模板 模板题KMP字符串原题链接题目思路题解 算法模板 KMP题目模板 // s[]是长文本&#xff0c;p[]是模式串&#xff0c;n是s的长度&#xff0c;m是p的长度 求模式串的Next数组&#xff1a; for (int i 2, j 0; i < m; i ) {while (j &&…

acwing 1064 小国王 线性状态压缩DP

输入 3 2输出 16&#x1f37a; AC code #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<vector>using namespace std;typedef long long ll; const int N 12; const int M 1 << 10, K 110;//…

【外卖系统】菜品信息分页查询

需求分析 当菜品数据很多时&#xff0c;用分页的形式来展示列表数据 代码开发 页面发送ajax请求&#xff0c;将分页查询参数提交到服务端&#xff0c;获取分页数据页面发送请求&#xff0c;请求服务端进行图片下载&#xff0c;用于页面图片展示 构造分页 注意&#xff1a;…

2023年7月CSDN客服月报|解决3个重大问题和25个次要问题,处理4个用户需求及建议

听用户心声&#xff0c;解用户之需。hello&#xff0c;大家好&#xff0c;这里是《CSDN客诉报告》第22期&#xff0c;接下来就请大家一同回顾我们7月份解决的bug&#xff5e; 一、重大问题 1、【小程序】会员小程序签到余额及转盘余额未到账 反馈量&#xff1a;14 问题描述…