基于GAN的医学图像仿真数据集生成算法

2020-04-08 07:50钟健平
关键词:白化卷积肝脏

孟 琭, 钟健平, 李 楠

(1.东北大学 信息科学与工程学院, 辽宁 沈阳 110819; 2.沈阳产品质量监督检验院, 辽宁 沈阳 110000)

对于深度学习来说,数据集的规模和数目将很大程度地影响最终训练效果的好坏[1].但是在计算机辅助诊断领域中,由于涉及到患者隐私,研究者很难获取到大量的医学图像数据集.此外,医学图像的采集方式(如CT,MRI等)往往会伴随着有害人体健康的高辐射,同时成本极高[2].因此,如何通过人工智能的方式,以仿真图像的形式扩充现有的医学图像数据集,成为了计算机辅助诊断领域亟待解决的问题.

目前,在医学图像仿真生成领域,国内外学者大多集中在图像风格类型转换的研究上,小部分则专注于类似视网膜眼底图像等组织结构简单的图像仿真生成中[3-4],而在需求较大的肝脏图像合成领域却少有研究.

为解决这一问题,本文通过生成对抗网络[5]的方式来生成高真实度的仿真医学图像数据集.生成的数据集能够提高医学图像分类或分割算法的准确率与精确度,也可以用于年轻医师的培训.

1 方 法

1.1 算法整体方案

算法的整体方案实现主要分为以下三步:

1)对CT序列图像进行预处理,主要包括将三维图像数据解析为若干二维图像、图像格式转换、像素值归一化等.

2)本文模型是通过对pix2pixGAN[6]的改进来实现含有肿瘤的肝脏CT图像的仿真生成,如图1所示,该模型需要将CT肝脏原图与病变区域进行配对,并将该配对图像作为生成对抗网络的输入.因此,本文将肝脏CT图像中被标记为肿瘤的像素变为白色,称这个过程为“白化”, 本文将原图与“白化”后的图像进行配对,得到“配对一”;然后将其送入生成器中,得到1张合成的图像,该合成图像与“白化”图像进行配对,得到“配对二”;再将配对一和配对二同时送入鉴别器中,由鉴别器判断两个配对的相似程度.生成器和鉴别器在模型训练的过程中反复对抗,最终实现对“白化”区域中像素仿照肝脏肿瘤的灰度、纹理、形状进行填充,从而得到合成的有病变的肝脏CT图像数据.图1中,G表示生成器,D表示鉴别器,y表示原始图像,x表示对原始图像进行“白化”操作后得到的结果,G(x)表示生成器得到的结果.

3)将配对后的图片送入生成对抗网络中训练.生成对抗网络中的生成器输入病变白化的图片,然后使生成的图片中白化区域被智能填充而其他的区域则最大程度维持不变.生成的图片与真实的图片被送入鉴别器网络中进行真假鉴别,并且将损失反馈给生成器,两者不断对抗,相互优化,直至生成图片的质量达到最佳效果.

算法整体方案流程图如图2所示.

1.2 搭建生成对抗网络

与普通图像相比,医学图像有着更高的分辨率、更多的纹理、细微结构、更强的相关性、更大的存储空间以及更宽的灰度范围[7].由于医学图像直接涉及到临床医学应用,因此必须要确保医学图像的可靠性、严谨性和高质量.基于GAN的医学图像仿真算法正是基于这种理念,采用GAN的pix2pix架构[6]可以对整体肝脏图片进行合成,并且最大程度降低图像细节的模糊度和减免不必要的噪声干扰.

pix2pix架构的生成器采用的是U-Net结构[8],这是一种全卷积的网络结构.U-Net是在编码器-解码器网络的基础上,添加了“跳跃连接”,这样可以减小数据在层与层之间传递时的损耗与丢失.编码器-解码器网络是一个对称的网络,编码器通过下采样(即卷积操作)将图片的分辨率降低,然后再通过解码器上采样(即反卷积操作)还原图片的分辨率.

