本發(fā)明涉及圖像處理技術(shù),特別涉及一種車牌定位方法。
背景技術(shù):
隨著經(jīng)濟(jì)蓬勃發(fā)展,推動(dòng)了交通運(yùn)輸業(yè)的大發(fā)展,導(dǎo)致機(jī)動(dòng)車輛大幅增加。然而,對(duì)機(jī)動(dòng)車輛的智能監(jiān)管是目前面臨的問題之一。機(jī)動(dòng)車輛牌照自動(dòng)定位技術(shù)則是智能交通監(jiān)管系統(tǒng)的核心問題。該技術(shù)在解決交通系統(tǒng)的諸多問題,如車輛收費(fèi)和管理、車流量檢測、違章車輛監(jiān)控、停車場收費(fèi)管理以及套牌、假牌車輛辨識(shí)等具體問題中存在著廣泛的應(yīng)用,具有巨大的經(jīng)濟(jì)價(jià)值。隨著計(jì)算機(jī)性能的提高和圖像處理技術(shù)的發(fā)展,車牌定位識(shí)別系統(tǒng)已日趨成熟。
目前主流的車牌定位方法主要分為:基于形態(tài)學(xué)的車牌定位算法與基于機(jī)器學(xué)習(xí)的車牌定位算法?;谛螒B(tài)學(xué)的車牌定位算法是根據(jù)數(shù)字字母的形狀來確定車牌位置,雖然具有簡單,計(jì)算時(shí)間短的優(yōu)點(diǎn),但其缺點(diǎn)是需要針對(duì)不同的場景調(diào)整闕值,適應(yīng)能力和準(zhǔn)確率較低;而基于機(jī)器學(xué)習(xí)的車牌定位雖然準(zhǔn)確率高,但其需要對(duì)大量的樣本進(jìn)行特征分析、計(jì)算時(shí)間較長并不符合目前實(shí)時(shí)識(shí)別車牌的要求。
因此,需要提供一種能夠快速準(zhǔn)確識(shí)別車牌位置的方法,從而節(jié)省計(jì)算時(shí)間,提高適應(yīng)能力和準(zhǔn)確率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種快速準(zhǔn)確的車牌定位方法。
為達(dá)成上述目的,本發(fā)明提供了一種車牌定位方法,該方法包括以下步驟:
S10:擷取含有車牌的圖像;
S20:通過分別提取該圖像中符合車牌顏色的指定顏色特征、水平邊緣特征和豎直邊緣特征以得到一張包含車牌候選區(qū)域的二值圖;
S30:對(duì)所述車牌候選區(qū)域進(jìn)行膨脹,并通過計(jì)算所述車牌候選區(qū)域中各連通域的面積,確定面積最大的連通域?yàn)檐嚺茀^(qū)域,所述連通域?yàn)橛啥鄠€(gè)連續(xù)且像素值為1的像素組成的區(qū)域。
優(yōu)選地,步驟S20包括:
S21:提取該圖像中符合車牌顏色的指定顏色特征以得到一張包含指定顏色特征區(qū)域的二值圖像;
S22:提取該圖像中水平邊緣特征和豎直邊緣特征以得到一張包含邊緣特征區(qū)域的二值圖像;
S23:將上述包含指定顏色特征區(qū)域的二值圖像和包含邊緣特征區(qū)域的二值圖像進(jìn)行邏輯與運(yùn)算,以得到所述包含車牌候選區(qū)域的二值圖。
優(yōu)選地,步驟S21包括:將所述含有車牌的圖像由RGB格式圖像轉(zhuǎn)換到HSV格式圖像,提取該圖像中符合車牌顏色的指定顏色特征;步驟S22包括:將所述包含車牌的圖像轉(zhuǎn)換為灰度圖像,利用Sobel算子提取所述水平邊緣特征和豎直邊緣特征。
優(yōu)選地,步驟S22還包括對(duì)所述邊緣特征區(qū)域進(jìn)行膨脹的步驟。
優(yōu)選地,對(duì)所述邊緣特征區(qū)域進(jìn)行膨脹的步驟包括:設(shè)定長度為P個(gè)像素、寬度為Q個(gè)像素的矩形,P和Q均為大于等于3的正整數(shù);對(duì)所述包含邊緣特征區(qū)域的二值圖像中每一個(gè)像素值為1的像素,將以其為中心的該矩形范圍內(nèi)的所有像素的像素值替換為1。
優(yōu)選地,步驟S30中對(duì)所述車牌候選區(qū)域進(jìn)行膨脹包括矩形像素組膨脹和/或形態(tài)學(xué)膨脹,其中所述矩形像素組膨脹包括:設(shè)定長度為M個(gè)像素、寬度為N個(gè)像素的矩形,M和N均為大于等于3的正整數(shù);對(duì)所述包含車牌候選區(qū)域的二值圖中每一個(gè)像素值為1的像素,將以其為中心的該矩形范圍內(nèi)的所有像素的像素值替換為1。
優(yōu)選地,步驟S30中計(jì)算所述車牌候選區(qū)域中各連通域的面積的步驟包括:
S31:沿水平方向逐行掃描所述車牌候選區(qū)域;
S32:為每一行中像素值為1的像素及其相鄰像素值為1的像素標(biāo)記連通域編號(hào);
S33:計(jì)算各所述連通域中像素值為1的像素的個(gè)數(shù)以得到各所述連通域的面積。
優(yōu)選地,步驟S32包括:
S321:對(duì)于像素值為1的當(dāng)前像素判斷其是否已被標(biāo)記為屬于第1個(gè)-第i個(gè)中任一個(gè)連通域,若是則進(jìn)行步驟S323,若否則將其標(biāo)記為屬于第i+1個(gè)連通域并使得第i+1個(gè)連通域中像素值為1的像素個(gè)數(shù)加1;對(duì)于像素值為0的當(dāng)前像素進(jìn)行步驟S323;其中i為已標(biāo)記的連通域的編號(hào)最大值;
S322:掃描該當(dāng)前像素的8個(gè)相鄰像素,若有K個(gè)相鄰像素的像素值為1且沒有被標(biāo)記為屬于第1個(gè)-第i+1個(gè)中任一個(gè)連通域,將該K個(gè)相鄰像素標(biāo)記為屬于第i+1個(gè)連通域并使得第i+1個(gè)連通域中像素值為1的像素個(gè)數(shù)遞增K,其中K為小于等于8的正整數(shù);
S323:選取當(dāng)前行的下一個(gè)像素作為當(dāng)前像素;
重復(fù)上述步驟S321-S323直至該行所有像素掃描完畢。
優(yōu)選地,所述車牌定位方法還包括:將所述車牌區(qū)域的坐標(biāo)映射至所述含有車牌的圖像中,以獲得車牌圖像。
相較于現(xiàn)有技術(shù),本發(fā)明采用一種基于顏色和連通域的車牌定位方法,即充分利用了車牌背景和車身顏色不同的特點(diǎn),同時(shí)又結(jié)合了車牌外框和車牌字符紋理,可以在具有復(fù)雜背景的全景圖中準(zhǔn)確定位車牌。同時(shí),相比于現(xiàn)有的機(jī)器學(xué)習(xí)車牌定位法和基于形態(tài)學(xué)車牌定位法,本發(fā)明的車牌定位方法更簡單,節(jié)省了計(jì)算時(shí)間,提高了適應(yīng)性和準(zhǔn)確性。
附圖說明
圖1所示為本發(fā)明一實(shí)施例的車牌定位方法的流程圖;
圖2所示為包含指定顏色特征區(qū)域的二值圖像;
圖3所示為包含車牌的灰度圖像;
圖4所示為包含車牌候選區(qū)域的二值圖;
圖5所示為車牌候選區(qū)域進(jìn)行膨脹后的二值圖像;
圖6所示為標(biāo)記車牌候選區(qū)域中各像素所屬連通域的流程圖。
具體實(shí)施方式
為使本發(fā)明的內(nèi)容更加清楚易懂,以下結(jié)合說明書附圖,對(duì)本發(fā)明的內(nèi)容作進(jìn)一步說明。當(dāng)然本發(fā)明并不局限于該具體實(shí)施例,本領(lǐng)域內(nèi)的技術(shù)人員所熟知的一般替換也涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
如圖1所示,本發(fā)明的車牌定位方法包括以下步驟:
S10:擷取含有車牌的圖像。
本步驟中,通過彩色相機(jī)攝像頭拍攝圖像,得到含有車牌的圖像。
S20:通過分別提取該圖像中符合車牌顏色的指定顏色特征、水平邊緣特征和豎直邊緣特征以得到一張包含車牌候選區(qū)域的二值圖。
本步驟中,通過提取含有車牌的圖像中符合車牌顏色的指定顏色特征,從而得到一張包含指定顏色特征區(qū)域的二值圖像;通過提取含有車牌的圖像中水平邊緣特征和豎直邊緣特征,從而得到一張包含邊緣特征區(qū)域的二值圖像;將上述包含指定顏色特征區(qū)域的二值圖像和包含邊緣特征區(qū)域的二值圖像進(jìn)行邏輯與運(yùn)算,最終得到包含車牌候選區(qū)域的二值圖。
其中,通過提取含有車牌的圖像中符合車牌顏色的指定顏色特征,從而得到一張包含指定顏色特征區(qū)域的二值圖像的步驟具體通過以下方法實(shí)現(xiàn)。
首先,將含有車牌的圖像由RGB格式圖像轉(zhuǎn)換為HSV格式圖像。HSV色彩空間比RGB色彩空間更具有直觀性,其中H代表色調(diào),取值范圍0~360°;S代表飽和度,取值范圍0~1;V代表亮度,取值范圍0~1。R、G、B分別是三基色格式中的紅、藍(lán)、綠分量值??梢酝ㄟ^多種方式實(shí)現(xiàn)RGB格式圖像至HSV格式圖像的轉(zhuǎn)換,在本發(fā)明中采用分段定義法:
V=max(R,G,B)
其中,如果H<0,H=H+360°。
轉(zhuǎn)換完成后,獲取HSV格式圖像中每一個(gè)像素點(diǎn)的色度信息、飽和度信息與亮度信息,由此獲得HSV色彩空間Img_hsv,色彩空間Img_hsv中的元素即為每個(gè)像素上的色度信息、飽和度信息與亮度信息。然后,提取指定顏色特征的區(qū)域。指定顏色可以選擇以下顏色中的至少一種:藍(lán)色、黃色、白色。在本實(shí)施例中,選擇藍(lán)色作為指定色,即在色彩空間Img_hsv中選取一個(gè)藍(lán)色子空間Img_blue。其中,藍(lán)色子空間Img_blue中的元素滿足(H≥0.5)&(H≤0.75)&(S≥0.25)&(V≥0.125),“&”為邏輯與的關(guān)系。提取出藍(lán)色特征后,將藍(lán)色像素的像素值設(shè)為1,其它顏色像素的像素值設(shè)為0,從而得到一張包含藍(lán)色特征區(qū)域的二值圖像,如圖2所示。雖然本實(shí)施例中將RGB格式圖像轉(zhuǎn)換為HSV格式圖像,也可以將RGB格式圖像轉(zhuǎn)換為其他格式圖像(如HSL等)以進(jìn)一步提取指定顏色特征。
接下來,將說明步驟S22中提取含有車牌的圖像中水平邊緣特征和豎直邊緣特征,從而得到一張包含邊緣特征區(qū)域的二值圖像的具體實(shí)現(xiàn)方法。
由于車牌區(qū)域相比于車身區(qū)域具有較豐富的邊緣特征,因此對(duì)含有車牌的圖像做邊緣特征提取能夠有效減少車身區(qū)域?qū)嚺茀^(qū)域提取的影響。
如圖3所示,首先將RGB格式的含有車牌圖像轉(zhuǎn)換成灰度圖Img_grey,然后利用Sobel算子對(duì)灰度圖像的每一個(gè)像素點(diǎn)做卷積,獲得車牌圖像邊緣特征值。其中,為了獲得車牌圖像中車牌邊框以及車牌內(nèi)部字符水平信息,對(duì)車牌圖像做水平邊緣特征提?。?/p>
Img_sobel_x=Img_grey*sobel_x
為了獲得車牌圖像中車牌邊框以及車牌內(nèi)部字符垂直信息,對(duì)車牌圖像做豎直邊緣特征提取:
Img_sobel_y=Img_grey*sobel_y
其中sobel_x和sobel_y分別為水平Sobel算子和豎直Sobel算子,在本實(shí)施例中它們分別為:
經(jīng)過Sobel算子卷積后獲得兩個(gè)一維數(shù)組Img_sobel_x和Img_sobel_y,分別記錄了圖像的水平邊緣點(diǎn)和垂直邊緣點(diǎn),從而可以得到一張包含水平和豎直邊緣特征區(qū)域的二值圖像。之后,對(duì)邊緣特征區(qū)域進(jìn)行膨脹。本實(shí)施例中,利用矩形像素組填充的方法進(jìn)行膨脹。具體地,設(shè)定長度為P個(gè)像素、寬度為Q個(gè)像素的矩形(P和Q均為大于等于3的正整數(shù)),然后對(duì)圖像中每一個(gè)像素值為1的像素,將以其為中心的該矩形范圍內(nèi)的所有像素的像素值替換為1,由此可使得邊緣信息變得更為豐滿。
將包含指定顏色特征區(qū)域的二值圖像和包含邊緣特征區(qū)域的二值圖像進(jìn)行邏輯與運(yùn)算,可以得到如圖4所示的包含車牌候選區(qū)域的二值圖。由于車牌候選區(qū)域既包含水平和垂直邊緣信息,又要同時(shí)滿足指定顏色信息,這樣基本上可以舍棄大量無用的疑似區(qū)域。
S30:對(duì)車牌候選區(qū)域進(jìn)行膨脹,并通過計(jì)算車牌候選區(qū)域中各連通域的面積,確定面積最大的連通域?yàn)檐嚺茀^(qū)域。
本步驟中,連通域指的是由多個(gè)連續(xù)且像素值為1的像素組成的區(qū)域。對(duì)車牌候選區(qū)域的膨脹可通過矩形像素組填充膨脹和/或形態(tài)學(xué)膨脹來完成。矩形像素組填充膨脹的方法和上述邊緣特征區(qū)域的膨脹方法相同,在此不作贅述。形態(tài)學(xué)膨脹的次數(shù)可根據(jù)實(shí)際需求設(shè)定。圖5所示為經(jīng)膨脹后的車牌候選區(qū)域,可以發(fā)現(xiàn)各車牌候選區(qū)域內(nèi)部的空隙被填滿了。通過本步驟的膨脹處理(類似于加粗處理),可以使車牌候選區(qū)域更加近似車牌形狀的封閉圖形。這一步的目的主要是為了將各個(gè)車牌候選域變成封閉區(qū)域以方便下一步尋找連通域。
接下來將說明如何計(jì)算車牌候選區(qū)域中各連通域的面積。
在計(jì)算車牌候選區(qū)域中各連通域的面積時(shí)需沿水平方向逐行掃描車牌候選區(qū)域;為每一行中像素值為1的像素及其相鄰像素值為1的像素標(biāo)記連通域編號(hào);以及計(jì)算各連通域中像素值為1的像素的個(gè)數(shù)以得到各連通域的面積。
對(duì)像素標(biāo)記連通域編號(hào)的具體實(shí)施方法如圖6所示:
掃描車牌候選區(qū)域膨脹后的二值圖,從第一個(gè)像素開始,順序?yàn)閺淖蟮接覐纳系较?。連通域的編號(hào)也是從1開始標(biāo)記。
當(dāng)對(duì)某一行像素進(jìn)行掃描時(shí),判斷當(dāng)前像素Pi的像素值(S601);若為1則進(jìn)一步判斷其是否已經(jīng)被標(biāo)記為屬于已有編號(hào)的連通域(S602);若其沒有被標(biāo)記過,那么將像素Pi標(biāo)記為屬于新的連通域編號(hào)(即已標(biāo)記的連通域編號(hào)的最大值+1),并將該新編號(hào)的連通域中像素值為1的像素個(gè)數(shù)加1(S603);繼續(xù)掃描當(dāng)前像素Pi的8個(gè)相鄰像素(S604);如果有相鄰像素(如K個(gè),1≤K≤8)的像素值為1且沒有被標(biāo)記為屬于已有編號(hào)的任意一個(gè)連通域(S605),將該相鄰像素標(biāo)記為屬于與像素Pi相同的連通域并使得該連通域中像素值為1的像素個(gè)數(shù)遞增K(S606),若沒有這樣的相鄰像素那么繼續(xù)掃描該行的下一個(gè)像素(S607)。如果像素Pi已經(jīng)被標(biāo)記過,那么繼續(xù)掃描該行的下一個(gè)像素(S607);如果當(dāng)前像素Pi的像素值為0,那么繼續(xù)掃描該行的下一個(gè)像素(S607)。
重復(fù)進(jìn)行上述步驟直到該行的所有像素掃描完畢,逐行掃描,當(dāng)全部像素掃描完畢后,可以得到多個(gè)連通域,選取其中像素值為1的像素個(gè)數(shù)最多的連通域,即面積最大的連通域,作為車牌區(qū)域。
較佳地,還可以將車牌區(qū)域的坐標(biāo)映射至最初擷取的含有車牌的圖像中,從而獲得車牌圖像。以獲得車牌圖像步驟S442:根據(jù)所述車牌區(qū)域坐標(biāo),通過映射獲得原圖中車牌圖像。再根據(jù)所獲得的車牌區(qū)域坐標(biāo),通過映射獲得原圖中車牌圖像。
綜上所述,相較于現(xiàn)有技術(shù),本發(fā)明采用一種基于顏色和連通域的車牌定位方法,即充分利用了車牌背景和車身顏色不同的特點(diǎn),同時(shí)又結(jié)合了車牌外框和車牌字符紋理,可以在具有復(fù)雜背景的全景圖中準(zhǔn)確定位車牌。同時(shí),相比于現(xiàn)有的機(jī)器學(xué)習(xí)車牌定位法和基于形態(tài)學(xué)車牌定位法,本發(fā)明的車牌定位方法更簡單,節(jié)省了計(jì)算時(shí)間,提高了適應(yīng)性和準(zhǔn)確性。
雖然本發(fā)明已以較佳實(shí)施例揭示如上,然所述諸多實(shí)施例僅為了便于說明而舉例而已,并非用以限定本發(fā)明,本領(lǐng)域的技術(shù)人員在不脫離本發(fā)明精神和范圍的前提下可作若干的更動(dòng)與潤飾,本發(fā)明所主張的保護(hù)范圍應(yīng)以權(quán)利要求書所述為準(zhǔn)。