基于改进SegNet的眼底图像血管分割

2020-11-17 06:55孟娴静吕晓琪
计算机工程与设计 2020年11期
关键词:解码器解码像素

孟娴静,李 菁+,吕晓琪,2,3,谷 宇,3

(1.内蒙古科技大学 信息工程学院 模式识别与智能图像处理重点实验室,内蒙古 包头 014010; 2.内蒙古工业大学 信息工程学院,内蒙古 呼和浩特 010051; 3.上海大学 计算机工程与科学学院,上海 200444)

0 引 言

眼底图像中血管的不同形态(如直径、长度、分支、曲折等)具有医学诊断价值,可以用于心脑血管疾病和眼科疾病的检测、评估以及治疗阶段。利用计算机辅助从眼底图像中分割出血管是眼底图像分析的第一步,然而,由于眼底血管复杂的分支结构、嘈杂的背景和不同光照的差异,难度很大。

基于是否需要带人工标记的训练集,眼底血管分割方法可大致分为两类:无监督方法和监督方法。无监督方法不使用人工标记图像,工作量较小,但分割效果依赖于人工选取特征,准确率较低。Na等[1]提出了基于超像素的线操作器以区分线和边缘来分割眼底血管。Lazar等[2]提出了一种区域生长法结合相邻像素的响应矢量相似性的分割方法。监督方法以人工分割的标准图像作为训练集,并结合血管的特点,训练得到最后的分类器,往往能取得不错的效果。Soomro等[3]设计了一个完全卷积神经网络,并对其进行训练以提取血管。Dasgupta等[4]使用了卷积神经网络和结构化预测相结合的方法分割血管。Zhang等[5]提出了用具有残余连接的U-Net来进行血管分割的方法。

本文使用监督方法进行图像像素到像素的分割,基于SegNet网络,提出一种编码-多次解码的BVSNet,并设计出具有不同感受野的编码块、解码块结构,构建出不同的网络模型,通过大量实验训练得到具有最佳分割效果的网络。

1 方 法

1.1 SegNet

卷积神经网络(convolutional neural networks,CNN)在图像分割领域有着广泛的应用[6]。Long等[7]提出了完全卷积网络(fully convolutional networks),使用卷积层代替全连接层进行图像分割,自此,使用CNN进行图像分割逐渐成为热点。常用的CNN图像分割模型遵循如图1中SegNet[8]的编码器-解码器网络结构。

图1 SegNet网络结构

SegNet是一个包括编码器(Encoder)和解码器(Decoder)的对称分割网络。编码器使用VGG网络的前13层,包括数个卷积层、BN层、ReLU和池化层;每个编码器层对应一个解码器层,解码器对特征图进行上采样。SegNet的重点在于解码器对其较低分辨率的输入特征图进行上采样的方式。

由于SegNet适合训练尺寸较大的图像(360×480像素),并不适用于本实验的小尺寸图像,因此需要将SegNet进行改进。

1.2 血管分割网络blood vessel segmentation network (BVSNet)

本文基于SegNet构建一种编码-多次解码的血管分割网络BVSNet(blood vessel segmentation network),BVSNet的结构如图2所示。

图2 BVSNet结构

BVSNet是编码-多次解码的架构。编码结构有一条路径,对应多条解码路径,并在最后把所有的解码路径连接起来,输出最终分割结果。图2中的卷积块(ConvBlock)包括3×3的卷积层(Conv 3×3)、批归一化层(BN)、修正线性单元(ReLU),并设置了随机失活(Dropout)。BVSNet编码部分由卷积块、池化层(MaxPooling 2×2)组成,卷积块通过卷积操作对图像进行特征学习,池化层对图像进行尺寸减半的操作。池化操作可以增加视野,产生分辨率更低、较抽象的特征图,但是会造成空间信息、边界细节信息丢失。因此,在解码部分使用了多次解码,目的在于恢复在编码中降低分辨率时丢失的信息。

BVSNet的解码网络由卷积块、上采样层(UpSampling 2×2)构成。上采样对图像进行尺寸翻倍。解码阶段共有4条上采样路径,对编码阶段每次池化后的图像分别进行上采样,恢复成原尺寸。最终对所有解码路径获得的特征信息进行合并。BVSNet在输出时,使用2通道的1×1卷积层,并设置激活函数为softmax,产生一个二路输出,对应背景像素和血管像素的概率。BVSNet的优化算法是随机梯度下降法(stochastic gradient descent,SGD)。

