王汝心 馬維華
摘? 要: 針對(duì)路邊停車的智能化管理程度較低的問題,以現(xiàn)行標(biāo)準(zhǔn)為依據(jù),對(duì)車牌識(shí)別面臨的問題進(jìn)行分析。根據(jù)所捕獲圖像的特點(diǎn),通過高斯濾波、頂帽運(yùn)算、Otsu算法進(jìn)行圖像預(yù)處理,消除噪點(diǎn),完成背景提取和圖像二值化。運(yùn)用閉運(yùn)算結(jié)合車牌的外形特征完成車牌識(shí)別。結(jié)合投影法、字符間隔及尺寸的測(cè)定和輪廓分析法完成字符分割。最后,提取字符圖片的HOG特征,設(shè)計(jì)了一個(gè)基于SVM的字符分類器,實(shí)現(xiàn)了一個(gè)準(zhǔn)確率高、適應(yīng)性強(qiáng)的車牌識(shí)別系統(tǒng)。
關(guān)鍵詞: 車牌識(shí)別; Otsu; 形態(tài)學(xué); 支持向量機(jī)
中圖分類號(hào):TP36? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-8228(2021)07-01-05
License plate recognition method based on HOG features
Wang Ruxin, Ma Weihua
(Nanjing University of Aeronautics and Astronautics, Nanjing, Jiangsu 210016, China)
Abstract: In response to the low level of intelligent management of on-street parking, the problems faced by license plate recognition are analyzed based on the current standards. According to the characteristics of the captured image, image pre-processing is performed by Gaussian filtering, Top Hat operation and Otsu algorithm to eliminate noise, and background extraction and image binarization are completed. The license plate recognition is completed by using the closed operation combined with the shape features of the license plate. The character segmentation is completed by combining the projection method, the determination of character interval and size, and the contour analysis method. Finally, HOG features of character images are extracted and a character classifier based on SVM is designed to realize a license plate recognition system with high accuracy and high adaptability.
Key words: license plate recognition; Otsu; morphology; SVM
0 引言
車牌識(shí)別(License Plate Recognition,LPR)在交通執(zhí)法、停車管理、自動(dòng)收費(fèi)站等多種場(chǎng)合起著重要的作用,有助于智能交通系統(tǒng)的發(fā)展。車牌識(shí)別主要包括三個(gè)部分:在捕獲的圖像中確定車牌位置,在車牌區(qū)域分割字符和識(shí)別字符。為了減少環(huán)境因素對(duì)車牌識(shí)別的干擾,應(yīng)先將圖像進(jìn)行預(yù)處理,再進(jìn)行車牌定位。
常用車牌定位算法主要有三類:通過汽車號(hào)牌的底色定位車牌位置;基于濾波器過濾圖像中邊緣密集的區(qū)域;提取車牌特征,結(jié)合機(jī)器學(xué)習(xí)算法。常用的字符識(shí)別方法有模板匹配、投影分析、結(jié)構(gòu)特征法等[1]。當(dāng)圖片背景顏色較為復(fù)雜時(shí),基于彩色信息進(jìn)行車牌定位需要較大的計(jì)算量,而且難以對(duì)各種圖像做統(tǒng)一處理;神經(jīng)網(wǎng)絡(luò)通常算法復(fù)雜;邊緣檢測(cè)方法需要設(shè)計(jì)適合字符的邊緣檢測(cè)算子[2],但得到的結(jié)果難以突出車牌區(qū)域。
本文基于Cortex-A8芯片,通過圖片預(yù)處理、車牌定位,字符分割和車牌識(shí)別,有效的將車牌信息與背景顏色進(jìn)行區(qū)分,提高復(fù)雜背景下車牌識(shí)別的準(zhǔn)確率。
1 系統(tǒng)設(shè)計(jì)
道路環(huán)境復(fù)雜,攝像機(jī)捕獲的圖像中除了所需的車牌信息還包括汽車本身和背景圖像,在識(shí)別車牌的過程中需要考慮許多種情況。
系統(tǒng)設(shè)計(jì)框圖如圖1所示。當(dāng)系統(tǒng)捕獲到圖像后,需要通過濾波器處理圖像從而抑制圖像中的噪聲,并在此基礎(chǔ)上結(jié)合車輛牌照的特點(diǎn),將車牌與背景信息分離,確定車牌在圖像中的位置,結(jié)合車牌中字符的分布規(guī)律進(jìn)行劃分,通過SVM算法進(jìn)行字符識(shí)別。若找不到合適的區(qū)域則認(rèn)為該區(qū)域內(nèi)沒有車牌信息,則系統(tǒng)繼續(xù)處理新的圖像。
2 車牌定位
2.1 高斯濾波
高斯濾波器通過高斯函數(shù),對(duì)每個(gè)像素點(diǎn)本身及其鄰域進(jìn)行加權(quán)平均,以實(shí)現(xiàn)對(duì)整幅圖像的卷積處理,模糊圖像并去除細(xì)節(jié)和噪點(diǎn),完成對(duì)圖像的線性低通濾波。
在進(jìn)行分類處理圖像時(shí),應(yīng)使用二維高斯函數(shù),由下式公式⑴給出:
[Gx,y=12πσ2e-x2+y22σ2]? ⑴
由公式⑴可以看出,高斯分布在任何地方都不為零??紤]到在距平均值約3個(gè)標(biāo)準(zhǔn)偏差的情況下,分布已非常接近于0,99%的分布在3個(gè)標(biāo)準(zhǔn)偏差之內(nèi),這意味著可以將內(nèi)核大小限制為僅包含均值3個(gè)標(biāo)準(zhǔn)差以內(nèi)的值。
高斯核系數(shù)取決于σ的值,較大的σ會(huì)產(chǎn)生較寬的峰值,從而產(chǎn)生較大的模糊。為了保持高斯過濾器的性質(zhì),內(nèi)核大小必須隨著σ的增加而增加,系數(shù)隨著距內(nèi)核中心距離的增加而減小,邊緣系數(shù)必須接近0。選擇高斯核大小為3×3,σ=0.8,得到高斯核如圖2所示。
2.2 背景提取
考慮到捕獲圖像通常具有大幅的背景,而汽車號(hào)牌的形狀比較有規(guī)律,為了突出更明亮的區(qū)域,分離背景中的較亮斑塊,選用頂帽(Top Hat)運(yùn)算,完成背景提取,即將原圖像與開運(yùn)算結(jié)果求差值。
進(jìn)行開運(yùn)算時(shí),為了消除微小且無意義的目標(biāo),應(yīng)先進(jìn)行腐蝕運(yùn)算,縮小圖像的邊界,從而消除孤立點(diǎn)和小區(qū)域物體;再進(jìn)行膨脹運(yùn)算,填補(bǔ)目標(biāo)區(qū)域中空白區(qū)域,從而去除目標(biāo)區(qū)域中的小顆粒噪點(diǎn),平滑物體的輪廓,放大局部低亮度的區(qū)域。
腐蝕運(yùn)算和膨脹運(yùn)算用公式⑵、公式⑶表示。開運(yùn)算可以用公式⑷表示。
對(duì)于圖像中的坐標(biāo)點(diǎn)[i,j],該點(diǎn)的灰度值表示為[grayi,j],進(jìn)行開運(yùn)算后得到的灰度值表示為[openi,j],頂帽運(yùn)算后該點(diǎn)的灰度值表示為[tophati,j],公式⑸表達(dá)了三者的關(guān)系,其中,[1≤i≤rows,1≤j≤cols],[rows]表示圖片像素點(diǎn)的行數(shù),[cols]表示圖片像素點(diǎn)的列數(shù)。
[AB=x,y|Bxy?A]? ⑵
[AB=x,y|Bxy∩A≠?]? ⑶
[A?B=ABB]? ⑷
[tophati,j=fi,j-openi,j]? ⑸
以圖片3(a)為例,進(jìn)行開運(yùn)算處理,得到結(jié)果如圖3(b)所示;對(duì)開運(yùn)算結(jié)果進(jìn)行頂帽運(yùn)算,得到結(jié)果如圖3(c)所示。
2.3 圖像二值化
Otsu算法是于1979年由日本學(xué)者大津基于最小二乘法提出的[5],基于最小二乘法,通過求取最大類間方差,達(dá)到確定二值化閾值的目的,主要用于分離目標(biāo)和背景圖案。
假設(shè)圖片由前景色和背景色組成,圖片的灰度直方圖峰值不多于兩個(gè),通過統(tǒng)計(jì)學(xué)方法,計(jì)算最大類間方差并選取閾值。對(duì)于一張像素點(diǎn)總數(shù)為[rows×cols]的圖片,假設(shè)閾值[T],分割圖像獲得前景像素點(diǎn)個(gè)數(shù)為[N0],背景像素點(diǎn)個(gè)數(shù)為[N1],可以用公式⑹表示前景像素點(diǎn)占整幅圖片的比例[ω0],用公式⑺背景像素點(diǎn)占整幅圖片的比例[ω1]:
[ω0=N0rows×cols=N0N0+N1=1-ω1]? ⑹
[ω1=N1rows×cols=N1N0+N1=1-ω0]? ⑺
前景的平均像素值為[μ0],背景的平均像素值為[μ1],則整幅圖片的平均像素值[μ]可以用公式⑻表示為:
[μ=ω0×μ0+ω1×μ1]? ⑻
可以得到前景平均像素值[μ0]和前景平均像素值[μ1]的方差[g]可以用公式⑼表示為:
[g=ω0×μ0-μ2+ω1×μ1-μ2=ω0ω1μ0-μ12] ⑼
由上述公式可以看出,對(duì)于任意一張圖像,前景像素點(diǎn)占整幅圖片的比例[ω0]和背景像素點(diǎn)占整幅圖片的比例[ω1]是固定值,方差[g]與[μ0-μ1]正相關(guān),換言之,方差[g]越大,[μ0-μ1]的值越大,則前景和背景的平均像素值差別越大,表示分割效果越好。
對(duì)圖3(c)中各個(gè)像素點(diǎn)的灰度值列表進(jìn)行統(tǒng)計(jì),得到灰度直方圖。遍歷灰度值列表,選擇使類間方差[g]取最大值的閾值[T];根據(jù)閾值[T],對(duì)圖片進(jìn)行二值化處理,得到二值化圖片如圖4所示。
2.4 車牌定位
經(jīng)過二值化處理后的圖片中存在許多噪點(diǎn)和不規(guī)則圖案,在進(jìn)行車牌定位時(shí),需要先將圖像中的噪點(diǎn)消除,再將被錯(cuò)誤切割的白色色塊邊緣連接為一個(gè)整體。其中,消除噪點(diǎn)需要使用開運(yùn)算,而數(shù)學(xué)形態(tài)學(xué)中的閉運(yùn)算可以將細(xì)微連接的圖案封閉在一起。
對(duì)圖片進(jìn)行閉運(yùn)算,首先應(yīng)對(duì)圖片進(jìn)行膨脹運(yùn)算,填補(bǔ)目標(biāo)區(qū)域,再通過腐蝕運(yùn)算收縮圖像邊界,消除目標(biāo)區(qū)域外的噪聲。閉運(yùn)算可以用公式⑽表示。
[A?B=A⊕B?B]? ⑽
對(duì)圖4做閉運(yùn)算,得到結(jié)果圖像如圖5所示??梢钥闯鰣D4被分割為若干白色區(qū)域,圖5與圖4相比,消除了一些無關(guān)的小顆粒噪點(diǎn),并將圖4中存在細(xì)微連接的白色色塊封閉在一起。
根據(jù)《中華人民共和國(guó)機(jī)動(dòng)車號(hào)牌》的規(guī)定,汽車號(hào)牌的外廓尺寸分為440mm×140mm、440mm×220mm、480mm×140mm三種類型,從而可以得出汽車號(hào)牌的長(zhǎng)寬比例范圍為[2.0,3.5]。
通過檢測(cè)圖片5中的所有白色色塊輪廓,保留拐點(diǎn)信息,忽視拐點(diǎn)與拐點(diǎn)之間的直線段上的信息點(diǎn),將形狀不規(guī)則的白色色塊劃分為若干規(guī)則色塊,計(jì)算規(guī)則色塊的長(zhǎng)寬比例,根據(jù)汽車號(hào)牌的長(zhǎng)寬比例范圍對(duì)規(guī)則色塊進(jìn)行篩選分析,從而選擇出汽車號(hào)牌區(qū)域。
根據(jù)篩選結(jié)果的拐點(diǎn)信息,可以得到在原圖像3(a)中汽車號(hào)牌的位置,得到如圖6所示的汽車號(hào)牌的二值圖像,并直接用于后續(xù)步驟中的字符分割和字符識(shí)別。
3 字符分割及識(shí)別
3.1 字符分割
字符分割需要將非字符像素點(diǎn)去除,從本地車牌區(qū)域提取字符,并排除字符斷裂和粘連等問題。本文通過投影法對(duì)汽車號(hào)牌進(jìn)行粗分割,結(jié)合了字符間隔及尺寸的測(cè)定和輪廓分析法對(duì)汽車號(hào)牌字符進(jìn)行完全分割。
投影法分割車牌區(qū)域,首先通過水平投影法,結(jié)合汽車號(hào)牌的形狀特征,將汽車號(hào)牌邊框進(jìn)行去除,以去除號(hào)牌邊框的影響,避免對(duì)字符識(shí)別造成影響。
在實(shí)際應(yīng)用中,將水平方向上每行的各個(gè)像素點(diǎn)的灰度值相加,得到水平方向的灰度值隊(duì)列[0,g0,1,g1,…,m,gm],從而得到水平方向的灰度值折線圖7。
由圖7可以看出,二維圖像的最上方存在大量的白色區(qū)間,在白色區(qū)間下方緊挨著是一段白色像素較少的區(qū)間,之后是存在大量的白色像素點(diǎn)、且白色像素點(diǎn)頻繁出現(xiàn)的區(qū)域,結(jié)合汽車號(hào)牌的形狀特征,選擇最小值[gm_min]為閾值,取跨度最大的波峰以確定車牌的縱向區(qū)間,從而將汽車號(hào)牌與車牌邊框進(jìn)行分割,得到去除了多余像素的汽車號(hào)牌圖片,如圖8所示。
經(jīng)過水平投影后得到的圖片8中只保留了汽車號(hào)牌的編號(hào)字符,可以通過垂直投影的方式對(duì)圖片8進(jìn)行字符分割。在實(shí)際應(yīng)用中,將垂直方向上的每列的各個(gè)像素點(diǎn)的灰度值相加,得到垂直方向的灰度值隊(duì)列[0,g0,1,g1,…,n,gn],從而得到垂直方向的灰度值折線圖。
根據(jù)波峰,選擇最小值[gn_min]為閾值進(jìn)行劃分字符。劃分得到的字符中存在無意義圖案和間隔符,根據(jù)汽車號(hào)牌的形狀特征進(jìn)行二次篩選,以去除汽車號(hào)牌兩側(cè)可能存在的白色區(qū)域和不需要進(jìn)行識(shí)別的間隔符。
根據(jù)國(guó)家標(biāo)準(zhǔn)GA36-2018《中華人民共和國(guó)機(jī)動(dòng)車號(hào)牌》的規(guī)定,對(duì)于單行的汽車號(hào)牌,第一個(gè)字符的寬度為45mm,高度為90mm,與第二個(gè)字符之間的間隔存在12mm、10mm、9mm三種情況。
根據(jù)以上條件,汽車號(hào)牌中第一個(gè)字符的高度height、寬度width、前兩個(gè)字符之間的間隔distance之間的關(guān)系如公式⑾所表示。公式⑾可以作為去除汽車號(hào)牌兩側(cè)可能存在的無意義白色區(qū)域的依據(jù)。
[heightwidth=23 在汽車號(hào)牌中,字符寬度width與間隔符寬度spacer_width之間應(yīng)滿足公式⑿。公式⑿可以作為去除汽車號(hào)牌中間可能存在的間隔符的依據(jù)。 [2.8125≤widthspacer_width≤4.5] ⑿ 排除掉車牌外框白邊造成的干擾和間隔符的結(jié)果如圖8所示。 3.2 字符識(shí)別 為了減少計(jì)算復(fù)雜度、時(shí)間消耗和空間消耗,對(duì)分割好的字符圖片進(jìn)行分析,從大量數(shù)據(jù)中提取中關(guān)鍵信息轉(zhuǎn)換為若干特征。為了減少尺寸、光線、亮度變化對(duì)特征提取的影響,突出局部區(qū)域內(nèi)梯度方向直方圖分布,選擇HOG特征用于描述目標(biāo)的局部形狀特征,對(duì)圖片進(jìn)行單一窗口檢測(cè),獲得梯度強(qiáng)度在方向上的分布向量。 提取HOG特征的第一步,需要將圖像分成小的連通區(qū)域,即細(xì)胞單元cell,細(xì)胞單元的大小參數(shù),對(duì)特征向量編碼會(huì)產(chǎn)生影響。 第二步,采集細(xì)胞單元中各像素點(diǎn),選擇垂直梯度算子為[-1,0,1T],水平梯度算子為[-1,0,1],在提取像素點(diǎn)d 水平和垂直梯度的同時(shí),不改變相鄰像素點(diǎn)對(duì)邊緣的影響。像素點(diǎn)[x,y]處的梯度計(jì)算公式如⒀和⒁所示,其中[Gxx,y]表示[x,y]的水平方向梯度,[Gyx,y]表示[x,y]處的垂直方向梯度,[Hx,y]表示[x,y]處的像素值。 第三步,通過公式⒂和⒃計(jì)算x和y方向梯度的合梯度,包括幅值[Gx,y]和方向[θ],由于梯度方向會(huì)取絕對(duì)值,因此,得到的角度[θ]范圍是 [0,180°]。實(shí)驗(yàn)證明,將角度分成9份時(shí)檢測(cè)效果最佳。 [Gxx,y=Hx+1,y-Hx-1,y] ⒀ [Gyx,y=Hx,y+1-Hx,y-1] ⒁ [Gx,y=G2xx,y+G2yx,y] ⒂ [θ=arctanGyx,yGxx,y] ⒃ 選擇了[2×2]和[4×4]兩種大小進(jìn)行實(shí)驗(yàn)。考慮到分割后的字符圖片本身偏小,故選擇細(xì)胞單元大小為[2×2]以保證足夠多的空間描述編碼。 第四步,Block歸一化。[2×2]的像素點(diǎn)區(qū)域作為一個(gè)cell,以[2×2]個(gè)細(xì)胞單元為一個(gè)block。每個(gè)細(xì)胞單元有9個(gè)值,所以一個(gè)block則有36個(gè)值。通過滑動(dòng)窗口的方式來得到block,為了保證特征描述符不會(huì)受到光照變化的影響,將4個(gè)HOG特征拼接為長(zhǎng)度36的向量,計(jì)算該向量的L2范數(shù),進(jìn)而完成block的梯度直方圖歸一化。 設(shè)定滑動(dòng)步長(zhǎng)為1個(gè)像素,以block為滑動(dòng)窗口對(duì)樣本圖案掃描,歸一化計(jì)算得到長(zhǎng)度為36的向量,并重復(fù)這個(gè)過程,即完成了對(duì)每個(gè)block的計(jì)算。 第五步,計(jì)算圖像的HOG特征向量。假設(shè)圖像大小為[12×24]像素,當(dāng)細(xì)胞單元尺寸為[2×2]時(shí),整個(gè)圖像共劃分為[6×12]個(gè)細(xì)胞單元,即橫向有6個(gè)細(xì)胞單元,縱向有12個(gè)細(xì)胞單元。每個(gè)block有[2×2]個(gè)細(xì)胞單元,滑動(dòng)步長(zhǎng)設(shè)定為1個(gè)像素,則block的個(gè)數(shù)為[6-1×12-1=55]個(gè),即橫向有7個(gè)block,縱向有11個(gè)block。將55個(gè)block合并就可以構(gòu)成整個(gè)圖像的特征描述符,其長(zhǎng)度為[55×36=1980]。 通過一對(duì)多法構(gòu)建SVM多分類器時(shí),對(duì)于某個(gè)類別的樣本,訓(xùn)練時(shí)將樣本集分為該類樣本和非該類樣本兩種類型,將一個(gè)SVM多分類器轉(zhuǎn)化為多個(gè)SVM二分類器。 樣本空間可能在當(dāng)前維度中線性不可分。高斯核函數(shù)的局部性強(qiáng),可以忽略樣本集大小對(duì)SVM分類器的影響,需要的參數(shù)較少,因此選用高斯核函數(shù)進(jìn)行非線性變換,將輸入向量映射為某個(gè)維度特征空間,將樣本特征映射到高維空間,在高維特征空間中學(xué)習(xí)線性支持向量機(jī),使樣本集在高維空間中變得線性可分。 收集8086例漢字字符樣本和13163例英文字符與阿拉伯?dāng)?shù)字樣本,平分樣本集,分別作為訓(xùn)練集和測(cè)試集,用于SVM分類器的訓(xùn)練和測(cè)試。 3.3 實(shí)驗(yàn)結(jié)果 將相同的、含400張車牌圖片的測(cè)試集分別通過本系統(tǒng)和普通SVM分類器來識(shí)別,統(tǒng)計(jì)識(shí)別正確率。 由表1可以看出,提取圖像的HOG特征,比將圖片直接作為SVM分類器輸入特征的識(shí)別正確率更高。對(duì)普通SVM分類器識(shí)別錯(cuò)誤的車牌圖片進(jìn)行統(tǒng)計(jì),發(fā)現(xiàn)當(dāng)漢字筆畫較多(如“蒙”)、形狀相似(如“魯”和“粵”)時(shí),普通SVM分類器難以識(shí)別。所以,結(jié)合了HOG特征提取的SVM多分類器顯著提高了車牌識(shí)別系統(tǒng)的性能。 4 結(jié)束語 本文基于ARMcortex-A8芯片,通過高斯濾波完成圖片預(yù)處理,結(jié)合頂帽運(yùn)算和Otsu算法進(jìn)行車牌定位,有效的分割了車牌信息與背景顏色,通過數(shù)學(xué)形態(tài)學(xué)中的開運(yùn)算和閉運(yùn)算以及車輛牌照的形狀特征進(jìn)行車牌定位,結(jié)合HOG特征和SVM算法進(jìn)行字符識(shí)別,實(shí)現(xiàn)了復(fù)雜背景下車牌識(shí)別的準(zhǔn)確率。 參考文獻(xiàn)(References): [1] Song Jiatao.Analysis and extraction of structure features alphabetic and digital characters on vehicle license plate[J].Journal of Image and Graphics,2002.9:945-949 [2] 馮國(guó)進(jìn),顧國(guó)華.車牌自動(dòng)定位與模糊識(shí)別算法[J].光電子(激光), 2003.14(7):749-752 [3] 代文征,楊勇.基于改進(jìn)高斯—拉普拉斯算子的噪聲圖像邊緣檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用研究,2019.36(8):2544-2547,2555 [4] 許蓉,王直,宗濤.基于改進(jìn)高斯濾波的醫(yī)學(xué)圖像邊緣增強(qiáng)[J].信息技術(shù),2020.44(4):75-78 [5] 申鉉京,秦俊,呂穎達(dá),王瑞卿,劉翔.完全線性多閾值Otsu快速算法[J].吉林大學(xué)學(xué)報(bào)(工學(xué)版),2019.1:268-274 [6] Wenxin Zhu a? b, Yunyan Song c, Yingyuan Xiao a? d. Support vector machine classifier with huberized pinball loss[J].Engineering Applications of Artificial Intelligence,2020.91:103635