基于Nios II的MRI脊柱圖像分割系統(tǒng)
一. 設(shè)計(jì)概述
1. 設(shè)計(jì)意圖
迅速發(fā)展的醫(yī)學(xué)影像技術(shù)不斷的推動(dòng)現(xiàn)代醫(yī)學(xué)進(jìn)步,CT、MRI、PET廣泛地應(yīng)用與臨床診斷分析。
其作用已經(jīng)從人體組織器官解剖結(jié)構(gòu)的非侵入檢查和可視化,發(fā)展成一種用于手術(shù)計(jì)劃和仿真、手術(shù)導(dǎo)航、放療計(jì)劃和跟蹤病灶變化的基本工具,從醫(yī)學(xué)圖象中分割出解剖結(jié)構(gòu)并構(gòu)造出形狀地集合表達(dá)。
MR脊柱圖像分割的研究對(duì)于醫(yī)學(xué)圖象的計(jì)算機(jī)輔助識(shí)別及神經(jīng)病理學(xué)的臨床研究有著至關(guān)重要的作用。如果不能將脊椎準(zhǔn)確而清晰從圖像中分割和識(shí)別出來(lái)的話,那么計(jì)算機(jī)技術(shù)對(duì)于醫(yī)學(xué)臨床研究的價(jià)值是非常有限的,然而,僅僅依靠人工的方法完成這項(xiàng)工作也是遠(yuǎn)遠(yuǎn)不夠的。傳統(tǒng)的對(duì)椎骨骨折的評(píng)估是手動(dòng)的對(duì)每塊椎骨標(biāo)注6個(gè)點(diǎn)(四個(gè)角和上下邊沿的中點(diǎn)),然后測(cè)量前面、中間、后面的椎骨的高度。但是這個(gè)過(guò)程是相當(dāng)?shù)暮臅r(shí)。文獻(xiàn)記載,對(duì)于用鼠標(biāo)定位一位病人1塊椎骨要花費(fèi)大于15分鐘,對(duì)于整個(gè)脊椎的定位的耗時(shí)將讓人很難接受。因此醫(yī)學(xué)臨床上迫切的需要一種方法能夠自動(dòng)完成MR脊柱圖像的分割,計(jì)算機(jī)自動(dòng)定位椎骨和椎間盤對(duì)于輔助診斷具有重要的臨床應(yīng)用價(jià)值。
本作品的設(shè)計(jì)意圖即在Nios. II處理器的平臺(tái)上實(shí)現(xiàn)我們研究提出的一種可行的,魯棒性高的算法,即利用我們實(shí)驗(yàn)室研究的關(guān)于MRI Spine圖像分割算法實(shí)現(xiàn)了脊椎核磁共振矢狀圖(Sagittal Views)自動(dòng)的椎間盤定位以及量化的標(biāo)注,充分利用Altera FPGA/Nios II資源,使系統(tǒng)小型化、便攜化。該算法的應(yīng)用,可以改善對(duì)骨質(zhì)疏松引起的椎骨骨折進(jìn)行自動(dòng)的評(píng)估,對(duì)椎間盤進(jìn)行量化分析,有助于與其他成像圖像(如CT)進(jìn)行圖像的配準(zhǔn),以及圖像引導(dǎo)的椎骨外科手術(shù)。
2. 適用范圍及針對(duì)用戶群
本作品主要適用于各擁有核磁共振儀器的醫(yī)療機(jī)構(gòu)。由于本作品是基于Nios II處理器,具有使用方便的特點(diǎn),因此也適合普通的老百姓,他們可以以此來(lái)了解病人的病情,提醒病人在生活上注意預(yù)防各種脊椎病情。并且本作品有網(wǎng)絡(luò)傳輸功能,方便醫(yī)生進(jìn)行遠(yuǎn)程會(huì)診。
3. 本設(shè)計(jì)采用Nios II 處理器的優(yōu)勢(shì)
(1)Nios II處理器提供的創(chuàng)新的SOPC設(shè)計(jì)理念。
Nios II軟核系統(tǒng)的性能是可以根據(jù)應(yīng)用來(lái)進(jìn)行裁減的,定制用戶自己的系統(tǒng),與固定的處理器相比,在較低的時(shí)鐘速率下具備更高的性能。具有豐富的IP核庫(kù),方便用戶設(shè)計(jì),有效的提高系統(tǒng)的運(yùn)算能力。Nios II的用戶邏輯功能和用戶指令突現(xiàn)NiosII 處理器的技術(shù)亮點(diǎn),提供了運(yùn)算優(yōu)化、加速的一個(gè)有效途徑,將處理速度提高到一個(gè)相當(dāng)?shù)膶哟?,易于?shí)現(xiàn)算法的商用化。
(2)Nios II IDE開(kāi)發(fā)環(huán)境集成了已經(jīng)移植到Nios II 處理器的RTOS ucosII操作系統(tǒng),方便我們直接利用該操作系統(tǒng)完成系統(tǒng)的功能設(shè)計(jì)及功能行擴(kuò)展。
(3)Dsp Builder豐富的功能模塊和IP核。
有了在DSP Builder,使得我們能在Simulink下進(jìn)行算法級(jí)的系統(tǒng)開(kāi)發(fā)。并且可以將算法設(shè)計(jì)成自定義用戶指令,利用SoPC Builder和Quartus. II軟件集成至Nios II嵌入式系統(tǒng)處理器中,通過(guò)軟件調(diào)用該自定義指令完成DSP算法。
(4)C2H對(duì)設(shè)計(jì)的有力支持。
Nios II提供的C2H編譯器能夠?qū)?duì)性能要求較高的C語(yǔ)言程序自動(dòng)轉(zhuǎn)換為硬件加速器,集成到基于FPGA的Nios II子系統(tǒng)中。這樣,分擔(dān)了Nios II處理器的數(shù)據(jù)計(jì)算和存儲(chǔ)器訪問(wèn)功能,使處理器能夠更好的處理其他任務(wù)。由于Avalon互聯(lián)架構(gòu)并沒(méi)有限制主機(jī)和從機(jī)的數(shù)量,因此,Nios II C2H編譯器可以根據(jù)轉(zhuǎn)換目標(biāo)代碼的要求,產(chǎn)生多個(gè)存儲(chǔ)器自治硬件加速器。幫助嵌入式系統(tǒng)開(kāi)發(fā)人員提高效率,實(shí)現(xiàn)成功的設(shè)計(jì)。
二. 功能描述
MRI脊柱圖像分割的研究是利用磁共振成像設(shè)備對(duì)人體組織進(jìn)行定性或定量分析所必不可少的關(guān)鍵步驟。引入計(jì)算機(jī)輔助MRI脊柱圖像分割技術(shù)將使得醫(yī)生的臨床診斷更加準(zhǔn)確及時(shí),降低醫(yī)療費(fèi)用,減輕醫(yī)生的工作壓力,具有良好的應(yīng)用前景。
本設(shè)計(jì)硬件板塊主要包括DE1開(kāi)發(fā)平臺(tái)、MRI圖像LCD顯示板、與MR設(shè)備及PC機(jī)網(wǎng)絡(luò)接口板構(gòu)成。系統(tǒng)的功能模塊主要分成以下六個(gè):MRI圖像預(yù)處理模塊、脊髓提取模塊、脊椎檢測(cè)分割模塊,LCD圖像顯示及人機(jī)交互模塊,MRI圖像數(shù)據(jù)存取模塊,網(wǎng)絡(luò)傳輸模塊。
1. MRI圖像預(yù)處理模塊、脊髓提取模塊、脊椎檢測(cè)分割模塊是本設(shè)計(jì)的算法部分,也是本作品的功能核心所在。我們利用 Nios II處理器強(qiáng)大的運(yùn)算能力,將大部分的算法使用C程序?qū)崿F(xiàn),得益于C2H工具的加速功能,我們將算法中最耗時(shí)間的部分使用該工具進(jìn)行加速,縮短了開(kāi)發(fā)周期。
2. LCD圖像顯示及人機(jī)交互模塊:我們采用LCD屏及鼠標(biāo)來(lái)實(shí)現(xiàn)圖像的顯示和人機(jī)交互的功能。鼠標(biāo)和lcd通過(guò)自己編寫的IP核,以Avalon從設(shè)備的方式連接到 Nios II處理器。
設(shè)計(jì)時(shí)我們使用了IED開(kāi)發(fā)環(huán)境下的UCOSII實(shí)時(shí)操作系統(tǒng)來(lái)完成系統(tǒng)的任務(wù)管理及算法調(diào)度,移植對(duì)應(yīng)于我們采用的LCD控制器芯片TCB8000C的UCGUI圖形操作界面,使系統(tǒng)具有良好的人機(jī)交互性。
3. MRI圖像數(shù)據(jù)存取模塊:直接從成像設(shè)備中獲取的圖像一般符合標(biāo)準(zhǔn)的醫(yī)學(xué)圖像格式,即dicom格式,這種格式的圖像對(duì)于普通的用戶是不常見(jiàn)的,要用專門的軟件或醫(yī)學(xué)設(shè)備讀取,所以為了使得圖像在任何情況下,在大多數(shù)環(huán)境下可以方便的讀取,我們?cè)谔幚砬敖?jīng)過(guò)由dicom格式向bmp格式的轉(zhuǎn)換,通過(guò)網(wǎng)絡(luò)下載到硬件平臺(tái)的存儲(chǔ)設(shè)備上的圖像是已經(jīng)進(jìn)行過(guò)格式轉(zhuǎn)換的bmp格式圖像,處理后仍然以bmp格式的圖像上傳到PC機(jī)。在這種情況下,就需要比較大的存儲(chǔ)空間,因此采用sd卡作為數(shù)據(jù)存儲(chǔ)區(qū),并且移植對(duì)應(yīng)于sd卡的UCFS文件系統(tǒng),增強(qiáng)了系統(tǒng)的擴(kuò)展性和系統(tǒng)的數(shù)據(jù)管理能力。
4. 網(wǎng)絡(luò)傳輸模塊:采用以太網(wǎng)方式,實(shí)現(xiàn)數(shù)據(jù)的交互。以太網(wǎng)口方便系統(tǒng)從MR設(shè)備上獲取圖像。利用DE1的擴(kuò)展接口,以DM9000A芯片為核心,自行開(kāi)發(fā)了網(wǎng)絡(luò)接口板,由于以太網(wǎng)的引入使得系統(tǒng)具有更好的擴(kuò)展性。
Nios II處理器的特點(diǎn)和sopc的設(shè)計(jì)理念使我們的設(shè)計(jì)過(guò)程變得不那么枯燥,這是一個(gè)不斷優(yōu)化算法,完善設(shè)計(jì),使系統(tǒng)速度運(yùn)行速度更快的一個(gè)過(guò)程。我們將設(shè)計(jì)分成一下兩個(gè)步驟進(jìn)行:1)搭建Nios II系統(tǒng),將算法用純軟件的方式在Nios II上運(yùn)行起來(lái),并初步實(shí)現(xiàn)系統(tǒng)的功能。2)利用自定義指令和自定義外設(shè),加速算法的運(yùn)行。[!--empirenews.page--]
三. 性能參數(shù)
系統(tǒng)性能參數(shù):
脊柱核磁共振圖像對(duì)于診斷脊骨的疾病方面扮演著非常重要的角色,例如對(duì)于退化椎間盤的描述比其他形式的圖像有更好的效果,并且能夠?qū)棺低饪剖中g(shù)的治療進(jìn)行評(píng)估。對(duì)脊椎核磁共振圖像進(jìn)行分析處理可以輔助診斷更加精確,節(jié)省時(shí)間和花費(fèi)。因此對(duì)于本系統(tǒng)來(lái)說(shuō),最重要的就是要將脊椎準(zhǔn)確而清晰從圖像中分割和識(shí)別出來(lái),在保證圖像分割的準(zhǔn)確性的同時(shí),通過(guò)優(yōu)化代碼、使用C2H工具及自定義用戶外設(shè)等方法加塊運(yùn)算速度。
下圖是系統(tǒng)工程編譯之后各種資源的占用情況:
算法各個(gè)步驟運(yùn)行時(shí)間如下:(以下是經(jīng)過(guò)代碼優(yōu)化后的運(yùn)行時(shí)間)
圖像預(yù)處理:4128.77ms ms
脊髓的提取(Spinal Cord extraction): 24208.14ms
椎間盤的探測(cè)(Disks Detection): 6.03ms
圖像存入sd卡時(shí)間:15881.59 ms
圖像從sd卡讀入時(shí)間:5730.02ms
算法分割的準(zhǔn)確性從系統(tǒng)運(yùn)行后生成的最終處理圖像可以看出,系統(tǒng)能夠比較準(zhǔn)確的將脊椎標(biāo)注出來(lái),并且在平臺(tái)上將各個(gè)脊椎按照編號(hào)標(biāo)注出來(lái)。醫(yī)療儀器的具體性能還需要長(zhǎng)期的臨床實(shí)驗(yàn)來(lái)得到驗(yàn)證,并通過(guò)這些數(shù)據(jù)改善我們的算法。
下圖是直接拍攝作品顯示的處理效果,在后面章節(jié)顯示的圖片是系統(tǒng)通過(guò)網(wǎng)絡(luò)將圖片傳輸?shù)接?jì)算機(jī)上得到的。
四. 設(shè)計(jì)結(jié)構(gòu)
基于Nios II的MRI脊柱圖像分割系統(tǒng)硬件結(jié)構(gòu)圖
軟件流程如下:
五. 設(shè)計(jì)方法
1. 系統(tǒng)硬件設(shè)計(jì)
SOPC Builder設(shè)置如下圖
Quartus II 軟件下模塊示意圖如下
系統(tǒng)實(shí)物圖片:
2. 實(shí)現(xiàn)步驟及實(shí)現(xiàn)方法
1. LCD圖像顯示及人機(jī)交互模塊
(1) LCD及鼠標(biāo)硬件部分
LCD控制器芯片采用TCB8000C,控制5.7寸TFT65000色LCD顯示屏??刂破鹘涌谂cMCU接口圖如下,通過(guò)編寫了硬件程序以Avalon總線從設(shè)備的方式連接到Avalon總線上,實(shí)現(xiàn) Nios直接訪問(wèn)LCD控制器的功能,利于驅(qū)動(dòng)程序編寫,簡(jiǎn)化后續(xù)的GUI移植中有關(guān)LCD驅(qū)動(dòng)部分。
系統(tǒng)采用PS/2接口鼠標(biāo),PS/2鼠標(biāo)接口采用一種雙向同步串行協(xié)議。即每在時(shí)鐘線上發(fā)一個(gè)脈沖,就在數(shù)據(jù)線上發(fā)送一位數(shù)據(jù)。與nios的連接仍然采用verilog語(yǔ)言編寫Avolon從設(shè)備,實(shí)現(xiàn)PS/2鼠標(biāo)的傳輸協(xié)議。程序包括mouse_avalon_interFace.v,mouse_register_file.v , ps2_mouse_interface.v 。其中mouse_avalon_interface.v 是avalon總線從設(shè)備接口,mouse_register_file.v,ps2_mouse_interface.v完成PS/2鼠標(biāo)協(xié)議的數(shù)據(jù)轉(zhuǎn)換和傳輸。編寫對(duì)應(yīng)的GUI下的驅(qū)動(dòng)程序,實(shí)現(xiàn)GUI的鼠標(biāo)操作功能。
(2) μc/gui移植
μC/GUI是一款針對(duì)嵌入式系統(tǒng)的優(yōu)秀圖形軟件,它具有源碼公開(kāi)、可移植、可裁減、穩(wěn)定性和可靠性高的特點(diǎn)。μC/GUI提供了豐富的界面元素,例如按鈕、編輯框、滑動(dòng)條等控件,同時(shí)支持高效的窗口會(huì)調(diào)機(jī)制,為界面與應(yīng)用函數(shù)之間提供了良好的接口機(jī)制。多功能數(shù)字小相框系統(tǒng)的人機(jī)交互界面正是利用這個(gè)工具進(jìn)行開(kāi)發(fā)的。
μC/GUI軟件體系結(jié)構(gòu)如下:
μC/GUI函數(shù)庫(kù)為用戶程序提供GUI接口,包含的函數(shù)有文本、數(shù)值、二維圖形、輸入設(shè)備以及各種窗口對(duì)象。其中,輸入設(shè)備可以是鍵盤、鼠標(biāo)或觸摸屏;二維圖形包括圖片、直線、多邊形、園、橢圓、圓弧等;窗口對(duì)象包括按鈕、編輯框、進(jìn)度條、復(fù)選框等。
μC/GUI函數(shù)庫(kù)可以通過(guò)GUIConf.h文件進(jìn)行配置,配置的內(nèi)容包括是否采用內(nèi)存設(shè)備,是否采用窗口管理器,是否支持操作系統(tǒng)、觸摸屏,以及配置動(dòng)態(tài)內(nèi)存的大小等。
在LCDConf.h文件中定義了與硬件有關(guān)的各種屬性,如液晶的大小、顏色以及與液晶的接口函數(shù)。而LCD驅(qū)動(dòng)文件則負(fù)責(zé)把μC/GUI的各種函數(shù)解釋成LCDConf.h文件中定義的液晶接口函數(shù),這個(gè)文件與具體的硬件連接無(wú)關(guān)。[!--empirenews.page--]
μC/GUI與LCD的硬件接口通過(guò)驅(qū)動(dòng)文件把硬件接口函數(shù)轉(zhuǎn)化為L(zhǎng)CDConf.h中定義的LCD讀寫函數(shù)。
μC/GUI移植過(guò)程:
1. 配置文件的移植
移植工作首先需要完成的是對(duì)配置文件的GUIConf.h, LCDConf.h移植,根據(jù)數(shù)字相冊(cè)系統(tǒng)的顯示模塊的要求,對(duì)配置文件的相關(guān)的參數(shù)進(jìn)行配置。
2. LCD驅(qū)動(dòng)的移植
μC/GUI針對(duì)不同的液晶控制器提供了多種驅(qū)動(dòng)程序,如KS0713、SEDl335、T6963等控制器都有對(duì)應(yīng)的液晶驅(qū)動(dòng)程序。但是由于在本系統(tǒng)中,采用的顯示模塊為TOPWAY TCB8000A LCD控制器和TFT、 65000色、LCD屏。而μC/GUI沒(méi)有提供相關(guān)控制器的驅(qū)動(dòng),并且與μC/GUI提供驅(qū)動(dòng)支持的LCD控制器相比較,TCB8000A控制器擁有自己獨(dú)立的屏幕控制指令體系,這給μC/GUI在TCB8000A控制器的移植工作帶來(lái)了很大的難度。
在移植的過(guò)程中,我們首先運(yùn)用TCB8000A的指令體系,實(shí)現(xiàn)了μC/GUI為上層應(yīng)用函數(shù)提供的大部分API函數(shù),接著對(duì)于TCB8000A控制器不能在硬件支持的API函數(shù),我們采用軟件實(shí)現(xiàn)的方法對(duì)驅(qū)動(dòng)進(jìn)行了修補(bǔ),最后通過(guò)對(duì)大量控件顯示測(cè)試實(shí)驗(yàn),調(diào)整了在LCD驅(qū)動(dòng)中運(yùn)用的TCB8000A顯示指令中的參數(shù),使得LCD驅(qū)動(dòng)的性能達(dá)到最優(yōu)。最終實(shí)現(xiàn)了μC/GUI在TCB8000A控制器上的無(wú)縫移植。
3. MRI圖像數(shù)據(jù)存取模塊
SD卡是Secure Digital Card卡的簡(jiǎn)稱,直譯成漢語(yǔ)就是“安全數(shù)字卡”,是由日本松下公司、東芝公司和美國(guó)SANDISK公司共同開(kāi)發(fā)研制的全新的存儲(chǔ)卡產(chǎn)品。SD存儲(chǔ)卡是一個(gè)完全開(kāi)放的標(biāo)準(zhǔn)(系統(tǒng)),多用于MP3、數(shù)碼攝像機(jī)、數(shù)碼相機(jī)、電子圖書、AV器材等等,尤其是被廣泛應(yīng)用在超薄數(shù)碼相機(jī)上。SD卡在外形上同MultiMedia Card卡保持一致,大小尺寸比MMC卡略厚,容量也大很多。并且兼容MMC卡接口規(guī)范。另外,SD卡為9引腳,目的是通過(guò)把傳輸方式由串行變成并行,以提高傳輸速度。它的讀寫速度比MMC卡要快一些,同時(shí),安全性也更高。
我們?yōu)榱耸瓜到y(tǒng)更具有廣泛的應(yīng)用性、兼容性,我們決定使用SD卡作為設(shè)備的主要存儲(chǔ)介質(zhì),用于存放我們的照片、音樂(lè)、素材等重要數(shù)據(jù)。DE2上的SD讀卡裝置為1線方式,其速度受到了很大限制。我們把裝置改動(dòng)為4線方式,使其更加符合我們系統(tǒng)的要求。
在Nios II軟件開(kāi)發(fā)集成環(huán)境下,包含了uc/os,可以使用戶方便的應(yīng)用到自己的軟件工程里,我們?yōu)榱烁侠硎垢魅蝿?wù)共同執(zhí)行、共享cpu,我們使用了uc/os操作系統(tǒng),并為其加掛文件系統(tǒng)。一開(kāi)始我們選用了zlg文件系統(tǒng),在成功移植后,我們測(cè)試了他的速度,速度不盡人意。在向sd卡讀寫1M數(shù)據(jù)分別需要用時(shí)37sec和57sec。我們分析了它的耗時(shí)所在,一方面sd卡讀寫模式限制,在標(biāo)準(zhǔn)的DE2開(kāi)發(fā)板上,sd卡使用的是1線讀寫模式,其數(shù)據(jù)線只有1根,速度受到了很大的限制,我們通過(guò)修改其模式,增加數(shù)據(jù)線的方式,使sd卡的讀寫模式改變?yōu)?線的sd模式,經(jīng)過(guò)測(cè)試,速度有了提高,分別為17sec和27sec,但是速度并不是我們假想的快到原來(lái)的四倍,這是因?yàn)榱硪环矫娴挠绊?mdash;文件系統(tǒng),經(jīng)過(guò)上網(wǎng)查詢,發(fā)現(xiàn)zlg/fs的性能不高,浪費(fèi)了很多時(shí)間,我們決定使用Micrium 公司的Uc/fs,他和uc/os有著很好的兼容性,在性能上也是得到了大眾的好評(píng)。經(jīng)過(guò)幾周的努力我們成功移植了uc/fs 1.34版本到de2平臺(tái)上,為四線模式的sd卡架起了文件系統(tǒng)。
經(jīng)過(guò)比較測(cè)試,讀寫速度有了很大提高,1M數(shù)據(jù)讀寫分別只用時(shí)3.6s和11s。這樣基本滿足了我們存取數(shù)據(jù)文件的速度要求。但是仍存在著寫較慢的問(wèn)題,原因在于在寫數(shù)據(jù)到sd卡的時(shí)候每一個(gè)block都需要計(jì)算16位的CRC校驗(yàn),占用了一部分發(fā)送的時(shí)間,我們選擇采用自定義用戶指令的方式加快CRC16運(yùn)算速度,往SD卡寫入一張MR圖像 (約1.5M)的時(shí)間從21.7S降低到15.8S。選用更高速的sd卡,還能有效的加塊寫卡的速度。
SD模式時(shí)序
CLK: Host to card clock signal
CMD: Bidirectional Command/Response signal
DAT0 - DAT3: 4 Bidirectional data signals.
VDD, VSS1, VSS2: Power and ground signals.
1線與4線區(qū)別
Single Block Read
Single Block Write
4. 網(wǎng)絡(luò)接口
DE1上沒(méi)有網(wǎng)絡(luò)接口的功能,為了增強(qiáng)系統(tǒng)的可擴(kuò)展性,我們自行設(shè)計(jì)了網(wǎng)絡(luò)接口板,通過(guò)DE1的擴(kuò)展口連接接起來(lái),這樣就使得開(kāi)發(fā)板就有網(wǎng)絡(luò)功能。考慮到擴(kuò)展口IO口有限,我們還需要使用IO連接LCD顯示屏,一次選用IO口數(shù)量相對(duì)較少的網(wǎng)絡(luò)芯片dm9000a。在發(fā)數(shù)據(jù)上,我們是開(kāi)發(fā)板以定時(shí)的方式發(fā)數(shù)據(jù),在PC機(jī)上以查詢方式收數(shù)據(jù)。網(wǎng)絡(luò)使用上,發(fā)數(shù)據(jù)是借助ucosII 的驅(qū)動(dòng)程序?qū)崿F(xiàn)的,收數(shù)據(jù)是在網(wǎng)絡(luò)第二層以中斷方式實(shí)現(xiàn)的。
5. 圖象處理算法實(shí)現(xiàn):
典型的人體脊椎有24塊骶骨前(pre-sacral)椎骨,將其結(jié)構(gòu)劃分,頸部的椎骨(Cervical)7塊, 胸部的椎骨(Thoracic)12塊,腰部的椎骨(Lumbar)5塊。所以在我們的脊椎矢狀圖中,相應(yīng)的典型的圖像中可見(jiàn)的椎間盤有23塊,分別是C2-3、C3-4、C4-5、C5-6、C6-7、C7-T1、T1-2、T2-3、T3-4、T4-5、T5-6、T6-7、T7-8、T8-9、T9-10、T10-11、T11-12、T12-L1、L1-2、L2-3、L3-4、L4-5、L5-S1。[!--empirenews.page--]
本算法的目標(biāo)是將可見(jiàn)的椎間盤進(jìn)行量化標(biāo)志,并且對(duì)不清晰的椎間盤進(jìn)行預(yù)測(cè)估計(jì),也將其標(biāo)出。算法采用基于uc/osII操作系統(tǒng)編寫的c程序?qū)崿F(xiàn),加上我們移植的ucgui和ucfs,實(shí)現(xiàn)了具有良好的人機(jī)交互性的MRI脊椎圖像分割系統(tǒng),易于系統(tǒng)的推廣應(yīng)用。
具體算法分為3步:
(a) 圖像的預(yù)處理(Preprocessing): 由于原始的核磁共振圖像對(duì)比度比較低,視覺(jué)效果非常不清晰,所以首先要進(jìn)行圖像質(zhì)量的改善,增強(qiáng)椎間盤的可見(jiàn)度。以下兩圖為預(yù)處理前后的對(duì)比。
該步驟中的圖像中值濾波部分比較耗費(fèi)時(shí)間,可喜的是該部分程序非常適合采用c2h工具進(jìn)行算法加速,加速前后的時(shí)間對(duì)比如下:
預(yù)處理前 預(yù)處理后
(b) 脊髓的提?。⊿pinal Cord extraction): 脊髓在脊柱核磁共振圖像中是一個(gè)明顯的典型的部分,可以為椎間盤的定位提供方向性的信息,應(yīng)用統(tǒng)計(jì)模式識(shí)別的模式匹配的方法,進(jìn)行脊髓的提取。這里我們僅進(jìn)行上半身的脊髓的提取,是因?yàn)樯习肷淼募顾枨€因人而異的變化比較復(fù)雜,而下半身的則可以根據(jù)上半身進(jìn)行預(yù)測(cè)。
左下圖中的紅線是提取出來(lái)的上半身的脊髓。這部分的算法相對(duì)于其他部分來(lái)說(shuō)比較耗時(shí),但是從目前的算法結(jié)構(gòu)上看并不適合使用C2H 進(jìn)行加速,考慮到我們的算法會(huì)進(jìn)一步優(yōu)化,因此沒(méi)有采用其他的方式進(jìn)行算法加速,我們將在今后的工作中從算法結(jié)構(gòu)和加速實(shí)現(xiàn)方式上完善本系統(tǒng)的功能。
脊髓提取圖像 椎間盤定位圖像
(c) 椎間盤的探測(cè)(Disks Detection): 對(duì)每個(gè)椎間盤進(jìn)行定位,并將其標(biāo)注。見(jiàn)右上圖,紅點(diǎn)代表定位的椎間盤,由黃線引出進(jìn)行標(biāo)注。
我們運(yùn)用SOPC的設(shè)計(jì)理念,成功的完成了本系統(tǒng)的設(shè)計(jì)任務(wù),基本完成了預(yù)先設(shè)置功能。在系統(tǒng)設(shè)計(jì)過(guò)程中,SOPC概念在以下幾個(gè)方面得到了體現(xiàn):
甲、 系統(tǒng)的可重構(gòu)性
由于Nios II是軟核處理器,具有可裁剪的特性。因此對(duì)于我們?cè)O(shè)計(jì)的系統(tǒng)具有廣闊的升級(jí)空間,比如,因?yàn)闀r(shí)間的原因,一些適合FPGA硬件實(shí)現(xiàn)的算法我們采用的c程序?qū)崿F(xiàn),速度受到限制,在后續(xù)的工作中我們可以在不更改硬件平臺(tái)的情況下升級(jí)我們;還有就是目前的顯示屏像素值不夠,編寫不同的LCD控制器便能夠兼容同類型的LCD顯示,這些都是SOPC給我們帶來(lái)的系統(tǒng)可重構(gòu)優(yōu)點(diǎn)。
乙、 系統(tǒng)設(shè)計(jì)模塊化
系統(tǒng)設(shè)計(jì)過(guò)程是個(gè)團(tuán)隊(duì)密切協(xié)作分工合作的過(guò)程。普通的嵌入式處理器平臺(tái)設(shè)計(jì)必須針對(duì)特定的處理器進(jìn)行設(shè)計(jì),硬件工作完成后才能夠進(jìn)行軟件調(diào)試。但是Nios就不同了,只要是能夠支持Nios 的Altera 的 FPGA芯片,在其他 FPGA平臺(tái)上進(jìn)行調(diào)試是沒(méi)有任何區(qū)別的。這樣能夠使得設(shè)計(jì)過(guò)程的軟硬件工作同步進(jìn)行,在實(shí)際產(chǎn)品的設(shè)計(jì)過(guò)程中,就可以將市場(chǎng)拓展和產(chǎn)品研發(fā)同時(shí)啟動(dòng),縮短了整個(gè)產(chǎn)品的面世周期,這對(duì)企業(yè)無(wú)疑具有無(wú)可估量的意義。
丙、 實(shí)現(xiàn)方式多樣化
利用SOPC概念進(jìn)行系統(tǒng)設(shè)計(jì)的時(shí)候,系統(tǒng)實(shí)現(xiàn)方式是多種多樣的,比如要實(shí)現(xiàn)一個(gè)算法的加速你可以采用自定義用戶指令、自定義用戶外設(shè)或者C2H 的方式實(shí)現(xiàn),通過(guò)比較找到最佳的實(shí)現(xiàn)方式。
六. 設(shè)計(jì)特點(diǎn)
基于Nios II的MRI脊柱圖像分割系統(tǒng)具有運(yùn)算速度快,體積小,操作簡(jiǎn)單,易于同原有的MRI設(shè)備共建形成一個(gè)新的完整的系統(tǒng),且便于醫(yī)生們使用分割后的圖像進(jìn)行集體會(huì)診。
1. 基于Nios II處理器的ucosII操作系統(tǒng)的引入,ucosII在世界范圍內(nèi)得到廣泛的應(yīng)用、包括諸多領(lǐng)域,如手機(jī),路由器,集線器、飛行器、 醫(yī)療設(shè)備等等。uC/OS適合小型控制系統(tǒng),具有執(zhí)行效率高、占用空間小、實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點(diǎn)。Nios II的開(kāi)發(fā)環(huán)境IDE下已經(jīng)集成了該操作系統(tǒng),免去了移植工作,非常方便,在使用過(guò)程中發(fā)現(xiàn),在Nios II運(yùn)行基于ucosII及任務(wù)時(shí)非常穩(wěn)定。本系統(tǒng)的軟件開(kāi)發(fā)均在Nios II集成的μc/os-II操作系統(tǒng)上面完成。
2. 系統(tǒng)引入了ucGUI,系統(tǒng)具有了非常好的人機(jī)交互性,只需要使用鼠標(biāo)就能操作實(shí)現(xiàn)該系統(tǒng)所有的功能。這對(duì)于本系統(tǒng)的推廣有著很大的幫助。
3. 系統(tǒng)設(shè)計(jì)時(shí)考慮到大量MRI圖像存儲(chǔ)的問(wèn)題,采用大容量的SD卡就解決了這方面的問(wèn)題,得益于Nios 軟核處理器的優(yōu)勢(shì),我們非常方便了加入了四線制的sd卡控制器,提高了sd卡讀取速度。同時(shí)我們移植了對(duì)應(yīng)于sd卡ucFS文件系統(tǒng),大大方便了對(duì)文件訪問(wèn)操作。
4. 基于ucosII 操作系統(tǒng)的網(wǎng)絡(luò)接口,使得我們的系統(tǒng)具有了很強(qiáng)的可擴(kuò)展性。同時(shí)網(wǎng)絡(luò)的支持也可以使得我們保持圖像的更新和對(duì)遠(yuǎn)程醫(yī)療的良好支持。
5. Nios II提供一系列的處理器成員,用戶可以針對(duì)本身系統(tǒng)的需求,創(chuàng)建一個(gè)在處理器、外設(shè)、存儲(chǔ)器和I/O接口方面的完美的方案,這樣,既能提供合理的性能組合,另一方面也節(jié)省了系統(tǒng)開(kāi)發(fā)的成本,增強(qiáng)了系統(tǒng)在成本上的競(jìng)爭(zhēng)力。
6. NiosⅡ提供的C2H編譯器能夠?qū)?duì)性能要求較高的C語(yǔ)言程序自動(dòng)轉(zhuǎn)換為硬件加速器,集成到基于FPGA的NiosⅡ子系統(tǒng)中,對(duì)我們提高系統(tǒng)運(yùn)行速度提供了有利的支持。[!--empirenews.page--]
七. 總結(jié)
我們本次大賽的設(shè)計(jì)作品“基于Nios II的MRI脊柱圖像分割系統(tǒng)”按照預(yù)定計(jì)劃完成了設(shè)計(jì)的全部任務(wù),實(shí)現(xiàn)了系統(tǒng)的功能,在一些細(xì)節(jié)上我們還需要努力改進(jìn)。大賽過(guò)程中我們學(xué)到了很多新的有關(guān)Nios II處理器的支持,首次嘗試了醫(yī)學(xué)圖像方面算法在Nios II嵌入式處理器實(shí)現(xiàn)的方式,體現(xiàn)了Nios II處理器強(qiáng)大處理功能和可靠的運(yùn)行特性。積累了在Nios II上使用uc/osII、ucGUI、ucFS的使用經(jīng)驗(yàn)。調(diào)試過(guò)程中,出現(xiàn)了的不少問(wèn)題在團(tuán)隊(duì)協(xié)作的力量下,我們一一將它們克服。
Nios Ⅱ軟核系統(tǒng)的性能是可以根據(jù)應(yīng)用來(lái)進(jìn)行裁減的,定制用戶自己的系統(tǒng),與固定的處理器相比,具有很強(qiáng)的優(yōu)勢(shì)。Nios II的用戶邏輯功能和用戶指令突現(xiàn)Nios II處理器的技術(shù)亮點(diǎn),提供了系統(tǒng)實(shí)現(xiàn)的多樣化特點(diǎn)。對(duì)于學(xué)生來(lái)說(shuō),SOPC設(shè)計(jì)理念帶來(lái)的就是創(chuàng)新的設(shè)計(jì)思想。有利于激發(fā)我們的創(chuàng)新性。
感謝Altera公司為我們提供了非常好的理論與實(shí)現(xiàn)相結(jié)合的時(shí)間機(jī)會(huì),通過(guò)大賽,驗(yàn)證了我們?cè)O(shè)計(jì)的算法硬件實(shí)現(xiàn)可行性!對(duì)于我們的理論研究也具有相當(dāng)?shù)拇龠M(jìn)作用。