徐振豪 何良華
摘要:隨著醫(yī)學(xué)與計(jì)算機(jī)科學(xué)的不斷融合,醫(yī)學(xué)影像三維可視化技術(shù)在醫(yī)學(xué)領(lǐng)域扮演著重要的角色。為了幫助醫(yī)務(wù)人員更直觀觀察前列腺癌及其周圍器官分布情況,在Unity 3D平臺(tái)上實(shí)現(xiàn)了對(duì)前列腺醫(yī)學(xué)影像的三維重建及交互的系統(tǒng)。將醫(yī)學(xué)分割處理后的結(jié)果作為數(shù)據(jù)輸入,通過一種改進(jìn)的線性插值算法獲得內(nèi)插二值圖像,利用面繪制算法生成三角形網(wǎng)格模型、網(wǎng)格平滑算法進(jìn)行迭代優(yōu)化,最終渲染出三維可視化模型,在unity上以系統(tǒng)的形式進(jìn)行展示和交互。
關(guān)鍵詞: 前列腺; 三維可視化; Unity3D; 面繪制算法; 線性插值算法; 網(wǎng)格平滑算法
中圖分類號(hào): TP391? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)01-0008-03
Abstract:With the continuous integration of medicine and computer science, the 3D visualization technology of medical images plays an important role in the medical field. In order to help medical staff observe prostate cancer and the distribution of its surrounding organs more intuitively, implements a 3D reconstruction and interactive system for prostate medical imaging on the Unity 3D platform. Taking the result of medical segmentation as input, the interpolated binary image is obtained through an improved linear interpolation algorithm, the triangle mesh model is generated by MC algorithm, and a mesh smoothing algorithm is used for iterative optimization. Finally, a 3D visualization model is rendered, which is displayed and interacted on Unity.
Key words:prostate;3D visualization;unity3D;marching cubes;linear interpolation; mesh smoothing
近年來,隨著計(jì)算機(jī)軟硬件技術(shù)的不斷發(fā)展,醫(yī)學(xué)三維可視化也逐步發(fā)展成了一個(gè)熱門的領(lǐng)域。通過醫(yī)學(xué)三維可視化技術(shù),醫(yī)護(hù)人員的觀察對(duì)象從MRI、CT等二維斷層序列轉(zhuǎn)變?yōu)獒t(yī)學(xué)器官所對(duì)應(yīng)的三維模型,這使得醫(yī)護(hù)人員更直觀看到三維器官且可以根據(jù)三維模型來判斷病灶的相對(duì)位置、大小、形狀等信息。隨著圖像可視化研究的日益發(fā)展與成熟,它的開發(fā)工具包也逐漸進(jìn)行大眾的視野,其中最為常見的就是ITK、VTK和MITK。國內(nèi)有學(xué)者利用VTK和VS實(shí)現(xiàn)了幾種面繪制和體繪制方法的三維重建及交互[1],但VTK運(yùn)行速度慢、重建結(jié)果存在鱗狀效應(yīng)的缺點(diǎn)仍無法根治。為此,中科院自動(dòng)化所的田捷博士帶領(lǐng)的團(tuán)隊(duì)開發(fā)出MITK[2]。MITK集成了醫(yī)學(xué)影像領(lǐng)域內(nèi)各算法,是一個(gè)集醫(yī)學(xué)影像分割、配準(zhǔn)、三維可視化為一體的框架,填補(bǔ)了VTK+ITK的缺陷。MITK框架集成了基于閾值的分割算法、區(qū)域增長算法以及交互式分割算法,較好地應(yīng)用于肺部、腳踝等CT圖像的三維可視化,但是對(duì)于復(fù)雜的前列腺影像器官三維可視化的工作而言,MITK并不是一個(gè)有效的選擇,該框架提供的分割算法并不能將直腸、精囊、前列腺、精囊做正確分割并重建三維模型。除此之外,龐大復(fù)雜的MITK系統(tǒng)存在編譯安裝不方便、不利于二次開發(fā)等問題。作為游戲引擎開發(fā)的Unity平臺(tái),它構(gòu)建的可視化項(xiàng)目主要覆蓋在地理空間、游戲開發(fā)、虛擬現(xiàn)實(shí)等領(lǐng)域。相比而言,很少有人將Unity技術(shù)應(yīng)用到醫(yī)學(xué)三維可視化領(lǐng)域,這將是一個(gè)全新的嘗試?;赨nity 3D平臺(tái)實(shí)現(xiàn)的醫(yī)學(xué)三維可視化系統(tǒng)最終會(huì)生成可執(zhí)行文件,具有界面友好、可移植性強(qiáng)、GPU視覺渲染效果強(qiáng)等特點(diǎn)。為此,本文基于Unity平臺(tái)實(shí)現(xiàn)了一個(gè)前列腺三維可視化交互系統(tǒng),并實(shí)現(xiàn)了一種改進(jìn)的基于深度優(yōu)先篩選的二值斷層圖像的線性插值算法。
1 算法實(shí)現(xiàn)
本系統(tǒng)以前列腺M(fèi)RI影像分割后的結(jié)果作為輸入,先使用基于深度優(yōu)先篩選的二值斷層圖像的線性插值算法從而得到內(nèi)插斷層圖像,再使用面繪制算法生成前列腺的三角片網(wǎng)格模型,再利用網(wǎng)格平滑算法迭代優(yōu)化三角片,最終生成三維前列腺模型。
1.1數(shù)據(jù)預(yù)處理
經(jīng)醫(yī)學(xué)影像分割算法之后,我們將從原始MRI數(shù)據(jù)獲取到NIFTI格式的分割結(jié)果,其中包括前列腺、直腸、精囊、腫瘤這四個(gè)器官。將NIFTI格式的分割結(jié)果轉(zhuǎn)化成二值化斷層序列,將對(duì)應(yīng)器官的二值化斷層序列放在相對(duì)應(yīng)的文件。以實(shí)驗(yàn)中前列腺患者所用的核磁共振儀為例,上述4個(gè)器官經(jīng)處理后均生成24張二值化斷層序列圖像,存放于與之對(duì)應(yīng)的文件夾下。
1.2線性插值
在醫(yī)學(xué)三維可視化過程中,由于受限于斷層掃描設(shè)備、圖像存儲(chǔ)空間、安全性等因素,相鄰斷層之間存在一定的距離,這使得重建出的三維模型的層間分辨率遠(yuǎn)低于二維斷層圖像的層內(nèi)分辨率,該重建結(jié)果存在失真的問題。因此,為了得到更真實(shí)的前列腺可視化結(jié)果,就必須對(duì)這些斷層序列進(jìn)行插值處理[3]。由于斷層序列圖像存在特殊性以及為了降低運(yùn)算復(fù)雜度,本文所提出的插值算法只根據(jù)相鄰斷層圖像的輪廓信息內(nèi)插出中間斷層的輪廓信息,然后經(jīng)過填充得到最終的中間斷層圖像。另外,考慮到患者可能存在不規(guī)則的病變精囊或腫瘤,利用深度優(yōu)先算法遞歸確定匹配輪廓來解決可能存在的問題。這就是本文提出的基于深度優(yōu)先篩選的二值斷層圖像的線性插值算法。
本文是基于胡曉飛提出的一種簡(jiǎn)單而有效的輪廓線匹配算法[3]。該方法將S和T的質(zhì)點(diǎn)作為圓心劃分為4個(gè)象限,每個(gè)象限都有一對(duì)匹配線段,然后再根據(jù)特定的匹配準(zhǔn)則確定最佳匹配點(diǎn)對(duì),使之成為圖1的情況,最終通過線性插值計(jì)算出[Ri]。她提出的匹配準(zhǔn)則是盡可能將S上的輪廓線點(diǎn)集平均分配給T上的輪廓線點(diǎn)集。
該方法對(duì)于解決前列腺影像中類橢圓器官:前列腺、直腸等具有較好的應(yīng)用。但精囊和腫瘤并不能直接使用該方法進(jìn)行內(nèi)插。一方面是精囊分為左右精囊、患者可能存在多個(gè)腫瘤因而待插值圖像中存在多個(gè)封閉區(qū)域。另一方面是病變的精囊或腫瘤可能存在不規(guī)則形狀會(huì)導(dǎo)致上述方法在劃分象限后出現(xiàn)多條輪廓線。如圖2所示是前列腺M(fèi)RI影像中的一張橫截面切片,從上到下分別表示前列腺、精囊、直腸。從中可以看出精囊存在兩個(gè)封閉區(qū)域且形狀復(fù)雜不規(guī)則。
基于上述分析,本文對(duì)胡曉飛學(xué)者提出的算法做出一定改進(jìn)以應(yīng)用于前列腺影像的插值工作。接下來主要介紹本文實(shí)現(xiàn)的算法步驟:
對(duì)于相鄰兩張待插值的二值斷層圖像,起始圖像記為S,另一記為T,S與T之間需要內(nèi)插的M張記為[Ri,i∈M]。
首先,計(jì)算內(nèi)插層數(shù)M。分割得到NIFTI格式數(shù)據(jù)的頭文件中對(duì)應(yīng)的pixdim體素維度字段保留相鄰斷層層間間隔以及每個(gè)斷層所對(duì)應(yīng)的厚度。由此可以求出相鄰斷層需要的內(nèi)插層數(shù)M。
其次,提取圖像的邊緣輪廓??紤]到精囊和腫瘤存在多個(gè)封閉區(qū)域,此處使用COCO數(shù)據(jù)集進(jìn)行格式互換時(shí)的binary_mask_to_polygon函數(shù)[4],可提取mask圖像中的所有封閉區(qū)域的輪廓線點(diǎn)集,以list的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)所有輪廓線的點(diǎn)集,有效解決了精囊和腫瘤存在多個(gè)封閉區(qū)域的問題。
接下來要計(jì)算出待插值的輪廓線的質(zhì)心坐標(biāo)。對(duì)于每張二值圖像,可獲取對(duì)應(yīng)器官的輪廓線,計(jì)算出所有輪廓線上點(diǎn)的質(zhì)心坐標(biāo)[x0,y0]:
其中,[xi,yi]為這些像素點(diǎn)的坐標(biāo),N為輪廓線上像素點(diǎn)總數(shù)。
下一步就是確定S和T輪廓線的匹配線段??紤]到病變精囊或腫瘤可能存在不規(guī)則形狀會(huì)導(dǎo)致每個(gè)象限存在多條輪廓線,本文對(duì)每個(gè)象限的輪廓線進(jìn)行深度優(yōu)先遍歷,搜索并記錄該象限中所有存在的輪廓線,篩選出像素點(diǎn)數(shù)最多的輪廓線作為該象限的最佳輪廓線。最后,進(jìn)行閉環(huán)檢測(cè),由于經(jīng)上述處理后各象限的輪廓線可能存在間斷現(xiàn)象,利用二維的線性插值補(bǔ)充輪廓點(diǎn)確保每張斷層圖像最終篩選出的輪廓線形成一個(gè)閉環(huán)。
在確定好輪廓線之后,接下來就要確定最佳匹配點(diǎn)對(duì)從而進(jìn)行線性插值。本文利用遞歸調(diào)用函數(shù)來實(shí)現(xiàn)這一匹配過程。
①先分別計(jì)算兩條輪廓線的中心點(diǎn);
②然后將兩輪廓線對(duì)應(yīng)的起點(diǎn)、中點(diǎn)、終點(diǎn)作為一對(duì)匹配點(diǎn),進(jìn)行線性插值計(jì)算內(nèi)插的像素點(diǎn)坐標(biāo);
③接著起點(diǎn)保持不變,將中點(diǎn)作終點(diǎn)遞歸執(zhí)行①②步驟;
④將中點(diǎn)作為起點(diǎn),終點(diǎn)不變遞歸執(zhí)行①②步驟。
經(jīng)上述遞歸式最佳匹配與線性插值過程,所得的結(jié)果只是內(nèi)插圖像的邊緣輪廓線,因此通過進(jìn)一步填充運(yùn)算得到一個(gè)最終完整的內(nèi)插圖像。結(jié)果如圖3、4所示,對(duì)一名患者的前列腺、精囊器官進(jìn)行線性插值,內(nèi)插層數(shù)M為7。
1.3面繪制
經(jīng)過線性插值之后,便得到了各器官經(jīng)內(nèi)插之后的二維圖像切片。但我們最終目的是為了得到前列腺影像的三維模型數(shù)據(jù),因此需要用面繪制算法將二維切片數(shù)據(jù)轉(zhuǎn)換為三維可視化模型并實(shí)時(shí)渲染。Marching Cubes算法是由Lorensen等人于1987年提出并實(shí)現(xiàn)的一種面繪制算法[5]。該算法的主要思想是以體元為單位來確定三維模型數(shù)據(jù)部分與背景部分的邊界,利用256種可枚舉的情況來實(shí)現(xiàn)體元內(nèi)的等值三角片抽取。遍歷所有二維斷層圖像的體元,抽取出其中的三角片最后集合成能表示三維模型表面的三角網(wǎng)格。本文根據(jù)范強(qiáng)等人基于中值法改進(jìn)的Marching Cubes算法進(jìn)行面繪制實(shí)現(xiàn)前列腺等器官的三維重建[6][7]。相比于經(jīng)典的MC算法,該改進(jìn)避免了遍歷無用的體素和形成空白三角片,提高了處理速度和效率。最終,我們得到了關(guān)于前列腺影像的三維模型數(shù)據(jù):頂點(diǎn)坐標(biāo)數(shù)組和三角片的索引數(shù)組。
1.4網(wǎng)格平滑
為了使三維模型的網(wǎng)格更加平滑,還引入了網(wǎng)格平滑算法對(duì)三角網(wǎng)格進(jìn)行迭代平滑。此處使用拉普拉斯平滑算法[8][9]:原理是將每個(gè)頂點(diǎn)都移動(dòng)到相鄰頂點(diǎn)的平均位置,即采用所謂傘狀算子:[Up=1ni=0n-1Adjip]。在傘狀結(jié)構(gòu)中表示這樣的過程如圖5所示。
1.5模型渲染
首先,利用Unity中的MeshRender組件確定各器官的材質(zhì)顏色并渲染出來,此處以泌尿科大夫的一般標(biāo)注習(xí)慣對(duì)各器官添加材質(zhì)顏色,其中直腸材質(zhì)顏色為藍(lán)色、前列腺為綠色、精囊為黃色、腫瘤為紅色。然后,將頂點(diǎn)坐標(biāo)數(shù)組和三角片的索引數(shù)組數(shù)據(jù)賦值給Unity中的Mesh組件,最終渲染出前列腺影像的三維可視化模型。渲染結(jié)果如圖6、7所示。
2 系統(tǒng)實(shí)現(xiàn)
由于大部分腫瘤都會(huì)存在于前列腺內(nèi)部,因此需要增設(shè)調(diào)節(jié)透明度功能,這樣醫(yī)護(hù)人員可根據(jù)透明度的調(diào)節(jié)來觀察到前列腺內(nèi)部的腫瘤大小及其結(jié)構(gòu)。在Unity3D中需要將材質(zhì)的Rendering Mode修改為Fade模式。為實(shí)現(xiàn)前列腺影像三維模型的旋轉(zhuǎn)功能,我們將前列腺三維模型設(shè)為參照物,場(chǎng)景中的主相機(jī)根據(jù)三維模型的中心點(diǎn)進(jìn)行旋轉(zhuǎn),并設(shè)置可調(diào)節(jié)的旋轉(zhuǎn)角速度參數(shù)。
最終,通過在Unity3D場(chǎng)景中增加交互按鈕及滾動(dòng)條等插件,實(shí)現(xiàn)了對(duì)三維模型進(jìn)行平移、縮放、調(diào)節(jié)透明度、旋轉(zhuǎn)及控制旋轉(zhuǎn)速度等交互操作。在代碼中實(shí)現(xiàn)混合編程,將線性插值部分的python代碼嵌入到C#腳本中,實(shí)現(xiàn)一個(gè)端到端的前列腺影像三維可視化系統(tǒng)。該場(chǎng)景通過對(duì)前列腺分割結(jié)果的全方位展示,輔助醫(yī)生了解病灶的空間位置及大小,提高手術(shù)精度。主界面如圖8所示。
3 結(jié)論
本文提出了一種基于深度優(yōu)先篩選的二值斷層圖像的線性插值算法,其目的是針對(duì)性地解決前列腺影像中精囊和腫瘤多區(qū)域以及不規(guī)則形狀所帶來的問題。但該線性插值算法仍存在一定的不足,僅針對(duì)特定前列腺影像問題做出的改進(jìn),泛化能力不強(qiáng)。同時(shí),本文突破以往用VTK和MITK開發(fā)三維可視化系統(tǒng)的局限性,針對(duì)復(fù)雜結(jié)構(gòu)的前列腺影像在Unity3D平臺(tái)上用面繪制算法生成三維網(wǎng)格模型,并實(shí)現(xiàn)交互。在今后的研究過程中,前列腺影像三維可視化系統(tǒng)可將基于人工智能的前列腺器官分割技術(shù)和面繪制三維重建技術(shù)相融合形成端到端的自動(dòng)分割和三維可視化系統(tǒng),能更切實(shí)地幫助醫(yī)生生成自動(dòng)分割的可視化模型。
參考文獻(xiàn):
[1] 劉敏.基于VTK的醫(yī)學(xué)圖像三維重建的研究[D].秦皇島:燕山大學(xué),2013.
[2] 汪文星.基于MITK的CT圖像三維可視化方法研究[D].廣東:華南理工大學(xué),2011.
[3] 胡曉飛.一種用于二值斷層圖像的插值方法[C].合肥:第二屆全國幾何設(shè)計(jì)與計(jì)算學(xué)術(shù)會(huì)議,2005.
[4] Lin T Y,Maire M,Belongie S,et al.Microsoft COCO:common objects in context[M]//Computer Vision – ECCV 2014.Cham:Springer InternationalPublishing,2014:740-755.
[5] Lorensen W E,Cline H E.Marching cubes:a high resolution 3D surface construction algorithm[J].ACM SIGGRAPH Computer Graphics,1987,21(4):163-169.
[6] 范強(qiáng),劉鵬.基于中值法改進(jìn)Marching Cubes曲面重建算法[J].測(cè)繪與空間地理信息,2019,42(12):11-14.
[7] wozhengtao.圖像數(shù)據(jù)到網(wǎng)格數(shù)據(jù)-1——MarchingCubes算法[CP]. https://blog.csdn.net/wozhengtao/article/details/51429964.
[8] Field D A.Laplacian smoothing and Delaunay triangulations[J].Communications in Applied Numerical Methods,1988,4(6):709-712.
[9] wozhengtao.幾種網(wǎng)格平滑算法的實(shí)現(xiàn)[CP]. https://blog.csdn.net/wozhengtao/article/details/51431378.
【通聯(lián)編輯:唐一東】