糖尿病视网膜病灶分割(Diabetic Retinopathy Multi-lesion Segmentation)-RTNet论文总结

论文:RTNet: Relation Transformer Network for Diabetic Retinopathy Multi-lesion Segmentation

目录

一、背景和出发点

二、创新点

三、方法实现

A. 概述

B. 全局transformer模块(GTB)

C. 关系transformer模块(RTB)

1. 自注意头部分

2. 交叉注意头部分

四、损失函数

五、实验

1. 对比实验

2. 消融实验

3. 定性结果

六、结论


一、背景和出发点

研究背景:糖尿病视网膜病变(DR)的自动分割对于辅助眼科医师诊断具有重要意义。虽然对这一课题进行了许多研究,但以往的工作大多过于关注网络的设计,而没有考虑病变的病理关联。

出发点:作者通过调查视网膜病变的致病原因,发现某些病变与特定的血管闭合有着某种关联性。因此作者希望通过提取多病变之间的类内依赖关系和多病变与血管的类间关系,以提高视网膜病变分割效果。

主要工作:作者提出了RTNet,采用双分支结构的GTB模块RTB模块来同时分割四种视网膜病变。其中,GTB(全局Transformer模块)用于提取病变和血管的全局特征,RTB(关系transformer模块)用于提取病变特征之间的全局依赖以及融合病变特征和血管特征

研究成果:在IDRiD和DDR数据集上进行的综合实验很好地证明了我们的方法的优越性,它实现了与最先进技术相比的具有竞争力的性能。

二、创新点

1. 提出了一种双分支结构来获取血管信息,有助于定位DR病变的位置。为了在多病灶分割中有效利用血管信息,设计了一种基于transformer机制的关系转换器模块(RTB)。据我们所知,这是第一次在眼底医学图像中使用多头transformer结构进行病灶分割。

2. 提出了全局转换模块(GTB)关系转换模块(RTB)用于检测小尺寸或边界模糊的特殊医学图像。该设计探索了DR(糖尿病性视网膜)病变之间的内在关系,从而提高了捕获感兴趣区域细节的性能。

3. 在IDRiD数据集上的实验表明,提出的方法在DR多病变分割效果上名列前茅。具体来说,我们的方法在DR多病变分割中表现最好,在HE病变分割中排名第二。在DDR数据集上的实验表明,该方法在EX、MA和SE分割任务上优于其他方法,在HE分割任务上排名第二。

三、方法实现

A. 概述

其总体架构如图所示,由主干、全局transformer模块(GTB)关系transformer模块(RTB)和分割头四个关键部件组成。

总体流程

1. 首先眼底图像经过主干得到特征图 F

2. 然后,引入由两个平行分支组成的全局transforme模块(GTB),以利用 F 中像素之间的长距离依赖关系,分别生成带有全局上下文信息的特定血管特征 F_v 和病变特征 F_l

3. 在提供病变特征的分支上,进一步整合了一个关系transformer模块(RTB),使用自注意力和交叉注意力头来构建血管和病变之间的空间关系:自注意力头仅输入病变特征 F_l,并通过自注意力机制利用长程上下文信息生成自注意力特征 F_s 。交叉注意力头同时输入病变和血管特征 F_lF_v,并将有益的细粒度血管结构信息合并到 F_v 中,产生交叉注意力特征 F_c 。得到的 F_sF_c 连接在一起形成RTB模块的输出 F_{out}

4. 最后,使用两个包含norm层和1×1卷积的兄弟头,分别根据血管特征和连接的病变特征来预测血管和病理掩模。

B. 全局transformer模块(GTB)

目的:是通过注意力机制生成带有全局上下文信息的特定血管特征 F_v 和病变特征 F_l

主体结构GTB是一个多头注意力模块,架构参考GCNet中的GC模块和NLNet中的NL模块

输入:以主干神经网络(unet)生成的 F\in \mathbb{R}^{C\times W\times H} 为输入。

输出:经过注意力提炼的特征图 F_iF_v\in \mathbb{R}^{C\times W\times H}

步骤

