本發明屬于圖像處理及模式識別技術領域,特別涉及一種基于深度卷積神經網絡的車牌識別方法。
背景技術:
車牌識別技術是現代智能交通系統中的關鍵技術,在日常生活中得到了廣泛的應用,當今深度學習已經成為了計算機模式識別領域研究的熱門,利用深度學習算法能夠提升車牌識別的識別率,對提升車牌識別系統的魯棒性具有重要的意義。
現有技術中的車牌識別方法在惡劣天氣下、晚上、角度過于傾斜的情況下對車牌的識別率依然不高,字符模糊影響到了特征提取,特殊字符識別容易混淆,如8與B、2與Z、0與D、5與S等,因此亟需提出一種當車牌字符處在惡劣環境下提升車牌字符的識別率和魯棒性的車牌識別方法。
技術實現要素:
本發明為了克服上述現有技術的不足,提供了一種基于深度卷積神經網絡的車牌識別方法,本發明能夠提高車牌識別的準確率,而且當車牌字符處在惡劣環境下能夠提升車牌字符的識別率和魯棒性。
為實現上述目的,本發明采用了以下技術措施:
一種基于深度卷積神經網絡的車牌識別方法,包括以下步驟:
S1、對車輛圖像進行車牌檢測得到車牌;
S2、將已檢測的車牌進行圖像分割得到車牌字符,將所述車牌字符作為訓練樣本;
S3、對所述訓練樣本進行隨機采樣得到訓練樣本塊集,將所述訓練樣本塊集輸入至深度自編碼器來實現訓練深度自編碼器;
S4、將經過訓練的深度自編碼器作為卷積神經網絡的卷積核,提取所述訓練樣本塊集的卷積特征,再對訓練樣本塊集的卷積特征進行池化操作,得到所述訓練樣本塊集的特征向量;
S5、對所述訓練樣本塊集的特征向量進行歸一化處理,將歸一化處理的訓練樣本塊集的特征向量送入SVM分類器來實現訓練SVM分類器;
S6、對待識別車輛進行識別。
優選的,采用adaboost方法對車輛圖像進行車牌檢測得到車牌。
優選的,所述車牌檢測具體包括以下步驟:
S11、對車輛圖像進行預處理;
S12、再提取車牌的Haar特征,然后訓練adaboost級聯分類器;
S13、采用所述adaboost級聯分類器進行車牌檢測。
優選的,所述訓練深度自編碼器具體包括以下步驟:
S31、預訓練:設計具備四個隱層的深度自編碼器,四個隱層的隱藏節點分別為200、200、100、50;
S311、利用前向傳導計算公式,求卷積神經網絡中四個隱層以及輸入層的激活值;
S312、計算卷積神經網絡的輸出層即為第ni層中每一個輸出單元i的殘差,其計算公式如下:
其中,J(W,b;x,y)為訓練樣本(x,y)的損失函數,hW,b(x)為恒等函數,為第i輸入單元總的加權和,W為權重,b為偏置項,yi為第i個樣本的縱坐標,為第i個單元ni的激活值,為第ni層第i輸入單元總的加權和;
S313、利用第l+1層即為卷積神經網絡中四個隱層、輸入層以及輸出層的殘差計算第l層的殘差,其計算公式如下:
其中,為第l層的權值,為第l+1的殘差,sl+1為第l+1層的節點數,為第nl層第i輸入單元總的加權和;
S314、計算J(W,b;x,y)的偏導數,其計算公式如下:
為第l層第i個單元與第j個單元的連接權值,為第l層第j個單元的激活值,為第l層第i個單元的偏置項;
S315、采用梯度下降法對參數W和b進行迭代更新,將卷積神經網絡中四個隱層、輸入層以及輸出層采用正態分布將參數W和b初始化為接近0的數值;
S316、對于i=1到m,使用反向傳播算法計算和再利用和計算出和
S317、更新權重參數:
為第l層J(W,b;x,y)對W的偏導數,為第l層J(W,b;x,y)對b的偏導數,α為學習速率,m為訓練樣本的個數,W(l)為第l層的權值,ΔW(l)為第l層J(W,b;x,y)對W的偏導的增量,λ為特征值,b(l)為第l層的偏置,Δb(l)為第l層J(W,b;x,y)對b偏導的增量;
S318、重復步驟S311~S317操作,求出損失函數J(W,b)的最小值,解出接近最優的卷積神經網絡模型;
S32、微調:對所述深度自編碼器的所有參數進行二次調整,具體步驟如下:
S321、使用前向傳播計算層即為四個隱層、輸入層以及輸出層的激勵響應;
S322、對輸出層nl層,令
S323、對于l=nl-1,nl-2,nl-3,...,2,令σ(l)=((W(l))Tσ(l+1))·f'(z(l))
為代價函數的導數,z(l)為l層的加權和;
S324、計算所需要的偏導數:
S325、更新權重參數:
S326、重復步驟S321~S325操作,進一步優化卷積神經網絡參數,得到最優化的卷積神經網絡模型。
進一步的,所述訓練SVM分類器具體包括以下步驟:
S51、將所述訓練樣本塊集的特征向量進行歸一化處理;
S52、根據選定的線性核函數分別計算每個SVM分類器中的特征向量的特征相關值;
S53、根據所述特征相關值計算協方差矩陣空間;
S54、對所述協方差矩陣空間進行HouseHolder變換;
S55、計算SVM分類器的特征系數;
S56、獲取SVM分類器的模型參數。
進一步的,步驟S6的具體操作步驟包括:
S61、對待識別車輛圖像進行車牌檢測;
S62、將已檢測的車牌進行圖像分割得到測試車牌字符,將所述測試車牌字符作為測試樣本;
S63、將所述測試樣本塊集輸入至卷積神經網絡;
S64、利用經過訓練的深度自編碼器提取所述測試樣本塊集的卷積特征,并對測試樣本塊集的卷積特征進行池化操作,得到特征向量;
S65、將所述特征向量送入經過訓練的SVM分類器得到車牌識別結果。
更進一步的,所述預處理依次包括采用直方圖處理、高斯濾波算法處理。
本發明的有益效果在于:
1)、本發明通過訓練深度自編碼器和SVM分類器來對待識別的車輛進行檢測,與現有技術相比大大提高了車牌識別的準確率,而且當車牌字符處在惡劣環境下能夠提升車牌字符的識別率和魯棒性。
2)、所述訓練深度自編碼器具體包括預訓練和微調兩個階段,在預訓練的過程中設計具備四個隱層的深度自編碼器,四個隱層的隱藏節點分別為200、200、100、50,設計特定的隱藏節點大大降低了本發明的訓練時間,增強了車牌識別的準確率。
附圖說明
圖1為本發明的原理圖;
圖2為本發明的流程圖;
圖3為本發明的訓練SVM分類器的流程圖;
圖4為本發明的對待識別車輛進行測試的流程圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
如圖1、2所示,一種基于深度卷積神經網絡的車牌識別方法,包括以下步驟:
S1、對車輛圖像進行車牌檢測得到車牌;
S2、將已檢測的車牌進行圖像分割得到車牌字符,將所述車牌字符作為訓練樣本;
S3、對所述訓練樣本進行隨機采樣得到訓練樣本塊集,將所述訓練樣本塊集輸入至深度自編碼器來實現訓練深度自編碼器;
S4、將經過訓練的深度自編碼器作為卷積神經網絡的卷積核,提取所述訓練樣本塊集的卷積特征,再對訓練樣本塊集的卷積特征進行池化操作,得到所述訓練樣本塊集的特征向量;
S5、對所述訓練樣本塊集的特征向量進行歸一化處理,將歸一化處理的訓練樣本塊集的特征向量送入SVM分類器來實現訓練SVM分類器;
S6、對待識別車輛進行識別。
采用adaboost方法對車輛圖像進行車牌檢測得到車牌。
所述車牌檢測具體包括以下步驟:
S11、對車輛圖像進行預處理;
S12、再提取車牌的Haar特征,然后訓練adaboost級聯分類器;
S13、采用所述adaboost級聯分類器進行車牌檢測。
所述預處理依次包括采用直方圖處理、高斯濾波算法處理。
對海量的車輛圖像進行預處理,將車牌統一像素大小至28×18,選擇車輛圖像的正樣本10000張,反樣本15000張,對車輛圖像進行直方圖處理消除光照影響,采用高斯濾波算法處理消除噪聲影響,提取車牌的Haar特征,訓練adaboost級聯分類器,將已檢測的車牌進行圖像分割得到車牌字符,將所述車牌字符作為訓練樣本,將車牌字符像素大小統一至19×38。
所述訓練深度自編碼器具體包括以下步驟:
S31、預訓練:設計具備四個隱層的深度自編碼器,四個隱層的隱藏節點分別為200、200、100、50;;設計特定的隱藏節點大大降低了本發明的訓練時間,增強了車牌識別的準確率。
S311、利用前向傳導計算公式,求卷積神經網絡中四個隱層以及輸入層的激活值;
S312、計算卷積神經網絡的輸出層即為第ni層中每一個輸出單元i的殘差,其計算公式如下:
其中,J(W,b;x,y)為訓練樣本(x,y)的損失函數,hW,b(x)為恒等函數,為第i輸入單元總的加權和,W為權重,b為偏置項,yi為第i個樣本的縱坐標,為第i個單元ni的激活值,為第ni層第i輸入單元總的加權和;
S313、利用第l+1層即為卷積神經網絡中四個隱層、輸入層以及輸出層的殘差計算第l層的殘差,其計算公式如下:
其中,為第l層的權值,為第l+1的殘差,sl+1為第l+1層的節點數,為第nl層第i輸入單元總的加權和;
S314、計算J(W,b;x,y)的偏導數,其計算公式如下:
為第l層第i個單元與第j個單元的連接權值,為第l層第j個單元的激活值,為第l層第i個單元的偏置項;
S315、采用梯度下降法對參數W和b進行迭代更新,將卷積神經網絡中四個隱層、輸入層以及輸出層采用正態分布將參數W和b初始化為接近0的數值;
S316、對于i=1到m,使用反向傳播算法計算和再利用和計算出和
S317、更新權重參數:
為第l層J(W,b;x,y)對W的偏導數,為第l層J(W,b;x,y)對b的偏導數,α為學習速率,m為訓練樣本的個數,W(l)為第l層的權值,ΔW(l)為第l層J(W,b;x,y)對W的偏導的增量,λ為特征值,b(l)為第l層的偏置,Δb(l)為第l層J(W,b;x,y)對b偏導的增量;
S318、重復步驟S311~S317操作,求出損失函數J(W,b)的最小值,解出接近最優的卷積神經網絡模型;
S32、微調:對所述深度自編碼器的所有參數進行二次調整,具體步驟如下:
S321、使用前向傳播計算層即為四個隱層、輸入層以及輸出層的激勵響應;
S322、對輸出層nl層,令
S323、對于l=nl-1,nl-2,nl-3,...,2,令σ(l)=((W(l))Tσ(l+1))·f'(z(l))
為代價函數的導數,z(l)為l層的加權和;
S324、計算所需要的偏導數:
S325、更新權重參數:
S326、重復步驟S321~S325操作,進一步優化卷積神經網絡參數,得到最優化的卷積神經網絡模型。
如圖3所示,所述訓練SVM分類器具體包括以下步驟:
S51、將所述訓練樣本塊集的特征向量進行歸一化處理;
S52、根據選定的線性核函數分別計算每個SVM分類器中的特征向量的特征相關值;
S53、根據所述特征相關值計算協方差矩陣空間;
S54、對所述協方差矩陣空間進行HouseHolder變換;
S55、計算SVM分類器的特征系數;
S56、獲取SVM分類器的模型參數。
如圖1、4所示,對待識別車輛進行測試。
S61、對待識別車輛圖像進行車牌檢測;
S62、將已檢測的車牌進行圖像分割得到測試車牌字符,將所述測試車牌字符作為測試樣本;
S63、將所述測試樣本塊集輸入至卷積神經網絡;
S64、利用經過訓練的深度自編碼器提取所述測試樣本塊集的卷積特征,并對測試樣本塊集的卷積特征進行池化操作,得到特征向量;
S65、將所述特征向量送入經過訓練的SVM分類器得到車牌識別結果。
表一為在惡劣環境下,如下雨天或夜里通過不同車牌識別方法來識別車牌的識別率與時間效率的對比。
表一:
通過表一的測試結果可以看出,本發明所提出的基于深度卷積神經網絡的車牌識別方法在識別率與性能上均優于現有技術的其他方法,而且時間效率也相對較短,其應用有效并合理,大大提高了車牌識別的準確率,而且當車牌字符處在惡劣環境下能夠提升車牌字符的識別率和魯棒性,本發明所提出的方法具有較強的實用價值。