期末上繳報告啊,不知道要寫多少才對得起自己。理解正確性不敢保證,相當可怕。
單詞概要
- Computed Tomography - 電腦斷層掃描 (X 光),簡稱 CT
- Shepp-Logan filter - 影像去噪中,一種運算操作
- Delaunay - 計算幾何中 Delaunay Triangulation
- ODT - optimal Delaunay Triangulation
- Tetrahedron - 四面體
- Isosufrface - 等價曲面
- Truncate - 切去頭端
- Hausdorff distance - 空間中,集合之間的距離描述 wiki
- Marching cubes - 用於 CT 模型,重建時的建構 3D 時,根據取樣點得到的最小構造單位。
- QEM - Quadric Error Mactrics
本文
The Sinogram Polygonizer for Reconstructing 3D Shapes 這篇論文主要拿 Grid-base 掃描重建方法以及根據取樣點重建 3D 模型的算法探討。
首先從離散取樣中重建,最基礎的做法是根據 z-index 作切割,得到 xy 平面,在其上作 Grid-base 網格狀的取樣,得到座標 (x, y, z) 是否在該物體內部。
當取樣數量越多時,密集程度越高,能造就的邊緣就越明顯。藉由 Grid-base 取樣的缺點在於邊緣的凸顯仍然不夠明確於三角化,取樣點的數量必須非常多,才能表示非平行三軸的邊緣。
從 CT 圖中,掃描資料為數張正弦圖 (sinogram),將一個物體放置於轉盤上,轉動轉盤將 X 光照射上去,根據物體的阻射程度得到正弦圖,相當於是光線投影到平面的強度 (CT value)。當一個物體只由一種材質構成時,其阻礙程度與阻礙光線的長度成線性關係,如此一來 CT value 就能有效地反應在物體表面的距離。
這裡補充一點,通常物體不會只由一個材質構成,因此在某些重建工作時會特別弱,如人體掃描重建,則會在眼睛材質上難以得到好的效果。阻礙能力會擴散到其他的正弦圖上,在複合材料的重建工作則會相對地困難。
CT 圖存在些許的干擾,受到鄰近材質的阻射影響。看到網路上文章寫到,即便現代的降噪算法相當厲害,對於醫院普遍使用的成像仍然使用幾十年前的算法,其最重要的原因是擔憂降噪算法捨棄掉的部分到底是不是正確的,去掉資訊若是重要的反而會造成判斷失誤,因此學術界使用 CT 圖的降噪算法仍然不普及於醫學界。
CT
目前 Shepp-Logan filter 相當好用,在 CT 去噪效果受到肯定!公式如下:
$$f(p) = \frac{1}{2} \int_{0}^{2 \pi} \alpha(R_\theta p)^{2} S_{\theta}(P(R_{\theta} p)) d \theta \\ S_{\theta}(q) \leftarrow \int_{-\infty }^{\infty} {\beta(\tilde{q}(x)) S_{\theta}(\tilde{q} (x)) h(x - (q)_{x})} dx \\ h(t) = 2 / (\pi^{2} \delta^{2} - 4 t^{2}) \\$$ $S_{\theta}(q)$ 表示在轉盤角度為$\theta$ 時成像於 q 點的數值$\beta(q) = cos(\angle qso)$,點 q 連線到光源 s、再連線到圓盤圓心點 o。並且$\tilde{q}$ 限定為與點 q 具有相同的 y 值,就是說對水平方向上鄰近點數值去噪$\delta$ 為取樣的像素大小於成像畫面。從數學公式中看出,受到鄰近點$\tilde{q}$ 影響與光源的偏角差異、與點 q 的距離呈現的關係。
#### 補充 CT 重建 ####
CT 重建方法 中,存在三種常見的方式
迭代法 反投影法 backprojection
濾波反投影法 filtered backprojection
在掃瞄資料中,根據不同角度進行掃描投影,會得到數張 2D 影像,對於實際物體離散取樣,把每一個樣本都當作一個變數 $x_{i}$,根據模擬的方式,可以得到好幾條方程式,解出方程式後,就能知道每個位置上是否有實體 (在物體內部)。但是這樣的效能並不好,會有成千上萬的變數和方程式,甚至有可能發生多組解。
##### 迭代法 #####
迭代法提供一個逼近方法,類似模擬退火法的那種梯度迭代,每一次迭代逐漸將變數數值增加,增加後與實際投影比較,不斷地逼近投影實際值,捨棄掉不合法的數值,每迭代一次讓解更加地接近,當誤差小於某個定值後即可停止。這種作法通常會很慢,但迭代過程中可以加入很多彈性的參數變化,彈性較高。
##### 反投影法 #####
反投影法則是將投影值結果反投影回去,投影的 2D 影像上的某一個點的數值,會反投影到射線上的每一個點,多次反投影後。若該位置存在於物體中,則貢獻於投影像的次數會很多,因此反投影的累加的值也會比較高。接著給定閥值、誤差修正來判斷,效果會更為顯著。反投影法概念上非常簡單,但在邊緣的結果會很模糊。
##### 濾波反投影法 #####
濾波反投影法這部分不是很理解,看起來是先利用 卷積 (Convolution) 操作,再利用傅立葉卷積的反變換,變換過程中需要一個濾波器協助,反變換回來後,再進行反投影法。在傅立葉反變換中需要濾波器,因此選擇濾波器變得相當重要,本篇論文選的是 Shepp-Logan filter 來完成。濾波反投影法的優點是在於輪廓清楚,但會發生 吉布斯現象 (Gibbs phenomenon),逼近原圖時,不連續的函數截面附近會發生震盪。
## 接續 ##
在濾波後,反投影後得到 CT value $f(p)$。當然 $f(p)$ 是一個連續函數的積分,事實上處理時離散的 (因為機器再怎麼精密,齒輪轉角也不會是連續,就看齒數多寡來決定)。
論文中用了 迭代法 和 濾波反投影法 重建比較,可以得到非常相似的結果。來確認使用的儀器是相當可靠的精準度。
接下來要進行建模,簡單會具有以下幾個步驟。
1. 可以決定要用幾個四面體構成。
2. 三角網格藉由二值化 (CT value 來判定是在物體中還是外部) 抓取,並且加入四面體中。
3. 三角網格到等值曲面的 QEM (Quadric Error Mactrics) 要最小化。
4. 三角網格上的點座標,移動距離購小的時候,算法停止迭代。否則返回第二步,繼續鬆弛新的節點。
第一步進行四面體構成時,通常會採用 * Delaunay Tetrahedralization (相對於 2D 平面的 Delaunay Trianglution,Delaunay Trianglution 是由 2D Voronoi Diagram,那麼 Delaunay Tetrahedralization 就是由 3D Voronoi Diagram 搭建完成),事實上還有數種建模的方法 (如 Marching cubes 之類的),稍後有機會會提及到。但不管一開始選定的四面體採用哪種策略,經由往後的迭代,將會修整到差不多 QEM。
### 邊緣擷取 ###
對於每一個四面體,找到四面體的重心$g_{i}$ 並且計算 CT value $f(g_{i})$
對於相鄰的四面體,計算 $Tiso= (f(gi)+f(gj))/2$ 接下來要找等值曲面 $Tiso$,找到一個點 p 位於等值曲面上,並且 p 在 gi, gj 的連線上。對於 p 所在的等值曲面上計算法向量 $n_{k}$,等下要用來計算 QEM 用的。
QEM
下篇待續