• 沒有找到結果。

專題所用之演算法介紹

在本章中,將介紹三維醫學影像重建系統所使用的演算法,主要是以 漸近立方體(Marching Cubes Algorithm,MC)演算法及智慧型基因演算 法(Intelligence Generic Algorithm,IGA)為基礎,加以改良及應用,進而 發展出智慧型漸近立方體演算法。

3-1 相關演算法介紹

本節介紹漸進立方體演算法及智慧型基因演算法之基本概念。

3-1-1 漸進立方體演算法

漸進立方體演算法(Marching Cubes Algorithm,MC)是一種應用很 廣泛的由體密度數據重建三維等值面的方法,由Lorensen 和 Cline在1987 年所提出的,處理的對象一般是CT 或是 MRI 圖像。漸進立方體演算法的 主要概念為對所有的立方體單元(cell)逐一的進行處理,將單元頂點處 的數值與等值面之值(iso-value)做比較,確定等值面(iso-surface)與該 單元的相交情況,透過插值(interpolation)計算交點,並將各交點連成三 角形來構成等值面片,所有單元中的三角形集合即可構成整個等值面。漸 近立方體演算法的流程如圖3-1 所示。

對於一個單元來說,給定等值面之值(iso-value)後,單元的每個頂 點若不是在等值面(iso-surface)外就是在等值面內,若我們認為頂點的 狀態有兩種:外(1)和內(0),頂點狀態就有28等於256 種可能的情況。

利用立方體的二種對稱性(如圖3-2 所示)特點,將此問題由 256

圖3-1 漸進立方體演算法流程圖

種狀態減化為15 種狀態。第一種為互補對稱性,即將一個單元的頂點狀 態值加以改變,“1"變成“0",“0"變成“1",新得到的單元與等值 面相交的情況與原來的單元一致,因此,根據此性質,可將單元的模式從 256 種減化到 128 種。第二種為旋轉對稱性,如果某一模式的單元經過旋 轉變換後與另一模式的單元一致,即頂點位置與其狀態值相同,則這兩種 模式的單元可以合併成一種,根據這種旋轉對稱性,單元模式可以最後歸 納為15 種(如圖 3-3 所示)。

算法檢查每個單元,判斷它的拓樸類型,如果不是第0 種狀況,則該 單元和等值面相交,根據該種情況下對應的三角面片情況,找到相應的 邊,利用線性插值的方法求得交點,然後由相應的點構成三角面片。檢查

讀數據,取等值表面之值(iso-value)

根據閾值對單元各項頂點進行分類

根據分類結果計算等值面與單元各邊的 交點,確定各交點如何組成三角形

計算各三角形的法向量

繪製各三角形

完所有的單元之後,我們將會得到該種等值面對應的面片集。

圖3-2 使用對稱性將 256 種狀態簡化為 15 種狀態示意圖

圖3-3 15 種單元模式圖

3-1-2 智慧型基因演算法

智慧型基因演算法(Intelligence Generic Algorithm,IGA)是由何信瑩 博士所發展出的,其主要特色為融合了基因演算法與直交表實驗這兩種截

然不同的最佳化機制,擷取了這兩種演算法的優點並補足了對方的缺點,

是一種完美且緊密的結合。基因演算法能對定義的解空間進行大量的搜 尋,但在解空間太大及參數過多的情況下,將會使得基因演算法過早收斂 至一組的最佳解中。而直交表在實驗前必須由人為決定各因素在不同水準 中所對應的數值,且在大多數的問題中,各因素間有交互作用,使得直交 表無法在一次的計算過程中找到全域的最佳解。智慧型基因演算法利用了 基因演算法中的演化觀念及編碼方式,補足了直交表實驗無法自動產生各 因素對應值的缺點,而直交表實驗的系統化推理,可大大提升基因演算法 在交配運算時搜查最佳解的效率。智慧型基因演算法具有強大的搜尋全域 的能力,對大量參數最佳化問題提供了最佳解。

3-1-2-1 基因演算法

基因演算法(Generic Algorithm,GA)是由美國密西根大學的 J. H.

Holland 教授於 1975 年所提出的。基因演算法是取自於大自然的一種演算 法,其基本精神在於仿效生物界中物競天擇,不適者優勝劣敗的自然進化 法則,以尋求出問題的最佳解。根據達爾文所提出的“適者生存"觀念,

對環境適應度較高的品種其生存的機會越高,而達成這種演化的關鍵在於 基因的複製(Reproduction)、交配(Crossover)和突變(Mutation)三種 特徵。基於仿效此種演化的法則,基因演算法透過編碼技術將所有的可能 解都轉換成染色體,再依據求解的條件來設計適應函數(Fitness

Function)。因此,大量的基因經由複製、交配和突變等演化過程,不斷地 產生出新的基因,且淘汰掉不良不具優勢的基因,經歷數代的篩選淘汰,

最後演化出一組讓適應函數達到最佳化的解。

基因演算法在最佳化的過程中扮演最重要的關鍵為,染色體的編碼方 式與其對應的適應度評估函數。選擇適當的編碼方式,可以大大地提升計 算的效率,而評估函數的目的是對一組經過編碼的可能解加以評分,而評 分的依據乃是根據所處理的問題所訂定之。基因演算法的流程如圖3-4 所 示,底下則對基因演算法之各種運算做進一步的解說。

(1) 複製運算

在此可引用達爾文的「物競天擇說」解釋世上各生物可繁延至今,皆因不 斷地演化進步而達成的。在基因演算法中,複製是依據每一物種的適應程 度來決定其在下一個子代中應被淘汰或複製的個體多寡的一種運算過 程。保留適應度較高的染色體,並在下一代中被大量地複製,而適應度較 差的染色體則在下一代中被淘汰掉,其中適應程式的量測是由適應函數來 反應。

