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