• 沒有找到結果。

第一章 緒論

1.3 論文架構

我們論文共分為五章。第一章簡介在三維的醫學影像上一些分割的方法、研 究動機與目的及論文架構。在第二章中,我們將介紹本篇論文的理論基礎snake 及其改 良方式,greedy snake 及 Balloons,其概念將在稍後章節被使用。第三章將介紹我們的 方法,一個以第二章greedy algorithm 與 Balloons 為基礎的”Balloon Model”三維影像分 割法,包括詳細的Balloon Model 演算法及影像分割方式。第四章呈現了本論文所提演 算法對各種不同果蠅影像的的實驗結果。第五章為結論與未來研究方向。

第二章 背景與理論基礎

2.1 Snakes

Active contours,或稱”snakes”[15],是一種將連續的曲線做能量最小化的可變形模 型。藉由定義snake 的內力(internal forces)與外力(external forces)讓 snake 的輪廓曲線能 夠變形至影像中的物體邊界或者是期望的影像特徵上。Snake 被廣泛的運用在各種應用

與歪曲,然而,為了使得snake 的捕捉區域(capture range)能夠增大,有時候較大的σ 值

) 出了以greedy algorithm 為基礎的 snake 取代原本的 dynamic programming[1]的求解方 式,稱之”greedy snake”。根據[14]提出的 greedy snake 模型,離散的曲線輪廓能量表示

速度上都比dynamic programming 的方式高出許多,但另一方面,相對於 dynamic programming 的方式,greedy algorithm 卻較容易產生 snake 停留在區域能量最小值(local energy minimum)的缺點。

2.3 Balloons

傳統 snake 存在一個”輪廓初始化”問題,及當 snake 的初始輪廓位置不夠靠近影像 邊界時,因為snake 上的控制點離邊界太遠,外力將無法把 snake 上的控制點推向邊界,

如圖【圖2-1】所示

【圖 2-1】snake 錯誤的收斂情形

當snake 的初始輪廓距離影像邊界太遠時將無法使 snake 上的控制點推向邊界,相反的,

snake 受到內力的影響往內收縮。

這是因為snake 的捕捉區域太小時,當 snake 的初始輪廓不夠接近影像邊界所產生的錯 誤收斂情形。Cohen 和 Cohen[10]提出的”balloons”解決了上述的問題。

“balloons”是一個根據 snake 的可變形模型,這個模型就像一顆會膨脹的“balloon”一 樣,藉由將inflation force 加入模型推動 snake 的輪廓到物體邊界,所以就算當初始輪廓 離物體邊界很遠,遠離snake 的捕捉區域之內,balloons 也能夠成功的將輪廓推至物體 邊界不受到捕捉區域太小所影響。balloons 改進傳統 snake 的外力定義(3)如下

))

【圖 2-3】單一的balloon 無法用來找尋大於一個的物體輪廓

在上圖中,可以看到有三個需要被尋找的物體輪廓分別為方形、圓形及長方形,由左至 右為用單一的balloon 對上圖三個物體做物體輪廓的尋找 balloon 變化的情行,最後產生 錯誤的收斂。

由【圖 2-3】可看出 balloon 在不提供管理拓樸改變,提供分裂或合併的管理下,單 一的balloon 無法找尋大於一個的物體輪廓,使用者需對每個欲分割的物體做一個初始 化的balloon,這將使得在同一張影像上多物體的輪廓尋找有過多的人工介入。(iii)很難 去決定一個適合的inflation parameter,太大的 inflation force 將使得 balloon 超出物體邊 界不會停止,而太小的inflation force 則恰巧相反,balloon 可能會輕易的受到雜訊或內 力的影響而停止成長,說明如圖【圖2-4】

(a)

(b)

【圖 2-4】inflation force 設置過大(a),過小(b)所產生的錯誤分割

上圖說明當inflation force 設置不當所產生錯誤的分割情形,由左至右為 balloon 從初始 輪廓至最後收斂的影像。上圖(a)為 inflation force 設置過大,所以在一些彎曲度較大的 邊界區域,產生與邊界相交的輪廓線,圖(b)為 MRI 的腦部顯影,說明當 inflation force 設置過小時,將使得輪廓線停留在影像的雜訊或微弱邊(weak edge)上。

2.4 結語

