MA-Net:用于肝脏和肿瘤分割的多尺度注意力网络

2023-11-08 23:40

本文主要是介绍MA-Net:用于肝脏和肿瘤分割的多尺度注意力网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

近年来为了提高医学图像分割的性能,提出了大量基于多尺度特征融合的UNet变体。与以往通过多尺度特征融合提取医学图像上下文信息的方法不同,本文提出了一种新的多尺度注意力网格(MA-Net)在这个网络方法中引入了自注意力机制,自适应的整合局部特征和全局依赖关系。基于这个注意力机制,MANet可以捕获丰富的上下文依赖关系。

在这个网络结构中设计了两个块结构即PAB(位置注意块)以及多尺度融合注意块(MFAB)。PAB用于在空间维度上对特征相互依赖进行建模,从而在全局视图中捕获像素之间的空间依赖关系。此外MFAB还通过多尺度语义特征融合来获取任意特征映射之间的通道依赖关系。

Introduction

以往通常使用不同大小的池化核来融合多尺度上下文特征信息,采用不同采样率的扩张卷积和池化操作来获得丰富的图像多尺度上下文信息,这进一步提高了分割性能。然而扩张卷积和池化操作无法利用全局视图中像素之间的空间和通道关系。此外使用池化操作很容易丢失特征映射信息中的细节。

本文提出的MA-Net具体来说,是使用了两个基于自注意机制的块来捕获特征图的空间依赖性和通道依赖性。一种是位置注意块(PAB),另一种是多尺度融合注意块(MFAB)。通过自注意机制,利用PAB算法获取特征图中像素之间的空间依赖关系。MFAB通过应用注意机制来捕获特征映射之间的通道依赖关系。除了考虑高级特征映射的通道依赖关系外,MFAB还考虑了低级特征映射的通道依赖关系。将高层和低层特征图的通道依赖关系以和的方式融合,利用注意机制获得丰富的多尺度特征图语义信息,提高网络性能。

总的来说就是PAB模块用于获取全局视图下像素之间的空间依赖关系,MFAB模块通过融合高低语义特征来获取任意特征映射之间的通道依赖关系。

方法

网络结构主要由三个模块构成Res-block,Position-wise Attention Block(PAB)和Multi-scale Fusion Attention Block(MFAB)

残差模块由3个3x3的卷积模块和残差连接组成用于提取高纬度的特征信息。位置注意块(PAB)用于捕获特征映射的空间依赖关系。多尺度融合注意块通过融合高低特征信息来聚合任意特征映射之间的通道依赖关系。

Res-Block

受残差连接的启发,我们使用3个3 × 3 Conv块和1个残差连接在编码器路径上捕获高维特征信息。1x1卷积是用来控制输入通道的数量的

Res-Block的结构图如下:

 PAB-位置注意模块

为了在局部特征图上捕获丰富的上下文关系,我们使用PAB模块来捕获任意两个位置特征图之间的空间依赖关系。这个PAB来捕获任意两个位置特征图之间的空间依赖关系。PAB模块可以在局部特征图上建模更广泛的丰富的空间上下文信息。

PAB的架构图如下所示:

给定一个局部特征图I,将其输入到一个3x3的卷积当中得到I',然后利用1x1的卷积分别生成A,B,C.然后再对A,B进行重塑,然后在A,B之间进行矩阵乘法,之后利用Softmax得到空间注意特征图。同时我们将C也进行重塑。然后将空间注意特征图与C进行矩阵相乘。并将这个结果进行Reshape得到O'。然后我们在I'和O'之间进行逐元素求和。最后通过3x3的卷积得到最终的输出结果。这个最终的输出结果具有全局上下文视图

多尺度融合注意模块

MFAB模块的主要思想是, MFAB从没有额外空间维度的多层次特征图中学习每个特征通道的重要性,并根据重要性增强有用的特征图和抑制对肝脏和肿瘤分割任务贡献较小的特征图。具体地说,我们从低级特征映射和高级特征映射来描述特征通道的相互依赖性。高级特征具有丰富的图像语义信息,而跳过连接的低级特征具有更多的边缘信息。低级特征用于恢复图像的细节

MFAB结构如下图所示

分别对高级特征和低级特征应用通道级注意机制。目的是在分割任务中增加每个特征通道中重要信息的权重,忽略无用的特征信息。

如上图所示,首先将高级特征输入到1x1的卷积核3x3的卷积当中。XHinput和XLinput有相同数量的通道,V=[V1,V2,....Vc]是卷积核的集合其中Vc是第c个卷积核的参数。我们可以通过以下公式计算U

其中vc = [v1c, v2c,…], vcc]和Xinput = [x1, x2,…], xc], Xinput∈(XHinput或者XLinput)。这里*表示卷积。然后使用全局平均池化对每个特征进行压缩。Sc1和Sc2是通过缩小特征映射XHinput和XLinput来获得的。S1和S2的第c个元素计算如下

其中,H和W分别为高度和宽度,uc为各通道的特征图。然后使用具有两个全连接(FC)层和激活函数的瓶颈层来限制模型的复杂性,并捕获通道依赖性z1和z2。用公式表现如下:

其中P1和P2表示全连接层,δ1和δ2分别表示sigmoid函数和ReLU激活函数

然后我们将低级特征和高级特征相结合

 

XHoutput通过重新缩放具有激活V的T来获得:

 

损失函数

 本文采用的是交叉熵损失函数和DiceLoss相结合的方法作为最终的损失函数。损失函数表示为

 

其中yi和pi表示ground truth和预测的feature map, N表示batch size

 总结

本文在图像分割方法中引入了自注意机制。特别地,我们利用自注意机制获取特征图的空间和通道依赖关系,并基于特征图之间的通道依赖关系考虑多尺度语义信息。此外,我们还采用了一种新的损失函数,它将交叉熵和Dice结合起来

 

这篇关于MA-Net:用于肝脏和肿瘤分割的多尺度注意力网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/373097

相关文章

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

C++字符串提取和分割的多种方法

《C++字符串提取和分割的多种方法》在C++编程中,字符串处理是一个常见的任务,尤其是在需要从字符串中提取特定数据时,本文将详细探讨如何使用C++标准库中的工具来提取和分割字符串,并分析不同方法的适用... 目录1. 字符串提取的基本方法1.1 使用 std::istringstream 和 >> 操作符示

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

使用Python实现批量分割PDF文件

《使用Python实现批量分割PDF文件》这篇文章主要为大家详细介绍了如何使用Python进行批量分割PDF文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、架构设计二、代码实现三、批量分割PDF文件四、总结本文将介绍如何使用python进js行批量分割PDF文件的方法

使用Python将长图片分割为若干张小图片

《使用Python将长图片分割为若干张小图片》这篇文章主要为大家详细介绍了如何使用Python将长图片分割为若干张小图片,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果1. Python需求