黃文藝,王 博,孫 超,盧 兵,彭勇禮,張春霞
(1.北京理工大學 電動車輛國家工程實驗室,北京 100081;2.北京理工大學深圳汽車研究院 電動車輛國家工程實驗室深圳研究院,深圳 518000)
近年來,隨著人工智能與計算機技術的飛速發展,自動駕駛技術愈發成熟。自動駕駛車輛主要通過搭載激光雷達、毫米波、攝像頭、超聲波4類傳感器對外界進行感知,從而進行實時規劃與控制。然而,目前受傳感器精度、算力、成本、法律法規等因素的影響,無人駕駛在公共交通環境方面的應用尚未完全開展,只有部分測試路段開展了一些研究。相對城市道路,園區場景的行駛環境相對簡單,一般在固定路線或者固定區域內完成巡游與漫游工作,可實現人員搭載、貨物配送、廣告投放、無人清掃等功能,市場需求巨大。因此,大部分科技公司已經對商用園區無人車開展研發與生產,并實現智能導航、自動巡游、自主避障等功能[1]。
商用園區無人車的主要服務對象是園區內的工作人員與行人,因此,對人的檢測與跟蹤至關重要。傳統的行人檢測算法依賴相關領域的專家設計特征對圖像中行人進行定位,嚴重影響檢測精度與速度。目前主流的基于深度學習的行人檢測算法是通過大量的行人數據集來自適應提取與學習特征,其中包括視覺與激光雷達的深度學習算法。視覺深度學習的行人檢測算法代表為YOLO[2-6]系列算法,YOLO系列算法作為one-stage算法的代表,雖然其在檢測的性能上相比two-satge算法略有不足,但在檢測速度上優勢明顯。激光雷達深度學習的行人檢測算法代表為PointPillars[7],這兩類算法已在工業界廣泛應用。然而,由于激光雷達的安裝高度導致近距離盲區及近距離行人數據集缺乏,無法基于激光雷達與視覺對近距離的行人進行檢測,一定程度上影響了無人車的安全性與智能化。
因此,本文提出了一種基于自適應雙重識別技術的視覺近距離行人跟蹤算法,可解決行人靠近無人車無法被識別的問題。通過卡爾曼生成預測錨框,結合重識別網絡提取對應行人外觀特征,實現對行人近距離的跟蹤與測距[8-9],同時,行人回到視覺視野后將恢復消失前的ID,提高了對行人的跟蹤能力。
基于卷積神經網絡的目標檢測算法,主要分為單階段(one-stage)和兩階段(two-stage)2類,其中R-CNN[10]是基于Region proposal的檢測算法,是two stage算法的代表。該方法先利用圖像分割算法得到目標候選區域,再通過卷積神經網絡對圖像進行分類以及回歸操作。Fast-RCNN[11]解決了R-CNN提取特征時間過長的問題,但在實際預測過程中候選框的選定依然占用了較多時間。在Fast-RCNN 基礎上,Faster-RCNN[12]中提出了無錨框(anchor-free)的概念,并且加入了一個區域預測網絡,可以直接產生候選區域,提升檢測的精度和速度。上述two stage檢測方法雖然可以充分提取圖像特征,但都存在檢測速度過慢的問題。YOLO系列算法是端到端的檢測算法,是one stage的代表性方法[13]。這類方法直接將目標的分類及定位轉化為回歸問題,算法速度快,但檢測準確率相對two stage算法較低。目前,YOLOV5已在YOLO系列算法的基礎上對主干網絡、激活函數及損失函數進行了大幅優化,是現階段精度和速度表現都十分優異的目標檢測算法之一,具體網絡結構如圖1所示。此外,各算法的結構對比如表1所示,YOLOV1[2]的主干結構是GoogleNet,輸出層采用全連接層,推理過程中,輸入圖像必須與訓練圖像具有相同的圖像分辨率。損失函數使用的是均方誤差(MSE)損失函數,該函數的缺陷是將8維定位誤差和20維分類誤差置于同等重要程度。YOLOV2[3]相比V1,在繼續保持處理速度的基礎上,從預測更準確,速度更快,識別對象更多3個方面做了改善,作者將主干網絡換成了Darknet19,使檢測速度更快,同時,在頸部增加了passthrough,能夠保留特征圖中的一些細節信息,使模型能夠更好地檢測一些較小的目標。同時,將輸出層改成了全卷積層,模型在檢測的時候不需固定圖像尺寸。YOLOV3[4]相比V2,為了更好地檢測目標,將主干網絡由Darknet19改成了Darknet53,結合FPN和融合做法,V3最后在多個尺度下的特征圖上進行檢測,即在不同分支上對大、中、小目標進行檢測,同時將損失目標改成交叉熵,即對圖像中檢測到的對象執行多標簽分類。

