0%

基于深度学习的CBCT重建方法研究

自动摘要: 摘要理解:锥形束CT(CBCT)通过减少减少X射线管阴极电流可以减少对患者的辐射,但是这样重建出来的图像的质量会变差。因此,如何提高低剂量CBCT重建图像的质量是一个值得研究的课题。传统的统 ……..

摘要理解:锥形束 CT(CBCT)通过减少减少 X 射线管阴极电流可以减少对患者的辐射,但是这样重建出来的图像的质量会变差。因此,如何提高低剂量 CBCT 重建图像的质量是一个值得研究的课题。传统的统计迭代重建法通过设计不同的正则项来重建,TV 正则项(全变分)能保护边缘和去燥,但是会产生阶梯效应;而 hessian 正则项在抑制阶梯时会让边缘模糊化。

本文是利用深度学习学习潜在的正则项,提出来一种基于卷积神经网络的迭代重建算法,在去除噪声和伪影上有比 TV 更好的效果,在抑制阶梯效应上可以与和 hessian 并提。

1. 绪论

CBCT 优势:投影数据是二维而不是一维的,重建可以直接得到三维图像,伪影不严重。

统计迭代算法:考虑了投影数据的噪声分布特性,对噪声分布建立模型,通过贝叶斯理论和极大似然估计,构建最小二乘目标函数,并利用图像的先验知识构建正则项。正则项的设计对图像质量影响很大。

深度学习应用于反问题:一是训练一个端到端神经网络,输入退化的图像,输出高质量的图像。二是用网络改造迭代算法,用网络替换掉迭代算法的一部分,或者用网络替换整个迭代算法。

2.CBCT 成像基本原理

(1)文章中给出

分析一下这段话的意思根据 Id 和 I0 得到 p,然后 p 是 u 的线积分,测量多组数据得到 p 的分布,然后就可以得到 u 的分布,根据人体组织与 u 的对应关系,就可以根据 u(x,y,z)得到该位置是什么器官。

百度找到知乎上一些关于 CT 成像的答复****①关于 CT 成像的历史研究

1917 年,丹麦数学家 J.Rando 从数学上证明:某种物理参量的二维分布函数,由该函数在其定义域内的所有线性积分确定。该研究结果的意义在于:确定一个物理参量,寻找该物理参量的线积分,获得所有方向内的线积分,就能够求得该二维分布函数。

1961 年,Wiliam H.Oldendorf 采用聚焦成一束的碘 131 放射源完成了著名的旋转位移实验,向人们揭示了获取投影数据的基本原理与方法;

1963 年,美国的 Allan M.Cormack 以人体组织对 X 线的线性吸收系数为物理参量,用 X 线投影作为人体组织对 X 线线性吸收的线积分,研究出重建图像的数学方法。

1967~1970 年,英国的 Godfrey Hounsfield 博士提出了体层成像(tomography)的具体方法。此方法需要从单一平面获取 X 线投影的读数,每个 X 线光束通路所获得的投影都可以看做是联立方程组的方程之一,通过解这组联立方程组能获得该平面的图像。

②关于 CT 成像的原理

CT 成像的本质是衰减系数成像。搞懂两个东西,你就明白 X 光成像的原理了。

  1. 朗伯比尔定律(Beer-Lambert Law)
  2. Radon transform (拉东变换)朗伯比尔定律本文已介绍,但是需要注意的是:得出衰减系数,再把不同的衰减系数对应到不同的像素值,就得到 X 光照片了。这就是早期的 X 光成像技术。注意:这里的衰减系数 在 X 光穿透路径上是保持不变的!在均匀的物体中穿透没问题,可在非均匀物体中穿透,由于处处的不等,按照这个公式计算出来的 是路径上所有的 的均值。也就是说计算所得的 不准确。这样的成像效果肯定不会好啦。三维结构被压缩成二维图像,没有空间分辨率,更别谈断层了。那么如何得到物体内部的剖面图像呢?

需要用到 Radon 变换实际上衰减系数是关于空间位置坐标和能量的函数,相同物质对不同能量的吸收能量也不一样,探测器上面检测到的是该路径上所有物质对 x 光吸收后的结果,路径上具体位置的吸收无从得知,这就需要在图像领域朝着各个方向对图像投影(Randon 变换)

