魏慧玲,相 偉
(青島艾瑞信息科技有限公司,山東 青島 266100)
隨著車輛保有量的增加,停車成為城市中的一大難題。當(dāng)前,新型社區(qū)和工業(yè)園區(qū)在建設(shè)立項(xiàng)時(shí),對車位配比也做了明確要求,但是仍然難以滿足全部的停車要求,亂停車現(xiàn)象難以避免。一些高端社區(qū)為提升業(yè)務(wù)停車體驗(yàn),針對亂停車現(xiàn)象進(jìn)行針對性的治理,對于停放到他人專用車位的車輛進(jìn)行聲光電等提示,必要時(shí)人工干預(yù),要求其駛離車位。
相比較于地磁傳感器、超聲波雷達(dá)等監(jiān)測機(jī)制[1-3],基于車位相機(jī)的車位占用告警系統(tǒng),不但能監(jiān)測車位是否有車,并且能根據(jù)圖像信息,進(jìn)一步識別是否是非法占用,獲取車型、車色、乘車人員等信息,及時(shí)跟進(jìn)處理。
基于車位相機(jī)的車位占用告警系統(tǒng),可以及時(shí)發(fā)現(xiàn)并處理車位占用事件,并提供自動(dòng)化的處理方式。車位占用告警系統(tǒng)通常需要在停車場加裝車位相機(jī),識別停放車輛車牌等信息,并根據(jù)車輛與車位的歸屬關(guān)系,判斷該車輛是否停放到正確位置。如果發(fā)現(xiàn)車輛與車位不匹配,現(xiàn)場自動(dòng)發(fā)出語音、燈光提示告警,并通過軟件后臺及時(shí)通知物業(yè)或者停車場管理人員,到現(xiàn)場進(jìn)行干預(yù),減少由于車位占用導(dǎo)致的糾紛,提升業(yè)主停車體驗(yàn)。
圖1 車位占用告警系統(tǒng)Fig.1 Parking space occupation warning system
在實(shí)際運(yùn)行過程中,由于車牌號碼識別誤差,會產(chǎn)生一定的誤報(bào)幾率,這不僅會導(dǎo)致工作人員的無效工作增加,還會影響業(yè)主的體驗(yàn),導(dǎo)致業(yè)主投訴。為了減少誤報(bào),可以提高相機(jī)的硬件性能來提高識別率,但這會進(jìn)一步導(dǎo)致硬件成本增加?;诖耍疚奶岢隽送ㄟ^軟件算法減小誤報(bào)率的策略和方法,取得了較好的效果。
車位占用告警系統(tǒng)通常由車位相機(jī)及管理后臺構(gòu)成,管理后臺負(fù)責(zé)維護(hù)車位及車牌的綁定關(guān)系,接收車位相機(jī)上報(bào)的車輛駛?cè)胧录?,根?jù)綁定關(guān)系判斷是否授權(quán)車輛,對于非授權(quán)車輛則需要提示告警,并控制現(xiàn)場車位相機(jī)設(shè)備通過語音及燈光,提醒駕駛?cè)藛T正在占用他人車位。車位相機(jī)主要是用來檢測停車位上有無泊車以及車輛的車牌信息,并能根據(jù)外部指令顯示不同的燈光顏色,指示是否有車及車輛是否授權(quán)停放,部分車位相機(jī)也可以接收外部指令進(jìn)行語音播報(bào)。
車位及車輛的綁定關(guān)系由工作人員錄入,當(dāng)業(yè)主購買、租借車位時(shí),工作人員在管理后臺錄入車位使用人員信息,并登記業(yè)主車輛信息。業(yè)主所屬的車輛與車位建立綁定關(guān)系,授權(quán)業(yè)主車輛在車位停放,此時(shí)業(yè)主任一車輛停放到任意業(yè)主車位均不需要提示告警。業(yè)主還可以預(yù)約訪客,授權(quán)訪客車輛在指定的時(shí)間段內(nèi)停放到所屬車位,則在預(yù)約時(shí)間段內(nèi)訪客車輛停放到業(yè)主車位也不會提示車位占用告警。其他車輛停放到業(yè)主車位,或者業(yè)主車輛停放到其他業(yè)主車位,則提示告警。
圖2 車位占用告警過濾Fig.2 Parking space occupation alarm filtering
車輛駛?cè)胲囄粫r(shí),車位相機(jī)分析視頻流并提取到車牌號碼信息,上報(bào)車輛駛?cè)胧录焦芾砗笈_。管理后臺判斷車牌號碼是否為授權(quán)停放車輛,如果是則忽略車輛駛?cè)胧录?;否則生成車位占用告警記錄提示工作人員,并下發(fā)指令控制現(xiàn)場燈光打開,或者語音提示駕駛員占用他人車位需要盡快離開。當(dāng)車輛駛離時(shí),車位相機(jī)上報(bào)車輛駛離事件到管理后臺,管理后臺關(guān)閉告警狀態(tài),并下發(fā)指令控制現(xiàn)場燈光關(guān)閉,告警事件結(jié)束。
由于車輛停放位置、光線強(qiáng)度、相機(jī)安裝角度、車牌遮擋或者變形等問題,車牌號碼的識別分析存在一定的誤差,導(dǎo)致授權(quán)車輛被識別為其他號碼從而產(chǎn)生錯(cuò)誤告警提示。要消除這種誤差,可以提高車位相機(jī)的分辨率并且提高硬件分析能力來提高車牌號碼識別的準(zhǔn)確率,以此降低識別誤差導(dǎo)致的錯(cuò)誤告警比率,但是跟隨硬件能力的提高而來的是成本的增加。
在某些特定的情況下,由于車牌號碼拍攝不完整,比如部分車牌號碼被遮擋,或者由于角度問題車牌的上沿被遮擋導(dǎo)致車牌號碼無法完整拍攝提取,此時(shí)無法通過提高識別率的方式來降低誤報(bào)。本文針對提出基于軟件算法的告警過濾方式,在不增加硬件成本的前提下通過軟件算法過濾告警降低誤報(bào)率的方案。
降低錯(cuò)誤告警比率可以有多種方式,一種是通過提高相機(jī)的分辨率及分析能力提高車牌號碼識別的準(zhǔn)確率。這能夠有效降低誤報(bào)率,但同時(shí)會提高系統(tǒng)的硬件成本。還有一種方式是修改告警算法對告警信息進(jìn)行過濾,也就是當(dāng)識別為未授權(quán)的車牌號碼時(shí),針對號碼的特性判斷是否為識別錯(cuò)誤,如果認(rèn)定為識別錯(cuò)誤,則忽略告警事件。而由不同原因?qū)е碌牟煌R別錯(cuò)誤類型可以采用不同的過濾方法,最終降低誤報(bào)率。
導(dǎo)致車牌識別錯(cuò)誤的原因有很多,常見的原因有:車位現(xiàn)場環(huán)境比如部分車位光線較暗,相機(jī)安裝角度針對車位較大等情況,會導(dǎo)致車牌號碼識別不準(zhǔn)確;停放車輛前方的物體會遮擋車牌號碼,導(dǎo)致車牌號碼識別不完整;系統(tǒng)或者環(huán)境存在抖動(dòng)時(shí)會導(dǎo)致一定幾率的車牌識別錯(cuò)誤,此類錯(cuò)誤往往無法事先預(yù)測準(zhǔn)確的識別號碼,無法通過人工干預(yù)的方式避免。
實(shí)際識別的錯(cuò)誤號碼存在不確定性,但是均與正確號碼相似,比如僅其中的一位存在錯(cuò)誤??紤]到相似號碼占用車位的情況在現(xiàn)實(shí)中較為少見,在判斷車牌號碼是否授權(quán)號碼時(shí)并不需要車牌號碼完全相同,可以計(jì)算識別出車牌號碼與授權(quán)號碼的相似度,如果相似度滿足閾值條件,就認(rèn)為兩個(gè)車牌號碼相同。計(jì)算車牌號碼的相似度可以通過計(jì)算兩個(gè)車牌號碼編輯距離的方式實(shí)現(xiàn),如果編輯距離小于閾值,就認(rèn)為兩個(gè)車牌號碼相同,可以過濾掉大部分識別錯(cuò)誤的車牌號碼從而降低誤報(bào)率。
編輯距離是針對兩個(gè)字符串(例如英文字母或數(shù)字)的差異程度的量化量測[4-6],量測方式是看至少需要多少次的處理才能將一個(gè)字符串變成另一個(gè)字符串。編輯距離有幾種不同的定義,差異在可以對字符串進(jìn)行的處理,本文使用了萊文斯坦距離和最長公共子序列兩種方式計(jì)算車牌號碼的相似度。
萊文斯坦距離(Levenshtein Distance),由俄羅斯科學(xué)家弗拉基米爾·萊文斯坦提出[5,6],指兩個(gè)字串之間由一個(gè)轉(zhuǎn)成另一個(gè)所需的最少編輯操作次數(shù)。允許的編輯操作包括將一個(gè)字符替換成另一個(gè)字符,插入一個(gè)字符,刪除一個(gè)字符。如果兩個(gè)車牌號碼的萊文斯坦距離較小,比如小于等于2,則可以認(rèn)為兩個(gè)車牌號碼相似。萊文斯坦距離的計(jì)算方式參考下面說明:
如果分別用|a|和|b|表示a,b兩個(gè)字符串的長度,那么他們的萊文斯坦距離為leva,b(|a|, |b|),它符合:
1(ai≠bj)是一個(gè)指示函數(shù)(indicator function),當(dāng)ai=bj時(shí),其值為0,其他時(shí)候等于1。leva,b(i,j)表示a的前i個(gè)字符與b的前j個(gè)字符之間的萊文斯坦距離(i和j都是從1 開始的下標(biāo))。
匹配車牌號碼時(shí),計(jì)算上報(bào)車牌號碼與每個(gè)授權(quán)車牌號碼的萊文斯坦距離,如果字符編輯距離小于閾值,則認(rèn)為兩個(gè)號碼匹配,否則需要進(jìn)一步判斷是否滿足其他過濾條件。
最長公共子序列(LCS)是一個(gè)在一個(gè)序列集合中(通常為兩個(gè)序列)用來查找所有序列中最長子序列的問題[7,8]。一個(gè)數(shù)列,如果分別是兩個(gè)或多個(gè)已知數(shù)列的子序列,且是所有符合此條件序列中最長的,則稱為已知序列的最長公共子序列。如果兩個(gè)車牌號碼的公共子序列足夠長,比如在7 位車牌號碼中公共子序列長度達(dá)到5 位,則兩個(gè)車牌號碼相似。其計(jì)算公式如下:
設(shè)Aa 和Bb 的最長公共子序列為Zz:
1)如果Aa=Bb 則Aa=Bb=Zz,Aa-1 和Bb-1 的最長公共子序列為Zz-1。
2)如果Aa ≠Bb 并且Aa ≠Zz,Aa-1 和Bb 的最長公共子序列為Zz。
3)如果Aa ≠Bb 并且Bb ≠Zz,Aa 和Bb-1 的最長公共子序列為Zz。
根據(jù)以上3 條可以使用動(dòng)態(tài)規(guī)劃方式解決這個(gè)問題,設(shè)數(shù)組T[a][b]用于存儲最長公共子序列的情況,則T[a][b]的計(jì)算方式如下:
匹配車牌號碼時(shí)計(jì)算兩個(gè)車牌號碼的最長公共子序列長度,如果長度大于閾值,則認(rèn)為兩個(gè)號碼匹配。如果小于閾值,則認(rèn)為兩個(gè)車牌號碼不匹配。上報(bào)車牌號碼匹配任一授權(quán)車牌號碼時(shí)忽略告警,否則需要進(jìn)一步判斷是否滿足其他過濾條件。
除了上述不確定的識別錯(cuò)誤,還有一類由于車牌外形或者外部環(huán)境導(dǎo)致的識別錯(cuò)誤。這類錯(cuò)誤與實(shí)際的車牌號碼并不相似,無法通過號碼的相似度進(jìn)行過濾。但是錯(cuò)誤號碼相對穩(wěn)定,是可以通過歷史數(shù)據(jù)進(jìn)行預(yù)測的,可以人工干預(yù)對這類錯(cuò)誤進(jìn)行針對性的過濾。
車牌由于彎折或者輕微污損,比如部分車牌在撞擊過后產(chǎn)生變形,導(dǎo)致無法正確識別車牌號碼。在識別車牌號碼時(shí)可能與實(shí)際車牌號碼完全沒有相關(guān)性,這就導(dǎo)致業(yè)主車輛停放到車位上時(shí),車輛被識別為非業(yè)主車輛,車位上方亮燈提示,并語音提示車主停放錯(cuò)誤,影響業(yè)主體驗(yàn)。在實(shí)際識別時(shí),由于車牌的外形是穩(wěn)定的,雖然號碼與實(shí)際號碼并不相關(guān),但是也會表現(xiàn)為一組穩(wěn)定的互相關(guān)聯(lián)的號碼。針對此類錯(cuò)誤,初次識別時(shí)無法確認(rèn)是否需要過濾,但是工作人員確認(rèn)號碼是業(yè)主號碼識別錯(cuò)誤后,允許手動(dòng)標(biāo)記為業(yè)主車輛,并記錄實(shí)際車牌號碼。后續(xù)再次識別到該車牌號碼時(shí),管理后臺查找標(biāo)記記錄確認(rèn)為業(yè)主車輛及實(shí)際號碼,忽略告警。
為了便于尋找及管理車位,通常會在車位前方或者車位中噴涂車位號碼。在提取圖片進(jìn)行車牌號碼識別時(shí),由于空車位反光會存在一定的幾率把車位號識別為車牌號碼,此時(shí)識別出的車牌號碼一般會包含車位號。針對這一特點(diǎn),可以對全部或者部分車位設(shè)置是否過濾車位號碼。如果選擇是,則在識別到占用事件時(shí)上報(bào)車牌號碼包含車位號碼,忽略告警。
除了車位反光,現(xiàn)場擺放的其他物體也有可能導(dǎo)致識別錯(cuò)誤,通常會被識別為特定的一個(gè)或者一組號碼。這類錯(cuò)誤需要人工確認(rèn)后單獨(dú)配置過濾號碼,一旦配置后則在指定的車位對于指定的號碼進(jìn)行告警過濾。
綜合運(yùn)用上述降低車位占用告警誤報(bào)率的策略和方法,如表1 所示,在白天光線充足的情況下,車位占用告警正確率為98.7%;在白天陰雨天時(shí),由于光線不足,車位占用告警正確率為97.6%;在夜間,由于光線不足,攝像頭補(bǔ)光不充分,車位占用告警正確率可達(dá)96.2%。配合人工干預(yù),基本可以滿足智慧社區(qū)車位占用告警的實(shí)際需求。
表1 實(shí)際應(yīng)用結(jié)果Table 1 Actual application results
本文針對車位占用告警系統(tǒng)中的識別錯(cuò)誤提出了告警過濾的方法,針對環(huán)境或者系統(tǒng)引起的不確定錯(cuò)誤通過計(jì)算車牌號碼相似度的方式進(jìn)行過濾,并通過手動(dòng)確認(rèn)標(biāo)記的方式過濾掉由于車牌號碼變形及污損、空車位反光、現(xiàn)場固定環(huán)境導(dǎo)致的識別錯(cuò)誤,進(jìn)一步提高降低錯(cuò)誤告警比率。綜合車位占用告警的正確識別率達(dá)到98%,可以滿足智慧社區(qū)車位占用告警的實(shí)際需求,在實(shí)際工程應(yīng)用中取得較好的效果。