一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法
【專利摘要】本發(fā)明公開的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法包括分類器訓(xùn)練和字符識別兩個(gè)過程,分類器訓(xùn)練包括字符處理、分成漢字集和非漢字集以及建立Caffe架構(gòu)學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)、然后分別進(jìn)行訓(xùn)練得到相對應(yīng)的分類器,字符識別包括預(yù)先建立索引表并對抓取到的車牌圖像進(jìn)行處理,然后利用相對應(yīng)的分類器識別后再通過查索引表得到識別結(jié)果,按順序組合后即為車牌的最終識別結(jié)果。本發(fā)明的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法以基于Caffe架構(gòu)的深度學(xué)習(xí)為基礎(chǔ),解決了現(xiàn)有的車牌字符識別方法中對傾斜、斷裂、相近字符識別精度不高的問題,大大提高了對于車牌字符的識別精度。
【專利說明】
一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于圖像識別技術(shù)領(lǐng)域,具體涉及一種基于Caffe框架的深度學(xué)習(xí)車牌字 符識別方法。
【背景技術(shù)】
[0002] 車牌識別是現(xiàn)代智能交通系統(tǒng)的一個(gè)重要組成部分,在車輛收費(fèi)管理、出行時(shí)間 測量、公共停車場、機(jī)場、小區(qū)、港口等出入口車輛管理、闖紅燈違章車輛監(jiān)控、交通流量檢 測、交通控制與誘導(dǎo)、被盜車輛及特種車輛的鑒別等場合中發(fā)揮著重要作用。雖然對于車牌 識別技術(shù)己經(jīng)有較多的研究,但在自然場景中,由于天氣、光照、拍攝角度、拍攝地點(diǎn)以及磨 損變形等因素的影響,實(shí)時(shí)準(zhǔn)確的視頻車牌識別仍然面臨很大的挑戰(zhàn)。車牌識別系統(tǒng)包括 車牌定位、校正、字符分割和字符識別等步驟,其中車牌字符識別是整個(gè)車牌識別的最后環(huán) 節(jié),在車牌識別系統(tǒng)中起著至關(guān)重要的作用。
[0003] 常用的車牌字符識別方法有基于模板匹配的字符識別和基于神經(jīng)網(wǎng)絡(luò)的字符識 另IJ。由于斷裂、污染和噪聲等因素的影響,從實(shí)際拍攝的車牌圖像中分割的字符和模板差異 較大,從而造成模版匹配的車牌識別方法性能下降?;谏窠?jīng)網(wǎng)絡(luò)的字符識別方法的準(zhǔn)確 度依賴于選取的字符特征,常用的字符特征因?yàn)轸敯粜圆粔驈?qiáng)從而會影響車牌的識別率。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于提供一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法,解決 了現(xiàn)有的車牌識別方法存在的識別精度不高的問題。
[0005] 本發(fā)明所采用的技術(shù)方案是:一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法, 包括分類器訓(xùn)練以及字符識別兩個(gè)過程,
[0006] 其中,分類器訓(xùn)練的具體步驟如下:
[0007] 步驟1,對大量的樣本車牌圖像進(jìn)行車牌定位、車牌校正、二值化處理和字符分割 的預(yù)處理,得到分割出的二值化字符圖像集C_train,總共含有的樣本個(gè)數(shù)為隊(duì)_;
[0008] 步驟2,字符處理:對字符圖像集C_train中的各個(gè)字符圖像進(jìn)行中心化、切變校正 以及歸一化的處理,得到歸一化后的字符圖像
[0009] 步驟3,把字符圖像集C^train1^分成兩個(gè)子集,分別為漢字圖像集Cl_train和數(shù) 字及字母的非漢字圖像集C2_train;
[0010] 步驟4,建立兩種基于Caffe架構(gòu)的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),其中,一種為漢字網(wǎng)絡(luò)結(jié)構(gòu) DU,另一種為非漢字網(wǎng)絡(luò)結(jié)構(gòu)DL2;
[0011] 步驟5,利用步驟4建立的網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練分類器:把漢字圖像集Cl_train作為輸入, 代入漢字網(wǎng)絡(luò)結(jié)構(gòu)DU,訓(xùn)練得到漢字分類器DLC 1;把非漢字圖像集C2_train作為輸入,代入 非漢字網(wǎng)絡(luò)結(jié)構(gòu)DL2,訓(xùn)練得到非漢字分類器DLC 2;
[0012] 字符識別的具體步驟如下:
[0013] 步驟6,預(yù)先建立漢字索引表TabjP非漢字索引表Tab2,然后對抓拍視頻流中每幀 圖像定位的各個(gè)車牌圖像進(jìn)行步驟1的預(yù)處理,得到待識別各個(gè)車牌圖像的字符樣本集c,c ={C1,C2,···~,···〇?},其中cm為車牌中的第m個(gè)字符,1彡m彡M,M為單個(gè)車牌包含的字符總個(gè) 數(shù);
[0014] 步驟7,對字符樣本集C中的各個(gè)字符(^經(jīng)由步驟2的處理,得到歸一化后的車牌字 付咖 .;
[0015] 步驟8,對車牌各個(gè)字符分別進(jìn)行識別:
[0016] 根據(jù)字符所在位置進(jìn)行字符類型判斷,如果是第一個(gè)字符,即為漢字字符,否則為 非漢字字符,把漢字字符代入漢字分類器DL&,輸出結(jié)果為漢字的類別索引/1;〔,其中d = 0, 1,…,他-1,m= 1,見為漢字的類別數(shù),查找對應(yīng)的漢字索引表Tah得到漢字的識別結(jié)果Rm,m =1;把非漢字字符代入非漢字分類器DLC2,輸出結(jié)果為非漢字的類別索引/2;!,其中d = 0, 1,…,N2-l,m = 2,3,…,M,NA非漢字字符的類別數(shù),查找非漢字索引表Tab:^別得到非漢 字字符的識別結(jié)果1,111 = 2,3,一,,按順序合并各個(gè)字符的識別結(jié)果,得到車牌的識別結(jié) 果RP,RP = U Rm,其中m=l,2,…,M。
[0017]本發(fā)明的特點(diǎn)還在于,
[0018]步驟2字符處理的具體步驟如下:
[0019]步驟2.1,對字符集(:_杜&111中的每一個(gè)字符進(jìn)行幾何投影,分別得到其垂直投影 寬度,計(jì)算投影寬度和字符標(biāo)準(zhǔn)寬度的差值,根據(jù)差值的取值對字符是否需要進(jìn)行中心化 處理進(jìn)行判斷,若需要,則進(jìn)行中心化處理;若不需要,不做任何處理,最終得到字符圖像集 C_traincen;
[0020] 步驟2.2JiC_traineen中的每個(gè)車牌字符進(jìn)行投影寬度最小化的切變校正,得到 切變校正后的字符圖像集C_tra in?1;
[0021] 步驟2.3,將切變校正后的字符圖像集ttrair^a中的字符按1:2的寬高比進(jìn)行大 小歸一化,得到歸一化的字符圖像集C_tra in1^,其中每個(gè)字符的大小為w X h。
[0022]步驟2.1中判斷字符是否中心化以及中心化的處理方法按照以下步驟實(shí)施:
[0023]①對對字符集C_train中的各個(gè)字符圖像train」進(jìn)行垂直投影得到投影圖像,其 中」= 1,2,3···Ν_,對投影圖像按列進(jìn)行統(tǒng)計(jì),得到每一列的關(guān)鍵點(diǎn)個(gè)數(shù),即值為255的像素 點(diǎn)個(gè)數(shù),記為Si,i = l,2,…,wj,其中wj為字符train」的寬度;
[0024]②從投影圖像的最左端開始向中間移動,找到第一個(gè)不為,其列號i作為左 邊界值B/;同理,從投影圖像的最右端開始向中間移動,找到第一個(gè)不為,其列號i作 為右邊界值B/;
[0025]③計(jì)算是否進(jìn)行中心化的判斷閾值TJ:
[0026]
[0027]④若L = 0,則不需要中心化處理;否則進(jìn)行中心化處理,即,若乃>0,則把字符圖像 train」中值為255的像素點(diǎn)向左平移Tj個(gè)單位;若Tj〈0,則把字符圖像train」中值為255的像 素點(diǎn)向右平移Tj個(gè)單位。
[0028]步驟2.2中對中心化后的字符圖像集C_traineen進(jìn)行切變校正的方法具體按照以 下步驟實(shí)施:
[0029] ①設(shè)置初始值:角度變化范圍為[0s,0e],最小投影寬度wid=WID_MIN,旋轉(zhuǎn)角度初 始值Θ = 9S,最佳旋轉(zhuǎn)角度初始值9ba = Θ,角度增量
ppyi
[0030] ②對字符圖像中的字符樣本j = 1,2,3,…Nsam旋轉(zhuǎn)Θ角度,旋 轉(zhuǎn)后經(jīng)由2.1中的步驟①、②處理,得到字符樣本的左右邊界值叫1和B/,確定其投影的寬度 值對,#| =^/ -S:/,判斷if是否小于Wid,若是,則令,θ嚴(yán)=0;若不是,繼續(xù)步驟 ③;
[0031] ③令當(dāng)前的旋轉(zhuǎn)角度Θ為步驟②中的旋轉(zhuǎn)角度Θ加角度增量△ Θ,并對當(dāng)前旋轉(zhuǎn)角 度Θ值進(jìn)行判斷,若θ<θ(3,則返回步驟②;若θ>θ(3,繼續(xù)步驟④;
[0032] ④根據(jù)0ba取值確定圖像所在的外接四邊形; abed
[0033] ⑤對四邊形J?. 進(jìn)行逆透視變換,得到校正后的字符圖像, J
,'其中Trans_Per( ·)為逆透視變換函數(shù)。
[0034]步驟4的建立兩種基于Caffe架構(gòu)的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)具體按照以下步驟實(shí)施: [0035]步驟4.1,建立深度學(xué)習(xí)漢字網(wǎng)絡(luò)結(jié)構(gòu)DL1:該網(wǎng)絡(luò)結(jié)構(gòu)輸入為車牌漢字圖像集,大 小為w X h X C,其中w X h為車牌漢字圖像的分辨率,C為通道值;輸出為車牌漢字類別索引的 集合,記為/Tl~l,其中見代表車牌漢字的種類數(shù);車牌漢字的網(wǎng)絡(luò)結(jié)構(gòu)的總層數(shù)為13,分別 由1個(gè)輸入層,2個(gè)卷積層,2個(gè)池化層,3個(gè)激活層,2個(gè)全連接層,1個(gè)softmax層,1個(gè)drop層 和1個(gè)輸出層連接而成,具體連接順序?yàn)?輸入-卷積-激活-池化-卷積-激活-池化-全連接-激活-drop-全連接-softmax-輸出;
[0036]步驟4.2,建立深度學(xué)習(xí)字母與數(shù)字的網(wǎng)絡(luò)結(jié)構(gòu)DL2:該網(wǎng)絡(luò)結(jié)構(gòu)輸入為車牌非漢 字圖像集,大小為w X h X C,其中w X h為車牌漢字圖像的分辨率,C為通道值;輸出為車牌非 漢字類別索引的集合,記為V2 ,其中N2代表車牌非漢字的種類數(shù);車牌非漢字的網(wǎng)絡(luò)結(jié) 構(gòu)的總層數(shù)為10,分別由1個(gè)輸入層,2個(gè)卷積層,2個(gè)池化層,1個(gè)激活層,2個(gè)全連接層,1個(gè) softmax層,1個(gè)輸出層連接而成,具體連接順序?yàn)?輸入-卷積-池化-卷積-池化-全連接-激 活-全連接-sof tmax-輸出。
[0037] 步驟5中訓(xùn)練分類器的方法具體按照如下步驟:
[0038] ①選擇訓(xùn)練數(shù)據(jù):以漢字圖像集Cl_train作為訓(xùn)練漢字字符分類器的數(shù)據(jù)集,以 非漢字圖像集C2_train作為訓(xùn)練非漢字字符分類器的數(shù)據(jù)集;
[0039]②設(shè)置樣本標(biāo)簽:漢字類別總共為見類,類別標(biāo)簽號0~見_1;非漢字的類別總共為 N2類,類別標(biāo)簽號為0~N2-l,分別制作漢字標(biāo)簽文件Labi,非漢字標(biāo)簽文件Lab2,標(biāo)簽文件 的內(nèi)容包括漢字圖像集Cl_train和非漢字圖像集C2_train里每個(gè)字符樣本所存的路徑以 及對應(yīng)類別標(biāo)簽號;
[0040]③利用Caffe架構(gòu),把漢字圖像集Cl_train轉(zhuǎn)化為數(shù)據(jù)庫DBi,把將非漢字圖像集 轉(zhuǎn)化為數(shù)據(jù)庫DB2;
[0041 ]④把網(wǎng)絡(luò)結(jié)構(gòu)、數(shù)據(jù)庫DBjPDB2、漢字標(biāo)簽文件Labi和非漢字標(biāo)簽文件Lab2的所在 路徑存入Caffe配置文件;
[0042]⑤設(shè)置訓(xùn)練參數(shù)存入Caff e配置文件;
[0043]⑥在Caffe架構(gòu)下完成訓(xùn)練,利用數(shù)據(jù)庫DB!、漢字標(biāo)簽文件LabjP漢字網(wǎng)絡(luò)結(jié)構(gòu) DLdjll練生成漢字分類器DLC1;利用數(shù)據(jù)庫DB2、非漢字
[0044] 標(biāo)簽文件Lab2和非漢字網(wǎng)絡(luò)結(jié)構(gòu)DL2訓(xùn)練生成數(shù)字及字母分類器DLC2。
[0045]本發(fā)明的有益效果是:本發(fā)明一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法 以基于Caffe架構(gòu)的深度學(xué)習(xí)為基礎(chǔ),解決了現(xiàn)有的車牌字符識別方法中特征需要人為定 義、對傾斜、斷裂、相近字符識別精度不高的問題,大大提高了對于車牌字符的識別精度。
【附圖說明】
[0046]圖1是本發(fā)明的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法的流程示意圖; [0047]圖2是本發(fā)明的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法中字符圖像處 理的流程示意圖;
[0048]圖3是本發(fā)明的一種基于Caff e框架的深度學(xué)習(xí)車牌字符識別方法中字符中心化 處理的流程示意圖;
[0049]圖4是本發(fā)明的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法中字符切變校 正的流程示意圖;
[0050] 圖5是本發(fā)明的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法中深度學(xué)習(xí)漢 字網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;
[0051] 圖6是本發(fā)明的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法中深度學(xué)習(xí)非 漢字網(wǎng)絡(luò)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0052]下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步的詳細(xì)說明,但本發(fā)明并不限于 這些實(shí)施方式。
[0053]本發(fā)明的一種基于Caffe架構(gòu)的深度學(xué)習(xí)車牌字符識別方法的流程示意圖如1所 示,其包括兩個(gè)步驟,
[0054]基于Caffe架構(gòu)的車牌字符的深度學(xué)習(xí)分類器訓(xùn)練過程主要包括以下步驟:
[0055] 步驟1:車牌漢字主要包括22個(gè)省、5個(gè)自治區(qū)、4個(gè)直轄市的簡稱,例如"京" "津" "冀""豫""鄂""皖""浙""蘇""湘""遼"等等,總共31類;非漢字主要包括字母A-Z(除1、0外) 共24類,數(shù)字0-9共10類,總共34類。本實(shí)施例中,為保證分類器的容錯(cuò)力,從不同角度、不同 距離上采集了 46100張樣本圖像。對這些車牌樣本圖像進(jìn)行車牌定位、車牌校正、二值化處 理和字符分割等預(yù)處理,具體可以采用一些經(jīng)典的算法,譬如基于顏色與邊緣的車牌定位、 基于hough變換的車牌校正、基于投影的字符分割等算法即可完成對樣本圖像的預(yù)處理得 到分割出的二值化字符圖像in,樣本個(gè)數(shù)Ν_=46100;
[0056] 步驟2:如圖2所示的字符處理:對字符圖像集C_train中的各個(gè)字符圖像進(jìn)行中心 化、切變校正以及歸一化處理,得到歸一化后的字符圖像
[0057] 其具體處理步驟如下:
[0058]步驟2.1,對字符集(:_杜&111中的每一個(gè)字符進(jìn)行幾何投影,得到垂直投影寬度,計(jì) 算投影寬度和字符標(biāo)準(zhǔn)寬度的差值,根據(jù)差值的取值對字符是否需要進(jìn)行中心化處理進(jìn)行 判斷,若需要,則進(jìn)行中心化處理;若不需要,不做任何處理,最終得到字符樣本集(:_ train^,其流程示意圖如圖3所示,具體處理步驟如下:
[0059]①對字符圖像集(:_1:抑;[11中的各個(gè)字符圖像train」,j = 1,2,3"_Nsam進(jìn)行垂直投影 得到投影圖像,對投影圖像按列進(jìn)行統(tǒng)計(jì),得到每一列的關(guān)鍵點(diǎn)個(gè)數(shù),即值為255的像素點(diǎn) 個(gè)數(shù),記為Si,i = l,2,…,wj,其中wj為字符train」的寬度;
[0060]②從投影圖像的最左端開始向中間移動,找到第一個(gè)不為,其列號i作為左 邊界值B/;同理,從投影圖像的最右端開始向中間移動,找到第一個(gè)不為,其列號i作 為右邊界值B/;
[0061 ]③計(jì)算是否進(jìn)行中心化的判斷閾值Tj:
[0062]
[0063] ⑷若Tj = 0,則小需要中心化處理;否則進(jìn)行中心化處理,即,若Tj>0,則把字符圖像 train」中值為255的像素點(diǎn)向左平移Tj個(gè)單位;若Tj〈0,則把字符圖像train」中值為255的像 素點(diǎn)向右平移Tj個(gè)單位;
[0064]步驟2.2JiC_traineen中的每個(gè)車牌字符進(jìn)行投影寬度最小化的切變校正,得到 校正后的字符圖像集Cjrain^,其流程示意圖如圖4所示,具體處理步驟如下:
[0065]①設(shè)置初始值:角度變化范圍為[0s,0e],最小投影寬度wid=WID_MIN,旋轉(zhuǎn)角度初 始值Θ = 9S,最佳旋轉(zhuǎn)角度初始值9ba= Θ,角度增量
,本實(shí)施例中,WID_MIN = 9999,Θ3 = -Ι〇,θ0=1〇,ηθ = 2〇;
[0066] ②對字符圖像中的字符樣本 轉(zhuǎn)后經(jīng)由2.1中的步驟①、②處理,得到字符樣本的左右邊界值和B/,計(jì)算投影寬度值 X = 5; -5卜判斷κ';是否小于…么若是,令u'W = n'f,0/?若不是,執(zhí)行步驟③;
[0067] ③令當(dāng)前的旋轉(zhuǎn)角度Θ為步驟②中的旋轉(zhuǎn)角度Θ加角度增量△ Θ,并對當(dāng)前旋轉(zhuǎn)角 度Θ值進(jìn)行判斷,若θ < ,則返回步驟②;若θ>θβ,執(zhí)行步驟④。 . , .cen abed
[0068] ④根據(jù)Θ%取值確定圖像~〃"·所在的外接四邊形;具體確定四邊形的步 J J 驟可以為:
[0069] a)根據(jù)得到的最佳角度Θ%擬合直線L:
('pfl
[0070] b)將字符樣本圖像&〃_?/的左邊界點(diǎn)(B/,0)代入直線L,求得四邊形的左邊線
[0071] c)將右邊界點(diǎn)(Β/,0)代入直線L,求得四邊形的右邊線Ud:
[0072]
[0073] 其中和/f2分別表示字符_'"^的寬度和高度; CPfi
[0074] d)將字符樣本圖像進(jìn)行水平投影得到水平投影圖像,對水平投影圖像按 行進(jìn)行統(tǒng)計(jì),從上向下遍歷投影圖像,找到關(guān)鍵點(diǎn)個(gè)數(shù)不為〇的首行和末行位置,分別記為 B/和Bjb,從而得到四邊形的上邊線Ltcip: y = Β/和下邊線Lbcit = Bjb;
[0075] e)求四條邊線的交點(diǎn)得到四邊形的四個(gè)端點(diǎn),分別記為a,b,c,d,校正前的四邊形 abed 記為~ ; abed
[0076] ⑤對四邊形i? . _進(jìn)行逆透視變換,得到校正后的字符圖像
,其中Trans_Per( ·)為逆透視變換函數(shù);
[0077]步驟2.3,對校正后的字符圖像集(:_^^11^中的字符按1:2的寬高比進(jìn)行大小歸 一化,得到歸一化的字符圖像集C_trainncn:,其中每個(gè)字符的大小為w X h,本實(shí)施例中,w = 20,h = 40;
[0078]步驟3:把字符圖像集C_trainnOT分成兩個(gè)互不相交的子集,分別為漢字圖像集Cl_ train和非漢字圖像集C2_train(其中包括數(shù)字和字母圖像集),其中漢字圖像樣本個(gè)數(shù)為 7100,非漢字圖像樣本個(gè)數(shù)為39000;
[0079] 步驟4:設(shè)計(jì)兩種基于Caff e架構(gòu)的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),一種是漢字網(wǎng)絡(luò)結(jié)構(gòu)DU, 另一種是非漢字網(wǎng)絡(luò)結(jié)構(gòu)DL2,具體按照以下步驟實(shí)施:
[0080] 步驟4.1,建立如圖5所示的深度學(xué)習(xí)漢字網(wǎng)絡(luò)結(jié)構(gòu)DU,該網(wǎng)絡(luò)結(jié)構(gòu)輸入為車牌漢 字圖像集,大小為w X h X C(w X h為車牌漢字圖像的分辨率,C為通道值,取值為1 ),輸出為車 牌漢字類別索引的集合,記為#1#1 s其中他代表車牌漢字的種類數(shù),具體取值為31。車牌漢 字的網(wǎng)絡(luò)結(jié)構(gòu)的總層數(shù)為13層,分別由1個(gè)輸入層,2個(gè)卷積層,2個(gè)池化層,3個(gè)激活層,2個(gè) 全連接層,1個(gè)softmax層,1個(gè)drop層,1個(gè)輸出層連接而成,具體連接順序?yàn)?輸入-卷積-激 活-池化-卷積-激活-池化-全連接-激活-drop-全連接-softmax-輸出。漢字網(wǎng)絡(luò)結(jié)構(gòu)中網(wǎng) 絡(luò)層的類別以及數(shù)目如表1所示,其中S為網(wǎng)絡(luò)層的類別,η為網(wǎng)絡(luò)層數(shù)目。
[0081]
[0082]表 1
[0083]漢字網(wǎng)絡(luò)層的連接順序如表2所示,其中S為網(wǎng)絡(luò)層的類別,ix為網(wǎng)絡(luò)層連接順序 編號。
[0084]
[0085] 表 2
[0086] 漢字網(wǎng)絡(luò)層通道值的設(shè)置如表如表3所示,其中ix為網(wǎng)絡(luò)層的連接順序編號,V為 網(wǎng)絡(luò)層的通道值。
[0087]
[0088] 表 3
[0089] 在具體實(shí)施例中,如圖5所示,輸入層是20X40Xl(w = 20,h = 40,C=l)大小的數(shù) 據(jù),在第一次卷積時(shí),采用的卷積模板大小為5 X 5(即kernel_w = kernel_h = 5),步長為1 (即Stride = l),通道值為16,卷積后的輸出數(shù)據(jù)大小為16X36X16。卷積后的輸出數(shù)據(jù)作 為激活層的輸入,激活層的輸出大小與輸入保持一致;在第一次池化時(shí),采用的模板大小為 2X2,步長為2,通道值為16,池化后數(shù)據(jù)大小為8X18X8。此時(shí)完成了第一次的卷積、激活 和第一次的池化操作;接著執(zhí)行第二次的卷積、激活和池化操作,其中的卷積模板大小、池 化模版大小和步長保持不變,通道數(shù)變?yōu)?2;再依次執(zhí)行全連接、激活、drop和全連接操作, 第一次全連接的輸入數(shù)據(jù)大小為32 X 7 X 2,輸出為480,激活層和drop層的輸入輸出數(shù)據(jù)大 小都為480,第二次全連接輸入數(shù)據(jù)大小為480,輸出數(shù)據(jù)大小為31;最后進(jìn)行softmax操作, 得到輸出結(jié)果,輸出結(jié)果大小為31。
[0090] 步驟4.2,建立如圖6所示的深度學(xué)習(xí)字母與數(shù)字的網(wǎng)絡(luò)結(jié)構(gòu)DL2,該網(wǎng)絡(luò)結(jié)構(gòu)輸入 為車牌非漢字圖像集,大小為w X h X C(w X h為車牌漢字圖像的分辨率,C為通道值,取值為 1),記為\,其中N2代表車牌非漢字的種類數(shù),取值為34。車牌非漢字的網(wǎng)絡(luò)結(jié)構(gòu)總共有 10層,分別由1個(gè)輸入層,2個(gè)卷積層,2個(gè)池化層,1個(gè)激活層,2個(gè)全連接層,1個(gè)softmax層,1 個(gè)輸出層連接而成,具體連接順序?yàn)?輸入-卷積-池化-卷積-池化-全連接-激活-全連接-softmax-輸出。非漢字網(wǎng)絡(luò)結(jié)構(gòu)中網(wǎng)絡(luò)層的類別以及數(shù)目如表4所示,其中S為網(wǎng)絡(luò)層的類 別,η為網(wǎng)絡(luò)層數(shù)目。
[0091]
[uuyz」 衣4
[0093]非漢字網(wǎng)絡(luò)層連接順序如表5所示,其中S為網(wǎng)絡(luò)層的類別,ix為網(wǎng)絡(luò)層的連接順 序編號。
[0094]
[0095] 表 5
[0096] 非漢字網(wǎng)絡(luò)層的通道值設(shè)置如表6所示,其中ix為網(wǎng)絡(luò)層的連接順序編號,V為網(wǎng) 絡(luò)層的通道值。
[0097]
[0098] 表 6
[0099] 在具體實(shí)施例中,如圖6所示,輸入層是20*40*1 (w = 20,h = 40,C=l)大小的數(shù)據(jù), 在第一次卷積時(shí),采用的卷積模板大小為5\5(即1^1'1161_'\¥ = 1^1'1161_11 = 5),步長為1(即 Stride = l),通道值為20,卷積后的輸出數(shù)據(jù)大小為16X36X20。卷積后的輸出數(shù)據(jù)作為池 化層的輸入,在第一次池化時(shí),采用的模板大小為2X2,步長為2,通道值為20,池化后數(shù)據(jù) 大小為8X18X20。此時(shí)完成了第一次的卷積和第一次的池化操作;接著執(zhí)行第二次的卷積 和池化操作,其中的卷積模板大小、池化模版大小和步長保持不變,通道數(shù)變?yōu)?0;再依次 執(zhí)行全連接、激活和全連接操作,第一次全連接的輸入數(shù)據(jù)大小為50 X 7 X 2,輸出為500,激 活層的輸入和輸出數(shù)據(jù)大小都為500,第二次全連接輸入數(shù)據(jù)大小為500,輸出數(shù)據(jù)大小為 34;最后進(jìn)行softmax操作,得到輸出結(jié)果,輸出結(jié)果大小為34。
[0100]其中,卷積層主要通過卷積核抽取特征,每一個(gè)特征值都是取模板與原圖像對應(yīng) 像素的乘積之和。卷積的具體操作過程如表7所示:
[0101
[0102] 表7
[0103] 池化層主要通過下采樣減少卷積層的空間分辨率。在池化層的輸入中,每個(gè)不重 疊大小為r X r的區(qū)域視為一個(gè)池,常用的池操作為池平均(average-pool ing)操作或池最 大(max-pooling)操作。在具體的實(shí)施例中,選用的是2 X 2大小的區(qū)域以及池最大操作,輸 入數(shù)據(jù)經(jīng)過池化層處理后由原來的_ X nn變?yōu)槠渲衉 X nn池化層輸入數(shù)據(jù)的大 小,池化過程如表8所示:
[0104]
[0105] 表8
[0106] -個(gè)全連接由標(biāo)準(zhǔn)的兩層神經(jīng)網(wǎng)絡(luò)組成,第一個(gè)全連接層是把大小為50 X 7 X 2的 輸入數(shù)據(jù)作為700個(gè)輸入神經(jīng)元,把輸出神經(jīng)元的個(gè)數(shù)設(shè)置為500,構(gòu)成一個(gè)兩層的神經(jīng)網(wǎng) 絡(luò)。第二個(gè)全連接層是把大小為500的輸入數(shù)據(jù)作為500個(gè)輸入神經(jīng)元,把輸出神經(jīng)元的個(gè) 數(shù)設(shè)置為34,構(gòu)成一個(gè)兩層的神經(jīng)網(wǎng)絡(luò)。
[0107] 激活層是對輸入的數(shù)據(jù)進(jìn)行激活操作,即若每個(gè)數(shù)據(jù)元素符合條件,則數(shù)據(jù)被激 活,使其向下一層傳遞,否則的話則不被傳遞。
[0108] drop層是隨機(jī)對一些神經(jīng)元進(jìn)行抑制,使其處于未激活狀態(tài)。
[0109] softmax層主要是對全連接之后的數(shù)據(jù)進(jìn)行歸一化操作使其范圍必須在[0,1]之 間。
[0110] 步驟5:利用網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練分類器:
[0111] 把漢字圖像集Cl_train作為輸入,代入漢字網(wǎng)絡(luò)結(jié)構(gòu)DU,訓(xùn)練得到漢字分類器 DL&;把非漢字圖像集C2_train作為輸入,代入非漢字網(wǎng)絡(luò)結(jié)構(gòu)DL2,訓(xùn)練得到非漢字分類器 DLC2。具體按照以下步驟:
[0112] ①選擇訓(xùn)練數(shù)據(jù):以步驟3中的7100張漢字圖像集Cl_train作為訓(xùn)練漢字字符分 類器的數(shù)據(jù)集,以39000張非漢字圖像集C2_train(其中包括數(shù)字和字母圖像集)作為訓(xùn)練 非漢字字符分類器的數(shù)據(jù)集;
[0113]②設(shè)置樣本標(biāo)簽:漢字類別總共為見類,類別標(biāo)簽號0~見_1;而非漢字的類別總共 為他類,類別標(biāo)簽號為0~N2-l,在本實(shí)施例中,Ni = 31,N2 = 34。分別制作漢字標(biāo)簽文件Labi, 非漢字標(biāo)簽文件Lab2;標(biāo)簽文件的內(nèi)容包括圖像集(Cl_train和C2_train)里每個(gè)字符樣本 所存的路徑以及對應(yīng)類別標(biāo)簽號;
[0114] ③利用caf f e架構(gòu)下的命令語句sudo create_imagenet · sh把漢字圖像集Cl_ train轉(zhuǎn)化為數(shù)據(jù)庫DBi,把將非漢字圖像集轉(zhuǎn)化為數(shù)據(jù)庫DB2;
[0115] ④把網(wǎng)絡(luò)結(jié)構(gòu)、數(shù)據(jù)庫和標(biāo)簽文件的所在路徑寫入配置文件struct, prototxt;
[0116] ⑤設(shè)置訓(xùn)練參數(shù)并寫入配置文件solver · prototxt:主要包括訓(xùn)練中的基礎(chǔ)學(xué)習(xí) 率、學(xué)習(xí)率的調(diào)整策略、最大迭代次數(shù)等等,具體設(shè)置如表9所示:
[0117]
[0118]
[0119]表9
[0120] ⑥在Caffe架構(gòu)下調(diào)用命令語句完成訓(xùn)練· /build/tools/caffe train-solver =?/8〇1¥61'41'〇1:〇丨11:,利用數(shù)據(jù)庫0131、漢字樣本標(biāo)簽和漢字網(wǎng)絡(luò)結(jié)構(gòu)0]^1訓(xùn)練生成漢字分 類器DLC1;利用數(shù)據(jù)庫DB2、非漢字樣本標(biāo)簽和非漢字網(wǎng)絡(luò)結(jié)構(gòu)DLdll練生成非漢字分類器 DLC2〇
[0121] 車牌的漢字和非漢字分類器生成后,便可對車牌的字符進(jìn)行識別,其包括以下步 驟:
[0122] 步驟6:建立如表10所示的漢字索引表Tah和如表11所示的非漢字索引表Tab2,然 后對抓拍視頻流中每幀圖像定位的各個(gè)車牌圖像進(jìn)行步驟1的預(yù)處理,得到待識別各個(gè)車 牌圖像的字符樣本集Ck k = 1,2,…K,K為定位到的車牌個(gè)數(shù),Ck = {C1,c2,…cm},其中cm為車 牌Ck中的第m個(gè)字符,1彡m彡M,M為車牌Ck包含的字符總個(gè)數(shù),本實(shí)施例中M=7;
[0123] 步驟7:對字符樣本集C中的各個(gè)字符~經(jīng)由步驟2處理,得到歸一化后的車牌字符 jior . L· 9 m
[0124] 步驟8:對車牌各個(gè)字符進(jìn)行識別:
[0125] 根據(jù)字符所在位置進(jìn)行字符類型判斷,如果是第一個(gè)字符,即為漢字字符,否則為 非漢字字符。把漢字字符代入漢字深度學(xué)習(xí)分類器DL&,輸出結(jié)果為漢字的類別索引/1;!,其 中(1 = 0,1,-_,仏-1,111=1,仏為漢字的類別數(shù),取值為31,查找如表10所示的漢字索引表 Tab:,得到漢字的識別結(jié)果Rm,m=l。把非漢字字符代入非漢字分類器DLC2,輸出結(jié)果為非漢 字的類別索引 721,其中(1 = 0,1,···,Ν2-1,πι = 2,3,···,Μ,Ν2為非漢字的類別數(shù),這里取值34, 查找如表11所示的非漢字索引表Tab 2,得到非漢字字符的識別結(jié)果1,111=2,3,一,。合并各 個(gè)字符的識別結(jié)果,得到車牌的最終識別結(jié)果R P,RP=URm,m = 1,2,…,M。
[0126]
[0129] 表11
[0130] 在具體實(shí)施例中,選用了 1550張漢字字符圖像,用深度學(xué)習(xí)漢字分類器進(jìn)行識別, 識別結(jié)果如表12所示:
[0131]
[0132] 表12
[0133] 選用了3000張非漢字字符圖像,用深度學(xué)習(xí)非漢字分類器對其進(jìn)行識別,識別結(jié) 果如表13所;
[0134]
[0135] 表13
[0136] 從以上實(shí)驗(yàn)結(jié)果可以看出,利用深度學(xué)習(xí)訓(xùn)練的字符分類器對車牌字符具有很高 的識別精度。
[0137]
[0138] 表14
[0139] 另外,對定位分割后的352個(gè)車牌圖像,利用傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)字符識別方法與本 發(fā)明的識別方法分別進(jìn)行了實(shí)驗(yàn)驗(yàn)證,識別率的對比結(jié)果如表14所示,BP神經(jīng)網(wǎng)絡(luò)方法的 字符識別率為57.1%,本發(fā)明的字符識別率為90.62%。實(shí)驗(yàn)結(jié)果表明,相對傳統(tǒng)的BP神經(jīng) 網(wǎng)絡(luò)字符識別方法,本發(fā)明的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法能夠在很 大程度上提升車牌識別系統(tǒng)的性能。
【主權(quán)項(xiàng)】
1. 一種基于化ffe框架的深度學(xué)習(xí)車牌字符識別方法,其特征在于,包括分類器訓(xùn)練w 及字符識別兩個(gè)過程, 其中,分類器訓(xùn)練的具體步驟如下: 步驟1,對大量的樣本車牌圖像進(jìn)行車牌定位、車牌校正、二值化處理和字符分割的預(yù) 處理,得到分割出的二值化字符圖像集C_train,總共含有的樣本個(gè)數(shù)為化am; 步驟2,字符處理:對字符圖像集C_train中的各個(gè)字符圖像進(jìn)行中屯、化、切變校正W及 歸一化的處理,得到歸一化后的字符圖像集(:_付曰山。。^; 步驟3,把字符圖像集C_hainnw分成兩個(gè)子集,分別為漢字圖像集Cl_train和數(shù)字及 字母的非漢字圖像集C2_train; 步驟4,建立兩種基于化ffe架構(gòu)的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),其中,一種為漢字網(wǎng)絡(luò)結(jié)構(gòu)化1, 另一種為非漢字網(wǎng)絡(luò)結(jié)構(gòu)DL2; 步驟5,利用步驟4建立的網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練分類器:把漢字圖像集Cl_train作為輸入,代入 漢字網(wǎng)絡(luò)結(jié)構(gòu)化1,訓(xùn)練得到漢字分類器化Cl;把非漢字圖像集C2_train作為輸入,代入非漢 字網(wǎng)絡(luò)結(jié)構(gòu)化2,訓(xùn)練得到非漢字分類器化C2 ; 字符識別的具體步驟如下: 步驟6,預(yù)先建立漢字索引表Tabi和非漢字索引表化b2,然后對抓拍視頻流中每帖圖像 定位的各個(gè)車牌圖像進(jìn)行步驟1的預(yù)處理,得到待識別各個(gè)車牌圖像的字符樣本集C,C = kl,C2,…(3。,-'0|?},其中(3。為車牌中的第111個(gè)字符,1《111《1,1為單個(gè)車牌包含的字符總個(gè) 數(shù); 步驟7,對字符樣本集C中的各個(gè)字符Cm經(jīng)由步驟2的處理,得到歸一化后的車牌字符 (""/ · m ' 步驟8,對車牌各個(gè)字符<1,^分別進(jìn)行識別: 根據(jù)字符所在位置進(jìn)行字符類型判斷,如果是第一個(gè)字符,即為漢字字符,否則為非漢 字字符,把漢字字符代入漢字分類器化Cl,輸出結(jié)果為漢字的類別索引其中d = 0, 1,…,Ni-1,m= 1,化為漢字的類別數(shù),查找對應(yīng)的漢字索引表化bi得到漢字的識別結(jié)果Rm,m =1;把非漢字字符代入非漢字分類器化C2,輸出結(jié)果為非漢字的類別索引巧1,其中d = 0, 1,…,化-1,m = 2,3,…,M,化為非漢字字符的類別數(shù),查找非漢字索引表化b2分別得到非漢 字字符的識別結(jié)果3。,111 = 2,3,-',1,按順序合并各個(gè)字符的識別結(jié)果,得到車牌的識別結(jié) 果 Rp, Rp 二 URm,其中m 二 1,2,···,Μ。2. 如權(quán)利要求1所述的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法,其特征在 于,所述步驟2字符處理的具體步驟如下: 步驟2.1,對字符集C_hain中的每一個(gè)字符進(jìn)行幾何投影,分別得到其垂直投影寬度, 計(jì)算投影寬度和字符標(biāo)準(zhǔn)寬度的差值,根據(jù)差值的取值對字符是否需要進(jìn)行中屯、化處理進(jìn) 行判斷,若需要,則進(jìn)行中屯、化處理;若不需要,不做任何處理,最終得到字符圖像集(:_ tr 曰 inCen; 步驟2.2,對C_haineen中的每個(gè)車牌字符進(jìn)行投影寬度最小化的切變校正,得到切變 校正后的字符圖像集C_train?T; 步驟2.3,將切變校正后的字符圖像集C_hainWT中的字符按1:2的寬高比進(jìn)行大小歸 一化,得到歸一化的字符圖像集C_trainn°T,其中每個(gè)字符的大小為wXh。3. 如權(quán)利要求2所述的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法,其特征在 于,所述步驟2.1中判斷字符是否中屯、化W及中屯、化的處理方法按照W下步驟實(shí)施: ① 對對字符集C_train中的各個(gè)字符圖像trains進(jìn)行垂直投影得到投影圖像,其中j = 1,2,3-Nsa",對投影圖像按列進(jìn)行統(tǒng)計(jì),得到每一列的關(guān)鍵點(diǎn)個(gè)數(shù),即值為255的像素點(diǎn)個(gè) 數(shù),記為Si,i = 1,2,…,wj,其中wj為字符trainj的寬度; ② 從投影圖像的最左端開始向中間移動,找到第一個(gè)不為0的Si,其列號i作為左邊界值 Bji;同理,從投影圖像的最右端開始向中間移動,找到第一個(gè)不為0的Si,其列號i作為右邊 界值&T; ③ 計(jì)算是否進(jìn)行中屯、化的判斷闊值Tj:④ 若Tj = 0,則不需要中屯、化處理;否則進(jìn)行中屯、化處理,即,若T戶0,則把字符圖像 trainj中值為255的像素點(diǎn)向左平移Tj個(gè)單位;若Tj<0,則把字符圖像化ainj中值為255的像 素點(diǎn)向右平移Tj個(gè)單位。4. 如權(quán)利要求3所述的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法,其特征在 于,所述步驟2.2中對中屯、化后的字符圖像集C_traineen進(jìn)行切變校正的方法具體按照W下 步驟實(shí)施: ① 設(shè)置初始值:角度變化范圍為[9s,0e],最小投影寬度wid = WID_MIN,旋轉(zhuǎn)角度初始值 Θ = 0S,最佳旋轉(zhuǎn)角度初始值0ba= Θ,角度增量② 對字符圖像集(:_付曰山。6。中的字符樣本j二1,2,3,…扼。。旋轉(zhuǎn)目角度,旋轉(zhuǎn)后 經(jīng)由2.1中的步驟①、②處理,得到字符樣本的左右邊界值B/和B/,確定其投影的寬度值 <,vrf ,判斷W;是否小于wid,若是,則令、加= <,目/3 =目;若不是,繼續(xù)步驟③; ③ 令當(dāng)前的旋轉(zhuǎn)角度Θ為步驟②中的旋轉(zhuǎn)角度Θ加角度增量ΔΘ,并對當(dāng)前旋轉(zhuǎn)角度Θ值 進(jìn)行判斷,若則返回步驟②;若θ〉θ6,繼續(xù)步驟④; ④ 根據(jù)eba取值確定圖像immf所在的外接四邊形巧; ⑤ 對四邊形進(jìn)行逆透視變換,得到校正后的字符圖像化曲Γ,細(xì)。Γ=化謝-如.(C), 其中化ans_Per( ·)為逆透視變換函數(shù)。5. 如權(quán)利要求1所述的一種基于Caffe框架的深度學(xué)習(xí)車牌字符識別方法,其特征在 于,所述步驟4的建立兩種基于化ffe架構(gòu)的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)具體按照W下步驟實(shí)施: 步驟4.1,建立深度學(xué)習(xí)漢字網(wǎng)絡(luò)結(jié)構(gòu)化1:該網(wǎng)絡(luò)結(jié)構(gòu)輸入為車牌漢字圖像集,大小為W XhXC,其中wXh為車牌漢字圖像的分辨率,C為通道值;輸出為車牌漢字類別索引的集合, 記為其中化代表車牌漢字的種類數(shù);車牌漢字的網(wǎng)絡(luò)結(jié)構(gòu)的總層數(shù)為13,分別由1個(gè) 輸入層,2個(gè)卷積層,2個(gè)池化層,3個(gè)激活層,2個(gè)全連接層,1個(gè)softmax層,1個(gè)化op層和1個(gè) 輸出層連接而成,具體連接順序?yàn)?輸入-卷積-激活-池化-卷積-激活-池化-全連接-激活- 化op-全連接-softmax-輸出; 步驟4.2,建立深度學(xué)習(xí)字母與數(shù)字的網(wǎng)絡(luò)結(jié)構(gòu)化2:該網(wǎng)絡(luò)結(jié)構(gòu)輸入為車牌非漢字圖像 集,大小為wXhXC,其中wXh為車牌漢字圖像的分辨率,C為通道值;輸出為車牌非漢字類 別索引的集合,記為其中化代表車牌非漢字的種類數(shù);車牌非漢字的網(wǎng)絡(luò)結(jié)構(gòu)的總 層數(shù)為10,分別由1個(gè)輸入層,2個(gè)卷積層,2個(gè)池化層,1個(gè)激活層,2個(gè)全連接層,1個(gè)softmax 層,1個(gè)輸出層連接而成,具體連接順序?yàn)?輸入-卷積-池化-卷積-池化-全連接-激活-全連 接-sof tmax-輸出。6.如權(quán)利要求1或5所述的一種基于化ffe框架的深度學(xué)習(xí)車牌字符識別方法,其特征 在于,所述步驟5中訓(xùn)練分類器的方法具體按照如下步驟: ① 選擇訓(xùn)練數(shù)據(jù):W漢字圖像集Cl_train作為訓(xùn)練漢字字符分類器的數(shù)據(jù)集,W非漢 字圖像集C2_train作為訓(xùn)練非漢字字符分類器的數(shù)據(jù)集; ② 設(shè)置樣本標(biāo)簽:漢字類別總共為化類,類別標(biāo)簽號0~化-1;非漢字的類別總共為化 類,類別標(biāo)簽號為0~化-1,分別制作漢字標(biāo)簽文件Labi,非漢字標(biāo)簽文件Lab2,標(biāo)簽文件的 內(nèi)容包括漢字圖像集Cl_train和非漢字圖像集C2_train里每個(gè)字符樣本所存的路徑W及 對應(yīng)類別標(biāo)簽號; ③ 利用化ffe架構(gòu),把漢字圖像集Cl_train轉(zhuǎn)化為數(shù)據(jù)庫DBi,把將非漢字圖像集轉(zhuǎn)化為 數(shù)據(jù)庫DB2; ④ 把網(wǎng)絡(luò)結(jié)構(gòu)、數(shù)據(jù)庫DBi和DB2、漢字標(biāo)簽文件Labi和非漢字標(biāo)簽文件Lab2的所在路徑 存入化ffe配置文件; ⑤ 設(shè)置訓(xùn)練參數(shù)存入化ffe配置文件; ⑥ 在化ffe架構(gòu)下完成訓(xùn)練,利用數(shù)據(jù)庫DBi、漢字標(biāo)簽文件Labi和漢字網(wǎng)絡(luò)結(jié)構(gòu)化1訓(xùn) 練生成漢字分類器化Cl;利用數(shù)據(jù)庫DB2、非漢字標(biāo)簽文件Lab2和非漢字網(wǎng)絡(luò)結(jié)構(gòu)化2訓(xùn)練生 成數(shù)字及字母分類器化C2。
【文檔編號】G06K9/32GK105975968SQ201610298195
【公開日】2016年9月28日
【申請日】2016年5月6日
【發(fā)明人】趙凡, 賀建平, 吉璐, 楊丹, 鈔蓓英
【申請人】西安理工大學(xué)