程書慧,陳凌珊,楊軍典
(1 上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院,上海 201620;2 德心智能科技(常州)有限公司,江蘇 常州 213002)
隨著無人駕駛領(lǐng)域的發(fā)展,單個(gè)傳感器的感知能力已不能滿足復(fù)雜的交通場景需要,多傳感器融合逐漸成為汽車環(huán)境感知主要方式。目前,毫米波雷達(dá)與相機(jī)是常用的傳感器,也是傳感器融合的重要研究對象[1]。相機(jī)可獲得目標(biāo)的紋理顏色等信息,對目標(biāo)分類有較高的識(shí)別能力,且對橫向位置的檢測有較高的精度。但相機(jī)性能易受工作環(huán)境與光照的影響,對深度信息的獲取能力較差。毫米波雷達(dá)對目標(biāo)縱向位置的檢測有較高的精度,且由于電磁波的特性具有穿透性好、抗干擾能力強(qiáng)等全天候的工作能力。但毫米波雷達(dá)檢測得到稀疏點(diǎn)云,分類能力較差。因此,在工作特性上毫米波雷達(dá)與相機(jī)完成優(yōu)劣互補(bǔ),進(jìn)行多傳感器融合可獲取較為可靠的目標(biāo)屬性值[2-3]。
基于單一的毫米波雷達(dá)目標(biāo)檢測,張暄等[3]基于雷達(dá)回波信號(hào)的距離多普勒圖像作為輸入,進(jìn)行圖像處理完成雷達(dá)的目標(biāo)檢測。與傳統(tǒng)的恒虛警目標(biāo)檢測算法作為對比,較大的減少了虛警的數(shù)量。魏濤等[4]提出一種基于機(jī)器學(xué)習(xí)的毫米波雷達(dá)車輛檢測算法,對毫米波雷達(dá)目標(biāo)級(jí)數(shù)據(jù)預(yù)處理,針對雷達(dá)檢測點(diǎn)的各個(gè)屬性構(gòu)建決策樹模型進(jìn)行車輛有效目標(biāo)的識(shí)別?;诤撩撞ɡ走_(dá)與視覺融合的目標(biāo)檢測,目前多數(shù)采用由毫米波雷達(dá)確定圖像檢測的感興趣區(qū)域(ROI,Region of interest)的方案,從而加快圖像檢測速度與準(zhǔn)確度。趙望宇等[5]基于毫米波雷達(dá)與視覺融合,提出一種核相關(guān)的擴(kuò)展卡爾曼濾波進(jìn)行目標(biāo)的跟蹤。利用毫米波雷達(dá)的輸出確定ROI 后,基于支持向量機(jī)(SVM,Support Vector Machine)進(jìn)行車底陰影圖像檢測,完成目標(biāo)的檢測任務(wù)。文獻(xiàn)[6]研究了一種基于毫米波雷達(dá)與視覺融合的車輛檢測系統(tǒng)。通過判斷雷達(dá)檢測點(diǎn)位置的預(yù)測值,與計(jì)算值匹配生成航跡信息,將毫米波雷達(dá)生成航跡信息與視覺檢測融合,完成目標(biāo)的準(zhǔn)確檢測。
單一的雷達(dá)檢測算法通過對雷達(dá)信號(hào)或數(shù)據(jù)處理完成目標(biāo)的檢測,但不能確定目標(biāo)的類別屬性。融合系統(tǒng)利用毫米波雷達(dá)輔助相機(jī)完成目標(biāo)檢測,但未考慮某一傳感器失效時(shí)的情況,且未較好的融合雷達(dá)與相機(jī)輸出的屬性值。因而,若雷達(dá)失效則系統(tǒng)失去目標(biāo)的精確位置,若相機(jī)失效則檢測系統(tǒng)將失去對目標(biāo)的分類能力,且兩種檢測方法均未輸出目標(biāo)的尺寸信息。針對上述問題,本文提出了一種基于多任務(wù)學(xué)習(xí)的傳感器融合目標(biāo)檢測的模型。模型可輸出目標(biāo)的位置、尺寸信息及預(yù)測物體的類別,提高了傳感器融合后目標(biāo)屬性值的精確度,且融合結(jié)果不受一方傳感器失效時(shí)的影響。
相比于大多數(shù)機(jī)器學(xué)習(xí)模型,多任務(wù)學(xué)習(xí)在性能上更有優(yōu)勢。若要得到性能優(yōu)異的模型,需要數(shù)以百萬計(jì)的數(shù)據(jù),而很多領(lǐng)域獲取數(shù)據(jù)集依賴高成本的人力資源[7]。多任務(wù)學(xué)習(xí)是在同一個(gè)模型中,將具有相關(guān)性的任務(wù)同時(shí)進(jìn)行訓(xùn)練,利用任務(wù)之間相關(guān)性提高模型性能與泛化能力,通過一個(gè)模型解決多個(gè)任務(wù)的機(jī)制,可以解決數(shù)據(jù)樣本集較少的問題[8]。多任務(wù)學(xué)習(xí)模型常用基于參數(shù)的硬共享機(jī)制和軟共享機(jī)制。硬共享機(jī)制是將所有隱藏層共享,對于不同的任務(wù)指定特定的輸出層。而軟共享機(jī)制中每個(gè)任務(wù)都具有單獨(dú)的模型,不同任務(wù)模型間同一層的信息可進(jìn)行交換[9]。硬共享機(jī)制由于在每個(gè)任務(wù)中不存在獨(dú)自的模型參數(shù),適用于強(qiáng)相關(guān)任務(wù)。軟共享機(jī)制由于每個(gè)任務(wù)都有獨(dú)立的模型,則對任務(wù)間的相關(guān)性不做要求,但模型個(gè)數(shù)與任務(wù)數(shù)相關(guān)會(huì)存在大量的參數(shù)[10]。本文模型通過回歸任務(wù)解決目標(biāo)的位置與尺寸問題,分類任務(wù)獲得目標(biāo)的類別。由于物體的位置為目標(biāo)的中心點(diǎn)所在位置,不同類別的物體大小將影響目標(biāo)位置,兩個(gè)任務(wù)具有強(qiáng)相關(guān)性。因此,模型使用多任務(wù)學(xué)習(xí)的硬共享機(jī)制。
本文基于多任務(wù)學(xué)習(xí)進(jìn)行視覺與雷達(dá)的融合,其處理流程如圖1 所示。利用圖像檢測所得目標(biāo)錨點(diǎn)信息與毫米波雷達(dá)所得點(diǎn)云作為輸入,經(jīng)多任務(wù)學(xué)習(xí)網(wǎng)絡(luò)模型訓(xùn)練得到目標(biāo)的尺寸、位置與目標(biāo)類別。為了解決某個(gè)傳感器失效帶來的影響,在數(shù)據(jù)集中加入單個(gè)傳感器檢測失效時(shí)的數(shù)據(jù)進(jìn)行訓(xùn)練。
圖1 本文傳感器融合流程圖Fig.1 Flow chart of sensor fusion in this article
本文使用上海外高橋張楊北路實(shí)車采集的數(shù)據(jù),對不同場景下的檢測數(shù)據(jù)進(jìn)行篩選,得到15 萬條數(shù)據(jù)樣本。將數(shù)據(jù)集按8∶1∶1 的比例劃分為訓(xùn)練集、驗(yàn)證集與測試集。模型輸入10 個(gè)特征值數(shù)據(jù),預(yù)測任務(wù)輸出4 維數(shù)據(jù),分類任務(wù)對6 種類別進(jìn)行分類。輸入特征為視覺檢測框坐標(biāo),4 個(gè)參數(shù)分別為:檢測框的左頂點(diǎn)橫縱坐標(biāo)、框的高度和寬度;雷達(dá)檢測點(diǎn)屬性的6 個(gè)特征值分別為:檢測點(diǎn)距離、橫向距離x、橫向速度vx、縱向速度vy、雷達(dá)散射截面積及雷達(dá)檢測點(diǎn)的個(gè)數(shù)。其中,雷達(dá)散射截面積表示目標(biāo)在接收方向上反射雷達(dá)信號(hào)能力的度量,其與距離有關(guān)且物體的面積越大RCS值越大,則雷達(dá)檢測點(diǎn)個(gè)數(shù)越多,對該目標(biāo)的識(shí)別能力越強(qiáng)。兩種傳感器檢測結(jié)果如圖2 所示。圖2(a)表示相機(jī)的檢測結(jié)果,黃色框?yàn)槔走_(dá)檢測目標(biāo)的映射,其余錨點(diǎn)框?yàn)閳D像檢測所得物體;圖2(b)為雷達(dá)檢測點(diǎn)部分屬性信息;圖2(c)中橫坐標(biāo)為x軸,縱坐標(biāo)為y軸,單位米,白色方框?yàn)殪o態(tài)雷達(dá)檢測點(diǎn),彩色框?yàn)閯?dòng)態(tài)監(jiān)測點(diǎn),其中實(shí)體框表示雷達(dá)處理后得到得目標(biāo)。由于在復(fù)雜的道路場景中,主車分析場景中目標(biāo)的類別及其運(yùn)動(dòng)狀態(tài)、尺寸和距離信息來判斷是否對自身造成危險(xiǎn),則本文對目標(biāo)位置尺寸信息進(jìn)行預(yù)測且對目標(biāo)進(jìn)行分類?;貧w任務(wù)包括目標(biāo)的位置及目標(biāo)的長度與寬度,分類任務(wù)輸出包括對轎車、火車、摩托車、自行車、行人及未分類的汽車6 個(gè)類別進(jìn)行分類。
圖2 傳感器檢測得到數(shù)據(jù)Fig.2 The sensor detection
輸入的各特征間量綱不同,且數(shù)值差異較大,會(huì)影響模型的收斂速度,且對數(shù)值較大的特征較為依賴,而忽略數(shù)值較小的特征,造成模型的精度下降。對輸入特征數(shù)據(jù)進(jìn)行線性歸一化,將數(shù)值在0 和1之間,減少特征間的相互影響,使模型均衡的學(xué)習(xí)各個(gè)特征。
模型分為共享層、分類任務(wù)與回歸任務(wù)3 部分,如圖3 所示。3 層隱藏層作為共享層,每層的神經(jīng)元節(jié)點(diǎn)分別為10、256、128、256、64;分類任務(wù)3 層全連接層,神經(jīng)元節(jié)點(diǎn)數(shù)分別為64、256、128、6;預(yù)測任務(wù)3 層全連接層,每層神經(jīng)元節(jié)點(diǎn)數(shù)為64、256、64、4。歸一化指數(shù)(Softmax)函數(shù)常用于解決分類問題,如公式(1)所示。帶泄露隨機(jī)線性整流(LeakyReLU)函數(shù)可以避免梯度飽和與消失和神經(jīng)元死亡的問題,如公式(2)所示,由經(jīng)驗(yàn)值得知公式(2)中α取0.01。本文模型中,分類任務(wù)最后一層結(jié)點(diǎn)激活函數(shù)使用Softmax函數(shù),其余激活函數(shù)均使用LeakyReLU函數(shù)。
圖3 多任務(wù)學(xué)習(xí)模型結(jié)構(gòu)圖Fig.3 Structure diagram of multi-task learning model
式中,xi為輸出值中第i個(gè)元素,e為自然對數(shù)。
式中,x為激活函數(shù)輸入值,α一般取0.01。
為了避免全連接層過多將造成梯度飽和或消失問題,對分類和預(yù)測任務(wù)每一層都加入批量歸一化(Batch Normalization,BN)處理和殘差結(jié)構(gòu)。利用BN 將某一層的輸入分布變?yōu)榫禐? 方差為1 的正態(tài)分布,使各輸入分布保持一致,避免梯度飽和或消失問題,經(jīng)過縮放平移還原數(shù)據(jù)自身的表達(dá)能力,使輸入保持同一分布的同時(shí),不喪失網(wǎng)絡(luò)的表達(dá)能力,避免輸入間的分布差異造成梯度問題。殘差結(jié)構(gòu)(residual)將不同層學(xué)習(xí)到的信息組合,讓模型學(xué)習(xí)到更多的特征信息,避免全連接層過多帶來的梯度問題同時(shí)加快了模型的收斂速度與穩(wěn)定性。殘差結(jié)構(gòu)如圖4 所示。
圖4 殘差結(jié)構(gòu)圖Fig.4 Residual structure diagram
分類任務(wù)使用交叉熵?fù)p失函數(shù)(Cross Entropy Loss,CEL)如公式(3)所示。預(yù)測任務(wù)使用均方誤差損失函數(shù)(MSE,Mean Squared Error)如公式(4)所示。
式中,c為類別;i為樣本數(shù)量;yic表示預(yù)測是否與真值相同(相同為1 不同為0);pic表示類別c的預(yù)測概率。
式中,xi表示預(yù)測值;yi表示真值;N表示樣本數(shù)量。
對任務(wù)模型需考慮任務(wù)間收斂速度,使每個(gè)任務(wù)都能收斂至最優(yōu)。若對分類與回歸任務(wù)采用相同的學(xué)習(xí)率,會(huì)使訓(xùn)練過程中兩個(gè)任務(wù)模型后向傳播的更新速度不同,造成其中一個(gè)任務(wù)收斂很快,另外一個(gè)任務(wù)收斂很慢的情況。對模型損失函數(shù)增加超參數(shù)α與β,模型后向傳播時(shí),對學(xué)習(xí)率增加權(quán)值,使兩個(gè)任務(wù)具有不同的學(xué)習(xí)率,從而達(dá)到較為接近的收斂速度。
本文算法在Windows10 64 位操作系統(tǒng)上實(shí)現(xiàn),使用設(shè)備為Intel(R)Core(TM)i7-10700CPU、16GB內(nèi)存、顯卡為NVIDIA GeForce RTX2060、PyCharm2020 社區(qū)版、PyTorch 深度學(xué)習(xí)網(wǎng)絡(luò)框架。
模型的參數(shù)設(shè)置為:初始學(xué)習(xí)率為0.001、批大小為256、循環(huán)次數(shù)為500。通過多次實(shí)驗(yàn),對分類任務(wù)的損失設(shè)定權(quán)重0.8,對回歸任務(wù)的損失設(shè)置權(quán)重10。使用自適應(yīng)矩估計(jì)(Adam)優(yōu)化器,該優(yōu)化器具有自動(dòng)調(diào)節(jié)學(xué)習(xí)率,加快模型訓(xùn)練過程,減少模型參數(shù)調(diào)整等優(yōu)點(diǎn)。
若對損失函數(shù)不做處理,即任務(wù)間使用相同的學(xué)習(xí)率時(shí),模型中分類任務(wù)較回歸任務(wù)收斂快。對各個(gè)任務(wù)損失函數(shù)加權(quán)重,使任務(wù)具有不同的學(xué)習(xí)率?;貧w任務(wù)中相同與不同學(xué)習(xí)率的損失收斂對比如圖5(a)所示。由圖可見,模型分類任務(wù)使用不同學(xué)習(xí)率的收斂速度更快。
模型分類任務(wù)中使用BN與殘差結(jié)構(gòu)與不做處理訓(xùn)練得到的準(zhǔn)確率對比結(jié)果如圖5(b)所示,使用殘差結(jié)構(gòu)與BN 的模型得到的分類任務(wù)的準(zhǔn)確度與模型穩(wěn)定性較好。
圖5 處理前后模型對比Fig.5 Comparison of models before and after processing
回歸任務(wù)使用均方根誤差作為評(píng)價(jià)指標(biāo),如公式(5)所示;分類任務(wù)使用準(zhǔn)確率(Accuracy)與召回率(Recall)作為各個(gè)類別的評(píng)價(jià)指標(biāo),如公式(6)和公式(7)所示。對測試集數(shù)據(jù)樣本測試,得到回歸任務(wù)的各屬性均方根誤差值,見表1。傳感器融合后對于目標(biāo)的長度預(yù)測效果更好。分類任務(wù)的整體準(zhǔn)確率為94.62%,召回率為92.27%,各類別的準(zhǔn)確率(Accuracy)與召回率(Recall)見表2。對于汽車、火車、行人預(yù)測較好,對于機(jī)動(dòng)性較強(qiáng)的小目標(biāo)物體分類能力有進(jìn)步空間。
表1 回歸任務(wù)的評(píng)價(jià)指標(biāo)Tab.1 Evaluation metrics of regression task
表2 分類任務(wù)的評(píng)價(jià)指標(biāo)Tab.2 Evaluation metrics for classification tasks
式中,N為樣本數(shù)量;xi表示預(yù)測值;yi表示真值。
式中,TPc表示c類的預(yù)測值與真實(shí)值匹配數(shù)量;表示樣本中實(shí)際為c類的樣本數(shù)量;表示預(yù)測為c的數(shù)量。
本文提出了一種基于多任務(wù)學(xué)習(xí)的多傳感器模型,對相機(jī)與毫米波雷達(dá)數(shù)據(jù)的目標(biāo)級(jí)融合,同時(shí)提高單個(gè)傳感器工作時(shí)的可靠性。利用兩任務(wù)間強(qiáng)相關(guān)性,通過竊聽機(jī)制得到單任務(wù)模型訓(xùn)練所不能得到的信息;引入BN 和殘差結(jié)構(gòu)進(jìn)一步優(yōu)化模型,完成目標(biāo)的分類與目標(biāo)尺寸的預(yù)測。通過改善模型的結(jié)構(gòu)與雷達(dá)檢測系統(tǒng),對小目標(biāo)的檢測效果還有進(jìn)步空間。