在图3中,卷积层是用来对图像进行特征提取的,反卷积层是进行特征还原的,ReLU和tanh激活层是将输出进行非线性处理的,BN层是进行归一化处理的.

将单通道、像素为512×512的病变组织白化图片从编码器一端输入,每经过一个层块,图片的尺寸就会缩小一半.通道数会随着卷积核数目的变化而变化,总体趋势是增加的.512×512像素、通道数为1的白化图片,经过一系列卷积操作后,变成了1×1像素、通道数为1 024的一维张量.随后一维张量输入解码器中进行反卷积解码操作,每经过1个层块,图片的尺寸就会放大1倍,而且通道数在不断减少,最终还原成512×512像素、通道数为1的合成图片.在不断对抗迭代训练后,生成的图片会越来越逼真,清晰度越来越高,病变白化区域也将会被智能填充.

而在鉴别器中,“输入图像对”共有2对:一对为白化图像与目标图像,另一对为白化图像与合成图像.这2对图像分别在鉴别器中执行相应的卷积操作(见图4).pix2pix的鉴别器与其他GAN变体的鉴别器相比,大体相同,但有两处不一样.

1)鉴别器的输入.白化图像与目标图像在平面法线方向进行拼接,之后形成一个512×512×2的三维矩阵A;同样地,输入图像与合成图像在平面法线方向也进行拼接,形成一个512×512×2的三维矩阵B.矩阵A和矩阵B同时送入鉴别器网络进行概率输出.

2)鉴别器采用了PatchGAN的思想.一般的鉴别器会根据一对输入图像输出1个0到1之间的softmax概率值,但是pix2pix的鉴别器是将输入图像划分为一个个区块.这些区块经过一层层卷积后,最后都做了softmax概率运算,然后总体输出1个大小为30×30,通道为1的概率矩阵,矩阵上每个点的数值对应着相应区块的softmax概率.最后,对大小为30×30的概率矩阵中的元素求平均值,所得平均值即为鉴别器最终的鉴别概率.由于输入的是独立的区块,大大减少了输入参数量,运算速度比直接输入整张图片的情况还要快.

在pix2pix中,采用了3个损失函数,分别由式(1)、式(2)和式(3)表示:

LL1=Ev,r~Pdata(v,r)[‖r-G(v)‖1];

(1)

Ladv(G)=Ev,r~Pdata(v,r)[lgD(v,r)fake];

(2)

Ladv(D)=Ev,r~Pdata(v,r)[lgD(v,r)real]+Ev-Pdata(v)[lg(1-D(v,G(v))fake)].

(3)

其中:LL1为L1(范数)损失,是为了减小输出图像和目标图像之间的差异所设定的,相当于粗调作用,是pix2pixGAN中必不可少的;Ladv(G)为生成器损失,生成器力图减小它,而鉴别器力图增大它;Ladv(D)为鉴别器损失,鉴别器力图减小它,而生成器力图增大它,这2个对抗损失是GAN的核心内容,它们有助于提高图像的细节度,相当于微调作用;r代表真实图像分布;v代表输入给生成器的图像分布;G(v)代表生成器合成的图像分布;D(v,r)代表鉴别器的鉴别概率.

总合成损失应为生成器损失和L1损失的加权和,由式(4)表示:

L=λadvLadv(G)+λL1LL1.

(4)

图4 鉴别器网络

2 实 验

2.1 实验环境

1)硬件环境.CPU:Intel Core i5-7500 @3.4 GHz;GPU:NVIDIA GeForce GTX 1080;内存:16 GB;显存:8 GB.

2)软件环境.操作系统:Ubuntu 16.04,64 位;Python 2.7;tensorflow 1.1;matlab 2016b.

3)数据集.2017年医学图像计算和计算机辅助干预会议中的肝脏肿瘤分割挑战赛(liver tumor segmentation challenge,LiTS)数据集.

