计算机断层扫描(CT)可以提供患者内部器官的3D视图,有助于疾病诊断,但它对患者的辐射剂量更大,而且CT扫描仪比x光机更昂贵。传统的CT重建方法需要通过对身体的全面旋转扫描进行数百次x射线投影,这在典型的x光机上无法完成。在这项工作中,我们建议使用生成对抗网络(GAN)框架从两个正交x射线重建CT。利用一种特殊设计的发生器网络,将数据维数从2D (x -ray)提高到3D (CT),这是以往GAN研究中没有解决的问题。提出了一种新的特征融合方法,将两个x射线信息进行融合。将均方误差(MSE)损失和对抗性损失结合起来训练生成器,从而在视觉上和定量上获得高质量的CT体积。在公开的胸部CT数据集上进行的大量实验证明了所提出方法的有效性。这可能是低成本x光机的一个很好的增强,可以在几个小众应用中为医生提供类似ct的3D体积。
1895年Wilhelm Rntgen发现x射线后,x射线在临床实践中得到了广泛应用。这是第一个使我们能够无创地看到人体并诊断内部解剖结构变化的成像方式。然而,所有的组织都被投影到一个2D图像上,相互叠加。虽然骨骼清晰可见,但软组织往往难以分辨。计算机断层扫描(CT)是一种成像方式,它从一组x射线(通常至少100张图像)中重建三维体积,在身体周围的x射线设备的充分旋转中捕获。CT的一个突出优势是将组织呈现在三维空间,完全解决了重叠问题。然而,CT扫描对患者的辐射剂量要大得多(取决于CT重建所需x射线的数量)。此外,CT扫描仪的成本往往比x光机高得多,这使得它在发展中国家不太容易获得。
在数百个x射线投影中,标准的重建算法,如滤波反投影(傅里叶变换)或迭代重建,可以准确地重建一个CT体[14]。然而,数据采集需要x光设备围绕患者快速旋转,这在典型的x光机上无法完成。在这项工作中,我们提出从两个正交的视图平面捕获的双平面x射线重建CT体积。主要的挑战是x射线图像存在严重的身体内部信息模糊性,其中CT体积的数量可以与投影到2D上的相同输入x射线完全匹配。如果我们用传统的CT重建算法寻找通用解,似乎是无法解决的。然而,人体解剖学受到了很好的限制,我们可以通过机器学习技术,特别是深度学习(DL)方法,从一个大型训练集中学习从x射线到CT的映射。最近,生成对抗网络(GAN)[11]已被用于医学成像中的跨模态图像转移[3,5,30,39](模态是数据存在的一种形式,数据存在的形式会有所不同(文本、音频、视频),只使用一种模态往往过于单一,使用其他模态可以丰富对同一事物的认识),并证明了其有效性。但是,之前的工作只处理相同维度的输入和输出数据。在这里,我们提出了x2ct - gan,它可以从双平面x线重建CT,超越了不同模式和维度的数据限制(图1)。
这项工作的目的不是用x光代替CT。虽然所提出的方法可以准确地重建总体结构,但小解剖结构仍然存在一些伪影。然而,所提出的方法可能会在临床实践中有一定应用前景。例如,我们可以准确测量主要器官(如肺、心脏和肝脏)的大小,或者在重建的CT扫描上诊断位置不正确的器官。它还可用于放射治疗的剂量规划,或用于微创干预的术前规划和术中指导。这可能是低成本x光机的一个很好的增强,因为医生也可以得到具有一定临床价值的类似ct的3D体积。
虽然所提出的网络也可以用于从单个x射线重建CT,但我们认为使用双平面x射线是一个更实际的解决方案。首先,CT重建从单一x线对象过多的模糊,而双平面x线提供额外的信息,从两个视角是互补的。在我们的对比实验中获得了更准确的结果,峰值信噪比(PSNR)提高了4 dB。其次,双平面x光机已经在临床上可用,它可以同时捕获两个正交的x射线图像。并且,在临床上也可以通过将x射线设备旋转到新的方向进行第二次x射线成像,用单平面机器捕获两个正交的x射线。
训练X2CT-GAN的一个实际问题是缺乏配对的x射线和CT 1。从患者身上收集这种配对数据是昂贵的,而且让患者接受额外的辐射剂量也是不道德的。在这项工作中,我们使用从大型公开的胸部CT数据集[1]生成的合成x射线来训练网络。给定一个CT体积,我们使用数字重建x线片(DRR)技术[28]模拟两个x线,一个来自后前视图(PA),另一个来自侧位视图。虽然DRR合成x射线非常逼真,但真实x射线和合成x射线之间仍然存在差距,特别是在更精细的解剖结构中,例如血管。因此,我们进一步利用CycleGAN[41]来学习可以传输到合成数据的真正的x射线样式。关于样式转换操作的更多信息可以在补充材料中找到。
图2。X2CT-GAN模型概述。RL和PL是重构损耗和投影损耗的缩写。
综上所述,我们做出以下贡献:
我们是第一个用深度学习探索双平面x射线CT重建的人。为了充分利用两种不同视角的输入信息,提出了一种新的特征融合方法。
我们提出了X2CT-GAN,如图2所示,将数据维数从输入增加到输出(即从2D X-ray增加到3D CT),这在之前的GAN研究中没有解决。
我们提出了一种新的跳跃连接模块,可以更自然地连接2D和3D特征图。
我们使用合成x射线来学习从2D到3D的映射,而CycleGAN在输入到网络之前将真实x射线传输到合成风格。因此,尽管我们的网络是用合成x射线训练的,但它仍然可以从真实的x射线重建CT。
与其他基于可见光的重建算法相比[7,9,18],我们基于x射线的方法可以重建表面和内部结构。
基于深度学习的模型往往存在训练数据不足的问题,在训练过程中会陷入次优状态==(当模型训练不充分或数据量有限时,模型容易陷入次优状态,即无法找到最优解,而只能找到比较好但不是最好的解决方案。),甚至对小数据集进行过拟合。为了缓解这一问题,合成数据被用来促进训练过程[33,39]。因此,合成接近目标分布的真实图像是一个关键前提。之前的研究如pix2pix==[17]可以进行像素级图像到图像的传输,CycleGAN[41]具有学习两个未配对数据集之间映射的能力。在医学影像界,将源模态转换为目标模态源模态和目标模态通常指的是不同的数据分布或表示方式。源模态通常是指输入数据的原始表示方式,而目标模态则是希望将输入数据转换成的表示方式。的研究已经有相当多的成果,如3T MRI转换为7T MRI[3]、MRI转换为CT[5,30]、MRI与CT双向转换[39]等。我们的方法与之前的跨模态传输有两个不同之处。首先,在上述所有作品中,输入和输出的尺寸是一致的,例如2D到2D或3D到3D。在这里,我们想要将2D x射线传输到3D体积。为了应对这个挑战,我们提出了X2CTGAN,它集成了两种机制来增加数据维度。其次,我们的目标是从具有临床价值的双平面x光片中重建精确的3D解剖,而不是丰富训练集。逼真的图像(例如,由纯噪声输入[11]生成的图像)可能已经对训练有益。然而,我们的应用程序进一步要求图像在解剖学上是准确的。
从2D投影中提取3D模型是计算机视觉中研究较多的课题[7,9,18]。由于大多数物体是不透明的,只有外表面的模型可以重建。x射线可以穿透大多数物体(除了厚金属),不同的结构覆盖在2D图像上。因此,从x射线中提取3D模型所使用的方法与计算机视觉界所使用的方法有很大的不同。1990年初,Caponetti和Fanelli根据背光投影、多边形网格和b样条插值[6],用两条x射线重建了一个骨骼模型。近年来,有多篇论文通过统计形状模型或其他先验知识研究了骨、肋骨和肺的重建[8,2,19,24,21,23,22]。与我们的方法不同,这些方法不能生成类似3D ct的图像。此外,虽然他们可能能够得到精确的模型,但如果我们将这些模型推广到重建其他器官,则必须事先准备一个复杂的几何模型,这限制了他们的应用场景。
经典的CT重建算法,如滤波反投影和迭代重建方法[14],需要在对身体进行全旋转扫描时捕获数百个x射线。在最近的工作中,基于深度学习的方法也被用于提高性能[38,12]。[38]的输入是x射线正弦图,而我们的输入是人类可读的双平面x射线。[12]主要处理有限角CT补偿问题。与我们的工作更相关的是[13],它使用卷积神经网络(CNN)从单张图像断层扫描中预测底层3D物体的体积。然而,我们认为单次x射线不足以准确重建3D解剖结构,因为它有太多的模糊性。例如,我们可以沿着投影方向拉伸或翻转一个物体而不改变投影图像。从我们的实验中可以看出,具有两个正交投影的双平面x射线可以显著提高重建精度,这得益于附加视图提供的更多约束。[13]重建的图像比较模糊,临床应用价值有限。结合对抗性训练和重建约束,我们的方法可以提取更精细的解剖结构(例如肺内的血管),这显著提高了视觉质量。
GAN[11]是最近提出的有效训练生成模型的建议,该模型已经证明了捕获真实数据分布的能力。条件GAN[29]作为原始GAN的扩展,通过在附加输入(可以是类标签、部分数据甚至来自不同模态的数据)上调整生成模型,进一步改进了数据生成过程。受条件GANs成功的启发,我们提出了一种新的解决方案来训练生成模型,该模型可以从双平面2D x射线重建3D CT体。在本节中,我们首先介绍几个用于约束生成模型的损失函数。
GAN的初衷是学习深度生成模型,同时避免在其他策略中出现的许多难以处理的概率计算,即最大似然估计。学习过程是一个双人游戏,其中鉴别器D和生成器G将相互竞争。最终目标是学习与真实数据分布pdata(x)匹配的生成器分布pG(x)。一个理想的生成器可以通过鉴别器生成与真实样本难以区分的样本。更正式地说,最小最大博弈可以概括为以下表达式:
其中z是从噪声分布中采样的。
因为我们想要学习x射线到CT的非线性映射,所以生成的CT体积应该与输入x射线提供的语义信息一致。在尝试了条件GAN的不同突变体后,我们发现LSGAN[27]更适合我们的任务,并将其应用于指导训练过程。条件LSGAN损耗定义为:
其中x由两条正交的双平面x射线组成,y为对应的CT体积。与公式(1)中定义的原始目标函数相比,LSGAN将对数损失替换为最小二乘损失,有助于稳定对抗性训练过程,实现更真实的细节。
条件对抗性损失试图使预测看起来真实。但是,它不能保证G能生成一个与输入保持结构一致性的样本。此外,CT扫描不同于自然图像在颜色和形状上的多样性,对三维内部结构的精度要求更高。因此,需要一个额外的约束来强制重建的CT在体素上接近地面真理。前人将重构损失[32]与对抗损失相结合,取得了积极的改进。我们也遵循这一策略,并获得了如表1所示的高PSNR。我们的重建损失定义为MSE:
前面提到的重建损失是一种体素损失,它加强了3D空间中的结构一致性。为了提高训练效率,可以使用更简单的形状先验作为辅助正则化。受[18]的启发,我们推动预测体积的2D投影,以匹配不同视图中对应的地面真相。正交投影代替透视投影来简化过程,因为这种辅助损失只关注一般形状的一致性,而不是x射线的准确性。我们选择三个正交的投影平面(轴向、冠状和矢状),如图2所示,遵循医学影像界的惯例)。最后,提出的投影损失定义如下:
其中P^ax、Pco和Psa分别表示轴向、冠状面和矢状面的投影。L1距离用于强制更清晰的图像边界。
根据对抗性损失、重构损失和投影损失的定义,我们最终的目标函数表示为:
其中,λ1、λ2和λ3控制了不同损失项的相对重要性。在我们的X-ray to CT重建任务中,对抗损失在促进合成输出的局部真实感方面起着重要作用,但在优化过程中应优先考虑全局形状一致性。考虑到这一点,我们在实验中设置λ1 = 0.1, λ2= λ3 = 10。
在本节中,我们将介绍我们提出的用于二维双平面x射线三维CT重建任务的网络设计。与其他3D GAN架构类似,我们的方法涉及一个3D生成器和一个3D鉴别器。这两个模型交替使用前一节中定义的监督进行训练。
如图3所示,所提出的3D发生器由三个独立组件组成:两个具有相同架构的编码器-解码器网络,分别用于后前(PA)和侧x射线,以及一个融合网络。编码器-解码器网络的目标是学习输入二维x射线到目标三维CT在特征空间中的映射关系,融合网络负责用两个编码器-解码器网络融合的双平面信息重建三维CT体。由于我们在重建任务中的训练过程涉及从两种不同的模式和维度在输入和输出之间循环信息,因此对网络架构进行了一些修改以适应挑战。
图3。X2CT-GAN发生器的网络架构。两个具有相同结构的编码器-解码器网络分别用于后前x射线(PA)和侧x射线。这两个编码器-解码器网络之间的另一个融合网络负责融合来自两个视图的信息。连接A, B, C的详细情况见图4。
密集连接编码[15]在特征提取过程中具有显著的优势。为了优化利用来自二维x射线图像的信息,我们将密集模块嵌入到生成器的编码路径中。如图3所示,每个密集模块由下采样块(stride=2的二维卷积)、密集连接的卷积块和压缩块(输出通道减半)组成。级联的密集模块对输入图像的不同级别信息进行编码,并沿不同的快捷路径传递给解码器。
桥接2D编码器和3D解码器一些现有的编码器-解码器网络[17,25]通过卷积连接编码器和解码器。在纯2D或3D编码-解码过程中没有障碍,但我们特殊的2D到3D映射过程需要新的设计来连接二维信息。在[40]的激励下,我们将全连接层扩展到一个新的连接模块,命名为connection - a(图4a),以桥接生成器中间的2D编码器和3D解码器。为了更好地利用2D-3D生成器中的跳过连接,我们设计了另一个新的连接模块,命名为connection - b(图4b),将低级特征从编码器传递到解码器。
图4。不同类型的连接。Connection-A和Connection-B是为了增加特征图的维数,Connection-C是为了融合来自两个不同视图的信息。
更具体地说,连接- a通过完全连接的层实现了2D-3D转换,其中最后一个编码器层的输出被压平并拉长为进一步重塑为3D的1D矢量。然而,在这种转换过程中,大部分二维空间信息会丢失,因此我们只使用Connection-A来连接最后的编码器层和第一个解码器层。对于其余的跳过连接,我们使用Connection-B,并采取以下步骤:
1)通过一个基本的二维卷积块强制编码器的通道数与相应解码器一侧的通道数相等;
2)沿第三轴复制二维信息,将二维特征映射扩展为伪三维特征映射;
3)使用基本的三维卷积块对伪三维特征图进行编码。在网络的两个部分之间穿梭的丰富的低级信息对输入和输出之间的形状和外观施加了很强的相关性。
通常情况下,从正面视角拍摄的2D照片不能保留物体的横向信息,反之亦然。在我们的任务中,我们利用从两个正交方向捕获的双平面x射线,其中互补的信息可以帮助生成模型获得更准确的结果。两个编码器-解码器网络并行地从每个视图中提取特征,同时设置第三个解码器网络来融合提取的信息并输出重建卷。由于我们假设双平面x射线是在一个可以忽略的时间间隔内捕获的,这意味着没有患者运动引起的数据移位,我们可以将提取的特征转换到相同的坐标空间后直接平均,如图4c所示。两个解码器输出之间的任何结构不一致都将被融合网络捕获并反向传播到两个网络。
PatchGANs由于其良好的泛化特性,在最近的工作中被频繁使用[26,17,25,41,35]。我们在鉴别器网络中采用了类似于Phillip等[17]的架构,命名为3DPatchDis- criminator。它由三个conv3d−norm−relu模块组成,stride = 2, kernelsize = 4,另一个conv3d−norm−relu模块stride = 1, kernelsize = 4,最后一个conv3d层。这里,conv3d表示3D卷积层;Norm代表实例规范化层[34];relu表示一个整流线性单位[10]。所提出的鉴别器体系结构改进了继承自PatchGAN框架的鉴别能力,可以区分真实或虚假的3D卷。
发生器和鉴别器按照标准过程[11]交替训练。我们使用亚当解算器[20]来训练我们的网络。Adam的初始学习率为2e-4,动量参数β1 = 0.5, β2 = 0.99。在训练50个epoch后,我们采用线性学习率衰减策略将学习率降低到0。我们总共训练我们的模型100个epoch。
由于实例归一化[34]已被证明在图像生成任务中优于批量归一化[16],因此我们使用实例归一化来正则化生成器的中间特征映射。在推理时,我们观察到,如果我们使用测试批次本身的统计量,而不是训练批次的运行平均值,可以获得更好的生成结果,如[17]所示。受GPU内存限制,我们所有的实验都将批处理大小设置为1。
在本节中,我们将介绍一个基于LIDC-IDRI[1]构建的增强数据集。我们使用几个广泛使用的指标来评估所提出的X2CT-GAN模型,例如峰值信噪比(PSNR)和结构相似性(SSIM)指数。为了证明我们方法的有效性,我们重现了一个名为2DCNN[13]的基线模型。公平的比较和全面的分析,以证明我们提出的方法比基线和其他突变体的改进。最后,我们展示了X2CT-GAN的真实x射线评估结果。X2CT-GAN的输入图像大小调整为128 × 128像素,而2DCNN的输入大小调整为[13]建议的256 × 256像素。所有模型的输出都设置为128 × 128 × 128体素。
理想情况下,为了训练和验证所提出的CT重建方法,我们需要一个具有成对x射线和相应CT重建的大型数据集。此外,x光机需要校准以获得准确的投影矩阵。然而,没有这样的数据集,而且收集这样的真实配对数据集成本很高。因此,我们取一个真实的CT体积,利用数字重建x线片(DRR)技术[28]合成相应的x线,如图5所示。收集这样的合成数据集来训练我们的网络要便宜得多。具体来说,我们使用公开的LIDC-IDRI数据集[1],其中包含1018个胸部CT扫描。成像协议的异构导致了不同的捕获范围和分辨率。例如,对于不同的卷,切片的数量变化很大。切片内的分辨率是各向同性的,但也因不同的体积而不同。所有这些因素导致一个非平凡的重建任务的二维x射线。为了简化,我们首先将CT扫描重新采样到1 × 1 × 1 mm3分辨率。然后,从每次CT扫描中裁剪一个320 × 320 × 320 mm3立方区域。我们随机选择916张CT扫描进行训练,其余102张CT扫描用于测试。
图5。DRR[28]模拟X射线。(a)和(c)是两个受试者的模拟PA视图X射线,(b)、(d)是相应的侧视图。
从真实x射线到合成x射线的映射尽管DRR合成x射线非常逼真,但真实x射线和合成x射线之间仍然存在差距,特别是对于那些微妙的解剖结构,如血管。由于我们的网络是用合成x射线训练的,如果我们直接向网络中输入真正的x射线,将会得到一个次优的结果。我们建议执行风格转移,以映射真实的x射线合成风格。在没有真实x射线和合成x射线配对数据集的情况下,我们利用CycleGAN[41]来学习映射。我们收集了200张真实x射线,并从成对LIDC数据集的训练集中随机选择了200张合成x射线。
PSNR通常用于测量重建数字信号[31]的质量。通常,CT值记录为12位,表示范围为0,4095[4],这使得PSNR成为图像质量评估的理想标准。
SSIM是衡量两幅图像相似度的指标,包括亮度、对比度和结构[36]。与PSNR相比,SSIM能更好地匹配人的主观评价。
我们首先对CT重建结果进行定性评估,如图6所示,其中X2CT-CNN是仅受重建损失监督的拟网络,X2CTGAN是经过完整目标训练的网络;’ +S ‘表示单视角x射线输入,’ +B '表示双平面x射线输入。为了进行比较,我们还重现了[13]中提出的方法(图6中称为2DCNN)作为基线,这是少数使用深度学习解决x射线到CT重建问题的已发表作品之一。由于2DCNN设计用于处理单x射线输入,因此没有显示双平面结果。从视觉质量评价上,可以明显看出差异。首先,2DCNN和X2CT-CNN生成非常模糊的体积,而X2CTGAN保持较小的解剖结构。其次,尽管缺少重建细节,但X2CT-CNN+S在大器官(如心脏、肺和胸壁)的边界比2DCNN更清晰。最后但并非最不重要的是,使用双平面x射线训练的模型优于使用单视图x射线训练的模型。更多的CT重建切片如图8所示。
量化结果汇总见表1。双平面输入显著提高了重建精度,与单x射线输入相比,X2CT-CNN和X2CTGAN的重建精度提高了约4 dB。众所周知,GAN模型通常会牺牲基于mse的指标来获得更好的视觉效果。这里也观察到了这种现象。然而,通过调整体素级MSE损失和语义级对抗损失的相对权重是我们的代价函数,我们可以做出合理的权衡。如图6所示,X2CT-CNN+B与X2CT-GAN+B相比,PSNR仅降低1.1 dB,但视觉图像质量显著提高。我们认为,在CT重建中,视觉图像质量与PSNR同样重要(如果不是更重要的话),因为最终图像将由医生视觉读取。
图6。不同方法的CT重建图。DCNN是我们的重现基线模型[13];X2CT-CNN是我们用MSE损耗单独优化的发电机网络,X2CT-GAN是我们用总目标优化的基于gan的模型。’ +S ‘表示单视角x射线输入,’ +B '表示双平面x射线输入。第一行展示了不同模型生成的轴向切片。最后两行分别是PA视图和侧视图中生成的CT扫描的3D效果图。
表1。定量的结果。DCNN是我们从[13]复制的模型;X2CT-CNN是我们仅通过MSE损耗优化的发电机网络;X2CT-GAN是我们基于gan的总目标优化模型。’ +S ‘表示单视角x射线输入,’ +B '表示双平面x射线输入。
为了验证所提出的连接模块的有效性,我们还在X2CT-CNN的设置下进行了消融研究。如表2所示,使用ConnectionB的单视图输入PSNR提高了0.7 dB。双平面输入,即使没有跳过连接,由于补充信息注入到网络,超过单一视图。在我们的双平面模型中,Connection-B和Connection-C是相互依赖的,因此我们将它们视为一个模块。可以看出,使用该模块的双平面模型在PSNR和SSIM上都大大超过了其他组合。
GAN框架中不同设置的效果如表3所示。如第一行所示,由于缺乏强约束,单独的对抗损失在PSNR和SSIM上表现不佳。最显著的改进来自于GAN框架中增加了重构损耗。投影损失和条件信息带来了轻微的额外改善。
表2。不同连接模块的评估。’ XC ‘表示不包含Connection-B和Connection-C模块的2ct - cnn模型。’ +S ‘表示模型的输入是单视图x射线,’ +B '表示双平面x射线。“CB”和“CC”分别表示连接- b和连接- c,如图4所示。
表3。GAN框架中不同设置的评估。“RL”和“PL”分别表示重构损失和投影损失。“CD”意味着输入x射线信息被馈送到鉴别器以实现条件GAN。
由于最终目标是从真实的x射线重建CT扫描,我们最终在真实数据上评估我们的模型,尽管模型是在合成数据上训练的。由于真实x线没有相应的三维CT体积,只能进行定性评价。视觉结果如图7所示,我们可以看到重建的肺和表面结构是非常合理的。
图7。基于真实x射线的CT重建。这里显示了两个主题。第一和第二列在两个视图中是真实的x射线。以下两列是由CycleGAN[41]转换的x射线。最后两列显示了重建内部结构和表面的3D效果图。点状椭圆突出高质量解剖重建区域。
图8。重建的CT切片示例(a)和对应的groundtruth (b)。可以看出,我们的方法准确地重建了主要解剖结构的形状和外观。
在本文中,我们探索了从双平面2D x线端到端方式重建3D CT扫描的可能性。为了解决这一具有挑战性的任务,我们将重构损耗、投影损耗和对抗损耗结合到GAN框架中。此外,利用特殊设计的生成器网络将数据维数从2D增加到3D。我们的实验定性和定量地证明了双平面x射线在三维重建过程中优于单视角x射线。在未来的工作中,我们将与医生合作评估重建CT扫描的临床价值,包括测量主要器官的大小和放射治疗中的剂量规划等。