醫(yī)療影像的算法研究
醫(yī)療影像技術(shù)在醫(yī)療保健行業(yè)扮演了越來越重要的角色。這一行業(yè)的發(fā)展趨勢是通過非置入手段來實(shí)現(xiàn)早期疾病預(yù)測和治療,降低病人開支。多種診斷影像方法的融合以及算法開發(fā)的進(jìn)步是設(shè)計(jì)新設(shè)備來滿足病人需求的主要推動(dòng)力量。
本文引用地址:http://m.butianyuan.cn/article/201706/350379.htm為實(shí)現(xiàn)這些行業(yè)目標(biāo)所需要的功能,設(shè)備開發(fā)人員開始采用提供FPGA支持、可更新的現(xiàn)成商用(COTS) CPU平臺進(jìn)行數(shù)據(jù)采集和協(xié)處理。在靈活高效地開發(fā)可更新醫(yī)療影像設(shè)備時(shí),需要考慮幾個(gè)因素,包括影像算法的開發(fā),多種診斷方法的融合以及可更新的平臺等。
開發(fā)影像算法要求使用直觀的高級建模工具,以不斷改進(jìn)數(shù)字信號處理(DSP)功能。高級算法需要可更新的系統(tǒng)平臺,該平臺大大提高了圖像處理性能,而且實(shí)現(xiàn)的設(shè)備體積更小,使用更方便,更容易攜帶。
實(shí)時(shí)分析的性能需求要求系統(tǒng)平臺能夠隨軟件(CPU)和硬件(可配置邏輯)而進(jìn)行調(diào)整。這些處理平臺必須能夠滿足各種性能價(jià)格要求,支持多種影像診療手段的融合。FPGA很容易集成到多核CPU平臺中,為最靈活的高性能系統(tǒng)提供DSP功能。
系統(tǒng)規(guī)劃人員和設(shè)計(jì)工程師使用高級開發(fā)工具和知識產(chǎn)權(quán)(IP)庫,在這些平臺上迅速對算法進(jìn)行劃分和調(diào)試,加速設(shè)計(jì)實(shí)現(xiàn),提高利潤。
本文介紹醫(yī)療影像算法的某些發(fā)展趨勢,多種診療手段的融合以及可更新平臺來實(shí)現(xiàn)這些算法。
醫(yī)療影像的算法開發(fā)
首先,讓我們了解一下每種診療手段影像算法的發(fā)展趨勢,以及怎樣使用FPGA和知識產(chǎn)權(quán)。
MRI
磁共振影像(MRI)重構(gòu)技術(shù)建立人體的截面圖像。借助FPGA,采用了三種功能來重建3D人體圖像。從頻域數(shù)據(jù)中,2D重構(gòu)切片通過快速傅立葉變換(FFT)產(chǎn)生灰度級切片,一般是矩陣的形式。3D人體圖像重構(gòu)通過切片插值使得切片間距接近象素間距,這樣,可以從任意2D平面來查看圖像。迭代分辨率銳化使用基于迭代反向?yàn)V波過程的空間去模糊技術(shù),在降低噪聲的同時(shí)對圖像重構(gòu)。這樣,大大提高了橫截面的視覺診斷分辨率。
超聲
超聲圖像中顯現(xiàn)的小顆粒被稱為斑點(diǎn)。各種無關(guān)的散射體相互作用產(chǎn)生了超聲斑點(diǎn)(和無線領(lǐng)域的多徑RF反射相似),它本質(zhì)上是一種乘性噪聲。使用有損壓縮技術(shù)可以實(shí)現(xiàn)無斑超聲影像。先對圖像進(jìn)行對數(shù)處理,斑點(diǎn)噪聲相對于有用信號成為加性噪聲。使用JPEG2000編碼器進(jìn)行有損小波壓縮可以減小斑點(diǎn)噪聲。
X射線影像
冠狀X射線圖像移動(dòng)校正技術(shù)用于減小成像期間呼吸和心臟跳動(dòng)的影響(心跳呼吸周期)。“3D加時(shí)間”冠狀模型的移動(dòng)被投射到2D圖像上,用于計(jì)算糾偏函數(shù)(轉(zhuǎn)換和放大),對移動(dòng)進(jìn)行校正,得到清晰的圖像。
分子影像
分子影像是在細(xì)胞和分子級對生物醫(yī)學(xué)過程進(jìn)行特征描述和測量。其目的是探測、采集并監(jiān)視導(dǎo)致疾病的異常狀態(tài)。例如,X射線、正電子放射斷層掃描(PET)和SPECT技術(shù)相結(jié)合,將低分辨率的功能/細(xì)胞/分子圖像映射到相應(yīng)的高分辨率解剖圖像,最小可以達(dá)到0.5 mm。小型化和算法開發(fā)推動(dòng)了在這些緊湊系統(tǒng)平臺上使用FPGA,在多核CPU基礎(chǔ)上進(jìn)一步提高了性能。
診斷方法的融合
早期預(yù)測和非置入式治療推動(dòng)了PET/計(jì)算機(jī)輔助斷層掃描(CT)和X射線診斷/CT設(shè)備等診療手段的融合。要實(shí)現(xiàn)更高的圖像分辨率,要求采用精細(xì)的幾何微陣列探測器,并結(jié)合FPGA,對光電信號進(jìn)行預(yù)處理。預(yù)處理完成后,CPU和FPGA協(xié)處理器一起對匯集后的信號進(jìn)行處理,重建人體圖像。
非實(shí)時(shí)(NRT)圖像融合(重合)技術(shù)一般用于對不同時(shí)間獲得的功能和解剖圖像進(jìn)行分析。然而,由于病人體位、掃描床外形以及內(nèi)臟器官的自然移動(dòng)等因素導(dǎo)致很難進(jìn)行NRT圖像重合處理。使用FPGA處理技術(shù)來實(shí)時(shí)融合PET和CT可以在一次成像過程中同時(shí)獲得功能和解剖圖像,而不是事后再合成圖像。在手術(shù)治療中,融合后的圖像清晰度更高,位置更精確。
外科引導(dǎo)手術(shù)圖像處理使用手術(shù)前(CT或者M(jìn)R)圖像和實(shí)時(shí)3D (超聲和X射線)圖像重合(相關(guān))技術(shù),通過非置入手段(超聲、MR介入和X射線治療)對疾病進(jìn)行外科治療。開發(fā)了各種算法以實(shí)現(xiàn)診療手段和治療類型融合的最佳圖像重合結(jié)果。
在這類融合系統(tǒng)中,支持高速串行互聯(lián)的FPGA能夠減少系統(tǒng)后處理部分?jǐn)?shù)據(jù)采集功能的相互鏈接,大大降低了電路板和電纜相關(guān)的系統(tǒng)總成本。
影像算法
各種影像算法通常在FPGA中實(shí)現(xiàn),包括圖像增強(qiáng)、穩(wěn)定、小波分析和分布式矢量處理等。
一般采用卷積(線性)濾波來實(shí)現(xiàn)圖像增強(qiáng)。高通和低通濾波后的圖像經(jīng)過線性組合,由矩陣乘法模板進(jìn)行加權(quán),產(chǎn)生的圖像增強(qiáng)了細(xì)節(jié),同時(shí)降低了噪聲。
視頻圖像穩(wěn)定技術(shù)對視頻數(shù)據(jù)序列中的旋轉(zhuǎn)和縮放效果進(jìn)行歸一化處理,以平均連續(xù)幀中的噪聲。這還平滑了從視頻中提取的靜止圖像的鋸齒邊沿,能夠糾正大約1/10象素的圖像抖動(dòng)。
為獲取信號中的事件信息,小波分析使用可變窗口技術(shù)每次分析一小部分信號。小波分析對精確的低頻信息使用較長的時(shí)間間隔,對高頻信息使用較短的間隔。小波應(yīng)用包括探測不連續(xù)點(diǎn)以及斷點(diǎn)、探測自相似、抑制信號、去除信號噪聲、去除圖像噪聲、壓縮圖像以及大型矩陣快速乘法運(yùn)算等。
最近開發(fā)的S變換(ST)結(jié)合了FFT和小波變換。它揭示出頻率隨空間和時(shí)間的變化。其應(yīng)用包括紋理分析和噪聲濾除等。但是,ST的計(jì)算量較大,采用傳統(tǒng)的CPU實(shí)現(xiàn)起來速度太慢。分布式矢量處理技術(shù)解決了這一問題,它在FPGA中同時(shí)采用矢量和并行計(jì)算,處理時(shí)間縮短了25倍。
一種癌癥早期探測的方法利用了病人的重新造血能力。數(shù)字傳感器探測人體輻射出的紅外能量,從而“看到”由于癌癥導(dǎo)致血流增加而出現(xiàn)的微小差異。其典型實(shí)現(xiàn)基于可編程心縮矩陣,采用了通用工作站以及FPGA專用硬件引擎來實(shí)現(xiàn)。和目前的高端工作站相比,該引擎將核心算法速度提高了近1,000倍。
這些復(fù)雜影像算法需要哪些關(guān)鍵FPGA構(gòu)建模塊函數(shù)呢? 在CT重建中,需要插值、FFT和卷積函數(shù)。在超聲中,處理方法包括顏色流處理、卷積、聚束、混合和彈性估算等。普通影像算法包括顏色空間轉(zhuǎn)換、圖形覆蓋、2D/中值/時(shí)間濾波、縮放、幀/域轉(zhuǎn)換、對比度增強(qiáng)、銳化、邊沿探測、限幅、平移、極坐標(biāo)/笛卡兒坐標(biāo)轉(zhuǎn)換、不均勻校正以及象素替換等函數(shù)。
可更新的平臺
很多影像系統(tǒng)以前都采用專用計(jì)算系統(tǒng)進(jìn)行構(gòu)建?,F(xiàn)在,隨著高性能COTS CPU板的推出,系統(tǒng)工程師可以采用更現(xiàn)成的方法。雖然軟件自己可以完成很多算法的非實(shí)時(shí)處理,但實(shí)時(shí)影像處理還是需要輔助硬件。目前的FPGA內(nèi)置了DSP模塊、寬帶存儲(chǔ)器模塊和大量的可編程單元,是實(shí)現(xiàn)這些輔助硬件的理想器件。
Altera與其合作伙伴密切協(xié)作,實(shí)現(xiàn)了FPGA協(xié)處理資源和COTS CPU解決方案的可靠集成。對于Intel和AMD單板計(jì)算機(jī)(SBC),內(nèi)置了串化器/解串器的Stratix II GX FPGA能夠直接實(shí)現(xiàn)PCI Express兼容協(xié)處理器板,承擔(dān)算法功能。對于雙插槽的AMD SBC,Altera合作伙伴XtremeData提供協(xié)處理器子卡,直接插入到一個(gè)Opteron插槽中,提供非常好的CPU+FPGA處理方案(參見圖1)。對于性能要求更高的大計(jì)算量應(yīng)用,四插槽AMD SBC可以提供多種CPU+FPGA協(xié)處理器組合方案(1+3,2+2或者3+1)??梢圆捎枚鄠€(gè)1-U刀片服務(wù)器來實(shí)現(xiàn)非常靈活的平臺,每個(gè)刀片完成CPU+FPGA協(xié)處理器方案。
圖1 XtremeData XD1000系統(tǒng)圖
注:XD1000™直接插入到多Opteron母板的Opteron™插槽940中,使用母板的現(xiàn)有CPU基本結(jié)構(gòu)。
這些平臺的應(yīng)用加速取決于算法——FPGA承擔(dān)的算法中并行計(jì)算越多,運(yùn)行速度就越快。例如,由基于FPGA的硬件來加速實(shí)現(xiàn)CT影像算法時(shí),每個(gè)3-GHz CPU結(jié)合一個(gè)FPGA協(xié)處理器,運(yùn)行速度提高10倍,大大降低了系統(tǒng)級功耗,節(jié)省了空間和成本。
開發(fā)方法
現(xiàn)在,讓我們考慮算法開發(fā)方法以及相應(yīng)的實(shí)現(xiàn)工具。
算法工具
影像設(shè)計(jì)人員使用高級軟件工具對各種算法建模,并對結(jié)果進(jìn)行評估。數(shù)字信號處理最好的通用工具是MathWorks的MATLAB處理引擎和Simulink仿真器GUI。大部分OEM和醫(yī)療設(shè)計(jì)機(jī)構(gòu)使用MATLAB來開發(fā)快速精確的算法,包括數(shù)字圖像處理、圖像定量分析、模式識別、數(shù)字圖像編碼/壓縮、自動(dòng)顯微影像、法醫(yī)圖像處理以及二維小波變換等。除了算法開發(fā)外,MATLAB還可以仿真FPGA中常用的定點(diǎn)算法,提供可選的工具,生成能夠運(yùn)行在通用CPU上的C代碼。
劃分和調(diào)試
算法開發(fā)完成后,系統(tǒng)設(shè)計(jì)人員必須確定怎樣在CPU和FPGA之間劃分功能,提供最好的總體解決方案,在性能、成本、可靠性和使用壽命上達(dá)到最佳平衡。設(shè)備設(shè)計(jì)人員認(rèn)為在高性能硬件系統(tǒng)上對算法進(jìn)行劃分和調(diào)試非常困難。以前的很多設(shè)計(jì)在FPGA中使用裝配線方法,把算法分成多個(gè)函數(shù),順序執(zhí)行。90%的調(diào)試功能都花在集成上。由于每個(gè)函數(shù)執(zhí)行時(shí)間必須相互平衡,以實(shí)現(xiàn)最大吞吐量,因此出現(xiàn)了很多困難,無法觀察本地存儲(chǔ)器和延時(shí)。
解決方案是基于分布式協(xié)處理器計(jì)算模型,“以軟件為中心的方法”(參見圖2),其中:
協(xié)處理器中的每個(gè)函數(shù)是一個(gè)執(zhí)行機(jī)(函數(shù)子處理器),子處理器之間具備基于消息的控制通過功能。
所有存儲(chǔ)器、CPU和子處理器之間可完全切換,能夠全面觀察,容易進(jìn)行調(diào)試。
內(nèi)部FPGA子處理器之間以及系統(tǒng)內(nèi)其他CPU和協(xié)處理器之間可以調(diào)整消息通過功能。
圖2 以軟件為中心的設(shè)計(jì)
例如,在Altera/XtremeData協(xié)處理器解決方案中,利用了這些概念來實(shí)現(xiàn)優(yōu)異的設(shè)計(jì)方法。AlteraFPGA的Avalon交換架構(gòu)以及芯片可編程系統(tǒng)(SOPC)集成工具在所有功能單元之間自動(dòng)構(gòu)建靈活的交叉交換架構(gòu)。接口IP提供FPGA至主機(jī)CPU以及FPGA至DIMM存儲(chǔ)器經(jīng)過預(yù)測試的接口?;陬A(yù)測試消息的基本結(jié)構(gòu)(由Nios CPU定義的軟件)控制主機(jī)CPU、FPGA子處理器和FPGA存儲(chǔ)器控制器之間的通信。消息傳遞和全交換功能簡化了開發(fā)期間的調(diào)試,大大提高了靈活性??梢栽趫?zhí)行期間軟定義(重新定義)數(shù)據(jù)通路,在系統(tǒng)集成和調(diào)試期間對數(shù)據(jù)進(jìn)行解釋,改變傳送方向,以提高其可觀察性。
設(shè)計(jì)工具和IP
雖然MATLAB等工具非常適合軟件算法開發(fā),但是還不足以在FPGA中實(shí)現(xiàn)。設(shè)計(jì)人員使用Altera以及第三方EDA工具和IP,可以加速其設(shè)計(jì)在FPGA中的實(shí)現(xiàn)。例如,Altera提供全套的工具:DSP Builder、SOPC Builder、Nios II CPU開發(fā)套件、Nios II C語言至硬件加速(C2H)編譯器和Quartus開發(fā)包等。
Altera的視頻和圖像處理包以及DSP庫提供關(guān)鍵IP構(gòu)建模塊,加速復(fù)雜影像算法的開發(fā)和實(shí)現(xiàn)。視頻和圖像處理模塊庫以及其他的Altera/合作伙伴IP模塊和參考設(shè)計(jì)(包括IQ調(diào)制解調(diào)器、JPEG2000壓縮、FFT/IFFT、邊沿探測等),為設(shè)計(jì)人員提供了大量的IP來加速大計(jì)算量任務(wù)的FPGA實(shí)現(xiàn)。
DSP Builder工具提供基于IP庫的設(shè)計(jì)流程,鏈接MATLAB開發(fā)的算法和Altera Quartus工具包實(shí)現(xiàn)的FPGA。
SOPC Builder是系統(tǒng)集成工具,自動(dòng)生成IP模塊、Altera MegaCores功能(包括Nios II CPU)、合作伙伴IP和用戶定義功能之間的互聯(lián)代碼(Verilog或者VHDL)。
Nios II開發(fā)套件使C程序能夠植入到FPGA的一個(gè)或者多個(gè)Nios II CPU中,并進(jìn)行調(diào)試。Nios II CPU是32位可配置RISC軟核處理器CPU。
Nios II C2H編譯器是新工具,它分析C代碼算法內(nèi)循環(huán),生成FPGA中的協(xié)處理器邏輯,大大提高了Nios II CPU所運(yùn)行軟件的性能。適度增加邏輯,運(yùn)行速度便能夠提高10到100倍。
Quartus開發(fā)包是在AlteraFPGA中實(shí)現(xiàn)可編程硬件和軟件功能的主要工具。它提供IP導(dǎo)入功能,以及仿真和布局布線等所有功能,在Altera開發(fā)板或者用戶目標(biāo)系統(tǒng)上進(jìn)行FPGA編程。
Celoxica等其他EDA供應(yīng)商還提供C語言至HDL轉(zhuǎn)換工具,以加速FPGA的實(shí)現(xiàn)。
結(jié)論
嬰兒潮時(shí)期出生的人們尋求更可行的新治療手段來治療常見疾病(特別是與心臟病和癌癥),包括早期探測和非置入手術(shù)治療等。影像診斷方法融合及其相關(guān)算法開發(fā)上的進(jìn)步大大推動(dòng)了新設(shè)備的發(fā)展,滿足了病人的需求。高級算法需要可更新的系統(tǒng)平臺,該平臺能夠顯著提高圖像處理性能。
集成到COTS多核CPU平臺中,F(xiàn)PGA為最靈活的高性能系統(tǒng)提供了DSP功能。為幫助在這些平臺上加速實(shí)現(xiàn)復(fù)雜影像算法,需要采用高級開發(fā)工具和IP實(shí)現(xiàn)庫。Altera考慮到這些需求而開發(fā)了工具和IP庫。這些庫包括成像所需的關(guān)鍵構(gòu)建模塊功能,并集成到Altera完整的工具包中,結(jié)合MathWorks的算法開發(fā)工具,能夠快速進(jìn)行開發(fā)。
評論