• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 智能交通:汽車車牌定位識別完整設計

    智能交通:汽車車牌定位識別完整設計

    作者: 時間:2017-06-04 來源:網絡 收藏

    本文引用地址:http://www.czjhyjcfj.com/article/201706/348708.htm

    1 摘要

    該項目要求基于完成算法。本項目擬充分發掘并行運算在圖像處理領域的優勢,實現基于Adboost算法的車牌檢測硬件架構,最終完成信息的實時輸出。

    2 系統原理和技術特點

    2.1 算法原理

    車牌定位算法的設計,分為離線訓練模塊和在線識別模塊如圖1所示,離線訓練模塊通過對大量正、負樣本的學習,形成一系列的弱分類器(典型特征),然后依據權重把這些弱分類器組合成強分類器,如圖2(a)所示。實際應用時,若干個強分類器構成如圖2(b)所示的Cascade結構,Cascade結構就像一個篩孔可變的篩子,開始的篩孔很大,使得大多數車牌都能通過,在此基礎上盡量拋棄反例,位置越靠后的篩孔越復雜,即包含越多的弱分類器,因而也具有更強的分類能力。在線檢測模塊通過離線訓練模塊訓練好的Cascade結構分類器,使用可以縮放的,在待識別圖片上進行多尺度的掃描,最后經過后續處理輸出識別結果(車牌位置信息)。在線檢測算法流程如圖3所示。首先檢測當前窗口,若未通過分類器則跳出;若通過所有分類器則判定為車牌,然后檢測下一窗口。掃描完當前圖像以后,放大檢測窗口,重新掃描。

    Adboost車牌定位算法基于由一組矩形構成,圖4所示就是幾種Haar特征,黑白矩形內像素的灰度加權和是該特征的特征值。積分圖表示其圖像中任意一點,都是原始圖像中行號和列號均小于該點的像素點像素值之和。利用積分圖可以快速計算矩形的灰度和,即Sum=P1 +P4-P2-P3,其中Pi是積分圖中矩形頂點對應的積分值。多個Haar特征組成一個分類器,多個分類器級聯可以提高檢測精度。

    通過對近30000車牌樣本的離線訓練,本實驗室已經得到能夠適應復雜環境的車牌特征(識別)庫,實現的Adboost車牌檢測算法在固定環境下拍照車輛圖像,車牌定位識別率可達99%。本次大賽將重點關注車牌Adaboost算法在線檢測的實現。

    圖1 AdaBoost車牌定位算法框圖

    (a)

    (b)

    圖2 (a)強分類器構造 (b)Cascade結構圖

    圖3 Adboost車牌定位算法流程圖

    (1) (2) (3)

    圖4(1)Harr特征 (2)積分圖 (3)灰度和

    2.2系統工作原理

    2.2.1 系統組成

    如圖5,整個系統由FPGA完成車牌定位算法,配合外圍的視頻A/D,D/A、存儲器等芯片,完成圖像的采集和定位標記與原始圖像地疊加輸出。

    圖5 車牌檢測系統

    圖6 基于FPGA的Adaboost車牌定位方案

    2.2.2 系統方案

    FPGA實現的Adaboost車牌定位方案如圖6所示:

    系統內I2C模塊通過I2C總線配置A/D芯片的寄存器,使得A/D芯片能夠正常工作。

    視頻輸入模塊接收A/D芯片輸出的Ycbcr格式的視頻數據,解碼并提取出圖像灰度數據后,將數據存到圖像RAM和幀存RAM中。

    車牌檢測模塊開始工作,讀取圖像RAM中內容,在被檢圖像中掃描是否包含車牌。車牌檢測模塊包括圖像讀取單元,流水線處理單元,分類器讀取單元和檢測單元。如果檢測到車牌,則將車牌信息存儲到檢測結果合并單元。

    車牌檢測模塊工作的同時,圖像縮放單元負責將存儲在幀存RAM中的圖像進行縮小,并存儲到圖像RAM中。

    交換處理對象,重復步驟3-4直到圖像縮小后的大小與掃描窗口相當。

    檢測結果合并單元合并圖像中檢測到的重復的車牌,減少冗余的窗口以及誤檢的車牌。

    繪制單元讀取合并后的車牌位置和大小信息,并在原始圖像中相應車牌位置繪制矩形標明。

    在步驟1-7的同時,視頻輸出模塊讀取幀存RAM中的圖像數據,并以VGA格式輸出至D/A芯片,顯示到顯示器上。

    重復以上步驟。

    2.2.3 功能模塊

    整個系統負責接收經過流水線計算得到的特征向量值,并根據這些值以及掃描窗口的平方積分和等信息判斷掃描窗口是否包含車牌。

    視頻輸入模塊:視頻輸入單元負責從A/D輸出端接收視頻數據,并將其中的有效像素提取出來,并產生正確的像素地址信息,保存到幀存中。

    視頻輸出單元:視頻輸出單元負責從幀存中讀出需要顯示的圖像,并按照VGA格式輸出至D/A芯片,最終顯示到顯示器上。

    圖像讀取單元:圖像讀取單元負責從幀存中讀出掃描窗口,完成列積分和平方積分。

    圖像縮放單元:利用掃描窗口檢測圖像時,只能檢測到與掃描窗口大小一致的車牌。圖像縮放單元用于將圖像縮小,使得同樣大小的掃描窗口能夠檢測原圖像中大于掃描窗口的窗口中是否含有車牌。

    繪制單元:在原始圖像上繪制車牌位置信息和車牌號碼信息。

    流水線處理單元:該流水線包括掃描窗口(存儲陣列)及特征向量兩條流水線,用于計算特征向量的特征值。

    結果合并單元:車牌檢測結果合并單元的作用就是將車牌區域周圍的多個合格掃描窗口合并為一個,并去除不包含車牌區域的偽掃描窗口。

    圖像RAM:用來保存從視頻采集模塊接收到的圖像數據和縮放以后的圖像數據。圖像RAM有兩個寫端口和一個讀端口,寫端口用于向RAM中寫入原始圖像數據和縮放以后的圖像數據;讀端口用于向后繼處理模塊輸出圖像數據。

    幀存RAM:用來保存從視頻采集模塊接收到的圖像數據、車牌位置信息和車牌號碼信息。

    Casecade_ROM:用來保存訓練得到的Adboost分類器數據(特征向量),包括Haar特征中矩形的位置、大小、權重、閾值、分類器閾值等信息。

    分類器讀取單元:它從分類器ROM中讀出分類器數據,向掃描窗口流水線提供矩形位置、大小、權重、閾值、分類器閾值等信息

    2.3 技術特點

    (1)基于Adboost算法的車牌檢測硬件架構設計;

    (2)針對640x480彩色圖像,定位時間40ms。

    (3)固定環境下,車牌定位識別率99%

    3. 技術路線

    本設計采用45x15的陣列架構,通過流水線可快速計算矩形灰度和。硬件結構如圖7所示。其中白色45x15個方塊表示當前檢測窗口的行積分,每個單元存放的是在當前所在的行中該像素點之前的像素值之和。橫線填充的方塊存放的是矩形位置數據和權重,豎線填充的方塊存放的是部分灰度和,這兩部分構成的特征矢量流水線每時鐘周期流動一次,而行積分陣列(白色方塊)構成的流水線僅在當前窗口檢測完畢流動一次,載入新的被檢數據。圖像數據和分類器數據分別保存在圖像RAM和分類器ROM當中。行積分邏輯由一個加法器和45個寄存器構成,每45個時鐘周期計算出一行像素的行積分,并輸出到檢測陣列。分類器檢測邏輯接收上一級計算出的矩形灰度和,計算其特征值和相似度,并累加所有的相似度,并與閾值進行比較,判斷是否通過該級分類器。掃描控制邏輯生成圖像RAM的讀地址,控制檢測窗口對當前圖像進行掃描,掃描完畢后,將當前圖像大小乘以3/4,重新掃描,直到被檢圖像與檢測窗口大小一致,則完成一幅圖像的檢測。

    圖7 基于Adboost的車牌檢測并行算法的架構

    更多關于智能交通的技術資訊,歡迎訪問 與非網智能交通技術專區



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 诏安县| 柳林县| 阿克苏市| 邵阳市| 通山县| 镇远县| 定陶县| 巴楚县| 句容市| 南城县| 东丽区| 贺兰县| 阿鲁科尔沁旗| 蒲江县| 手机| 岚皋县| 满洲里市| 宁武县| 台中市| 白银市| 鄄城县| 苏尼特左旗| 栾城县| 洱源县| 酉阳| 城固县| 屏东市| 商河县| 甘洛县| 嘉黎县| 崇信县| 左云县| 延寿县| 昌吉市| 万宁市| 海阳市| 阿拉善右旗| 鹿泉市| 定兴县| 安义县| 湘潭市|