1.3 编码块、解码块的设计

根据实验数据特征以及感受野的大小,BVSNet设计了不同的编码块、解码块结构。

在CNN中,感受野是每一层输出的特征图上的像素点在对应输入图上的大小。设置卷积核是3×3,stride=1,padding=0,图像经过一次卷积,输出图像每个像素点的感受野是3×3,如图3(a)所示。两次卷积后输出图像像素点对应的输入图像的感受野是5×5,如图3(b)所示。3次卷积后输出像素点对应的感受野就是7×7,如图3(c)所示。

图3 不同层数卷积的感受野大小

从图2的BVSNet网络结构中,提取如图4(b)中的编码块结构,则编码器可以被看作是4个编码块的叠加,每个编码块由若干个卷积块和池化层组成。如图4所示,在编码块(b)的基础上,减少或增加一个卷积块就得到了编码块(a)、(c)。同样,把解码器看作4个解码块的叠加,每个解码块由若干个卷积块和上采样层组成,如图5所示,其中图5(a)是BVSNet中的解码块结构。在解码块(a)的基础上,增加一个或两个卷积块就得到了解码块(b)、(c)。一层卷积块图4(a)、图5(a)对应3×3感受野,两层卷积块图4(b)、图5(b)对应5×5感受野,三层卷积块图4(c)、图5(c)对应7×7感受野。

图4 编码块结构

图5 解码块结构

1.4 网络优化方法

CNN在训练数据不够多或者训练过度时,经常会出现过拟合的现象,训练集上的误差逐渐减小,但在验证集上的误差却逐渐增大。为了防止训练过拟合,采用如下方法:

(1)随机失活(Dropout)。Dropout的方法是:当图像经过某层卷积的时候,使卷积上的一部分神经元暂时失活,让另一部分神经元进行卷积运算。Dropout使网络训练数据量减少,同时也减少了过拟合的可能性。

(2)数据集扩增(Data Augmentation)。眼底数据库图像特点:数量少,图像尺寸大,且血管形态是不断重复的图案。根据这些特点,BVSNet采用随机截取图像的方式扩增数据。如图6所示,截取时有重叠部分。每张原始图像扩增为10 000张64×64像素的图像块,训练集扩增为20万张。

图6 截取图像方式的数据扩增方法

2 实 验

本文实验是基于Tensorflow+Keras的深度学习框架。实验硬件配置为Docker集群,CPU:Intel Xeon E5-2698 v4 2.2 GHz(20-core),GPUs:NVIDIA Tesla V100,训练时使用其中一块32 G的GPU,并使用CuDNN加速;软件环境为Ubuntu OS。

2.1 数据集

实验使用的数据库是公开眼底数据库DRIVE(digital retinal images for vessel extraction)以及STARE(structured analysis of the retina)[1]。

DRIVE由佳能CR5 3CCD相机拍摄的40幅图像组成,包括20幅训练集图像和20幅测试集图像,图像尺寸为768×584像素。在训练时,训练集用来训练网络权重;测试集用来测试BVSNet的分割准确度。

STARE中有20幅用于血管分割的视网膜图像,其中10幅为训练集图像,10幅为测试集图像,图像尺寸均为605×700像素。

2.2 预处理

眼底彩色图像对比度、亮度、模糊程度都会对血管的分割产生影响。预处理可以在一定程度上排除这些信息的干扰,提高血管分割的准确性。实验采用以下几种预处理方法:

(1)提取图像的绿色通道分量。绿色通道在照片中的血管对比度最高,最容易辨识,因此选取眼底彩色图像的绿色分量进行训练。

(2)归一化处理。归一化是将RGB图像0-255的值归一化,转换到0-1之间,作用是保证所有维度上的数据都在一个变化幅度上。

(3)直方图均衡化(histogram equalization,HE)。HE是将一幅图像的直方图分布变成近似均匀分布,从而增强图像的对比度。

2.3 实验设计及实验结果分析

BVSNet首先把图像数据进行数据扩增,将图像切割成64×64像素的图像块,这些图像块最终将拼成原尺寸图像。实验结果采用准确率(accuracy,Acc)、敏感性(sensitivity,Sen)、特异性(specificity,Spe)和接受者操作特性曲线线下面积AUC这4个常用血管分割指标来对BVSNet的性能进行评估,4个指标的值越大,说明分割效果越好。

