基于FPGA的數(shù)字識別的實現(xiàn)二
掃描二維碼
隨時隨地手機看文章
基于FPGA的數(shù)字識別的實現(xiàn)二
01
背景知識
對于FPGA識別數(shù)字的基本算法知識請查看《基于FPGA的數(shù)字識別的實現(xiàn)》一文,對于數(shù)字位置的實時跟蹤的基本算法知識請查看《基于FPGA的實時移動目標的追蹤》一文。本節(jié)將基于FPGA的目標跟蹤以及統(tǒng)計學(xué)的特征統(tǒng)計來實現(xiàn)對數(shù)字的位置實時定位以及數(shù)字識別,不在局限于數(shù)字在屏幕中的位置,也不局限數(shù)字的大小。
02
基于FPGA的數(shù)字識別的實現(xiàn)
圖1 基于ov5640的FPGA實時數(shù)字識別系統(tǒng)
如圖1所示,我們圖像采集使用 ov5640 cmos 500W像素攝像頭,將采集到的彩色RGB圖像首先存入SDRAM中,然后由TFT顯示控制端讀出圖像數(shù)據(jù),讀出RGB圖像數(shù)據(jù)后,我們首先進行RGB轉(zhuǎn)Ycbcr算法操作,然后對灰度圖像進行閾值分割,形成二值圖像,對二值數(shù)字圖像進行邊界追蹤的基礎(chǔ)上進行數(shù)字識別,最終將邊界顯示在TFT5寸屏幕上,將識別的數(shù)字信息顯示在數(shù)碼管上。
圖2 邊界追蹤數(shù)字識別的三大主要核心模塊
如圖2 所示,以TFT屏的顯示時序為基準,首先進行邊界追蹤,識別數(shù)字邊界后,我們在邊界的基礎(chǔ)上進行統(tǒng)計特征的數(shù)字識別。
圖3 邊界追蹤模塊
如圖3 所示,hcount為列計數(shù)器,vcount為行計數(shù)器,TFT_VS_fall和TFT_VS_rise分別是幀下降沿標志和幀上升沿標志,frame_cnt為幀計數(shù)器,hcount_l和hcount_r分別是識別后數(shù)字的左右邊界,vcount_l和vcount_r分別是數(shù)字的上下邊界。Th_flag_fall和th_flag_rise分別是灰度圖像閾值后的下降沿和上升沿標志。
圖4 數(shù)字識別模塊
如圖4 所示基本的邊界信息均來自數(shù)字邊界識別模塊,數(shù)字識別模塊主要的到數(shù)字統(tǒng)計學(xué)的兩橫一豎(x1,x2,y)與數(shù)字的交點信息,以及其他補充信息。
部分核心代碼:
/*
Module name: digital_recognition.v
Description: digital recognition
Data: 2018/04/17
Engineer: lipu
e-mail: 137194782@qq.com
微信公眾號: FPGA開源工作室
*/
數(shù)字識別x1 ,x2,y核心代碼:
TFT顯示屏顯示代碼:
數(shù)字識別與數(shù)碼管顯示對接代碼:
結(jié)果展示
圖5 實驗原圖
圖6 邊界跟蹤數(shù)字識別6
圖7 邊界跟蹤數(shù)字識別7
圖8 邊界跟蹤數(shù)字識別4
圖9 邊界跟蹤數(shù)字識別5
展望
基于機器視覺的識別是走向人工智能的必然之路,字符的識別就是這條路的敲門磚。本次實驗的結(jié)果完成了無論數(shù)字大小,數(shù)字在屏幕中的位置均可正確識別?;诖?,可以開發(fā)人臉位置識別,人臉模板匹配識別,車牌識別等現(xiàn)如今比較火的機器視覺,人工智能等。