圖1 YOLOV5網絡結構框圖

表1 YOLO系列算法

續表(表1)
YOLOV4[5]相比V3,在主干網絡Darknet53做了一些改進,借鑒CSPnet,解決了主干網絡中梯度信息重復問題,將梯度的變化從頭到尾集成到特征圖中,因此,減少了模型的參數量和FLOPS數值,既保證了推理速度和準確率,又減少了模型尺寸。同時在V3的基礎上,增加SPP結構,可以增加感受野,增加PAN結構來concat各個尺度的特征圖。將損失函數改成CIOU,將目標框的寬高比加入進去。YOLOV5相比V4,主干網絡中使用了Focus結構作為基準網絡,網絡的頸部加入了csp結構,將損失函數改成了GIOU函數,這樣改進后,使得V5相比V4,在速度和性能上有所提升。YOLOV7[6]在V5的基礎上增加了E-ELAN結構,使得V7在速度和精度上有較大提升。同時V7還能夠檢測更多細粒度的對象,訓練和推理速度更占優勢,并且占用的內存更少,因此,在實際的應用中,V5比V7合適。YOLOV8相比YOLOV5,主要是在backbone中將V5的C3結構改成了C2f模塊,在NECK部分將V5中的PAN-FPN上采樣的CDS1X1刪除,并將C3模塊替換成了C2f模塊,在head部分,將Anchor-based換成Anchor-free結構,同時正負樣本的分配策略由靜態分配策略換成動態分配策略(TAL)。通過以上改進,YOLOV8相比YOLOV5,在coco數據集上的精度有明顯提升,但是在推理速度上變慢了,且YOLOV8在自定義數據集上的泛化性沒有得到廣泛驗證,因此,綜合考慮,本研究采用YOLOV5作為檢測器。
Simple online and realtime tracking(SORT)是一種簡單、有效、實用的多目標跟蹤算法。在SORT算法中,僅僅通過IOU(交并比)來進行匹配,雖然速度快,但容易出現ID switch(ID變化)。DeepSORT[14]算法是在SORT的基礎上,通過集成表觀信息來提升SORT的表現。通過這個擴展,模型能夠更好地處理目標被長時間遮擋的情況,將ID switch 指標降低了45%,DeepSORT算法的流程如圖2所示。表觀信息是目標對應的外觀特征,是通過在大型行人重識別數據集上訓練wide residual network,得到重識別網絡的深度關聯度量,提取目標的獨立特征。重識別的網絡結構如表2所示。網絡最終輸出是一個128維的向量,用于代表該部分表觀特征(一般維度越高,區分度越高,計算量越大)。最后使用L2范數將歸一化特征映射到單位超球面上,以便進一步使用余弦表觀度量相似度。此外,DeepSORT區別于SORT的一個核心算法在于級聯匹配算法,通過讓當前Detection結果匹配上當前時刻最近的Tracker,匹配過程將優先匹配時間消失較短的Tracker,以解決目標長時間被遮擋,出現ID switch的問題[15-18]。

圖2 DeepSort流程框圖

表2 重識別網絡架構
隨著深度學習技術的發展,基于深度學習卷積神經網絡的行人重識別算法取得了一系列成果,根據訓練樣本和訓練策略的不同,行人重識別算法可分為基于監督學習和基于弱監督學習兩類方法,目前大部分的工作集中在監督學習方面,早期研究將行人重識別看作一個多分類問題,只利用了全局特征,由于實際場景中會出現遮擋等情況,使得基于全局特征的模型難以達到理想的效果,后來又有學者提出使用全局特征和局部特征相結合的方法解決遮擋問題,提取更加具有判別性的特征表示[19]。而本文的重識別網絡是通過深度學習來提取跟蹤框中前128維相關性向量作為行人特征的。通過該方式,在行人靠近攝像頭,行人全貌未出現在視野中的時候,能夠有效地對目標進行持續跟蹤。
目前,基于YOLO與DeepSort的目標檢測與跟蹤算法已在無人小車上廣泛搭載,但仍存在行人靠近小車時無法正常檢測的情況。故本文提出了基于自適應雙重識別技術的近距離行人檢測算法,能有效跟蹤行人靠近車體后的運動情況,探測行人與車體的實際間距,同時在行人回到YOLO檢測范圍后,對其ID進行復原,有效提升了無人小車的安全性與智能化水平。
結合卡爾曼濾波生成消失行人目標候選框且持續更新,并通過重識別技術對行人目標進行特征跟蹤與ID匹配,算法Pipeline流程如圖3所示。

