曾令超,曹玉華,張名業,鐘小華
(1.廣東省凈菜保鮮包裝裝備工程研究中心,廣東 廣州 510450;2.廣東白云學院,廣東 廣州 510450)
隨著工業自動化的發展和智能制造的廣泛應用,通過識別噴涂數字標簽對產品進行特定分類,識別產品噴碼不良剔除次品,識別產品生產時間進行抽樣,是非常重要生產的工序[1]。此工序需要執行設備具有高速的圖像處理能力,且處理速度高于產品的生產速度[2],以達到最大化生產效率的目的。
目前,傳統數字識別裝置的識別算法主要采用機器學習和局部特征匹配兩種。機器學習與特征匹配相比,精度較高,適應性較強,但識別速率較低,需要更高的硬件性能支持。西安理工大學研制的顯示屏數字識別系統,通過數字邊緣灰度軌跡和穿線法,識別速度快且精度較高,但并不能推廣至其他樣式的數字識別[3];南昌航空大學研制的嵌入式智能視覺數字識別裝置,采用字符分割歸一化、模板匹配的方法,能適應不同亮度的場景,但識別前需要提前采集模板圖片的數據[4];集美大學研制的儀表數字字符識別裝置,采用連通域、灰度關聯法,通過圖像的特征集與提取圖像進行比對,實現數字識別,對于不完整和傾斜的數字識別準確率高,但效率較低[5];河北工業大學研制的噴碼字符檢測系統,采用脈沖耦合神經網絡算法進行識別數字,具有魯棒性和識別精度較高的特點,但僅通過仿真驗證,尚未進行實際測試[6]。
針對目前應用的數字識別系統在精度、效率方面存在的不足,基于FPGA 芯片圖像數字信號處理高效率的特點,課題組設計了一套新型產品噴碼數字識別系統,采用二值化投影分割與特征編碼的方法,最終實現對工廠生產線產品噴碼編號日期的快速取樣識別。
數字噴碼識別的產品取樣系統由FPGA 控制芯片、電源驅動板LM7812、輸入/輸出設備組成,系統框架圖如圖1 所示。輸入設備有OV5640 攝像頭模塊、按鍵、光電傳感器,輸出設備有LCD 屏幕、數碼管、執行元件電磁閥,使用板載SDRAM 緩存圖像。當需要取樣時按下按鍵,FPGA 將記錄當前時間,OV5640攝像頭開始采集生產線上產品的圖像,通過輸入行場同步信號對數據線上的圖像數據進行解析,然后傳遞到SDRAM 控制模塊中存儲。FPGA 通過讀取SDRAM 數據進行圖像處理模塊,實現對圖像的實時處理和數字識別,并發送結果顯示在LCD 屏幕和數碼管上。當識別出噴碼上的時間為取樣時間時,最后通過電磁閥控制氣缸完成取樣。

圖1 數字噴碼識別裝置控制系統結構圖
數字識別算法是系統功能實現的關鍵與核心,本文設計的識別算法流程圖如圖2所示。

圖2 數字識別算法流程圖
為了降低OV5640采集圖像中的高頻噪音信號,提高圖像信噪比,本文采用高斯平滑卷積算法[6-7]進行降噪,得到平滑圖片g(x,y),算法滿足:

其中,f(i,j) 代表圖像數 據 在x=i,y=j 處的RGB三色組成的向量值,為二元高斯函數,滿足:

由于圖像數據需要緩存,且順序要保持不變,系統使用了FIFO來存儲圖像數據。從相鄰的三行中每行都抽出三個數據,再通過使用三個FIFO 讀出SDRAM 中的三行相鄰圖像,分別為fifo_CA1、fifo_CA2、fifo_CA3,由此組成可滿足卷積算法的相鄰像素區域,如圖3所示。

圖3 SDRAM 讀取數據示意圖
進行平滑算法前后得到的結果,如圖4所示,可以看出卷積后的圖像中噪音水平降低。

圖4 平滑卷積結果
為了更好地提取圖像信息,凸顯圖像中的數字特征,需先提取圖像的明亮度信息。系統采用OV5640 中的RGB轉換YCbCr 模塊(rgb2ycbcr 模塊接口如圖5 所示)。YCbCr色彩空間是針對RGB 色彩空間所作的編碼[8-9],Y表示明亮度,其數值體現光非線性的濃度,可通過式(3)進行色彩空間轉換,得到灰度值Y。


圖5 rgb2ycbcr 模塊接口
在OV5640 芯片上進行由RGB 格式轉換為YCbCr 格式的過程中,需要先將RGB565 轉換為RGB888[10]。通過對RGB565格式進行高位填充低位,得到有一定的線性補償的RGB888格式,其最終結果在精度上不會有太大的丟失。
為了便于數字分割,采用閾值二值化的方法進行圖像數據處理。將灰度圖像輸入的像素的灰度值Y(程序中color)在模塊中與閾值t_color 比較后,采用式(4)的算法,將[0,255] 的數據映射到{0,1} 中,最終輸出二值化的圖像monoc(x,y),如圖6 所示。













在生產中使用的直流電電壓為24 V,而在本系統中作為光電傳感器和電磁閥兩種元件的供電電壓,開發板EP4CE10F17C8的供電為直流12 V,而控制信號為5 V,因此直流電電壓通過LM7812穩壓芯片把外部24 V直流電源降壓至12 V,最大輸出電流為1.5 A。識別的目標為牛奶飲品包裝上的噴碼數字,通過FPGA 板上的按鍵調節閾值t_color,以獲取最適合當前環境的分割結果。測試運行時的實際資源占用情況,如表4所示。

表4 FPGA 資源使用情況
識別算法的時間復雜度直接影響識別效率和顯示結果的刷新率,通過QuartusⅡ13.1 對識別算法的仿真模擬,得到平滑卷積、二值化處理、投影分割和特征編碼函數模塊的運行時間占總時間比例,如圖9所示。

圖9 各識別模塊函數占用時間比例圖
由于OV5640采集的原始數據量最大,卷積運算涉及二重循環、乘除運算,時間復雜度為O(n2),對算法效率起決定性影響。從圖9 中看出,平滑卷積占用的時間達到90%以上。通過Quartus Ⅱ中的實例加載器[12]得到卷積FIFO 緩存過程和卷積FIFO運算過程數字波形圖像,如圖10、圖11所示。緩存過程包括向SDRAM 發送讀請求sdram_rd_req,三個卷積FIFO 讀取相鄰三行像素值,共耗時936 個時鐘周期;卷積FIFO 運算過程包括輸出端向卷積FIFO 發出請求CA_ACK,FIFO卷積部分運算,FIFO輸出到圖像輸出,共耗時2個時鐘周期。

圖10 卷積FIFO 緩存過程數字波形圖

圖11 卷積FIFO 運算過程數字波形圖
在圖像識別完成后,識別的數字通過數碼管顯示。數碼管模塊中輸入的24 位以顯示識別結果(圖12 為生產時間噴碼數字識別結果),由于數碼管不能顯示“:”,最終顯示用E代替。

圖12 系統測試結果
本設計采用Altera公司的Cyclone IV系列的FPGA開發板EP4CE10F17C8,應用OV5640攝像頭模塊、按鍵、光電傳感器、LCD 屏幕、數碼管、執行元件電磁閥,通過對圖像的平滑卷積、二值化處理、投影分割和特征編碼,實現具備自動化采集圖像、數字識別、識別結果顯示及聲音提醒等功能的數字識別流水線產品取樣系統。對飲品噴碼的識別測試結果顯示,該系統能實現快速自動化噴碼識別。