上海電科智能系統(tǒng)股份有限公司
目前,道路上攝像頭采集了大量交通視頻,交通視頻是智能交通監(jiān)控系統(tǒng)的重要信息來源。從交通視頻中準確檢測出車輛并持續(xù)進行跟蹤,是車輛行為分析和智能交通監(jiān)控的基礎?;谏疃葘W習的目標檢測方法是目前最為準確的方法,同時很多基于深度學習的跟蹤算法超越了傳統(tǒng)跟蹤算法的性能。
信息技術在快速的發(fā)展,大量的視頻數(shù)據(jù)得到了有效的存儲。同時,我國的相關管理部門在積極引進和改進交通視頻監(jiān)控系統(tǒng)[1]。由于視頻監(jiān)控系統(tǒng)建設時間的不同,產(chǎn)生大量分辨率各異的視頻。根據(jù)不同監(jiān)控需求,攝像頭拍攝的角度和方向都有很大差異。由于這兩個原因,獲取到的視頻質量良莠不齊給車輛檢測和跟蹤帶來了不少的困難。也是車輛檢測和跟蹤在實際應用上表現(xiàn)不佳的重要原因。
基于深度學習的目標檢測算法在眾多檢測算法中異軍突起,是目前精度最高的檢測算法。深度學習方法擺脫了傳統(tǒng)機器學習挑選特征的繁瑣過程,同時大幅減少了因角度、遮擋等原因造成的檢測失敗[2]。檢測車輛后對車輛進行持續(xù)跟蹤是交通視頻監(jiān)控分析,記錄車輛軌跡等發(fā)揮著重要作用。目前基于傳統(tǒng)機器學習方法和基于深度學習方法在跟蹤方面還沒有分出高低。交通視頻監(jiān)控分析需求十分迫切,找到適合在工程應用的車輛檢測和跟蹤算法同樣十分迫切。
目標檢測的任務定義為,從給定圖片中盡可能多地準確識別所有的物體,并用矩形框給出物體范圍。在深度學習熱潮興起前,研究者通常使用傳統(tǒng)的目標檢測算法完成這一任務。傳統(tǒng)方法使用滑動窗口對圖片進行逐行掃描,對每個窗口用預先訓練好的分類器進行分類預測,統(tǒng)計每個窗口的分類結果整合成最終的檢測結果,比較經(jīng)典并且推廣到實際應用中的算法有:利用Haar特征和Adaboost算法進行人臉識別,利用HOG特征和SVM分類器進行行人重識別等等。
自從2012年Krizhevsky等人基于CNN設計的AlexNet模型獲得了當年ILSVRC的冠軍開始,基于深度卷積神經(jīng)網(wǎng)絡的模型成為了圖像識別與檢測領域的首選之一。首先使用深度學習方法進行目標檢測并取得很大進展的方法是Sermanet 等人在 2013年提出的Overfeat ,他們開始嘗試使用CNN提取圖片,利用多尺度滑動窗口算法進行檢測[3]。Ross Girshick 等人在2014年提出的R-CNN完整地結合了Selective Search區(qū)域選擇、CNN特征提取、SVM目標分類三步,這一算法為后續(xù)深度學習在目標檢測中的推廣奠定了基礎[4]。2015年,Ross Girshick等人在R-CNN的基礎上改進,提出了 Fast R-CNN ,F(xiàn)ast R-CNN在速度和精度上較R-CNN有了很大提升,其中提出的ROI pooling結構有效解決了不同尺寸的圖像需要縮放到同一尺寸的問題,同時將分類損失和邊框回歸損失結合統(tǒng)一訓練[5]。在此之后,為了解決候選框提取這一時間瓶頸,F(xiàn)aster R-CNN提出了RPN進行候選框提取,這一網(wǎng)絡的引入使Faster R-CNN在檢測速度上獲得了巨大提升[6]。上述方法進行目標檢測時,將區(qū)域提取和目標檢測分成兩步進行計算,檢測速度經(jīng)過優(yōu)化雖然有了大幅度提升,但最快速度也很難達到10FPS。為了繼續(xù)提高單張圖片的目標檢測速度,YOLO、SSD[7][8]等算法將區(qū)域提取和目標檢測兩步整合到一起進行計算,它們將候選框定位問題轉化為坐標偏移量的回歸問題進行處理,將坐標回歸部分直接加入分類網(wǎng)絡中進行計算,這一思路的引入和實現(xiàn)在檢測精度沒有很大損失的前提下,將圖片的檢測速度提升到了40FPS以上。
目標跟蹤技術是計算機視覺領域的熱點之一,具有廣泛的實際應用前景。跟蹤可簡單定義為對一個場景中的物體運動時的平面圖像中軌跡的估計,即為在同一段視頻中不同幀的跟蹤目標分配一致的標簽。目標跟蹤的目的[9]是定位每一幀視頻圖像中目標的位置,從而獲得目標運動軌跡。目標跟蹤可以依據(jù)目標類型分為點目標跟蹤和區(qū)域目標跟蹤兩種情況,交通視頻中應用較多的是區(qū)域目標跟蹤,區(qū)域目標跟蹤可分為基于特征點檢測的方法、基于背景相減的幀差法、基于分割思想的方法等。
①基于特征點檢測的目標跟蹤方法。主要特點是不隨光照和照相機視角的改變而改變,常用特征點包括 Moravec特征,Harris,KLT和SIFT[10]。
②基于幀差法的目標跟蹤方法[11]。通過找出構造的背景模型中每幀差一進行跟蹤。
③基于分割思想的目標跟蹤方法[12]。圖像分割算法的目的是有感知地將圖像分成相似的區(qū)域,在目標跟蹤領域使用較多的圖像分割主要有Mean-Shift聚集、使用Graph-Cuts 的圖像分割、主動輪廓。
④基于監(jiān)督學習的目標跟蹤方法[13][14]。通過監(jiān)督學習方法從一系列樣本中自動學習不同的物體視圖,從而進行目標檢測跟蹤。不同的目標視圖的學習不需要一個完整系列的模版。通過一系列學習樣本,監(jiān)督學習方法產(chǎn)生一個輸入到輸出的映射函數(shù)。對目標檢測,學習樣本由成堆的目標特征和相關聯(lián)的目標種類組成,樣本數(shù)量手動定義。
特征選擇在分類中起著重要的作用,如面積、方向、外觀和直方圖等。一旦特征被選擇,可通過監(jiān)督學習目標的不同外觀計算出一個超曲面用來在高維空間中將目標類與其他類分離。
通常交通監(jiān)控攝像頭一般架設在高處,以俯視的角度向地面拍攝。為了更接近實際應用場景,實驗中使用到的交通視頻與實際應用是類似的。
為了對視頻中的車輛進行檢測,需要大量標注好的數(shù)據(jù)放進模型進行訓練。對于交通監(jiān)控視頻中車輛檢測這一場景,以獲取到的若干段固定交通監(jiān)控視頻為基本數(shù)據(jù)構建數(shù)據(jù)集進行實驗。首先對每段監(jiān)控視頻每隔固定時間進行圖片采樣,通過篩選共得到851張圖片,劃分訓練集圖片681張,驗證集圖片170張。為了更精確地檢測車輛,對視頻中出現(xiàn)的車輛種類進行統(tǒng)計,最終確定對小轎車、出租車、公交車、大卡車這四類車進行檢測。采集到的圖片拍攝角度都是俯視,部分樣本如圖1所示。
實驗使用至強E5-2697 v4型號處理器,128GB內存,英偉達GTX1080的顯卡,在tensorf l ow計算框架下進行。
Faster R-CNN目標檢測框架是現(xiàn)今準確度最高的模型框架,而SDD模型框架在保證高精度下大幅提高了檢測速度。實驗使用采集到的數(shù)據(jù)分別訓練faster_rcnn_inception_v2、faster_rcnn_resnet50和SSD_inception_v2這三種模型,然后評估了這三種方法在交通視頻監(jiān)控中的表現(xiàn),結果如表1所示。
實驗結果顯示,faster R-CNN模型在檢測精度上有明顯優(yōu)勢,ssd模型在檢測速度上有明顯,以faster R-CNN為模型的框架難以直接用于實時檢測,但由于其結果更為準確,可以用作輔助標注的基準模型,同時也可以通過多模型部署并行計算的方式處理實時視頻流。而直接部署SSD模型雖然正確率較faster RCNN低,但其速度優(yōu)勢明顯,基本可以用作實時視頻流的檢測。
圖1 圖像數(shù)據(jù)部分樣本和標注示例
平均IoU、平均追蹤長度和FPS,IoU(Intersection over Union)指的是預測框與真實框之間的交并比。實驗中設置一個IoU置信度閾值σ,比較預測值與真實值之間的IoU。當σ_0<σ時則認為目標跟蹤器將目標跟丟,在跟丟之前的所有IoU的平均值為平均IoU,表示跟丟之前的平均跟蹤精度。若一個物體在視頻中共出現(xiàn)N幀,跟丟之前共成功跟蹤n幀,則認為n/N為此物體此次跟蹤長度,所有物體的n/N的平均值作為平均跟蹤長度,衡量目標跟蹤器能準確跟蹤物體的長度。FPS指的是目標跟蹤器每秒可以處理的圖像幀數(shù),可以衡量跟蹤器的處理速度。
實驗過程中,對一段視頻中每個物體從出現(xiàn)在畫面開始初始化一個目標跟蹤器,持續(xù)對物體進行跟蹤,記錄過程中獲得的平均IoU、平均追蹤長度和平均FPS。實驗過程選取數(shù)據(jù)為一段20秒的交通路口監(jiān)控視頻,共75個物體需要追蹤。選取的追蹤器為OpenCV庫中實現(xiàn)的BOOSTING[15]、MIL[16]、KCF[17]、TLD[18]、MEDIANFLOW[19]和GOTURN[20]算法,其結果如表2所示。
分析幾種目標跟蹤器試驗結果可以看到,在交通視頻目標追蹤中由于視角等問題,平均追蹤長度普遍較短,橫向對比發(fā)現(xiàn)在此場景中MEDIANFLOW算法在結果準確度、追蹤長度和速度方面均具有較大優(yōu)勢,甚至強于基于深度學習的GOTURN算法。
在實際操作中目標檢測與目標跟蹤相結合,目標檢測的特點是結果準確但運行速度慢,而目標跟蹤的特點是結果相對準確度低但運行速度快,因此目標檢測與目標跟蹤相結合是準確度和速度之間的權衡,而權衡參數(shù)主要是目標識別的間隔幀數(shù)F,每F幀進行一次目標檢測,其后的F-1幀視頻畫面均采用目標跟蹤。實踐表明F越小,整個系統(tǒng)的準確度越高,但運行速度越慢。當F=1時,系統(tǒng)退化為對每幀進行識別,準確度最高,但運行速度最慢。若當F=1時的運行速度滿足實時的要求,則可以不使用目標跟蹤。近年來隨著深度學習目標檢測技術的發(fā)展和成熟,基于Faster R-CNN、YOLO等算法的目標識別正在慢慢將這個目標變作現(xiàn)實。
車流行為分析是車輛檢測和跟蹤的一個重要應用。使用目標檢測器獲得車輛的位置,隨后利用跟蹤器對車輛位置進行持續(xù)跟蹤,記錄車輛駛入駛出目標區(qū)域的時間。根據(jù)車輛駛入駛出時間,按時間段統(tǒng)計經(jīng)過車輛的數(shù)量就能獲得道路使用情況的車流量數(shù)據(jù)。車流提取效果如圖2所示。
本文運用前文所述的目標檢測和跟蹤算法,選擇上海市內環(huán)高架萬德路上匝道路段,對時間段內經(jīng)過車輛的檢測和跟蹤,識別車輛的類型和記錄車輛的運動軌跡,精細統(tǒng)計該路段各類車輛的行駛情況。本文統(tǒng)計了一小時內車流數(shù)量,結果試驗如表3所示。
從實驗結果可以看出,利用車輛檢測和跟蹤方法統(tǒng)計不同類型的車流量具有很高的精度,達到了預期效果,初步具備了實際工程推廣的技術要求。在此研究結果基礎上,為進行更復雜交通場景的車流提取具備了條件。如在道路路口中提取左轉、右轉及直行的機動車流量,路口斷面的機動車排隊長度等。同時,為后續(xù)非機動車、行人的精細化流量提取也奠定了良好條件。上述的車輛檢測和跟蹤研究,為計算交通參數(shù),進而信號調優(yōu)及交通規(guī)劃提供堅實基礎。復雜路口的示意圖如圖3所示。
表1 車輛檢測結果
表2 不同跟蹤方法對比
表3 車流量統(tǒng)計結果
圖2 精細化車流提取效果
本文比較了幾種基于深度學習的車輛檢測方法,且都能很好的應對非正角度的車輛特征提取,完成對不同類別車輛的檢測。詳細比較了幾種不同檢測方法的性能表現(xiàn),SSD方法在保證較好的精度下,F(xiàn)PS在實驗機器上能達到35,這方法能保證對目標進行實時檢測。
圖3 復雜交通路口精細車流提取示意圖
本文也比較了幾種目標跟蹤方法,其中基于深度學習的GOTURN方法表現(xiàn)不是特別好,反而是基于傳統(tǒng)方法的MEDIANFLOW精度表現(xiàn)最好,并且FPS最高。傳統(tǒng)觀念認為跟蹤的消耗比目標檢測低很多。先識別出物體再進行跟蹤能達到很好的實時性能。通過分析得出,目標檢測方法基本能滿足交通視頻監(jiān)控對車輛監(jiān)控的實時性要求,跟蹤方法的用處就不大了。隨著跟蹤方法的發(fā)展,性能越來越先進的跟蹤器將不斷出現(xiàn),在高幀率交通視頻和降低監(jiān)控成本上仍大有作為。
本文利用基于深度學習的SSD算法和MEDIANFLOW算法完成了匝道上的不同車道不同車輛類型流量計算,其效果表現(xiàn)出色,總車流量統(tǒng)計準確率達94.5%,基本能滿足工程上的需要。該方法在復雜交通環(huán)境下精細車流提取也具有很大潛力。