圖3 基于自適應雙重識別的近距離行人檢測算法流程框圖
具體步驟如下:
步驟1采用YOLOV5與DeepSort持續對視野范圍內的目標進行檢測與跟蹤。
步驟2當行人接近無人車導致目標丟失時,記錄消失前最后一幀目標圖像與目標在圖像坐標系下的位置p、寬w、高h,并采用重識別網絡記錄最后一幀圖像的特征向量Ft。
步驟3在最后一幀目標框的基礎上,按照一定比例增加中心擾動與寬高擾動,生成一定數量N的先驗框,輸出重識別網絡,得到對應特征向量Fa。
步驟4求解Fa與Ft的余弦相似度,取最小值對應的先驗框Ai為跟蹤框并輸出,以Ai對應框的位置pi及寬wi、高hi作為卡爾曼狀態模型的輸入,自適應預測下一幀先驗框生成的初始中心與寬、高,并重復步驟3,直至目標走出視野或重回視野。
步驟5求解Ai框與DeepSort輸出的跟蹤框的IOU匹配度與特征相似度,若綜合相似度指標超過90%,則將Ai框對應之前消失的ID賦值匹配目標。
本文采用YOLOV5與DeepSort為基本檢測器與跟蹤器負責對中遠距離行人的檢測與跟蹤,結合本文提出的融合卡爾曼濾波與重識別技術負責對近距離行人的檢測與跟蹤。以上算法的結合不僅可以降低對中遠距離跟蹤框的丟失率,同時可以保證對近距離行人的持續跟蹤。
YOLOV5的訓練集由VOC2007中的行人圖片與INRIA行人數據集組成,并通過翻轉、灰度、伽馬矯正等數據增強方法進行擴展,共11 000張行人圖片,如圖4所示。此外,DeepSort中的重識別網絡采用開源的wide residual network提取行人特征。

圖4 YOLOV5訓練數據集效果圖
由于目前尚未公開近距離行人檢測與跟蹤數據集,因此,本文通過實車的測試結果分析算法的可行性,將該算法部署在無人小車上,并測試行人從遠至近、從近至遠的行為過程,具體幀如圖5所示(其中YOLOV5+DeepSort的跟蹤框為藍色粗線,本方法跟蹤框為綠色細線,補框為藍色細線)。
在行人從遠至近、進入YOLO檢測盲區、從近至遠的運動過程中,對比增加近距離行人檢測算法前后的檢測效果,綜合分析算法的實用性。

圖5 行人由遠至近跟蹤效果圖
雖然本算法主要為了解決近距離行人丟失后的跟蹤問題,但在中遠距離檢測過程中,由于受輕量化模型AP(平均準確率)不足、遮擋時間等影響,仍然存在目標丟失與ID變化的情況,本算法同樣可解決目標短暫丟失的問題,效果如圖5所示。圖5(a)中,原始的YOLOV5+DeepSort算法,在模型訓練不夠、跟蹤對連續幀要求較高的情況下,容易出現丟幀情況,導致在正常視野范圍內出現ID變化的情況,圖中行人的ID由1變成了2,而在圖5(b)中,由于增加了對丟失目標的二次跟蹤,因此,圖中行人的ID一直為1,保證了ID的穩定性。
當行人目標進入YOLO檢測盲區,無法再基于DeepSort對消失目標進行跟蹤。本算法可在視覺范圍內對行人目標進行持續跟蹤,其效果如圖6所示。

