?(本系列只需要modelsim即可完成數字圖像的處理,每個工程都搭建了全自動化的仿真環境,只需要雙擊top_tb.bat文件就可以完成整個的仿真,大大降低了初學者的門檻!!!!如需要該系列的工程文件請關注知識星球:成工fpga,https://t.zsxq.com/DMeqH,關注即送200GB學習資料,鏈接已置頂!)
車牌識別終于要完成了,同時《閑庭信步使用圖像驗證平臺加速FPGA的開發》這個系列也要馬上結束了,成工看來,做工程簡單,寫文章倒是比較困難一下,特別是想把相關的知識和技巧寫出來能讓大家理解更加困難。由于時間的原因,成工有一些文章寫的有些粗糙,基本就是代碼和圖片的疊加。至于怎么才能做好一個系列的教程,成工也在思考和反思,后面的系列一定會有改進。
至于為什么要在別人工程的基礎上進行改進,首先是借鑒別人的思路,同時結合成工的這套圖像驗證平臺,來讓大家感受到確實可以加速FPGA的開發;同時增加自動化仿真的功能,中間的處理都可以通過保存圖片查看,加深大家對算法的理解;其次就是讀別人的工程,消化掉,再進行改進,花費的精力并不比從零開始設計工作量小,接手別人工作的朋友都應該感同身受。
言歸正傳,上篇我們對車牌的每個字符都完成了模版的匹配并得到模版的編號,其實知道模版的編號也就是知道匹配的內容了,我們把相關的數字,字母,漢字的字模事先保存好,編號順序和用來匹配的模版的順序一樣,就可以根據匹配模版的編號取出相應的字模來。
在\src\plate_add_gui文件夾下新建plate_add_gui.sv文件,文件中有相關字符的字模信息,這些也是大磊老師他們做好的,我們可以拿過來直接使用。
首先我們來定義一下字符顯示的顏色,字符顯示的位置,高度和寬度。
然后在相應的區域顯示相關的字符信息即可,顯示的方式就是根據字庫中字模的信息在相應的區域用黑白色顯示。
字符顯示區域顯示字符,其它區域還是原圖像數據。
在top文件中例化了plate_location,location_out,char_segmentation,char_sgm_out,char_recognization,char_recg_out,plate_add_gui等模塊,至此車牌識別的整個工程搭建完成。
在tb_image_sim文件的initial塊中,完成相關圖片的保存。
雙擊sim文件夾下的top_tb.bat文件,完成系統的自動化仿真。
完成四幅圖像的處理和保存,處理時間較長,modelsim的Transcript有如下的打印信息。
最后我們打開img/output文件夾,就可以看到相關的圖片。
這個車牌識別是正確的,并不是所有的車牌都能正確的識別,下面幾幅就是識別失敗的。所以該工程并不能直接在項目中使用,除非輸出的圖像完全符合要求。成工用這個實例是用來說明有了圖像驗證平臺可以加速FPGA的開發,特別是在沒有硬件的前提下,可以盡可能的把仿真過程中暴露出來的問題解決掉。