基于DSP的嵌入式顯微圖像處理系統(tǒng)的設(shè)計(jì)
本文提出并設(shè)計(jì)了一種基于DSP和FPGA的嵌入式顯微圖像采集處理系統(tǒng),如圖1所示。其中,圖像采集與處理裝置是整個(gè)系統(tǒng)的關(guān)鍵部件,它以DSP和FPGA為核心,DSP作為中央處理器負(fù)責(zé)圖像濾波、閾值分割及目標(biāo)的數(shù)目、直徑及面積等統(tǒng)計(jì)處理,通過FPGA完成各種接口邏輯和時(shí)序匹配,并配以大容量存儲(chǔ)器用于圖像的存儲(chǔ)。DSP芯片體積小,運(yùn)算速度快,使用靈活方便;FPGA具有在系統(tǒng)可編程和控制邏輯實(shí)現(xiàn)靈活的特點(diǎn)。因此,既能夠滿足處理的快速性,又能滿足小型化便于攜帶的要求。
1 系統(tǒng)硬件平臺(tái)設(shè)計(jì)
基于視頻圖像處理的顯微圖像處理系統(tǒng)的性能,在很大程度上依賴于其硬件處理單元的結(jié)構(gòu)和性能。本系統(tǒng)所采用的硬件結(jié)構(gòu)主要由5大模塊組成:DSP核心處理單元、視頻圖像采集與存儲(chǔ)模塊、字符與圖形迭加單元、通訊與用戶交互接口模塊、電源模塊。系統(tǒng)電路框圖如圖2所示。
圖2 嵌入式顯微圖像處理系統(tǒng)硬件結(jié)構(gòu)框圖
系統(tǒng)的工作過程為:系統(tǒng)上電后,DSP執(zhí)行BOOTLOAD程序,將用戶程序代碼從外部Flash load到內(nèi)部程序存儲(chǔ)器,并執(zhí)行A/D、字符迭加等初始化操作。視頻采集與轉(zhuǎn)換模塊將CCD攝像機(jī)輸出的模擬視頻信號(hào)轉(zhuǎn)換為數(shù)字圖像數(shù)據(jù)并存儲(chǔ)在RAM中,在一場(chǎng)圖像采集完畢后,由場(chǎng)同步信號(hào)通過FPGA以中斷方式通知DSP,DSP從RAM中讀取圖像,并負(fù)責(zé)完成圖像濾波、分割、測(cè)量等各種處理算法,將測(cè)量結(jié)果通過字符圖形迭加單元顯示在監(jiān)視器屏幕上,也可以根據(jù)需要由通訊接口模塊傳送給主機(jī)。各種接口邏輯與時(shí)序控制通過在FPGA器件內(nèi)部編程實(shí)現(xiàn)。
模擬視頻信號(hào)分為兩路:一路經(jīng)A/D轉(zhuǎn)換為數(shù)字圖像信號(hào),另一路則與視頻疊加芯片MAX442和字符疊加芯片μD6453進(jìn)行圖形和字符的疊加顯示。這里采用Philips公司的SAA7111A作為視頻A/D解碼芯片,它將CCD攝像機(jī)輸出的模擬視頻信號(hào)轉(zhuǎn)換為數(shù)字圖像數(shù)據(jù),并在FPGA的控制下存儲(chǔ)在RAM中,同時(shí)產(chǎn)生行同步信號(hào)HS、場(chǎng)同步信號(hào)VS、奇偶場(chǎng)標(biāo)志信號(hào)RTS0以及像素時(shí)鐘信號(hào)LLC2。MAX442是一個(gè)雙通道視頻信號(hào)放大器,增益帶寬高達(dá)140MHz。μPD6453為NEC公司生產(chǎn)的用于視頻設(shè)備中的字符發(fā)生芯片。待顯示的字符和圖形與CCD攝像機(jī)輸出的原始圖像一起疊加顯示在監(jiān)視器屏幕上。
在圖像采集過程中,視頻解碼芯片SAA7111A按像素逐點(diǎn)輸出4:2:2的YUV格式的數(shù)字圖像數(shù)據(jù)。該格式中,每幀圖像的分辨率為720×576,即每行有720個(gè)像素點(diǎn),每幀576行,由于一幀圖像是由奇、偶兩場(chǎng)圖像組成的,因此每場(chǎng)圖像有288行。為了處理方便,每場(chǎng)采集的圖像大小為512×256,即每行采集512個(gè)像素,每場(chǎng)(奇場(chǎng)或偶場(chǎng))采集256行,通過在FPGA中編程實(shí)現(xiàn)像素延時(shí)和行延時(shí),選擇每行中間的512個(gè)像素和每場(chǎng)中間的256行。
2 軟件設(shè)計(jì)
傳統(tǒng)的DSP程序多采用單線程順序結(jié)構(gòu)實(shí)現(xiàn),其實(shí)時(shí)性較差,資源利用率低,在高速、實(shí)時(shí)的圖像處理領(lǐng)域中難以滿足實(shí)際要求。CCS(Code Composer Studio)是一個(gè)完整的DSP集成開發(fā)環(huán)境,不僅集成了常規(guī)的開發(fā)工具,如源程序編輯器、代碼生成工具(編譯、鏈接器)以及調(diào)試環(huán)境,還提供了DSP/BIOS開發(fā)工具。DSP/BIOS是一個(gè)簡(jiǎn)易的嵌入式操作系統(tǒng),它本身僅占用極少的CPU資源,而且是可裁剪的,能大大方便用戶編寫多任務(wù)應(yīng)用程序,增強(qiáng)對(duì)代碼執(zhí)行效率的監(jiān)控,提高程序的可讀性,方便用戶應(yīng)用程序的編寫,縮短軟件開發(fā)周期。
2.1 軟件程序框圖
本文在DSP/BIOS的基礎(chǔ)上,設(shè)計(jì)開發(fā)了顯微圖像處理系統(tǒng)的DSP應(yīng)用程序。使用混合語言編程,用C語言設(shè)計(jì)程序中對(duì)運(yùn)行時(shí)間影響不大的模塊,用匯編語言設(shè)計(jì)嚴(yán)格要求實(shí)時(shí)性的核心算法。在這里,程序采用模塊化設(shè)計(jì),各個(gè)功能模塊相互獨(dú)立,程序框圖如圖3所示。該程序主要由1個(gè)主程序初始化模塊、3個(gè)硬件中斷HWI處理模塊、1個(gè)軟件中斷SWI處理模塊和4個(gè)任務(wù)模塊TSK構(gòu)成。
當(dāng)系統(tǒng)復(fù)位后,DSP執(zhí)行Bootload引導(dǎo)程序,并將程序入口點(diǎn)設(shè)置到c_int00處,DSP/BIOS應(yīng)用程序從該處開始運(yùn)行,執(zhí)行過程為:首先調(diào)用DSP/BIOS初始化模塊,并調(diào)用主函數(shù)main(),由main()函數(shù)負(fù)責(zé)完成硬件資源分配及各種外圍芯片工作方式的初始化設(shè)置;然后啟動(dòng)DSP/BIOS,并進(jìn)入空閑循環(huán)周期。這時(shí),應(yīng)用程序完全由硬件中斷驅(qū)動(dòng),只有產(chǎn)生中斷時(shí),才會(huì)執(zhí)行相應(yīng)的功能模塊,執(zhí)行完畢后跳出繼續(xù)執(zhí)行Idle空閑循環(huán)程序。
2.2 圖像處理算法設(shè)計(jì)
當(dāng)采集完一場(chǎng)圖像后,F(xiàn)PGA以中斷方式通知DSP,觸發(fā)DSP的INT0中斷。由于一場(chǎng)圖像的時(shí)間間隔為20ms,因此每隔20ms觸發(fā)一次該中斷。在中斷處理程序Vs_interrupt()中啟動(dòng)鍵盤掃描SWI,若有鍵按下,則執(zhí)行相應(yīng)的圖像處理程序。
顯微圖像受光源光照強(qiáng)度的影響很大,采集的圖像往往質(zhì)量較差、亮度不均勻,目標(biāo)區(qū)域不易從背景區(qū)域中分離出來。為此,需要首先對(duì)圖像進(jìn)行濾波處理,然后采用自適應(yīng)閾值的辦法將目標(biāo)從背景中提取出來,并利用數(shù)學(xué)形態(tài)學(xué)的方法進(jìn)一步去噪處理,最后完成對(duì)圖像中目標(biāo)的統(tǒng)計(jì)測(cè)量計(jì)算。
首先,利用中值濾波進(jìn)行圖像平滑,窗口大小選擇3×3,采用十字狀窗口。中值濾波在保持目標(biāo)圖像邊緣的同時(shí),去除了尖峰干擾,使圖像背景的亮度更均勻,便于進(jìn)一步的圖像分割處理。
由于光源光照強(qiáng)度的影響,背景的灰度值在整幅圖像中存在很大差別,如果只用一個(gè)固定的全局閾值對(duì)整幅圖像進(jìn)行分割,則由于不能兼顧圖像各處的情況而使分割效果受到影響。為提高分割的精確性,可采用隨背景灰度值緩慢變化的動(dòng)態(tài)閾值分割的方法,即自適應(yīng)閾值算法。具體做法是:首先將原圖像分解成系列子圖像,由于子圖相對(duì)原圖很小,因此受陰影或?qū)Ρ榷瓤臻g變化等問題的影響會(huì)比較?。蝗缓髮?duì)每個(gè)子圖計(jì)算一個(gè)局部閾值;最后通過對(duì)這些子圖所得到的閾值進(jìn)行線性插值,就可以得到對(duì)原圖中每個(gè)像素進(jìn)行分割所需要的合理閾值。分割后的二值圖像再利用數(shù)學(xué)形態(tài)學(xué)變換中的開、閉運(yùn)算并選取合適的算子,便可以很好地消除圖像中仍然存在的少量噪聲點(diǎn),利于下一步的工作。
這里,在局部閾值計(jì)算時(shí)采用最大類間方差法[6],其計(jì)算公式為:
其中:σ2(T)為兩類間最大方差,WA為目標(biāo)概率,μa為目標(biāo)的平均灰度,WB為背景概率,μb為背景平均灰度,μ為圖像總體平均灰度。即閾值T將圖像分成A、B兩部分,使得兩類總方差σ2(T)取最大值的T,即為最佳分割閾值。
為了實(shí)現(xiàn)對(duì)顯微圖像中目標(biāo)的數(shù)目以及直徑、面積等幾何特征的統(tǒng)計(jì)測(cè)量,采用了對(duì)二值圖像的目標(biāo)區(qū)域進(jìn)行標(biāo)記歸類的算法[7]。首先對(duì)二值圖像的目標(biāo)區(qū)域從左到右、自上而下進(jìn)行掃描,若為目標(biāo)點(diǎn),則對(duì)其加以標(biāo)記,并根據(jù)八連通原則將屬于同一個(gè)顆粒的目標(biāo)圖像賦予相同的數(shù)值。標(biāo)記歸類算法示意圖如圖4所示。由于目標(biāo)的幾何形狀是不規(guī)則的,一次掃描不能夠把所有目標(biāo)全部區(qū)分開來,因此要對(duì)二值圖像進(jìn)行多次掃描。圖4(a)表示二值圖像(黑色區(qū)域?yàn)槟繕?biāo),白色為背景),圖4(b)為對(duì)目標(biāo)區(qū)域的一次標(biāo)記,圖4(c)為最后標(biāo)記完成的結(jié)果。其中,數(shù)字1表示1號(hào)目標(biāo),數(shù)字2表示2號(hào)目標(biāo)。從圖4可以看出,1號(hào)目標(biāo)的標(biāo)記經(jīng)過一次掃描就能夠完成,而2號(hào)目標(biāo)則需要二次掃描方可完成標(biāo)記。目標(biāo)圖像經(jīng)過標(biāo)記歸類后就可以很方便地對(duì)目標(biāo)的數(shù)目及直徑、面積和周長(zhǎng)等特征進(jìn)行測(cè)量了。
3 實(shí)驗(yàn)結(jié)果
為了驗(yàn)證系統(tǒng)的可靠性,對(duì)來自顯微鏡下的油膜顆粒圖像進(jìn)行了大量的采集處理與統(tǒng)計(jì)測(cè)量實(shí)驗(yàn)。圖5(a)是現(xiàn)場(chǎng)采集的一幅顆粒顯微圖像,圖像大小為512×256,由于光源光照強(qiáng)度的影響,整幅圖像背景不均勻。圖5(b)是采用自適應(yīng)閾值二值化后的圖像,目標(biāo)區(qū)域與背景區(qū)域已經(jīng)分離開,雖然還有少量的噪聲點(diǎn),但是經(jīng)過數(shù)學(xué)形態(tài)學(xué)變換后已經(jīng)能夠準(zhǔn)確地進(jìn)行顆粒的統(tǒng)計(jì)計(jì)算。
在統(tǒng)計(jì)測(cè)量過程中,面積小于3個(gè)像元的目標(biāo)被當(dāng)作噪聲干擾而略去不計(jì),只對(duì)面積大于等于3個(gè)像元的目標(biāo)加以統(tǒng)計(jì)。為了便于進(jìn)一步的分析和比較,將目標(biāo)按像元數(shù)目分成9個(gè)檔次: 3~10、11~20、21~30、31~40、41~50、51~60、61~70、71~80和81以上。對(duì)顆粒的數(shù)目、平均面積以及各檔次所占比例進(jìn)行了統(tǒng)計(jì)計(jì)算,結(jié)果如表1所示。實(shí)驗(yàn)中,在DSP芯片TMS320VC5416工作在最大工作頻率160MHz時(shí),程序的運(yùn)行時(shí)間約為15ms。由于視頻采集為PAL制,一場(chǎng)圖像時(shí)間為20ms,因此能夠達(dá)到實(shí)時(shí)性要求。
本文提出了一種以TMS320VC5416作為圖像處理的核心部件的嵌入式顯微圖像處理系統(tǒng),設(shè)計(jì)了基于DSP/BIOS的應(yīng)用程序。利用自適應(yīng)閾值算法對(duì)采集的圖像進(jìn)行準(zhǔn)確的分割,并采用掃描標(biāo)記算法對(duì)油膜顆粒顯微圖像進(jìn)行了統(tǒng)計(jì)測(cè)量實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,利用本系統(tǒng)對(duì)顆粒顯微圖像進(jìn)行統(tǒng)計(jì),可達(dá)到全面、客觀、方便且自動(dòng)化程度高的效果,可以應(yīng)用于各種顯微圖像的統(tǒng)計(jì)與分析,具有較高的實(shí)用性。
參考文獻(xiàn)
[1] 辛莉,胡茂海,周紹光.水稻花粉顆粒顯微圖像采集與分析系統(tǒng)研究[J].應(yīng)用光學(xué),2004,25(1):43-45.
[2] 尤育賽,于慧敏,劉圓圓.基于粒度測(cè)量的重疊圓形顆粒圖像分離方法[J].浙江大學(xué)學(xué)報(bào)(工學(xué)版),2005,39(7):962-966.
[3] TMS320VC5416 Fixed-Point Digital Signal Processor Data Manual,SPRS095O[J].Texas Instruments,2005,1.
[4] 清源科技.TMS320C54X DSP硬件開發(fā)教程[M].北京:機(jī)械工業(yè)出版社,2003.
[5] 潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2002.
[6] OTSU N.A threshold selection method from gray-level histogram[J].IEEE Trans,1979,SMC-15:652-655.
[7] 陳忠碧,張啟衡.一種適合于多目標(biāo)檢測(cè)的圖像分割方法[J].光電工程,2004,31(5):34-37.