(1) 获取查询Q(F),K(F),V(F):输入特征图 F,采用表示为 QKV的三个生成器来将输入 F 分别转换为查询。在GTB中,生成器 Q3×3卷积和全局平均池实现,输出查询向量Q(F)\in R^{C'\times 1},其中通道数为C'=C/8。生成器KV 具有与 Q 相同的架构,除了将全局平均池化替换为reshape操作,输出K(F),V(F)\in R^{C' \times HW}

(2)在获得之后,将query和key通过矩阵乘法得到\mathcal{F}(F)。很明显,这里得到的\mathcal{F}(F)是一个空间注意力向量。算子公式如下:

                                                                \mathcal{F}(F)=K(F)^TV(F)

其中,上标T表示矩阵的转置算子。

(3) 接下来,考虑全局变换操作,将 V(F) 与softmax处理后的\mathcal{F}(F)进行矩阵乘法,得到G(F) \in R^{C' \times1},其被定义为:

                                                        G(F)= V(F)softmax(\mathcal{F}(F))

其中softmax是 \mathcal{F}(F) 的一个softmax函数。

(4)然后,通过1×1卷积,将 G(F) 的通道数从C'转换回C。再将获得的具有注意特征的 G(F) 作为输入 F 的残差项,线性嵌入 F(本质上是乘以权重参数再相加),获得最终输出 F_lF_v ,对应的算子公式如下:

                                                        F_i = WG(F)+Fi \in \{l,v\}

其中,+运算表示广播元素级求和运算,W是线性嵌入。

总结:GTB先融合通道加权特征,再融合空间加权特征与原输入信息。其中,Q(F)是一个通道注意力向量,与K(F)进行矩阵乘法,融合了通道信息的同时,提取出了一个空间注意力向量\mathcal{F}(F)\mathcal{F}(F)通过softmax归一化处理,再通过卷积恢复原通道数,再与原输入信息F 进行线性加权求和,最终融合了空间上下文信息。

Q1:步骤3中softmax的作用是什么?为何使用?

A:为了归一化,因为在提取到每个像素对其他像素的影响大小的数值后,我们希望遵从统计学的规则,以概率[0-1]的形式表示某个像素对其他像素的影响权重。

在NLNet中以矩阵形式表示两个元素之间的依赖关系,而GTB模块中只是一个向量,这引发了对问题4的思考。下图为NL模块:

Q2:每次进行矩阵相乘\otimes的目的是什么?

A:第一次进行矩阵乘法,如下图所示,是为了融合通道注意力,feature map中每一行像素都与通道向量相乘再相加,通过通道权重的筛选,最终得到一个融合了通道注意力的空间向量\mathcal{F}(F);第二次进行矩阵乘法,feature map与空间向量相乘,注意这里的feature map与空间向量虽然通道数不一样,但是空间大小相同,因此通过矩阵乘法使得每一个像素都关联到其他像素,最终提取到全局上下文信息

Q3:GTB模块最后为什么进行残差相加\oplus

A:与NL模块相同,是为了能让GTB模块可以作为一个组件直接插入任意的神经网络中,把模块设计成residual block的形式

Q4:GTB模块获取全局上下文信息的过程,经历过了平均池化,而且query和key、value的各维度大小都不一致,提取的空间信息是否还关联上下文?

A:可以,这个问题通过仔细思考问题2,即可得到解答。

C. 关系transformer模块(RTB)

目的:用于捕获病变间的类内依赖关系和病变与血管间的类间关系。

结构:由自注意头和交叉注意头组成。

输入:GTB模块的输出 F_l,F_v\in \mathbb{R}^{C\times W\times H}

输出:串联了病变区域的自注意力特征和血管、病变区域交叉注意力特征的F_{out} \in \mathbb{R}^{C\times W\times H}

步骤

GTB模块由两部分构成,自注意部分和交叉注意部分。

1. 自注意头部分

(1)输入的 F_l 经过三个生成器Q、K、V(都由一个3 × 3卷积和一个reshape操作构成)得到Q_s(F_l),K_s(F_l),V_s(F_l) \in R^{C' \times HW}

(2)Q_s(F_l),K_s(F_l) 经过一个矩阵乘法操作,得到一个关联到全局上下文的特征\mathcal{F}_s(F_l)。(观察结构图,毫无疑问,\mathcal{F}_s(F_l)中的每个像素都关联到了其他像素。)

(3)\mathcal{F}_s(F_l) 再经过一个softmax操作进行归一化,再与 V_s(F_l) 进行矩阵乘法操作,得到特征G(F_l),这个特征由 V_s(F_l) 融合了病变区域的全局信息得来。

 (4)G_s(F_l) 再经过一个1x1卷积和reshape操作,将feature map大小还原为CxHxW,再与原特征图 F_l 进行残差计算(加权之后逐元素相加)得到特征 F_s ,这个特征得到病变区域的类内依赖关系

                                                        F_s=W_sG_s(F_l)\oplus F_l

2. 交叉注意头部分

 (1)输入的 F_l 经过生成器Q得到Q_c(F_l) \in R^{C' \times HW},输入的F_v 经过生成器K、V得到K_c(F_v),V_c(F_v) \in R^{C' \times HW}

(2)Q_c(F_l),K_c(F_v) 经过一个矩阵乘法操作,得到一个关联到病变区域和血管区域的特征\mathcal{F}_c(F_l,F_v)

(3)\mathcal{F}_c(F_l,F_v) 再经过一个softmax操作进行归一化,再与 V_c(F_v) 进行矩阵乘法操作,得到特征G(F_l),这个特征由 V_c(F_v) 融合了病变区域和血管区域的交互信息得来。

(4)G_c(F_l,F_v) 再经过一个1x1卷积和reshape操作,将feature map大小还原为CxHxW,再与原特征图 F_l 进行残差计算(加权之后逐元素相加)得到特征 F_c ,这个特征融合了病变区域和血管区域的类间关系

                                                        F_c=W_cG_c(F_l,F_v)\oplus F_l

3. 最后,将特征 F_s 和特征 F_c 在通道方向进行拼接操作,得到最终的输出特征 F_{out},这个特征同时融合了病变区域和血管区域的类间关系和病变区域的类内依赖关系

四、损失函数

RTNet的损失函数主要有交叉熵损失构成:

其中,\mathcal{L}_{lesion}为病变区域的五类交叉熵损失,\mathcal{L}_{vessel}为血管区域的二类交叉熵损失,\lambda参数用于调整\mathcal{L}_{lesion}\mathcal{L}_{vessel}的占比。

五、实验

RTNet主要进行了两个实验分别是对比实验消融实验

数据集:IDRiD和DDR数据集。

评估指标:precision,recall (PR) 和receiving operating characteristic (ROC)的曲线下面积(AUC)。

1. 对比实验

RTNet在EX、MA和SE(三种病变)的AUC_ROC(ROC的下曲线面积)以及EX和SE的AUC_PR(召回率下曲线面积)中排名第一,在HE(一种病变)的AUC_ROC 和AUC_PR中排名第二。

2. 消融实验

与各种软注意力模块对比所提出的GTB模块的效果。

进行模块消融实验,验证各模块的效果。

3. 定性结果

六、结论

在本文中,作者提出了一种新颖的网络结构,采用双分支结构的GTB 和RTB来同时分割四个DR病变。该网络的优秀实验结果可以归功于GTB和RTB,它们研究了多病变之间的类内依赖关系和多病变与血管的类间关系。此外作者提到由于受到数据集的局限(专家像素级标注的成本过高),导致该网络的不足。因此一个像素级别的视网膜病变数据集是一个可改进的方向。

RTnet是Halmover大学开发的一个开源项目。该项目建立于2001年,它的目标是提供一个独立于硬件环境、灵活的通信平台。RTnet借鉴了Llnux的模块化设计方案,可以根据需要加载相应的模块。标准以太网中,网络节点之间的地位是平等的,为了保证数据的传输以确定的方式 进行。RTnet采用主从的方式实现以太网通信。由于TCP采用的三次握手协议会造成很大的开销,在传输层中RTnet仅使用了UDP协议来进行数据传输,在标准以太网中用 来进行动态地址转换的ARP协议,在RTnet中也改为使用静态的方式实现,在RTnet中MAC层使用时分多路访问仃DMA)策略访问媒体。在TDMA策略中网络的每一个成员只有在一个预先定义好的时间槽内才能发送实时数据。这样实时数据就能够以确定的方式发送。非实时数据可以在相对松散的时间槽内发送。在RTnet中有一个服务器节点和一个或多个客户端节点。在每个时间帧的开始,服务器节点发送一个SOF。所有的客户端节点都知道节点发送数据的时间槽与SOF的偏移量。客户端节点只有在属于自己的时间槽内才能发送数据。在RTnet中需要传输的数据包包含在发送任务的任务堆栈中,而接收的数据包首先从实时以太网驱动程序中放到一个栈管理器中,栈管理器根据数据包的协议类型。把数据送到相应的处理函数中。为了避免优先级翻转,堆栈管理器的优先级应该比所有使用RTnet服务的应用程序都要高。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

向岸看

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

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

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

打赏作者

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

抵扣说明:

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

余额充值