張睿杰
(重慶交通大學(xué)機(jī)電與車輛工程學(xué)院,重慶 400074)
深度傳感在許多任務(wù)中有著非常重要的作用,如定位[1]、3D傳感[2]和自動駕駛[3]。激光雷達(dá)設(shè)備可以通過激光傳感器測量物體與設(shè)備之間的距離,因此常常被集成到自主機(jī)器人和車輛中,以提供深度信息。然而,由于現(xiàn)有的激光雷達(dá)只能提供有限的水平掃描線,并且測量距離通常不會太遠(yuǎn),激光雷達(dá)提供的深度圖無法為機(jī)器人提供足夠的深度信息來確定與其他物體的距離。而且增加激光雷達(dá)掃描密度的成本過高。因此,從稀疏激光雷達(dá)掃描深度圖中估算深度具有重要意義?,F(xiàn)有技術(shù)通常采用深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)生成預(yù)測深度圖。
深度補(bǔ)全模型[4]的性能主要取決于激光雷達(dá)的密度和精度。隨著掃描密度的增加,雷達(dá)的成本將大大增加。目前,一臺16 線Velodyne激光雷達(dá)的成本約為6000 美元,一臺64 線Velodyne 激光雷達(dá)的成本約為8000 美元。對于自動駕駛來說,激光雷達(dá)對于探測車輛周圍物體的距離至關(guān)重要,探測的準(zhǔn)確性將影響車輛的行駛安全。如果車輛配備更精確、掃描更密集的激光雷達(dá),無疑會大大增加成本。
同時,用于深度補(bǔ)全訓(xùn)練的準(zhǔn)確值很難得到。KITTI數(shù)據(jù)集中的準(zhǔn)確值是用64線Velodyne激光雷達(dá)對單個場景進(jìn)行多次掃描的結(jié)果結(jié)合起來得到的,測量過程十分耗時。然而,使用在現(xiàn)有數(shù)據(jù)集上訓(xùn)練過的模型用于在稀疏激光雷達(dá)上進(jìn)行深度補(bǔ)全,結(jié)果的精度往往不理想。
因此,研究如何利用已有的數(shù)據(jù)集來訓(xùn)練稀疏激光雷達(dá)掃描輸入,并得到精確結(jié)果的深度補(bǔ)全模型具有現(xiàn)實意義。本文提出了一種無監(jiān)督域自適應(yīng)方法來解決這種問題。該方法可以提高密集激光雷達(dá)掃描訓(xùn)練的模型在稀疏激光雷達(dá)數(shù)據(jù)上的性能。
在本節(jié)中,首先構(gòu)造一個疏密深度補(bǔ)全網(wǎng)絡(luò)。參考疏密結(jié)構(gòu)(sparse-to-dense structure),在網(wǎng)絡(luò)中實現(xiàn)編碼層和解碼層。疏密網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 基于深度補(bǔ)全的疏密深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
為了便于后續(xù)實驗,首先構(gòu)建一個簡化的疏密網(wǎng)絡(luò)。激光雷達(dá)掃描輸出的是灰度圖像,灰度值表示深度值。KITTI數(shù)據(jù)集中深度圖的大小不統(tǒng)一,因此輸入首先被裁剪成統(tǒng)一的大小,然后被送入網(wǎng)絡(luò)中。裁剪后的訓(xùn)練數(shù)據(jù)將被轉(zhuǎn)換成一維特征圖,然后送到編碼層。編碼層用于從激光雷達(dá)掃描輸入中提取特征。編碼層使用預(yù)訓(xùn)練ResNet 的卷積層[5]。在保證反向傳播過程的同時,ResNet 在提取深度特征方面表現(xiàn)良好。實驗中使用的是預(yù)訓(xùn)練過的ResNet-18 網(wǎng)絡(luò)的卷積層。
編碼層由4 個卷積層(Conv)組成,每個卷積層包含最大池化層(MaxPool)和歸一化層(Batch Normalization)。編碼層生成的深度特征圖將被送到解碼層。解碼層包含4 個上采樣層,上采樣層由上投影(Up-Projection)模塊實現(xiàn)。上投影模塊的結(jié)構(gòu)如圖2所示。
圖2 上投影模塊結(jié)構(gòu)圖
與傳統(tǒng)的上卷積相比,上投影模塊增加了一個短連接,類似于ResNet 中的res-block。通過這種結(jié)構(gòu),可以更好地傳播特征[6]。實驗表明,在深度補(bǔ)全任務(wù)中,該結(jié)構(gòu)比傳統(tǒng)的特征傳播方法具有更好的效果。
同時,為了實現(xiàn)無監(jiān)督域自適應(yīng)算法,在上采樣層之后增加一個掩碼卷積層。在輸入網(wǎng)絡(luò)之前不對輸出進(jìn)行采樣處理,以生成與輸入大小相同的預(yù)測深度圖。
無監(jiān)督域自適應(yīng)(unsupervised domain adaptation,UDA)是一種能夠使在帶標(biāo)簽的源域數(shù)據(jù)上訓(xùn)練的模型在不帶標(biāo)簽的目標(biāo)域數(shù)據(jù)上表現(xiàn)良好的方法。源域和目標(biāo)域兩個數(shù)據(jù)集的數(shù)據(jù)存在偏差。每個領(lǐng)域都有一些本領(lǐng)域獨有的特征,這可能對其他領(lǐng)域上有用數(shù)據(jù)產(chǎn)生干擾。UDA 的目標(biāo)是在不同領(lǐng)域的數(shù)據(jù)之間找到“共同特征”進(jìn)行學(xué)習(xí)。
為了應(yīng)用UDA 算法,本文在疏密網(wǎng)絡(luò)的基礎(chǔ)上構(gòu)造一個網(wǎng)絡(luò),使模型能夠適應(yīng)稀疏激光雷達(dá)的掃描輸入。該網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 基于無監(jiān)督域自適應(yīng)的適應(yīng)疏密輸入的網(wǎng)絡(luò)結(jié)構(gòu)圖
其中,共享網(wǎng)絡(luò)是疏密網(wǎng)絡(luò)結(jié)構(gòu),由稀疏的和密集的激光雷達(dá)掃描輸入共享。共享網(wǎng)絡(luò)輸出的特征圖用來計算兩個域之間的差異,表現(xiàn)為自適應(yīng)損失。為了在減少差異的同時提高預(yù)測精度,對密集輸入經(jīng)過共享網(wǎng)絡(luò)的輸出進(jìn)行卷積和上采樣操作。最終的輸出與對應(yīng)的真實值進(jìn)行比較,并計算缺失的均方差損失(mean squared error loss)。
首先,考慮將最大均值差異(maximum mean discrepancy,MMD)距離應(yīng)用于無監(jiān)督域自適應(yīng)的深度補(bǔ)全算法[7]。本文構(gòu)建了一個具有5核的多核最大均值差異(multiple kernel maximum mean discrepancy,MK-MMD)來表示自適應(yīng)損失,MK-MMD 由多個單一的MMD 組成,MK-MMD計算如式(1)所示。本文使用MK-MMD對每個維度的特征進(jìn)行自適應(yīng),并將所有維度的結(jié)果相加作為自適應(yīng)損失。
用于深度補(bǔ)全的特征圖比較大,在計算MMD 距離時對GPU 內(nèi)存的要求比較高。與MMD 相比,計算CORAL 距離的特征二階統(tǒng)計量需要的資源更少。因此,本文選用特征的二階統(tǒng)計量來最小化兩個域之間的距離。源特征圖的二階統(tǒng)計量與目標(biāo)特征圖的二階統(tǒng)計量之間的距離如式(2)所示。
其中,d為特征矩陣的列數(shù),為平方矩陣的Frobenius 范數(shù),矩陣的Frobenius 范數(shù)被定義為矩陣中各元素絕對值的平方和,C為基于協(xié)方差矩陣的源特征和目標(biāo)特征的非線性變換,表達(dá)式如式(3)所示。
其中:D為源數(shù)據(jù)和目標(biāo)數(shù)據(jù)的特征矩陣。
本文使用KITTI基準(zhǔn)數(shù)據(jù)集進(jìn)行網(wǎng)絡(luò)訓(xùn)練和驗證。原始數(shù)據(jù)集從KITTI網(wǎng)站下載。對原始數(shù)據(jù)按4∶1 比例采樣得到稀疏激光雷達(dá)掃描深度圖,原始數(shù)據(jù)集和稀疏數(shù)據(jù)集以相同的結(jié)構(gòu)構(gòu)造,而稀疏數(shù)據(jù)集中的真實值僅用于驗證集。數(shù)據(jù)集分為三部分,包括訓(xùn)練集、驗證集和測試集。網(wǎng)絡(luò)通過訓(xùn)練集進(jìn)行訓(xùn)練;驗證集在每個訓(xùn)練集之后使用以避免過擬合;測試集對訓(xùn)練后的模型性能進(jìn)行測試。該訓(xùn)練集包含超過80000 組激光雷達(dá)掃描數(shù)據(jù)。驗證集包含超過4000組數(shù)據(jù),測試集包含1000組數(shù)據(jù)。
本文將采用均方誤差(mean squared error,MSE)、平均絕對誤差(mean absolute error,MAE)、逆深度均方根誤差(root mean squared error of the inverse depth,iRMSE)和逆深度平均絕對誤差(mean absolute error of the inverse depth,iMAE)作為評價指標(biāo),計算分別如式(4)~(7)所示。
為了評估在訓(xùn)練過程中使用UDA 算法是否可以提高模型性能,我們比較了在原始密集數(shù)據(jù)上訓(xùn)練的模型和基于UDA 算法的訓(xùn)練模型的性能。模型的預(yù)測結(jié)果對比見表1。原始模型和基于MMD 和基于CORAL 方法的網(wǎng)絡(luò)預(yù)測深度圖如圖4和圖5所示。
表1 基于UDA方法的網(wǎng)絡(luò)對于稀疏激光雷達(dá)掃描圖的預(yù)測性能
圖4 原始模型與基于MMD的模型預(yù)測結(jié)果對比
圖5 原始模型與基于CORAL的模型預(yù)測結(jié)果對比
可以看出,基于MMD 方法訓(xùn)練的網(wǎng)絡(luò)的MSE 略好于基于CORAL 方法訓(xùn)練的網(wǎng)絡(luò),而其他三個指標(biāo)相對較差;兩種方法的預(yù)測結(jié)果的RMSE相對原始模型有所減小,這說明預(yù)測結(jié)果更加準(zhǔn)確;對于基于MMD 的方法,其他三項指標(biāo)相較原始模型表現(xiàn)更差。此外,從彩色的預(yù)測深度圖中可以發(fā)現(xiàn),基于CORAL 方法訓(xùn)練的網(wǎng)絡(luò)預(yù)測出的深度圖上的目標(biāo)輪廓更加清晰,物體的輪廓更平滑,更容易區(qū)分;而對于未經(jīng)UDA 訓(xùn)練的模型,雖然可以在預(yù)測結(jié)果中區(qū)分出目標(biāo)位置,但目標(biāo)輪廓存在一定程度的失真。
UDA 損失應(yīng)用于疏密網(wǎng)絡(luò)的深層結(jié)構(gòu)中,能夠使域差異達(dá)到最小化。因此,當(dāng)輸入稀疏激光雷達(dá)掃描圖時,自適應(yīng)后的網(wǎng)絡(luò)可以生成與密集輸入相對應(yīng)的輸出接近的預(yù)測結(jié)果。
針對密集掃描激光雷達(dá)設(shè)備成本高、現(xiàn)有數(shù)據(jù)集訓(xùn)練的補(bǔ)全網(wǎng)絡(luò)在稀疏激光雷達(dá)掃描輸入表現(xiàn)不佳的問題,本文提出了一種網(wǎng)絡(luò)適應(yīng)稀疏輸入的方法。該方法基于無監(jiān)督域自適應(yīng)算法,只需要稀疏的激光雷達(dá)掃描數(shù)據(jù),以及現(xiàn)有數(shù)據(jù)集中提供的原始密集輸入數(shù)據(jù),從而減少了獲取稀疏掃描數(shù)據(jù)集的成本。
無監(jiān)督域自適應(yīng)算法是使用特定的算法來量化來自不同領(lǐng)域的兩個特征之間的差異。差異可以表示為不同域之間的距離,并通過損失函數(shù)計算,期望在訓(xùn)練過程中將其最小化。深度補(bǔ)全算法能夠從激光雷達(dá)掃描圖中得到預(yù)測的深度圖。實驗對比結(jié)果表明,該方法能在一定程度上提高模型預(yù)測的精度,基于無監(jiān)督域自適應(yīng)算法的方法預(yù)測的深度圖可以顯示更清晰、更平滑的目標(biāo)輪廓。