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