摘要:信息技術(shù)的飛速發(fā)展,人們對多媒體圖像處理的要求越來越迫切,文章通過借鑒嵌入式系統(tǒng)在信號處理、電子技術(shù)和計算機等領(lǐng)域的成功應(yīng)用經(jīng)驗,在分析機器視覺系統(tǒng)特點的基礎(chǔ)上,將機器視覺和嵌入式技術(shù)相結(jié)合,設(shè)計一種基于嵌入式處理器TMS320C6205的圖像識別系統(tǒng)。介紹了系統(tǒng)工作原理和特點,給出了系統(tǒng)硬件結(jié)構(gòu)圖和軟件的實現(xiàn)方案,實驗結(jié)果顯示,圖像識別系統(tǒng)在光照比較好的條件下,能取得令人滿意的效果。
關(guān)鍵詞:嵌入式系統(tǒng) ;TMS320C6205 ;圖像識別 ;pSOS+
由于數(shù)字計算技術(shù)及相應(yīng)的信號處理技術(shù)的飛速發(fā)展,近幾十年來數(shù)字圖像處理技術(shù)發(fā)展非常迅速,并在科學研究、工農(nóng)業(yè)生產(chǎn)、資源的遙感探測、煤礦井下安全、醫(yī)療衛(wèi)生、航天探索等各個領(lǐng)域內(nèi)應(yīng)用越來越廣泛。在以往的嵌入式設(shè)備中,由于受到處理器運算速度及內(nèi)存大小等硬件條件的限制,不適合對圖像進行復雜的處理。目前,隨著芯片技術(shù)特別是低價位多功能處理器的發(fā)展,在嵌入式系統(tǒng)中對視頻進行處理成為可能。針對嵌入式系統(tǒng)領(lǐng)域的這一新特點,提出了一種在嵌入式系統(tǒng)上進行圖像識別處理的方案。
1 嵌入式系統(tǒng)中圖像識別特點
機器視覺是目前智能機器人領(lǐng)域中的研究熱點之一,涉及光電子學、圖像處理、模式識別及計算機技術(shù)等諸多學科領(lǐng)域,內(nèi)容極為廣泛。機器視覺中圖像處理與目標識別的特點是處理數(shù)據(jù)量大、計算復雜,對算法的實時性和精度要求高。
在嵌入式系統(tǒng)中進行圖像識別對內(nèi)存有嚴格要求。因為圖像的信息量本來就很大,而且在對圖像進行識別時還要開辟多個緩沖區(qū)來保存連續(xù)的幾幀圖像信息和中間的運算結(jié)果信息等[1]。如一幅352×288,24位色圖像約300KB空間,在對視頻流中目標進行識別時最少要開辟三個緩沖區(qū),其中兩個緩沖區(qū)用來保存從視頻流中得到的圖像,一個緩沖區(qū)個來保存中間計算結(jié)果。此外還要為操作系統(tǒng)預(yù)留足夠內(nèi)存空間。便于系統(tǒng)的進一步升級,系統(tǒng)采用了32M內(nèi)存。
2 系統(tǒng)硬件設(shè)計方案
系統(tǒng)選用TMS320C6205(簡稱6205)作為處理器,EMIF接口擴展了ASRAM和FLASH。存儲圖像的ASRAM選用容量為8Mbits的GS78132B,其存儲格式為256K×32bits,可以存儲兩幅512×512×16bits的圖像;存儲運算參數(shù)的ASRAM也選用GS78132B,用于存儲神經(jīng)網(wǎng)絡(luò)的訓練數(shù)據(jù)、濾波器系數(shù)和運算過程的中間結(jié)果。它們在EMIF中的存儲器空間分別為CE0和CE2。FLASH選用容量為8Mbits的AM29LV800,用于存儲引導程序和應(yīng)用程序,它在EMIF中的存儲器空間為CE1。6205用McBSP與SAA7111的I2C總線接口連接(將McBSP設(shè)置成通用I/O口,用軟件實現(xiàn)I2C協(xié)議),通過I2C對SAA7111進行控制。SAA7111輸出的數(shù)據(jù)直接存儲到GS78132B,存儲過程中的地址和控制信號由FPGA根據(jù)SAA7111的時序產(chǎn)生。
整個嵌入式圖像識別處理系統(tǒng)主要由FLASH、SDRAM,TM1300,CCD攝像頭和視頻編碼器SAA7111組成[2]。
圖像采集前端處理器采用PHILIPS公司的SAA7111,它是Philips公司的以PC為平臺的可編程視頻輸入處理芯片。利用其同步信號vref、行同步參考信號href、奇偶場標志信號rtso、像素時鐘信號llc2就可以完成圖像信號的抽取、數(shù)據(jù)線服用以及中斷邏輯的產(chǎn)生。SAA7111解碼輸出的是720×576分辨率的圖像,通過邏輯控制,可以分別采樣720×576,360×288,180×144等格式圖像,從而滿足不同信道的應(yīng)用需求。同時,通過對SAA7111的輸出信號進行邏輯綜合產(chǎn)生的DSP的DMA觸發(fā)事件,保證圖像數(shù)據(jù)的實時不丟失采集存儲。
以處理器TMS320C6205和視頻解碼器SAA7111為核心集成一個高性能的多媒體處理系統(tǒng)。其系統(tǒng)配置圖如圖1所示。
圖1 系統(tǒng)配置圖
3 系統(tǒng)軟件實現(xiàn)方案
系統(tǒng)中采用pSOS+實時操作系統(tǒng)。pSOS+內(nèi)核是一個高效的微內(nèi)核,用來調(diào)度、管理和分配資源,協(xié)調(diào)各種異步的任務(wù)和事件[3]。TMS320C6XXX系列具有豐富的芯片支持函數(shù)庫(ChipSupport Library),處理器有一個穩(wěn)定的、開放的軟件開發(fā)環(huán)境(SDE:Software Development Environment),因此我們可以運用C/C++高級編程語言開發(fā)高效的多媒體應(yīng)用程序。應(yīng)用程序在SDE環(huán)境下開發(fā)的,其主要是對實時視頻中的運動目標進行識別和提取。整個流程分為系統(tǒng)初始化,背景提取,目標識別和識別結(jié)果處理四個步驟。
3.1 系統(tǒng)初始化
pSOS+系統(tǒng)中,一個應(yīng)用程序就是一個任務(wù)。任務(wù)要管理自身的系統(tǒng)資源,如處理器、輸入輸出、內(nèi)存等。應(yīng)用程序需要對系統(tǒng)硬件資源進行初始化,系統(tǒng)初始化的主要源代碼:
procGetCapabilities(&cap);
_Cache_Copyback((char *)viBuf[i].Y,szY);
IcpOpen(&icpInst,&icpInstSup);
IcpLoadCoff(icpInst,NULL);
ViGetAdapterVideoStandard(viInst,adapterType,0,&videostandard);
ViInstanceSetup(viInst,&viInstup);
ViYUVSetup(viInst,&viYUVInstSup);
初始化代碼主要是返回處理器的信息;內(nèi)存拷貝;為ICP(圖像協(xié)處理器)指派一個實例,為操作準備ICP;用過濾系數(shù)加載ICP;得到解碼器上指定適配器的顏色標準;設(shè)置和改變實例參數(shù);初始化主板上的解碼器,設(shè)置和改變YUV操作模式的參數(shù)。
3.2 背景提取
背景圖像作為圖像識別的參考幀,選擇一幅高質(zhì)量的背景圖片對整個系統(tǒng)的識別準確率有很大影響。在上電時系統(tǒng)不夠穩(wěn)定,從攝像頭采集的圖像數(shù)據(jù)噪聲很大,用均值濾波(求和取平均)的方法來除去它,得到穩(wěn)定的背景圖像。系統(tǒng)初始化后隔一秒從攝像頭提取五幀圖像,對其取平均,得到均值圖像。然后再從攝像頭取一幀圖像(即當前幀)與均值圖像相減得差值圖像。根據(jù)差值圖像的特點可判斷系統(tǒng)是否已開始正常工作。背景提取流程如圖2所示。
在沒有運動目標的情況下差值圖像的值應(yīng)該全為零,由于圖像有噪聲,所以系統(tǒng)的實際差值會比較小。因此設(shè)定一個閾值跟這些差值進行比較,如果超過閾值的差值點數(shù)小于整幅圖像點數(shù)的千分之一,則認為噪聲信號不是很嚴重,當前幀可以作為背景,否則表明從攝像頭進來的圖像受干擾嚴重,不能用來進行處理,要重復以上過程,直到取得滿意的背景幀。
圖2 背景提取流程 圖3 圖像識別流程圖
3.3 圖像識別
圖像識別是從運動視頻中識別出活動目標。為了改善圖像輸出,對從攝像頭取得的圖像進行灰度變換?;叶茸儞Q就是通過一個斜率k來作兩個區(qū)域的線性變換。如果圖像偏暗(灰度集中在較暗區(qū)域),使斜率K>1來改善,如果圖像灰度集中在較亮的區(qū)域而使圖像偏亮,則使k<1來改善。
使模糊的圖像變得更加清晰,圖像中物體的輪廓更加明顯,需要對圖像進行銳化。圖像銳化有微分法和高通濾波法。采用微分法的梯度銳化直接用梯度值來表示圖像。這樣在圖像變化緩慢的地方,其值很小,而在圖像線條輪廓等變化較快的地方,其值很大。
要得到運動物體的輪廓,必須對視頻中的連續(xù)幀進行處理。應(yīng)用程序?qū)Ξ斍安东@幀和背景圖像都進行灰度變換、圖像銳化后;對它們作差分,得到差值幀;再對差值幀進行中值濾波和二值化處理得到二值化圖像。中值濾波會使圖像變的較模糊,但它同時也能抑制干擾較大的圖像噪聲,為進一步的處理作準備。二值化通過設(shè)定閾值來消除干擾較弱的圖像噪聲。圖像中可能會有一些受干擾嚴重,相對孤立的點,這些點如果存在,對下一步求運動物體矩形框會產(chǎn)生不良的影響。解決方法是對二值化圖像進行掃描,如果其中某點周圍的八個點都為黑,則把該點值設(shè)為零,這樣就除去二值化圖像中的一些零散點。把經(jīng)過處理后的二值化圖像進行聚類,即相同的點成一類,記下點的坐標,即點在圖像數(shù)組中的位置。然后遍歷圖像中代表著運動物體的點的坐標,算出運動物體的最大矩形框,記下框高。至此,活動視頻中的運動目標就用矩形框鎖定。圖像識別流程如圖3所示。
3.4 識別結(jié)果處理
實際應(yīng)用中,選擇感興趣的、效果最好的、最重要的目標圖片保存。根據(jù)系統(tǒng)中可用存儲器的大小和存儲目標圖片的質(zhì)量,確定系統(tǒng)所存儲圖片的數(shù)量。圖像識別系統(tǒng)感興趣的目標是人,同時要兼顧目標圖像足夠的清晰度,所以選擇活動目標高度至少要大于1/4整幅圖像高度的圖像幀進行保存。在存儲器可用空間,為了更新目標圖像,采用的方法是從所有已保存的圖像中去掉目標框高最小的圖像。識別結(jié)果處理流程如圖4所示。
圖4 識別結(jié)果處理流程圖
圖5 圖像識別系統(tǒng)實驗
4 實驗結(jié)果
圖像識別系統(tǒng)實驗過程如圖5所示,識別結(jié)果顯示,系統(tǒng)在光照比較好的條件下對活動視頻中的人、小車等運動目標識別比較成功,能取得令人滿意的效果。但在光線很暗,或者雷雨天,識別效果不很理想,進一步完善識別技術(shù)將是深入研究的課題。
參考文獻:
[1] 王新成. 高級圖像處理技術(shù)[M]. 北京:中國科學技術(shù)出版社,2001.
[2] 操勇,毛勇.TM1300嵌入式多媒體網(wǎng)絡(luò)通信系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2003.
[3] 鄭更生,謝治平,賀貴明. 基于實時多處理器操作系統(tǒng)內(nèi)核的視頻終端研究[J]. 計算機工程,2004 ,30(18 ):146-148.
朱艷芹(1982-)
女,湖北鄂州人,武漢工程大學2005級檢測技術(shù)與自動化裝置專業(yè)碩士研究生,現(xiàn)任惠州經(jīng)濟職業(yè)技術(shù)學院機電工程系電子教研室專任教師、講師。
摘自《自動化博覽》2012年第四期