姚礪,馬睿,周同輝,萬(wàn)燕
(東華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù),上海 201600)
近年來(lái),中國(guó)的汽車保有量呈現(xiàn)出飛速增長(zhǎng)。僅2020 年,全國(guó)新注冊(cè)登記機(jī)動(dòng)車約3 328 萬(wàn)輛,全國(guó)機(jī)動(dòng)車保有量達(dá)3.72 億輛。隨著機(jī)動(dòng)車數(shù)量的增長(zhǎng),市民對(duì)停車位的需求日益迫切,原有的一些停車場(chǎng)已難以滿足不斷增長(zhǎng)的停車需求,重要的交通樞紐、醫(yī)院、商場(chǎng)等開(kāi)始出現(xiàn)停車難的問(wèn)題。
為解決停車難的問(wèn)題,交管部門在路邊劃分了一些臨時(shí)停車位緩解停車位緊張的問(wèn)題,但是這也給相關(guān)部門帶來(lái)了管理上的壓力。如停車收費(fèi)問(wèn)題、違規(guī)停車的監(jiān)測(cè)以及處罰問(wèn)題等,管理不當(dāng)會(huì)造成道路擁堵,增加發(fā)生交通事故的可能性。國(guó)務(wù)院通過(guò)的《“互聯(lián)網(wǎng)+”行動(dòng)的指導(dǎo)意見(jiàn)》提出將互聯(lián)網(wǎng)與各行業(yè)深度融合,因此路邊停車管理手段與“互聯(lián)網(wǎng)+”思維的結(jié)合勢(shì)必成為符合國(guó)情民意發(fā)展的新領(lǐng)域。
目前路邊停車管理系統(tǒng)多需要進(jìn)行道路改造,引進(jìn)地磁檢測(cè)器、傳感器等硬件設(shè)備來(lái)檢測(cè)車輛的停放[1-2],不僅增加了實(shí)施成本,還可能會(huì)影響其它車輛的正常行駛。針對(duì)于此,本文提出了基于視頻的路邊停車管理方案。該方案利用路邊監(jiān)控系統(tǒng)進(jìn)行停車管理,即方便實(shí)施又節(jié)省成本,可以在路邊復(fù)雜的環(huán)境下完成車輛的定位,車牌識(shí)別以及停車行為識(shí)別。
本文方法是在路邊固定位置放置攝像頭用于監(jiān)控和管理路對(duì)面的停車位。在道路對(duì)面放置攝像頭進(jìn)行監(jiān)控的好處是容易判定停車,但由于路邊停車多為側(cè)向停車,車輛進(jìn)入前后車牌可能會(huì)傾斜角度較大甚至被自身遮擋,這也對(duì)車牌識(shí)別提出了更大的挑戰(zhàn)。為此,本文使用動(dòng)態(tài)車牌識(shí)別算法,可以很好的應(yīng)用于該場(chǎng)景。
路邊停車管理的關(guān)鍵是對(duì)停車車輛的車牌進(jìn)行識(shí)別,基于視頻的路邊停車場(chǎng)景下的車牌識(shí)別相比傳統(tǒng)的車牌識(shí)別主要存在兩點(diǎn)不同:一是車輛在??繒r(shí),需不停地移動(dòng)變換角度,所以大部分截取到的車牌不是正對(duì)攝像頭;二是由于車位安排較密,車輛停入后可能會(huì)遮擋住車牌,導(dǎo)致無(wú)法識(shí)別?;谶@兩點(diǎn),本文提出了動(dòng)態(tài)車牌識(shí)別算法:基于視頻,在車輛進(jìn)入鏡頭內(nèi)即逐幀開(kāi)始進(jìn)行識(shí)別,最后通過(guò)投票算法選舉出最佳結(jié)果,可以防止車輛自身遮擋或者相互遮擋導(dǎo)致的無(wú)法識(shí)別。針對(duì)路邊停車場(chǎng)景車牌傾斜扭曲的情況,本文算法在定位到車牌后進(jìn)行傾斜矯正,極大地提高了傾斜狀態(tài)下車牌的識(shí)別率。
動(dòng)態(tài)車牌識(shí)別算法需要對(duì)同一車輛進(jìn)行跟蹤,持續(xù)對(duì)其車牌進(jìn)行識(shí)別。對(duì)于車輛跟蹤,主要難點(diǎn)是路邊車輛密集并且會(huì)有干擾,需要在短暫的遮擋后能進(jìn)行重識(shí)別。本文提出了基于DeepSORT[3]的車輛跟蹤算法,可在短暫遮擋后重識(shí)別。算法在跟蹤時(shí),對(duì)車輛的停車行為進(jìn)行判斷,并識(shí)別其車牌。
路邊停車管理總體流程為:車輛跟蹤算法和動(dòng)態(tài)車牌識(shí)別算法并行執(zhí)行。跟蹤算法在跟蹤到車輛后,將圖片存儲(chǔ),并通過(guò)消息中間件通知車牌識(shí)別算法識(shí)別對(duì)應(yīng)車輛的車牌,車牌識(shí)別算法識(shí)別后將識(shí)別結(jié)果存儲(chǔ)到數(shù)據(jù)庫(kù)中。如果跟蹤過(guò)程中判斷到車輛停入車位,為防止識(shí)別的延遲等情況,先延遲等待,跟蹤算法再去數(shù)據(jù)庫(kù)中讀取相應(yīng)的車牌識(shí)別結(jié)果,通過(guò)投票算法選取最優(yōu)結(jié)果,記錄車輛停車信息。
傳統(tǒng)車牌識(shí)別分為圖像預(yù)處理、車牌定位、字符分割和字符識(shí)別幾個(gè)步驟。對(duì)車牌進(jìn)行灰度化處理和去噪后,進(jìn)行邊緣檢測(cè)得到定位車牌,再進(jìn)行二值化、字符分割,最后通過(guò)模版匹配得到結(jié)果。但這種方法準(zhǔn)確率較低,目前多使用基于卷積神經(jīng),網(wǎng)絡(luò)(CNN)的車牌識(shí)別算法,主要分為兩步:定位車牌和識(shí)別車牌。
上述算法是基于圖片進(jìn)行車牌識(shí)別,對(duì)視頻場(chǎng)景下的車牌識(shí)別,上述算法不能很好的利用視頻的特性,由于視頻角度問(wèn)題,單幀圖片的識(shí)別結(jié)果很可能會(huì)產(chǎn)生誤差。針對(duì)此問(wèn)題,本文提出了動(dòng)態(tài)車牌識(shí)別算法,可以充分利用視頻多幀之間的關(guān)聯(lián),提高視頻狀態(tài)下的車牌識(shí)別率??傮w流程為:首先對(duì)同一車輛每一幀進(jìn)行識(shí)別,并對(duì)圖片質(zhì)量進(jìn)行打分。圖片質(zhì)量主要包括車牌大小、車牌傾斜程度以及圖片清晰度。以打分為權(quán)重,通過(guò)投票算法選取最優(yōu)識(shí)別結(jié)果。
一般基于深度學(xué)習(xí)的車牌識(shí)別算法主要使用目標(biāo)檢測(cè)算法來(lái)定位車。如R-CNN 系列[4-7]、YOLO系列[8-11],結(jié)果多為矩形框,以四維向量(x,y,w,h)表示。但在路邊停車場(chǎng)景下,視頻拍攝到的車牌多數(shù)會(huì)有不同程度的傾斜,如圖1 所示(來(lái)自CCPD數(shù)據(jù)集[12])。由目標(biāo)檢測(cè)算法定位的車牌位置不夠精確,識(shí)別效果會(huì)因此受到影響。
圖1 目標(biāo)檢測(cè)算法定位傾斜角度較大的車牌Fig.1 The target detection algorithm locates the license plate with large tilt Angle
針對(duì)上述問(wèn)題,本文使用了場(chǎng)景文本檢測(cè)算法EAST[13]進(jìn)行車牌定位。本文基于EAST 完成了車牌定位,精確定位車牌邊緣的4 個(gè)點(diǎn),便于后續(xù)的矯正和識(shí)別。
EAST 主要分為兩個(gè)階段:首先基于FCN(全卷積網(wǎng)絡(luò))模型生成文本框的預(yù)測(cè),再用NMS(非極大值抑制)產(chǎn)生最終的結(jié)果。輸出可以有兩種形式,一是RBOX(旋轉(zhuǎn)矩形),包含4 個(gè)通道的水平邊界框(AABB)和1 個(gè)通道的旋轉(zhuǎn)角度θ;另一種是QUAD(任意四邊形),包含8 個(gè)通道,表示從矩形的4 個(gè)頂點(diǎn)到像素位置的坐標(biāo)偏移。由于拍攝角度問(wèn)題,路邊停車場(chǎng)景下拍攝的車牌多不僅有旋轉(zhuǎn)傾斜,還存在一定程度的變形,定位到的結(jié)果可能不是矩形,而是經(jīng)過(guò)扭曲后的普通四邊形,僅進(jìn)行旋轉(zhuǎn)無(wú)法將其矯正為正對(duì)的車牌,故本文選擇了QUAD 輸出。圖2 展示了RBOX 和QUAD 輸出定位的車牌,其中紅線是RBOX 輸出的結(jié)果,綠線是QUAD 輸出的結(jié)果。通過(guò)EAST 定位到車牌的4 個(gè)角點(diǎn)后,通過(guò)投影變換對(duì)車牌進(jìn)行傾斜矯正,使車牌正對(duì)鏡頭。
圖2 RBOX 輸出和QUAD 輸出對(duì)比Fig.2 RBOX output and QUAD output contrast
設(shè):給定一張圖像,對(duì)其進(jìn)行投影變換步驟如下:首先將二維平面中(x,y)處的點(diǎn),通過(guò)變換矩陣投影到一個(gè)三維空間(X,Y,Z),如式(1):
再由三維空間(X,Y,Z)變回二維平面(x’,y’),如式(2)和式(3):
即通過(guò)上述變化,原圖片(x,y)處的點(diǎn)將變化為(x’,y’)處的點(diǎn)。
通過(guò)投影變換,可以將任意四邊形的車牌矯正為矩形,方便后續(xù)的識(shí)別。圖3 展示了傾斜車牌經(jīng)過(guò)EAST 算法定位及投影變換矯正的效果。通過(guò)精確定位及傾斜矯正,可以顯著提高識(shí)別準(zhǔn)確率。
圖3 傾斜車牌精確定位及矯正后的效果Fig.3 Accurate positioning and correction effect of slanting plate
經(jīng)過(guò)矯正后的車牌,可使用CRNN[14]網(wǎng)絡(luò)來(lái)進(jìn)行識(shí)別。
CRNN 是一種卷積循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用于解決基于圖像的序列識(shí)別問(wèn)題。將文字識(shí)別看作對(duì)序列的預(yù)測(cè),采用了對(duì)序列預(yù)測(cè)的RNN 網(wǎng)絡(luò)。通過(guò)CNN 將圖片的特征提取出來(lái)后,采用RNN 對(duì)序列進(jìn)行預(yù)測(cè),最后通過(guò)一個(gè)CTC 的翻譯層得到最終結(jié)果。使用CRNN 網(wǎng)絡(luò)不用對(duì)字符進(jìn)行分割,減少了分割帶來(lái)的誤差。
由于動(dòng)態(tài)車牌識(shí)別算法是基于視頻的識(shí)別,對(duì)每一幀或者每隔幾幀,則對(duì)鏡頭內(nèi)所有車輛車牌進(jìn)行識(shí)別,將造成對(duì)同一輛車產(chǎn)生多個(gè)識(shí)別,最終導(dǎo)致對(duì)多個(gè)識(shí)別結(jié)果的最終選取問(wèn)題。因此,本文引入投票算法,為每一幀識(shí)別的車牌圖像進(jìn)行質(zhì)量打分,以此打分為權(quán)重,在車輛停入后,根據(jù)識(shí)別結(jié)果進(jìn)行投票,選取得分最高的結(jié)果作為最終結(jié)果。
在路邊停車場(chǎng)景下,車牌的圖像質(zhì)量主要由3部分決定:
(1)車牌大?。耗骋粩z像頭會(huì)監(jiān)控一片區(qū)域,在車輛移動(dòng)過(guò)程中,車輛離攝像頭近、車牌面積大時(shí)識(shí)別效果較好;
(2)車牌變形程度:在車輛反復(fù)移動(dòng)停車的過(guò)程中,車牌會(huì)以不同的角度呈現(xiàn)在攝像頭下,車牌會(huì)有不同程度的變形,變形程度小的車牌會(huì)比較容易識(shí)別;
(3)圖像清晰度:由于車輛可能處于運(yùn)動(dòng)之中,會(huì)存在運(yùn)動(dòng)模糊,模糊程度小的圖像,識(shí)別準(zhǔn)確率較高。
基于上述分析,本文提出車牌圖像質(zhì)量公式如下:
其中,S為車牌面積;D為變形程度;C為圖片清晰度;λ、μ為權(quán)重。
變形程度可以使用車牌的最小外接矩形面積與車牌面積的比值來(lái)表示,計(jì)算公式如下:
其中,S'為車牌最小外接矩形的面積。
圖像清晰度可以使用拉普拉斯梯度法來(lái)計(jì)算,其公式如下:
其中,T為閾值,G(x,y)是圖像與拉普拉斯算子的卷積,拉普拉斯算子如下:
動(dòng)態(tài)車牌識(shí)別算法需要對(duì)車輛進(jìn)行持續(xù)跟蹤,以連續(xù)地對(duì)其車牌進(jìn)行識(shí)別。在路邊停車環(huán)境下,路況復(fù)雜,有很多行人和過(guò)往車輛干擾,且會(huì)存在車輛之間互相遮擋,短暫出鏡的情況,可能會(huì)導(dǎo)致跟蹤丟失,影響車牌識(shí)別結(jié)果。經(jīng)研究,本文基于DeepSORT 完成了車輛跟蹤算法。DeepSORT 是一個(gè)多目標(biāo)跟蹤算法,與傳統(tǒng)目標(biāo)跟蹤算法相比,其融合了對(duì)跟蹤對(duì)象的外觀特征進(jìn)行跟蹤,可以對(duì)短暫離鏡的目標(biāo)進(jìn)行重識(shí)別,提高了跟蹤的穩(wěn)定性。由于DeepSORT 算法只能對(duì)車輛進(jìn)行跟蹤,而無(wú)法對(duì)車輛行為識(shí)別,因此本文算法在DeepSORT 基礎(chǔ)上進(jìn)行改進(jìn),加入了停車判定模塊。
算法以DeepSORT為基礎(chǔ),以YOLO-v3為檢測(cè)器,先通過(guò)檢測(cè)器檢測(cè)目標(biāo),生成檢測(cè)(detection),通過(guò)卡爾曼濾波生成預(yù)測(cè),再使用匈牙利算法,將檢測(cè)的檢測(cè)框和卡爾曼濾波的預(yù)測(cè)進(jìn)行匹配。對(duì)于匹配成功的detection 預(yù)測(cè)生成新的跟蹤(track)或更新原有track 的狀態(tài);每次更新?tīng)顟B(tài),會(huì)判斷其停車狀態(tài),如果判定為駛?cè)耄瑒t讀取車牌識(shí)別情況,開(kāi)始停車計(jì)時(shí);若判定為駛出,則停止停車計(jì)時(shí)。
對(duì)于檢測(cè)框和預(yù)測(cè)框的匹配,使用d(1)(i,j)和d(2)(i,j)兩個(gè)特征融合作為匹配度量。d(1)(i,j)為第i個(gè)track 的預(yù)測(cè)位置到第j個(gè)detection 的檢測(cè)位置的馬氏距離,公式如下
其中,dj表示第j個(gè)detection 的檢測(cè)位置;yi表示第i個(gè)track 的預(yù)測(cè)位置;Si為兩者的協(xié)方差矩陣。
對(duì)于每一個(gè)detection,都會(huì)通過(guò)深度學(xué)習(xí)提取外觀特征,得到一個(gè)特征向量,此外還會(huì)創(chuàng)建一個(gè)集合Ri來(lái)保存第i個(gè)track 近100 個(gè)匹配成功的detection 的特征向量。通過(guò)加入外觀特征的匹配,可以完成對(duì)短暫離鏡目標(biāo)的重識(shí)別。d(2)(i,j)為第i個(gè)track 的最近100 個(gè)成功匹配的特征向量集與當(dāng)前幀第j個(gè)detection 的特征向量間的最小余弦距離,公式如下:
其中,rj表示第j個(gè)detection 的外觀特征向量,為Ri中第k個(gè)特征向量。
兩個(gè)特征通過(guò)線性加權(quán)結(jié)合,作為最終的匹配度量:
其中,λ為線性加權(quán)的權(quán)值。本文使用了DeepSORT 論文中給出的經(jīng)驗(yàn)值0,即僅使用外觀特征進(jìn)行匹配。
為判定停車狀態(tài),本文使用車位占用比occupation ratio 來(lái)量化車位被占用的概率。當(dāng)occupation ratio 大于設(shè)定閾值時(shí)即認(rèn)為車位被占用。計(jì)算公式如下:
其中,C表示車輛的面積;P表示停車位的面積;C∩P表示兩者相交的面積。
在實(shí)際使用時(shí),由于攝像頭拍攝角度問(wèn)題,可能會(huì)有車輛暫時(shí)路過(guò)遮擋停車位,除此之外,算法可能存在某一幀的誤判,如果僅依據(jù)occupation ratio 判斷,可能會(huì)造成誤判,本文加入不匹配幀數(shù)來(lái)解決此問(wèn)題。在track 和detection 匹配之后,將檢測(cè)目標(biāo)記錄與當(dāng)前判斷的狀態(tài)是否一致。當(dāng)狀態(tài)不一致時(shí),記錄不匹配幀數(shù),當(dāng)此幀數(shù)大于閾值時(shí),再判定車輛停入或駛出車位。
實(shí)驗(yàn)環(huán)境:Ubuntu 18.04 操作系統(tǒng),Intel(R)Xeon(R)Bronze 3204 CPU @ 1.90GHz 處理器,GeForce RTX 2080ti 11GB 顯卡。
本文使用CCPD 數(shù)據(jù)集進(jìn)行訓(xùn)練和評(píng)估。CCPD 數(shù)據(jù)集是一個(gè)大型的中文車牌數(shù)據(jù)集,總共約有30 萬(wàn)張圖片,將其分為普通圖片和較難識(shí)別圖片。較難識(shí)別的又分為模糊、光線亮或暗、傾斜等情況,標(biāo)注了車牌的4 個(gè)角點(diǎn)和車牌號(hào)碼等信息。本文將這些圖片按照訓(xùn)練:驗(yàn)證:測(cè)試=8 ∶1 ∶1 劃分進(jìn)行實(shí)驗(yàn)。
使用CCPD 數(shù)據(jù)集和車牌位置標(biāo)注信息訓(xùn)練EAST 模型。利用CCPD 的標(biāo)注截取其中車牌,形成車牌數(shù)據(jù)集。由于車牌數(shù)據(jù)集分布不均勻,大部分車牌是皖,即安徽的車牌,其他省份車牌較少,故本文對(duì)車牌數(shù)據(jù)集進(jìn)行了增強(qiáng),合成了一些車牌圖像,并加入了噪聲以模擬真實(shí)環(huán)境下的效果,如圖4 所示。通過(guò)擴(kuò)充后的數(shù)據(jù)集訓(xùn)練CRNN 模型,對(duì)兩個(gè)模型進(jìn)行串聯(lián)評(píng)估。對(duì)是否進(jìn)行矯正分別做了測(cè)試,其中不加入矯正的識(shí)別中,CRNN 的訓(xùn)練集也未經(jīng)矯正,測(cè)試結(jié)果見(jiàn)表1。
圖4 合成的車牌圖像Fig.4 The generated license plate image
表1 是否加入矯正對(duì)比結(jié)果Tab.1 Comparison results of whether to add corrective
由表1 中結(jié)果可以發(fā)現(xiàn),無(wú)論是正向車牌還是傾斜車牌,加入矯正后的測(cè)試準(zhǔn)確率都有較大的提升。
將其與CCPD 數(shù)據(jù)集論文中的RPNet 識(shí)別率對(duì)比結(jié)果見(jiàn)表2。
表2 車牌識(shí)別測(cè)試結(jié)果Tab.2 License plate recognition test results
分析表2 中結(jié)果可以發(fā)現(xiàn),對(duì)正向車牌的識(shí)別,兩者識(shí)別率差距較小,而對(duì)傾斜車牌的識(shí)別,RPNet的識(shí)別率只有92.5%,而本文算法比RPNet 的效果有顯著提高。
本文對(duì)路邊停車管理中的車牌識(shí)別進(jìn)行了研究,提出了動(dòng)態(tài)車牌識(shí)別算法,基于視頻完成車牌識(shí)別,利用視頻多幀的關(guān)聯(lián),在車輛入鏡后即開(kāi)始進(jìn)行識(shí)別,對(duì)每一幀識(shí)別到的車牌圖片質(zhì)量打分,以該分值為比重,通過(guò)投票機(jī)制選出最佳識(shí)別,完成了對(duì)視頻中車輛的車牌識(shí)別。通過(guò)場(chǎng)景文本檢測(cè)算法EAST 定位車牌的4 個(gè)角點(diǎn),經(jīng)投影變換矯正后通過(guò)CRNN 進(jìn)行車牌識(shí)別。在CCPD 數(shù)據(jù)集上的實(shí)驗(yàn)表明,該算法對(duì)大角度傾斜車牌的識(shí)別率較高。
動(dòng)態(tài)車牌識(shí)別算法需要對(duì)車輛進(jìn)行持續(xù)跟蹤,并識(shí)別其停車行為。本文采用基于DeepSORT 的車輛跟蹤算法對(duì)車輛進(jìn)行跟蹤。以YOLO-v3為檢測(cè)器檢測(cè)車輛,對(duì)DeepSORT 算法改進(jìn),加入停車判定來(lái)對(duì)車輛行為進(jìn)行判定,在跟蹤的同時(shí)對(duì)其車牌進(jìn)行識(shí)別,該算法可以較好地與動(dòng)態(tài)車牌識(shí)別算法配合,防止車輛停入車位后車牌被遮擋導(dǎo)致無(wú)法識(shí)別。