李永上,馬榮貴,張美月
長(zhǎng)安大學(xué) 信息工程學(xué)院,西安 710064
在智能交通系統(tǒng)中,利用監(jiān)控視頻進(jìn)行車流量統(tǒng)計(jì)是一個(gè)研究熱點(diǎn)。交管部門通過(guò)實(shí)時(shí)、準(zhǔn)確地采集車流量信息,可以合理分配交通資源、提高道路通行效率,有效預(yù)防和應(yīng)對(duì)城市交通擁堵問(wèn)題。
基于監(jiān)控視頻的車流量統(tǒng)計(jì)通常包含車輛目標(biāo)檢測(cè)和跟蹤兩個(gè)部分。傳統(tǒng)的目標(biāo)檢測(cè)算法利用人工構(gòu)建目標(biāo)特征,之后使用分類算法進(jìn)行分類,判斷目標(biāo)是否存在,典型的算法如Haar+Adaboost[1]、Hog+SVM[2]、DPM[3],這些算法需要在圖像中進(jìn)行滑動(dòng)窗口操作,檢測(cè)效率低、消耗資源大,并且人工設(shè)計(jì)的特征魯棒性低、泛化效果差,容易導(dǎo)致車輛誤檢、漏檢現(xiàn)象的出現(xiàn)。隨著機(jī)器學(xué)習(xí)和GPU并行計(jì)算技術(shù)的不斷發(fā)展,目標(biāo)檢測(cè)逐漸由傳統(tǒng)方法轉(zhuǎn)為基于深度學(xué)習(xí)的方法,主要分為One-Stage結(jié)構(gòu)和Two-Stage結(jié)構(gòu)兩種[4]。Two-Stage算法在檢測(cè)時(shí)首先生成候選區(qū)域,之后在候選區(qū)域的基礎(chǔ)上分類和校準(zhǔn),準(zhǔn)確率相對(duì)較高,代表模型有R-CNN系列[5-7]。One-Stage算法在檢測(cè)時(shí)無(wú)需生成候選區(qū)域,直接對(duì)目標(biāo)類別和邊界進(jìn)行回歸,檢測(cè)速度快,代表模型有SSD[8]、RetinaNet[9]、YOLO[10-12]系列?;谏疃葘W(xué)習(xí)的車輛檢測(cè)方法能夠從數(shù)據(jù)中學(xué)習(xí)車輛特征,兼具檢測(cè)速度快、準(zhǔn)確率高的優(yōu)勢(shì)。目前,YOLO模型發(fā)展到最新的YOLOv5,由Ultralytics公司發(fā)布,按照模型權(quán)重大小分為s、m、l、x。其中,YOLOv5s模型參數(shù)量(Params)最少,浮點(diǎn)運(yùn)算量(FLOPs)最低,但是運(yùn)行速度最快,達(dá)到每張圖像2 ms的推理速度,在COCO 2017驗(yàn)證集上的mAP達(dá)到55.4%。
目標(biāo)跟蹤算法根據(jù)初始化方式不同,分為基于檢測(cè)的跟蹤(detection-based tracking,DBT)和無(wú)檢測(cè)的跟蹤(detection-free tracking,DFT)。DBT需要一個(gè)檢測(cè)器提前將每一幀圖像中的目標(biāo)檢測(cè)出來(lái),之后跟蹤檢測(cè)出的目標(biāo),因此跟蹤效果依賴于檢測(cè)效果;而DFT需要人工在初始幀將被跟蹤目標(biāo)標(biāo)注出來(lái),算法靈活性不高,并且無(wú)法跟蹤后面幀中出現(xiàn)的不同目標(biāo)。目標(biāo)跟蹤還可以根據(jù)視頻幀處理方式的不同分為在線跟蹤和離線跟蹤。在線跟蹤處理每一幀時(shí)依據(jù)當(dāng)前幀和之前幀中的信息跟蹤目標(biāo),不能根據(jù)當(dāng)前幀的信息修改之前幀的跟蹤結(jié)果;離線跟蹤則可以利用當(dāng)前幀的前后數(shù)據(jù)獲取全局最優(yōu)解,但是不適合現(xiàn)實(shí)場(chǎng)景中的實(shí)時(shí)應(yīng)用。在監(jiān)控視頻的車輛跟蹤任務(wù)中,考慮實(shí)時(shí)性和靈活性,基于檢測(cè)的在線跟蹤是最接近實(shí)際應(yīng)用的方法。
監(jiān)控視頻車流量統(tǒng)計(jì)的難點(diǎn)在于視頻中的運(yùn)動(dòng)模糊、車輛遮擋、目標(biāo)尺度變化,這些因素會(huì)導(dǎo)致車輛檢測(cè)時(shí)出現(xiàn)漏檢或誤檢,或者在車輛跟蹤時(shí)出現(xiàn)身份切換(ID switch,IDs),影響最后的統(tǒng)計(jì)結(jié)果。針對(duì)這些難點(diǎn),本文利用基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法檢測(cè)車輛,結(jié)合檢測(cè)結(jié)果和在線跟蹤的DBT算法跟蹤目標(biāo),最后在視頻中利用虛擬檢測(cè)線的方式完成車流量統(tǒng)計(jì)。
基于深度學(xué)習(xí)的車輛檢測(cè)具有速度快、準(zhǔn)確率高的優(yōu)點(diǎn),不論是在復(fù)雜的環(huán)境背景中,還是在算力較低的邊緣設(shè)備上,都能表現(xiàn)出良好的檢測(cè)效果。黃開(kāi)啟等[13]在霧霾天氣的背景下,利用改進(jìn)的YOLOv3算法檢測(cè)車輛,構(gòu)造了一種定位置信度替代分類置信度作為參考項(xiàng)來(lái)選擇預(yù)測(cè)框的位置,通過(guò)引入軟化非極大值抑制(soft-NMS)更新坐標(biāo),提高車輛定位精度,但是文章對(duì)霧霾圖像仍然使用傳統(tǒng)圖像處理方法,因此無(wú)法實(shí)現(xiàn)端到端的檢測(cè)。鞠默然等[14]針對(duì)圖像中小目標(biāo)檢測(cè)率低、虛警率高的問(wèn)題,將YOLOv3輸出的8倍降采樣的特征圖進(jìn)行2倍上采樣,并與之前的特征圖進(jìn)行融合,以獲取更多小目標(biāo)的特征信息,利用K-means對(duì)目標(biāo)候選框的個(gè)數(shù)和寬高比進(jìn)行聚類分析,在VEDAI數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明改進(jìn)后的網(wǎng)絡(luò)可以有效檢測(cè)小目標(biāo),但是VEDAI是遙感圖像的車輛數(shù)據(jù)集,目標(biāo)大小較為單一,與監(jiān)控視頻中車輛隨著運(yùn)動(dòng)而目標(biāo)大小也隨之變化的特點(diǎn)相差較遠(yuǎn)。李國(guó)進(jìn)等[15]針對(duì)車輛檢測(cè)時(shí)存在的漏檢問(wèn)題,提出新的改進(jìn)Inception模塊,替代SSD網(wǎng)絡(luò)中的部分卷積層,針對(duì)識(shí)別率低的問(wèn)題設(shè)計(jì)了深層特征和淺層特征融合的結(jié)構(gòu),并在特征提取階段引入注意力機(jī)制SENet,對(duì)不同特征通道的重要性重新標(biāo)定,改進(jìn)的算法在精度和速度上均有提高,但是文章忽略了SSD網(wǎng)絡(luò)的模型權(quán)重較大,無(wú)法部署在邊緣設(shè)備的問(wèn)題,實(shí)用性不強(qiáng)。
基于監(jiān)控視頻的車輛跟蹤是典型的多目標(biāo)跟蹤任務(wù),難點(diǎn)在于車輛遮擋、運(yùn)動(dòng)模糊、尺度變化等。李俊彥等[16]在車輛運(yùn)動(dòng)軌跡提取任務(wù)中,提出基于YOLOv3和KCF相結(jié)合的方法,關(guān)聯(lián)目標(biāo)檢測(cè)結(jié)果和歷史軌跡的預(yù)測(cè)結(jié)果,完成目標(biāo)車輛跟蹤,但是KCF算法對(duì)目標(biāo)的尺度變化和快速變形適用性不強(qiáng),不適用于監(jiān)控視頻場(chǎng)景的車輛跟蹤。劉磊等[17]為了解決車流量統(tǒng)計(jì)中識(shí)別速度慢、統(tǒng)計(jì)準(zhǔn)確率低的問(wèn)題,提出YOLO識(shí)別和Mean shift跟蹤的方法,Mean shift可以根據(jù)YOLO的識(shí)別結(jié)果更新目標(biāo)模型,以改善跟蹤失敗的問(wèn)題,但是Mean shift算法僅僅利用單一顏色特征描述目標(biāo),對(duì)于相似顏色目標(biāo)的干擾不夠魯棒。金立生等[18]提出一種優(yōu)化Deep SORT的前方多車輛目標(biāo)跟蹤算法,使用改進(jìn)的YOLOv3作為檢測(cè)器,并在擴(kuò)增后的VeRi數(shù)據(jù)集上進(jìn)行重識(shí)別預(yù)訓(xùn)練,將中心損失函數(shù)和交叉熵?fù)p失函數(shù)相結(jié)合,實(shí)驗(yàn)結(jié)果相較于原始Deep SORT準(zhǔn)確度有所提升,并且IDs次數(shù)降低。
綜合以上工作,本文提出利用輕量級(jí)目標(biāo)檢測(cè)模型YOLOv5s作為檢測(cè)器,結(jié)合Deep SORT目標(biāo)跟蹤的車流量統(tǒng)計(jì)方法,以實(shí)現(xiàn)端到端的檢測(cè)和統(tǒng)計(jì)。針對(duì)車輛識(shí)別率低問(wèn)題,將注意力機(jī)制與檢測(cè)網(wǎng)絡(luò)融合,加強(qiáng)模型提取特征的能力,使模型更加關(guān)注被檢測(cè)目標(biāo)本身。使用CIoU Loss替換原始的檢測(cè)框回歸損失函數(shù),改善定位精度低、訓(xùn)練過(guò)程中目標(biāo)檢測(cè)框回歸速度慢的問(wèn)題。使用DIoU-NMS替換原始的NMS,改善車輛遮擋導(dǎo)致的漏檢現(xiàn)象。對(duì)Deep SORT的特征提取網(wǎng)絡(luò)進(jìn)行輸入尺寸調(diào)整,并在車輛重識(shí)別數(shù)據(jù)集上重新訓(xùn)練。連接檢測(cè)器和跟蹤器,在公開(kāi)數(shù)據(jù)集上調(diào)試參數(shù),并在實(shí)際的道路監(jiān)控視頻中測(cè)試應(yīng)用。
在DBT算法中,檢測(cè)器效果的好壞嚴(yán)重影響目標(biāo)跟蹤的結(jié)果[19],并且檢測(cè)器速率的快慢和模型的大小也是完成實(shí)時(shí)目標(biāo)跟蹤的關(guān)鍵。由于監(jiān)控現(xiàn)場(chǎng)大多是算力較低的嵌入式設(shè)備,無(wú)法部署規(guī)模較大的檢測(cè)模型,為了降低運(yùn)算成本,加強(qiáng)實(shí)用性,本文選擇YOLOv5系列中的最小模型YOLOv5s作為車輛檢測(cè)的基礎(chǔ)模型。
YOLOv5s的結(jié)構(gòu)主要分為四個(gè)部分,Input輸入端、Backbone主干網(wǎng)絡(luò)、Neck網(wǎng)絡(luò)、Head輸出端,如圖1所示。Input輸入端主要包含對(duì)數(shù)據(jù)的預(yù)處理,包括Mosaic數(shù)據(jù)增強(qiáng)[11]、自適應(yīng)圖像填充,并且為了適用不同的數(shù)據(jù)集,YOLOv5s在Input輸入端集成了自適應(yīng)錨框計(jì)算,以便在更換數(shù)據(jù)集時(shí),自動(dòng)設(shè)定初始錨框大小。Backbone主干網(wǎng)絡(luò)通過(guò)深度卷積操作從圖像中提取不同層次的特征,主要利用了瓶頸跨階段局部結(jié)構(gòu)BottleneckCSP[20]和空間金字塔池化SPP[21],前者的目的是為了減少計(jì)算量、提高推理速度,后者實(shí)現(xiàn)了對(duì)同一個(gè)特征圖進(jìn)行不同尺度的特征提取,有助于檢測(cè)精度的提高。Neck網(wǎng)絡(luò)層包含特征金字塔FPN、路徑聚合結(jié)構(gòu)PAN[22],F(xiàn)PN在網(wǎng)絡(luò)中自上而下傳遞語(yǔ)義信息,PAN則自下而上傳遞定位信息,對(duì)Backbone中不同網(wǎng)絡(luò)層的信息進(jìn)行融合,進(jìn)一步提升檢測(cè)能力。Head輸出端作為最后的檢測(cè)部分,主要是在大小不同的特征圖上預(yù)測(cè)不同尺寸的目標(biāo)。
圖1 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of YOLOv5s
在計(jì)算機(jī)視覺(jué)領(lǐng)域,注意力機(jī)制的有效性已經(jīng)得到證明,并且已經(jīng)廣泛用于分類、檢測(cè)、分割任務(wù)。在CNN網(wǎng)絡(luò)中,注意力機(jī)制作用于特征圖上,用于獲取特征圖中可用的注意力信息[23],主要包括空間注意力和通道注意力信息。卷積注意力模塊(convolutional block attention module,CBAM)[24]同時(shí)關(guān)注了空間和通道信息,通過(guò)兩個(gè)子模塊CAM(channel attention module)和SAM(spatial attention module)對(duì)網(wǎng)絡(luò)中間的特征圖進(jìn)行重構(gòu),強(qiáng)調(diào)重要特征,抑制一般特征,達(dá)到提升目標(biāo)檢測(cè)效果的目的,其結(jié)構(gòu)如圖2所示。
圖2 CBAM結(jié)構(gòu)Fig.2 Structure of CBAM
對(duì)于CNN網(wǎng)絡(luò)中某一層的三維特征圖F∈?C×H×W,CBAM順序地從F推理出一維通道注意力特征圖Mc和二維空間注意力特征圖Ms,并分別進(jìn)行逐元素相乘,最終得出與F同等維度的輸出特征圖,如公式(1)所示。其中F表示網(wǎng)絡(luò)中某網(wǎng)絡(luò)層特征圖,Mc(F)表示CAM對(duì)F進(jìn)行通道注意力重構(gòu),Ms(F′)表示SAM對(duì)通道注意力重構(gòu)的結(jié)果F′進(jìn)行空間注意力重構(gòu),?表示逐元素乘法。
CAM和SAM的結(jié)構(gòu)如圖3所示。圖3(a)展示了CAM的計(jì)算過(guò)程,輸入特征圖F的每個(gè)通道同時(shí)經(jīng)過(guò)最大池化和平均池化,得出的中間向量經(jīng)過(guò)一個(gè)多層感知機(jī)(multi-layer perceptron,MLP),為了減少計(jì)算量,MLP只設(shè)計(jì)一個(gè)隱層,最后對(duì)MLP輸出的特征向量進(jìn)行逐元素加法并進(jìn)行Sigmoid激活操作,得到通道注意力Mc。圖3(b)展示了SAM的計(jì)算過(guò)程,經(jīng)過(guò)Mc激活的特征圖F′沿通道方向上分別進(jìn)行最大池化和平均池化,對(duì)得到的中間向量進(jìn)行卷積操作,卷積結(jié)果經(jīng)過(guò)Sigmoid激活之后得到空間注意力Ms。
圖3 CAM和SAM模塊結(jié)構(gòu)Fig.3 Structure of CAM and SAM
注意力機(jī)制最重要的功能是對(duì)特征圖進(jìn)行注意力重構(gòu),突出特征圖中的重要信息,抑制一般信息,YOLOv5s網(wǎng)絡(luò)中提取特征最關(guān)鍵的部分在Backbone,因此,本文將CBAM融合在Backbone之后,Neck網(wǎng)絡(luò)的特征融合之前,這么做的原因是YOLOv5s在Backbone中完成了特征提取,經(jīng)過(guò)Neck特征融合之后在不同的特征圖上預(yù)測(cè)輸出,CBAM在此處進(jìn)行注意力重構(gòu),可以起到承上啟下的作用,具體結(jié)構(gòu)如圖4所示。
圖4 Neck融合CBAMFig.4 Structure of Neck integrating CBAM
YOLOv5s使用GIoU Loss[25]作為邊界框回歸損失函數(shù),用以評(píng)判預(yù)測(cè)邊界框(predicted box,PB)和真實(shí)邊界框(ground truth,GT)的距離,如公式(2):
式中,IoU表示PB和GT的交并比,Ac表示將PB和GT同時(shí)包含的最小的矩形框的面積,U表示PB和GT的并集,LGIoU為GIoU損失。GIoU Loss的優(yōu)勢(shì)是尺度不變性,即PB和GT的相似性與它們的空間尺度大小無(wú)關(guān)。GIoU Loss的問(wèn)題在于當(dāng)PB或者GT被對(duì)方完全包圍的時(shí)候,GIoU Loss完全退化為IoU Loss,由于它嚴(yán)重地依賴于IoU項(xiàng),導(dǎo)致在實(shí)際訓(xùn)練中收斂速度過(guò)慢,并且預(yù)測(cè)的邊界框精度較低。CIoU Loss針對(duì)這些問(wèn)題,同時(shí)考慮了PB和GT的重疊面積、中心點(diǎn)距離、長(zhǎng)寬比例,如公式(3):
式中,b和bgt表示PB和GT的中心點(diǎn),ρ2(·)表示求歐式距離,c表示PB和GT的最小包圍框的最短對(duì)角線長(zhǎng)度,α表示一個(gè)正平衡參數(shù),v表示PB和GT的長(zhǎng)寬比的一致性。α和v的定義如公式(4):
式中wgt、hgt和w、h分別表示GT和PB的寬度和高度。
相比YOLOv5s中使用的GIoU Loss、CIoU Loss在損失項(xiàng)中加入了PB、GT中心距離和長(zhǎng)寬比例的懲罰項(xiàng),使網(wǎng)絡(luò)在訓(xùn)練時(shí)可以保證預(yù)測(cè)框更快的收斂,并且得到更高的回歸定位精度,本文將CIoU Loss作為車輛檢測(cè)網(wǎng)絡(luò)的損失函數(shù)。
在預(yù)測(cè)階段,通常使用NMS移除多余的檢測(cè)框,評(píng)判的標(biāo)準(zhǔn)是某個(gè)檢測(cè)框與預(yù)測(cè)得分最高的檢測(cè)框的交并比IoU,當(dāng)IoU大于設(shè)定的閾值時(shí),預(yù)測(cè)的檢測(cè)框?qū)⒈灰瞥?。在一般?chǎng)景下,這種方法是有效的,但是在目標(biāo)密集的環(huán)境中,由于各個(gè)目標(biāo)之間相互存在遮擋,不同目標(biāo)的檢測(cè)框非常近,重疊面積較大,因此會(huì)被NMS錯(cuò)誤地移除,導(dǎo)致目標(biāo)檢測(cè)失敗。在監(jiān)控視頻中,車輛目標(biāo)集中在圖像中的道路中間,是一種較為密集并且容易產(chǎn)生遮擋的場(chǎng)景,本文利用DIoU作為NMS的評(píng)判標(biāo)準(zhǔn)改善這個(gè)問(wèn)題。
DIoU在IoU的基礎(chǔ)上考慮了兩個(gè)邊界框中心點(diǎn)的距離,如公式(5):
M表示預(yù)測(cè)分?jǐn)?shù)最高的一個(gè)預(yù)測(cè)框,Bi表示判斷是否需要被移除的預(yù)測(cè)框,si表示分類分?jǐn)?shù),ε表示NMS的閾值。DIoU-NMS考慮IoU的同時(shí),判斷兩個(gè)邊界框M和Bi中心點(diǎn)的距離,當(dāng)距離較遠(yuǎn)時(shí)不會(huì)移除預(yù)測(cè)框,而是認(rèn)為檢測(cè)到了另外的目標(biāo),這有助于解決目標(biāo)互相遮擋情況下的漏檢問(wèn)題。本文使用DIoU-NMS替換原始NMS。
多目標(biāo)在線跟蹤算法SORT(simple online and realtime tracking)利用卡爾曼濾波和匈牙利匹配,將跟蹤結(jié)果和檢測(cè)結(jié)果之間的IoU作為代價(jià)矩陣,實(shí)現(xiàn)了一種簡(jiǎn)單高效并且實(shí)用的跟蹤范式。但是SORT算法的缺陷在于所使用的關(guān)聯(lián)度量(association metric)只有在狀態(tài)估計(jì)不確定性較低的情況下有效,因此算法執(zhí)行時(shí)會(huì)出現(xiàn)大量身份切換現(xiàn)象,當(dāng)目標(biāo)被遮擋時(shí)跟蹤失敗。為了改善這個(gè)問(wèn)題,Deep SORT將目標(biāo)的運(yùn)動(dòng)信息和外觀信息相結(jié)合作為關(guān)聯(lián)度量,改善目標(biāo)消失后重新出現(xiàn)導(dǎo)致的跟蹤失敗問(wèn)題。
3.1.1 跟蹤處理和狀態(tài)估計(jì)
Deep SORT利用檢測(cè)器的結(jié)果初始化跟蹤器,每個(gè)跟蹤器都會(huì)設(shè)置一個(gè)計(jì)數(shù)器,在卡爾曼濾波之后計(jì)數(shù)器累加,當(dāng)預(yù)測(cè)結(jié)果和檢測(cè)結(jié)果成功匹配時(shí),該計(jì)數(shù)器置為0。在一段時(shí)間內(nèi)跟蹤器沒(méi)有匹配到合適的檢測(cè)結(jié)果,則刪除該跟蹤器。Deep SORT為每一幀中新出現(xiàn)的檢測(cè)結(jié)果分配跟蹤器,當(dāng)該跟蹤器連續(xù)3幀的預(yù)測(cè)結(jié)果都能匹配檢測(cè)結(jié)果,則確認(rèn)是出現(xiàn)了新的軌跡,否則刪除該跟蹤器。
Deep SORT使用8維狀態(tài)空間(u,v,γ,h,x˙,y˙,γ˙,h˙)描述目標(biāo)的狀態(tài)和在圖像坐標(biāo)系中的運(yùn)動(dòng)信息。u和v表示目標(biāo)檢測(cè)框的中心坐標(biāo),γ和h分別表示檢測(cè)框的寬高比例和高度,(x˙,y˙,γ˙,h˙)表示前面四個(gè)參數(shù)在圖像坐標(biāo)中的相對(duì)速度。算法使用具有恒定速度模型和線性觀測(cè)模型的標(biāo)準(zhǔn)卡爾曼濾波器,將檢測(cè)框參數(shù)(u,v,γ,h)作為對(duì)象狀態(tài)的直接觀測(cè)值。
3.1.2 分配問(wèn)題
Deep SORT結(jié)合運(yùn)動(dòng)信息和外觀信息,使用匈牙利算法匹配預(yù)測(cè)框和跟蹤框。對(duì)于運(yùn)動(dòng)信息,算法使用馬氏距離描述卡爾曼濾波預(yù)測(cè)結(jié)果和檢測(cè)器結(jié)果的關(guān)聯(lián)程度,如公式(7):
式中,dj和yi分別表示第j個(gè)檢測(cè)結(jié)果和第i個(gè)預(yù)測(cè)結(jié)果的狀態(tài)向量,Si表示檢測(cè)結(jié)果和平均跟蹤結(jié)果之間協(xié)方差矩陣。馬氏距離通過(guò)測(cè)量檢測(cè)結(jié)果距離平均跟蹤結(jié)果的標(biāo)準(zhǔn)差,將狀態(tài)估計(jì)的不確定性考慮在內(nèi),可以排除可能性低的關(guān)聯(lián)。
當(dāng)d(2)(i,j)小于指定的閾值,認(rèn)為關(guān)聯(lián)成功。
馬氏距離在短時(shí)預(yù)測(cè)情況下可以提供可靠的目標(biāo)位置信息,使用外觀特征的余弦相似度可以在目標(biāo)遮擋又重新出現(xiàn)時(shí)恢復(fù)目標(biāo)ID,為了使兩種度量的優(yōu)勢(shì)互補(bǔ),使用線性加權(quán)的方式進(jìn)行結(jié)合:
原始算法使用一個(gè)殘差卷積神經(jīng)網(wǎng)絡(luò)提取目標(biāo)的外觀特征,將模型在大規(guī)模行人重識(shí)別數(shù)據(jù)集上進(jìn)行訓(xùn)練,使適用于行人的檢測(cè)和跟蹤。由于原始算法僅用于行人類別,輸入圖像均被縮放到128×64大小,這與車輛目標(biāo)的寬高比例不相符,為使模型適用于車輛特征提取,因此本文對(duì)網(wǎng)絡(luò)模型進(jìn)行改善,調(diào)整網(wǎng)絡(luò)的輸入圖像大小為128×128,如表1所示。調(diào)整后的網(wǎng)絡(luò)在車輛重識(shí)別數(shù)據(jù)集VeRi[26]進(jìn)行重識(shí)別訓(xùn)練。
表1 調(diào)整后的重識(shí)別網(wǎng)絡(luò)Table 1 Adjusted re-identify network
車輛檢測(cè)與跟蹤數(shù)據(jù)集:UA-DETRAC數(shù)據(jù)集采集于北京和天津24個(gè)不同地點(diǎn),包含超過(guò)14萬(wàn)幀視頻圖像和8 250輛人工標(biāo)記的汽車目標(biāo),共計(jì)121萬(wàn)標(biāo)記過(guò)的目標(biāo)檢測(cè)框。數(shù)據(jù)集中含有不同的交通場(chǎng)景,包括高速公路、十字路口、丁字路口,不同的環(huán)境背景,包括白天、夜晚、多云、下雨。由于UA-DETRAC的拍攝角度與監(jiān)控探頭較為接近,車輛類型多樣,因此選用該數(shù)據(jù)集作為檢測(cè)器YOLOv5的實(shí)驗(yàn)數(shù)據(jù)集和Deep SORT多目標(biāo)跟蹤數(shù)據(jù)集。
車輛重識(shí)別數(shù)據(jù)集:VeRi數(shù)據(jù)集來(lái)自于20個(gè)不同的真實(shí)監(jiān)控?cái)z像頭,攝像頭安裝于1 km2內(nèi)的任意位置和方向,拍攝場(chǎng)景包含十字路口、兩車道道路、四車道道路。數(shù)據(jù)集中含有776輛車的超過(guò)50 000張圖像,每輛車都被至少兩個(gè)攝像頭從不同角度、光線條件、環(huán)境背景拍攝。
車流量統(tǒng)計(jì)測(cè)試數(shù)據(jù):模擬監(jiān)控?cái)z像頭角度,手持相機(jī)拍攝于西安市南二環(huán)文藝路天橋,共拍攝3段視頻,每段5 min。拍攝場(chǎng)景包含平峰時(shí)段、高峰時(shí)段、夜間,其中平峰和高峰為白天拍攝,每段視頻均包含上下行兩條道路,如圖5(a)、(b)、(c)分別為平峰、高峰和夜間。
圖5 三種不同的車流量測(cè)試場(chǎng)景Fig.5 Three different traffic flow scenarios
實(shí)驗(yàn)平臺(tái):網(wǎng)絡(luò)訓(xùn)練平臺(tái)采用騰訊云服務(wù)器,規(guī)格為Tesla V100-NVLINK-32 GB GPU、8核CPU、40 GB RAM。車流量測(cè)試平臺(tái)采用本地主機(jī),規(guī)格為RTX 2070s 8 GB GPU、AMD 3700X、32 GB RAM。模型框架為PyTorch。
評(píng)價(jià)指標(biāo):查準(zhǔn)率Precision、查全率Recall、平均檢測(cè)精度AP作為目標(biāo)檢測(cè)模型的評(píng)價(jià)標(biāo)準(zhǔn)。身份切換次數(shù)IDs和每秒跟蹤幀數(shù)Speed作為跟蹤模型的評(píng)價(jià)標(biāo)準(zhǔn)。車流量統(tǒng)計(jì)準(zhǔn)確率作為整套方案的評(píng)價(jià)標(biāo)準(zhǔn)。
4.2.1 YOLOv5s消融及對(duì)比實(shí)驗(yàn)
本文僅采用UA-DETRAC數(shù)據(jù)集的訓(xùn)練集,按照6∶2∶2的比例隨機(jī)劃分為檢測(cè)網(wǎng)絡(luò)的訓(xùn)練集、驗(yàn)證集和測(cè)試集。本文目的是車流量統(tǒng)計(jì),無(wú)需檢測(cè)車輛類型,因此將原數(shù)據(jù)集中car、bus、van和others統(tǒng)一為一種類型car。為驗(yàn)證本文提出的對(duì)YOLOv5s的三種改進(jìn)策略,在以上數(shù)據(jù)集上展開(kāi)消融實(shí)驗(yàn),以判斷每個(gè)改進(jìn)點(diǎn)的有效性,依次在初始YOLOv5s的基礎(chǔ)上加入CBAM、CIoU Loss。實(shí)驗(yàn)均不采用預(yù)訓(xùn)練模型,訓(xùn)練過(guò)程使用相同的參數(shù)配置,輸入圖像為640×640,優(yōu)化器為SGD,初始學(xué)習(xí)率0.01,動(dòng)量設(shè)置為0.937,衰減系數(shù)為0.000 5。實(shí)驗(yàn)結(jié)果如表2所示。
表2 YOLOv5s消融實(shí)驗(yàn)Table 2 Ablation of YOLOv5s %
表2第1行表示原始YOLOv5s在數(shù)據(jù)集上的基礎(chǔ)表現(xiàn),平均檢測(cè)精度是93.4%。分別引入CBAM和CIoU Loss之后可以看出,CBAM對(duì)檢測(cè)結(jié)果的提升較為明顯,Precision、Recall、AP均有明顯提高,而CIoU Loss的提升表現(xiàn)稍弱。分析認(rèn)為這與兩個(gè)模塊的功能不同有關(guān),注意力機(jī)制旨在提升網(wǎng)絡(luò)對(duì)重要特征的提取能力,表現(xiàn)在結(jié)果上就是準(zhǔn)確率的提高,而CIoU Loss則是加快預(yù)測(cè)框的回歸的速度,提高回歸精度,因此對(duì)于檢測(cè)準(zhǔn)確率僅有小幅提高。同時(shí)引入CBAM和CIoU Loss之后,檢測(cè)網(wǎng)絡(luò)取得了最好的結(jié)果,平均精度AP相較原始網(wǎng)絡(luò)提升2.3個(gè)百分點(diǎn)。
為分析CIoU Loss和DIoU-NMS對(duì)檢測(cè)結(jié)果的影響,對(duì)部分測(cè)試結(jié)果進(jìn)行可視化,如圖6。圖6(a)為原始YOLOv5s+CBAM的部分檢測(cè)結(jié)果,可以看到在車輛遮擋時(shí),網(wǎng)絡(luò)出現(xiàn)了漏檢,部分檢測(cè)框精度不高,沒(méi)有完全覆蓋或者超出了目標(biāo)。圖6(b)是在(a)的基礎(chǔ)上引入了CIoU Loss的部分檢測(cè)結(jié)果,相比圖6(a)在同樣的圖像中,檢測(cè)框的回歸精度有了明顯提高,但是同樣存在漏檢問(wèn)題。圖6(c)是引入了DIoU-NMS的檢測(cè)結(jié)果,相比圖6(b),漏檢車輛被檢測(cè)出來(lái),同時(shí)保持了較高的檢測(cè)精度。
圖6 消融實(shí)驗(yàn)結(jié)果對(duì)比Fig.6 Comparison of ablation results
為了進(jìn)行橫向?qū)Ρ?,本文選擇Faster R-CNN+FPN、YOLOv3+SPP、mobilenetv2-YOLOv4三種網(wǎng)絡(luò)分別在同樣的數(shù)據(jù)集上訓(xùn)練和測(cè)試,均采用預(yù)訓(xùn)練模型。實(shí)驗(yàn)結(jié)果如表3所示??梢钥闯觯疚母倪M(jìn)的YOLOv5s在檢測(cè)速率FPS、權(quán)重大小、平均精度AP方面均領(lǐng)先其他三種網(wǎng)絡(luò),對(duì)于網(wǎng)絡(luò)權(quán)重大小,原始YOLOv5s為7.3 MB,改進(jìn)之后網(wǎng)絡(luò)僅僅增加了0.4 MB。
表3 不同檢測(cè)網(wǎng)絡(luò)的結(jié)果對(duì)比Table 3 Comparison of different detection networks
4.2.2 深度外觀特征提取網(wǎng)絡(luò)實(shí)驗(yàn)
將3.2節(jié)調(diào)整后的重識(shí)別網(wǎng)絡(luò)在數(shù)據(jù)集VeRi上訓(xùn)練,輸入圖像尺寸為128×128,其余參數(shù)保持不變。連接改進(jìn)后的YOLOv5s和車輛重識(shí)別后的Deep SORT,在UA-DETRAC訓(xùn)練集中的MVI_63525、MVI_40204、MVI_40991上進(jìn)行測(cè)試,結(jié)果如表4。
表4 車輛跟蹤實(shí)驗(yàn)Table 4 Vehicle tracking experiment
由于SORT算法僅使用了運(yùn)動(dòng)特征作為目標(biāo)關(guān)聯(lián)的依據(jù),在以上三段數(shù)據(jù)的車輛跟蹤中一共發(fā)生了75次身份切換,Deep SORT相比SORT降低了48%,而本文進(jìn)行車輛重識(shí)別后的模型進(jìn)一步降低了IDs,不僅IDs降低至29次,而且在本地測(cè)試平臺(tái)上的檢測(cè)速度可以達(dá)到32 Hz,滿足實(shí)時(shí)檢測(cè)的標(biāo)準(zhǔn)??梢暬Y(jié)果如圖7所示,車輛在第150幀由于障礙物遮擋而消失,無(wú)法跟蹤到該目標(biāo),在第172幀該目標(biāo)重新出現(xiàn),目標(biāo)身份恢復(fù),跟蹤成功。
圖7 車輛ID恢復(fù)Fig.7 Vehicle ID recovery
4.2.3 車流量統(tǒng)計(jì)實(shí)驗(yàn)
本文利用在視頻中設(shè)置檢測(cè)線的方式統(tǒng)計(jì)車流量,具體方法是:在車道中設(shè)置與行車方向垂直的虛擬檢測(cè)線,當(dāng)一個(gè)目標(biāo)跟蹤框的中心點(diǎn)軌跡與檢測(cè)線相交時(shí),車流量總數(shù)累加,并記錄該點(diǎn)縱坐標(biāo);通過(guò)計(jì)算后一幀的中心縱坐標(biāo)與前一幀縱坐標(biāo)的大小判斷車輛是上行還是下行,完成雙向車道計(jì)數(shù)。檢測(cè)結(jié)果如圖8。
圖8 車流量統(tǒng)計(jì)結(jié)果Fig.8 Traffic flow statistics
對(duì)本文采集的車流量統(tǒng)計(jì)測(cè)試數(shù)據(jù)進(jìn)行人工計(jì)數(shù),并進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果如表5所示,每一行數(shù)據(jù)分別表示人工統(tǒng)計(jì)、原始算法和改進(jìn)算法在三個(gè)測(cè)試視頻中統(tǒng)計(jì)到的車流量。從結(jié)果可以看出本文提出的改進(jìn)方法在三個(gè)場(chǎng)景中的準(zhǔn)確率均高于原始算法。在平峰場(chǎng)景中,由于白天光線好,車輛基本沒(méi)有遮擋,達(dá)到了93.5%的準(zhǔn)確率;在高峰場(chǎng)景中,車輛行駛緩慢,甚至停滯,跟車距離近,產(chǎn)生遮擋,準(zhǔn)確率有所下滑,為91.2%;在夜間場(chǎng)景中,由于光線較暗,會(huì)出現(xiàn)某些車輛漏檢,并且車輛前大燈和尾燈影響了目標(biāo)跟蹤的準(zhǔn)確度,導(dǎo)致統(tǒng)計(jì)準(zhǔn)確率相對(duì)較低,為89.9%。
表5 車流量統(tǒng)計(jì)實(shí)驗(yàn)結(jié)果Table 5 Traffic flow statistics experiment
本文使用YOLOv5s作為檢測(cè)器,結(jié)合Deep SORT車輛跟蹤的方法進(jìn)行車流量統(tǒng)計(jì)。將注意力機(jī)制CBAM與YOLOv5s融合,有效地提升了檢測(cè)器的準(zhǔn)確率;使用CIoU Loss損失函數(shù)和DIoU-NMS非極大值抑制替換原始的GIoU Loss和普通NMS,進(jìn)一步提升了檢測(cè)器的定位精度,并且有效改善了車輛擁擠場(chǎng)景中的漏檢現(xiàn)象;將Deep SORT中原始的特征提取網(wǎng)絡(luò)進(jìn)行輸入調(diào)整和重識(shí)別訓(xùn)練,使算法更適合于車輛類別的應(yīng)用;連接改進(jìn)的YOLOv5s檢測(cè)器,在行車高峰、平峰和夜間三種場(chǎng)景中對(duì)算法進(jìn)行車流量統(tǒng)計(jì)實(shí)驗(yàn),結(jié)果表示本文提出的算法在不同場(chǎng)景中均表現(xiàn)出良好的統(tǒng)計(jì)準(zhǔn)確率。本文所進(jìn)行實(shí)驗(yàn)均在高算力設(shè)備上進(jìn)行,盡管模型權(quán)重已經(jīng)很小,但是對(duì)于邊緣設(shè)備而言仍然負(fù)擔(dān)過(guò)重,因此未來(lái)的方向是對(duì)模型進(jìn)一步壓縮剪枝,并移植到嵌入式設(shè)備。