1. 程式人生 > 其它 >【CT】Filtered Backprojection原理(parallel-beam&fan-beam)

【CT】Filtered Backprojection原理(parallel-beam&fan-beam)

個人覺得講得比較好的是這個ppt。然後會對物理原理做一點補充,加一點自己的理解。

物理原理

首先CT要解決的問題:

已知光束和detector得到的平面圖,求object資訊。

物理學定律Beer‘s law:

$$\frac{d I}{d s}=-\mu(x(s)) I(s)$$

描述了光穿過物體的損耗,其中$\mu(x(s))$只與x(s)這個位置的物體性質有關,這也是我們要解的資訊。對這個微分進行積分得到:

$$I_{x_{0}}(s)=I_{x_{0}}(0) e^{-\int_{0}^{s} \mu\left(x_{0}+\tau v\right) d \tau}$$

$$\log \left(\frac{I_{x_{0}}\left(\boldsymbol{x}_{\mathrm{out}}\right)}{I_{x_{0}}\left(\boldsymbol{x}_{\mathrm{in}}\right)}\right)=-\int_{s_{\mathrm{in}}}^{s_{\mathrm{out}}} \mu\left(x_{0}+\tau \boldsymbol{v}\right) d \tau$$

平行光束:

引入Radon變換:

$$\mathcal{R} f(t, \theta)=\int_{L_{t, \theta}} f(x) d S(x)=\iint f(x) \delta\left(\left\langle x, n_{\theta}\right\rangle-t\right) d x$$

含義解釋:the integral of f along the line $L_{t,\theta}$ whose direction is perpendicular to $n_{\theta}$ and whose distance from the origin is t.

對它進行傅立葉變換可以發現:

$$\int \mathcal{R} f(t, \theta) e^{-i \omega t} d t=\hat{f}(\omega \cos \theta, \omega \sin \theta)$$

In other words, measuring the Radon transform is equivalent to acquiring the Fourier transform of f along radial lines.

這就是Central Slice Theorem,在ppt中解釋得更形象:

The 1-D projection of the object, measured at angle $\phi$, is the same as the profile through the 2D FT of the object, at the same angle.

【在角度$\phi$的1D投影,和同一角度的2D傅立葉變換數值上相同】

在此基礎上定義filtered backprojection:

$$f(x)=\frac{1}{2 \pi} \int_{0}^{\pi}(\mathcal{R} f(\cdot, \theta) * h)\left(\left\langle x, n_{\theta}\right\rangle\right) d \theta$$

where h is such that \hat{h}(\omega)=|\omega|. 名字解釋:we first filter the Radon transform along the radial variable with the convolution kernel h.

現實中我們獲取資料時其實有把t和\theta都離散化,在傅立葉變換後等價於acquiring only a fraction of the radial lines,因此:

$$f_{\mathrm{rec}}(x) \approx \sum_{k}\left(\mathcal{R} f\left(\cdot, \theta_{k}\right) * h\right)\left(\left\langle x, n_{\theta_{k}}\right\rangle\right)$$

這一段也是ppt講得更加清楚:

If all of the projections of the object are transformed like this, and interpolated into a 2-D Fourier plane, we can reconstruct the full 2-D FT of the object. The object is then reconstructed using a 2-D inverse Fourier Transform.

【把所有方向都這樣變換,就可以把數值插值到2D傅立葉平面,從而構建整個的傅立葉資訊,再用逆傅立葉變換得到原物體資訊】

這是平行光束的情況,用網上找的程式碼流程幫助理解:

    • 將原始投影進行一次一維傅立葉變換

    • 設計合適的濾波器,在φi的角度下將得到原始投影p(x_r,φi)進行卷積濾波,得到濾波後的投影。

    • 將濾波後的投影進行反投影,得到滿足x_r=r cos⁡((θ - φ_i))方向上的原影象的密度。

    • 將所有反投影進行疊加,得到重建後的投影。

其中濾波器的作用在ppt裡面也有比較形象的解釋:

扇形光束

對於扇形光束,轉化為平行光束處理。首先介紹sinograph的概念:the 2-D array of data containing the projections,如果用平行光采集資訊,角度為$\phi$ 距離為$\xi$,則平面$(\phi, \xi)$是這份資料的sinograph。事實上,我們完全可以把扇形光的sinograph調整為平行光情況,然後就可以按照平行光的演算法處理:

The red ray in both the parallel and diverging configurations are the same, and therefore occupy the same point in sinogram space.

需要調整的是1.角度的對應關係;2.距離的對應關係【和光的強度有關】。具體的公式就沒推了。

學習CT相關的知識主要還是為了看懂下一篇博文要寫的論文:Deep Learning Computed Tomography,這篇算是看論文前學的基礎知識。