陳澤鈺,葛云,陳穎,黃曉林,李偉峰
南京大學(xué)電子科學(xué)與工程學(xué)院,江蘇南京210023
計(jì)算機(jī)技術(shù)在近年來飛速發(fā)展,同時醫(yī)學(xué)成像設(shè)備在臨床診斷中也起到不可或缺的作用,醫(yī)學(xué)影像技術(shù)和計(jì)算機(jī)技術(shù)的結(jié)合也越來越緊密[1]。超聲成像技術(shù)以其無輻射、成本低、實(shí)時性等優(yōu)勢,在輔助醫(yī)生進(jìn)行診療工作中扮演著重要的角色。然而傳統(tǒng)的超聲成像設(shè)備大都只能提供人體斷面的二維圖像[2],對于臨床醫(yī)生來說,需要依靠以往經(jīng)驗(yàn),在大腦中重構(gòu)出人體器官的三維結(jié)構(gòu),這對診斷的準(zhǔn)確性和客觀性提出了不小的挑戰(zhàn)。利用三維重建以及可視化技術(shù),將二維超聲圖像重建為三維結(jié)構(gòu),不僅能更加直觀地顯示人體器官情況,還能降低對醫(yī)生的要求,使得醫(yī)生能夠從單一的診療角色逐漸轉(zhuǎn)變,能同時參與到診療、數(shù)據(jù)分析和科學(xué)研究中[3]。
回顧國內(nèi)外三維超聲成像研究的歷史,超聲圖像的采集方式大致分為兩種。其一是使用改造的超聲換能器直接采集三維體數(shù)據(jù),如容積探頭和面陣探頭。容積探頭組合電動機(jī)和線性陣列是一種過渡方案,成像質(zhì)量不足,體積較大,便攜性差[4-5];面陣探頭則由本身的性質(zhì)決定其可以直接獲取二維超聲圖像陣列,并記錄其相對位置關(guān)系,但由于超聲換能器改造工藝的限制,使用這種方式的探頭體積較大,成像視野較小,圖像質(zhì)量相對較差,成本也比較高[6-7]。另一種則是使用傳統(tǒng)超聲探頭,自由式采集二維超聲圖像陣列并進(jìn)行三維重建,這種方式在臨床上具有靈活、易于操作、不受掃描方向限制、成本較低等優(yōu)點(diǎn)。但自由式采集需要依據(jù)外界的輔助定位系統(tǒng)來確定每一幀圖像的三維空間位置。根據(jù)所用定位方式的不同,自由式采集又分為:借助機(jī)械臂定位器、光學(xué)定位器、磁場傳感器、基于圖像特征分析等方法。
本研究提出一種自由式的基于雙目紅外相機(jī)定位的三維超聲圖像重建系統(tǒng)。系統(tǒng)基于Qt、VTK、CTK、OpenCV 等框架開發(fā),使用C++作為主要開發(fā)語言,形成一個完整的桌面級應(yīng)用軟件。通過連接雙目紅外相機(jī)和超聲機(jī),能夠?qū)崟r采集超聲圖像并獲取圖像間的位置關(guān)系,從而重建出三維結(jié)構(gòu)。本軟件具有操作簡單、交互友好、運(yùn)行穩(wěn)定等特點(diǎn);醫(yī)生可以對圖像陣列進(jìn)行感興趣區(qū)域勾畫,對三維結(jié)構(gòu)進(jìn)行平移、旋轉(zhuǎn)、縮放等操作。
自由式(Freehand)采集需要監(jiān)測超聲探頭的軌跡,這一過程是通過安裝位置傳感器實(shí)現(xiàn)的,而位置傳感器只是測量自身的運(yùn)動,與探頭獲取超聲圖像還有一個位置和方向的變換,這個變換就是標(biāo)定[8-10]。標(biāo)定使得體數(shù)據(jù)填充更準(zhǔn)確,從而讓三維重建后的圖像更具有醫(yī)學(xué)參考價值,通常在診斷過程中,毫米級別的誤差都會造成極大的不利影響。在三維重建的過程中,通常使用體數(shù)據(jù)填充技術(shù),標(biāo)定會提供一個圖像的絕對坐標(biāo),還可以確定世界坐標(biāo)和像素位置的對應(yīng)關(guān)系,從而提高準(zhǔn)確性[11]。
本研究把與紅外相機(jī)配套的定位小球作為位置傳感器。在超聲探頭上固定3個不共線的定位小球,這3個小球可以唯一確定一個平面(圖1a),將該平面以及其對應(yīng)的法向量定義為探頭坐標(biāo)系。從世界(相機(jī))坐標(biāo)系到探頭坐標(biāo)系是一個三維空間到三維空間的變換,由平移以及旋轉(zhuǎn)操作即可實(shí)現(xiàn),可以用式(1)表示。
其中,TPtoW(Probe to World)表示轉(zhuǎn)換矩陣;Pw表示在世界(相機(jī))坐標(biāo)系中的某一點(diǎn)的坐標(biāo);Pp表示在探頭坐標(biāo)系下對應(yīng)點(diǎn)的坐標(biāo);Opw表示探頭坐標(biāo)系原點(diǎn)在世界坐標(biāo)系中的坐標(biāo)。用矩陣表示則可以化為:
探頭坐標(biāo)系與世界(相機(jī))坐標(biāo)系的關(guān)系如圖1b表示。定義向量以向量-- →-為Y 軸的正方向,經(jīng)過C點(diǎn)向直線BA 做垂線交于點(diǎn)Op,以向量為X 軸的正方向,則根據(jù)右手定則,向外的法向量n→為Z 軸的正方向。
超聲圖像成像的位置可以認(rèn)為在探頭的下方某處,是一個規(guī)則的扇形范圍,并由一個矩形框包圍住,這個成像平面相對探頭的位置始終不變,圖像的4個頂點(diǎn)與探頭上固定的3個定位小球是一個組合剛體(圖1c)。探頭和成像平面的組合體在旋轉(zhuǎn)后相對位置保持不變。
圖1 探頭坐標(biāo)系與探頭圖像組合剛體Fig.1 Probe coordinate and rigid body combination
我們認(rèn)為,在實(shí)際采集過程中,選取超聲探頭采集到的圖像中的點(diǎn)與計(jì)算機(jī)顯示器中的點(diǎn)有一一對應(yīng)關(guān)系。由于計(jì)算機(jī)顯示器中的圖像沒有采用縱深坐標(biāo),其三維顯示圖像也是經(jīng)過投影顯示的。所以本研究假設(shè)P點(diǎn)為超聲探頭可以采集到的某一點(diǎn),其在雙目紅外相機(jī)坐標(biāo)系(即世界坐標(biāo)系)下的坐標(biāo)為P=(x0,y0,z0),在計(jì)算機(jī)屏幕上的對應(yīng)點(diǎn)坐標(biāo)為P' =(x'0,y'0,z'0),存在一個矩陣轉(zhuǎn)換TWtoI(World to Image),可以將P與P'對應(yīng)起來。
在OpenGL 右手三維坐標(biāo)系下,采用的線性變換TWtoI是右乘的方式,而且在轉(zhuǎn)換過程中并非使用簡單的三維坐標(biāo),而是一種齊次變換,有4 個維度的坐標(biāo)(x,y,z,w),其中包括一個非線性的自由度w,使之像是投影到屏幕上一樣。一般在計(jì)算時會將其歸一化,經(jīng)過此變化后自由度w對于坐標(biāo)的值可認(rèn)為始終為1,而對于向量始終為0。P與P'最終變成P=(x0,y0,z0,1)與P' =(x'0,y'0,0,1)(屏幕上顯示的圖像z軸方向的值都為0)。在三維世界中的任意一點(diǎn),存在一個線性變換TWtoI,使其到計(jì)算機(jī)屏幕上的對應(yīng)點(diǎn)的變換為P' =TWtoIP。轉(zhuǎn)化為矩陣形式如式(3)所示:
所以要求得轉(zhuǎn)換矩陣TWtoI,實(shí)際是在求齊次方程的解。由式(3)可知,4 個不同的點(diǎn)坐標(biāo)即可求得TWtoI,在實(shí)際操作時通常多采集一到兩個點(diǎn),將其轉(zhuǎn)化為一個優(yōu)化問題,具體解優(yōu)化問題的原理就在此不再贅述。
根據(jù)上述探頭與相機(jī)坐標(biāo)系的關(guān)系描述可以將TWtoI拆分為TWtoP與TPtoI(Probe to Image)。存在
而TWtoP是隨著探頭在世界坐標(biāo)系中移動而變化的,計(jì)算機(jī)可以實(shí)時計(jì)算。由于超聲探頭采集圖像的4 個頂點(diǎn)與探頭上固定的3 個定位小球是一個組合剛體,所以TPtoI是固定不變的。因此圖像采集前的標(biāo)定其實(shí)是一個計(jì)算TPtoI的過程。
本系統(tǒng)使用VTK 框架的體繪制模塊作為三維重建的主要方法。使用紅外相機(jī)定位可以獲取采集到的超聲圖像陣列的位置信息,基本思路是將其抽象為一個大的體數(shù)據(jù)網(wǎng)格,遍歷整個體積結(jié)構(gòu)填入當(dāng)前位置所對應(yīng)的二維圖像灰度值。
體繪制是直接使用三維數(shù)據(jù)網(wǎng)格投影產(chǎn)生屏幕上的二維圖像,成像真實(shí),結(jié)構(gòu)清晰。體繪制技術(shù)可以通過改變不同區(qū)域的顏色與透明度等屬性來實(shí)現(xiàn)對不同區(qū)域的區(qū)分渲染。超聲成像技術(shù)所記錄的其實(shí)是當(dāng)前位置的灰度值(反射強(qiáng)度),所以可以通過調(diào)節(jié)不同位置的屬性來對物體進(jìn)行觀察。另一方面,超聲圖像的噪聲比較強(qiáng),主要來自于聲束在不均勻微組織間的散射干擾,上述的調(diào)整也可以減少噪聲對觀察圖像的影響。
光線投射法是一種對圖像陣列直接繪制的算法。從投影圖像平面的每一個像素,沿視線方向(也可以是其他固定方向)從視點(diǎn)發(fā)射一條射線,光線穿過圖像陣列。同時沿射線按照事先規(guī)定的步長對圖像陣列進(jìn)行等距離采樣,對每個采樣點(diǎn)使用插值算法來計(jì)算當(dāng)前位置的體素值,并根據(jù)特定函數(shù)獲取顏色值和不透明度[12]。同時依據(jù)光線吸收模型對顏色值進(jìn)行累加,直至光線穿越整個圖像陣列,最后得到的顏色值就是渲染圖像的顏色。光線投射法是基于射線掃描的,繪制效果較好,而且可以在GPU 實(shí)現(xiàn),速度較快[13]。
本系統(tǒng)主要包括硬件部分和軟件部分,硬件部分負(fù)責(zé)定位和超聲圖像采集,軟件部分則負(fù)責(zé)矩陣計(jì)算以及超聲圖像的讀取、重建、可視化。下面將詳細(xì)介紹各模塊的作用和具體實(shí)現(xiàn)。
2.1.1 雙目紅外相機(jī)及其配套工具雙目紅外相機(jī)是加拿大NDI公司生產(chǎn)的Polaris 紅外光學(xué)測量儀器(圖2a)。該相機(jī)可以產(chǎn)生850 nm 波長的紅外光,配套的紅外定位小球表面材料特殊,會反射紅外光形成亮斑。相機(jī)則根據(jù)空間三角關(guān)系可實(shí)時求得定位小球在空間中的坐標(biāo),達(dá)到跟蹤目的[14-15]。注冊筆(圖2b)在紅外相機(jī)視野中可以直接獲取筆尖的空間坐標(biāo),在系統(tǒng)中使用注冊筆的筆尖在超聲圖像中的像素位置以及在其世界坐標(biāo)系中的對應(yīng)坐標(biāo)來計(jì)算轉(zhuǎn)換矩陣T。
圖2 雙目紅外相機(jī)及其配套工具Fig.2 Binocular infrared camera and its matching tools
2.1.2 醫(yī)用超聲設(shè)備以及圖像采集卡醫(yī)用超聲機(jī)是常用的B型超聲影像設(shè)備,用來采集超聲圖像。在超聲探頭上固定3個不共線的定位小球,方便紅外相機(jī)實(shí)時跟蹤超聲探頭的位置。圖像采集卡(圖3)用于將超聲機(jī)模擬串口的輸出數(shù)據(jù)通過模數(shù)轉(zhuǎn)換成為灰度圖像,并讀取到計(jì)算機(jī)內(nèi)存中,供軟件三維重建使用。
圖3 圖像采集卡Fig.3 Image acquisition card
本系統(tǒng)軟件的結(jié)構(gòu)框圖如圖4所示,該系統(tǒng)可分為連接超聲機(jī)和雙目紅外相機(jī)、測量或?qū)霕?biāo)定數(shù)據(jù)、超聲圖像采集與保存、感興趣區(qū)域勾畫以及三維重建與可視化共5個模塊。系統(tǒng)成功連接超聲機(jī)和紅外雙目相機(jī)后,使用設(shè)備測量轉(zhuǎn)換矩陣;然后根據(jù)該矩陣,采集超聲圖像陣列,并根據(jù)空間位置關(guān)系重建出三維結(jié)構(gòu)。醫(yī)生可以通過交互窗口,對重建后的結(jié)構(gòu)進(jìn)行平移、旋轉(zhuǎn)、縮放等操作。如有需要,可對超聲圖像進(jìn)行感興趣區(qū)域勾畫。根據(jù)該框架設(shè)計(jì)的軟件各模塊功能示意圖如圖5所示。軟件采用結(jié)構(gòu)化設(shè)計(jì),耦合性低,可擴(kuò)展性高。在設(shè)計(jì)時主要分為紅外相機(jī)模塊、超聲模塊、重建模塊、用戶勾畫模塊。
圖4 系統(tǒng)結(jié)構(gòu)圖Fig.4 System structure diagram
圖5 軟件功能示意圖Fig.5 Diagrams of software functions
2.2.1 紅外相機(jī)模塊紅外相機(jī)作為定位的關(guān)鍵設(shè)備,是整個軟件系統(tǒng)工作的核心,為重建的體數(shù)據(jù)填充提供圖像的絕對位置信息。本系統(tǒng)將相機(jī)的開發(fā)包進(jìn)行封裝,以靜態(tài)庫的形式導(dǎo)入軟件鏈接器路徑中,松耦合,可獨(dú)立開發(fā)。標(biāo)定和采集的過程都需要連接相機(jī),如果紅外相機(jī)未連接,則不能采集圖像,只能導(dǎo)入硬盤中的圖像數(shù)據(jù)。
2.2.2 超聲機(jī)模塊超聲機(jī)模塊的作用是采集超聲圖像,搭配圖像采集卡,可將超聲機(jī)模擬串口的數(shù)據(jù)轉(zhuǎn)化為RGB 視頻格式,最終將灰度圖讀取到計(jì)算機(jī)內(nèi)存中。標(biāo)定和采集的過程也都需要連接超聲機(jī)。
2.2.3 重建模塊重建模塊是使用VTK 填充、渲染及可視化的,VTK內(nèi)部封裝了OpenGL的三維可視化技術(shù),使用對象化設(shè)計(jì)思想,提供標(biāo)準(zhǔn)化接口,可供設(shè)計(jì)者定制化開發(fā)。
2.2.4 用戶勾畫模塊用戶勾畫模塊基本的設(shè)計(jì)思想是一種掩模的思想,在待勾畫的超聲圖像上蓋上一層掩模(Mask),對這一圖層進(jìn)行勾畫操作,之后覆蓋在原超聲圖像上。
實(shí)際操作中,受實(shí)驗(yàn)條件所限,重建物體為水槽中的一個由硬質(zhì)塑料棒穿過的塑料球體。對標(biāo)準(zhǔn)乒乓球(直徑40.00 mm,質(zhì)量2.53~2.70 g)進(jìn)行三維重建后的圖像如圖6所示。醫(yī)生可以根據(jù)需求對圖像進(jìn)行平移、旋轉(zhuǎn)、伸縮等基本操作以便觀察。
圖6 三維重建后的圖像Fig.6 Image after three-dimensional reconstruction
經(jīng)過實(shí)驗(yàn),由游標(biāo)卡尺測得得實(shí)驗(yàn)所用乒乓球直徑約為39.72 mm,與標(biāo)準(zhǔn)乒乓球的直徑誤差約為0.28 m。而通過系統(tǒng)測得超聲圖像中乒乓球的直徑平均像素坐標(biāo)差為102.94 個像素,約合實(shí)際直徑為39.59 mm,與實(shí)驗(yàn)所用乒乓球直徑的絕對誤差的平均值約為0.53 mm,方差為0.333 9,標(biāo)準(zhǔn)差約為0.577 8??紤]到手工測量的誤差以及超聲圖像本身的性質(zhì),基本可控制圖像誤差在0.5 mm 級別(個別區(qū)域在1.0 mm 級別),與超聲圖像分辨率(也即像素距離0.384 6 mm)較為接近,具有較高的準(zhǔn)確性(表1)。
表1 系統(tǒng)實(shí)驗(yàn)結(jié)果表Tab.1 Result of system measurements
由表2可以看出,圖像的讀取時間隨著圖像的張數(shù)基本成正比例關(guān)系,隨著圖像張數(shù)增加至443 張,耗時達(dá)48 s左右,因?yàn)閳D像的數(shù)量較多,圖像的分辨率為1 024×600,大小是600 k,443 張圖片約合260 M,時間尚可接受。
表2 圖像讀取與重建效率Tab.2 Efficiency of image reading and reconstruction
圖像重建方面,可以觀察到使用四線程時,如果圖像數(shù)量較少,重建速度提升較少;而圖像數(shù)量較多時,重建速度顯著提升3 倍以上。當(dāng)圖像數(shù)量在200張左右時(大概可供使用者采集6 s),重建用時在10 s以內(nèi)即可完成,具有較高的效率。
三維超聲成像技術(shù)具有直觀、清晰、經(jīng)驗(yàn)依賴少,便于影像融合等優(yōu)點(diǎn),綜合了臨床醫(yī)學(xué)、計(jì)算機(jī)技術(shù)、光學(xué)、機(jī)械等多方面技術(shù),也是由臨床需要、科技進(jìn)步以及商業(yè)利益共同催生的[16],在近年來一直是國內(nèi)外專家學(xué)者的研究對象。
本系統(tǒng)主要研究了基于雙目紅外相機(jī)定位的自由式三維超聲圖像重建系統(tǒng),并完成了桌面級軟件平臺的搭建。使用雙目紅外相機(jī)與定位小球采集到的超聲圖像陣列位置信息完成體數(shù)據(jù)的填充。借助Qt、VTK、OpenCV 等開發(fā)框架對醫(yī)學(xué)影像的支持完成開發(fā)工作。Qt 主要的角色是GUI設(shè)計(jì)、事件調(diào)度以及消息管理,以提供更好的交互性能,使得系統(tǒng)人機(jī)友好,便于使用;VTK 則實(shí)現(xiàn)了三維重建與可視化功能;OpenCV 框架是圖像處理算法的開源框架,對算法進(jìn)行封裝可以實(shí)現(xiàn)功能擴(kuò)展,使軟件支持底層算法的定制化開發(fā)。整個軟件系統(tǒng)可以實(shí)現(xiàn)超聲圖像的標(biāo)定、采集與重建,比較準(zhǔn)確地還原物體的三維結(jié)構(gòu),對于未來科學(xué)研究,甚至是進(jìn)一步走向臨床,開展創(chuàng)新創(chuàng)業(yè)活動,奠定了良好的基礎(chǔ)。