这篇文章是大二上学期跟着北航赵维老师做双能CT成像深度学习算法研究的一些笔记,加入了一些之前参与华为昇腾众智计划的私货,整理一下。现在不做了)。那时候是对图像处理感兴趣才做了一点,赵老师还说能发顶会),现在感觉深度学习没啥解释性,以后也可能不会碰医学物理)。

CT就是电子计算机断层扫描,它是利用精确准直的X线束、γ射线、超声波等,与灵敏度极高的探测器一同围绕人体的某一部位作一个接一个的断面扫描,通过衰减系数的换算,推测人体密度,最后利用成像算法将该断面恢复出来。CT发展的三个目标:减少采集时间,降低射线照射,降低成本。

然后X射线与物质相互作用的唯像模型有光电效应,compton散射和电子对效应。通过高能电子轰击靶核可以得到X射线能谱图如下,也叫阳极靶面特征曲线,我们可以看到80kvp球管输出最大80kev,60kev巅峰。得到的图像分解模型基物质分解算法也有几类:material decomposition就是按照微观相互作用机制来分解;Alvarez的数学公式的实现经历了图像数据域物质分解、转化形式的基物质对投影数据域物质分解、直接基于康普顿及光电效应的投影数据域物质分解。

CT发明者Hounsfield先生早在1973年就发现一个重要的现象:即化学成分和密度不同的物质在一种X线能量下可以表现为相同的CT值,也就是原子序数Z高但密度低的物质与原子序数Z低但密度高的物质可能通过单一的CT值是无法鉴别的。

基于这一重要的发现,Hounsfield提出了通过两种不同能量的X线(E1、E2)分别成像,以进一步鉴别原子序数不同的等密度物质。Alvarez将其精确地通过数学表达了出来,也就是CT的能量选择性重建,如下图:

光电效应衰减+康普顿衰减具体公式

然后每一种物质对于一个特定的光电效应衰减系数(α1)和康普顿衰减系数(α2),这样,每一种物质都可以通过(α1,α2)这样的系数组合进行表达,通过这种方式可以实现对CT值相同的不同物质的准确区分,这是首次通过数学公式精确表达了双能CT的物质分解算法。

由于双能量物质分解算法的发明者Alvarez的公式对两种能量成像在时间、空间上的匹配具有严格的要求,也就是对设备的要求非常高,要求CT设备能够在相同的时间和方向上同时采集两种能量的衰减数据。所以早期的物质分解算法并没有按照Alvarez的公式直接对衰减系数进行分解,而是先重建出高、低两种kV的图像,然后利用以下公式计算出不同能级图像的CT值,如下图:

高、低两种kV的图像,然后利用以下公式计算出不同能级图像的CT值

并同样基于两种kV图像的CT值散点图(如下图)中的斜率来分解和区分不同的物质。

基于两种kV图像的CT值散点图中的斜率来分解和区分不同的物质

由于上述分解算法是基于图像数据的,因此实际上基于两个假设:(1)CT值测量都是准确的,不会受到噪声干扰;(2)图像不会受到X线硬化伪影的影响。这两个假设都是与实际情况不符的,所以后来又诞生了新的不再使用图像数据进行分解的算法。

该方法是通过对Alvarez公式的数学转化,将线性衰减系数的物理效应分解方式转化成了基物质对(A物质衰减+B物质衰减=总衰减)分解的方式,如下图:

A物质衰减+B物质衰减=总衰减

通过高低kV切换的方式获得两种能量的原始数据,然后通过上述公式分解出水基图、碘基图,然后通过这两种基本图像再进一步处理出其他能谱图像,如下图

1

上诉方法是基于几乎同时、几乎同向采集的两种能量的数据实现了投影数据域的分解算法,物质分解的准确性得到了提升,但是实际上也是基于一个假设:假设所有的物质都是由水和碘这两种基本物质混合而成的,例如钙,也是由二者组成的,如下图:

Ca=H2O+I2

这种假设有时候与实际情况也是不符的,所以基于这两种基物质图获得的单能级图像,其CT值的测量对于碘物质和水物质是准确的,而对于其他物质可能是不准确的。所以后来又诞生了新的投影数据域分解算法,如下图:
投影数据域分解算法

