本發(fā)明涉及計算機視覺領(lǐng)域,特指一種基于圖像融合和盲反卷積的模糊車牌圖像識別算法。
背景技術(shù):
隨著現(xiàn)代化交通的發(fā)展,車輛牌照自動識別技術(shù)越來越受到人們的重視,是近年來計算機視覺與模式識別技術(shù)在智能交通領(lǐng)域的重要研究課題之一。車輛牌照自動識別系統(tǒng)可用于公路收費站、停車場、十字路口等場所的車輛管理,對于道路交通和停車場車輛管理具有重要的促進作用。
車牌識別技術(shù)包括車牌定位、字符分割和字符識別3個基本環(huán)節(jié),其中車牌定位是字符分割和字符識別的前提,而車牌字符分割是車牌識別的基礎(chǔ)。
車牌識別系統(tǒng)在國內(nèi)外研究都有一段時間了,普通的車牌識別系統(tǒng)在各種情況下都有一定的應(yīng)用,但是對于特殊環(huán)境條件下的車牌識別,國內(nèi)總體上來說還處于實驗室階段,離實際的工程應(yīng)用還有一段距離?,F(xiàn)實中,特殊環(huán)境條件下的車牌識別,往往是杜絕安全隱患的關(guān)鍵所在。比如車輛在晚間超速行駛,由于環(huán)境、時間、以及車輛本身超速的諸多因素綜合影響,導(dǎo)致事故頻發(fā),損失巨大。同時,如果由于環(huán)境原因?qū)е率称繁O(jiān)控系統(tǒng)無法識別相關(guān)的車輛車牌信息,這無疑會給各方面的安全管理,帶來很大的不變。
同時,國內(nèi)的車牌不統(tǒng)一、漢字識別難度大等因素也導(dǎo)致了車牌識別,尤其是在特殊條件環(huán)境下的車牌識別帶來了很大的困難。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于提供一種能夠提高監(jiān)控系統(tǒng)的特殊條件下車牌識別的準確程度的基于圖像融合和盲反卷積的模糊車牌圖像識別算法,并使得監(jiān)控系統(tǒng)能夠滿足實時性要求。
為了解決上述技術(shù)問題,本發(fā)明的具體技術(shù)方案包括以下步驟:
步驟(1)通過多幀圖像融合增強低照度車牌圖像的可辨識度;
步驟(2)采用基于盲反卷積算法處理模糊圖像;
步驟(3)車牌定位與傾斜估計;
步驟(4)采用灰度投影法進行車牌字符分割;
步驟(5)采用基于聯(lián)合hog特征的車牌字符識別算法進行車牌分割字符識別。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述步驟(1)包括:
(1.1)對進行前isp(imagesignalprocessor)處理后輸出的多幀圖像進行surf特征點匹配獲得校準圖像;所述前isp處理中包括對原始圖像進行白平衡處理,去馬賽克,色彩校正,轉(zhuǎn)rgb格式彩圖,最后經(jīng)過轉(zhuǎn)rgb格式彩圖后輸出適合surf特征點匹配的圖像;
(1.2)對多幀連拍車牌圖像采用加權(quán)累積方式進行累加,使得每幅圖像權(quán)重相等。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述步驟(2)為采用一種盲復(fù)原方法,首先估計出模糊點擴散函數(shù)psf,然后進行模糊處理,具體包括:
(2.1)估計點擴散函數(shù),首先利用計算得到模糊長度和角度得到點擴散函數(shù),然后對模糊圖像的點擴散函數(shù)進行估計;
(2.2)計算圖像支持域,所述支持域為包括原始圖像的非零像素值最小的矩形區(qū)域,具體采用動量矩和平均值算法進行計算,設(shè)原圖像矩陣為f,支持域內(nèi)矩陣為
(2.3)設(shè)定約束條件,采用能量約束以加快算法收斂,
(2.4)噪聲最小二乘估計,建立盲反卷積復(fù)原最小化模型,該模型如下公式所示:
上式中g(shù)(x,y)為模糊圖像,f(x,y)為原圖像,h(x,y)為點擴散函數(shù),n(x,y)為噪聲,α為權(quán)重系數(shù),α用于保證迭代恢復(fù)過程中噪聲均值為0,通常取值為10-4,其中
α[∑x∑y[g(x,y)-f(x,y)*h(x,y)]]分別表示噪聲均方差為δ以及均值為0;該盲反卷積復(fù)原最小化模型的解即為迭代恢復(fù)模型的近似解;
(2.5)迭代恢復(fù),求取盲反卷積復(fù)原最小化模型的解即為迭代恢復(fù)模型的近似解,經(jīng)過迭代,得到圖像矩陣恢復(fù)值,以及點擴散函數(shù)恢復(fù)值。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述步驟(3)包括:
(3.1)訓(xùn)練車牌樣本特征提取及特征組織,其包括:
首先,手動摳取出任意正常國標車牌;
其次,對摳取出的車牌圖像進行積分通道特征提取,所述通道包括luv顏色通道、梯度幅值通道和梯度直方圖通道;
最后,采用基于adaboost算法訓(xùn)練檢測器;
(3.2)車牌的檢測定位,其包括:
首先,用滑窗法對目標圖像進行掃描,獲取初定位車牌圖像;
其次,將檢測器輸出的初定位圖像進行非極大值抑制處理后的初定位結(jié)果進行基于霍夫變換的傾斜校正得到二次定位后的車牌圖像;
最后,將輸出的二次定位后的車牌圖像輸入強檢測器,得出最終定位車牌結(jié)果。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述步驟(4)包括:
(4.1)去除輸入車牌區(qū)域圖像的車牌邊框;
(4.2)車牌字符分割,其包括:
首先,對去除車牌邊框后的車牌區(qū)域圖像進行圖像增強,
其次,采用基于灰度投影的算法進行車牌字符分割,進行字符分割前,對前面步驟增強的車牌圖像,按列累加圖像的像素值,得到車牌的投影曲線,并采用高斯濾波進行平滑投影曲線。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述步驟(4)中所述圖像增強的過程具體如下:
第1步:統(tǒng)計整個車牌區(qū)域內(nèi)像素點的最大像素值和最小像素值maxvalue,minvalue;
第2步:設(shè)置需要增強的像素點數(shù)占全部像素點數(shù)的比例系數(shù)coef,比例系數(shù)范圍在0-1之間,根據(jù)實際需要調(diào)整,通常原始車牌圖像較清晰,比例系數(shù)就較小,原始車牌圖像模糊,比例系數(shù)就大;
第3步:統(tǒng)計0-255像素值上對應(yīng)出現(xiàn)的像素點的個數(shù),并存儲在1×255的數(shù)組count(1,i)里面;
第4步:從count(1,i),i=255開始往下統(tǒng)計像素點的個數(shù),如果統(tǒng)計的像素點pixelnum<width*height*coef則將i-1繼續(xù)統(tǒng)計,否則停止統(tǒng)計并記下當前的像素值index;
第5步:車牌區(qū)域每一點按下面的方法進行增強:
經(jīng)過上面的變換后,實現(xiàn)圖像增強。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述步驟(4)中采用基于灰度投影的算法進行車牌字符分割具體步驟如下:
第一步:根據(jù)車牌的灰度投影曲線圖可得,車牌后面最多出現(xiàn)五個雙峰結(jié)構(gòu),故搜索出前五個最大波谷點,然后判斷這些點是否為雙峰結(jié)構(gòu)中的波谷點,如果是,則將該雙峰結(jié)構(gòu)的起止位置記下;
第二步:確定車牌字符寬度characterwidth;如果第一步檢測到了雙峰結(jié)構(gòu),則字符寬度就取為檢測到的所有雙峰結(jié)構(gòu)的平均值,否則字符寬度就取前3個單峰寬度中的最大值;
第三步:設(shè)置字符起始點為第二字符和第三字符的分割點,設(shè)置結(jié)束點為車牌最后一個波谷點;如果在第一步中檢測到了雙峰結(jié)構(gòu)則進行第四步,否則進行第五步;
第四步:設(shè)置字符臨時分割段起始點為字符起始點,字符臨時分割段終點為一個雙峰結(jié)構(gòu)起始位置,然后在字符臨時分割段里進行檢測,如果該段里有一個峰結(jié)構(gòu),則該峰就單獨為一個字符,如果該段里有兩個峰結(jié)構(gòu),則先判斷這兩個峰是一個雙峰字符還是兩個單峰字符,具體判斷規(guī)則就利用這兩個峰的寬度,以及該寬度和字符寬度進行比較;如果這兩個峰寬度之和小于字符寬度的1.2倍且這兩個峰寬度相差很小;否則這兩個峰結(jié)構(gòu)就不是一個雙峰字符的投影,且可以肯定前面一個峰結(jié)構(gòu)就是一個字符,所以可以將其前面的一個峰結(jié)構(gòu)分割出來然后更新字符臨時分割段如下:將字符臨時分割段的起點更新到被分割出來的峰后面,字符臨時分割段終點不變,但是如果此時字符臨時分割段的起點等于終點時則將其起點更新到先前的雙峰結(jié)構(gòu)的終止位置,并將臨時分割段的終點更新到下一個雙峰結(jié)構(gòu)的起點,如果后面沒有雙峰結(jié)構(gòu)了則將臨時分割段的終點更新為字符結(jié)束點,然后重復(fù)第四步直到分割到字符結(jié)束點為止;
第五步:進行到第五步說明在檢測雙峰結(jié)構(gòu)時并未檢測到,但是并不代表該車牌內(nèi)不存在雙峰結(jié)構(gòu)的字符,并不能排除存在有雙峰結(jié)構(gòu)的字符;此時分割就直接從字符起始點開始分割直到分割出5個字符;在分割中需要檢測的就是檢測相鄰的兩個峰結(jié)構(gòu)是不是一個字符的雙峰曲線;檢測所利用的方法和第四步中相同,利用兩個峰的寬度和該寬度與字符寬度之間的關(guān)系進行判斷;
第六步:根據(jù)分割出的后面五個字符來分割前面兩個字符;首先將分割出來的后面五個字符中的最大寬度作為前面兩個字符的寬度;前面兩個字符為字母或者漢字,而字符也為雙峰結(jié)構(gòu)的,所以用后面五個字符中的最大寬度作為前面字符的寬度是合理的;分割前面兩個字符的方法為:從第二字符和第三字符的分割點向前移動字符寬度個像素,然后將離該點的最近一個波谷值作為車牌第一字符和第二字符的分割點;利用同樣方法也可以確定第一個字符的開始位置;
第七步:對分割出來的字符序列進行檢測,看該序列是否符合車牌字符序列的特征;該特征可以用下面表達式來表示,假設(shè)dis1為前面兩個字符的寬度向量,dis2為后面五個字符看寬度向量,width為車牌寬度,height為車牌高度,則一個合理的車牌字符序列必須滿足下面的表達式:
min(min(dis1),min(dis2))>width/10
max(dis2)>width/5
height/min(dis1)<3
根據(jù)上面表達式從車牌區(qū)域中分割出字符序列。
作為本發(fā)明技術(shù)方案的優(yōu)選,所述步驟(5)包括:
(1)提取h0g(方向梯度直方圖)特征;
(2)聯(lián)合方向梯度直方圖,首先將灰度圖和二值圖分別計算hog并組合成聯(lián)合特征,然后將16值圖的hog特征加入聯(lián)合hog特征,即分別進行車牌字符的灰度圖、二值圖和16值圖的hog計算,將結(jié)果以某種關(guān)系線性組合起來得到的聯(lián)合hog特征,組合如下式所示:
h=ωgrayhgray+ω2h2+ω16h16
h代表最終的聯(lián)合hog特征,hgray,h2,h16分別代表車牌字符灰度圖、二值圖和16值圖的hog特征,ωi代表權(quán)重;
(3)車牌字符特征分類,在提取聯(lián)合hog特征以后,利用svm進行訓(xùn)練分類,訓(xùn)練分類后,將分割好的字符輸入訓(xùn)練器中,輸出識別的車牌字符。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
本發(fā)明的車牌識別算法在夜晚低照度,或因車輛超速等原因造成的車牌模糊不清,車牌圖像成像質(zhì)量低的情況下對車牌字符讀取可靠性高,識別度好,魯棒性好,同時步驟計算簡單,能保持高效率,實時性也能滿足需求。
附圖說明
圖1是本發(fā)明具體實施方式所述整體算法流程圖。
圖2是本發(fā)明具體實施方式所述車牌圖像三種積分特征通道圖像。
圖3是本發(fā)明具體實施方式所述四個方向梯度算子示意圖。
圖4是本發(fā)明具體實施方式所述像素點方向示意圖。
圖5是本發(fā)明具體實施方式所述霍夫變換傾斜校正的車牌圖像。
圖6是本發(fā)明具體實施方式所述車牌圖像增強算法效果圖。
圖7是本發(fā)明具體實施方式所述車牌分割算法流程圖。
圖8是本發(fā)明具體實施方式所述車牌投影曲線的濾波前后的效果圖。
圖9是本發(fā)明具體實施方式所述基于聯(lián)合hog的車牌識別流程圖。
圖10是本發(fā)明具體實施方式所述不同迭代次數(shù)的效果圖。
圖11是本發(fā)明具體實施方式所述本發(fā)明算法與傳統(tǒng)算法效果對比圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式作進一步詳細的說明。
本發(fā)明具體實施方式為一種基于圖像融合和盲反卷積的低照度下模糊圖像的車牌識別算法,該車牌識別算法流程如圖1所示,包括以下步驟;
s1.通過多幀圖像融合增強低照度車牌圖像的可辨識度;
s1.1對進行前isp(imagesignalprocessor)處理后輸出的多幀圖像進行surf特征點匹配獲得校準圖像;
圖像的幀累積,即圖像的多幀積累增加,是通過累積同一場景連續(xù)幀圖像的方法來提高圖像的信噪比。在圖像處理算法中,多幀累加就是將不同時刻兩幅圖像或多幀圖像對應(yīng)像素點的灰度值相加,求取它們的時間均值圖像。當所觀察目標的環(huán)境照度太低,會導(dǎo)致目標能量小,噪聲大,圖像信噪比降低。對靜態(tài)的圖像序列,利用各幀信號的相關(guān)性和噪聲的不相關(guān)性,采用序列圖像多幀累加技術(shù),可大大改善圖像的信噪比,提高清晰度。
對于待處理圖像,假定含有噪聲圖像中原始圖像任一像素點在一定時間內(nèi)的平均光子數(shù)為
微弱光環(huán)境下,物體輻射的瞬時值則有所漲落,這種偏離平均值的隨機起伏就構(gòu)成了輻射的噪聲。根據(jù)概率論中描述隨機變量的理論可知,到達探測器的光子流符合泊松分布,量子數(shù)漲落值即量子噪聲可以用方差
圖像噪聲用標準差
由上式可以看出,對m幀圖像序列取累加后可使圖像信噪比提高
前isp處理中包括對原始圖像進行白平衡處理,去馬賽克,色彩校正,轉(zhuǎn)rgb格式彩圖,最后經(jīng)過轉(zhuǎn)rgb格式彩圖后輸出適合surf特征點匹配的圖像。surf(speed-uprobustfeatures)是在sift(scaleinvariantfeaturetransform)算法基礎(chǔ)上提出的一種特征檢測描述算子,具有尺度不變、旋轉(zhuǎn)不變性、對光照變化、噪聲、局部遮擋保持一定的穩(wěn)健性等特點,且計算速度比sift快幾倍。surf特征點匹配方法分為以下4步:
第1步、檢測特征點:選取不同的箱式濾波器建立圖像的尺度空間,使用hessian矩陣檢測每一層圖像上的極值點,在三維空間中,對極值點與鄰近的3×3×3立體鄰域內(nèi)進行非極大值抑制,大于鄰近26個響應(yīng)值的點取為surf特征點。
以高斯濾波器為例,對于圖像中的某一點p=(x,y)以及高斯濾波器的尺度σ,其hessian矩陣h(p,σ)表達式如下:
其中l(wèi)xx(p,σ),lxy(p,σ),lyy(p,σ)分別是圖像中p點與高斯二階偏導(dǎo)數(shù)的卷積。hessian矩陣的行列式為:
實際運算中由于高斯濾波器須離散化,故隨著尺度σ的增大圖像細節(jié)逐漸被過濾。采用surf算法以方框濾波(boxfilter)近似代替高斯二階導(dǎo)數(shù),用積分圖像加速卷積后hessian矩陣的行列式的近似表達式為:
其中dxx,dyy,dxy分別是圖像中p點與方框濾波的卷積。
第2步、確定特征點主方向:以特征點為中心,計算半徑為6σ(σ為特征點所在的尺度值)圓形鄰域內(nèi)的點在x、y方向的harr小波響應(yīng),并給這些響應(yīng)值按距離賦予不同高斯權(quán)重系數(shù),對加權(quán)后的harr小波響應(yīng)用直方圖進行統(tǒng)計;再將圓形鄰域以每5°為間隔,劃分為72組,分別將每組60°范圍內(nèi)的響應(yīng)加起來形成一個新的矢量;遍歷整個圓形鄰域,一共生成72個矢量,選擇其中最長的矢量的方向為特征點的主方向。
第3步、特征點描述:以特征點為中心,將坐標軸旋轉(zhuǎn)到主方向,按主方向選取20σ×20σ的正方形窗口區(qū)域,將該正方形窗口區(qū)域劃分為4×4個子區(qū)域,在每個子區(qū)域內(nèi)計算harr小波在y方向的響應(yīng)dx、dy,每個子區(qū)域在x,y方向的響應(yīng)分別求和并生成了一個∑dx,∑|dx|,∑dy,∑|dy|的四維向量,這樣每個特征點就有64維的描述向量,再進行歸一化,形成最終的特征點描述子。
第4步、特征點匹配:采用基于最小歐氏距離來度量特征點間的相似性為:
其中:aik表示待匹配的第一幅圖像的第i個特征點描述向量的第k維的值,bik表示待匹配的第二幅圖像的第i個特征點描述向量的第k維的值,n表示特征點描述子是一個n維的描述向量。假設(shè)tu,tv分別為待匹配兩幅圖像的特征點集合,對于tu中的任意一個特征點tui,若tv中存在歐氏距離最小的兩個特征點tvj、t′vj,且tvj≤t′vj(tvj與t′vj的比值的范圍一般為0.5~0.7),則tvj認為是tu的匹配對。根據(jù)上面所述選取匹配對的原理,最后采用窮舉搜索算法找出所有的匹配對。
surf特征點匹配具有匹配速度快、匹配精度高等優(yōu)點,經(jīng)過surf特征點匹配后可獲得校準圖像。
s1.2對多幀連拍車牌圖像進行累加。由于簡單的疊加會導(dǎo)致圖像產(chǎn)生過曝現(xiàn)象,因而本具體實施方式采用加權(quán)累積方式,使得每幅圖像權(quán)重相等;
一幅有噪聲的圖像可認為是由原始車牌圖像g(x,y,t)可認為是由原始車牌圖像f(x,y,t)和噪聲n(x,y,t)疊加而成,即;
g(x,y,t)=f(x,y,t)+n(x,y,t)
多幀累加就是將不同時刻兩幀圖像或多幀圖像對應(yīng)像素點灰度值相加后求取它們的時間均值圖像。
m幀圖像進行累加,得到圖像a(x,y,t):
基于上述原理,求得幀累積車牌圖像a(x,y,t)。
s2.基于盲反卷積算法的模糊圖像處理;
本具體實施方式借助于超速車輛出現(xiàn)的圖像模糊問題來驗證改進的迭代盲反卷積算法的合理性。傳統(tǒng)的去模糊方法是假定已知模糊參數(shù),而實際的目標圖像模糊參數(shù)是未知的。所以采用一種盲復(fù)原方法,首先估計出模糊點擴散函數(shù)psf,然后進行模糊處理。一般情況下采用的各種盲反卷積去模糊算法通常不會對噪聲因素進行特定處理,而是將不同環(huán)境背景下的圖片進行統(tǒng)一的處理,而實際采集的車牌圖像存在大量的噪聲的污染,因此噪聲會在不斷的迭代過程中摻雜進實際解中,使求解沿著不可控的方向發(fā)展,求解出的解往往很大程度上偏離實際值,而且噪聲隨著迭代的進行也不斷的被放大,致使恢復(fù)出的圖像識別率低,使圖像的恢復(fù)求解過程不收斂,得不到卷積的解。由此對噪聲的處理對恢復(fù)效果至關(guān)重要。
通常來說,導(dǎo)致系統(tǒng)圖像模糊的噪聲基本上為高斯白噪聲。模糊圖像可以表示為模糊圖像的點擴散函數(shù)與原圖像卷積而成,如下列公式所示:
g(x,y)=f(x,y)*h(x,y)+n(x,y)
其中,g(x,y)為模糊圖像,f(x,y)為原圖像,h(x,y)為點擴散函數(shù),n(x,y)為噪聲。
由上式可知去模糊過程即為解卷積過程。
s2.1點擴散函數(shù)估計
點擴散函數(shù)是評價光學(xué)系統(tǒng)成像質(zhì)量的基本工具,點擴散函數(shù)即一點光源通過某介質(zhì)后所成的像。圖像的模糊程度可通過其點擴散函數(shù)兩個參數(shù)判斷,即模糊長度、模糊方向。將模糊圖像矩陣轉(zhuǎn)換到頻域,然后進行radon變換,圖像會交替出現(xiàn)黑白條紋,在主要的模糊方向上,radon變換的像素累積和最大,所以可以通過判斷radon值來判斷模糊角度。模糊的長度即為模糊角度上兩個黑白條紋的最小距離。
點擴散函數(shù)估計過程為:首先利用計算得到模糊長度和角度得到點擴散函數(shù),然后對模糊圖像的點擴散函數(shù)進行估計。
對于要處理的模糊圖像,首先對圖像進行預(yù)處理處理。然后創(chuàng)建原始psf(pointspreadfunction)函數(shù)(模糊圖像點擴散函數(shù)),創(chuàng)建與原始圖像同樣大小的psf掩膜。通過對超速車輛的模糊圖像點擴散函數(shù)進行統(tǒng)計,設(shè)定模糊點擴散函數(shù)半徑為15,即15×15大小的矩陣,矩陣像素值為全1。設(shè)目標圖像大小為size_f。
設(shè)定一個size_f大小的全0矩陣,其中坐標(0,0)至(15,15)的正方形區(qū)域內(nèi)像素為全1,作為psf掩膜h_z。
s2.2計算圖像支持域
支持域就是包括原始圖像的非零像素值最小的矩形區(qū)域,在支持域內(nèi)進行迭代恢復(fù),能大大提高算法運行效率。
對于盲反卷積有一個解的模糊問題。如果所得(f(x,y),h(x,y))是盲反卷積問題的解,那么對于任意的非零常數(shù)η,
同樣位移(f(x+k1,y+k2),h(x+k1,y+k2))也是盲反卷積問題的解。位移模糊會影響迭代反卷積算法的收斂,由于盲反卷積問題的解可能收斂到位移相疊加的圖像上,或處于若干相疊加的圖像之間,使結(jié)果無法收斂。所以必須限制盲反卷積問題的解的支持域,將上文求解的支持域作為限制嵌入到迭代反卷積算法中,可以消除盲反卷積問題的解不收斂的問題。本具體方式中圖像支持域利用動量矩和平均值算法進行計算。
對于動量矩,一階動量矩a大小為像素點數(shù)和即a=sum(his),二階動量矩b大小為所有像素值與相應(yīng)點數(shù)的乘積的和b=sum(m),其中,his為像素點數(shù),m為所有像素值與相應(yīng)點數(shù)的乘積。
而平均值算法是根據(jù)像素平均值來推測圖像范圍的方法。假設(shè)圖像平均值為t,令
根據(jù)該閾值
設(shè)原圖像矩陣為f,支持域內(nèi)矩陣為
s2.3設(shè)定約束條件
本發(fā)明的約束條件采用能量約束,能量不變性條件主要是圖像中的像素值不可以為負值以及點擴展函數(shù)具有恒定不變的能量,本具體實施方式引入能量約束用于加快算法收斂。
非負值的約束條件如以下公式所示:
其中,f(x,y)為圖像的像素值,而
能量不變則是根據(jù)圖像中平均負值像素點來實現(xiàn)的,如下公式所示:
上式中的e表示的是圖像中所有像素點負值的和,fi(x,y)為圖像某點i的像素值。
恢復(fù)時需要進行能量的重新組合,該重新組合如下公式所示:
上式中n是原始圖像中像素點的總數(shù)。在迭代過程中只要仍然包含負值迭代就會不斷的反復(fù)進行,直到迭代終止或者沒有負值迭代就會停止。
s2.4噪聲最小二乘估計
由于圖像含有噪聲,所以需要對最小化函數(shù)結(jié)合噪聲均值和方差進行最小二乘化估計。傳統(tǒng)圖像增強算法不會對噪聲做特殊處理,而實際的待處理的超速車輛圖像包含各種噪聲信息。噪聲污染導(dǎo)致算法的求解過程變成病態(tài)的循環(huán)迭代過程,恢復(fù)出來的圖像與原圖像存在很大偏差,而且噪聲被迭代算法不斷放大,結(jié)果造成復(fù)原過程不收斂。因此,本發(fā)明具體實施方式提出的改進算法即加入了對噪聲的最小二乘估計。
原盲反卷積的最小化模型為:
退化圖像存在污染時噪聲信號表示為:
n(x,y)=g(x,y)-f(x,y)*h(x,y)
假設(shè)噪聲均值為0則:
假設(shè)噪聲均方差為δ2則:
分別對噪聲方差和噪聲均值做最小二乘估計,可得如下表達式:
綜上,新的盲反卷積復(fù)原最小化模型為:
上式中g(shù)(x,y)為模糊圖像,f(x,y)為原圖像,h(x,y)為點擴散函數(shù),n(x,y)為噪聲。α為權(quán)重系數(shù),α用于保證迭代恢復(fù)過程中噪聲均值為0,通常取值為10-4。
其中,
s2.5迭代恢復(fù)
經(jīng)過上述迭代過程,得到圖像矩陣恢復(fù)值,以及點擴散函數(shù)恢復(fù)值。不同迭代次數(shù)效果不同,本具體實施方式分別選取迭代次數(shù)為1、20、30、40的效果如圖10所示。
利用傳統(tǒng)算法進行去模糊處理同樣是利用盲反卷積算法同時恢復(fù)圖像和psf的點擴散函數(shù),但是并不加入抑制噪聲信息的處理過程,所以各種噪聲因子導(dǎo)致算法的求解過程變成病態(tài)的循環(huán)迭代過程,復(fù)原出來的圖像與原圖像存在很大偏差。圖11為傳統(tǒng)算法與本發(fā)明算法的恢復(fù)結(jié)果,由圖11的結(jié)果可以明顯看出改進算法識別的車牌圖像中模糊因子大大降低,車牌號碼、車標等關(guān)鍵信息很清晰,噪聲信號被有效抑制;傳統(tǒng)算法雖然也降低了模糊程度和抑制了噪聲,但是效果還不是很明顯,車牌號碼部分仍存在明顯的運動模糊痕跡,并且噪聲的干擾導(dǎo)致恢復(fù)圖像清晰度較原圖像略有下降。
進行步驟s1-s2的圖像預(yù)處理后,輸出處理圖像,進行車牌定位。
s3.車牌定位與傾斜估計;
s3.1訓(xùn)練車牌樣本特征提取及特征組織;
s3.1.1手動摳取出任意正常國標車牌;
s3.1.2對摳取出的車牌圖像進行積分通道特征提?。?/p>
積分通道特征由dollárp等人在2009年提出,最早通常用于行人檢測,是目前評估效果較好的檢測算子。其基本思想是通過對輸入圖形進行各種線性和非線性的變換,圖像的很多常用特征,例如局部求和、直方圖、haar以及它們的變種,可以借助積分圖來快速、高效地計算。給定一個輸入圖像矩陣i,其對應(yīng)的通道指的是原始輸入圖像的某種輸出響應(yīng)。對于灰度圖,其對應(yīng)的通道矩陣c=i,即原圖本身;
對于彩圖,其每個顏色通道都對應(yīng)一個通道。其他類似的通道可以通過各種線性和非線性的方法計算得到。令ω代表圖像的某種通道計算函數(shù),則對應(yīng)的通道c=ω(i)。
在計算中,不同的變換可以形成不同的通道類型,本發(fā)明具體實施方式中選取3種不同的通道作為積分通道特征,以保證其準確性。其中l(wèi)uv顏色通道能夠很好地描述車牌亮度及色度變化,梯度幅值通道很好地反映了車牌的輪廓,梯度直方圖通道則從不同梯度方向上綜合對車牌位置姿態(tài)變化進行描述。3種通道變換如圖2所示。
s3.1.2.1luv通道的建立
在圖像處理中,luv色彩空間(全稱cie1976(l*,u*,v*))優(yōu)于rgb色彩空間。luv色彩空間的目的是建立與人的視覺統(tǒng)一的色彩空間,具備一致性和均勻性且各色彩分量之間不相關(guān)。在luv色彩空間中,l表示亮度,u、v表示色度。一般圖像顏色都是rgb顏色空間的,通過下面的公式可以轉(zhuǎn)換到luv顏色空間中。
最后計算得到luv色彩空間中的l、u、v通道。
s3.1.2.2梯度幅值通道
梯度幅值是一種用于圖像邊緣檢測的描述方法。一幅圖像中每個像素點具有八鄰域以及四個邊緣檢測方向。為了能夠在像素點x方向、y方向、z方向上檢測邊緣,本發(fā)明實施方式使用在窗口中分別計算x方向y方向、z方向的一階偏導(dǎo)數(shù)有限差分均值來確定像素點的梯度幅值的方法。四個方向的梯度算子分別為圖3所示。其中i[i,j]是坐標為3×3窗口中心像素點的灰度值,m[i,j]為中心像素點的梯度幅值,其計算公式如下所示,對應(yīng)四個方向上的計算公式為:
由上述公式最后得到整幅圖像的梯度幅值圖。
s3.1.2.3梯度直方圖通道
梯度直方圖思想來源于梯度方向直方圖(histogramsoforientedgradients,hog)是2005年dalal等人將它用于行人識別而得名。hog作為一種局部特征描述子,對方向、尺度、光照不敏感。后來deniz等人將hog成功應(yīng)用于人臉識別,得到了比較好的效果。梯度直方圖特征提取過程如下:
步驟1以圖像i[i,j]為中心取3×3的像素鄰域作為采樣窗口。
步驟2計算該像素點[i,j]的梯度方向θ[i,j]和梯度幅值m[i,j]。
θ[i,j]=arctan(i[i,j+1]-i[i,j-1])/i[i+1,j]-i[i-1,j]
如圖4所示,箭頭代表該像素點[i,j]的方向。
步驟3將梯度方向分為6個方向,即將180°平均分成6份,平均間隔30°。按照橢圓圈的高斯加權(quán)范圍將該鄰域上所有的梯度方向角度相同的像素點梯度幅值相加。
步驟4最后統(tǒng)計6個方向上的梯度幅值累加和,得到整幅圖像6個方向上的梯度幅值圖。
最后得到的包括luv通道、梯度幅值通道、梯度直方圖通道等10個通道的圖像如圖2所示。
s3.1.3基于adaboost算法訓(xùn)練檢測器
訓(xùn)練階段,利用adaboost對提取的積分通道特征訓(xùn)練出強分類器,在判別階段,計算檢測出定位車牌窗口的積分通道特征,運用強分類器進行打分(即是判別車牌位置的自信度),最后存儲一段視頻中分數(shù)最高的那一幀或者幾幀圖像。
adaboost算法由schapire、freund等人于1996年提出,其實質(zhì)是弱分類器的分類學(xué)習過程,是集成機器學(xué)習方法的一種,具有計算效率高、調(diào)節(jié)參數(shù)少、針對弱分類器的構(gòu)造兼容性強、以及樣本先驗知識和數(shù)據(jù)格式要求低等優(yōu)點,因此,得到廣泛推廣。adaboost算法中每個特征都對應(yīng)一個弱分類器,但并不是每一個特征都能很好地描述前景目標的特點。如何從大量特征中挑選出最優(yōu)特征并制作成弱分類器,再通過弱分類器集成,最終獲得高精度的強分類器,是adaboost算法訓(xùn)練過程所要解決的關(guān)鍵問題。
弱分類器的定義為:
其中,fj表示一個特征,pj表示不等式方向,θj表示閾值。
具體訓(xùn)練算法如下所示:
(1)給定n個樣本圖像,xi是輸入樣本圖像,yi是類別標志,其中yi=0表示為負樣本,yi=1表示為正樣本。
(2)初始化權(quán)重:
其中m和l分別為非正確車牌樣本和正確車牌樣本的數(shù)量,
n=m+l。
(3)fort=1,2,3,…,t
(3.1)歸一化權(quán)重:
(3.2)隨機選擇積分通道特征j:
隨機選擇通道索引bink(k=1,2,…,10);
隨機選擇矩形區(qū)域rectj并計算像素值之和;
(3.3)對每個特征j,訓(xùn)練一個弱分類器hj,計算相應(yīng)的ωt的錯誤率:εj=∑iωi|hj(xi)-yi|;
(3.4)選擇最小錯誤率εt的弱分類器ht。
(3.5)更新權(quán)重:
(4)最終強分類器為h(x):
其中,
s3.2.車牌的檢測定位;
s3.2.1用滑窗法對目標圖像進行掃描,獲取初定位車牌圖像;
本發(fā)明實施方式根據(jù)國內(nèi)車牌的固定比例,設(shè)定一個固定大小的滑窗,從獲取視頻圖像頂端開始進行逐一掃描,為了提高掃描準確度,通常設(shè)置滑窗步長為4個像素,將每次掃描截取的圖像進行積分通道特征計算,與adaboost算法訓(xùn)練出的強檢測器進行比對,得到得分最高的(即相似度最高的)圖像區(qū)域,即初步判定為車牌位置,截取該得分最高的圖像區(qū)域為初定位圖像并輸出該強檢測器。
s3.2.2將檢測器輸出的初定位圖像進行非極大值抑制處理后的初定位結(jié)果進行基于霍夫變換的傾斜校正得到二次定位后的車牌圖像;
非極大值抑制在物體檢測中應(yīng)用十分廣泛,其主要目的是為了消除多余干擾因素,找到最佳的物體檢測的位置。非極大值抑制是檢測的后處理過程,是關(guān)鍵環(huán)節(jié)之一。
啟發(fā)式窗口融合算法對非重合目標檢測效果很好,但對于車輛車牌檢測并不適合。啟發(fā)式窗口融合算法,將初始檢測窗口劃分為若干個不重合的子集,然后計算每個子集的中心,最后每個子集只保留一個檢測窗口,顯然該啟發(fā)式窗口融合算法容易造成大量漏檢。
dalal等提出了均值漂移非極大值抑制方法,該均值漂移非極大值抑制方法不僅計算復(fù)雜,需要將檢測窗口在3維空間(橫坐標,縱坐標,尺度)表示,檢測分數(shù)轉(zhuǎn)換,計算不確定性矩陣,迭代優(yōu)化,而且還需要調(diào)整很多與檢測器的步長等相關(guān)聯(lián)的參數(shù),因此,目前較少使用。
當前,大多數(shù)的目標檢測普遍使用基于貪心策略的非極大值抑制算法,因為它簡單高效,主要步驟如下:
(1)將初始檢測窗口按照檢測分數(shù)從高到低排序;
(2)將第1個初始檢測窗口作為當前的抑制窗口;
(3)非極大值抑制。將所有檢測分數(shù)比當前抑制窗口低的初始窗口作為被抑制窗口。計算當前抑制窗口與被抑制窗口的重合面積比率:面積的交集/面積的并集。剔除重合面積比率高于設(shè)定閾值的窗口;
(4)如果只剩最后一個初始檢測窗口則結(jié)束,否則按照排好的順序,取下一個未被抑制的窗口作為抑制窗口,轉(zhuǎn)到步驟(3)。
本發(fā)明實施方式同樣使用的是簡單高效的基于貪心策略的非極大值抑制算法。經(jīng)過非極大值抑制處理后的車牌圖像再進行基于霍夫變換的傾斜校正。
霍夫變換是一種強有力的特征提取方法,它利用局部圖像信息有效的積累所有可能的模型實例的依據(jù),這使得它既能方便地從外部數(shù)據(jù)中獲得額外的信息,又能敏銳地從只有一部分的實例中呈現(xiàn)出有效信息?;舴蜃儞Q普遍應(yīng)用在計算機視覺中形狀,位置,幾何變換參數(shù)的判斷中。自霍夫變換提出以來,其得到了廣泛的應(yīng)用。近些年,專家學(xué)者們對霍夫變換的理論性質(zhì)與應(yīng)用方法又進行了進一步的探討。霍夫變換作為一種有效的識別直線的算法,具有良好的抗干擾性及魯棒性。
霍夫變換方法包含一個從圖像空間中的特征到參數(shù)空間中點的集合的映射。每一個參數(shù)空間中的點表征著圖像空間中模型的一個實例,圖像特征利用一個函數(shù)被映射到參數(shù)空間當中去,這個函數(shù)產(chǎn)生能夠兼容觀察到的圖像特征與假設(shè)的模型的所有的參數(shù)組合。每一個圖像特征將在多維的參數(shù)空間中產(chǎn)生一個不同的平面,但是由所有圖像特征產(chǎn)生的屬于同一個模型的實例的一切平面都會相交在描繪共同的實例的點?;舴蜃儞Q的根本是產(chǎn)生這些平面并且識別與之相交的參數(shù)點。
經(jīng)過基于霍夫變換的傾斜校正后的車牌圖像為系統(tǒng)二次定位后的圖像?;舴蜃儞Q傾斜校正的車牌圖像示例如圖5所示。
s3.2.3將輸出的二次定位后的車牌圖像輸入強檢測器,得出最終定位車牌結(jié)果。
將經(jīng)過非極大值抑制處理和基于霍夫變換的傾斜校正后的車牌圖像后處理后的圖像輸出后再次進行積分通道特征提取后輸入強檢測器進行二次定位,包括:與adaboost算法訓(xùn)練出的強檢測器進行比對,得到得分最高的(即相似度最高的)圖像區(qū)域,即判定為車牌位置,截取該得分最高的圖像區(qū)域為二次定位圖像并輸出檢測器,得到最終的定位結(jié)果。
s4車牌字符分割;
s4.1.去除輸入車牌區(qū)域圖像的車牌邊框;
對于車牌圖像來說,在定位出來后的車牌圖像有兩種,一種是有邊框的車牌,而另一種是沒有邊框的車牌。我們將車牌候選區(qū)域旋轉(zhuǎn)至水平后就可以對車牌進行精確定位了,也就是對車牌邊框的去除。對測試數(shù)據(jù)進行統(tǒng)計分析可以得出:經(jīng)過定位旋轉(zhuǎn)后的車牌候選區(qū)域邊框有兩種,一種是車牌本身的邊框,而另一種是車牌周圍的白色背景與車牌一起被當作候選車牌區(qū)域,此時該白色背景也可以被看作是車牌的邊框。
車牌邊框的處理分為車牌上下邊框的處理和車牌左右邊框的處理。車牌的上下邊框的處理比較簡單,車牌的上下邊框分為兩種:一種是車牌本身的白色邊框,另一種是車牌上下位置的白色背景。而車牌的左右邊界也可以歸為這兩類,不過由于圖像本身的特征,一般來說車牌的上下邊框要寬于左右邊框,并且車牌左右邊框要復(fù)雜一些。
對于車牌的上下邊框的去除,本發(fā)明采取了下面步驟來處理:
s4.1.1上下邊框的去除;
s4.1.1.1用otsu(大津算法)方法獲得車牌候選區(qū)域的二值化閾值,從而得到候選區(qū)域的二值圖像,為了排除車牌傾斜角度的影響求取該二值圖像中間部分的行和,然后將行和處理如下:
s4.1.1.2從中間向兩端開始尋找rowsum的上下方向上有一段距離為零的邊界,本發(fā)明算法中采用該距離為0.75×height,因為一般車牌的上下邊框去除的比較準確,故我們采用圖形高度來做參考距離。此時我們得到的邊界就是最后所需要的車牌上下邊界。
經(jīng)過上面處理后,對于大多數(shù)圖片我們就可以將其上下邊框進行處理掉,然后我們就可以對該車牌區(qū)域進行去除左右邊框了。
對于車牌的左右邊框的去除,本發(fā)明采取了下面步驟來處理:
s4.1.2左右邊框的去除;
s4.1.2.1用去除上下邊框相同的方法來找到一個左右邊框的邊界:left1,right1。
s4.1.2.2重新構(gòu)建一個二值圖像再用和第一步相同的投影法來尋找邊界left2,right2。此時構(gòu)建的二值圖像根據(jù)車牌區(qū)域hsi模型的h值來二值化圖像。首先對車牌區(qū)域的中間區(qū)域來統(tǒng)計其h值的范圍,然后根據(jù)該范圍對全部車牌區(qū)域進行二值化,就得到了需要的二值化圖像。
s4.1.2.3根據(jù)s4.1.2.1和s4.1.2.2得到的兩個邊界信息來確定最后的邊界。最后確定的邊界可以用下面式子表示:
left=max(left1,left2)
right=min(right1,right2)
按照上述s4.1.1和s4.1.2兩個步驟的去邊框處理后,得到的車牌區(qū)域比原來定位出來原始車牌區(qū)域精確了些,但是并不是絕對的精確,我們可以將其看作是邊框去除過程中引入的誤差。本發(fā)明具體實施方式采用的分割算法能夠容忍在車牌邊框去除時存在的少許誤差。也就是說在去除車牌左右邊框時,邊框沒有完全去除并不影響我們對字符的正確分割。
s4.2.車牌字符分割;
在進行分割字符前,必須要注意一個問題,那就是由于不同光照、和車牌臟舊等原因使得車牌的灰度圖像中背景和字符對比度不強,這對于后一步用投影法來進行字符分割會帶來一定的難度,故而在分割前需要先對車牌圖像進行字符的對比度增強。
一個完整的車牌區(qū)域字符像素占整個車牌區(qū)域像素的20%,對于某些圖片來說,雖然由于其他原因使得車牌中字符和背景的差異不是很大,但是總體上來說字符的像素值也比背景像素值高一些。故可以利用該特點來對車牌區(qū)域中前20%像素進行增強而對其他的像素進行抑制,從而到達增強目標字符抑制背景的目的。對此本發(fā)明采用車牌增強算法如下:
步驟1:統(tǒng)計整個車牌區(qū)域內(nèi)像素點的最大像素值和最小像素值maxvalue,minvalue。
步驟2:設(shè)置需要增強的像素點數(shù)占全部像素點數(shù)的比例系數(shù)coef,比例系數(shù)范圍在0-1之間,根據(jù)實際需要調(diào)整,通常原始車牌圖像較清晰,比例系數(shù)就較小,原始車牌圖像模糊,比例系數(shù)就大。
步驟3:統(tǒng)計0-255像素值上對應(yīng)出現(xiàn)的像素點的個數(shù),并存儲在1×255的數(shù)組count(1,i)里面。
步驟4:從count(1,i),i=255開始往下統(tǒng)計像素點的個數(shù),如果統(tǒng)計的像素點pixelnum<width*height*coef則將i-1繼續(xù)統(tǒng)計,否則停止統(tǒng)計并記下當前的像素值index。
步驟5:車牌區(qū)域每一點按下面的方法進行增強:
經(jīng)過上面的變換后,就可以將圖像進行增強,如果原圖已有很好的對比度,經(jīng)過以上的變換也不會使圖像的效果變差,其效果圖如圖3所示。
從圖6的圖像處理效果可以看出,前兩幅由rgb直接轉(zhuǎn)換為灰度圖像的車牌區(qū)域其對比度不是很明顯,經(jīng)過增強后背景和字符的對比度明顯好轉(zhuǎn),而原本對比度一般的車牌區(qū)域經(jīng)過增強后其效果也變得更好了。這樣的增強對下一步分割字符有利。因為本發(fā)明所采用的字符分割方法是基于灰度投影的算法,由于原本字符對比度不明顯,其灰度投影圖的波峰、波谷特征也不是很明顯,但是經(jīng)過圖像增強后,其灰度投影圖就能夠很好的表現(xiàn)其波峰波谷特征,有利用對字符的精確分割。
本發(fā)明所用的灰度投影分割字符充分利用了車牌字符的特點,與一般的投影分割相比有很大的優(yōu)越性。普通的投影分割就是利用灰度投影曲線的波谷點來對字符進行分割。本發(fā)明對這種普通的投影算法進行了改進大大提高了字符分割正確率。由車牌字符投影曲線可以看出,車牌圓點右邊的五個字符中除了字符就是數(shù)字,當然還有少數(shù)車牌為漢字。對于字符和數(shù)字來說,其投影曲線不是雙峰結(jié)構(gòu)就是單峰結(jié)構(gòu)。所以本發(fā)明在對字符進行分割充分利用該特征改進了投影分割算法。本發(fā)明字符分割算法流程圖如圖7所示。
進行字符分割前,對前面增強的車牌圖像,按列累加圖像的像素值,就可以得到車牌的投影曲線,但是得到的投影曲線有很多噪聲使其并不平滑,這影響系對字符的分割,所以首先需要將投影曲線進行平滑,在本算法中采用高斯濾波來平滑投影曲線,用于濾波的核為[0.25,0.5,1,0.5,0.25]。圖8為車牌投影曲線的濾波前后的效果圖。從圖8中可以很明顯的看出經(jīng)過濾波后的投影曲線比原曲線平滑了很多,且原曲線中的一些由噪聲引起的峰值也在濾波后消失了,這樣在檢測波峰波谷時就不會檢測出因噪聲產(chǎn)生的波峰波谷點。
由濾波后的車牌灰度投影圖,就可以根據(jù)該投影曲線來進行字符分割。本發(fā)明采用的是改進的投影法來進行字符分割。一般的投影法分割字符是直接利用波谷點來對字符進行分割,而本發(fā)明的投影法在分割字符時充分考慮了車牌字符的投影特征,具體步驟如下:
步驟1:根據(jù)車牌的灰度投影曲線圖可得,車牌后面最多出現(xiàn)五個雙峰結(jié)構(gòu),故搜索出前五個最大波谷點,然后判斷這些點是否為雙峰結(jié)構(gòu)中的波谷點,如果是,則將該雙峰結(jié)構(gòu)的起止位置記下。
步驟2:確定車牌字符寬度characterwidth。如果步驟1檢測到了雙峰結(jié)構(gòu),則字符寬度就取為檢測到的所有雙峰結(jié)構(gòu)的平均值,否則字符寬度就取前3個單峰寬度中的最大值。
步驟3:設(shè)置字符起始點為第二字符和第三字符的分割點,設(shè)置結(jié)束點為車牌最后一個波谷點。如果在步驟1中檢測到了雙峰結(jié)構(gòu)則進行步驟4,否則進行步驟5。
步驟4:設(shè)置字符臨時分割段起始點為字符起始點,字符臨時分割段終點為一個雙峰結(jié)構(gòu)起始位置,然后在字符臨時分割段里進行檢測,如果該段里有一個峰結(jié)構(gòu),則該峰就單獨為一個字符,如果該段里有兩個峰結(jié)構(gòu),則先判斷這兩個峰是一個雙峰字符還是兩個單峰字符,具體判斷規(guī)則就利用這兩個峰的寬度,以及該寬度和字符寬度進行比較。如果這兩個峰寬度之和小于字符寬度的1.2倍且這兩個峰寬度相差很小。否則這兩個峰結(jié)構(gòu)就不是一個雙峰字符的投影,且可以肯定前面一個峰結(jié)構(gòu)就是一個字符,所以可以將其前面的一個峰結(jié)構(gòu)分割出來然后更新字符臨時分割段如下:將字符臨時分割段的起點更新到被分割出來的峰后面,字符臨時分割段終點不變,但是如果此時字符臨時分割段的起點等于終點時則將其起點更新到先前的雙峰結(jié)構(gòu)的終止位置,并將臨時分割段的終點更新到下一個雙峰結(jié)構(gòu)的起點,如果后面沒有雙峰結(jié)構(gòu)了則將臨時分割段的終點更新為字符結(jié)束點,然后重復(fù)步驟4直到分割到字符結(jié)束點為止。
步驟5:進行到步驟5說明在檢測雙峰結(jié)構(gòu)時并未檢測到,但是并不代表該車牌內(nèi)不存在雙峰結(jié)構(gòu)的字符,并不能排除存在有雙峰結(jié)構(gòu)的字符。此時分割就直接從字符起始點開始分割直到分割出5個字符。在分割中需要檢測的就是檢測相鄰的兩個峰結(jié)構(gòu)是不是一個字符的雙峰曲線。檢測所利用的方法和步驟4中相同,利用兩個峰的寬度和該寬度與字符寬度之間的關(guān)系進行判斷。
步驟6:根據(jù)分割出的后面五個字符來分割前面兩個字符。首先將分割出來的后面五個字符中的最大寬度作為前面兩個字符的寬度。前面兩個字符為字母或者漢字,而字符也為雙峰結(jié)構(gòu)的,所以用后面五個字符中的最大寬度作為前面字符的寬度是合理的。分割前面兩個字符的方法為:從第二字符和第三字符的分割點向前移動字符寬度個像素,然后將離該點的最近一個波谷值作為車牌第一字符和第二字符的分割點。利用同樣方法也可以確定第一個字符的開始位置。
步驟7:對分割出來的字符序列進行檢測,看該序列是否符合車牌字符序列的特征。該特征可以用下面表達式來表示,假設(shè)dis1為前面兩個字符的寬度向量,dis2為后面五個字符看寬度向量,width為車牌寬度,height為車牌高度,則一個合理的車牌字符序列必須滿足下面的表達式:
min(min(dis1),min(dis2))>width/10
max(dis2)>width/5
height/min(dis1)<3
這樣就可以從車牌區(qū)域中分割出字符序列,從上面的算法步驟中可以看出,對于還有部分左右邊框的車牌,本發(fā)明的分割算法對其有很高的魯棒性。
s5采用基于聯(lián)合hog特征的車牌字符識別算法進行車牌分割字符識別;
對于已經(jīng)分割好的車牌字符,需要進行識別才能輸出,本發(fā)明提出了聯(lián)合方向梯度直方圖和核主成分分析法特征,它綜合了二值圖、灰度圖、16值圖的方向梯度直方圖特征的優(yōu)點,能夠較好提取漢字結(jié)構(gòu)特征。方向梯度直方圖特征進行聯(lián)合后,hog特征維數(shù)增加,此時為了縮短特征提取時間,本系統(tǒng)用核主成分分析法方法進行降維。字符識別方法采用的是對小樣本問題有較好分類效果的支持向量機。
常見車牌有7個字符,文中是將分割下來的7個字符進行識別。車牌字符由英文字母、漢字和數(shù)字組成,中文和英文數(shù)字的特點不一樣:中文漢字筆畫稠密、輪廓復(fù)雜;數(shù)字和英文則輪廓清晰,結(jié)構(gòu)簡單。因此文中對漢字和英文數(shù)字采用不同的分類器,對它們分別提取特征。本發(fā)明車牌識別過程是:首先確定字符的分類器。然后分別提取漢字、數(shù)字字母的灰度方向梯度直方圖(hog)特征、二值hog特征、16值hog特征,將它們組合成聯(lián)合hog特征,將得到的聯(lián)合hog特征用核主成分分析法進行降維。最后將漢字和數(shù)字字母的聯(lián)合hog特征送入支持向量機進行訓(xùn)練和預(yù)測,將漢字和數(shù)字字母的識別結(jié)果進行組合,得到最終的車牌字符識別結(jié)果?;诼?lián)合hog的車牌識別流程如圖9所示。
s5.1提取hog(方向梯度直方圖)特征
方向梯度直方圖的核心思想是計算圖像中被檢測目標的局部梯度的統(tǒng)計信息。由于梯度是針對邊緣輪廓,因此被檢測目標的外形輪廓可以由梯度分布所描述。因此,hog特征就是通過將分割下來的單個字符分割成小的連通區(qū)域,成為細胞單元,每個細胞單元中的每個像素生成一個梯度直方圖,這些直方圖的串聯(lián)就可表示出所檢測目標的特征。為了提高光照變化的適應(yīng)性,將這些直方圖在分割下來的單個字符中的一個較大區(qū)域內(nèi)進行對比度歸一化,具體來說就是計算每個局部直方圖在塊中的密度,根據(jù)密度來對這個塊中的每個細胞單元進行歸一化。經(jīng)過歸一化后,hog特征對光照變化和陰影可以獲得更好的適應(yīng)能力。
hog具體實現(xiàn)過程如下:
(1)計算圖像梯度:先用模板[-1,0,1]對分割下來的單個字符做卷積運算,得到水平方向梯度分量gh(x,y),如式(1)所示;再用模板[-1,0,1]對分割下來的單個字符做卷積運算,得到豎值方向梯度分量gv(x,y),如式(2)所示;最后,計算該像素點的梯度幅值m(x,y)和θ(x,y)梯度方向,如式(3)、式(4)所示,f(x,y)表示該點的像素值,計算公式為:
gh(x,y)=f(x+1,y)-f(x-1,y)(1)
gv(x,y)=f(x,y+1)-f(x,y-1)(2)
m(x,y)≈|gh(x,y)|+|gv(x,y)|(3)
(2)構(gòu)建梯度方向直方圖:在細胞單元中的每個像素點都要為基于某個梯度方向的直方柱投票,梯度方向可取0~180°或者0~360°,在以往的實驗證明0~180°效果較好。單個字符圖像被分為若干個細胞單元,每個細胞單元包括8*8個像素,將梯度范圍分為9個方向角度,因此利用9個方向角度對8*8個像素的梯度信息進行投票。特別指出,直方圖投票采取加權(quán)投票,即每個像素的梯度幅值作為投票權(quán)重。
(3)將細胞單元組合成塊:塊的結(jié)構(gòu)有兩種:矩形塊(r-hog)和環(huán)形塊(c-hog)。本發(fā)明采用矩形塊來進行目標檢測,矩形塊一般包含3個參數(shù):每個塊中細胞單元的數(shù)目,每個細胞單元中像素點的數(shù)目以及每個細胞單元的方向角數(shù)目。
(4)塊內(nèi)歸一化計算公式如下所示:
l2_hys:先計算l2_norm,然后將v的最大值限定為0.2,再進行歸一化。
其中,v表示包含給定塊統(tǒng)計直方圖信息的未歸一化向量;δ是一個很小的常數(shù),作用是為了避免分母為0;||v||k是v的k階范數(shù)。在dalal的實驗中發(fā)現(xiàn)l2_hys,l2_norm,l1_sqrt效果差不多,l1_norm字符識別效果要差一些,但這4個歸一化方法在識別性能上對比未歸一化都有明顯提高。本發(fā)明中采用的是l2_norm進行歸一化。
假設(shè)將車牌字符歸一化到64*128,每8*8個像素組成一個細胞單元,每2*2個細胞單元組成一個塊,當塊的滑動步長為8時,掃描垂直方向可以滑動15次,水平方向可以滑動7次,因此可以得到36*7*15=3780位的特征算子。單個車牌字符處理效果如圖4所示,車牌字符灰度圖的梯度幅值圖和梯度角度圖包含的細節(jié)信息多,但缺點在于角度圖中的字符輪廓不明顯,影響了車牌字符識別率。為了克服上述缺點,提出了聯(lián)合hog特征,將灰度圖的hog特征、二值圖的hog特征和16值圖的hog特征聯(lián)合起來。
s5.2聯(lián)合方向梯度直方圖
聯(lián)合hog方法,即將灰度圖和二值圖分別計算hog并組合成聯(lián)合特征,如下所示:h代表是得到的聯(lián)合特征,hi表示灰度圖和二值圖的hog特征,ωi代表的是灰度圖和二值圖hog的權(quán)重值,權(quán)重之和為1。權(quán)重分布的不同對后來的識別結(jié)果有很大影響。經(jīng)實驗證明,權(quán)重值都為0.5時,識別效果是最好的,并且對比單獨的灰度圖或二值圖的識別效果好:
同時將16值圖的hog特征加入聯(lián)合hog特征,即分別進行車牌字符的灰度圖、二值圖和16值圖的hog計算,將結(jié)果以某種關(guān)系線性組合起來得到的聯(lián)合hog特征,組合如下式所示:
h=ωgrayhgray+ω2h2+ω16h16
h代表最終的聯(lián)合hog特征,hgray,h2,h16分別代表車牌字符灰度圖、二值圖和16值圖的hog特征,ωi代表權(quán)重。
聯(lián)合hog將灰度圖、二值圖和16值圖的特點結(jié)合起來,能夠一定程度的彌補單獨進行灰度圖或者二值圖的hog預(yù)案算造成的不足,對識別率有也有一定程度的提高。
s5.3車牌字符特征分類
車牌字符分類主要是指將待識別的字符特征與經(jīng)過學(xué)習的訓(xùn)練字符特征通過某一算法進行對比來進行識別。常用的分類器主要包括最小距離分類器、k-最近鄰分類器、貝葉斯分類器、決策樹、adaboost級聯(lián)分類器、人工神經(jīng)網(wǎng)絡(luò)和支持向量機(svm)。根據(jù)需要訓(xùn)練分類的車牌字符特性及不同分類器的特點,本發(fā)明主要采用支持向量機進行分類。支持向量機的核心思想在于利用一個分類超平面當作決策的曲面,來最大化正類和負類兩者的邊緣距離??紤]到本文中車牌字符識別中訓(xùn)練樣本的數(shù)量有限,而且生成的hog維數(shù)較多,因此本發(fā)明采用的對小樣本問題有較好分類效果的支持向量機。針對多分類的問題,本文采用的“一對一”的方式進行劃分。svm在處理樣本并進行訓(xùn)練預(yù)測識別的過程大致為以下幾步:在車牌字符樣本中選擇訓(xùn)練樣本集和測試樣本集,分別對訓(xùn)練集和測試集進行預(yù)處理,并提取hog等特征,然后利用交叉驗證法選擇最優(yōu)參數(shù)c和g,最后利用最佳參數(shù)訓(xùn)練svm,獲得訓(xùn)練模型,利用訓(xùn)練模型對測試集進行預(yù)測,得到預(yù)測分類準確率。svm中常用的核函數(shù)包括線性核函數(shù),徑向基核函數(shù),多項式核函數(shù),sigmoid核函數(shù)。對于不同的核函數(shù)測試集的分類準確率也會不同,車牌字符識別中采用徑向基核函數(shù)的分類準確率最高。因此,本發(fā)明svm的核函數(shù)采用的是rbf核函數(shù)。
綜上所述,在提取特征以后,利用svm進行訓(xùn)練分類。訓(xùn)練分類后,將分割好的字符輸入訓(xùn)練器中,輸出識別的車牌字符。
本發(fā)明中提出的方法實際上可嵌入fpga實現(xiàn),運用于具有實時輸出圖像功能的車牌識別功能的相機或攝像機監(jiān)控系統(tǒng)中。
本領(lǐng)域技術(shù)人員將清楚本發(fā)明的范圍不限制于以上討論的示例,有可能對其進行若干改變和修改,而不脫離所附權(quán)利要求書限定的本發(fā)明的范圍。盡管己經(jīng)在附圖和說明書中詳細圖示和描述了本發(fā)明,但這樣的說明和描述僅是說明或示意性的,而非限制性的。本發(fā)明并不限于所公開的實施方式。