本發(fā)明涉及一種圖像處理技術(shù),特別涉及一種通用車牌識(shí)別方法。
背景技術(shù):
目前基于計(jì)算機(jī)視覺(jué)的車牌自動(dòng)識(shí)別系統(tǒng)很常見(jiàn),比如在停車庫(kù)車輛入口處、道路橋梁收費(fèi)等處,通過(guò)對(duì)車牌區(qū)域進(jìn)行拍照并進(jìn)行圖像識(shí)別自動(dòng)獲取車牌。
在目前應(yīng)用中,通常觸發(fā)相機(jī)啟動(dòng)的方法是通過(guò)傳感器觸發(fā),傳感器主要有類似紅外和壓力二種,比如在收費(fèi)口一般是紅外或超聲波觸發(fā),例如紅外觸發(fā)基于車輛經(jīng)過(guò)擋住了發(fā)射和接收波之間的線路、超聲波則檢測(cè)到發(fā)射波與接收到的反射回波之間距離在特定范圍時(shí)觸發(fā)相機(jī)啟動(dòng);在道路中比如闖紅燈、隨意變道行為的抓拍則大多采用是地面安裝壓力傳感器,當(dāng)壓力傳感器測(cè)量數(shù)據(jù)滿足一定條件時(shí)啟動(dòng)相機(jī)。這些啟動(dòng)相機(jī)的觸發(fā)方式?jīng)Q定了拍照時(shí)相機(jī)與車輛的位置是大體相對(duì)固定的。如果出現(xiàn)并非在傳感器埋設(shè)地的車輛需要記錄車牌(如道路上肇事逃逸),通常是把這段視頻截取下來(lái)另外用計(jì)算機(jī)視覺(jué)算法做車牌識(shí)別出來(lái)。
在第二步對(duì)車牌進(jìn)行識(shí)別時(shí),目前識(shí)別方法主要是針對(duì)特定某一國(guó)車牌進(jìn)行識(shí)別,比如國(guó)內(nèi)車牌的主要特點(diǎn)是只有一行,車牌背景色為單色或者單一色度漸變背景車牌(如電動(dòng)車車牌),即使個(gè)性車牌也是如此。對(duì)來(lái)自其它國(guó)家車輛車牌格式明顯不同的車輛,識(shí)別率很低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明是針對(duì)現(xiàn)在的車牌識(shí)別存在的問(wèn)題,提出了一種通用車牌識(shí)別方法,通過(guò)視頻檢測(cè)進(jìn)行拍照、對(duì)圖像進(jìn)行計(jì)算機(jī)視覺(jué)處理,對(duì)車輛與相機(jī)的相對(duì)位置無(wú)嚴(yán)格要求。該方法在識(shí)別車牌時(shí)不局限于某一特定國(guó)家車牌特點(diǎn),無(wú)論哪國(guó)車牌都能進(jìn)行車牌有效信息的提取,對(duì)背景或復(fù)雜、或簡(jiǎn)單的車牌均可正確識(shí)別。
本發(fā)明的技術(shù)方案為:一種通用車牌識(shí)別方法,具體包括如下步驟:
1)觸發(fā)相機(jī)進(jìn)行視頻拍攝,具體包括二個(gè)獨(dú)立進(jìn)程:(a)光流法獲得運(yùn)動(dòng)前景并提取關(guān)鍵特征點(diǎn);(b)關(guān)鍵特征點(diǎn)聚類后聚焦拍照;
2)運(yùn)動(dòng)圖像去模糊:視頻所得圖像清晰,則進(jìn)入步驟3),如視頻所得圖像清晰度不夠,根據(jù)步驟1)中(b)所得到的聚焦特征點(diǎn)集合值進(jìn)行濾波去除運(yùn)動(dòng)引發(fā)的模糊;
3)車牌定位,得到車牌區(qū)域輪廓二值化圖i1;
4)仿射,對(duì)拍攝到的車牌在圖像的傾斜度仿射矯正,根據(jù)i1計(jì)算仿射變換的參數(shù),對(duì)i進(jìn)行仿射變換得到仿射變換后車牌圖像i2;
5)車牌內(nèi)部區(qū)域分割,提取信息:對(duì)步驟4)仿射變換后車牌圖像i2采用sobel算子提取邊界,進(jìn)行車牌背景底色/背景圖案邊緣初步篩選;將主信息與未剔除的圖案區(qū)進(jìn)行區(qū)分,提取主信息;提取車牌內(nèi)部矩形區(qū)域;車牌上方、下方輔助信息定位;檢測(cè)車牌是否有上部、下部的輔助信息,如有獲取上方、下方輔助信息;
6)字符/圖標(biāo)識(shí)別:對(duì)步驟5)區(qū)域內(nèi)的信息進(jìn)行字符/圖標(biāo)識(shí)別,完成整個(gè)車牌識(shí)別。
所述步驟1)中(a)光流法獲得運(yùn)動(dòng)前景并提取關(guān)鍵特征點(diǎn)的具體實(shí)現(xiàn)步驟如下(a1)至(a6):
設(shè)當(dāng)前幀為f,該幀的前幀為fp,該幀的后幀為fn,
(a1)對(duì)視頻當(dāng)前幀f利用光流法檢測(cè)前景目標(biāo);
(a2)如果當(dāng)前幀f中出現(xiàn)了前景目標(biāo),找關(guān)鍵特征點(diǎn),如果特征點(diǎn)數(shù)目大于門限值i,則跳轉(zhuǎn)至步驟(a3);否則忽略該幀,將該幀標(biāo)記為前幀fp、將該幀的后幀fn標(biāo)記為當(dāng)前幀f,依此類推,然后跳轉(zhuǎn)至步驟(a1);
(a3)歷遍當(dāng)前幀每個(gè)關(guān)鍵特征點(diǎn),對(duì)各點(diǎn)分別記錄以下三組參數(shù):其在當(dāng)前幀f的坐標(biāo)(x,y)、截止當(dāng)前幀該特征點(diǎn)共出現(xiàn)的次數(shù)、相對(duì)運(yùn)動(dòng)坐標(biāo)-即該特征點(diǎn)在fp幀中坐標(biāo)(xp,yp)與其在當(dāng)前幀f中坐標(biāo)(x,y)之間的差值dx=x-xp,dy=y(tǒng)-yp,若該特征點(diǎn)是首次出現(xiàn),則直接設(shè)其相對(duì)運(yùn)動(dòng)坐標(biāo)為(0,0);記錄該特征點(diǎn)相對(duì)運(yùn)動(dòng)坐標(biāo)時(shí),將數(shù)據(jù)存放在一個(gè)鏈表中,鏈表的每一項(xiàng)是該點(diǎn)在二幀間相對(duì)運(yùn)動(dòng)坐標(biāo),x為行坐標(biāo),y為列坐標(biāo);
(a4)歷遍(a3)中關(guān)鍵特征點(diǎn),檢查每個(gè)特征關(guān)鍵點(diǎn)的運(yùn)動(dòng)位置變化量,若相對(duì)運(yùn)動(dòng)坐標(biāo)中dx或者dy的絕對(duì)值大于門限ii則判斷可能是匹配錯(cuò)誤,將該關(guān)鍵特征點(diǎn)及在步驟(a3)獲得的關(guān)于該點(diǎn)的參數(shù)全部刪除,繼續(xù)檢查下一個(gè)關(guān)鍵特征點(diǎn);否則保留該關(guān)鍵特征點(diǎn)及其參數(shù);
(a5)歷遍(a4)中保留下來(lái)的各關(guān)鍵特征點(diǎn),檢查若某關(guān)鍵特征點(diǎn)截止當(dāng)前幀f出現(xiàn)的次數(shù)大于門限值iii,說(shuō)明跟蹤的運(yùn)動(dòng)目標(biāo)不是突發(fā)的運(yùn)動(dòng)干擾而是穩(wěn)定的運(yùn)動(dòng)目標(biāo),將在本步驟中大于門限值iii的所有關(guān)鍵特征點(diǎn)及其參數(shù)傳給進(jìn)程(b),然后轉(zhuǎn)至步驟(a6);
(a6)將當(dāng)前幀改記為fp、將fn幀改記為f,……,依此類推,然后轉(zhuǎn)至步驟(a1)。
所述步驟1)中(b)關(guān)鍵特征點(diǎn)聚類后聚焦拍照,具體步驟如下(b1)至(b4):(b1)對(duì)來(lái)自進(jìn)程(a)的所有關(guān)鍵特征點(diǎn),根據(jù)其參數(shù)中相對(duì)運(yùn)動(dòng)坐標(biāo)中的行坐標(biāo)符號(hào)進(jìn)行第一次分類,分類規(guī)則如下:
只選取滿足如下條件的關(guān)鍵特征點(diǎn):關(guān)鍵特征點(diǎn)連續(xù)多幀相對(duì)運(yùn)動(dòng)坐標(biāo)中行坐標(biāo)dx的符號(hào)相同,即均為正或者均為負(fù);對(duì)選取的點(diǎn)進(jìn)行分類:將dx為正的所有關(guān)鍵特征點(diǎn)分為一類,稱正待分類集合;dx為負(fù)的所有關(guān)鍵特征點(diǎn)分為一類,稱負(fù)待分類集合;這二類集合中點(diǎn)所屬車輛運(yùn)動(dòng)方向相反;
(b2)分別對(duì)(b1)中的二個(gè)待分類集合繼續(xù)進(jìn)行第二次分類,目的是將關(guān)鍵特征點(diǎn)聚類,滿足一定條件的關(guān)鍵特征點(diǎn)被分到一類并被認(rèn)為屬于同一車輛,以便將相機(jī)焦距對(duì)準(zhǔn)需要拍照的車輛;
對(duì)(b1)中二個(gè)待分類集合分別進(jìn)行(b2)步驟第二次分類,(b2)的具體步驟如下(b2-1)至(b-3):
(b2-1)初始化:只建立一個(gè)已知分類,該已知分類中只有一個(gè)關(guān)鍵特征點(diǎn),是從該待分類集合中隨機(jī)選出的,同時(shí)將該關(guān)鍵特征點(diǎn)從待分類集合中刪除,重復(fù)步驟(b2-2)-(b2-3)直到該待分類集合為空;
(b2-2)從同一待分類集合中任意取出一個(gè)點(diǎn),記為特征點(diǎn)pany,如果該特征點(diǎn)與某個(gè)已知分類中特征點(diǎn)在連續(xù)二幀中記錄相對(duì)運(yùn)動(dòng)坐標(biāo)中dx坐標(biāo)之差的絕對(duì)值小于門限iv、并且dy坐標(biāo)之差絕對(duì)值小于門限v,則將該點(diǎn)放入該已知分類中,并從待分類集合中刪除該點(diǎn),轉(zhuǎn)至(b2-2);否則繼續(xù)步驟(b2-3);其中門限v和門限iv與道路限速有關(guān),當(dāng)?shù)缆废匏俑邥r(shí)將這二個(gè)門限值略微大點(diǎn),但不超過(guò)30;
(b2-3)如沒(méi)有已知分類中的特征點(diǎn)與pany之間滿足步驟(b2-2)中的判決關(guān)系,則新創(chuàng)建一個(gè)已知分類,將該特征點(diǎn)從待分類集合中刪除并放入新創(chuàng)建的已知分類中,轉(zhuǎn)至(b2-2);
(b3)整理分類結(jié)果,刪除不合理分類:對(duì)(b2)得到的所有已知分類結(jié)果進(jìn)行檢查:(1)每個(gè)已知分類中特征點(diǎn)數(shù)目若小于5個(gè),則認(rèn)為該已知分類不合理,對(duì)該已知分類予以刪除;(2)如果該已知分類中所有特征點(diǎn)在當(dāng)前幀中所圍輪廓面積小于門限vi,門限vi取決于相機(jī)架設(shè)位置和分辨率,物體太小沒(méi)有拍照的意義,則刪除該已知分類;
(b4)將保留下來(lái)的每個(gè)已知分類中各關(guān)鍵特征點(diǎn)當(dāng)作屬于同一車輛的關(guān)鍵特征點(diǎn),聚焦于同一已知分類中各點(diǎn)圍成區(qū)域進(jìn)行拍照,同時(shí)對(duì)該已知分類中各關(guān)鍵特征點(diǎn)相對(duì)運(yùn)動(dòng)坐標(biāo)鏈表中最后一組(dx、dy),即當(dāng)前幀與前面一幀的運(yùn)動(dòng)位置變化量,分別求平均,平均值分別標(biāo)記為(avedx,avedy)。
所述步驟5)所示車牌內(nèi)部區(qū)域分割,提取信息的具體步驟如下(e1)-(e5):
(e1)、車牌背景底色/背景圖案邊緣初步篩選:對(duì)步驟4)仿射變換后車牌圖像i2采用sobel算子提取邊界,得到邊界圖像ia,然后采用otsu方法對(duì)邊界圖像進(jìn)行二值化處理得到二值圖像ib;前景與背景之間的邊界經(jīng)sobel算子處理后絕對(duì)值非常大,在二值化后前景-背景邊界被設(shè)定為1,背景經(jīng)過(guò)sobel算子處理后,相鄰像素之間差異值很小,背景-背景邊界在二值化后會(huì)被設(shè)定為0;
(e2)、提取主信息:將主信息與未剔除的圖案區(qū)進(jìn)行區(qū)分,提取主信息,具體實(shí)現(xiàn)方法如下步驟(e2-1)至(e2-3):
(e2-1)首先對(duì)圖像ib檢測(cè)閉合區(qū)域,然后對(duì)閉合區(qū)域做種子填充,閉合區(qū)域內(nèi)部所有像素點(diǎn)用“1”填充,這樣得到的圖像稱為模板圖像ic,再將ic與圖像i2進(jìn)行“與”操作,得到圖id,id中有主、輔助信息、強(qiáng)邊緣的背景圖;
(e2-2)對(duì)應(yīng)模板ic中像素值為1的位置,在圖id中與之對(duì)應(yīng)的位置各像素點(diǎn)做直方圖統(tǒng)計(jì),初始化當(dāng)前像素值pg=2;
(e2-3)對(duì)當(dāng)前像素值pg進(jìn)行(e2-3a)至(e2-3d)處理:
(e2-3a)判斷是否pg小于254,若否,則表示沒(méi)有發(fā)現(xiàn)主信息,退出整個(gè)識(shí)別過(guò)程,車牌無(wú)法識(shí)別:若是,則統(tǒng)計(jì)步驟(e2-2)直方圖中像素值pg-2、pg-1、pg、pg+1、pg+2合計(jì)出現(xiàn)的概率,若合計(jì)出現(xiàn)的概率超過(guò)12%,則轉(zhuǎn)入(e2-3b);否則更新pg=pg+1,然后重復(fù)本步驟;
(e2-3b)在圖id中,連通為八連通、連通規(guī)則為:若相鄰像素值分別與pg之差的絕對(duì)值不超過(guò)2則連通;判斷此規(guī)則下出現(xiàn)的連通區(qū)域個(gè)數(shù)是否不少于門限vii,若是則轉(zhuǎn)到步驟(e2-3c);如否,更新pg=pg+1,返回(e2-3a);
(e2-3c)分別求(e2-3b)中這些連通區(qū)域的行坐標(biāo)x最大值、最小值,統(tǒng)計(jì)滿足以下條件:最大值大于車牌高度的55%、并且最小值小于車牌高度的40%的連通區(qū)域的個(gè)數(shù)n1,若n1小于門限vii則更新pg=pg+1,返回(e2-3a);否則轉(zhuǎn)至(e2-3d);
(e2-3d)判斷滿足(e2-3c)中x坐標(biāo)條件的連通區(qū)域?yàn)檐嚺浦餍畔^(qū)域,提取這些滿足條件連通區(qū)域圖像,將這些連通區(qū)域記錄在一個(gè)序列中,同時(shí)記錄這些連通區(qū)域行坐標(biāo)x最大值xmax、最小值xmin和列坐標(biāo)y最大值ymax、最小值ymin,并記錄下當(dāng)前pg值,然后轉(zhuǎn)到步驟(e3);
(e3)、提取車牌內(nèi)部矩形區(qū)域:具體做法如下(e3-1)至(e3-3):
(e3-1)更新模板圖像ic:對(duì)步驟(e2-3d)中獲得的主信息區(qū)域,在模板ic中對(duì)應(yīng)位置處像素值改為0,得到更新后的不含主信息的模板圖像—此處記為ic2;
(e3-2)將車牌圖像i2與ic2進(jìn)行“與”操作,得到的圖像記為ie,ie中不含車牌主信息、不含車牌背景中邊緣強(qiáng)度較弱圖案;
(e3-3)做步驟(e3-3a)至(e3-3c)處理去除車牌中邊界強(qiáng)度較強(qiáng)的背景圖案、提取車牌左、右方輔助信息的矩形;
(e3-3a)初始化矩形集合為空集,矩形集合用于記錄各個(gè)矩形;
(e3-3b)對(duì)圖ie用sobel邊緣算子提取邊界,得到邊界圖像if,對(duì)if進(jìn)行二值化處理:只要邊緣強(qiáng)度大于門限viii則二值化為1,否則為0,得到二值化圖像記為ig;在ig中檢查是否包含閉合輪廓,并記錄檢測(cè)到的閉合輪廓,若閉合輪廓內(nèi)部包含閉合輪廓,則只記錄最頂層閉合輪廓,內(nèi)部閉合輪廓勿需記錄;
(e3-3c)歷遍(e3-3b)中得到的所有輪廓,對(duì)每個(gè)頂層輪廓進(jìn)行如下操作(e3-3c1)至(e3-3c3):
(e3-3c1)該輪廓是否為矩形?如果否,則跳轉(zhuǎn)至(e3-3c2)步驟;若是則繼續(xù)判斷矩形寬、高比值是否在0.6-1.25之間、并且該矩形面積大于車牌面積的5%?若否,則忽略該矩形、對(duì)下一個(gè)頂層輪廓進(jìn)行(e3-3c1)步驟;若是則跳轉(zhuǎn)至(e3-3c3);
(e3-3c2)檢查是否該輪廓行坐標(biāo)x最小值小于車牌高度的一半、并且行坐標(biāo)x最大值大于車牌高度的一半?若是,更新模板ic2,即在模板ic2中該輪廓所包含區(qū)域?qū)?yīng)位置全部像素值修改為0;若否,則忽略該輪廓,返回(e3-3c1)對(duì)下一個(gè)輪廓進(jìn)行處理;
(e3-3c3)該矩形放入矩形集合中,更新模板ic2,在ic2中將該矩形內(nèi)部區(qū)域?qū)?yīng)位置像素值全部修改為0;
模板ic2像素值為1的區(qū)域?qū)?yīng)車牌圖i2中無(wú)弱背景圖案、無(wú)位于車牌中部的強(qiáng)背景圖案、無(wú)矩形內(nèi)輔助信息、無(wú)車牌主信息;
(e4)車牌上方、下方輔助信息定位:車牌中信息無(wú)論分幾行,行與行之間是有明顯間隔的,對(duì)模板ic2做水平方向投影,水平投影中出現(xiàn)峰值,如果只有上或下部出現(xiàn)峰值,則表明車牌有二部分組成,如果沒(méi)有明顯峰值,則車牌僅有中間信息組成;如果上、下部分投影后都沒(méi)有明顯峰值,說(shuō)明只有主信息一行,可以轉(zhuǎn)入步驟6)進(jìn)行信息識(shí)別了,否則轉(zhuǎn)入(e5);
(e5)獲取上方、下方輔助信息:具體步驟如下(e5-1)至(e5-8):
(e5-1)將車牌圖像i2與ic2做“與”操作,得到的圖像記為ih;若在(e4)中判斷上部有內(nèi)容,則從ih中提取x坐標(biāo)在0-xmin區(qū)間的圖像,相應(yīng)也從ic2中提取x坐標(biāo)在0-xmin區(qū)間的模板圖像;若判斷下部有內(nèi)容則在ih中提取x坐標(biāo)在xmax---車牌高度區(qū)間的圖像,相應(yīng)也從ic2中提取x坐標(biāo)在xmax---車牌高度區(qū)間的模板圖像;
(e5-2)---(e5-8)是對(duì)上、下二個(gè)區(qū)域分別進(jìn)行的,將從ih中提取的一個(gè)區(qū)域圖像稱為re,將從ic2中提取的對(duì)應(yīng)模板圖像標(biāo)記為ics;
(e5-2)對(duì)re運(yùn)用sobel邊緣算子,得到邊界圖像,對(duì)該邊界圖像進(jìn)行二值化處理得到圖像rc1,然后對(duì)得到的二值化圖rc1檢測(cè)閉合輪廓,只記錄頂層閉合輪廓;
(e5-3)在rc1中對(duì)每個(gè)頂層閉合輪廓進(jìn)行種子填充,得到圖像rc2,將rc2和re進(jìn)行“與”操作,得到圖像re2,同時(shí)記錄每個(gè)頂層閉合輪廓的最大、最小y坐標(biāo);
(e5-4)對(duì)rc1中各個(gè)頂層閉合輪廓,統(tǒng)計(jì)其在re2中對(duì)應(yīng)該輪廓所圍區(qū)域像素平均值和方差;
(e5-5)檢查每個(gè)輪廓的所圍區(qū)域均值和方差,若方差大于門限xi,則在ic2中將該輪廓所圍區(qū)域內(nèi)所有像素值改為0,判斷該輪廓屬于非輔助信息;否則判斷為“潛在輔助信息”的輪廓;
(e5-6)歷遍每個(gè)“潛在輔助信息”輪廓,檢查該輪廓y坐標(biāo)最大值是否大于車牌寬帶65%、并且最小值是否小于車牌寬帶35%?若是,則保留該輪廓,認(rèn)為它是輔助信息,可以被送入步驟6)進(jìn)行識(shí)別,并將其標(biāo)記為圖標(biāo),以便在后續(xù)對(duì)該區(qū)域不做字符分割處理,同時(shí)在ic2將所有該輪廓所圍區(qū)域像素值均改為0;若否,則該輪廓被判為屬于“孤立潛在輔助信息”的輪廓;
(e5-7)對(duì)所有“孤立潛在輔助信息”進(jìn)行合并處理:如果二個(gè)“孤立潛在輔助信息”輪廓中x坐標(biāo)最小值之差的絕對(duì)值不超過(guò)5,x坐標(biāo)最大值之差的絕對(duì)值不超過(guò)5、并且所圍區(qū)域像素平均值的差異之絕對(duì)值小于10,則認(rèn)為這二個(gè)孤立潛在輔助信息可以合并,將二者y坐標(biāo)的最小值中最小的一個(gè)、二者y坐標(biāo)最大值中大的一個(gè),分別作為合并后新區(qū)域y坐標(biāo)最小值、最大值,求新區(qū)域的像素平均值,重復(fù)本步驟直到?jīng)]有可以合并的“孤立潛在輔助信息”;
(e5-8)檢查每個(gè)合并后新區(qū)域y坐標(biāo)最大值是否大于車牌寬帶65%并且最小值是否小于車牌寬帶35%?如是,則認(rèn)為它含有輔助信息,需要對(duì)區(qū)域內(nèi)每個(gè)閉合區(qū)域進(jìn)行字符識(shí)別;若否,則說(shuō)明該區(qū)域無(wú)實(shí)質(zhì)性信息,直接丟棄該區(qū)域,并在ic2將所有該區(qū)域包含的像素點(diǎn)值設(shè)為0。
本發(fā)明的有益效果在于:本發(fā)明通用車牌識(shí)別方法,可對(duì)任何簡(jiǎn)單或復(fù)雜背景的車牌進(jìn)行正確識(shí)別。
附圖說(shuō)明
圖1為本發(fā)明通用車牌識(shí)別方法中車牌識(shí)別步驟圖。
具體實(shí)施方式
本發(fā)明通用車牌識(shí)別方法分為二個(gè)步驟(1)觸發(fā)相機(jī);(2)對(duì)車牌進(jìn)行自動(dòng)識(shí)別。二個(gè)步驟完全獨(dú)立,車牌識(shí)別與選擇哪種觸發(fā)相機(jī)的方式?jīng)]有任何關(guān)系。根據(jù)應(yīng)用的不同,在系統(tǒng)中相機(jī)可以有多種觸發(fā)方式,常用的傳感器觸發(fā)、紅外/超聲波等觸發(fā)方式對(duì)本系統(tǒng)依然有效,可以用在本系統(tǒng)中,在第一步可以不改變觸發(fā)方式,例如將本車牌識(shí)別系統(tǒng)用于停車場(chǎng)收費(fèi)時(shí),采用目前停車場(chǎng)車牌自動(dòng)識(shí)別系統(tǒng)的相機(jī)觸發(fā)方式就很簡(jiǎn)單有效。本發(fā)明中我們提出了一種更加通用的相機(jī)觸發(fā)方式:視頻采用光流法跟蹤車輛并按照一定規(guī)則觸發(fā)相機(jī)。在視頻拍攝中,相機(jī)位置固定而車輛是移動(dòng)的,光流法是目前常用的運(yùn)動(dòng)前景跟蹤方法。
如圖1所示車牌識(shí)別步驟圖:包括觸發(fā)相機(jī)、運(yùn)動(dòng)圖像去模糊、車牌定位、仿射、車牌內(nèi)部區(qū)域分割、字符/圖標(biāo)識(shí)別,其中從運(yùn)動(dòng)圖像去模糊到字符/圖標(biāo)識(shí)別屬于車牌識(shí)別步驟。而下面介紹的觸發(fā)相機(jī)部分的操作屬于可選項(xiàng),用戶可以按照實(shí)際應(yīng)用自行選擇其他觸發(fā)相機(jī)的方式。
1、觸發(fā)相機(jī)
該步驟操作又分為二個(gè)獨(dú)立進(jìn)程:(a)光流法獲得運(yùn)動(dòng)前景并提取關(guān)鍵特征點(diǎn);(b)關(guān)鍵特征點(diǎn)聚類后聚焦拍照。
設(shè)當(dāng)前幀為f,該幀的前幀為fp,該幀的后幀為fn,
進(jìn)程(a):光流法獲得運(yùn)動(dòng)前景并提取關(guān)鍵特征點(diǎn),對(duì)連續(xù)的視頻幀序列進(jìn)行處理,具體包括如下(a1)-(a6)步驟:
(a1)對(duì)視頻當(dāng)前幀f利用光流法檢測(cè)前景目標(biāo);
(a2)如果當(dāng)前幀f中出現(xiàn)了前景目標(biāo),找關(guān)鍵特征點(diǎn),如果特征點(diǎn)數(shù)目大于門限值i(門限值i缺省設(shè)為5),則跳轉(zhuǎn)至步驟(a3);否則忽略該幀,將該幀標(biāo)記為前幀fp、將該幀的后幀fn標(biāo)記為當(dāng)前幀f,依此類推,然后跳轉(zhuǎn)至步驟(a1);
(a3)歷遍當(dāng)前幀每個(gè)關(guān)鍵特征點(diǎn),對(duì)各點(diǎn)分別記錄以下三組參數(shù):其在當(dāng)前幀f的坐標(biāo)(此處以(x,y)表示,x為行坐標(biāo),y為列坐標(biāo))、截止當(dāng)前幀該特征點(diǎn)共出現(xiàn)的次數(shù)、相對(duì)運(yùn)動(dòng)坐標(biāo)-即該特征點(diǎn)在fp幀中坐標(biāo)(xp,yp)與其在當(dāng)前幀f中坐標(biāo)(x,y)之間的差值(dx=x-xp,dy=y(tǒng)-yp),若該特征點(diǎn)是首次出現(xiàn),則直接設(shè)其相對(duì)運(yùn)動(dòng)坐標(biāo)為(0,0)。注意記錄該特征點(diǎn)相對(duì)運(yùn)動(dòng)坐標(biāo)時(shí),將數(shù)據(jù)存放在一個(gè)鏈表中,鏈表的每一項(xiàng)是該點(diǎn)在二幀間相對(duì)運(yùn)動(dòng)坐標(biāo),例如該點(diǎn)是第n次出現(xiàn),則記錄該點(diǎn)相對(duì)運(yùn)動(dòng)坐標(biāo)的鏈表有n項(xiàng),第一項(xiàng)為(0,0),第二項(xiàng)為第二次出現(xiàn)時(shí)坐標(biāo)與第一次出現(xiàn)時(shí)坐標(biāo)差,第三項(xiàng)為第三次出現(xiàn)時(shí)坐標(biāo)與第二次出現(xiàn)時(shí)坐標(biāo)差……,依此類推。
(a4)歷遍(a3)中關(guān)鍵特征點(diǎn),檢查每個(gè)特征關(guān)鍵點(diǎn)的運(yùn)動(dòng)位置變化量,若相對(duì)運(yùn)動(dòng)坐標(biāo)中dx或者dy的絕對(duì)值大于門限ii(缺省設(shè)為100)則可能是匹配錯(cuò)誤,應(yīng)將該關(guān)鍵特征點(diǎn)及在步驟(a3)獲得的關(guān)于該點(diǎn)的參數(shù)全部刪除,繼續(xù)檢查下一個(gè)關(guān)鍵特征點(diǎn);否則保留該關(guān)鍵特征點(diǎn)及其參數(shù)。
(a5)歷遍(a4)中保留下來(lái)的各關(guān)鍵特征點(diǎn),檢查若某關(guān)鍵特征點(diǎn)截止當(dāng)前幀f出現(xiàn)的次數(shù)大于門限值iii(缺省設(shè)為5),說(shuō)明跟蹤的運(yùn)動(dòng)目標(biāo)不是突發(fā)的運(yùn)動(dòng)干擾而是穩(wěn)定的運(yùn)動(dòng)目標(biāo)。將在本步驟中大于門限值iii的所有關(guān)鍵特征點(diǎn)及其參數(shù)傳給進(jìn)程(b),然后轉(zhuǎn)至步驟(a6);
(a6)將當(dāng)前幀改記為fp、將fn幀改記為f,……,依此類推,然后轉(zhuǎn)至步驟(a1)。
進(jìn)程(b):關(guān)鍵特征點(diǎn)聚類后聚焦拍照,具體步驟如下(b1)至(b4):
(b1)對(duì)來(lái)自進(jìn)程(a)的所有關(guān)鍵特征點(diǎn),根據(jù)其參數(shù)中相對(duì)運(yùn)動(dòng)坐標(biāo)中的行坐標(biāo)符號(hào)進(jìn)行第一次分類,分類規(guī)則如下:
只選取滿足如下條件的關(guān)鍵特征點(diǎn):關(guān)鍵特征點(diǎn)連續(xù)多幀(缺省設(shè)為門限值iii-2)相對(duì)運(yùn)動(dòng)坐標(biāo)中行坐標(biāo)dx的符號(hào)相同(均為正或者均為負(fù))。對(duì)選取的點(diǎn)進(jìn)行分類:將dx為正的所有關(guān)鍵特征點(diǎn)分為一類(此處稱正待分類集合),dx為負(fù)的所有關(guān)鍵特征點(diǎn)分為一類(此處稱負(fù)待分類集合),這二類集合中點(diǎn)所屬車輛運(yùn)動(dòng)方向相反;
(b2)分別對(duì)(b1)中的二個(gè)待分類集合繼續(xù)進(jìn)行第二次分類,目的是將關(guān)鍵特征點(diǎn)聚類,滿足一定條件的關(guān)鍵特征點(diǎn)被分到一類并被認(rèn)為屬于同一車輛,以便將相機(jī)焦距對(duì)準(zhǔn)需要拍照的車輛。
對(duì)(b1)中二個(gè)待分類集合分別進(jìn)行(b2)步驟第二次分類,(b2)的具體步驟如下(b2-1)至(b-3):
(b2-1)初始化:建立有一個(gè)已知分類,該已知分類中只有一個(gè)關(guān)鍵特征點(diǎn),是從該待分類集合中隨機(jī)選出的,同時(shí)將該關(guān)鍵特征點(diǎn)從待分類集合中刪除,重復(fù)步驟(b2-2)-(b2-3)直到該待分類集合為空。
(b2-2)從同一待分類集合中任意取出一個(gè)點(diǎn)(為后續(xù)描述方便,此處記為特征點(diǎn)pany),如果該特征點(diǎn)與某個(gè)已知分類中特征點(diǎn)在連續(xù)二幀中記錄相對(duì)運(yùn)動(dòng)坐標(biāo)中dx坐標(biāo)之差的絕對(duì)值小于門限iv(缺省設(shè)為7)、并且dy坐標(biāo)之差絕對(duì)值小于門限v(缺省設(shè)為10),則將該點(diǎn)放入已知分類中,并從待分類集合中刪除該點(diǎn),轉(zhuǎn)至(b2-2);否則繼續(xù)步驟(b2-3)。需要說(shuō)明的是門限v和門限iv與道路限速有關(guān),當(dāng)?shù)缆废匏俑邥r(shí)可將這二個(gè)門限值可略微大點(diǎn),但一般不超過(guò)30。
(b2-3)由于沒(méi)有已知分類中的特征點(diǎn)與pany之間滿足步驟(b2-2)中的判決關(guān)系,則新創(chuàng)建一個(gè)已知分類,將該特征點(diǎn)從待分類集合中刪除并放入新創(chuàng)建的已知分類中,轉(zhuǎn)至(b2-2);
(b3)整理分類結(jié)果,刪除不合理分類:對(duì)(b2)得到的所有已知分類結(jié)果進(jìn)行檢查:(1)每個(gè)已知分類中特征點(diǎn)數(shù)目若小于5個(gè),則認(rèn)為該已知分類不合理,對(duì)該已知分類予以刪除;(2)如果該已知分類中所有特征點(diǎn)在當(dāng)前幀中所圍輪廓面積小于門限vi(缺省值設(shè)為500,取決于相機(jī)架設(shè)位置和分辨率),物體太小沒(méi)有拍照的意義,則刪除該已知分類。
(b4)將保留下來(lái)的每個(gè)已知分類中各關(guān)鍵特征點(diǎn)當(dāng)作屬于同一車輛的關(guān)鍵特征點(diǎn),聚焦于同一已知分類中各點(diǎn)圍成區(qū)域進(jìn)行拍照,同時(shí)對(duì)該已知分類中各關(guān)鍵特征點(diǎn)相對(duì)運(yùn)動(dòng)坐標(biāo)鏈表中最后一組(dx、dy)(即當(dāng)前幀與前面一幀的運(yùn)動(dòng)位置變化量)分別求平均,平均值分別標(biāo)記為(avedx,avedy)。
以下所有步驟為通用車牌識(shí)別的方法,即發(fā)明中第二步車牌識(shí)別,針對(duì)聚焦拍照車輛的車牌進(jìn)行識(shí)別。
2、對(duì)拍照得到的圖像,根據(jù)所聚焦的特征點(diǎn)集合(avedx,avedy)值進(jìn)行濾波去除運(yùn)動(dòng)引發(fā)的模糊。根據(jù)實(shí)際應(yīng)用情況該步驟為可選項(xiàng),如果車輛本身運(yùn)動(dòng)速度慢,例如在收費(fèi)口時(shí)限速很低的區(qū)域,拍照?qǐng)D像很清楚,本步可以忽略。
3、車牌定位
由于實(shí)際應(yīng)用中相機(jī)架設(shè)位置的關(guān)系,獲取的圖像可能包含了車輛的多個(gè)部位,而不僅僅是車牌區(qū)域,因此在獲得圖像后需要在圖像中首先定位車牌區(qū)域。無(wú)論是個(gè)性車牌還是普通車牌,各國(guó)的車牌在外形上都是或接近矩形,因此我們的首要目的就是在拍攝的圖片中找到矩形或者接近矩形的結(jié)構(gòu),這類結(jié)構(gòu)的實(shí)際輪廓所圍面積與該輪廓外接矩形面積較接近。
(c1)對(duì)拍攝圖像進(jìn)行形態(tài)學(xué)梯度處理得到圖像mo,形態(tài)學(xué)梯度可以突出與周圍不同的部分,強(qiáng)調(diào)邊界,車牌是有邊框的,并且這種與車身不同的邊界屬于強(qiáng)邊界。形態(tài)學(xué)梯度處理突出了邊界。
(c2)對(duì)圖像mo進(jìn)行otsu二值化處理,得到二值化圖像i0;
(c3)對(duì)二值化圖像i0檢索閉合輪廓的個(gè)數(shù),注意檢索時(shí)不僅僅檢索最頂層閉合輪廓,還要檢索其中包含的閉合輪廓,提取所有閉合輪廓,并存儲(chǔ)為雙層結(jié)構(gòu),頂層為外邊界,底層為物體內(nèi)部孔洞的內(nèi)邊界,返回值為二值化圖像i0中閉合輪廓的個(gè)數(shù)。
(c4)初始化矩形備選集合r1為空集
(c5)對(duì)(c3)檢索到的每個(gè)輪廓進(jìn)行如下運(yùn)算:確定輪廓外部矩形區(qū)域,在此矩形區(qū)域內(nèi)是否有至少4條直線,以斜率相似的直線分為一組,是否該閉合輪廓中至少二組、每組至少二條線直線?如果滿足以上條件則將該輪廓加入矩形備選集合r1中,重復(fù)這步直到所有內(nèi)/外輪廓都被檢查完畢;
(c6)對(duì)矩形備選集合r1中所有輪廓分別如下操作:計(jì)算其輪廓所圍面積與外接矩形區(qū)域的面積,若二者之比在0.85-1.0之間、并且外接矩形區(qū)域長(zhǎng)度與高度比在1.15-1.65之間,則將輪廓放入矩形備選集合r2中,重復(fù)這步直到所有矩形備選集合r1中輪廓被檢查完畢;
(c7)對(duì)所有矩形備選集合r2中的輪廓進(jìn)行檢查,如果該輪廓不包含另一個(gè)存在于備選集合r2中的輪廓,則該輪廓被判為車牌輪廓。
(c8)從拍攝得到的圖像中提取車牌輪廓區(qū)域圖像i,同時(shí)在i0中提取與之對(duì)應(yīng)的車牌區(qū)域輪廓二值化圖i1,以進(jìn)行后續(xù)處理。
4、仿射
車牌區(qū)域可能不是完全正對(duì)鏡頭,拍攝到的車牌在圖像上有傾斜度,需要對(duì)車牌進(jìn)行仿射矯正,將車牌圖片變成無(wú)傾斜度的。車牌仿射變換需要提供原始(有傾斜度)車牌的左上、左下、右上三個(gè)邊界點(diǎn)的x、y坐標(biāo),以及矯正后的車牌對(duì)應(yīng)這三個(gè)邊界點(diǎn)的x、y坐標(biāo)。
對(duì)步驟3獲得的車牌輪廓區(qū)域,進(jìn)行霍夫直線檢測(cè),對(duì)直線上經(jīng)過(guò)點(diǎn)數(shù)按照從多到少排列,則必然是車牌上、下邊緣的二條直線上包含的點(diǎn)數(shù)最多、排在最前面,這二條直線的左起點(diǎn)和右終點(diǎn)坐標(biāo)即為仿射變換時(shí)需要提供的原始坐標(biāo)。
具體采用步驟(d1)-(d3)實(shí)現(xiàn):
(d1)獲得仿射變換前坐標(biāo):對(duì)i1進(jìn)行霍夫直線檢測(cè),將霍夫變換結(jié)果中亮度值最高的二條線找出來(lái),根據(jù)車牌特點(diǎn),則必然是車牌水平方向上、下邊緣的二條直線在霍夫變換中亮度最高,在這二條直線中分別找到列坐標(biāo)y最大、最小的點(diǎn),這四個(gè)點(diǎn)即是車牌水平方向上、下邊緣直線的四個(gè)邊界點(diǎn);
(d2)計(jì)算仿射變換后坐標(biāo),具體步驟如下(d2-1)-(d2-3):
(d2-1)計(jì)算(d1)中獲得的左上點(diǎn)與右上點(diǎn)之間距離l1;
(d2-2)計(jì)算(d1)中獲得的左上點(diǎn)、左下點(diǎn)之間距離l2;
(d2-3)仿射變換后坐標(biāo)設(shè)置如下:左上點(diǎn)坐標(biāo)(x、y)不變;左下點(diǎn)y坐標(biāo)更新為與左上點(diǎn)y坐標(biāo)相同,x坐標(biāo)更新為左上點(diǎn)x坐標(biāo)值加上l2;右上點(diǎn)x坐標(biāo)更新為與左上點(diǎn)x坐標(biāo)相同,y坐標(biāo)更新為左上點(diǎn)y坐標(biāo)值加上l1。
(d3)根據(jù)(d1)、(d2)步驟得到的車牌水平上、下邊緣中左上點(diǎn)、左下點(diǎn)、右上點(diǎn)原始坐標(biāo)以及仿射變換后坐標(biāo),對(duì)圖像i進(jìn)行仿射變換得到角度矯正后的車牌圖像i2。
5、車牌內(nèi)部區(qū)域分割、信息提?。?/p>
各國(guó)車牌無(wú)論車牌背景是單一色彩還是有豐富色彩的圖案,一個(gè)明顯特點(diǎn)就是車牌的信息(即前景)與背景底色/背景圖案之間的邊界非常明顯,并且車牌中相同類型信息色彩相同,不同類型的信息比如車牌號(hào)碼和州/省/郡/簽發(fā)日等信息色彩不一定相同。例如車牌號(hào)信息(前景,這里稱為主信息)通常位于車牌中央?yún)^(qū)域,這些號(hào)碼均用相同色彩表示,此外有些國(guó)家車牌左/右/上/下部會(huì)有表示州/省/郡的信息(稱為輔助信息,也屬于前景),這些輔助信息若處于相同區(qū)域則其色彩相同,即所有上部輔助信息色彩相同,所有下部輔助信息色彩相同,……,本方法利用以上特點(diǎn)提取前景信息,具體步驟(e1)-(e5)如下:
(e1)、車牌背景底色/背景圖案邊緣初步篩選:對(duì)步驟4仿射變換后車牌圖像i2采用sobel算子提取邊界,得到邊界圖像ia,然后采用otsu方法對(duì)邊界圖像進(jìn)行二值化處理得到二值圖像ib。由于前景與背景有明顯差異,因此前景與背景之間的邊界經(jīng)sobel算子處理后絕對(duì)值非常大,在二值化后前景-背景邊界被設(shè)定為1。而很多車牌的背景底色是漸變、背景色單一的、背景中圖案與車牌底色區(qū)別不明顯的,這些背景經(jīng)過(guò)sobel算子處理后,相鄰像素之間差異值很小,明顯小于前景-背景之間差異,這些背景-背景邊界在二值化后會(huì)被設(shè)定為0。
(e2)、提取主信息:在步驟e1中,并不能剔除一些具有強(qiáng)邊緣的背景圖案,比如典型的美洲很多車牌背景中含有州/省圖案,其中有些背景圖案與背景底色之間的邊緣較清晰,在步驟e1中無(wú)法剔除,需要將主信息與未剔除的圖案區(qū)進(jìn)行區(qū)分,提取主信息。具體實(shí)現(xiàn)方法如下步驟(e2-1)至(e2-3):
(e2-1)首先對(duì)圖像ib檢測(cè)閉合區(qū)域,然后對(duì)閉合區(qū)域做種子填充,閉合區(qū)域內(nèi)部所有像素點(diǎn)用“1”填充,這樣得到的圖像稱為模板圖像ic,再將ic與圖像i2進(jìn)行“與”操作,得到圖id,id中有主、輔助信息、強(qiáng)邊緣的背景圖等。
(e2-2)對(duì)應(yīng)模板ic中像素值為1的位置,在圖id中與之對(duì)應(yīng)的位置各像素點(diǎn)做直方圖統(tǒng)計(jì),初始化當(dāng)前像素值pg=2。
(e2-3)對(duì)當(dāng)前像素值pg進(jìn)行(e2-3a)至(e2-3d)處理:
(e2-3a)判斷是否pg小于254,若否,則表示沒(méi)有發(fā)現(xiàn)主信息,退出整個(gè)識(shí)別過(guò)程,車牌無(wú)法識(shí)別:若是,則統(tǒng)計(jì)步驟(e2-2)直方圖中像素值pg-2、pg-1、pg、pg+1、pg+2合計(jì)出現(xiàn)的概率,若合計(jì)出現(xiàn)的概率超過(guò)12%,則轉(zhuǎn)入(e2-3b);否則更新pg=pg+1,然后重復(fù)本步驟;
(e2-3b)在圖id中,連通為八連通、連通規(guī)則為:若相鄰像素值分別與pg之差的絕對(duì)值不超過(guò)2則連通。判斷此規(guī)則下出現(xiàn)的連通區(qū)域個(gè)數(shù)是否不少于門限vii(缺省設(shè)為5),若是則轉(zhuǎn)到步驟(e2-3c);如否,更新pg=pg+1,返回(e2-3a);
(e2-3c)分別求(e2-3b)中這些連通區(qū)域的行坐標(biāo)x最大值、最小值,統(tǒng)計(jì)滿足以下條件:最大值大于車牌高度的55%、并且最小值小于車牌高度的40%的連通區(qū)域的個(gè)數(shù)n1,若n1小于門限vii則更新pg=pg+1,返回(e2-3a);否則轉(zhuǎn)至(e2-3d);
(e2-3d)判斷滿足(e2-3c)中x坐標(biāo)條件的連通區(qū)域?yàn)檐嚺浦餍畔^(qū)域,提取這些滿足條件連通區(qū)域圖像,將這些連通區(qū)域記錄在一個(gè)序列中,同時(shí)記錄這些連通區(qū)域行坐標(biāo)x最大值xmax、最小值xmin和列坐標(biāo)y最大值ymax、最小值ymin,并記錄下當(dāng)前pg值,然后轉(zhuǎn)到步驟e3。
各國(guó)車牌不同,但無(wú)論哪種車牌主信息都位于車牌中央?yún)^(qū)域、經(jīng)過(guò)車牌垂直方向中軸線,該信息由字母、文字、數(shù)字等組成,并且主信息中的字母、文字、數(shù)字都是分開(kāi)的、個(gè)數(shù)通常不小于5,因此設(shè)門限vii缺省值為5。步驟(e2)可以提取車牌主信息。
(e3)、提取車牌內(nèi)部矩形區(qū)域:車牌有幾個(gè)特點(diǎn):(1)車牌上方、下方的輔助信息一般沒(méi)有明顯矩形包圍,而車牌左方、右方的輔助信息很多包含在矩形內(nèi)部;(2)車牌底色圖案中通常沒(méi)有標(biāo)準(zhǔn)矩形圖案;(3)如果輔助信息在主信息的上方或下方,輔助信息行坐標(biāo)與主信息行坐標(biāo)不會(huì)重疊。如果在不含車牌主信息的圖中出現(xiàn)面積較大的矩形,認(rèn)為內(nèi)部包含輔助信息、需要識(shí)別矩形內(nèi)部的信息。實(shí)現(xiàn)的具體步驟如下(e3-1)至(e3-3):
(e3-1)更新模板圖像ic:對(duì)步驟(e2-3d)中獲得的主信息區(qū)域,在模板ic中對(duì)應(yīng)位置處像素值改為0,得到更新后的不含主信息的模板圖像—此處記為ic2。
(e3-2)將車牌圖像i2與ic2進(jìn)行“與”操作,得到的圖像記為ie,ie中不含車牌主信息、不含車牌背景中邊緣強(qiáng)度較弱圖案,
(e3-3)做步驟(e3-3a)至(e3-3c)處理去除車牌中邊界強(qiáng)度較強(qiáng)的背景圖案、提取車牌左、右方輔助信息的矩形(如果有的話)。
(e3-3a)初始化矩形集合為空集,矩形集合用于記錄各個(gè)矩形;
(e3-3b)對(duì)圖ie用sobel邊緣算子提取邊界,得到邊界圖像if,對(duì)if進(jìn)行二值化處理:只要邊緣強(qiáng)度大于門限viii(缺省設(shè)為20)則二值化為1,否則為0,得到二值化圖像記為ig。在ig中檢查是否包含閉合輪廓,并記錄檢測(cè)到的閉合輪廓,若閉合輪廓內(nèi)部包含閉合輪廓,則只記錄最頂層閉合輪廓,內(nèi)部閉合輪廓勿需記錄;
(e3-3c)歷遍(e3-3b)中得到的所有輪廓,對(duì)每個(gè)頂層輪廓進(jìn)行(e3-3c1)至(e3-3c3)操作:
(e3-3c1)該輪廓是否為矩形?如果否,則跳轉(zhuǎn)至(e3-3c2)步驟;若是則繼續(xù)判斷矩形寬、高比值是否在0.6-1.25之間、并且該矩形面積大于車牌面積的5%?若否,則忽略該矩形、對(duì)下一個(gè)頂層輪廓進(jìn)行(e3-3c1)步驟;若是則跳轉(zhuǎn)至(e3-3c3)。
(e3-3c2)檢查是否該輪廓行坐標(biāo)x的最小值小于車牌高度的一半、并且x坐標(biāo)最大值大于車牌高度的一半?若是,則說(shuō)明該輪廓垂直方向上跨越車牌高度中線,由于車牌中跨越高度中線的主信息已經(jīng)不包含在ie中,因此當(dāng)前閉合輪廓只能被認(rèn)為是由于其它因素(如圖案)造成的,更新模板ic2:在模板ic2中該輪廓所包含區(qū)域?qū)?yīng)位置全部像素值修改為0;若否,則忽略該輪廓,返回(e3-3c1)對(duì)下一個(gè)輪廓進(jìn)行處理。
(e3-3c3)該矩形放入矩形集合中,更新模板ic2,在ic2中將該矩形內(nèi)部區(qū)域?qū)?yīng)位置像素值全部修改為0。
經(jīng)過(guò)(e3-3c)處理后,提取了車牌中面積較大的矩形區(qū)域,剔除了位于車牌中部區(qū)域的強(qiáng)邊界背景圖案。該步驟處理完成后,模板ic2像素值為1的區(qū)域?qū)?yīng)車牌圖i2中無(wú)弱背景圖案、無(wú)位于車牌中部的強(qiáng)背景圖案、無(wú)矩形內(nèi)輔助信息、無(wú)車牌主信息。
(e4)車牌上方、下方輔助信息定位:車牌中信息無(wú)論分幾行,行與行之間是有明顯間隔的,對(duì)模板ic2做水平方向投影,檢測(cè)車牌上部、下部的輔助信息(如果有)。
水平投影中,由于垂直方向中間部分(主信息和背景圖案)已經(jīng)被前面的處理剔除了,則如果車牌最上、最下部分有信息的話,必然在該步驟水平投影中出現(xiàn)峰值,如果只有上(或下)部出現(xiàn)峰值,則表明車牌有二部分組成,如果沒(méi)有明顯峰值,則車牌僅有中間信息組成。水平投影后,檢查在x坐標(biāo)在0---xmin(步驟(e2-3d)中得到)區(qū)間內(nèi)是否有明顯峰值區(qū)域(即是否投影面積大于門限ix---缺省設(shè)為60)?若是則說(shuō)明上部有內(nèi)容,至于是輔助信息還是強(qiáng)背景、高度不高的圖案此時(shí)還不清楚。
同理檢查xmax----車牌高度區(qū)間內(nèi)ic2水平投影是否有明顯峰值(投影面積大于門限ix)?若是則說(shuō)明下部分有內(nèi)容。
如果上、下部分投影后都沒(méi)有明顯峰值,說(shuō)明只有主信息一行,可以轉(zhuǎn)入步驟6進(jìn)行信息識(shí)別了,否則轉(zhuǎn)入(e5)。
(e5)獲取上方、下方輔助信息(如果有的話)。注意(e4)中投影的峰值并不意味著一定是有用信息,也可能是車牌具有強(qiáng)邊緣、高度低的背景圖案出現(xiàn)在車牌上、下區(qū)域。但是僅僅位于車牌主信息上方、下方的背景圖案和輔助信息特點(diǎn)不同:(1)同一區(qū)域輔助信息色彩相同,而背景圖案通常會(huì)有內(nèi)部的色彩變化;(2)輔助信息橫向跨越區(qū)間比較大,而僅僅位于車牌主信息上方、下方的強(qiáng)邊緣、低高度背景圖案橫向跨越區(qū)域通常很窄。利用這二個(gè)特點(diǎn)可以進(jìn)一步剔除背景、獲取輔助信息。具體步驟見(jiàn)下(e5-1)至(e5-8):
(e5-1)將車牌圖像i2與ic2做“與”操作,得到的圖像記為ih。若在(e4)中判斷上部有內(nèi)容,則從ih中提取x坐標(biāo)在0-xmin區(qū)間的圖像,相應(yīng)也從ic2中提取x坐標(biāo)在0-xmin區(qū)間的模板圖像;若判斷下部有內(nèi)容則在ih中提取x坐標(biāo)在xmax---車牌高度區(qū)間的圖像,相應(yīng)也從ic2中提取x坐標(biāo)在xmax---車牌高度區(qū)間的模板圖像;
以下操作(e5-2)---(e5-8)是對(duì)上、下二個(gè)區(qū)域分別進(jìn)行的,為描述方便,將從ih中提取的一個(gè)區(qū)域圖像稱為re,將從ic2中提取的對(duì)應(yīng)模板圖像標(biāo)記為ics;
(e5-2)對(duì)re運(yùn)用sobel邊緣算子,得到邊界圖像,對(duì)該邊界圖像進(jìn)行二值化處理得到圖像rc1,然后對(duì)得到的二值化圖rc1檢測(cè)閉合輪廓,只記錄頂層閉合輪廓;
(e5-3)在rc1中對(duì)每個(gè)頂層閉合輪廓進(jìn)行種子填充,得到圖像rc2,將rc2和re進(jìn)行“與”操作,得到圖像re2,同時(shí)記錄每個(gè)頂層閉合輪廓的最大、最小y坐標(biāo);
(e5-4)對(duì)rc1中各個(gè)頂層閉合輪廓,統(tǒng)計(jì)其在re2中對(duì)應(yīng)該輪廓所圍區(qū)域像素平均值和方差;
(e5-5)檢查每個(gè)輪廓的所圍區(qū)域均值和方差,若方差大于門限xi(缺省設(shè)為20),則在ic2中將該輪廓所圍區(qū)域內(nèi)所有像素值改為0,判斷該輪廓屬于非輔助信息;否則判斷為“潛在輔助信息”的輪廓;
(e5-6)歷遍每個(gè)“潛在輔助信息”輪廓,檢查該輪廓y坐標(biāo)最大值是否大于車牌寬帶65%、并且最小值是否小于車牌寬帶35%?若是,則保留該輪廓,認(rèn)為它是輔助信息,可以被送入步驟6進(jìn)行識(shí)別,并將其標(biāo)記為圖標(biāo)(以便在后續(xù)對(duì)該區(qū)域不做字符分割處理),同時(shí)在ic2將所有該輪廓所圍區(qū)域像素值均改為0;若否,則該輪廓被判為屬于“孤立潛在輔助信息”的輪廓;
(e5-7)對(duì)所有“孤立潛在輔助信息”進(jìn)行合并處理:如果二個(gè)“孤立潛在輔助信息”輪廓中x坐標(biāo)最小值之差的絕對(duì)值不超過(guò)5,x坐標(biāo)最大值之差的絕對(duì)值不超過(guò)5、并且所圍區(qū)域像素平均值的差異之絕對(duì)值小于10,則認(rèn)為這二個(gè)孤立潛在輔助信息可以合并,將二者y坐標(biāo)的最小值中最小的一個(gè)、二者y坐標(biāo)最大值中大的一個(gè),分別作為合并后新區(qū)域y坐標(biāo)最小值、最大值,求新區(qū)域的像素平均值。重復(fù)本步驟直到?jīng)]有可以合并的“孤立潛在輔助信息”;
(e5-8)檢查每個(gè)合并后新區(qū)域y坐標(biāo)最大值是否大于車牌寬帶65%并且最小值是否小于車牌寬帶35%?如是,則認(rèn)為它含有輔助信息,需要對(duì)區(qū)域內(nèi)每個(gè)閉合區(qū)域進(jìn)行字符識(shí)別;若否,則說(shuō)明該區(qū)域無(wú)實(shí)質(zhì)性信息,直接丟棄該區(qū)域,并在ic2將所有該區(qū)域包含的像素點(diǎn)值設(shè)為0。
在上、下部分提取的信息,步驟(e5-6)針對(duì)有些車牌中輔助信息是圖標(biāo)的情況,比如美國(guó)加州車牌,在上區(qū)域部分是連體的州名,這類情況相對(duì)比較少,因此這部分提取時(shí)直接以圖像形式提取即可。
步驟(e5)排除了上、下部分強(qiáng)邊界、低高度圖案等的干擾,提取了車牌上、下部位的輔助信息。
6、字符/圖標(biāo)識(shí)別
針對(duì)不同情況,識(shí)別細(xì)分為(f1)至(f4)四個(gè)步驟:
(f1)車牌主體信息識(shí)別:車牌主信息是最重要的,各國(guó)車牌主信息字符都是分割開(kāi)的,本發(fā)明中任何字符識(shí)別方法都可以用。比如可將每個(gè)字符歸一化成相同大小的二維圖像m×n大小,然后變換成(m×n)行、1列的矩陣,事先對(duì)任何車牌中可能出現(xiàn)的字符進(jìn)行有監(jiān)督神經(jīng)網(wǎng)絡(luò)訓(xùn)練,然后將每個(gè)需要識(shí)別的字符送人訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)得到識(shí)別結(jié)果;或者事先對(duì)任何車牌中可能出現(xiàn)的每個(gè)字符提取特征,將車牌主信息中分割出字符與已知特征進(jìn)行匹配識(shí)別?!鹊确椒ú灰灰涣_列。
(f2)車牌矩形區(qū)域內(nèi)輔助信息處理:對(duì)步驟(e3-3c3)得到矩形區(qū)域內(nèi)進(jìn)行字符分割提出,矩形區(qū)域內(nèi)底色作為背景,而且這種背景是底色均勻的,信息作為前景。對(duì)矩形區(qū)域內(nèi)圖像運(yùn)用邊緣算子,提取字符邊緣圖像并二值化,然后在二值化圖像中檢測(cè)閉合輪廓,對(duì)閉合輪廓進(jìn)行填充,對(duì)填充后的二值化圖像做垂直/水平投影分割字符,每個(gè)字符進(jìn)行字符識(shí)別。這是由于通常矩形區(qū)域內(nèi)信息每個(gè)字符是分開(kāi)的,分割后采用同(f1)中相同的識(shí)別方法,任何字符識(shí)別方法均可。
(f3)上、下部分輔助信息如果沒(méi)有被標(biāo)記為圖標(biāo),則對(duì)每個(gè)字符識(shí)別采用任何字符識(shí)別方法。
(f4)上、下部輔助信息如果標(biāo)記為圖標(biāo),則意味著是圖而非字符的形式的信息,這類情況比較少,只要在識(shí)別系統(tǒng)中加入幾個(gè)這種圖標(biāo)輔助信息的模板,做模板匹配即可識(shí)別。
隨著越來(lái)越多車牌跨國(guó)行駛,車牌特點(diǎn)相差很遠(yuǎn)的車輛不需要再所經(jīng)過(guò)國(guó)家掛上臨時(shí)車牌也可形式,該發(fā)明具有實(shí)用意義。