姜曉雪,陳小菊,徐銳,屈子昂
(宜賓學院,四川宜賓,644000)
顏色識別是應用視覺領域的一個重要方面。隨著專用集成電路和專用處理芯片的發展,識別技術也得到了突飛猛進的發展,其中的典型代表就是數字信號處理(DSP)專用芯片的產生,它改變了傳統的完全依靠PC機來進行圖像處理的弊端,使目標識別進入了嵌入式時代。隨著對圖像處理要求的越來越高,DSP在某些具體應用中受到很多限制,如實時高清圖像采集與處理[2]。
本設計系統介紹了一種基于FPGA的RGB減背景顏色識別算法,在RGB顏色通道提取的基礎上對其他顏色通道進行腐蝕處理,使識別更加精確、可靠。再依靠FPGA的可編程性和強大的并行信號處理能力,使其可以靈活、高效的運行和分析各種目標識別算法,在處理信息量大的圖像上顯得游刃有余,滿足系統對實時性的要求,大大的提高系統的處理性能。本系統運用了一個對紅色運動物體的追蹤的實驗來觀察圖像處理的效果,并為后續雙目測距系統的開發打下堅實的基礎,該方案也可以直接用于日常監控系統中。
為了科學的定量描述和使用顏色,人們提出了各種顏色模型,主要有RGB模型、HSI模型、CMKY模型和YUV色彩系統[3]。其中RGB模型的應用主要面向硬件設備,HSI模型是面向以彩色處理為目的的應用,而CMKY模型主要應用在印刷工業,YUV模型則主要用在電視信號傳輸中。面向硬件設備的最常用的彩色模型是RGB模型,其模型如圖1所示,其中RGB模型和HSI模型是在圖像處理中應用較多的兩種模型[4]。

圖1 RGB模型單位立方體
RGB模型和HSI模型之間可以進行相互轉換,將RGB模型轉換成HSI模型的公式如公式(1)所示:

在HSI模型中三分量H、S、I具有相對獨立性,能較準確的提取顏色特征。考慮到計算H需要進行反三角函數轉換需要時間較長,不利于實時性這一要求,所以不選用H分量;而I分量與圖像的彩色信息無關,對識別效果影響也不會很大,所以沒有選用,而S分量計算簡單,而且由光照強度變化帶來的影響較少[5]。所以本文中采用用 R-G、R-B作為識別參數,所以在此也引進了此兩個參數,這兩個參數計算起來方便,又不至于增加網絡訓練時間,能夠有效的濾除多余背景,而且實驗證明對識別率確有一定的提高。在測量的二十幅圖中,識別率達到95%。
如圖2所示,我們圖像采集MT9V011cmos 500W像素攝像頭,將采集到的彩色RGB 圖像首先存入 SDRAM 中,然后由VGA顯示控制端讀出圖像數據,讀出 RGB 圖像數據后,我們首先對RGB圖進行灰度處理,然后對灰度圖像進行閾值分割,形成二值圖像,對二值數字圖像進行邊界追蹤的基礎上進行顏色識別,最終將邊界顯示在VGA上。

圖2 系統原理圖
如圖3所示,rgb_data_i_1 與rgb_data_i_2為三位八位RGB數據信息,經過灰度、二值后壓縮為三位4位RGB數據信息image_d ata_1和image_data_2。

圖3 顏色標定模塊
RGB( Red, Green, Blue ) 通過紅、綠 、藍三基色的相加來產生其它的顏色 。自然界的任何一種顏色,都可以通過 RGB 三基色按照不同的比例混合而成 。RGB 三者的取值范圍分別是0 到255 。當 RGB 三者都為 0 時, 產生黑色 ;當RGB三者都為255 時, 產生白色[6]。
如圖4所示,在顏色識別模塊中寫有紅、藍、綠三個顏色濾波器,當識別顏色時,濾波器分時工作,即選定一種顏色的濾波器之后,其他顏色的分量都不能夠通過濾波器,而只有這種顏色能夠通過濾波器,該分量通過濾波器之后,則得出要識別顏色中該分量的值。簡單來說就是當紅色濾波器處于工作狀態時,只有藍色光能通過濾波器,而藍色、綠色不通過,這樣就能夠得出紅色分量的值[7]。當入射光通過三個顏色濾波器之后得出三個顏色分量值,這樣,疊加在一起則得出被測物體顏色,識別紅色物體。

圖4 濾波信號
顏色識別算法:RGB 是光照色。每種顏色數據從0到255,都為0的話就是沒有光,是黑色,數據越大光越強,都為255是白色[8]。三色的數據不同的話,找數據最大的那個,可以理解為那種顏色的光強,就會偏向那種顏色[9]。

圖5 藍色識別VGA圖

圖6 紅色識別VGA圖
根據所處環境及實驗分析,紅色受干擾小,光照強,精確度更高,所以本系統選擇對紅色進行識別。
先對整幅圖像基于RGB模型進行紅、黃、藍顏色提取。對提取出的備選區域進行形態學濾波,去掉圖像中的噪聲干擾。依據形狀特征提取圖像中矩形區域[10]。
RGB圖像是有3個通道,也就是一個3維的矩陣,而灰度圖,大只有一個通道,圖7在matlab中將一個3通道的事物轉為1通道。

圖7 RGB轉灰度圖
圖8在matlab中將RGB圖像的其余兩色進行腐蝕并進行減運算。

圖8 對G和R腐蝕過后的二值圖

圖9 對測試圖進行YUV算法后的二值圖
本方案在傳統RGB顏色通道提取的基礎上對藍色和綠色通道進行腐蝕后得到的圖像,并在紅色通道進行R-G、R-B運算,濾除多余背景,使識別精度更高。
本文使用的器件是Altera公司的颶風時代開發板。Verilog源代碼在開發環境quartus ii 18.0中綜合并經過ModelSim仿真,得到的時序波形圖,該波形圖驗證了RGB信號的正確性。波形圖、測試結果如圖10、圖11所示。

圖10 測試圖1

圖11 測試圖2
由仿真圖12可知新生成圖像時序與datasheet的時序圖基本一致。本設計在實驗中的圖片共20幅,當采用HIS特征量時有3個識別錯誤,識別率為85.8%;在采用R-G、R-B特征時,有1個識別錯誤,識別率為95%,識別時間是0.5s。這一個錯誤圖片是手機反光面。經分析,其錯誤的主要原因是背景板不單一,受強光影響大。在圖形圖像的處理過程中, RGB 的效率不是很高,在產生任何一種顏色時, RGB三者需要同樣的帶寬。另外, 為了更改一個像素的亮度或色度, 必須把RGB三者的數值從緩存中讀取出來, 然后對它們三者作修改, 最后還得把它們寫回緩存中。假如可以把亮度和色度分離開來, 這個處理過程將會更快 。

圖12 仿真圖
經實驗表明本設計所提取的特征計算簡單、快捷、容易理解,且能減少一定光照強度變化帶來的影響,比較適合于用在實時生產中。