圖6 行人進入近距離盲區跟蹤效果圖
圖6(a)中,原始YOLOV5+DeepSort算法由于YOLO訓練集中并未訓練近距離行人樣本,因此,無法檢測與跟蹤近距離的行人,嚴重影響了車輛的安全性。而圖6(b)能在同樣的位置對近距離行人進行檢測與跟蹤,并且行人的ID處于一個穩定狀態,主要是本方法綜合考慮了目標行人丟失前的特征信息與位置信息,在無法檢測到近距離行人的情況下,自適應地尋找最相似錨框作為當前幀的跟蹤框,同時結合卡爾曼濾波實時調整錨框組中心點位置,提升預選框的準確度。
在靠近小車的過程中,行人會由從出現在相機視野中變成相機不能拍到行人的全貌,隨后行人再遠離小車,即由相機不能拍到行人全貌,再次全貌出現在相機視野中,在這個過程中,行人的外表特征不明顯,一般的檢測器或跟蹤器會出現行人ID丟失,或者ID變換,如圖7(a)所示,只采用YOLOV5+Deepsort算法,行人在靠近小車的時候,此時行人的全貌還在相機的視野中,行人的ID為1,但是,在隨后行人全貌丟失后又出現在相機視野中的時候,行人的ID變成了2。而本算法,可以在行人靠近小車,再次回到相機視野的時候,能將之前的ID再次復原,如圖7(b)所示,在靠近小車的時候,行人的ID為1,在行人遠離小車后重新回到視野時,行人的ID仍然為1,這樣保證目標消失前后保持一致。
為了進一步驗證本算法的有效性與各參數對算法的影響,在MOT16和MOT17數據集上對本文的算法進行測試,MOT16數據集是用于衡量多目標跟蹤檢測和跟蹤方法標準的數據集,專門用于行人跟蹤,其中包含的場景較為豐富,且行人的密度很高,對于行人的跟蹤難度較大,有一定的參考意義。MOT17在MOT16數據集的基礎上增加了不同的場景。本文基于MOT16與MOT17測試集,在單張NVIDIA RTX 2060TI GPU上對YOLOV4、YOLOV5、本算法(無卡爾曼)、本算法(不同錨框個數N)、本算法在MOTA(多目標跟蹤準確度)、MOTP(多目標跟蹤精確度)、IDF1(ID識別準確度)與FPS(幀率)上進行對比,如表3、4所示。本算法在MOT16數據集和MOT17數據集上的測試結果如圖8和圖9所示,對行人的檢測效果較好。

表4 MOT17數據集各算法結果

圖8 MOT16數據集測試效果圖

圖9 MOT17數據集測試效果圖
從表3、4分析可得以下結論:① 本算法相比傳統YOLO系列+DeepSort算法在MOTA與MOTP上有大幅度提高,由于在跟蹤過程中需要生成錨框并匹配,導致檢測速度略微降低,說明本算法能在目標短暫丟失、持續丟失中保持對目標的跟蹤;② 對比有無卡爾曼濾波對錨框中心的影響可以發現,融合卡爾曼濾波的算法在MTOA與MOTP上有一定程度的提升,說明基于卡爾曼濾波預測的錨框中心能有效預測運動目標走向;③ 基于卡爾曼的錨框數增加在一定程度上可以增加算法的MOTA與MTOP,但過多的錨框數會增加算法的復雜度,從而影響算法幀率。
本文提出了一種應用于無人小車的近距離行人檢測算法。在傳統的YOLOV5+DeepSort算法基礎上,結合卡爾曼濾波算法,對由遠至近、由近至遠過程中,行人存在的短暫目標丟失和持續目標丟失,進行雙重識別跟蹤,提升跟蹤的穩定性。通過對目標丟失前的運動信息與特征信息進行融合處理,采用自適應濾波方法與重識別方法,對下一幀目標可能存在的位置,進行批量預測與特征相似度匹配,實現在傳統檢測丟失、跟蹤丟失的情況下,持續有效地捕捉目標,提升無人小車的安全性與智能化。結果表明,本算法相比傳統的跟蹤算法具有更高的MOTA與MOTP,同時檢測速度并無明顯降低。此外,針對目標持續丟失的情況,對比有無卡爾曼濾波器對跟蹤結果的影響,結果表明,卡爾曼能自適應增強預測錨框的準確性,為相似度匹配提供更好的樣本基礎。本文中,跟蹤方法中的線性卡爾曼濾波是在假設高斯和線性動作和觀測模型下進行的,但是現實情況比較復雜,因此,后續嘗試將線性卡爾曼濾波換成無跡卡爾曼濾波,對重識別網絡結構進行優化,以更精準地捕捉對象的特征。