这种算法实际上正是1976年Alvarez提出的公式,也就是基于双层探测器在同一时间、同一方向对同一束X线中的高、低能量光子同时进行分离采集,然后基于获得的高、低两种能量的数据通过上述公式求解出康普顿数据和光电效应数据以进一步获得多种能谱图像,同时高低能量两组数据直接求和按照常规CT重建方式也可以获得常规CT图像,如下图:

原理图

CT系统从最开始的CT发展到现在已经有了第四代CT系统:螺旋CT、锥束CT、双源CT(高低能)、单源(高低能)kdv快速转变CT。我当时跟着赵老师就是做通过深度学习模型将单能图像转化成双能图像。双能成像的方法就有上述说的双源、单源kdv快速转变、还可以用加Zn/Cu薄片的方法。双源误差大,单源对于器件要求高,成本也高,Zn/Cu薄片的缺点就是伪双能,需要用到双层探测器,两块探测器和滤波片。单源双源才是真双能。

双能ct包括双能分解和图像重建两部分。有一种宝石双能,能够瞬时完成高低能转化,0.5ms内实现80kvp140kvp转化,生成40-140kev101组单能图像,做到同源同时同向。双能ct硬件改进降低不同能谱的重叠度,进行更好的双能分解,比如基于光子计数探测器的能谱CT。软件则是研究研究更好的物质分解方法,从而更好地进行图像重建,比如各种双能成像算法。

能谱CT利用光子计数探测器,实现单光子成像,之前都是能流强度均值求μ\mu,是平均值后,这个存在着beam-hardening现象,主要是在120kV,是因为低能量光子首先被消耗所以用单光子。能谱CT成为继骨密度测定、冠状动脉钙化积分后的第三种定量分析工具。其优势在于实现多参数成像,使组织内部CT值差异得到更充分展现,更加有利于组织成分分析和鉴别。能谱CT具有独特的单能量成像技术,可以对不同的组织采用不同的能量以获得最优化图像;能谱CT还可以绘制能谱曲线,依据特定物质特有的能谱曲线可以鉴别组织成分,判断组织来源;除此之外,还可以利用能谱CT进行物质分离,得到水基图、碘基图、虚拟平扫图像等。

能谱成像技术已广泛应用于全身各个系统,可以提供人体解剖、生理、病理、血流动力学、组织灌注及活性、代谢等方面的信息。能谱CT具有很多极富亮点的应用,例如:(1)利用能谱CT物质分离技术中脂肪基物质图可以分辨胆囊阴性结石和胆汁,以检出胆囊阴性结石;(2)利用能谱CT最佳单能量图像,并结合碘基图可以较敏感地检出微小肿瘤;(3)利用能谱CT碘基图,可以对肿瘤组织中碘含量进行定量分析,以精确评估肿瘤血供情况,进行肿瘤疗效评估;(4)利用能谱CT尿酸基物质成像可以准确判断痛风真假结石,以诊断及指导临床治疗。

昇腾算子库优化项目,这是北航数学学院和华为合作的一个科研项目,需要在linux系统上华为自主开发的开发平台上编写用于深度学习的算子。这个让我迅速入门了linux系统操作与使用,并且了解了深度学习的技术。

pb文件的节点信息可以使用netron.app网站查看。

1
atc --model=cspdarknet53.pb --output=cspdarknet53 --framework=3 --input_shape="Placeholder:1,256,256,3" --out_nodes="stage6/Add:0" --soc_version=Ascend310
1
python train_dualenergy1.py --train-data-path=/home/zzh/test/testtrain.tfrecord --valid-data-path=/home/zzh/test/test.valid.tfrecord --save-path=/home/zzh/test

Reference

[1] Zhao W , Lv T , Gao P , et al. Dual-energy CT imaging using a single-energy CT data is feasible via deep learning[J]. 2019.

[2] Mccollough C H , Leng S , Yu L , et al. reviews and commentary n review dual-and multi-energy ct: principles, technical approaches, and clinical applications 1.

能谱纯化技术的基本原理与临床应用