在医学诊断中,准确分割眼底血管对于理解和识别各种解剖结构至关重要。然而,由于眼底图像质量差,血管分支结构复杂,传统算法在实现精确分割方面往往面临挑战。为了解决这个问题,提出了一种名为 HiDiffSeg 的新方法,它是一种用于血管分割的从粗到细的分层扩散模型。方法将视网膜眼底图像从粗到细的增强处理策略整合到扩散模型的去噪过程中。扩散模型分为两个模块:双重引导模块(DGM)和细化引导模块(RGM)。DGM 以血管图像增强模型生成的血管骨架图像和初始去噪血管分割图像为条件。同时,RGM 以眼底图像为条件,通过迭代细化获得更精确的结果。为了强调血管边缘的重要性,引入了血管增强模块。将原始图像作为输入,生成像素级边缘关注图,赋予相应边缘像素更高的重要性。这是分层扩散模型首次应用于眼底血管分割。在三个公开的眼底视网膜数据集(即 DRIVE、STARE 和 CHASE_DB1)上使用评估指标证明了方法的准确性,并将其与 11 种最先进的眼底血管分割方法进行了比较。
Hierarchical diffusion model for blood vessel segmentation
本文提出了一种基于扩散模型的分层视网膜血管分割模型,称为 HiDiffSeg。在每个时间步骤中,首先使用 SUNet 生成粗血管分割图像。然后,通过形态学处理提取血管骨架。最后,将粗血管分割图像和血管骨架作为指导扩散模型逆过程的条件,生成中间转换。随后,将原始眼底图像作为迭代细化的条件,生成精确的血管分割图像。HiDiffSeg 的整体结构图如图 2 所示。
Vascular image enhancement
Vessel enhancement module
为了强调血管边缘的重要性,提出了一个血管增强模块。以原始图像为输入,得到了一个像素级边缘关注图,赋予相应边缘像素更高的重要性。随后,通过元素乘法调整边缘注意图的大小,使其与 SUNet 中相应的基本鲁棒块的大小相匹配,并将其集成到 SUNet 的最后五层中。利用从无监督边缘检测中生成的边缘先验,边界信息在最小的额外计算开销下得到增强。血管增强模块如图 3 所示。
边缘检测的目的是识别图像中的物体边界,这是特征提取的关键一步。采用索贝尔边缘检测器来实现这一目标(Kittler,1983 年)。Sobel 边缘检测器会独立计算原始图像在水平和垂直方向上的初始导数,然后利用梯度的绝对大小对这些分量进行积分。这一过程可表述如下 :
其中,D = √ D2 x + D2 y 表示索贝尔边缘图,I 表示原始眼底视网膜图像,* 表示卷积算子,Dx 和 Dy 分别表示沿 x 轴和 y 轴的梯度分量。为了生成最终的边缘关注图,以灵活和量身定制的方式强调边界像素,在索贝尔边缘图上结合使用了阈值和线性变换技术。假设 D(x, y) 代表像素 (x, y) 处的 Sobel 梯度值,当 D(x, y) > λmax 或 D(x, y) < λmin 时,其值设为 1,且 (1 - D(x, y) - λmin λmax - λmin )⋅ α + β,否则。这里,α、β、λmax 和 λmin 是可调参数。血管分割的关键在于检测细血管的能力。因此,当设置为(1 - D(x, y) - λmin λmax - λmin)⋅ α + β 时,与强边缘相比,弱边缘的权重更大。
Basic segmentation network
目标是使用轻量级网络生成初始分割结果,以防止整个模型变得过于复杂。首先对 UNet 进行了探索,这是医学图像分析中常用的网络。UNet 在编码器和对称解码器之间引入了多尺度跳转连接。这种架构善于融合深层特征和浅层细节,对于准确捕捉错综复杂的图像分割至关重要。
受 Galdran 等人(2022 年)提出的轻量级 WNet 的进一步启发,对 UNet 的基本架构进行了改进,并提出了 SUNet,以提高其在视网膜血管分割方面的效率和性能。Galdran 等人认为,结合模型对邻近标签值的理解可以提高最终预测的质量。
如图 3 所示,SUNet 的网络结构利用了一个基本的鲁棒块,其中包括卷积、剔除、批量归一化和唰激活。然后,连接五层鲁棒块残差,取代之前的 UNet 块。每层包含 32 个通道,大小为 3 × 3 像素。
具体来说,在医学图像中,低级和高级语义元素都至关重要。然而,医学图像通常涉及多种模态,需要设计定制网络来提取不同模态的特征。与其他 UNet 方法相比,SUNet 在基本 UNet 的编码器和解码器之间加入了对称多尺度跳转连接,增强了深层和浅层细节的整合。尽管网络规模较小,但 SUNet 以级联方式纳入了每个鲁棒块生成的接受域。初步眼底血管分割图像如图 4(b) 所示。
为了训练所提出的网络,SUNet 利用 Lin 等人提出的焦点损失来监督地面实况(Lin 等人,2017 年)。这里,V 表示初步的粗血管分割图像,pi ∈ [0, 1] 表示模型对带有标签的类别的估计概率,γ 是一个可调的聚焦参数。让 V 表示 SUNet 的输出,然后是一个 Sigmoid 层:
Vessel skeleton extraction
提取血管骨架的目的是增强未识别区域的识别能力,提供更详细的血管信息。在眼底图像中,大部分血管像素来自于粗血管,约占 77%,而窄血管仅占 23%(Yan 等,2018b)。在区分粗血管和细血管时,一般的分割方法往往不利于细血管的分割。为了平衡粗细血管像素的表示,引入了一个新模块,从而获得血管骨架作为 HiDiffSeg 的输入之一。血管骨架如图 4(d)所示。
首先,在获得的初步粗血管分割图像中,将血管骨架均匀扩展到特定宽度。形态扩张是侵蚀操作的逆操作,与图像扩张类似。形态扩张的原理是寻找局部最大值。当图像的白色或高亮区域被扩张时,图像中的线条会变粗,由此产生的操作会超出原始图像的高亮区域。这主要用于去噪目的。要将血管放大到最大宽度,需要使用三个像素的扩张运算模板。
其中,B 是卷积核,V 是初步粗血管分割图像。核 B 与图像 V 卷积,计算核 B 区域内像素点的最大值,并将其赋值给参考点对应的像素。然后,计算每条血管轮廓外矩形的宽度,这可视为血管的宽度。最后,使用形态学扩张操作将血管骨架扩张到所有血管骨架的最大宽度。