2.2 参数设置

神经网络参数设置如表1所示.

2.3 训练结果与分析

由图5可见,训练的4条损失曲线均能够又快又稳地收敛,最终的稳定值也十分令人满意.

对测试集的合成图像与目标图像进行峰值信噪比(peak signal-to-noise ratio,PSNR)和结构相似性(structural similarity index,SSIM)[9]评估,并取平均值,评估结果如表2所示.

表1 训练参数

图5 实验损失曲线

表2 评估结果

在使用测试集生成的图片中,大部分图片的病变白化区域都得到了填充,而且填充效果非常好,完全不存在“棋盘效应”,只是或多或少的在灰度方面与目标图像存在些差异.病变白化区域填充完后与肝脏无缝衔接,之间没有明显的边缘线.病变白化区域的填充在灰度、纹理与风格上都有GAN独特的特色,而绝非简单的记忆.病变区域以外的其他区域都最大限度地保持了原状态不变,当然各个像素点之间的灰度值还是有差别的,只不过这种差别已经降到了最小,肉眼上分辨不出来.整张合成图片无论从颜色上还是结构上都显得特别逼真,很多器官组织的细节结构都体现了出来.因此可以说模型的训练是非常成功的,合成图片的质量也令人十分满意,见图6.

图6 模型在测试集中的合成效果

模型训练好后,便可用于实际生产了.从现有的病变分割序列中将病变组织提取出来(也可用DCGAN[10]生成病变组织),再将其放置到任何健康肝脏的任何合理部位,这种排列组合的搭配方式可以产生无穷的白化图片.这个世界上肝脏健康人群远超过不健康人群,而不健康人群的肝脏部位通常也不是从上到下都布满了病变组织,所以不带病变的肝脏横截面图片资源还是可观的.数不尽的病变形状加上数不尽的健康图片排列组合搭配,病变形状可以任意翻转、缩放、旋转,然后再嵌入到健康肝脏的任意合理部位,这样产生的白化图片是创造性的,而且数量足够用.

由图7可见,“嵌入病变式白化”的填充合成效果也是非常好,非常逼真,几乎不亚于图6测试集中的效果,实验证实了模型用于实际产生病变肝脏图片的可行性.

图7 “嵌入病变式白化”的合成效果

2.4 同类算法对比

本节将本文算法与其他4个同类的、广泛应用的算法进行定量比较,这4个算法包括:基于地图的图像合成算法(Atlas)[11]、基于稀疏表达的图像合成算法(SR)、基于随机森林和上下文的图像合成算法(SRF+)[12]、基于生成对抗网络的合成算法(DCAN)[13].选择的定量比较指标是PSNR,选择的比较数据集是LiTS.定量比较的结果如表3所示,通过比较可知本文算法取得了比较好的合成效果,在PSNR指标上,优于其他4个同类算法.本文算法的优势主要在于使用了深度生成对抗网络,同时通过“白化”操作对肝部肿瘤进行重点的仿真生成,并且设计了专门的损失函数来保证迭代训练过程中生成的肝部CT图像逼真.

表3 本文算法与同类算法的定量比较

3 结 语

本文面向肿瘤肝脏CT图像特点,提出了一种基于生成对抗网络的病变肝脏图像仿真生成算法,通过该算法所生成的肝脏CT图像,其平均峰值信噪比为64.72 dB,平均结构相似性为0.997 3.在实际问题的应用中,该算法表现出了良好的仿真效果,有很高的真实度,可以极大地扩充现有的肝脏CT图像数据集.

猜你喜欢
白化卷积肝脏
七种行为伤肝脏
基于全卷积神经网络的猪背膘厚快速准确测定
甘肃东部记录到山噪鹛白化型雏鸟
肝脏里的胆管癌
江西发现一例白化王锦蛇
3D腹腔镜下肝切除术在治疗肝脏肿瘤中的应用
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
肝脏病人的饮食配合