何維堃 彭育輝 黃煒 姚宇捷 陳澤輝
(福州大學(xué),福州 350116)
主題詞:多目標(biāo)跟蹤 DeepSort 自動駕駛 Haar-like SENet
面對復(fù)雜多變的交通環(huán)境,自動駕駛汽車需不斷提高對車外環(huán)境的感知能力。其中,檢測與跟蹤道路行駛車輛并預(yù)測其運(yùn)動軌跡是環(huán)境感知研究領(lǐng)域的重要課題。
近年來,多目標(biāo)跟蹤識別網(wǎng)絡(luò)在智能駕駛方面的應(yīng)用引起了國內(nèi)外學(xué)者的普遍關(guān)注[1-2],解決行駛過程中車輛的身份切換問題是本文研究的重點(diǎn)。在基于Deep-Sort 的研究方面,Perera 等將DeepSort 中的卡爾曼濾波替換為無跡卡爾曼濾波[3];Mu等將卡爾曼濾波替換為拓展卡爾曼濾波[4],使網(wǎng)絡(luò)能更好地處理應(yīng)用場景的非線性問題,對目標(biāo)未來幀進(jìn)行有效預(yù)測,但依然無法保證預(yù)測本身的準(zhǔn)確性;裴云成將交并比(Intersection Over Union,IOU)匹配更換成廣義交并比(Generalized Intersection Over Union,GIOU)[5],使網(wǎng)絡(luò)能更有效地判斷檢測框和預(yù)測框之間的權(quán)重分配,但無法很好地解決特征匹配時出現(xiàn)失配的問題。在DeepSort網(wǎng)絡(luò)中,重識別網(wǎng)絡(luò)提取的深度特征用于前、后幀物體的特征匹配,在防止身份切換時能起到很好的作用。金立生等將檢測器更換為Gaussian YOLO V3,并用重識別網(wǎng)絡(luò)的中心損失函數(shù)代替交叉熵函數(shù),提高對車輛特征的提取性能與跟蹤網(wǎng)絡(luò)的判斷能力[6],但當(dāng)光照發(fā)生變化時,網(wǎng)絡(luò)無法適應(yīng)環(huán)境的改變,從而導(dǎo)致身份切換;Wu等將重識別網(wǎng)絡(luò)替換為ShuffleNet V2 以適用于計算能力較低的設(shè)備[7],但在復(fù)雜場景下,無法很好地提取物體的特征;Liu 等將原有的重識別網(wǎng)絡(luò)替換為ResNet50[8],加深了網(wǎng)絡(luò)深度,并結(jié)合特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)提取物體的多層特征,但復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)增加了計算負(fù)擔(dān)。
綜上,復(fù)雜場景下跟蹤檢測目標(biāo)時,跟蹤器的準(zhǔn)確性及穩(wěn)定性較差,現(xiàn)有的重識別網(wǎng)絡(luò)無法有效地對不同場景下的車輛進(jìn)行特征提取,前、后幀中目標(biāo)的匹配效果較差。為此,本文采用YOLOX 作為檢測器,對基于DeepSort研究中重識別網(wǎng)絡(luò)的特征匹配方法進(jìn)行改進(jìn),添加Haar-like 特征反映車輛的光暗變化,對原有的特征匹配機(jī)制進(jìn)行補(bǔ)充,在協(xié)調(diào)匹配速度的同時加深重識別網(wǎng)絡(luò)層數(shù)并添加SENet 注意力機(jī)制強(qiáng)化提取車輛外觀特征的能力,最后通過實際道路采集的視頻數(shù)據(jù)集對算法的有效性進(jìn)行驗證。
DeepSort 是基于匈牙利算法和卡爾曼濾波算法的單假設(shè)跟蹤方法,引入卡爾曼濾波對軌跡運(yùn)動狀態(tài)進(jìn)行預(yù)測,將檢測結(jié)果經(jīng)重識別網(wǎng)絡(luò)提取的特征與軌跡儲存的特征共同傳入匈牙利算法,進(jìn)行關(guān)聯(lián)匹配。在匹配過程中,對檢測結(jié)果框、軌跡預(yù)測框的馬氏距離及深度特征的余弦距離信息進(jìn)行整合判斷。
余弦距離主要用于衡量檢測結(jié)果與軌跡的特征向量間的差距。對于物體被遮擋后再出現(xiàn)的情況,網(wǎng)絡(luò)將軌跡中儲存的特征集與物體在重新出現(xiàn)時的特征向量進(jìn)行計算,得出其最小余弦距離:
式中,d(1)(i,j)為第j個檢測框內(nèi)的特征向量與第i個軌跡的特征向量之間的最小余弦距離;rj為第j個檢測框內(nèi)的特征向量;為跟蹤器存儲的第i個軌跡的特征向量集,其包含第i個軌跡過去成功匹配的k個特征向量;Ri為第i個軌跡的特征向量庫。
馬氏距離用于衡量上一幀中目標(biāo)經(jīng)過卡爾曼濾波預(yù)測的位置信息與檢測結(jié)果的位置信息的差距:
式中,d(2)(i,j)為第j個檢測框和第i個由跟蹤器預(yù)測的物體框之間的馬氏距離;dj為第j個檢測框的位置信息;yi為第i個由跟蹤器預(yù)測的物體框位置信息;Si為第i條軌跡在檢測空間的協(xié)方差矩陣。
將基于外觀特征的余弦距離和基于運(yùn)動信息的馬氏距離進(jìn)行線性加權(quán)獲得最終的度量:
式中,ci,j為最終度量標(biāo)準(zhǔn);λ為權(quán)重系數(shù)。
交通場景中的車輛運(yùn)動軌跡是非線性的,而卡爾曼濾波采用線性狀態(tài)方程,因此預(yù)測能力較弱[9]。通過物體的運(yùn)動狀態(tài)預(yù)測出的運(yùn)動信息估計量會存在一定偏差,導(dǎo)致馬氏距離關(guān)聯(lián)方法易失效,從而造成身份跳轉(zhuǎn)的現(xiàn)象。在最終度量中設(shè)置λ=0,使馬氏距離在級聯(lián)匹配過程中僅為判定值。當(dāng)2 個物體的對象特征一致且兩者的馬氏距離小于一定閾值,則判定匹配成功。
自動駕駛所涉及的場景多變且復(fù)雜,在車輛的多目標(biāo)跟蹤中,車輛之間的相互遮蔽、場景變換、光下的陰影變換都將導(dǎo)致追蹤目標(biāo)失敗。本文融合傳統(tǒng)特征與深度特征信息,結(jié)合各自的優(yōu)點(diǎn)解決跟蹤過程中身份跳轉(zhuǎn)的問題。
傳統(tǒng)特征相較于深度特征,在精度方面的表現(xiàn)較差,且泛化能力不足。深度特征的提取受訓(xùn)練集影響較大,訓(xùn)練過程需要大量的場景圖像數(shù)據(jù),而傳統(tǒng)特征的提取作為人工認(rèn)知驅(qū)動的方法,具有解釋性,不需要訓(xùn)練,且對算力的要求較低。因此,本文算法以原有的深度特征作為主要匹配依據(jù),融合傳統(tǒng)特征Haar-like 作為補(bǔ)充匹配。
Haar-like[10]是計算機(jī)視覺和圖像處理中用于目標(biāo)檢測的特征描述算子。特征模板內(nèi)有白色和黑色2 種矩形,矩形的位置關(guān)系不同,影響著所提取的特征信息,如邊緣特征、線條特征、中心特征、對角線特征。通過特征模塊大小的變換和在圖片子窗口的移動得到所需的特征,如圖1所示。其中,圖片特征提取框為YOLOX輸出圖片,而非整張圖,可明顯縮短特征提取的時間。
圖1 特征模塊移動方式
傳統(tǒng)特征中,Haar-like 能夠表示圖像像素值明暗變化信息,能更好地體現(xiàn)車輛行駛狀態(tài)的特征[11]。在原有的DeepSort中加入Haar-like,將深度神經(jīng)網(wǎng)絡(luò)提取的車輛抽象特征與Haar-like信息相融合[12],可有效增強(qiáng)網(wǎng)絡(luò)對不同場景的適應(yīng)性。圖2 所示為融入Haar-like 特征的DeepSort網(wǎng)絡(luò)結(jié)構(gòu)。首先,對檢測器輸入結(jié)果進(jìn)行深度特征提取和Haar-like 特征提取。在匹配過程中,將確認(rèn)態(tài)軌跡中所保留的深度特征與重識別網(wǎng)絡(luò)提取的深度特征進(jìn)行匹配,再將未匹配的軌跡和檢測物體進(jìn)行Haar-like特征匹配,最后進(jìn)行IOU匹配。
圖2 融合Haar-like的DeepSort目標(biāo)跟蹤算法流程
車輛目標(biāo)由于遮擋或未被檢測,會出現(xiàn)與之前的目標(biāo)斷開聯(lián)系且在短時間內(nèi)重新出現(xiàn)在檢測器中的現(xiàn)象。DeepSort利用重識別網(wǎng)絡(luò)提取車輛外觀信息,再將外觀信息放入級聯(lián)匹配。通過計算不同幀物體的外觀信息的余弦距離,進(jìn)行物體的相似度配對,將同一輛車重新建立聯(lián)系。
車輛作為剛體,在不同視角下所呈現(xiàn)的姿態(tài)、大小多變[13]。在自動駕駛過程中,當(dāng)檢測車輛與攝像頭的距離發(fā)生改變,或檢測車輛處于半遮擋及轉(zhuǎn)彎的狀態(tài),檢測車輛的外觀都會發(fā)生變化。在原網(wǎng)絡(luò)中,重識別網(wǎng)絡(luò)結(jié)構(gòu)簡單,無法準(zhǔn)確提取行駛過程中實時變化的車輛外觀信息,在重識別車輛時具有明顯的局限性。
無人駕駛車輛行駛過程中,對象車輛由于距離變化及遮擋的原因,其寬和高在視頻中的形變量較大。經(jīng)過YOLOX[14]檢測器識別后,檢測器會將車輛的物體框傳入追蹤網(wǎng)絡(luò)。重識別網(wǎng)絡(luò)對車輛特征進(jìn)行提取的過程中,需要重新調(diào)整圖像大小。原網(wǎng)絡(luò)中定義了圖片的高為128,寬為64,適用于對行人的特征提取,但無法滿足對車輛的特征提取[15]。為避免過大幅度地調(diào)整圖片的高和寬,導(dǎo)致識別誤差,應(yīng)尋找合適的車輛物體框的高和寬。
本文在自制的道路數(shù)據(jù)集上進(jìn)行標(biāo)注,截取視頻中不同場景下(無遮擋、被其他車輛、樹木和路障等遮擋)不同車型(掛車、皮卡和轎車等)大小及形態(tài)不同的物體框,對識別的物體框的寬和高進(jìn)行均值處理,求得最優(yōu)的物體框尺寸為高96、寬128。
在重識別網(wǎng)絡(luò)中,提取的語義信息隨著卷積層數(shù)的加深而越來越明顯。加深網(wǎng)絡(luò)層數(shù),會帶來更加強(qiáng)大的非線性表達(dá)能力和復(fù)雜的變換,使提取的信息愈加復(fù)雜、抽象[16]。在特征提取網(wǎng)絡(luò)中,底層網(wǎng)絡(luò)會提取物體的邊緣信息,較深層的網(wǎng)絡(luò)會提取物體的紋理特征,更深層的網(wǎng)絡(luò)則會提取目標(biāo)的形狀,能更好地表達(dá)車輛的整體信息。原始的重識別網(wǎng)絡(luò)由6個殘差網(wǎng)絡(luò)組成,最后的特征維度為128。廣泛應(yīng)用于行人的重識別網(wǎng)絡(luò)由8個殘差網(wǎng)絡(luò)組成,特征維度為512,增加了特征維度使得分類更加細(xì)致,但其仍無法進(jìn)行復(fù)雜情況下的車輛特征提取。為了提取車輛更深層次的信息,以滿足實際行車中的追蹤要求,本文在保證其時效性的同時加深了網(wǎng)絡(luò)的深度[17],稱為ResNet13,網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
表1 ResNet13網(wǎng)絡(luò)結(jié)構(gòu)
SENet[18]在通道維度上增加1個注意力機(jī)制,并利用損失函數(shù)的自我學(xué)習(xí),調(diào)整不同通道維度的特征權(quán)重,增大有效特征通道的權(quán)重。根據(jù)SENet所提供的各特征通道的重要程度,網(wǎng)絡(luò)能自主地關(guān)注重要的特征通道。其包括擠壓、激勵和特征重標(biāo)定3個部分,如圖3所示。
圖3 SENet結(jié)構(gòu)
擠壓是將不同特征通道數(shù)(c)的特征圖集的全局信息嵌入,聚合成c×1×1的特征描述符。在不同特征通道數(shù)的特征圖集中加入SENet,將網(wǎng)絡(luò)中的特征圖集聚合成32×1×1、64×1×1、128×1×1、256×1×1、512×1×1的特征描述符。在不同層次上獲得每個特征圖集的全局描述符:
式中,zc為特征圖擠壓聚合得到的特征描述;uc為特征圖;w為特征圖的寬;h為特征圖的高。
獲取不同深度的特征描述符后,激勵通過2個全連接層獲取通道間的關(guān)系,再經(jīng)由Sigmoid函數(shù)轉(zhuǎn)化為不同網(wǎng)絡(luò)深度(32、64、128、256、512)下每個通道的權(quán)重值:
式中,s為所有特征圖的權(quán)重集;σ為Sigmoid函數(shù);δ為線性整流(Rectified Linear Unit,ReLU)函數(shù);W1為第1 個全連接層操作;W2為第2個全連接層操作;z為所有特征圖擠壓聚合所得的特征描述符集。
最后,特征重標(biāo)定將激勵獲得的通道權(quán)重逐通道加權(quán)到不同深度的原始特征圖通道上,減小不重要的特征圖的權(quán)重,提高包含重要分類信息的特征圖權(quán)重:
式中,為特征圖與對應(yīng)權(quán)重相乘得到的特征圖;sc為特征圖的權(quán)重。
ResNet13采用殘差塊結(jié)構(gòu)[19],將輸入的X與由多個卷積級聯(lián)輸出的F(X)相加。殘差結(jié)構(gòu)作為小型網(wǎng)絡(luò),X為輸入的觀測值,H(X)為輸出的殘差網(wǎng)絡(luò)的預(yù)測值,F(xiàn)(X)為觀測值與預(yù)測值之間的差,即殘差。該網(wǎng)絡(luò)結(jié)構(gòu)有利于保護(hù)信息的完整性,且在加深網(wǎng)絡(luò)層數(shù)的同時,能有效解決梯度消失和梯度爆炸的問題。在ResNet13中,隨著網(wǎng)絡(luò)層數(shù)的增加,特征圖的深度不斷擴(kuò)張。將SENet加入殘差網(wǎng)絡(luò)中,可以對網(wǎng)絡(luò)中不同深度的特征圖進(jìn)行重構(gòu),如圖4所示。
圖4 殘差網(wǎng)絡(luò)結(jié)合SENet結(jié)構(gòu)
試驗采用開源的PyTorch 1.6.0 深度學(xué)習(xí)框架,CPU配置為Intel?Aeon?Silver 4108,主頻1.80 GHz,顯卡為GeForce GTX 1080Ti,內(nèi) 存容量為64 GB,系統(tǒng)為Ubuntu16.04 LTS,包含Python 3.7、CUDA 10.1、CuDNN 7.6.5、OpenCV 4.4.0 環(huán)境。數(shù)據(jù)集的采集設(shè)備為長虹CXC-X6行車記錄儀。
將ResNet13 和SENet 應(yīng)用于復(fù)雜場景下對車輛特征的提取,以VeRi-776[20-21]數(shù)據(jù)集訓(xùn)練所得的準(zhǔn)確率(Accuracy)和損失(Loss)為基準(zhǔn)判斷算法的質(zhì)量。對重識別網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)集的訓(xùn)練時,為保證數(shù)據(jù)的準(zhǔn)確性,3組網(wǎng)絡(luò)訓(xùn)練采用相同的參數(shù):學(xué)習(xí)率為0.001,經(jīng)過20代(epoch),學(xué)習(xí)率乘以0.1。
準(zhǔn)確率是用于對重識別網(wǎng)絡(luò)訓(xùn)練效果進(jìn)行度量的主要指標(biāo),計算重識別模型正確分類的樣本數(shù)與總樣本數(shù)之比,本文利用誤差(Error)對準(zhǔn)確率進(jìn)行表達(dá)。圖5展示了原網(wǎng)絡(luò)6 層殘差網(wǎng)絡(luò)、8 層殘差網(wǎng)絡(luò),以及ResNet13并加入SENet網(wǎng)絡(luò)預(yù)測期間的誤差曲線。
圖5 誤差對比
誤差公式為:
式中,α為誤差率;TP為真正例數(shù)量;TN為真負(fù)例數(shù)量;FP為假正例數(shù)量;FN為假負(fù)例數(shù)量。
損失函數(shù)用于表達(dá)實際輸出和期望輸出之間的差值,使網(wǎng)絡(luò)更新模型參數(shù),減小誤差。圖6 展示了原網(wǎng)絡(luò)6 層殘差網(wǎng)絡(luò)、8 層殘差網(wǎng)絡(luò),以及ResNet13 并加入SENet網(wǎng)絡(luò)預(yù)測期間的損失。
圖6 損失對比
損失公式為:
式中,q(xi)為實際輸出的各類別的概率分布;p(xi)為期望輸出各類別的分布;n為類別總數(shù);H(p,q)為交叉熵?fù)p失。
圖5 和圖6 中,原始網(wǎng)絡(luò)的6 層殘差網(wǎng)絡(luò)與本文的重識別網(wǎng)絡(luò)都進(jìn)行850代的訓(xùn)練對比。在2個網(wǎng)絡(luò)訓(xùn)練到第80代時,誤差和損失都迅速減少,隨后下降速度逐漸減緩,直至第200 代時趨于平穩(wěn)。但原始網(wǎng)絡(luò)在第200 代后,訓(xùn)練的模型精度較差,波動較為明顯。在經(jīng)歷850代訓(xùn)練后,誤差和損失依然不理想,誤差為0.55,損失為2.35。本文網(wǎng)絡(luò)在訓(xùn)練過程中比原始網(wǎng)絡(luò)更加平穩(wěn),誤差和損失也更加精確,誤差為0.03,損失為0.16。因此,本文網(wǎng)絡(luò)在車輛外觀提取方面,比原始網(wǎng)絡(luò)具有更好的性能。
分別采用DeepSort 的原始版本和本文改進(jìn)的版本對車輛進(jìn)行追蹤,利用車輛在不同場景(城市、鄉(xiāng)村)下的視頻集進(jìn)行試驗,驗證算法的可行性。本文的試驗場景為自制的雙車道的來往車輛視頻,包括城市和鄉(xiāng)鎮(zhèn),具有一定的普遍性。
圖7所示為原始網(wǎng)絡(luò)在數(shù)據(jù)集中前、后幀的變化情況。由圖7可知,身份標(biāo)簽為10的車輛在視頻中發(fā)生了身份跳轉(zhuǎn)。
圖7 原始網(wǎng)絡(luò)的前、后幀變化
圖8所示為添加Haar-like特征匹配網(wǎng)絡(luò)后,試驗的前、后幀變化情況。當(dāng)車輛處于視頻的遠(yuǎn)端角落時,會發(fā)生形變及特征不清晰的情況。原始重識別網(wǎng)絡(luò)提取的深度特征不足以應(yīng)對復(fù)雜的車輛行駛情況,從而發(fā)生身份跳轉(zhuǎn)。添加Haar-like特征匹配網(wǎng)絡(luò)以提取目標(biāo)車輛的光暗變化,從而實現(xiàn)對原始網(wǎng)絡(luò)在深度特征匹配之后的補(bǔ)齊。將深度特征無法匹配的車輛進(jìn)行Haar-like特征再匹配,抑制了身份跳轉(zhuǎn)的發(fā)生。
圖8 添加Haar-like特征匹配網(wǎng)絡(luò)的前、后幀變化
圖9所示為原始網(wǎng)絡(luò)在數(shù)據(jù)集中前、后幀的變化情況。車輛失去識別后再次出現(xiàn)時,身份標(biāo)簽為3的車輛發(fā)生了身份跳轉(zhuǎn)。
圖9 原始網(wǎng)絡(luò)的前、后幀變化
圖10所示為改進(jìn)后的ResNet13以及添加了注意力機(jī)制網(wǎng)絡(luò)后,視頻前、后幀的變化情況。在相同視頻幀下,車輛的身份并沒有發(fā)生切換;在車輛處于半遮擋狀態(tài)時,ResNet13可提高網(wǎng)絡(luò)對車輛的特征提取效果。結(jié)果表明:SENet 可自動學(xué)習(xí)到不同通道特征的重要程度,注意力機(jī)制提高了目標(biāo)特征的權(quán)重,使網(wǎng)絡(luò)專注于信息量大的通道特征,減弱不重要信息的通道特征,將ResNet13與SENet相結(jié)合可達(dá)到更好的匹配結(jié)果。
圖10 加深網(wǎng)絡(luò)和加入SENet的前、后幀變化
采用多目標(biāo)跟蹤精度(Multiple Object Tracking Accuracy,MOTA)、平均數(shù)比率IDF1(Identification F1)和幀速率3 個評價指標(biāo)對跟蹤算法進(jìn)行評估。MOTA衡量了跟蹤器在檢測物體和保持軌跡時的性能,相比IDF1更專注于檢測器的性能。IDF1用于判斷跟蹤器在視頻中長時間地對同一事物進(jìn)行準(zhǔn)確跟蹤的能力,著重于計算物體的初始身份號碼占其在視頻中出現(xiàn)的所有身份號碼的比例。幀速率反映了處理速度。對比算法的評價結(jié)果,如表2所示。
表2 評價結(jié)果
由表2可知,在跟蹤網(wǎng)絡(luò)中加入Haar-like特征且對重識別網(wǎng)絡(luò)進(jìn)行改進(jìn),可有效提升跟蹤網(wǎng)絡(luò)的效果。
本文針對自動駕駛汽車,面向外界動態(tài)車輛多目標(biāo)跟蹤的場景,提出以YOLOX 為前端檢測器的DeepSort改進(jìn)算法,利用Haar-like 算法提取車輛的光暗變化特征,實現(xiàn)對網(wǎng)絡(luò)原有匹配機(jī)制的補(bǔ)充。此外,通過ResNet13 網(wǎng)絡(luò)對重識別網(wǎng)絡(luò)進(jìn)行更換、添加注意力機(jī)制,從而提高重識別網(wǎng)絡(luò)對車輛深度特征的提取能力。采用實際道路駕駛采集的視頻數(shù)據(jù),對本文算法和傳統(tǒng)算法進(jìn)行對比驗證,結(jié)果表明:相較于傳統(tǒng)DeepSort 算法,改進(jìn)后算法的MOTA 提高了1.4 百分點(diǎn),IDF1 提升了7.7百分點(diǎn)。