第三章 區塊式濾波反投影影像重建
3.3 演算過程推演
當光線直接反投影回去,直接將 累加在重建影像的像素中,此時
我們取整數點當作反投影時所經過的座標,當 向前傳播 時,X 方向
的變化量為
) , ( _real i j filtered
) , ( _real i j
filtered Δk
θ
×sin
Δk ,Y方向的變化量為Δk×cosθ ,如此可以方便計算出 下一個將要經過的座標,
) , ( _real i j
filtered Δk每次遞增值為一,以影像為例,左上角為
原點,因此,如圖 3-8 所示:
圖 3-8
圖 3-9
我們採用區塊式做影像重建,所以每一個區塊只需截出一小段的 sub-sinogram 來 做反投影。我們先求區塊中心(即 a 點)、 (即 b 點)、
圖 3-10
3.4 拆解區塊式 FBP
我們預先將反投影所需的資訊編成訊息列(message list),每筆訊息長度為 64 位 元,訊息內容包括 、Y座標、X座標,各佔 32 位元、16 位元、16 位 元。如圖 3-11 所示:
) , ( _real i j filtered
圖 3-11
將七個訊息分別編成上述格式之後,再以平行的方式掃過整個區塊,被掃過的區域 立即累加 值,如圖 3-12,由 A 端掃到 B 端,A 端與 B 端的距離為 8 個 單位長,每條訊息所走過的路徑長均為 8,如黑色訊息所掃過的區域共有五塊。
) , ( _real i j filtered
圖 3-12
建立三個表格存放重要的資訊,利用查表法可以更快速將重覆且複雜的計算簡化成 表格,用簡單的位移即可計算出其他區塊所需的資訊,我們用的圖大小為 128x128,每 個區塊大小為 4x4,因此每一列可以切成 32 個區塊,總共有 1024 個區塊,0≤ m≤31,
,我們建立的表格資訊皆由 block(0,0)計算得來的,有了 block(0,0)資訊,
即可以推算出 block(m,n)於重建時所需的資訊,可計算出 block(m,n)中心點對於 31
0≤ n≤
) ( i P θ 的投影點,進而截出反投影時所需的 sub-sinogam,不用每次重建某一個區塊時,就重 新計算 sub-sinogram,節省不少計算上的時間,如圖 3-13:
圖 3-13
所要建立的三個表格分別儲存αi(0,0),0≤ i≤127,截出重建時所需要的 sinogram 之後,第一個點的 X 座標與 Y 座標,即圖 3-14 中標示紅色的點,αi(0,0)為 blcok(0,0) 在P(θi)上的投影點:
圖 3-14
每個區塊中心點對P(θi)的投影點關係,經由推導可得
圖 3-16
有鑑於上述情形的發生,我們將訊息列分成偶數訊息(even messages)與奇數訊息 (odd messages),偶數訊息有自己的重建區塊,奇數訊息亦有自己的重建區塊,奇數訊 息和偶數訊息重建之後的結果點對點相加起來,即為最後的重建圖形,偶數訊息與奇數 訊息於反投影過程中不會有資料衝突的情形,如圖 3-17 所示:
圖 3-17
第四章 結果與討論
4.1 結果與討論
以下為軟體模擬的結果,利用 Xilinx 所開發的一套嵌入式系統開發軟體
EDK(Embedded Development Kit)進行軟體模擬,撰寫 C 語言,搭配 ML310 中的 powerPC 進行運算,時脈為 100MHz,圖 4-14、圖 4-15 分別為 128x128 和 256x256 的原始圖,圖 4-1~圖 4-6 影像大小為 128x128,圖 4-1 採用區塊大小為 4X4 的結果,圖 4-2 採用區塊 大小為 8X8 的結果,圖 4-3 採用區塊大小為 16X16 的結果,圖 4-4 採用區塊大小為 32X32 的結果,圖 4-5 採用區塊大小為 64X64 的結果,圖 4-6 採用區塊大小為 128X128 的結果,
明顯的圖 4-6 結果較好,因為不需要計算截出 sub-sinogram,可避免誤差累積,其他不 同大小的區塊重建結果,由於在截出 sub-sinogram 時,直接取其整數值,亦沒有做內 插作為些許的修正,因此結果中出現了假影(artifacts),此演算法目標用於硬體加速 影像重建,我們所使用的硬體資源有限,最後我們採取區塊的大小為 4x4,此演算法可 高度平行化的做影像重建。
圖 4-1 圖 4-2 圖 4-3
圖 4-4 圖 4-5 圖 4-6
圖 4-7~圖 4-13 為影像大小 256x256 的軟體模擬結果,圖 4-7 採用區塊大小為 4X4 的結果,圖 4-8 採用區塊大小為 8X8 的結果,圖 4-9 採用區塊大小為 16X16 的結果,圖 4-10 採用區塊大小為 32X32 的結果,圖 4-11 採用區塊大小為 64X64 的結果,圖 4-12 採用區塊大小為 128X128 的結果,圖 4-13 採用區塊大小為 256X256 的結果,相同的道 理,圖 4-13 結果較佳,因此若有更多硬體資源的話,可得到較好的重建結果。
圖 4-7 圖 4-8
圖 4-9 圖 4-10
圖 4-11 圖 4-12
圖 4-13
圖 4-14 圖 4-15
4.2 未來與展望
本演算法可於 FPGA 硬體加速計算,可高度平行化處理計算,且可以利用 pipeline 排程,當每一列做完傅立葉轉換、乘上濾波器、反傅立葉轉換,即可立刻做反投影,平 行化處理加上 pipeline 排程,預期的效果可以更好,執行時間可縮短,更有效率,使 硬體效能發揮到極致。
參考文獻
[1] Alexandro M.S. Adario, Eduardo L. Roehe, Sergio Bampi,
“Dynamically Reconfigurable Architecture for Image Processor Applications", DAC99, New Orleans, Louisiana, ACM, 1999
[2] Didier LATTARD, Guy MAZARE, “Image reconstruction using an original asynchronous cellular array", ISCAS IEEE, 1989
[3] Anup B. Sharma, Keith R. Allen and Roy P. Pargas, “Some new systolic designs for two-dimensional convolution", ACM, 1988
[4] Bei-Chuan Chen, Yu-Tai Ching, “A new antialiased line drawing algorithm", Computers & Graphics, 2001
[5] Bertil Schmidt, Manfred Schimmler, Heiko Schroder, “Tomographic Image
Reconstruction on the Instruction Systolic Array”, Computers and Artificial Intelligence, 1995
[6] A.V. Lakshminarayanan, "Reconstruction from divergent ray data," tech. rep., Dept.Computer Science, State University of New York at Buffalo, 1975.