廖存燚,鄭 毅,劉瑋瑾,于 歡,劉守印*
(1.華中師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院,武漢 430079;2.武漢大學(xué) 測(cè)繪學(xué)院,武漢 430079)
汽車自動(dòng)駕駛系統(tǒng)的環(huán)境感知模塊能自主采集周邊環(huán)境信息,計(jì)算得到車輛周圍物體的位置、車輛本身的位姿和車輛附近的地圖等信息。在汽車對(duì)環(huán)境精準(zhǔn)感知的基礎(chǔ)上,自動(dòng)駕駛系統(tǒng)能對(duì)行進(jìn)路線進(jìn)行正確的決策。由于目前攝像設(shè)備價(jià)格低廉,拍攝的圖像富含色彩、紋理等信息,基于車載攝像機(jī)的環(huán)境感知模塊已被廣泛應(yīng)用于自動(dòng)駕駛中[1]。
近年來(lái),深度學(xué)習(xí)技術(shù)在自動(dòng)駕駛的環(huán)境感知領(lǐng)域中發(fā)揮著至關(guān)重要的作用,其中,確定車輛周圍行人和其他車輛的位置、種類和運(yùn)行軌跡是研究的重點(diǎn)和難點(diǎn)任務(wù)。針對(duì)這些問(wèn)題,目前研究者分別對(duì)目標(biāo)檢測(cè)任務(wù)[2-3]、實(shí)例分割任務(wù)[4-5]和目標(biāo)跟蹤任務(wù)[6-7]開(kāi)展獨(dú)立研究。針對(duì)每個(gè)任務(wù),目前業(yè)界提出了許多優(yōu)秀的模型,且分別取得了較高的性能。自動(dòng)駕駛系統(tǒng)需要同時(shí)接收多個(gè)任務(wù)的預(yù)測(cè)結(jié)果,以作出正確的行進(jìn)決策。多個(gè)獨(dú)立的任務(wù)處理單元?jiǎng)荼貙?duì)計(jì)算資源和實(shí)時(shí)性提出了巨大的挑戰(zhàn),因此,探究一種多任務(wù)學(xué)習(xí)方法,構(gòu)建能同時(shí)完成目標(biāo)檢測(cè)、實(shí)例分割和目標(biāo)跟蹤等多任務(wù)環(huán)境感知算法,是一項(xiàng)重要的研究任務(wù)[8]。
目前,構(gòu)建自動(dòng)駕駛環(huán)境感知多任務(wù)模型的主要思路為:首先構(gòu)建一種可以并行處理多個(gè)任務(wù)的深度學(xué)習(xí)模型,模型包含多個(gè)并行模塊,每個(gè)模塊對(duì)應(yīng)一個(gè)主要任務(wù);其次,研究并行模塊間網(wǎng)絡(luò)參數(shù)的共享和融合,同時(shí),探究并行模塊間的訓(xùn)練優(yōu)化方法,使多個(gè)任務(wù)同時(shí)收斂到最優(yōu)。例如,Teichmann 等[9]提出了MultiNet 模型,通過(guò)設(shè)計(jì)單編碼器和多解碼器結(jié)構(gòu),同時(shí)完成車輛檢測(cè)、街道分類和路面分割這3個(gè)任務(wù),提升了模型推理速度;但它的輸出層未建立共享機(jī)制,無(wú)法彼此共享權(quán)重,導(dǎo)致檢測(cè)精度下降。針對(duì)這個(gè)問(wèn)題,Qian 等[10]提出了DLT-Ne(tDrivable Lane Traffic Network)模型用于可行駛區(qū)域、車道線和交通目標(biāo)的聯(lián)合檢測(cè)。該模型提出一種上下文張量結(jié)構(gòu),融合了3 個(gè)任務(wù)的特征映射,實(shí)現(xiàn)了多個(gè)任務(wù)間的參數(shù)共享,提升了檢測(cè)精度;但由于上下文張量結(jié)構(gòu)過(guò)于復(fù)雜,難以滿足實(shí)時(shí)檢測(cè)的要求。Wu 等[8]提出 了YOLOP(You Only Look Once Perception)模 型,在YOLOv4[3]模型基礎(chǔ)上,并行增添了兩個(gè)解碼器結(jié)構(gòu),節(jié)省了計(jì)算成本,減少了推理時(shí)間;但是它僅將各任務(wù)損失函數(shù)線性相加,未考慮模型各任務(wù)損失函數(shù)的權(quán)重平衡,可能導(dǎo)致部分子任務(wù)收斂不充分。更重要的是,由于行駛汽車周圍環(huán)境變化復(fù)雜,目前這些模型均未考慮行駛汽車周圍的行人和車輛的運(yùn)動(dòng)軌跡預(yù)測(cè),不能為自動(dòng)駕駛系統(tǒng)的決策導(dǎo)航模塊提供充分的決策信息。
針對(duì)以上問(wèn)題,本文提出一種多任務(wù)環(huán)境感知算法。首先,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)提取連續(xù)幀圖像的空間特征。由于幀間存在相關(guān)性,本文利用代價(jià)關(guān)聯(lián)矩陣構(gòu)建時(shí)序融合模塊,提取得到時(shí)空特征。然后,考慮到目標(biāo)檢測(cè)、實(shí)例分割和目標(biāo)跟蹤這3個(gè)任務(wù)存在著相關(guān)性,本文構(gòu)建了并行執(zhí)行的3 個(gè)子任務(wù)網(wǎng)絡(luò),在降低模型的參數(shù)量的同時(shí)提高了運(yùn)行速度。
考慮到不同任務(wù)在訓(xùn)練過(guò)程中存在負(fù)遷移現(xiàn)象,會(huì)導(dǎo)致3 個(gè)任務(wù)相互干擾,降低各自任務(wù)的預(yù)測(cè)精度。針對(duì)這個(gè)問(wèn)題,本文提出一種基于注意力機(jī)制的去耦-融合模塊。首先,使用注意力機(jī)制對(duì)時(shí)空特征去耦,在去耦過(guò)程中通過(guò)賦予時(shí)空特征不同的貢獻(xiàn)度權(quán)重,實(shí)現(xiàn)不同任務(wù)對(duì)時(shí)空特征的差異化選擇;其次,通過(guò)特征融合模塊對(duì)已去耦的特征進(jìn)行信息整合,在融合過(guò)程中,建立一種參數(shù)共享機(jī)制,使模型充分利用了任務(wù)間的相關(guān)性,提升模型在各任務(wù)上的估計(jì)精度。
考慮到模型對(duì)不同任務(wù)的學(xué)習(xí)能力有差異,為了防止訓(xùn)練收斂快的任務(wù)影響其他任務(wù),本文提出對(duì)不同任務(wù)的損失函數(shù)使用動(dòng)態(tài)加權(quán)平均[11]的方式訓(xùn)練。通過(guò)上一時(shí)刻各任務(wù)損失函數(shù)的比值,動(dòng)態(tài)調(diào)節(jié)各任務(wù)損失函數(shù)下降速度,從而使模型訓(xùn)練時(shí)在不同任務(wù)的收斂過(guò)程中達(dá)到平衡。
為驗(yàn)證本文模型的有效性,在KITTI 數(shù)據(jù)集上與近年來(lái)部分優(yōu)秀的模型進(jìn)行對(duì)比實(shí)驗(yàn),本文模型可并行運(yùn)行目標(biāo)檢測(cè)、實(shí)例分割和目標(biāo)跟蹤3 個(gè)任務(wù),運(yùn)行速度達(dá)到了8.23 FPS,優(yōu)于串行執(zhí)行3 個(gè)任務(wù)的性能。本文模型在目標(biāo)檢測(cè)方面,F(xiàn)1 得分優(yōu)于CenterTrack 模型[12];在目標(biāo)跟蹤方面,多目標(biāo)跟蹤精度(Multiple Object Tracking Accuracy,MOTA)優(yōu)于TraDeS(Track to Detect and Segment)模型[13];在實(shí)例分割方面,AP50和AP75指標(biāo)優(yōu)于SOLOv2(Segmenting Objects by LOcations version 2)模型[14]。本文還設(shè)計(jì)了消融實(shí)驗(yàn),進(jìn)一步驗(yàn)證了去耦-融合模塊的有效性。為了方便后續(xù)的研究工作,本文模型代碼已經(jīng)開(kāi)源到了https://github.com/LiaoCunyi/Decoupling_fusion_TraDes/tree/master。
目前,目標(biāo)檢測(cè)算法可分為單階段和雙階段兩種。雙階段目標(biāo)檢測(cè)算法首先產(chǎn)生目標(biāo)識(shí)別的候選區(qū)域,再修正候選區(qū)域?qū)捀撸?5-16];單階段目標(biāo)檢測(cè)算法直接回歸物體類別的概率和位置坐標(biāo)。例如,Redmon 等[17]提出了YOLO 系列單階段模型,通過(guò)預(yù)定的錨框直接預(yù)測(cè)物體的邊界框和所屬類別,但預(yù)定的錨框會(huì)限制檢測(cè)算法的性能,并且非極大值抑制(Non-Maximum Suppression,NMS)算法等后處理算法會(huì)限制檢測(cè)算法的效率。針對(duì)這個(gè)問(wèn)題,Zhou 等[18]拋棄錨框,采用基于關(guān)鍵點(diǎn)的方法,提出了兼顧推理時(shí)間和檢測(cè)精度的CenterNet 模型。
實(shí)例分割需要預(yù)測(cè)對(duì)象的實(shí)例和每個(gè)像素點(diǎn)的分割掩碼。He 等[19]提 出Mask-RCNN(Mask Region-based Convolutional Neural Network)模型,首先進(jìn)行目標(biāo)檢測(cè),提取檢測(cè)目標(biāo)的邊界框,再依次對(duì)每個(gè)邊界框內(nèi)部物體進(jìn)行掩碼預(yù)測(cè),得到目標(biāo)的實(shí)例分割結(jié)果;但該模型速度較慢,不能滿足實(shí)時(shí)性的要求。針對(duì)這個(gè)問(wèn)題,Wang等[20]提出了SOLO模型,將分割問(wèn)題轉(zhuǎn)化為位置分類問(wèn)題。SOLOv2在SOLO的基礎(chǔ)上增加了學(xué)習(xí)分類器權(quán)重以及掩碼的特征表達(dá),極大地縮減了前向推理所需時(shí)間。目前,SOLOv2在實(shí)例分割任務(wù)中有著較好的性能。
如圖1 所示,主流的目標(biāo)跟蹤框架[12]主要可分為逐步檢測(cè)跟蹤(Tracking By Detection,TBD)和聯(lián)合檢測(cè)跟蹤(Joint Detection and Tracking,JDT)兩類。
圖1 目標(biāo)跟蹤框架Fig.1 Target tracking framework
TBD 方法首先對(duì)圖像逐幀檢測(cè);然后提取檢測(cè)目標(biāo)特征,通過(guò)提取得到的特征構(gòu)建幀間相似度矩陣;最后運(yùn)用匈牙利算法或貪婪算法等匹配方法求解矩陣,得到目標(biāo)軌跡[21]。這種先檢測(cè)再跟蹤的串行跟蹤算法過(guò)于冗余,運(yùn)行速度較慢。針對(duì)這個(gè)問(wèn)題,JDT 方法將檢測(cè)和跟蹤并行執(zhí)行,使用共享骨干網(wǎng)絡(luò)同時(shí)對(duì)兩個(gè)任務(wù)提取特征[22],但這種方法的檢測(cè)和跟蹤兩個(gè)任務(wù)通常獨(dú)立執(zhí)行,沒(méi)有利用兩者的相關(guān)性。針對(duì)這個(gè)問(wèn)題,Wu 等[13]提出TraDeS(Track to Detect and Segment)模型,通過(guò)跟蹤器的結(jié)果對(duì)公有特征進(jìn)行數(shù)據(jù)增強(qiáng),幫助檢測(cè)器的工作。
多任務(wù)學(xué)習(xí)是遷移學(xué)習(xí)的一種,旨在通過(guò)學(xué)習(xí)多個(gè)任務(wù)間的共同有效信息提高模型的學(xué)習(xí)效率和預(yù)測(cè)精度,增強(qiáng)模型的健壯性和泛化性能。多任務(wù)學(xué)習(xí)具有如下優(yōu)勢(shì):1)得益于多任務(wù)學(xué)習(xí)的共享機(jī)制,模型的參數(shù)量顯著下降,對(duì)硬件資源的占用大幅減??;2)由于骨干網(wǎng)絡(luò)的共享,模型的推理速度提升;3)若各任務(wù)之間存在相關(guān)性,各任務(wù)的檢測(cè)性能增強(qiáng)。因此,多任務(wù)學(xué)習(xí)被廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理和語(yǔ)言識(shí)別等領(lǐng)域。
如圖2 所示,基于編碼器結(jié)構(gòu)的多任務(wù)學(xué)習(xí)框架可分為硬共享和軟共享機(jī)制兩種。軟共享機(jī)制為每個(gè)特定任務(wù)單獨(dú)設(shè)計(jì)子網(wǎng)絡(luò),并通過(guò)連接實(shí)現(xiàn)參數(shù)分享,有效解決了低相關(guān)性任務(wù)之間互相影響的問(wèn)題。例如:Misra 等[23]提出的十字繡網(wǎng)絡(luò)(Cross-stitch Network),通過(guò)設(shè)計(jì)十字繡單元完成子任務(wù)間的參數(shù)分享,但是十字繡單元會(huì)逐步削減前一時(shí)刻卷積層的信息,無(wú)法關(guān)聯(lián)層數(shù)較遠(yuǎn)的區(qū)域。閘式網(wǎng)絡(luò)(Sluice Network)[24]借助殘差網(wǎng)絡(luò)的思想,在共享層之間引入跳接與選擇性共享等策略改善此問(wèn)題。這些模型參數(shù)量大,推理速度較慢,并且共享網(wǎng)絡(luò)的設(shè)計(jì)比較困難。硬共享機(jī)制的模型通常由一個(gè)共享的編碼器組成,之后再細(xì)分為各個(gè)特定子任務(wù)[22]。此方法網(wǎng)絡(luò)設(shè)計(jì)簡(jiǎn)單且參數(shù)量少,對(duì)具有高度相關(guān)性的任務(wù)效果較好,但對(duì)于低相關(guān)性的任務(wù)通常存在負(fù)遷移的現(xiàn)象[25]。
圖2 多任務(wù)學(xué)習(xí)框架Fig.2 Multi-task learning framework
針對(duì)軟硬共享沖突的問(wèn)題,基于解碼器結(jié)構(gòu)的模型在子任務(wù)網(wǎng)絡(luò)間建立參數(shù)分享機(jī)制,有效解決了低相關(guān)性任務(wù)互相干擾的問(wèn)題,提高了模型的性能[26-27]。
自動(dòng)駕駛過(guò)程中,車輛需要對(duì)周圍行人和車輛等目標(biāo)進(jìn)行準(zhǔn)確地感知,從而為路徑規(guī)劃提供決策基礎(chǔ)。由于車輛在行進(jìn)過(guò)程中需要快速?zèng)Q策以應(yīng)對(duì)各種突發(fā)情況,所以自動(dòng)駕駛系統(tǒng)對(duì)環(huán)境感知算法的推斷時(shí)間有較為嚴(yán)格的限制。針對(duì)這個(gè)問(wèn)題,本文提出了一種基于深度學(xué)習(xí)的多任務(wù)環(huán)境感知算法對(duì)環(huán)境目標(biāo)并行進(jìn)行目標(biāo)檢測(cè)、實(shí)例分割和目標(biāo)追蹤3 個(gè)任務(wù)。本文提出如圖3 所示框架的模型,該模型利用車輛行駛過(guò)程中車載攝像頭拍攝的連續(xù)幀圖像,首先通過(guò)時(shí)序融合模塊提取特征的時(shí)空信息,然后利用多任務(wù)學(xué)習(xí)技術(shù)同時(shí)實(shí)現(xiàn)所在區(qū)域目標(biāo)檢測(cè)、識(shí)別目標(biāo)類別與追蹤目標(biāo)運(yùn)動(dòng)軌跡。
圖3 多任務(wù)去耦-融合算法整體流程Fig.3 Overall flow of multi-task decoupling-fusing algorithm
圖4 時(shí)空特征提取模塊Fig.4 Spatio-temporal feature extraction module
本文提出的多任務(wù)環(huán)境感知算法的重點(diǎn)在于同時(shí)針對(duì)3 個(gè)任務(wù),分別提取有效的時(shí)空特征。然而在多任務(wù)學(xué)習(xí)提取特征的過(guò)程中,這些子任務(wù)之間通常會(huì)產(chǎn)生認(rèn)知混淆,從而相互干擾,這種現(xiàn)象被稱為負(fù)遷移現(xiàn)象。負(fù)遷移現(xiàn)象可能會(huì)使檢測(cè)精度比學(xué)習(xí)單一任務(wù)時(shí)大幅下降,甚至導(dǎo)致任務(wù)中的子任務(wù)無(wú)法收斂。本文提出一種多任務(wù)特征去耦-融合模塊,通過(guò)引入注意力機(jī)制分離時(shí)空特征,實(shí)現(xiàn)不同子任務(wù)對(duì)時(shí)空特征的差異化選擇;并設(shè)計(jì)特征融合模塊整合去耦特征,充分利用任務(wù)間的相關(guān)性緩解任務(wù)間的負(fù)遷移現(xiàn)象。
如圖3 所示,多任務(wù)環(huán)境感知算法整體流程分為時(shí)空特征提取模塊、特征去耦-融合模塊和子任務(wù)處理模塊。首先,由車載攝像頭獲取的包含環(huán)境信息的連續(xù)幀圖像作為模型的輸入。其次,通過(guò)時(shí)空特征提取模塊對(duì)連續(xù)幀圖像,分別進(jìn)行空域和時(shí)域的特征提取。然后,將提取的時(shí)空特征分配給不同的子任務(wù),如:目標(biāo)檢測(cè)與實(shí)例分割子任務(wù)。值得注意的是,由于不同的子任務(wù)之間具有負(fù)遷移問(wèn)題,本文設(shè)計(jì)了一種特征去耦-融合模塊,通過(guò)注意力機(jī)制學(xué)習(xí)不同子任務(wù),針對(duì)時(shí)空特征分配的權(quán)重,從而充分利用不同子任務(wù)之間的相關(guān)性,阻止多任務(wù)學(xué)習(xí)過(guò)程中不同子任務(wù)的相互干擾。最后,將目標(biāo)檢測(cè)結(jié)果通過(guò)偏移量關(guān)聯(lián),為檢測(cè)目標(biāo)分配ID 信息,并使用動(dòng)態(tài)加權(quán)平均的方法對(duì)模型進(jìn)行整體調(diào)優(yōu)。
然后提取時(shí)間特征,為得到連續(xù)幀圖像中同一行人和車輛的相似度,使用矩陣乘法計(jì)算圖像間的代價(jià)關(guān)聯(lián)矩陣代表t時(shí)刻的像素點(diǎn)坐標(biāo)(i,j)與t-n時(shí)刻的像素點(diǎn)坐標(biāo)(k,l)之間的相似性。
最后進(jìn)行時(shí)空特征融合,通過(guò)代價(jià)關(guān)聯(lián)模塊得到代價(jià)關(guān)聯(lián)矩陣Ci,j,k,l后,運(yùn)動(dòng)傳播模塊利用它將前n幀圖像的空間特征傳播到當(dāng)前幀,并對(duì)當(dāng)前幀空間特征進(jìn)行補(bǔ)償增強(qiáng)。首先使用1 ×WC和1 ×HC大小的內(nèi)核分別對(duì)Ci,j,k,l的寬高維度進(jìn)行最大池化操作,并通過(guò)softmax 函數(shù)歸一化,得到對(duì)應(yīng)的二維代價(jià)關(guān)聯(lián)矩陣它們分別表示目標(biāo)物體在t時(shí)刻出現(xiàn)在指定像素坐標(biāo)下的水平和垂直位置的最大概率。再分別計(jì)算t時(shí)刻像素點(diǎn)坐標(biāo)(i,j)到t-n時(shí)刻像素點(diǎn)坐標(biāo)(k,l)的水平和垂直方向上的偏移量Mi,j,l和Vi,j,k,計(jì)算公式為:
針對(duì)各任務(wù)互相影響的問(wèn)題,本文提出了特征去耦-融合模塊,如圖5 所示。首先,本文設(shè)計(jì)了特征去耦模塊,分離時(shí)空特征,賦予它不同的貢獻(xiàn)度權(quán)重。該模塊通過(guò)減輕任務(wù)間低相關(guān)性共享信息的影響,實(shí)現(xiàn)不同任務(wù)對(duì)時(shí)空特征的差異化選擇。然后,針對(duì)模型輸出層共享信息不足的問(wèn)題,構(gòu)建了特征融合模塊。整合含有不同任務(wù)語(yǔ)義信息的特征,充分利用任務(wù)間的相關(guān)性,緩解不同任務(wù)間的負(fù)遷移現(xiàn)象。
圖5 特征去耦-融合模塊Fig.5 Feature decoupling-fusing module
注意力機(jī)制模擬了人類感知周圍環(huán)境的內(nèi)部過(guò)程,試圖通過(guò)關(guān)注圖像的特定區(qū)域降低模型的運(yùn)算復(fù)雜度并提高性能。在深度學(xué)習(xí)領(lǐng)域,注意力機(jī)制通常被當(dāng)作一種資源分配的手段,根據(jù)特征的重要性程度分配不同的權(quán)重,突出重要特征忽視次要特征。自注意力(Self-Attention,SA)是注意力機(jī)制的一種,通過(guò)輸入圖像像素點(diǎn)的相關(guān)性確定輸入的權(quán)重分配,然而忽視了特征各通道域之間的關(guān)聯(lián);對(duì)偶注意力(Dual-Attention,DA)[29]在自注意力的基礎(chǔ)上,添加了一個(gè)通道注意力的分支,試圖從空間域注意力和通道域注意力兩個(gè)模塊得到更好的權(quán)重表示,然而這種方式引入了過(guò)多的參數(shù)和計(jì)算量;有效通道注意力(Efficient Channel Attention,ECA)[30]只使用了一個(gè)感受野可學(xué)習(xí)的一維卷積核,大幅減少了計(jì)算量,并通過(guò)不降維的跨通道交互策略進(jìn)一步提高了精度。本文選取有效通道注意力構(gòu)建注意力機(jī)制,并通過(guò)實(shí)驗(yàn)驗(yàn)證了該方案的有效性。特征去耦模塊的流程如圖6所示。
圖6 特征去耦模塊流程Fig.6 Flow of feature decoupling module
其中:W1和W2為超參數(shù)表示時(shí)空特征經(jīng)過(guò)全局平均池化操作后的結(jié)果。特征映射A經(jīng)過(guò)大小為k的一維卷積核提取通道特征后得到Β∈R1×1×C,其中k的大小可自適應(yīng)學(xué)習(xí)得到,它表示注意力關(guān)注的通道數(shù)。B通過(guò)σ=softmax 函數(shù)映射后得到通道間的注意力權(quán)重,并與時(shí)空特征相乘融合,得到目標(biāo)檢測(cè)和實(shí)例分割兩個(gè)任務(wù)分別加權(quán)后的時(shí)空特征
檢測(cè)目標(biāo)的中心點(diǎn)(i,j)和跟蹤偏移量Oi,j進(jìn)行兩步數(shù)據(jù)關(guān)聯(lián)。首先,以t-1 時(shí)刻檢測(cè)目標(biāo)的中心點(diǎn)(i,j)+Oi,j為中心,r為半徑作圓,其中r為目標(biāo)檢測(cè)框的寬度和高度的平均值。在圓中搜索最近的未匹配檢測(cè)目標(biāo),并使用匈牙利算法進(jìn)行數(shù)據(jù)關(guān)聯(lián)。其次,如果第一輪匹配未在t-1 時(shí)刻找到合適的匹配對(duì)象,則計(jì)算與歷史軌跡的余弦相似度。如果在歷史軌跡中找到相似度大于設(shè)定閾值的目標(biāo)時(shí),此時(shí)認(rèn)為目標(biāo)在跟蹤過(guò)程中存在遮擋問(wèn)題,重新為它分配相同軌跡。如果兩輪關(guān)聯(lián)均未成功,為目標(biāo)分配一個(gè)新的軌跡。
由于多個(gè)任務(wù)的訓(xùn)練過(guò)程中任務(wù)訓(xùn)練速度難以平衡,可能會(huì)導(dǎo)致過(guò)擬合或者任務(wù)訓(xùn)練不充分等問(wèn)題,并且多個(gè)任務(wù)之間的權(quán)重很難人工設(shè)定。此外,目標(biāo)檢測(cè)、實(shí)例分割和目標(biāo)跟蹤3 個(gè)任務(wù)同時(shí)存在損失不兼容的問(wèn)題,也會(huì)導(dǎo)致負(fù)遷移現(xiàn)象。產(chǎn)生這個(gè)現(xiàn)象的原因在于,目標(biāo)檢測(cè)任務(wù)的重點(diǎn)在于最小化類內(nèi)誤差的同時(shí)最大化類間誤差;然而,實(shí)例分割任務(wù)由于需要區(qū)分所有目標(biāo),它的損失函數(shù)要求擴(kuò)大類內(nèi)誤差;目標(biāo)跟蹤任務(wù)同樣重點(diǎn)關(guān)注類內(nèi)誤差。
針對(duì)以上問(wèn)題,本文使用動(dòng)態(tài)加權(quán)平均的方式對(duì)網(wǎng)絡(luò)進(jìn)行整體調(diào)優(yōu)。首先,它是一種自適應(yīng)的權(quán)重調(diào)節(jié)方法,有效解決了手工設(shè)計(jì)訓(xùn)練權(quán)重困難的問(wèn)題;其次,它會(huì)通過(guò)上一時(shí)刻各任務(wù)損失函數(shù)的比值動(dòng)態(tài)地調(diào)節(jié)各任務(wù)損失函數(shù)下降速度,降低下降速度快的損失函數(shù)權(quán)重,提高下降速度慢的損失函數(shù)權(quán)重,使模型的訓(xùn)練達(dá)到動(dòng)態(tài)的平衡;最后,它有效地折中平衡了3 個(gè)任務(wù)損失不兼容的問(wèn)題。
多任務(wù)環(huán)境感知模型通過(guò)最小化損失函數(shù)Ltotal的方式達(dá)到優(yōu)化模型的目的,Ltotal的計(jì)算方式如下所示:
其中:目標(biāo)檢測(cè)、實(shí)例分割和目標(biāo)跟蹤3 個(gè)任務(wù)的損失函數(shù)如下:
目標(biāo)檢測(cè)任務(wù)的損失函數(shù)由3 個(gè)部分組成:Lk表示熱力圖損失函數(shù),通過(guò)降低熱力圖與標(biāo)簽之間的差異,可達(dá)到預(yù)測(cè)目標(biāo)中心點(diǎn)的目的。針對(duì)熱力圖中存在著正負(fù)樣本不均衡的問(wèn)題,本文采用焦點(diǎn)損失(Focal Loss)作為損失函數(shù)。Lsize和Loff分別表示目標(biāo)框?qū)捀吲c目標(biāo)中心點(diǎn)偏移量的損失函數(shù),這兩個(gè)損失函數(shù)采用常用的L1 損失函數(shù),在高度、寬度和中心點(diǎn)三方面同時(shí)降低預(yù)測(cè)目標(biāo)框和真實(shí)目標(biāo)框的誤差。對(duì)于實(shí)例分割任務(wù),Lmask表示預(yù)測(cè)目標(biāo)掩碼與真實(shí)目標(biāo)掩碼之間損失函數(shù),由于掩碼的預(yù)測(cè)實(shí)質(zhì)上是基于像素點(diǎn)的分類任務(wù),因此采用骰子函數(shù)(Dice Loss)作為損失函數(shù)。對(duì)于目標(biāo)追蹤任務(wù),LCVA表示代價(jià)關(guān)聯(lián)矩陣Ci,j,k,l的損失函數(shù),為了降低連續(xù)圖像中同一對(duì)象的相似度差異,采用代價(jià)容量函數(shù)作為損失函數(shù)。3 個(gè)任務(wù)的損失函數(shù)對(duì)應(yīng)的權(quán)重ωi(t)的計(jì)算公式如下所示:
其中:ri(t-1)表示任務(wù)i在t-1 時(shí)刻對(duì)應(yīng)的訓(xùn)練速度,N表示任務(wù)數(shù)。ri(t-1)除以超參數(shù)T后通過(guò)指數(shù)函數(shù)進(jìn)行映射,當(dāng)T=1 時(shí),ωi(t)等同于softmax 函數(shù)的結(jié)果。最后計(jì)算各任務(wù)損失函數(shù)所占的比值,值越小表示任務(wù)訓(xùn)練速度越快。ri(t-1)的計(jì)算公式如下所示:
其中:Ln(t-1)表示任務(wù)i在t-1 時(shí)刻的迭代周期對(duì)應(yīng)的損失函數(shù)。
KITTI 數(shù)據(jù)集由德國(guó)卡爾斯魯厄理工學(xué)院和豐田美國(guó)技術(shù)研究院聯(lián)合創(chuàng)建,是目前自動(dòng)駕駛領(lǐng)域最重要的數(shù)據(jù)集之一。它提供了大量真實(shí)場(chǎng)景下的數(shù)據(jù),用來(lái)度量和測(cè)試算法的表現(xiàn)。該數(shù)據(jù)集中包含8 088 張連續(xù)幀圖片作為訓(xùn)練集,4 009 張連續(xù)幀圖片作為測(cè)試集。數(shù)據(jù)集標(biāo)定了行人和車輛的位置、編號(hào)以及分割信息。
實(shí)驗(yàn)的硬件條件為Intel Core i7-7700K 的CPU 和NVIDIA GeForce GTX 2080Ti 12G 的顯卡,開(kāi)發(fā)語(yǔ)言為Python,深度學(xué)習(xí)框架為PyTorch。
在目標(biāo)跟蹤任務(wù)中,本文選用多目標(biāo)跟蹤精度(MOTA)和F1 得分作為評(píng)價(jià)指標(biāo),其中MOTA 用于衡量檢測(cè)目標(biāo)軌跡保持方面的性能,即:
其中:FNt表示t時(shí)刻負(fù)例預(yù)測(cè)為負(fù)例的比例;FPt表示t時(shí)刻負(fù)例預(yù)測(cè)為正例的比例;GTt表示t時(shí)刻預(yù)測(cè)的總目標(biāo)數(shù);IDSWt表示跟蹤目標(biāo)ID 切換的總數(shù)。
F1 得分為精確率(precision)和召回率(recall)的調(diào)和平均,用于衡量目標(biāo)檢測(cè)的性能,即:
在實(shí)例分割任務(wù)中,本文使用AP50和AP75作為評(píng)價(jià)指標(biāo),分別用于評(píng)價(jià)困難和簡(jiǎn)單場(chǎng)景下的實(shí)例分割性能,即:
其中:G1表示實(shí)例預(yù)測(cè)值集合,G2表示實(shí)例標(biāo)簽值集合。模型的運(yùn)行速度采用FPS 作為評(píng)價(jià)指標(biāo)。
為驗(yàn)證本文提出模型的有效性,與近年來(lái)部分優(yōu)秀的目標(biāo)跟蹤和實(shí)例分割模型對(duì)比。比較的模型包括:
1)TraDeS[13],該模型通過(guò)代價(jià)矩陣融合多幀信息,充分利用了時(shí)空信息。
2)CenterTrack[12],該模型基于關(guān)鍵點(diǎn)直接預(yù)測(cè)目標(biāo)的中心點(diǎn)和前后幀之間的偏移量。
3)DEFT(Detection Embeddings for Tracking)[31],該模型在CenterTrack 的基礎(chǔ)上,引入LSTM 網(wǎng)絡(luò)過(guò)濾不合理的匹配結(jié)果,提供了一個(gè)更有效的跟蹤記憶。
4)SOLOv2[14],該模型引入了動(dòng)態(tài)機(jī)制,學(xué)習(xí)卷積核權(quán)重,優(yōu)化了特征提取的效率,并提出基于矩陣的非極大值抑制算法,減少了前向推理的時(shí)間。
5)OPITrack(Object Point Set Inductive Tracker)[32],該模型提出了一種用于稀疏訓(xùn)練和密集測(cè)試的泛化訓(xùn)練策略和樣本增強(qiáng)損失函數(shù),前者有利于模型學(xué)習(xí)更多的鑒別特征,后者有利于模型學(xué)習(xí)假陽(yáng)性和真陽(yáng)性之間的差異。
6)SearchTrack[33],該模型融合了物體外部特征和運(yùn)動(dòng)軌跡線索來(lái)解決關(guān)聯(lián)問(wèn)題。
上述模型在KITTI 實(shí)例分割數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表1所示。從表1 可知,本文模型效果最優(yōu)。對(duì)比單任務(wù)方法,本文模型在目標(biāo)跟蹤和實(shí)例分割任務(wù)上的性能均有所提升,并且模型的推理速度優(yōu)于串行處理3 個(gè)任務(wù)之和;對(duì)比多任務(wù)方法,本文模型在犧牲了推理速度的情況下,提高了模型的檢測(cè)精度。以上實(shí)驗(yàn)充分驗(yàn)證了本文模型的有效性。
表1 本文方法與現(xiàn)有方法在KITTI數(shù)據(jù)集上的對(duì)比實(shí)驗(yàn)結(jié)果Tab.1 Comparative experimental results between proposed method and existing methods on KITTI dataset
為驗(yàn)證本文模型各模塊的有效性進(jìn)行了消融實(shí)驗(yàn)。首先,將TraDeS 模型作為本文的基準(zhǔn)模型(Baseline),并為它添加實(shí)例分割任務(wù),分別使用ResNet18 和DLA34 作為特征提取的骨干網(wǎng)絡(luò),所有測(cè)試模型均訓(xùn)練40 個(gè)周期,并選擇性能最佳的模型進(jìn)行比較分析。消融實(shí)驗(yàn)添加的模塊如下:Seg為實(shí)例分割任務(wù)模塊;Self 為自注意力模塊;DA 為對(duì)偶注意力模塊;ECA 為有效通道注意力模塊;FFM 為特征融合模塊。
分析表2、3 中前兩行的數(shù)據(jù)可以看出,當(dāng)使用ResNet18作為骨干網(wǎng)絡(luò)時(shí),為網(wǎng)絡(luò)添加實(shí)例分割任務(wù)模塊時(shí),模型的MOTA 指標(biāo)下降了1.1 個(gè)百分點(diǎn),同時(shí)F1 得分下降了0.6 個(gè)百分點(diǎn)。使用DLA34 作為骨干網(wǎng)絡(luò)時(shí),MOTA 指標(biāo)下降了1.1 個(gè)百分點(diǎn),F(xiàn)1 得分下降了0.5 個(gè)百分點(diǎn)。兩種骨干網(wǎng)絡(luò)下的模型性能均低于基準(zhǔn)模型,驗(yàn)證了同時(shí)訓(xùn)練目標(biāo)檢測(cè)、實(shí)例分割和目標(biāo)跟蹤3 個(gè)任務(wù)時(shí)會(huì)產(chǎn)生負(fù)遷移的現(xiàn)象。
表2 骨干網(wǎng)絡(luò)為ResNet18的特征去耦模塊增減對(duì)比實(shí)驗(yàn)結(jié)果Tab.2 Comparative experimental results before and after adding feature decoupling module with ResNet18 as backbone network
為驗(yàn)證本文所提特征去耦模塊和特征融合模塊的有效性,對(duì)模型依次添加這兩種模塊。首先,為整個(gè)網(wǎng)絡(luò)添加特征去耦模塊,結(jié)果如表2 所示。分析表2 中的數(shù)據(jù)可以看出,當(dāng)骨干網(wǎng)絡(luò)為ResNet18 時(shí),為模型分別添加自注意力、DA 和ECA 后,除了自注意力外,另外兩種均對(duì)網(wǎng)絡(luò)的性能有所提升。當(dāng)為網(wǎng)絡(luò)添加DA 后,MOTA 指標(biāo)上升了1.2 個(gè)百分點(diǎn),F(xiàn)1 得分上升了0.6 個(gè)百分點(diǎn),同時(shí)AP50上升了0.8 個(gè)百分點(diǎn),AP75上升了1.8 個(gè)百分點(diǎn)。添加ECA 后,MOTA 指標(biāo)上升了2.7 個(gè)百分點(diǎn),F(xiàn)1 得分上升了1.3 個(gè)百分點(diǎn),同時(shí)AP50上升了1.7 個(gè)百分點(diǎn),AP75也上升了1.7 個(gè)百分點(diǎn),因此,本文構(gòu)建模型時(shí)整體選用ECA 進(jìn)行研究。并且當(dāng)網(wǎng)絡(luò)添加特征去耦模塊后,模型的運(yùn)行速度僅有細(xì)微的下降,但是預(yù)測(cè)精度甚至超過(guò)了基準(zhǔn)模型,同時(shí)還能夠并行處理3 個(gè)任務(wù)。
在此基礎(chǔ)上,為整個(gè)網(wǎng)絡(luò)添加特征融合模塊后,實(shí)驗(yàn)結(jié)果如表3 所示。當(dāng)骨干網(wǎng)絡(luò)為DLA34 時(shí),為網(wǎng)絡(luò)添加ECA 注意力后,MOTA 指標(biāo)上升了1.7 個(gè)百分點(diǎn),F(xiàn)1 得分上升了0.9個(gè)百分點(diǎn),同時(shí)AP50上升了3.1 個(gè)百分點(diǎn),AP75上升了7.2 個(gè)百分點(diǎn)。添加特征融合模塊后,MOTA 指標(biāo)提高了0.1 個(gè)百分點(diǎn),AP75指標(biāo)上升了1.1 個(gè)百分點(diǎn)。說(shuō)明特征融合模塊對(duì)于困難條件下的實(shí)例分割任務(wù)表現(xiàn)良好。由此可見(jiàn),消融實(shí)驗(yàn)驗(yàn)證了本文提出的特征去耦-融合模塊的有效性。
表3 骨干網(wǎng)絡(luò)為DLA34的特征融合模塊增減對(duì)比實(shí)驗(yàn)結(jié)果Tab.3 Comparative experimental results before and after adding feature fusion module with DLA34 as backbone network
為了驗(yàn)證動(dòng)態(tài)加權(quán)平均算法的有效性,本文對(duì)比4種動(dòng)態(tài)權(quán)重訓(xùn)練方法,分別是等權(quán)相加、不確定權(quán)重(Uncertainty Weighting,UW)[34]、投射沖突梯度(Projecting Conflicting Gradients,PCGrad)[35]和動(dòng)態(tài)加權(quán)平均,實(shí)驗(yàn)結(jié)果如表4所示。
表4 多任務(wù)訓(xùn)練方法對(duì)比實(shí)驗(yàn)結(jié)果Tab.4 Comparison experimental results of multi-task training methods
分析表4 中數(shù)據(jù)可得,除了不確定權(quán)重外,投射沖突梯度和動(dòng)態(tài)加權(quán)平均都對(duì)模型的性能有所提升。其中投射沖突梯度對(duì)目標(biāo)檢測(cè)和目標(biāo)跟蹤任務(wù)效果最好,但是在實(shí)例分割任務(wù)上的精度遠(yuǎn)低于動(dòng)態(tài)加權(quán)平均。因此,本文選擇了動(dòng)態(tài)加權(quán)平均對(duì)模型進(jìn)行整體調(diào)優(yōu)。本文模型與基準(zhǔn)模型在KITTI 數(shù)據(jù)集上的對(duì)比視覺(jué)效果如圖7 所示。
圖7 本文模型與基準(zhǔn)模型在KITTI數(shù)據(jù)集上對(duì)比視覺(jué)效果Fig.7 Comparative visual effects of proposed model with baseline model on KITTI dataset
本文提出的一種基于注意力機(jī)制的多任務(wù)去耦-融合模型,能并行運(yùn)行目標(biāo)檢測(cè)、實(shí)例分割和目標(biāo)跟蹤這3 個(gè)任務(wù),有效減少了推理時(shí)間,提高了預(yù)測(cè)精度。本文使用注意力機(jī)制將融合特征去耦,實(shí)現(xiàn)任務(wù)對(duì)特征的差異化選擇;使用特征融合模塊提取任務(wù)間的有效信息,增強(qiáng)彼此的語(yǔ)義表達(dá),使得網(wǎng)絡(luò)能學(xué)習(xí)到含有豐富時(shí)空信息的特征,充分利用了任務(wù)間的相關(guān)性,緩解了3 個(gè)任務(wù)間的負(fù)遷移現(xiàn)象。除此之外,本文運(yùn)用動(dòng)態(tài)加權(quán)平均的方式對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,平衡多任務(wù)間的學(xué)習(xí)速度。實(shí)驗(yàn)結(jié)果表明,在KITTI 數(shù)據(jù)集的對(duì)比評(píng)估下,本文模型在保證推理速度的前提下,目標(biāo)檢測(cè)、實(shí)例分割和目標(biāo)跟蹤這3 個(gè)任務(wù)的預(yù)測(cè)精度均有提升。