如图对图像进行投影(0°,45°,90°),各个方向的投影其实就是计算各个方向上的像素值之和,得到一个向量,把三个方向的投影结果合起来就是投影数据,不同方向得到的向量维数不一样,以最大维数为准,不足用 0 填充,这就是拉东变换。CT 的扫描其实就是,以螺旋 CT 为例,机器会围绕人作旋转运动,把人看着图像,CT 围绕人旋转,那么其发出的 X 光就会从不同角度穿透人体,达到另一面的探测器上。就相当于沿各向求和,这里的和是不同方向上人体对 X 光的吸收作用。探测器就记录下了这个投影数据,后面用来重建人体的三维结构。如何由得到的不同方向投影的数据,恢复得到原始图像呢?

水平方向,强度为 10 的 X 光穿透物体后,探测器探测到的结果为 5。只从这一点,我们只知道 μ1+μ2=10-5=5 , 具体μ1,μ2 是多少,无法知晓。但是!从其竖直方向可以得到μ1=10-8=2,μ2=10-7=3 。这就像是联立方程解方程组,就像做数独。实际过程中,几百个方向上的投影来解出每个位置的衰减系数。然后一副二维的切片图像就得出了。这就是拉东反变换。

(2)FDK 等解析类重建算法的突出的优点是计算效率高,重建速度快,但是在解析类算法的推导过程中,方程的导出形式是连续的,而且还要满足投影数据必须完全、分布必须均匀、相邻射线等间隔等一系列条件。而实际中,这些条件很难得到满足,连续方程的离散化实现时也会引入插值误差。这些都会导致重建图像有较大的噪声或者伪影,无法得到较好质量的重建图像。

(3)迭代算法

主要会碰到 A 不可逆以及 A 过于庞大不易存储的问题代数重建问题(线性方程组的应用):这里找到在别人的博文上面对这个问题的介绍:X 射线透视可以得到 3 维对象在 2 维平面上的投影,CT 则通过不同角度的 X 射线得到 3 维对象的多个 2 维投影,并以此重建对象内部的 3 维图像。代数重建方法就是从这些 2 维投影出发,通过求解超定线性方程组,获得对象内部 3 维图像的方法。这里我们考虑一个更简单的模型,从 2 维图像的 1 维投影重建原先的 2 维图像。

一个长方形图像可以用一个横竖均匀划分的离散网格来覆盖,每个网格对应一个像素,它是该网格上各点像素的均值。这样一个图像就可以用一个矩阵表示,其元素就是图像在一点的灰度值(黑白图像)。下面我们以 3*3 图像为例来说明。

每个网格中的数字代表其灰度值,范围在[0,1]内,记 0 表示白,1 表示黑,0.5 为中间的灰色,沿某个方向的投影就将该方向上的灰度值相加(见上图所示)。如果我们不知道网格中的数值,只知道沿竖直方向和水平方向的投影。设网格按第 1 列、第 2 列、第 3 列的顺序排列,为了确定网格中的灰度值,可以建立线性方程组:

显然该方程组的解是不唯一的,为了重建图像,必须增加投影数量。如我们增加从右上到左下的投影,则方程组将增加 5 个方程,成为超定方程组。考虑到测量误差,可以将超定方程组的近似解作为重建的图像数据。但是在实际情况中在实际情况中,由于噪声的影响,方程组是不相容的,几乎不可能得到唯一解。

统计迭代法,通过贝叶斯法则得到图像 u 的贝叶斯目标函数:

由于投影数据的噪声服从高斯分布,因此可以通过投影数据高斯分布的联合概率密度函数

忽略 2-12 的常数项,可以得到惩罚加权最小二乘模型

根据最大后验概率理论,上式取最小值的解即为待重建的图像 u

第一项就是保真项,第二项是正则项

3. 正则项方法

①正则项的设计②TV 正则项和 hessian 正则项TV 正则项

TV 正则项是一种一阶导正则项,它能有效去除重建图像中的伪影和噪声—- 而图像中噪声和伪影附近的梯度通常会较大,也就是灰度值与它相邻点的灰度值相差较大,TV 正则项的权值就会较大,相应的会施加较重的惩罚。但是也会有阶梯效应—–:因为 TV 正则项是对相邻像素之间的灰度差进行惩罚,对于图像灰度均匀变化的区域来说,这种惩罚力度稍微有点强了,导致相邻像素的灰度值趋向于相等。

Hessian 正则项

解释一下,F 范数是矩阵中各项元素的绝对值的平方的总和开根号。

可以看到 hessian 惩罚的相邻像素导数的差值,所以可以有效抑制阶梯效应,但是在图像的边缘处二阶导数一般较大,对其惩罚,可能会使边缘模糊。

这篇文章的学习后半部分需要对深度学习的掌握,下次再介绍。https://blog.csdn.net/qq_39594939/article/details/90546132

欢迎关注我的其它发布渠道