摘 要: 在當(dāng)前技術(shù)中,車牌之間的匹配一般采用的是精確匹配,其不足以滿足旅行時(shí)間、OD調(diào)查等研究的需要。針對(duì)此問(wèn)題,設(shè)計(jì)了一種基于模糊匹配的多級(jí)車牌匹配技術(shù)。該方法通過(guò)限定車牌經(jīng)過(guò)上下游交叉路口的時(shí)間間隔、計(jì)算車牌之間的編輯距離進(jìn)行車牌的模糊匹配,將匹配成功的車牌的旅行時(shí)間用四分位數(shù)法進(jìn)行異常數(shù)據(jù)的剔除,并通過(guò)北京市某路段的實(shí)測(cè)數(shù)據(jù)進(jìn)行驗(yàn)證。實(shí)驗(yàn)發(fā)現(xiàn)多級(jí)車牌匹配技術(shù)可以很好地提高車牌的匹配率,從而為基于車牌的其他研究提供更有效、可靠的數(shù)據(jù)。
關(guān)鍵詞: 車牌匹配; 模糊匹配; 編輯距離; 閾值
中圖分類號(hào): TN911.73?34; TP301.6 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)07?0135?04
0 引 言
隨著智能交通技術(shù)的發(fā)展,城市交通管理系統(tǒng)和公路交通管理系統(tǒng)的自動(dòng)化、智能化水平在不斷提高,視頻監(jiān)控設(shè)備、電子拍照設(shè)備、移動(dòng)監(jiān)測(cè)設(shè)備被廣泛地布設(shè)在路網(wǎng)中的觀測(cè)站、收費(fèi)站及重要路口,通過(guò)車牌自動(dòng)識(shí)別技術(shù)可以從這些設(shè)備獲取圖片、視頻中提取車牌信息。當(dāng)前,我國(guó)城市路網(wǎng)和國(guó)道、省道等公路網(wǎng)每天都在獲取超過(guò)百萬(wàn)計(jì)的車輛檢測(cè)信息,包括車牌號(hào)、車輛通過(guò)路口的時(shí)刻、路口ID等。然而這些信息卻沒(méi)有得到足夠的重視和高效的利用,當(dāng)前的車牌利用停留在車速測(cè)量、不停車收費(fèi)、交通違章的初級(jí)階段,未能從網(wǎng)絡(luò)化、全局化、軌跡化的角度來(lái)分析利用車牌數(shù)據(jù),造成了車牌資源的很大浪費(fèi)。
近年來(lái),ITS技術(shù)的發(fā)展使牌照自動(dòng)識(shí)別技術(shù)更加完善,車牌捕獲率和識(shí)別率有了顯著提高,車牌號(hào)作為全世界惟一對(duì)車輛身份進(jìn)行識(shí)別的標(biāo)識(shí),它的特殊性和重要性決定了車牌識(shí)別系統(tǒng)成為城市智能交通管理系統(tǒng)中不可或缺的重要組成部分。通過(guò)對(duì)比同一輛車經(jīng)過(guò)上下游路口車牌被識(shí)別到的時(shí)刻,可以對(duì)一輛車連續(xù)通過(guò)兩個(gè)路口的旅行時(shí)間進(jìn)行計(jì)算[1],可以分析該路段的交通狀態(tài)[2?3]、延誤、路段服務(wù)水平等交通分析評(píng)價(jià)指標(biāo),還可以分析車輛的出行軌跡[4]等,而這些分析的前提是要對(duì)得到的車牌號(hào)進(jìn)行匹配、處理。
現(xiàn)在的車牌識(shí)別系統(tǒng)雖然有了很大的發(fā)展,但是由于車牌的污損、模糊、遮擋、天氣等原因,識(shí)別車牌的準(zhǔn)確率達(dá)到100%是不可能的。如果車牌沒(méi)有被正確讀取,精確的車牌匹配會(huì)損失掉這部分?jǐn)?shù)據(jù),影響后續(xù)工作的完成,因此選用合適的方法對(duì)車牌進(jìn)行匹配顯得尤為重要。
本文設(shè)計(jì)的車牌匹配方法采用多級(jí)匹配策略:一級(jí)匹配,限定車牌經(jīng)過(guò)上下游交叉路口的時(shí)間間隔;二級(jí)匹配,車牌模糊匹配、設(shè)定閾值,增加匹配成功率;三級(jí)匹配,異常數(shù)據(jù)剔除。通過(guò)北京市某路段的實(shí)測(cè)數(shù)據(jù)進(jìn)行驗(yàn)證。圖1為車牌多級(jí)匹配流程框架圖。
圖1 多級(jí)匹配流程框架圖
1 限定時(shí)間間隔
車牌數(shù)據(jù)為車輛通過(guò)停車線后檢測(cè)區(qū)域時(shí)識(shí)別得到,車輛通過(guò)每個(gè)路口時(shí),其車牌將被識(shí)別并存儲(chǔ)。車輛正常行駛,經(jīng)過(guò)上下游路口的間隔時(shí)間是在一定范圍內(nèi)的,如果間隔時(shí)間過(guò)大,則不能進(jìn)行有效地車牌匹配數(shù)據(jù)。原因在于:上下游交叉口獲取的相同車牌數(shù)據(jù)可能來(lái)源于車輛的二次出行,甚至是多次出行。在限定的時(shí)間間隔內(nèi)進(jìn)行車牌匹配,可以有效地減少這種情況的發(fā)生。對(duì)于交通量大的路口,每天都有海量的車牌數(shù)據(jù),在匹配之前限定范圍,可以大大減少車牌匹配的工作量,加快匹配速度。車牌識(shí)別系統(tǒng)中可能出現(xiàn)如“京A12345”、“京A12845”,這種情況有可能源于車牌系統(tǒng)識(shí)別錯(cuò)誤,將3識(shí)別為8,也有可能本身就是兩個(gè)不同的車牌,限定時(shí)間間隔可以減少這種情況出現(xiàn)的匹配誤差。限定車牌經(jīng)過(guò)上下游交叉路口的時(shí)間間隔可以很好地提高基礎(chǔ)數(shù)據(jù)的質(zhì)量。
假定當(dāng)前路口有一要匹配的車牌[A,]在下游路口選取10 min(可以根據(jù)上下游路口的路段長(zhǎng)度及交通狀況等進(jìn)行調(diào)整)內(nèi)的車牌數(shù)據(jù)進(jìn)行匹配,這樣減少了匹配的工作量,同時(shí)提高了匹配的準(zhǔn)確率。
2 模糊匹配算法
現(xiàn)階段的車牌匹配大多采用精確匹配,車牌的精確匹配是指查找的車牌與搜索到的車牌完全相同,是最理想的匹配方式。但是,這種方法匹配要求嚴(yán)格,存在一些弊端,當(dāng)車牌識(shí)別錯(cuò)誤時(shí),無(wú)法返回匹配結(jié)果,不能滿足研究的需要,故需要尋找一種匹配率較高的方法。
車牌其實(shí)就是一串字符串,可以通過(guò)研究各種字符串的匹配算法實(shí)現(xiàn)車牌的匹配。字符串匹配[5]可以分為精確匹配和模糊匹配。本文的車牌匹配采用后一種,即模糊匹配[6]。
2.1 編輯距離的定義
本文擬采用“編輯距離”[7?8]的概念實(shí)現(xiàn)模糊字符串的匹配。通俗地講,編輯距離算法是指兩個(gè)字符串之間,由一個(gè)字符串通過(guò)一些編輯操作可以變換成另外一個(gè)字符串所需要的最少編輯次數(shù)。這里的編輯操作包括從字符串中刪除、插入、更改一個(gè)字符,稱為一個(gè)編輯距離,它能夠體現(xiàn)兩個(gè)字符串的差異。
起始的編輯距離是0,然后操作一次編輯距離就加1,直到這個(gè)字符串已經(jīng)完全變成另外一個(gè)字符串。操作的次數(shù)越多,那么編輯距離就越大,最少操作次數(shù)代表了最精確的操作,也就是變換過(guò)程中的最優(yōu)解。
例如將kid變換成king,可以按照這樣的步驟轉(zhuǎn)變:
(1) 將kid中的第三個(gè)字符d變成n(kid→kin);
(2) 在kin的后面添加g(kin→king)。
經(jīng)過(guò)了2次編輯操作,那么kid到king的編輯距離為2。
通過(guò)計(jì)算編輯距離,可以得出最佳匹配。
2.2 算法實(shí)現(xiàn)
車牌字符串具有如下的特點(diǎn):
(1) 汽車牌照的位數(shù)固定,一般為7位,最多的如武警車牌(WJ01?12345)等極少數(shù)為9位。
(2) 對(duì)汽車牌照進(jìn)行模糊匹配時(shí)與字符串有所不同,字符的匹配順序不能顛倒。
基于車牌的特性,車牌匹配的編輯操作不能有刪除、插入,只考慮從字符串中將一個(gè)字符改為另一個(gè)字符的操作。
假設(shè)現(xiàn)在已求得A的前[i-1]個(gè)字符編輯成B的前[i-1]個(gè)字符的最短編輯距離,此時(shí)如果A、B的第i個(gè)字符相同,顯然無(wú)需任何字符操作就可以在原來(lái)的基礎(chǔ)上得到A、B的前i個(gè)字符相同,此時(shí)的編輯距離就是[Di=Di-1];如果A、B的第i個(gè)字符不相同,則可以通過(guò)更改A的第i個(gè)字符為B的第i個(gè)字符,此時(shí)也可以在原來(lái)的基礎(chǔ)上使得A、B的第i個(gè)字符相同,由于只做了一個(gè)修改操作,因此[Di=Di-1+1。]
綜上所述[D(i)]的遞推公式如下:
[D(i)=0,i=0MIND(i-1),D(i-1)+1,A(i)=B(i)A(i)≠B(i)] (1)
假定待匹配的車牌號(hào)是[A,]它是一串字符串設(shè)為[A{a1,a2,…,ai,…,am}]([7≤m≤9]),在數(shù)據(jù)庫(kù)中等待要匹配的車牌號(hào)有n個(gè),放在集合[S{B1,B2,…,Bj,…,Bn}][(0 算法的思想是將待匹配的車牌號(hào)[A]的第一個(gè)字符與數(shù)據(jù)庫(kù)中的[Bj]的第一個(gè)字符進(jìn)行匹配,若相等,則[D(1)=0;]若不相等,則[D(1)=1。]繼續(xù)比較A的第二個(gè)字符和[Bj]的第二個(gè)字符;依次比較下去,直到字符串匹配完成,得到A和[Bj]的編輯距離[D(j)。]車牌數(shù)據(jù)庫(kù)中有n個(gè)待匹配的車牌,需要依次求出A與這n個(gè)車牌的編輯距離,編輯距離越小,其匹配度越高,要想得到一個(gè)與A匹配度最高的車牌,需要取A和[Bj]的編輯距離的最小值,即[D(A,Bj)=min{D(j)}。] 用C#代碼來(lái)實(shí)現(xiàn)A和某一[Bj]的編輯距離,如下: private int Levenshtein_Distance(string A, string Bj) { int n; int j = 1; int[] D; for (j = 1; j <= n; j++) { int m; int temp = 0; char ch1; char ch2; int i = 1; D = new int[m + 1]; D[i] = 0; for (i = 1; i <= m; i++) { ch1 = A[i - 1]; ch2 = Bj [i - 1]; if (ch1.Equals(ch2)) { temp = 0; //字符相同 } else { temp = 1; //字符不同 } D[i] = D[i - 1] + temp; } D[j]=D[i]; return D[j]; } } 2.3 匹配方案 如何從海量的數(shù)據(jù)庫(kù)中搜索出需要匹配的車牌。解決這個(gè)問(wèn)題之前,必須首先解決串的相似性如何定義。俄國(guó)的Vladimir Levenshtein在1965年就提出了用編輯距離[5]的概念來(lái)描述兩個(gè)字符串的相似程度,因此編輯距離又稱Levenshtein距離。編輯距離越小,其相似程度越高。編輯距離越大,其相似程度就越低。假設(shè)字符串的最大長(zhǎng)度為L(zhǎng),編輯距離為[D(A,Bj),]相似度為S,那么: [S=1-[D(A,Bj)]L] (2) 在當(dāng)前技術(shù)下,車牌識(shí)別系統(tǒng)的識(shí)別率達(dá)不到100%,在車牌識(shí)別中可能將車牌“京CE0192”識(shí)別為 “京CEQ792”,這實(shí)際為同一車牌,為了提高匹配的效率,設(shè)定其相似度在一定的范圍。將閾值設(shè)為0.6,即[S>0.6]時(shí),兩個(gè)車牌之間是匹配的。其中[S=1]時(shí),[A]到[Bj]的操作次數(shù)是0,也就是完全匹配。 在交通流量比較大的路口,車牌數(shù)據(jù)比較多,每一次匹配都是海量數(shù)據(jù),車牌匹配速度的快慢影響其設(shè)計(jì)系統(tǒng)的效率。車牌具有一些其他字符串沒(méi)有的特性,“京B12345”和“京C83345”在第4個(gè)字符時(shí)編輯距離為3,相似度已經(jīng)超過(guò)了設(shè)定的閾值0.6,為了提高速度,這兩個(gè)車牌沒(méi)有必要匹配下去,可以大大的提高其效率。 3 異常數(shù)據(jù)剔除 經(jīng)過(guò)上述方法匹配之后的車牌,依然會(huì)出現(xiàn)異常數(shù)據(jù),這些異常數(shù)據(jù)可以用行程時(shí)間來(lái)進(jìn)行剔除。出現(xiàn)異常行程時(shí)間數(shù)據(jù)主要有以下因素:系統(tǒng)誤差,由于采集車牌裝置出現(xiàn)誤差;異常交通行為,車輛在道路上偶然停車、車輛從道路上離開(kāi)正常行駛軌跡等。一些異常的交通行為對(duì)交通流量產(chǎn)生震蕩,從而導(dǎo)致行程時(shí)間突變。這些數(shù)據(jù)都會(huì)顯著影響對(duì)路段旅行時(shí)間的估計(jì),需要應(yīng)用一定的篩選算法將其從數(shù)據(jù)中剔除,以便提高輸出數(shù)據(jù)的質(zhì)量。 四分位數(shù)法[9](Quartile)是統(tǒng)計(jì)學(xué)的一種分析方法,用于描述任何類型的數(shù)據(jù),尤其是偏態(tài)數(shù)據(jù)的離散程度。簡(jiǎn)單地說(shuō),就是將全部數(shù)據(jù)從小到大排列并分成4等分,處于三個(gè)分割點(diǎn)位置的數(shù)值就是四分位數(shù),使用四分位數(shù)間距來(lái)反映變異程度的大小。其中,四分位數(shù)間距指的是:上四分位數(shù)與下四分位數(shù)之差。相關(guān)文獻(xiàn)給出了一種基于四分位數(shù)法的異常數(shù)據(jù)的處理方法:凡是超出此區(qū)間范圍之外的數(shù)據(jù),都被認(rèn)為是異常數(shù)據(jù)需要剔除: [Z=[Q0.25-1.5R,Q0.75+1.5R]] (3) [R=Q0.75-Q0.25] (4) 式中:[Z]表示有效數(shù)據(jù)區(qū)間;[Q0.25]表示位于[14]位置的數(shù)值,叫做下四分位值;[Q0.75]表示位于[34]位置的數(shù)值,稱為上四分位值;[R]表示四分位極差。 四分位數(shù)法的計(jì)算比較簡(jiǎn)便,計(jì)算速度較快,圖2為四分位數(shù)法處理前后的效果。由圖2可以看出,通過(guò)四分位數(shù)法可以較好地處理掉旅行時(shí)間過(guò)大或過(guò)小的異常數(shù)據(jù),為后續(xù)的統(tǒng)計(jì)分析等提供高質(zhì)量的基礎(chǔ)數(shù)據(jù)。 4 實(shí)例分析 利用北京市利澤東二路口北向南和利澤東街口北向南的實(shí)測(cè)車牌識(shí)別數(shù)據(jù)進(jìn)行三級(jí)匹配策略的實(shí)例分析,路口情況如圖3所示。 圖2 四分位數(shù)法處理前后的效果對(duì)比 圖3 測(cè)試路口圖 利用文中設(shè)計(jì)的匹配算法,對(duì)2014年2月6日24小時(shí)內(nèi)經(jīng)過(guò)兩個(gè)路口的車牌進(jìn)行匹配。經(jīng)人工匹配成功的有110對(duì),經(jīng)多級(jí)匹配之后成功的有106對(duì),精確匹配的只有88對(duì)。 設(shè)定該路段的時(shí)間間隔為10 min,車輛京K06276在09:22:55經(jīng)過(guò)利澤東二路口,在18:49:55經(jīng)過(guò)利澤東街口,間隔時(shí)間大于設(shè)定的路段時(shí)間間隔,該算法可以很好地避免這種情況下的錯(cuò)誤匹配。 按照設(shè)定的相似度閾值,匹配結(jié)果(去除精確匹配部分)如表1所示,為了對(duì)比實(shí)驗(yàn)結(jié)果,人工做了車牌的匹配,匹配結(jié)果(去除精確匹配部分)如表2所示。 實(shí)驗(yàn)結(jié)果表明,精確匹配的匹配率為80%,如果只通過(guò)精確匹配,則會(huì)遺漏掉表2中的數(shù)據(jù)。多級(jí)匹配的匹配率為96.36%,比人工實(shí)際的匹配結(jié)果少了4對(duì),這4對(duì)車牌的相似度依次為0.43,0.43,0.29,0.57,超過(guò)設(shè)定的閾值,僅占整個(gè)匹配車牌的3.64%,說(shuō)明設(shè)定的相似度閾值0.6是合理的。相似度閾值設(shè)置過(guò)小,會(huì)導(dǎo)致一些車牌不能匹配,達(dá)不到理想的匹配率。閾值設(shè)置過(guò)大,會(huì)導(dǎo)致匹配的錯(cuò)誤率提高,速度降低。 表1 車牌模糊匹配結(jié)果 [利澤東二路口\車輛經(jīng)過(guò)時(shí)刻\利澤東街口\車輛經(jīng)過(guò)時(shí)刻\京ET8140\2/6/2014 08:37:28\京E1H140\2/6/2014 08:37:47\遼H2117F\2/6/2014 08:39:50\京H2117F\2/6/2014 08:40:12\津MZH569\2/6/2014 09:01:28\京MZH569\2/6/2014 09:01:54\京N9MC11\2/6/2014 09:10:27\京A9MC11\2/6/2014 09:11:17\京BN1113\2/6/2014 09:16:59\京HN1113\2/6/2014 09:17:18\遼LX9762\2/6/2014 09:49:44\京LX9762\2/6/2014 09:50:59\京BM4656\2/6/2014 10:33:07\京HM4656\2/6/2014 10:34:07\津GWM500\2/6/2014 11:07:29\京GWM500\2/6/2014 11:07:51\京BR9045\2/6/2014 11:27:57\京HR9045\2/6/2014 11:28:14\京Q9T097\2/6/2014 13:04:25\京Q91U97\2/6/2014 13:05:20\京QJ7686\2/6/2014 14:43:25\京QJ16H6\2/6/2014 14:43:49\京BQ2297\2/6/2014 15:35:02\京HQ2297\2/6/2014 15:35:22\京L81235\2/6/2014 16:41:24\京LH1235\2/6/2014 16:42:28\津QU2856\2/6/2014 17:37:11\京QU2856\2/6/2014 17:37:46\京KD6276\2/6/2014 18:49:32\京K06276\2/6/2014 18:49:55\京BN0848\2/6/2014 22:16:51\京HN084H\2/6/2014 22:17:17\] 表2 人工匹配結(jié)果 [利澤東二路口\車輛經(jīng)過(guò)時(shí)刻\利澤東街口\車輛經(jīng)過(guò)時(shí)刻\京ET8140\2/6/2014 08:37:28\京E1H140\2/6/2014 08:37:47\\遼H2117F\2/6/2014 08:39:50\京H2117F\2/6/2014 08:40:12\\津MZH569\2/6/2014 09:01:28\京MZH569\2/6/2014 09:01:54\\京N9MC11\2/6/2014 09:10:27\京A9MC11\2/6/2014 09:11:17\\京BN1113\2/6/2014 09:16:59\京HN1113\2/6/2014 09:17:18\\遼LX9762\2/6/2014 09:49:44\京LX9762\2/6/2014 09:50:59\\京BM4656\2/6/2014 10:33:07\京HM4656\2/6/2014 10:34:07\\津GWM500\2/6/2014 11:07:29\京GWM500\2/6/2014 11:07:51\\京BR9045\2/6/2014 11:27:57\京HR9045\2/6/2014 11:28:14\\京Q9T097\2/6/2014 13:04:25\京Q91U97\2/6/2014 13:05:20\\京L33798\2/6/2014 14:42:07\京K66708\2/6/2014 14:42:25\\京QJ7686\2/6/2014 14:43:25\京QJ16H6\2/6/2014 14:43:49\\京BQ2297\2/6/2014 15:35:02\京HQ2297\2/6/2014 15:35:22\\京GLF198\2/6/2014 15:55:19\京F19898\2/6/2014 15:56:22\\京L81235\2/6/2014 16:41:24\京LH1235\2/6/2014 16:42:28\\京KL1110\2/6/2014 17:29:18\京1TT1T1\2/6/2014 17:29:38\\津QU2856\2/6/2014 17:37:11\京QU2856\2/6/2014 17:37:46\\京KD6276\2/6/2014 18:49:32\京K06276\2/6/2014 18:49:55\\京BN0848\2/6/2014 22:16:51\京HN084H\2/6/2014 22:17:17\\京1QAP18\2/6/2014 22:19:39\京NQC518\2/6/2014 22:20:03\\\\\\\] 圖4 各種匹配的匹配率對(duì)比圖 5 結(jié) 語(yǔ) 與其他交通信息采集技術(shù)相比較,基于車牌識(shí)別數(shù)據(jù)的交通信息采集技術(shù)具有工作連續(xù)性強(qiáng)、數(shù)據(jù)精確度高、檢測(cè)樣本量大等優(yōu)點(diǎn)。車牌模糊匹配在運(yùn)用車牌預(yù)測(cè)行程時(shí)間、判別交通狀態(tài)等方面有著至關(guān)重要的作用,是交通信息采集技術(shù)相關(guān)研究的基礎(chǔ),本文通過(guò)多級(jí)匹配策略,給出了一種比較簡(jiǎn)單快速的車牌模糊匹配算法,并進(jìn)行了驗(yàn)證。車牌多級(jí)匹配技術(shù),可以提高車牌的利用率,實(shí)現(xiàn)車牌的自動(dòng)化校核。 參考文獻(xiàn) [1] DION Francois, RAKHA Hesham. Estimating dynamic roadway travel times using automatic vehicle identification data for low sampling rates [J]. Transportation Research Part B, 2006(40): 745?746. [2] 姜桂艷,常安德,牛世峰.基于車牌識(shí)別數(shù)據(jù)的交通擁堵識(shí)別方法[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2011,43(4):131?135. [3] 高林,劉新,尹紀(jì)軍,等.基于車牌識(shí)別數(shù)據(jù)的交通狀態(tài)判別方法研究[C]//第八屆中國(guó)智能交通年會(huì)優(yōu)秀論文集.北京:中國(guó)智能交通協(xié)會(huì),2013:270?279. [4] 林瑜,陳紅潔,肖永來(lái).基于車牌識(shí)別的交通分析應(yīng)用研究[J].中國(guó)交通信息產(chǎn)業(yè),2009(5):101?104. [5] 何畏.快速精確字符串匹配算法研究[D].合肥:合肥工業(yè)大學(xué),2010. [6] 姚心宇.中文地址識(shí)別系統(tǒng)中的地址表達(dá)與匹配[D].上海:華東師范大學(xué),2012. [7] LEVENSHTEIN V I. Binary codes capable of correcting deletions, insertions and reversals [J]. Soviet Physics?Doklady, 1966, 10(8): 707?710. [8] 趙作鵬,尹志民,王潛平,等.一種改進(jìn)的編輯距離算法及其在數(shù)據(jù)處理中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2009,29(2):424?426. [9] 柴華駿,李瑞敏,郭敏.基于車牌識(shí)別數(shù)據(jù)的城市道路旅行時(shí)間分布規(guī)律及估計(jì)方法研究[J].交通運(yùn)輸系統(tǒng)工程與信息,2012,12(6):41?47. [10] NAVARRO G. A guided tour to approximate string matching [J]. ACM Computing Surveys ?CSUR, 2001, 33(1): 31?88.