实验1是使用DRIVE数据库来确定最佳的BVSNet结构。把编码块、解码块单独分离出来,按不同方式组合编码块、解码块,就可以得到4种可用的网络模型:Model1、Model2、Model3以及BVSNet。图7展示了不同的编码块+解码块组合的网络结构。

图7 Model1、Model2、Model3的网络结构

表1显示了实验1不同网络模型的分割性能结果。从4个指标结果得出Model1的准确率(Acc)最差,但特异性(Spe)最好。BVSNet的准确率(Acc)、敏感性(Sen)和AUC数值最高,在4组实验模型中结果最好。

表1 不同编码器结构+解码器结构的结果对比

图8是上述各网络模型的分割结果,图8(a)、图8(b)分别是DRIVE测试图像的灰度图像以及相应的Ground Truth,右侧4列分别是4种网络模型对应的分割结果。如图8所示,Model1的分割结果最差,图8(c)中视盘区域的血管没有分割出来;Model2结果好于Model1,但图8(d)中仍有血管边缘缺失情况;Model3和BVSNet都取得了相对更好的结果。BVSNet的细节分割得更加细致,分割效果最好。

图8 实验1中各模型的分割结果

Model1中编码器与解码器都用了三层卷积块(7×7感受野),特征图像相对于7×7的感受野而言,尺寸过小,网络学习到的信息不足,直接导致分割效果不佳。BVSNet和Model2、Model3对比得出,解码器中使用一层卷积块(3×3感受野)比使用两层卷积块(5×5感受野)的分割效果好;编码器中两层卷积块比一层的分割效果好。

图9是BVSNet的两组分割结果。如图所示,图9(a)是原图,图9(b)是经过预处理后的灰度图像,图9(c)是Ground Truth,图9(d)显示BVSNet的最终分割结果图。可以看出,大部分血管都可以准确分割出来,只有部分细小血管仍有未分割出来。

图9 BVSNet分割结果

实验2是一组在相同的实验环境下在DRIVE数据库上训练、测试的对比实验,其结果见表2。首先将BVSNet模型与原始SegNet模型进行对比,接着选取当前分割效果较好的U-Net模型进行对比,表2中BVSNet的4种指标的数值都有提高。实验结果表明改进的方法在眼底血管分割上优于SegNet和U-Net。

表2 BVSNet与SegNet、U-Net分割结果对比

表3对比了在数据库DRIVE和STARE上BVSNet方法与其它眼底血管分割方法(包括无监督方法和有监督方法)的分割性能。DRIVE数据库上,无监督方法中,区域生长[2]、B-cosfire滤波[10]、Frangi滤波器[11]等方法准确率都在93%以上;有监督方法中,基于全卷积神经网络[4]以及回声状态网络[12]准确率到达94%以上。本文算法在准确率、特异性以及AUC上均高于其它算法。STARE数据库上,区域生长[2]的方法敏感性高于BVSNet,但其它3项指标均低于BVSNet;Frangi滤波器[12]的方法4项指标均低于BVSNet。结果表明,BVSNet方法同样适用于其它眼底图像数据库,具有良好的鲁棒性。

表3 DRIVE、STARE数据库上不同眼底血管分割方法性能比较

3 结束语

本文提出了BVSNet来对眼底图像进行血管分割。首先,对数据集进行预处理,再将图像切分成小尺寸图像块。对SegNet进行了改进,通过编码-多次解码的方式,进行图像像素-到像素的分割。然后,研究了具有不同感受野的编码块、解码块对分割效果的影响,实验结果表明,编码器使用两层卷积块、解码器使用一层卷积块分割效果最好。最后,将BVSNet与其它方法在DRIVE、STARE数据库上的分割结果进行对比,BVSNet在准确率(Acc)、特异性(Spe)和AUC高于其它分割网络,表明本分割方法准确率高。

BVSNet可以精准地完成从眼底图像中分割出血管的任务,比传统分割方法更准确、效果更好,能够为基于眼底图像的疾病筛查如:青光眼、视网膜静脉堵塞、白内障等提供技术支持;同时可以应用于糖尿病视网膜病变、心脑血管疾病的诊断,具有临床应用价值。BVSNet的方法适用于少量图像的数据集进行训练,在其它图像分割上也有一定的适用性。文中方法为以后深度学习方法的研究提供了新思路。

猜你喜欢
解码器解码像素
《解码万吨站》
像素前线之“幻影”2000
科学解码器(一)
科学解码器(二)
科学解码器(三)
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
解码eUCP2.0
“像素”仙人掌
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机