1. 程式人生 > >關於車牌識別的工作原理和技術引數

關於車牌識別的工作原理和技術引數

綜合網上上各種車牌識別方法,總結出一個較為簡單的車牌識別方案,採用VS2013+OpenCv2.4.9實現。並且附上可執行的原始碼以及測試圖片和視訊,詳細引數設定請參照原始碼。識別部分的訓練樣本見我上傳的資源。

實現方法

(一) 檢測車輛(基於混合高斯模型的背景差分法)

  1. 讀取視訊(avi格式),選定目標區域框用於檢測車輛

  2. 檢測車輛,基於混合高斯模型的背景差分法檢測前景,經過腐蝕、膨脹後,若畫素值大於200的畫素點數大於80000且上一幀畫素點數小於80000,則視為檢測出車輛並儲存改區域的圖片

(二) 檢測車牌區域(基於HSV顏色空間+形態學方法)

  1. 車牌粗定位

(1) 改變圖片尺寸(480´320)得到resizeimg

(2) 轉換為HSV空間,並在HSV空間直方圖均衡化

(3) 在HSV空間檢測藍色區域,範圍為(100,90,80)—(130,255,255),得到blueimg

(4) 對blueimg進行膨脹運算、開運算得到image1

(5) 對resizeimg灰度化

(6) 進行直方圖均衡化

(7)中值濾波

(8)Canny運算元邊緣檢測

(9)進行開運算、閉運算得到image2

(10)對HSV空間檢測藍色分量的image1和邊緣檢測得到的image2進行按位與得到andimage

(11)對andimage進行膨脹運算

(12)尋找最大連通域

(13)圈出最大連通域所在的矩形區域並切割得到ROIimage

  1. 車牌精確定位

(1)對ROIimage轉換藍色空間並均衡化

(2)檢測藍色區域,範圍為(100,90,90)—(140,255,255)

(3)框出非零點集所在的最大矩形區域並切割得到roimage

(4)Canny運算元檢測roimage並利用hough變換進行水平傾斜校正得到houghimage

(5)對houghimage進行灰度化、二值化(浙大張引二值化)

(6)對二值化車牌水平方向統計黑白跳變次數

(7)從車牌中間向上下搜尋,若跳變次數小於14,設定為上下邊界並切割,得到jingqueimage

(三) 車牌字元切割(投影法)

1.對對車牌進行垂直投影,求垂直方向投影平均值mean,設定投影特徵值TZ=0.63´mean

2.先從第三個字元開始切割,選擇車牌寬度的0.3倍處作為起始點,向右尋找大於TZ的點作為上升點,從上升點向左搜尋投影值等於0的點作為字元起點,尋找上升點後下一個等於0的點作為終點,切割出該部分,對該部分擴充調整其寬高比為0.5,對其歸一化16*32,二值化得到字元

3.第四個到第七個字元的切割方法與第三個字元相同

  1. 切割第二個字元,選擇車牌寬度的0.35處作為起始點,向左尋找大於特徵值的點作為上升點,從上升點向左搜尋投影值等於0的點作為字元起點,尋找上升點左邊下一個等於0的點作為終點,切割出該部分,對該部分擴充調整其寬高比為0.5,對其歸一化16´32,二值化得到字元

  2. 切割第一個字元,切割方法同第二個字元。求後六個字元的寬度平均值,若切割出字元寬度小於平均值的0.8倍,則重新尋找下一個為零的波谷作為終點,切割出該部分。對該部分擴充調整其寬高比為0.5,對其歸一化16´32,二值化得到字元

(四) 車牌識別(BP神經網路)

  1. 漢字識別

(1)網路層數:輸入層:560 隱含層:132 輸出層:31

(2)啟用函式:Sigmoid函式

(3)神經網路的訓練引數:

a) 最大迭代次數:10000

b)誤差最小值:0.001

c) 權值更新率:0.07

d) 權值更新衝量:0.07

(4)輸入樣本:

a) 特徵提取:512個畫素點+32個水平投影值+16個豎直投影值共560維

b) 訓練樣本數:所有省份樣本共1195個

(5) 輸出結果:輸出層共31個,如“京”:0.9,,0.1……0.1,選取輸出的31個值的最大的值為識別結果

(6) 對漢字識別:提取特徵並進行預測,輸出省份

  1. 字母識別

(1)網路層數:輸入層:560 隱含層:117 輸出層:24

(2)啟用函式:Sigmoid函式

(3)神經網路的訓練引數:

a) 最大迭代次數:30000

b) 誤差最小值:0.001

c) 權值更新率:0.07

d) 權值更新衝量:0.07

(4)輸入樣本:

a) 特徵提取:512個畫素點+32個水平投影值+16個豎直投影值共560維

b) 訓練樣本數:所有省份樣本共1200個

(5)輸出結果:輸出層共24個,如“A”:0.9,,0.1……0.1,選取輸出的24個值的最大的值為識別結果

(6) 對字母識別:提取特徵並進行預測,輸出字母

  1. 字母和數字識別

(1)網路層數:輸入層:560 隱含層:139 輸出層:34

(2)啟用函式:Sigmoid函式

(3)神經網路的訓練引數:

a) 最大迭代次數:30000

b) 誤差最小值:0.001

c) 權值更新率:0.06

d) 權值更新衝量:0.06

(4)輸入樣本:

a) 特徵提取:512個畫素點+32個水平投影值+16個豎直投影值共560維

b) 訓練樣本數:所有省份樣本共5100個

(5)輸出結果:輸出層共34個,如“A”:0.9,,0.1……0.1,選取輸出的34個值的最大的值為識別結果

(6)對字母和數字識別:提取特徵並進行預測,輸出字母

總結

採用基於視訊檢測的車牌識別系統,測試的場合是小區門禁處靜止攝像機,實現對行駛的車輛進行車牌識別。從功能劃分可以分為三塊,車輛的視訊檢測、車牌的定位和車牌字元的分割與識別。

由於交通場景的複雜性和多樣性,本設計有許多值得進一步研究的地方,主要有以下幾個方面:

  1. 本設計的計算速度較慢,尚未能滿足實時性的要求。

  2. 在車牌定位模組,對於擷取圖片中的車輛的距離有一定要求,車輛佔比區域太大會造成車牌定位不準的情況。

  3. 在字元分割模組,基於大多車牌字元都沒有粘連,本設計採用的投影法。對於字元粘連的車牌會出現分割錯誤。

  4. 在字元識別模組,由於漢字神經網路樣本不足和特徵提取不太理想,造成漢字識別率較低。

關於車牌識別的工作原理和技術引數

關於車牌識別的工作原理和技術引數
作者:平大安,歡迎百度搜索“ocr識別平大安”/“車牌識別平大安”聯絡調取介面測試。