1. 引言
皮肤病的发病率和死亡率不断增长,皮肤癌已跻身最常见癌症之列[1]。皮肤病变区域在形状、颜色、大小上呈现多样性,且病变与正常区域之间边界模糊、对比度低,这使得对病变区域进行准确的分割成为一项具有挑战性的任务[2]。
目前,皮肤病变图像分割方法分为传统图像分割方法和基于深度学习的分割方法,其中深度学习方法主要基于卷积神经网络(Convolutional Neural Network, CNN)、Transformer和扩散模型。
传统分割方法主要包括阈值法、边缘检测法和区域生长法等。胡越黎等[3]提出的自适应阈值方法,能够根据图像的S域标准差选择不同方法确定分割阈值,以适应不同症状的皮肤图像分割。Yasmin等[4]使用Canny边缘检测器进行迭代分割,通过不断迭代对边缘检测图像进行中值滤波。徐国雄等[5]结合分水岭算法和区域合并算法,有效克服了过分割的不良效果。但这些传统分割方法比较依赖人工,不仅费时费力、效率低,分割效果也差强人意。
随着深度学习的发展,CNN广泛应用于各类分割任务。2015年,Ronneberger等[6]提出具有对称编解码器结构的U-Net,并引入跳跃连接,在各类医学图像分割任务中表现十分优异。之后在此基础上,Diakogiannis等[7]提出ResUnet,加入残差思想,以缓解梯度消失问题。Oktay等[8]提出AttU-Net,在U-Net的跳跃连接部分加入注意力门控机制。然而,CNN结构由于局部感受野的限制,很难捕获全局上下文信息,这可能会对分割精度产生影响,尤其是在病变区域的形状复杂或边缘不清晰的情况下。
为解决这一问题,Dosovitskiy等[9]提出了一种基于Transformer的网络,通过自注意力机制捕获长距离依赖关系,能够同时获取局部细节和全局上下文信息。之后的TransUNet [10],首次采用混合CNN-Transformer架构,有效结合了CNN在局部特征提取的优势和Transformer在全局关系建模的能力。Valanarasu等[11]提出通用医学图像分割模型MedT,引入一种门控轴向注意力模块,使用局部–全局训练策略,在多个医学图像数据集上都取得了不错的分割效果。杨澜[12]设计了双分支并行结构,能够有效提取多尺度特征信息。但Transformer架构通常需要大量的数据用于训练,而医学图像数据集通常规模较小且获取成本高,导致其在医学图像任务上的应用往往会受到更多限制。
去噪扩散概率模型(Denoising Diffusion Probability Model, DDPM) [13]在图像处理领域已经展现出了独特的优势。其训练过程具有更好的可解释性和稳定性,减少了训练中出现的模式崩溃现象,提高了模型的泛化能力。Julia等[14]提出EnsDiff,使用原始图像作为引导图像进行训练,并且在采样过程中使用隐式分割集成。Wu等[15]提出首个通用医学图像分割模型MedSegDiff,添加动态条件编码,同时通过特征频率解析器FF-Parser来消除高频噪声的影响。之后Wu等[16]又提出改进的MedSegDiff-V2,在条件UNet中使用一种新的频谱空间变压器SS-Former来实现噪声和语义特征之间的交互。尽管这些方法已经展现出很好的性能,但对于皮肤分割任务,应该加强对病变边界处的关注。Afshin等[17]在DermoSegDiff中引入了一个新的强调边界信息的加权损失函数。但这种方法需要反复调整系数来平衡边缘和非边缘区域之间的学习,而这依赖于费力的试错,临床应用难度高。因此,本研究对DermoSegDiff加以改进,强调对多尺度上下文信息的捕获,以提高模型在皮肤病变边缘处的分割精度。首先,在跳跃连接部分融入双交叉注意模块,捕获多尺度编码器之间的长距离依赖关系。其次,考虑到扩散模型参数量大的问题,在编码器部分引入更轻量级的高效增强多尺度注意机制,增强模型对病变区域的聚焦能力。另外,使用基于Haar小波下采样方法,保留更多的空间细节信息。
2. 扩散模型介绍
本文采用的核心架构基于DDPM。扩散模型包括两个过程:固定的正向扩散过程q和可训练的反向去噪过程
。在正向扩散过程中,首先将标签掩码
输入模型,随着时间步t逐步加入高斯噪声,将其转化为噪声掩码。这个过程是一个可推导的马尔可夫过程,可表示为:
(1)
(2)
其中,
表示扩散步骤的噪声方差序列,I为单位矩阵。定义
,
和
,随机采样
及其概率分布如下:
(3)
(4)
扩散模型的性质表明,从
到
的逆过程是马尔可夫过程。但条件高斯分布
的均值和方差参数未知,需要利用神经网络去学习一个模型
生成预测噪声。
给定原始图像
作为指导,和标签掩码
连接起来作为去噪网络的输入,表示为
。该过程可定义为:
(5)
通过优化负对数似然函数的变分下界得到最终的目标函数如下:
(6)
其中,
和
表示真实噪声和预测噪声。此目标函数作为网络训练过程中的损失函数,指导训练过程的更新学习。而采样过程t − 1步的图片由t步的图片减去一个预测噪声
再加上一个高斯噪声
得到,最终得到预测掩码。
3. DCA-SegDiff模型
3.1. 去噪网络模型DCA-SegDiff
本文的去噪网络采用的是一个改进的ResUnet架构,如下图1所示。模型输入包括噪声掩码x、引导图像g以及时间嵌入t。
Figure 1. Denoising network model
图1. 去噪网络模型
编码器部分EM:每个编码器模块包括x和g双路径输入,每条路径包含两个连续的残差块RB和一个注意力模块Att。相比单路径来说,双路径编码器可以学习到更加多样化的特征表示,以更好地实现特征提取[17]。为融合时间步信息,在每个残差块中都引入了时间嵌入,这是一个包括正弦位置嵌入、线性层和GELU激活函数的处理序列。将
和
的输出进行特征拼接,得到融合了噪声和图像信息的
。接着,对
的输出进行卷积操作反馈连接到
的输入上,这种反馈和特征映射相乘充当了一种注意力机制,可以突出重要特征的同时衰减一些不太重要的特征。之后
的输出经过注意力模块之后与
的输出进行特征拼接,得到另一个输出
。每个
模块最终会得到四个输出,其中(
)用于编解码器之间的跳跃连接;(
)用于传递给下一个编码器模块继续进行特征提取。
同时,编码器部分使用Haar小波下采样模块(Haar Wavelet Downsampling Module, HWD),能够保留更多的语义信息。另外需要注意的是,不同位置的编码器采用了不同的注意力机制,编码器浅层(前3层)采用了改进的线性注意力模块(Modified Linear Attention Module, MLA),编码器深层(后2层)采用了高效增强多尺度注意力模块(Efficient Enhanced Multi-Scale Attention Module, EEMA),能够更加有效地处理图像信息,提高分割精度。
跳跃连接部分:跳跃连接部分融入了双交叉注意模块(Dual Cross-Attention Module, DCA),能够有效提取多尺度编码器特征之间的全局通道和空间依赖。
底部部分BM:连接最深层的编解码器模块。将编码器最后一层的两个输出
拼接到一起传入BM部分,依次通过一个残差空洞卷积模块(Residual Dilated Convolution Block, RDB)、一个线性自注意力模块(Linear Self-Attention Module, LSA)和另一个RDB模块。RDB模块中使用空洞率为2的空洞卷积[18]替换了普通二维卷积,能够在不增加参数量的情况下扩大感受野,适用于底部特征图分辨率较小的情况,可以有效减少语义信息的损失。LSA包含一个线性注意力模块[19]和一个自注意力模块[9],自注意力模块能够捕捉序列各元素间的全局依赖关系,使网络更好地理解和处理上下文信息。与线性注意力模块结合使用,进一步增强了模型的特征表达能力。
解码器部分DM:与编码器块
的双路径不同,解码器块
是单路径。它包括两个连续的RSE模块和一个线性注意力模块EA。同时,RSE在RB模块的基础上添加了挤压激励机制(Squeeze Excitation, SE) [20],根据通道关系来调整各权重大小,自动校准每个特征通道的重要性。与跳跃连接部分的DCA模块结合使用,进一步丰富了网络对特征的处理和解析能力。将应用
模块之前和之后的特征图分别与编码器块的输出(
)连接起来,完成编解码器之间的跳跃连接。最后经过一个MLA模块,得到最终的输出。
3.2. Haar小波下采样模块
传统的下采样方法如最大池化或跨步卷积,可能会丢失一些重要的空间细节信息,如边界和纹理信息。为了减少网络下采样过程中的信息损失,这里采用了一种Haar小波下采样模块HWD,利用Haar小波变换来降低特征图的空间分辨率,以保留尽可能多的信息[21],如图2所示。
Figure 2. Haar-wavelet downsampling module
图2. Haar小波下采样模块
在HWD模块中,首先对输入的特征图进行二维离散Haar小波变换,得到低频分量A、水平方向的高频分量H、垂直方向的高频分量V和对角线方向的高频分量D。低频分量包含了图像的基本轮廓信息,而高频分量则包含了边缘、纹理等细节信息。接着,从高频分量中提取出不同方向的高频分量进行重组,构建新的特征图。最后,将处理后的低频信息和重组后的高频信息拼接起来,并通过一个包含卷积、批归一化和RELU激活函数的处理序列,生成最终的下采样特征图。
3.3. 改进的注意力模块
高效多尺度注意力模块通过其中的并行子结构,能够同时处理多尺度的特征信息,同时使用了更少的参数[22]。为了让网络能够学习到更丰富的多尺度特征信息,解决皮肤病变区域边界模糊等问题,本研究在网络编码器深层采用了一种高效增强多尺度注意模块EEMA,以满足深层网络对复杂特征提取的需求,且参数量更少。而在编码器浅层,由于特征相对简单且保留了较多原始信息,采用了改进的线性注意力模块MLA。下图3给出了MLA模块和EEMA模块结构。
Figure 3. Modified attention module
图3. 改进的注意力模块
在MLA模块中,使用线性层将输入特征映射到查询(Q)、键(K)和值(V)。经过Softmax函数运算后通过一个卷积层输出,可表示为:
(7)
其中,
和
分别表示Q和K的规范化函数。
另外,MLA模块在普通线性注意力模块中增加了预归一化操作和残差连接,表示为如下形式:
(8)
预归一化操作有助于保持变量稳定,减少训练过程中的梯度消失或爆炸问题;残差连接可以加速模型收敛,使模型更加高效地学习皮肤病变区域的多尺度特征信息[7]。
在EEMA模块中,将输入
在通道维度方向上划分为G个子特征,使模型能够同时处理多尺度的信息。接着,引入多尺度并行子网络,使用三个并行子路径来提取不同尺度的特征权重。在两个1 × 1分支上,沿着宽度和高度两个方向分别进行一维全局平均池化,以分别在两个空间方向上编码通道信息。接着,将池化后的特征图拼接在一起,通过1 × 1卷积和激活函数得到两个新的特征图,分别表示高度和宽度方向上的注意力权重。最后,将这两个注意力权重与子特征图相乘进行加权,再经过归一化操作得到特征图
。在3 × 3分支上,通过3 × 3卷积捕获多尺度特征表示,得到特征图
。
使用跨空间学习的方法对并行子网络的输出特征图
,
进行聚合,得到如下四个注意力权重矩阵:
(9)
(10)
(11)
(12)
通过矩阵点积操作计算两组注意力权重的加权和,以捕获像素级配对关系,突出全局上下文信息。得到最终的注意力权重矩阵weights:
(13)
再将各组的子特征图与注意力权重矩阵相乘得到最终加权后的输出特征图。另外,EEMA模块在高效多尺度注意力模块中增加了预归一化操作和残差连接,表示为如下形式:
(14)
浅层MLA模块利用线性映射处理简单特征,加以预归一化和残差连接来稳定训练和加速收敛;深层EEMA模块通过多尺度并行子结构处理复杂的多尺度信息,且参数量更少。二者结合有效利用了网络不同位置的特征处理优势,提升分割精度。
3.4. 双交叉注意模块
双交叉模块可以同时接受来自各层编码器的多尺度特征嵌入,按顺序捕获多尺度编码器特征之间的全局空间和通道依赖关系,来解决编解码器特征之间的语义差距[23]。为有效提取多尺度的上下文信息,提高模型在皮肤病变边缘处的分割准确度,本研究在网络跳跃连接部分融入双交叉注意模块DCA。整体结构如图4所示。
Figure 4. Dual cross-attention module
图4. 双交叉注意模块
在DCA模块中,首先经过一个多尺度特征嵌入模块,从5个编码器阶段提取多尺度特征表示。使用2D平均池化进行特征提取,再利用1 × 1深度可分离卷积进行映射,对应得到的特征表示为:
(15)
其中,
。接着,对每层得到的
依次通过跨空间和通道注意模块,并加以残差连接。
通道交叉注意CCA:首先对
进行层归一化,沿通道维度进行拼接创建键(K)和值(V),同时使用
进行查询(Q),计算点积注意力,然后通过Softmax函数将结果投影回原始维度。最后,使用深度可分离卷积得到CCA部分的输出,并将其作为SCA模块的输入。
空间交叉注意SCA:类似的,首先进行层归一化操作,沿通道维度进行拼接作为查询(Q)和键(K),使用
作为值(V)。接着,计算点积注意力,通过Softmax函数将结果投影回原始维度。
最后,对SCCA部分的输出特征图进行上采样,与原始输入相加形成残差连接。最后,通过BN层归一化和RELU激活处理,连接到解码器部分,完成跳跃连接。另外,在解码器中加入挤压激励机制,实现了对特征的动态加权。与DCA模块结合使用,进一步丰富了网络对特征的处理和解析能力,能够在保持计算效率的同时进一步提升分割性能。
4. 实验与结果分析
4.1. 数据集与数据预处理
为验证算法性能,本文使用了三个公开的皮肤病变分割数据集,ISIC2018、PH2和HAM10000,使得实验结果更具可比性和普遍性。
ISIC2018数据集[24]包含2594张图像,其中1815张用作训练,259张用作验证,520张用于测试。PH2数据集[25]包含200张图像,其中80张用作训练,20张用作验证,100张用作测试。HAM10000数据集[26]包含10,015张图像,其中7200张用作训练,1800张用作验证,1015张用作测试。
本文对这三个数据集进行了与文献[27]相同的预处理操作。在训练过程中,使用随机噪声、随机翻转等方法进行数据增强,提高模型的泛化能力。实验中所有图像分辨率统一调整为128 × 128像素。
4.2. 实验设置
4.2.1. 实验环境
本文所有实验基于Python3.8和PyTorch框架,使用NVIDIA GeForce RTX 3090的GPU和24 GB的内存。输入标签掩码为1通道,引导图像为3通道。扩散过程时间步设置为T = 250,定义正向扩散过程加入的噪声标准差
,
,噪声强度随时间步呈线性增加。训练过程中使用的优化器是Adam,超参数设置为[0.7, 0.99]。设置初始学习率为0.0001,如果在连续5个轮数性能没有提升则降低为之前的0.5倍。
仿照文献[17]的训练方法,对每个数据集进行320,000次的迭代训练。训练过程中按照验证集损失最小的方式保存模型文件。用于训练的批量大小设置为8,验证和测试过程的批量大小设置为32。测试过程集成5次模型的运行结果,以产生更稳定和高质量的输出。训练过程使用指数移动平均(Exponential Moving Average, EMA) [28]来计算模型参数的指数加权平均值,将这个平均值用于下一步的参数更新,这样可以避免由于参数更新过大而导致的训练不稳定问题。设定在200个训练步之后开始更新,每步更新一次,指数移动平均因子为0.9999,倒数乘法因子为1.0,指数因子为0.95。
4.2.2. 评价指标
为了评估所提出模型的有效性,本文选取了Dice相似系数(Dice)、Jaccard相似系数(也叫交并比,IoU)、准确度(Accuracy, Acc)、灵敏度(Sensitivity, SE)、特异度(Specificity, SP)以及豪斯多夫距离(Hausdorff Distance, HD)这6个常用的医学图像分割评价指标来对模型的性能进行评估,其中以Dice相似系数为主要评价指标。
4.3. 实验结果
4.3.1. 对比试验
Table 1. Experimental results of different models on ISIC2018 dataset
表1. 不同模型在ISIC2018数据集上的实验结果
模型 |
ISIC2018 |
Dice |
IoU |
Acc |
SE |
SP |
HD |
U-Net |
0.8573 |
0.7503 |
0.9214 |
0.8618 |
0.9439 |
26.4572 |
AttU-Net |
0.8527 |
0.7432 |
0.9188 |
0.8572 |
0.9421 |
29.0955 |
MedT |
0.8751 |
0.7987 |
0.9359 |
0.8979 |
0.9391 |
11.5169 |
MedSegDiff |
0.8548 |
0.7718 |
0.9267 |
0.8851 |
0.9577 |
15.0613 |
EnsDiff |
0.8654 |
0.7900 |
0.9324 |
0.8582 |
0.9746 |
11.8954 |
DermoSegDiff |
0.8851 |
0.7940 |
0.9398 |
0.8468 |
0.9749 |
11.6461 |
DCA-SegDiff (Ours) |
0.8944 |
0.8089 |
0.9432 |
0.8771 |
0.9682 |
10.8902 |
Table 2. Experimental results of different models on PH2 dataset
表2. 不同模型在PH2数据集上的实验结果
模型 |
PH2 |
Dice |
IoU |
Acc |
SE |
SP |
HD |
U-Net |
0.8905 |
0.8026 |
0.9264 |
0.8357 |
0.9770 |
35.9472 |
AttU-Net |
0.9178 |
0.8481 |
0.9434 |
0.8818 |
0.9778 |
36.5759 |
MedT |
0.8990 |
0.8292 |
0.9232 |
0.8470 |
0.9903 |
12.5720 |
MedSegDiff |
0.8710 |
0.7856 |
0.9034 |
0.8626 |
0.9692 |
18.9947 |
EnsDiff |
0.9332 |
0.8791 |
0.9480 |
0.9161 |
0.9783 |
10.4538 |
DermoSegDiff |
0.9238 |
0.8584 |
0.9484 |
0.8745 |
0.9896 |
11.5919 |
DCA-SegDiff (Ours) |
0.9446 |
0.8950 |
0.9604 |
0.9431 |
0.9700 |
9.8265 |
Table 3. Experimental results of different models on HAM10000 dataset
表3. 不同模型在HAM10000数据集上的实验结果
模型 |
HAM10000 |
Dice |
IoU |
Acc |
SE |
SP |
HD |
U-Net |
0.8918 |
0.8048 |
0.9480 |
0.8993 |
0.9632 |
16.9833 |
AttU-Net |
0.9108 |
0.8362 |
0.9572 |
0.9168 |
0.9698 |
14.2049 |
MedT |
0.9247 |
0.8723 |
0.9635 |
0.9511 |
0.9640 |
8.6837 |
MedSegDiff |
0.9138 |
0.8525 |
0.9595 |
0.9196 |
0.9740 |
9.9713 |
EnsDiff |
0.9136 |
0.8571 |
0.9627 |
0.9147 |
0.9797 |
8.1425 |
DermoSegDiff |
0.9386 |
0.8977 |
0.9681 |
0.9308 |
0.9814 |
6.3815 |
DCA-SegDiff (Ours) |
0.9445 |
0.8949 |
0.9738 |
0.9374 |
0.9851 |
6.3609 |
Figure 5. Comparison of experimental results on ISIC2018 dataset
图5. ISIC2018数据集上的实验结果对比
Figure 6. Comparison of experimental results on PH2 dataset
图6. PH2数据集上的实验结果对比
Figure 7. Comparison of experimental results on HAM10000 dataset
图7. HAM10000数据集上的实验结果对比
为了进一步分析所提出方法的有效性,将其与现有的六种模型方法进行了比较。为保证实验的公平性,采取相同的预处理操作,训练策略与原论文保持一致。实验结果如表1~3所示,表中用加粗加黑表示最好的结果,加下划线表示第二好的结果。
从对比实验结果来看,所提出模型在三个数据集上的分割性能基本优于其他参与比较的模型方法,主要指标Dice系数分别达到了0.8944、0.9446、0.9445,且前三个指标Dice、IoU、Acc值都是最好或次好的。模型结果在ISIC2018、PH2和HAM10000三个公开的皮肤病变分割数据集上进行测试验证,进一步说明了模型的泛化能力较好。
为了更加直观地对比各个模型算法在分割效果上的优劣,给出ISIC2018、PH2和HAM10000三个数据集上的实验结果对比,如图5~7所示。从对比结果来看,所提出的模型能够有效地分割出皮肤病变区域。即使在面对病变区域边界复杂、对比不清晰或是有毛发遮挡的情况时,所提出模型也能得到不错的分割结果,而其他模型可能会出现有伪影或是边界分割不完全的问题。
4.3.2. 消融实验
该部分以ISIC2018数据集为例,对各模块的有效性进行了检验。在相同参数设置的情况下,以DermoSegDiff为基线模型,首先将网络减少一层,同时将BM部分的卷积替换为空洞卷积,然后依次对HWD模块、EEMA模块以及DCA模块进行消融实验,并分别给出评价指标值以及模型参数量的变化情况,实验结果如下表4所示。
在消融实验中,首先将基线模型的网络层数减少一层,同时为保证充足的感受野,将BM部分的卷积替换为空洞卷积。这一改动不仅提高了模型的分割性能,使得Dice系数提升了0.13%,同时模型的参数量显著减少至原本的一半。在此基础上,进一步引入Haar小波下采样模块得到模型“+HWD”,可以在保持模型参数量不明显增加的情况下使Dice再次提高了0.24%。接着,在编码器深层使用EEMA模块替换掉原本的MLA模块,得到模型“+HWD + EEMA”,Dice系数再次提高了0.37%,同时降低了模型的参数量。最后,在跳跃连接部分融入DCA模块,并在解码器部分添加了挤压激励机制,得到最终模型“+HWD + EEMA + DCA (DCA-SegDiff)”,Dice系数又提高了0.19%,最终达到89.44%,同时并没有带来模型参数量的显著增加。相较基线模型,DCA-SegDiff不仅显著减少了模型参数量,并且在分割指标上得到了一定程度的提高,证实了所作改进的有效性。
Table 4. Comparison of ablation experimental results
表4. 消融实验结果对比
模型 |
Dice |
IoU |
Acc |
SE |
SP |
HD |
参数量(M) |
基线模型(DermoSegDiff) |
0.8851 |
0.7940 |
0.9398 |
0.8468 |
0.9749 |
11.6461 |
321.18 |
网络减少一层,BM替换为空洞卷积 |
0.8864 |
0.7960 |
0.9403 |
0.8507 |
0.9741 |
11.3981 |
156.03 |
+HWD |
0.8888 |
0.7999 |
0.9416 |
0.8523 |
0.9753 |
11.3626 |
156.04 |
+HWD + EEMA |
0.8925 |
0.8059 |
0.9405 |
0.9017 |
0.9551 |
10.8842 |
154.74 |
+HWD + EEMA + DCA (DCA-SegDiff) |
0.8944 |
0.8089 |
0.9432 |
0.8771 |
0.9682 |
10.8902 |
156.79 |
4.4. 进一步讨论
另外发现,数据集中个别标签并不完全准确,但这种医生手工分割导致的误差是难以避免的。下图8中蓝色区域表示所提出模型预测结果,绿色区域表示注释标签。可以看出,在某些边缘复杂的情况下,所提出方法在一定程度上可以弥补标签本身的不足,表现出更优的分割效果。
Figure 8. Label restriction
图8. 标签限制
5. 结论
本文提出了一种新的基于扩散模型的皮肤病变分割模型DCA-SegDiff,并在ISIC2018、PH2、HAM10000三个公开的皮肤病变分割数据集上进行实验验证,主要分割指标Dice分别达到了0.8944、0.9446、0.9445,优于参与比较的其他模型,证实了本模型的优势和泛化能力。在可视化结果对比图中可以看出,所提出模型即使在边缘复杂等情况下依然可以得到不错的分割结果,并进一步通过消融实验证实了各模块的有效性。相比基线模型DermoSegDiff,本文方法不仅在分割性能上得到提升,参数量也显著减少。但扩散模型的通病是模型参数量大,运行时间比较长,下一步将继续尝试对模型进行轻量化,减少模型参数量,提高模型运行效率。