(2) 交配運算

基因演算法使用大量的可能解在解空間中平行搜尋,交配運算的主要功能 為能夠在平行搜尋的過程中彼此交換資訊。在染色體交配的過程中,父代 透過交換彼此的資訊,期望能產生出新一代的染色體的適應度更加優秀。

(3) 突變運算

突變運算在基因演算法中所扮演的角色,為帶領整體的演化跳躍至不同的 值域中重新做搜尋,以免陷入區域的最佳解中。因此,加上突變運算後,

便可確保基因演算法演化的過程中,空間中的所有可能解都有被搜尋到的

圖3-4 基因演算法之流程圖

機會。在基因演算法的設定參數上,突變運算發生的機率通常都設得相當 地低,此小小的突變對於單一個體往往會造成傷害,但對於整個族群的演 化上,卻是一種非常重要的助益。

3-1-2-2 直交因素實驗

表 3-1

一 個

L8(27)的直交表 3-1-2-3 智慧型交配

假設選出一對染色體p1 和 p2,都含有 N 個經過編碼的參數,其智慧 型交配運算的步驟如下所示:

步驟一:選定使用直交表Lω(2ω-1)最前面 N 列,其中 ω=2log(N+1)。 步驟二:令因素j 中的水準 1 與水準 2 分別表示參數來自於父代 p1 和 p2

的第j 個參數。

步驟三:進行直交表實驗,計算出主效果Sjk,其中j =1,2,3,….,N 與 K=1,2。

步驟四:若Sj1 > Sj2,在望大問題中,因素j 選用水準 1,在望小問題中,

則選用水準2;反之,若 Sj2 > =Sj1,在望大問題中,因素j 選用 水準2,在望小問題中,則選用水準 1。

步驟五:經由主效果分析後之最好變數組合視為子帶個體C1

步驟六:在所有的ω 實驗中,找出適應函數值最大者作為子代個體 C2。 步驟七:完成智慧型交配的動作。

因 素

實驗編號 1 2 3 4 5 6 7 適應函數值 yt(E2)

1 1 1 1 1 1 1 1 y

1

2 1 1 1 2 2 2 2 y

2

3 1 2 2 1 1 2 2 y

3

4 1 2 2 2 2 1 1 y

4

5 2 1 2 1 2 1 2 y

5

6 2 1 2 2 1 2 1 y

6

7 2 2 1 1 2 2 1 y

7

8 2 2 1 2 1 1 2 y

8

表3-2 L8(27)的直交表和其因素分析

3-2 智慧型漸近立方體演算法

智慧型漸近立方體演算法為漸近立方體演算法及智慧型基因演算法 之融合。先使用漸進立方體演算法來建構出幾何模型,但漸進立方體演算 法會對單元中的每一個單元進行處理,包括空的單元,及有可能會產生太 多的三角型,造成了處理上之不易,且漸近立方體演算法其等值面與單元 邊界的交點基於線性插值,在插值過程中極容易產生錯誤。因此,我們透 過智慧型基因演算法的演化觀念、編碼方式及系統化推理等優點,針對漸 近立方體演算法不足的地方來加以改良,我們使用智慧型基因演算法來對 每個單元上八個頂點的值進行調整,使其每一個單元所產生的三角形都能 與其內部包含點的位置能達到最適的距離,進而使整個網面貼近物體表 面,來達到最佳化,其詳細過程將在本節中加以說明。

因 素

實驗編號 1 2 3 4 5 6 7 適應函數值 yt(E2)

1 1 1 1 1 1 1 1 y

1

2 1 1 1 2 2 2 2 y

2

3 1 2 2 1 1 2 2 y

3

4 1 2 2 2 2 1 1 y

4

5 2 1 2 1 2 1 2 y

5

6 2 1 2 2 1 2 1 y

6

7 2 2 1 1 2 2 1 y

7

8 2 2 1 2 1 1 2 y

8

S

j1

S

11

S

21

S

31

S

41

S

51

S

61

S

71

S

j2

S

12

S

22

S

32

S

42

S

52

S

62

S

72

3-2-1 改良式漸進立方體演算法

有許多的演算法可以用來重建三維等值面(iso-surface),漸進立方體 演算法(Marching Cubes Algorithm)就是其中之一。在過去數十年間,漸 進立方體演算法是一種應用很廣泛的由體密度數據重建三維等值面的方 法。近年來,有許多的科學家陸續提出他們在漸進演算法上的研究,藉由 減化三角型的產生數量,降低錯誤和重覆的發生,來讓漸進演算法在重建 三維等值面的表現上更趨完美。但經由我們的研究認為漸進立方體其最大 的問題是在於等值面之值(iso-value),因漸進立方體使用等值面之值來插 值三角型的頂點,在這插值的過程中有可能會產生若干的錯誤並影響到最 終的結果。基於此觀點,我們提出了一種新的方法來產生三角型。我們不 使用傳統漸進立方體演算法使用等值面之值的方法,我們定義每個點都有 其自己的值,並可對此點的值進行最佳化的調整,最後經由值所產生的表 面將會擁有到內部點的最短距離。我們使用智慧型基因演算法來對每個單 元(cell)進行平行化的處理,如最後結果所呈現的,我們所產生的三角 型其從點到表面的垂直距離皆是最短的,並盡可能地減少錯誤發生的機 會。

3-2-1-1 對單元頂點進行分類

考慮一個單元(如圖3-5 所示)其擁有八個頂點,其中四個頂點來自 slice k,而另外四個頂點來自 slice k+1。

圖3-5 立方體單位示意圖

在傳統的漸進立方體演算法中,為了要找到此單元表面中的相交,

在傳統的漸進立方體演算法中,為了要找到此單元表面中的相交,

相關文件