在本章中,介紹了 snake 的理論基礎及一些改進 snake 的方式,用 greedy algorithm 改善snake 的效能及速度,“balloons”則解決了 snake 在“輪廓初始化”上的問題,但是可 以在本章的討論中可以發現仍舊存在了一些缺點在這些改進的方法之中。在第三章中,

我們將根據greedy algorithm 的 balloon model 做為我們三維影像的分割基礎,以邊界偵 測的方法決定balloon model 的 inflation force 的大小,並以局部的拓樸改變防止輪廓的 相交,詳細的演算法將在下一章做介紹。

第三章

以 Balloon Model 為基礎的影像分割法

3.1 動態網格模型(Dynamic Mesh Model)簡介

在三維影像的分割上,依照分割影像的幾何形狀可粗略分為開放式的輪廓與封閉式 的輪廓,在開放式的輪廓上必須考慮輪廓初始化的起始點的位置不能被移動,如線段的 兩個端點(起始點),而在封閉式的輪廓上則不受此限制。

二維影像上用連續的點連成的邊(edge),用來表示snake需要分割影像的初始輪廓,

而在三維影像資料(volume data)上,連續的點並不足以表示影像的輪廓,利用三角化網 格結構(triangular mesh structure)表示三維影像資料的輪廓則是一種較適合的方式,因為 在輪廓的大小、形狀即點與點的連接,三角化網格結構具有更多的彈性與可變性,我們 稱此可變化的三角化網格結構為動態輪廓模型(dynamic mesh model) 。

模型由多個三角形構成的多面體為輪廓外型,每一個控制點(control point)由三角形 的邊互相連接,而根據點與點互相連接的關係模擬模型的Internal force,經由內力的影 響輪廓表面將更平滑、緊密。Inflation force負責將輪廓上的點推至邊界,直到欲分割的 物體邊界被偵測到為止,則將該點的Inflation force移除,而在模型膨脹的過程當中,為

了使網格模型能夠更精確的表示欲分割的影像,用動態細分法(Dynamic Subdivision)將 網格做加細分格,使得模型能夠順利的膨脹與成長,直到需要分割的影像邊界被分割出 來【圖3-1】。使用動態網格模型作為三維資料的分割方法,可以簡化三維影像輪廓的 初始化,不需要過多的人工介入。

【圖3-1】用 inflation force 尋找二維輪廓邊界

3.2 Inflating Balloon Model

在瞭解動態輪廓模型的概念之後,本節將介紹如何根據 3.1 節動態輪廓模型為基礎 來實做我們的Inflating Balloon Model,完成三維影像的幾何模型重建。Balloon Model 是由多個三角形所組成的多面體,由一個很小的八面體結構【圖3-2】(octahedral structure) 做為初始輪廓,網格上的點受到inflation energy 的影響會向外移動直到鎖定至欲分割物 體的邊界,當能量趨近收斂時則結束程式。考慮程式的執行效能及方便性,我們用貪婪 演算法(Greedy Algorithm)來解決 snake 中能量最佳化的問題,對模型上的每個點尋找相 鄰點當中,在(15)及(21)式中具有最小能量值的點取代之,反覆對模型上的每一點做取 代動作直到程式符合收斂條件(3.2.7)則結束程式,以下將介紹我們用於分割物體的 Balloon Model 演算法。

【圖3-2】Model 的初始輪廓 鑽石型八面體

3.2.1 Balloon Model 演算法

程式的演算法如下:

٠參數定義:

V = {Vi =(xi,yi,zi) | i = 1,2,…,n}: snake 上的控制點,n是控制點的個數。

Neighbor(V): 在三維影像中,與控制點V相鄰的 26 鄰居。

E(V):頂點 V 的能量值。

I. 初始化一個封閉的八面體作為snake 的初始輪廓,建立三角化網格結構。

II. 對 snake 上每個頂點 V 做

i. 代入(15)計算 Internal Energy ,將值存入 E(V)

ii. 做邊界偵測(Edge detection),若不為邊界,代入(21)計算 Inflation Energy,將值加入 E(V)中。

iii. 將 V 的每個 Neighbor(V)代入(i),(ii)計算 E(Neighbor(V)),若

E(V)>E(Neighbor(V))則將 Neighbor(V)的位置存入 V 成為該控制點的 新座標。

