基於FPGA:車牌識別應用的圖像後處理


前言

基於FPGA的圖像處理應用,雖然已經在絕大多數的高分辨率、高幀率的機器視覺產品中普及,但仍然很少有資料可以學習參考。而在圖像處理領域,其實也有已經非常成熟的理論和應用,市面上的圖書也比比皆是,但是我們依然很難找到能和FPGA碰撞出“火花”的好作品。——特權同學。

一、硬件選擇

1.開發板

在這裏插入圖片描述
開發板選擇Xilinx Spartan-7開發板,黑金打板一直以來比較紮實,正點原子的話容易燒板,但是外設器件多適合學習。想學習的話,可以選擇正點原子的開拓者,使用的芯片是Altera的EP4CE10芯片,想做項目的話一般推薦黑金的板,黑金的板一般都是外設器件、IO都少,但是適合做“專門”項目(這裏沒有打廣告,一點經驗之談,可能不對,歡迎指正)。
AC7050(核心板型號,下同)核心板,是基於 XILINX 公司的 Spartan 7 系列的XC7S50FGGA484 這款芯片開發的高性能核心板,具有高速,高帶寬,高容量等特點,適合高速數據通信,視頻圖像處理,高速數據採集等方面使用。同時這塊板有接近5萬邏輯門,適合做純FPGA項目。
在這裏插入圖片描述


2.攝像頭選擇

在這裏插入圖片描述
攝像頭選擇黑金的OV5640攝像頭,攝像頭的使用這裏就不做過多贅述。有個地方需要注意的是,攝像頭在使用的時候,經常會倒着放,這個時候顯示屏的畫面就需要調整,出現這個問題的時候搜索(ov5640攝像頭如何實現上下鏡像及左右翻轉)這篇文章閱讀就好看,只需修改幾個寄存器就可以完成鏡像操作。

3.顯示屏

在這裏插入圖片描述
選擇4.3寸顯示屏。

二、圖像處理步驟

我們以目前技術非常成熟且應用非常廣泛的車牌識別應用爲例,通過雷達等手段定位探測到有效距離範圍中有汽車通過時,圖像傳感器將觸發採集圖像用於後端的牌照識別。
進行車牌識別即圖像後處理的過程,如下圖所示,通常需要以下幾個步驟:
1、牌照定位,定位圖片中的每個字符分割出來;
2、牌照字符分割,把牌照中的每個字符分割出來;
3、牌照字符識別,對分割好的單個字符進行識別,最終組成牌照1號碼。
在這裏插入圖片描述




1.牌照定位

自然環境下,汽車圖像背景複雜、光照不均勻。如何在自然背景中準確地確定牌照區域是整個識別過程的關犍。首先對採集到的視頻圖像進行大範圍的相關搜索,找到符合汽車牌照特徵的若干區域作爲候選區,然後對這些候選區域做進一步分析、評判,最後選定一個最佳的區域作爲牌照區域,並將其從圖像中分離出來。

2.牌照字符分割

完成牌照區域的定位後,再將牌照區域分割成單個字符,然後進行識別。最常見的方法就是根據車牌投影、像素統計特徵對車牌圖像進行字符分割。它的基本原理是對車牌圖像進行逐列掃描,統計車牌字符的每列像素點個數,並得到投影圖,根據車牌字符像素統計特點(投影圖中的波峯或者波谷),把車牌分割成單個獨立的字符。

3.牌照字符識別

牌照字符識別方法主要有基於模板匹配的算法和基於人工神經網絡的算法。基於模板匹配的算法首先將分割後的字符二值化並將其大小縮放爲字符數據庫中模板的大小,然後與所有的模板進行匹配,選擇最佳的匹配作爲結果。基於人工神經網絡的算法有兩種:一種是先對字符進行特徵提取.然後用所獲得特徵來訓練神經網絡分配器;另一種是直接把圖像輸入網絡,由網絡自動實現特徵提取直至識別出結果。

總結

在這裏插入圖片描述
效果大致這樣,裏面還有一些點,有時間再做補充。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章