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