III. 對 snake 做

稱α, 分別為Model的elastic parameter與curvature parameter,Elastic Energy可定義為: β

m

根據Gaussian Curvature(18)定義我們的Curvature Energy如下: γ 為Model的Inflation parameter,Nv( p)

為頂點p的法向量,定義為:

座標位置,當法向量與移動向量同方向時,Nv(p)⋅Mv 的值就會大所以Einf的值就會小,

i. 若Gray(p)> T2,控制點p為欲分割的物體區域,將該點加入Inflation Energy。

ii. 若Gray(p)< T1,控制點p為背景區域,將該點Inflation Energy移除。

iii. 若 T1 Gray(p) T2

脹。

產生網格相交的情形。

所以這裡提出一套self-intersection防護法來避免壓迫邊的產生。在每一次變形的階 段結束後,對snake上每個邊做壓迫邊的判斷(23),若該邊為一個壓迫邊,則對該邊做局 部的拓樸改變【圖3-6】

(a) (b) (c)

【圖3-6】局部的拓樸改變

在上圖(a)中,因為兩個相臨面ABD與EBD交角小與臨界值(根據(23)),所以邊BD為 一個壓迫邊,在邊BD中分出一新頂點F,其中F為B跟D的中間點,並產生新邊BF、DF、

AF及EF如圖(b),最後將頂點F移到頂點A與頂點E的中間即完成局部的拓樸改變。

根據上述的self-intersection防護法,將可順利的避免壓迫邊的產生,使得網格的拓 樸保持正確,防止網格自我相交的情形發生。

3.2.6 網格的動態細分法

Model受到inflation force的影響將不斷的膨脹增大,但因為internal force的抗衡,將 逐漸抵消其向外膨脹的力使Model停止成長,所以必須對網格做動態細分,使得snake上 的控制點得以順利的向欲分割的物體邊界順利移動。

另一方面,根據不同的基準有條件的對網格做動態細分,也將使得最後snake變形的 結果在精細度與物體形狀上符合預期的需要,這裡提出了兩個不同基準的動態細分方式:

1. 邊基準的細分法(Edge base subdivision)

Mean(F) =

∈F x

x Gray )( 3

1 :面上頂點灰階值的平均值。

Center(F):F 的重心位置。

對snake上每個面Fi

i. 判斷Non-Active(F)是否為True,若為True執行(ii)

ii. 計算Mean(F)與Gray(Center(F))若| Mean(F) – Gray(Center(F)) | > d 則執行(iii)(其中d為一臨界值)。

iii. 對F做網格細分,細分的方法如【圖3-7】。

(a) (b)

【圖3-8】面基準細分方式

若面ABC為snake上一個需細分的面(圖3-8-a),新增一頂點D其中頂點D為面 ABC的重心(圖3-8-b),並產生新邊AD、BD與CD,則面ABC被細分為面ABD、BCD 與ACD三個面。

3.2.7 Model的收斂條件

在原本greedy algorithm[4]中,決定snake是否收斂的條件是判斷snake上還在移動中 的控制點個數,用一個很小的非零整數(2-5)當作判斷,當移動中的控制點小於這個數值 則判斷snake為收斂,以這樣的條件做收斂判斷的原因是因為在對離散的控制點做能量最 佳化時,控制點只能位在影像的voxel之上,但是snake的能量均衡可能發生在非整數座 標位置,所以snake上面的控制點可能會發生震盪的情形,但這樣的判斷條件不能確保

snake會收斂在Model平衡的狀態。在研究snake發生收斂時的情況,[14] 提出了新的收 斂判斷條件,混和分析移動中控制點的個數、輪廓長度以及能量的收斂情形來判斷snake 是否收斂,但在我們幾何模型當中並不完全適用,這裡提出我們的收斂判斷條件如下【圖 3-9】:

【圖3-9】收斂判斷條件

這裡提出我們新的收斂判斷條件,在每次snake的iteration結束之時,計算輪廓表面積(幾 何結構上,每個三角形的面積和)變化量及還未靜止的控制點個數是否趨近於零,若為

這裡提出我們新的收斂判斷條件,在每次snake的iteration結束之時,計算輪廓表面積(幾 何結構上,每個三角形的面積和)變化量及還未靜止的控制點個數是否趨近於零,若為

相關文件