周潤(rùn)民, 王曉紅, 王 輝, 蘇 靖, 劉 璐
(1 貴州大學(xué) 礦業(yè)學(xué)院, 貴陽(yáng) 550025; 2 貴州大學(xué) 林學(xué)院,貴陽(yáng) 550025)
場(chǎng)景深度感知是重建周圍環(huán)境的關(guān)鍵環(huán)節(jié),包含了目標(biāo)的三維結(jié)構(gòu)信息,對(duì)于室內(nèi)三維測(cè)圖、無(wú)人機(jī)避障和自動(dòng)駕駛等研究領(lǐng)域都具有重要的意義[1]。
目前深度信息的獲取可以分為主動(dòng)式和被動(dòng)式。 主動(dòng)式獲取方式有激光雷達(dá)、RGB-D 相機(jī)和3D 結(jié)構(gòu)光等,均是通過(guò)反射物體表面來(lái)獲取深度信息,但通常設(shè)備價(jià)格昂貴、體積重及功耗高;被動(dòng)式獲取是基于圖像序列,利用相機(jī)捕獲同一場(chǎng)景下單攝或者多攝目標(biāo)的影像,通過(guò)三角測(cè)量方式獲取深度信息,拍攝時(shí)要求時(shí)間同步,通常拍攝設(shè)備體積較大,不適用于微型機(jī)器人平臺(tái)(例如微型航空和地面自動(dòng)駕駛),因此研究成本低、體積小和能源效率高的單目相機(jī)進(jìn)行場(chǎng)景深度感知具有重要的現(xiàn)實(shí)意義。 當(dāng)前采用的編碼端模型臃腫、參數(shù)量大,如何得到輕量化且精準(zhǔn)的圖像深度估計(jì)模型成為了關(guān)鍵性挑戰(zhàn)。
傳統(tǒng)單目深度估計(jì)依靠手工提取特征,輸出的深度圖像比較模糊,而且場(chǎng)景中物體細(xì)節(jié)部分信息丟失,導(dǎo)致估計(jì)的圖像深度信息不理想。 隨著深度學(xué)習(xí)的發(fā)展,極大的促進(jìn)了深度估計(jì)領(lǐng)域的發(fā)展。對(duì)于高精度的深度估計(jì)任務(wù),文獻(xiàn)[2]提出將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)用于預(yù)測(cè)單目圖像深度估計(jì),設(shè)計(jì)了一個(gè)由粗到細(xì)的兩個(gè)堆棧組成的卷積神經(jīng)網(wǎng)絡(luò),粗尺度網(wǎng)絡(luò)預(yù)測(cè)圖像的全局深度,細(xì)尺度網(wǎng)絡(luò)提取局部深度并優(yōu)化圖像的 局 部 細(xì) 節(jié); 文 獻(xiàn)[3]將 連 續(xù) 條 件 隨 機(jī) 場(chǎng)(Conditional Random Field, CRF)和深度卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,構(gòu)建深度卷積神經(jīng)場(chǎng)模型來(lái)提升深度估計(jì)效果;文獻(xiàn)[4]同樣采用雙尺度網(wǎng)絡(luò)模型進(jìn)行深度估計(jì),同時(shí)引入了感知損失使預(yù)測(cè)深度進(jìn)一步提高;文獻(xiàn)[5]構(gòu)建了一種基于殘差學(xué)習(xí)的全卷積網(wǎng)絡(luò)架構(gòu)用于預(yù)測(cè)圖像的深度估計(jì),該模型編碼器采用ResNet50 模型結(jié)構(gòu),該結(jié)構(gòu)層次更深同時(shí)能夠提取更加豐富的特征信息,但是更深的網(wǎng)絡(luò)導(dǎo)致模型臃腫、參數(shù)量增加、計(jì)算復(fù)雜度高;文獻(xiàn)[6]構(gòu)建了一種輕量金字塔解碼結(jié)構(gòu)的單目深度估計(jì)模型,編碼器使用ResNet50 用于特征提取,解碼器將輕量金字塔解碼模塊提取到的不同感受野特征圖進(jìn)行融合,并采用跳躍連接實(shí)現(xiàn)知識(shí)共享,以提升深度估計(jì)的性能。
近年來(lái)深度學(xué)習(xí)不斷發(fā)展,網(wǎng)絡(luò)模型結(jié)構(gòu)的輕量化、高效越來(lái)越重要。 文獻(xiàn)[7]通過(guò)深度可分離卷積代替標(biāo)準(zhǔn)卷積,提出了一種輕量化的網(wǎng)絡(luò)模型MobileNet,網(wǎng)絡(luò)的運(yùn)行速度有很大的提升,但該網(wǎng)絡(luò)模型結(jié)構(gòu)簡(jiǎn)單,沒有復(fù)用圖像特征進(jìn)行特征融合,隨后提出了更加高效的網(wǎng)絡(luò)模型;文獻(xiàn)[8]構(gòu)建了一種以MoblieNet 為基礎(chǔ),適合在嵌入式系統(tǒng)上使用的模型,該模型的推理速度得到了進(jìn)一步提升,但是由于解碼器采用的是傳統(tǒng)U-Net 結(jié)構(gòu)上采樣,導(dǎo)致預(yù)測(cè)深度圖目標(biāo)輪廓模糊、邊緣細(xì)節(jié)不夠銳利;文獻(xiàn)[9]提出了一種可以進(jìn)行量化的單目深度估計(jì)模型,并完成對(duì)該模型的量化壓縮工作,該模型實(shí)現(xiàn)了網(wǎng)絡(luò)模型的輕量化,但是以犧牲深度估計(jì)的準(zhǔn)確性為代價(jià)的。
本文構(gòu)建一種基于輕量化融合損失網(wǎng)絡(luò)的模型結(jié)構(gòu),對(duì)預(yù)測(cè)結(jié)果在多個(gè)網(wǎng)絡(luò)上進(jìn)行特征約束。 模型在編碼階段提取全局特征,解碼階段通過(guò)特征融合整合全局和局部特征信息,使得預(yù)測(cè)的深度圖具有很好的深度連續(xù)性,最后預(yù)測(cè)的深度圖通過(guò)損失網(wǎng)絡(luò)更好地懲罰預(yù)測(cè)信息和目標(biāo)信息,進(jìn)一步提高深度估計(jì)精度。
基于輕量化融合損失網(wǎng)絡(luò)的模型結(jié)構(gòu)如圖1 所示。 在整體模型框架中,編碼器階段是圖像特征的提取階段,低維特征分辨率較高,包含豐富的特征信息,而高維特征分辨率較低,提取到的圖像特征更加抽象;解碼器階段是提取特征的恢復(fù)階段,將編碼器提取的高維特征與跨層共享的低維特征進(jìn)行特征融合,生成清晰準(zhǔn)確的特征預(yù)測(cè)圖;最后,預(yù)測(cè)深度傳遞到ResNet50 損失網(wǎng)絡(luò)進(jìn)行融合感知。
圖1 基于輕量化融合損失網(wǎng)絡(luò)的模型結(jié)構(gòu)Fig.1 Model structure based on lightweight fusion loss network
在樣本數(shù)據(jù)較少的情況下,為獲得更高的準(zhǔn)確率,通常會(huì)擴(kuò)展深度學(xué)習(xí)模型的深度、寬度以及分辨率。 常規(guī)卷積神經(jīng)網(wǎng)絡(luò)盡管可以任意調(diào)整其中的幾個(gè)維度,但是都需要手動(dòng)調(diào)節(jié)參數(shù),且很可能伴隨著模型性能和效率的下降。 EfficientNet 是一種結(jié)合神經(jīng)網(wǎng)絡(luò)搜索技術(shù)的多維度混合放縮模型,在EfficientNet-B0 的基線上調(diào)整深度、寬度以及分辨率縮放獲得[10]。 式(1):
其中,α、β、γ為常數(shù),是模型深度、寬度和分辨率的網(wǎng)絡(luò)搜索技術(shù)參數(shù),縮放系數(shù)θ是模型的擴(kuò)張量。
目前深度估計(jì)任務(wù)編碼器大部分采用ResNet 作為特征提取器,通過(guò)不斷加深網(wǎng)絡(luò)的深度以獲取更高的精度。 但隨著網(wǎng)絡(luò)的加深,模型變得十分龐大,計(jì)算效率低。 因此,從實(shí)際應(yīng)用的角度,綜合考慮參數(shù)尺寸及模型復(fù)雜度,本文選擇EfficientNet-B2 模型并運(yùn)用遷移學(xué)習(xí)加載預(yù)訓(xùn)練模型,提高深度預(yù)測(cè)性能的同時(shí)加速網(wǎng)絡(luò)收斂,防止梯度彌散和梯度爆炸等問(wèn)題。
解碼器通過(guò)編碼器輸出的特征圖進(jìn)行上采樣,并在空間維度上恢復(fù)特征映射,生成與輸入尺寸相同的深度圖。 傳統(tǒng)的解碼器采用卷積與插值的UNet 結(jié)構(gòu)恢復(fù)深度圖,本文使用一種全新的解碼器結(jié)構(gòu)SU-Net(Selective Feature Fusion-based UNet),主要包含選擇特征融合模塊(Selective Feature Fusion,SFF),相鄰SFF 模塊之間通過(guò)跳躍連接和雙線性插值上采樣恢復(fù)到對(duì)應(yīng)尺度,其中1x1 卷積層使輸入值的通道維度減少,與編碼器對(duì)應(yīng)的跳躍連接輸出值在通道維度上相等,然后經(jīng)過(guò)兩個(gè)卷積層和一個(gè)Sigmoid 函數(shù)得到預(yù)測(cè)深度圖[11]。
SFF 模塊類似于空間注意力模塊如圖2 所示,將淺層局部特征、深層全局特征分別表示為f1∈RW×H×C1、f2∈RW×H×C2,空間位置集合R ={(x,y)|x =1,2,…,W;y =1,2,…,H},(x,y) 為空間特征的坐標(biāo)信息。 為了獲取空間特征的注意力圖,將局部特征和全局特征在通道維度上進(jìn)行特征拼接,將拼接特征通過(guò)三層3x3 卷積操作得到雙通道空間注意力圖,通過(guò)Sigmoid 函數(shù)運(yùn)算將其映射至[0,1],然后將局部特征和全局特征分別與空間注意力通道矩陣相乘,得到專注于空間關(guān)系的有效特征,最后使兩種特征矩陣相加。 SFF 模塊生成的雙通道特征注意力圖能夠自適應(yīng)地選擇和融合特征值,使網(wǎng)絡(luò)從局部和全局信息出發(fā),選擇對(duì)網(wǎng)絡(luò)性能好的空間特征權(quán)重,抑制無(wú)效權(quán)重。 雙通道空間注意力特征和選擇特征融合模塊計(jì)算如式(2)和式(3)所示:
圖2 選擇特征融合模塊Fig.2 Feature selection and fusion module
其中,σ表示Sigmoid 激活函數(shù);Conv為卷積層運(yùn)算;MS(F) 表示雙通道注意力特征。
損失函數(shù)是神經(jīng)網(wǎng)絡(luò)優(yōu)化中至關(guān)重要的一部分。 選擇合適的損失網(wǎng)絡(luò)不僅可以加快網(wǎng)絡(luò)收斂,同時(shí)能夠保證模型尋找到全局最優(yōu)解,衡量模型預(yù)測(cè)能力,L1、L2 函數(shù)是目前應(yīng)用比較廣泛的損失函數(shù)。 本文根據(jù)單目深度估計(jì)以往研究方法,采用尺度不變對(duì)數(shù)誤差損失函數(shù)和基于本文構(gòu)建的殘差感知損失函數(shù)聯(lián)合相加得到聯(lián)合損失函數(shù)。 聯(lián)合損失函數(shù)的表達(dá)式(4):
其中,Ltotal表示聯(lián)合損失函數(shù);L為尺度不變對(duì)數(shù)誤差損失函數(shù);Lp為殘差感知損失函數(shù);w∈[0,1] 為殘差感知損失函數(shù)的平衡因子,試驗(yàn)中設(shè)置為0.5。
在模型訓(xùn)練期間,目標(biāo)深度圖中的物體邊緣、弱紋理區(qū)域和鏡面反射等周圍會(huì)出現(xiàn)丟值現(xiàn)象。 本文利用簡(jiǎn)單的掩膜方法來(lái)處理這些缺失值,即通過(guò)目標(biāo)深度圖獲取一個(gè)掩膜矩陣,重新計(jì)算預(yù)測(cè)與真值深度圖的像素值,使模型在有效點(diǎn)上計(jì)算損失,排除無(wú)效點(diǎn)的影響。 損失函數(shù)表達(dá)式(5):
式中:λ∈ [0,1] 為尺度因子,di =log10Y -log10,Y、分別為模型預(yù)測(cè)深度圖與真實(shí)深度圖的集合,,試驗(yàn)設(shè)置λ =0.5。
目前有監(jiān)督的深度估計(jì)任務(wù)核心是對(duì)預(yù)測(cè)深度圖與真實(shí)深度圖進(jìn)行差異評(píng)估,傳統(tǒng)的解決方法是建立逐像素?fù)p失函數(shù),這種方式簡(jiǎn)單高效。 最近也有部分研究將感知損失用于遙感影像去噪、醫(yī)學(xué)影像去噪和單目深度估計(jì),以上均是采用預(yù)訓(xùn)練的VGG(Visual Geomtry Group)網(wǎng)絡(luò),對(duì)輸入圖像提取高維度特征,隨后使用優(yōu)化的感知損失函數(shù)評(píng)估特征之間的差異[12-13]。 采用VGG 網(wǎng)絡(luò)模型預(yù)測(cè)圖像,預(yù)測(cè)結(jié)果圖質(zhì)量好,物體邊緣銳利,但是訓(xùn)練優(yōu)化模型時(shí)開銷時(shí)間較大。 本文綜合以上的優(yōu)點(diǎn),構(gòu)建一種具有殘差的感知損失函數(shù),ResNet50 相對(duì)于其他網(wǎng)絡(luò)具有更深的網(wǎng)絡(luò)層數(shù)和更抽象的高層特征。 當(dāng)預(yù)測(cè)深度φ(Y) 的特征偏離目標(biāo)深度φ(Y^)時(shí),感知損失會(huì)懲罰預(yù)測(cè)深度(Y) 的特征,懲罰邊緣、紋理和輪廓等差異。 殘差感知損失網(wǎng)絡(luò)結(jié)構(gòu)見表1,感知損失表達(dá)式(6):
表1 殘差感知損失網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)Tab.1 Residual perceived loss network structural parameters
其中,φ表示損失網(wǎng)絡(luò),φ(Y) 、φ() 分別表示真實(shí)深度圖和預(yù)測(cè)深度圖經(jīng)過(guò)第i層后提取到的特征集合。
本文采用紐約大學(xué)公開的室內(nèi)環(huán)境數(shù)據(jù)集NYU-Depth V2,原始RGΒ-D 數(shù)據(jù)由Kinect 相機(jī)拍攝采集的464 個(gè)室內(nèi)場(chǎng)景,包括12 萬(wàn)對(duì)彩色圖像與深度圖像,場(chǎng)景的深度范圍為0 ~10 m,在249 個(gè)場(chǎng)景中選取約2 萬(wàn)張子集用于訓(xùn)練,其余215 個(gè)場(chǎng)景用官方劃分的654 張圖像子集作為測(cè)試。 本文網(wǎng)絡(luò)結(jié)構(gòu)的原始圖像輸入大小為480×640,在訓(xùn)練過(guò)程中對(duì)輸入的彩色圖片按隨機(jī)概率50%進(jìn)行水平翻轉(zhuǎn)、隨機(jī)裁剪、顏色變換等,并且引入CutDepth 策略進(jìn)行數(shù)據(jù)增強(qiáng)。
本文試驗(yàn)操作系統(tǒng)為Ubuntu,試驗(yàn)基于Pytorch 1.9 深度學(xué)習(xí)框架,試驗(yàn)硬件配置為Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40 GHz 處理器,內(nèi)存為16 GB,模型在GPU 顯存為12 G NVIDIA TITAN XP的顯卡上訓(xùn)練,具體試驗(yàn)參數(shù)見表2。
表2 試驗(yàn)參數(shù)Tab.2 Test parameters
本文按照6 項(xiàng)指標(biāo)來(lái)評(píng)價(jià)本文構(gòu)建模型的試驗(yàn)結(jié)果,將模型預(yù)測(cè)與真實(shí)標(biāo)簽估計(jì)效果進(jìn)行比較。
(1)絕對(duì)值相對(duì)誤差(Abs Rel),式(7):
(2)均方根誤差(RMSE),式(8):
(3)對(duì)數(shù)平均誤差(log),式(9):
(4)閾值相似度δ,式(10):
其中,閾值thr ={1.25,1.252,1.253};i是像素索引;di、分別為像素i處的預(yù)測(cè)深度值和真實(shí)深度值;N是測(cè)試集深度圖中所有像素?cái)?shù)目的總和。
為了驗(yàn)證數(shù)據(jù)增強(qiáng)、選擇特征融合模塊和損失網(wǎng)絡(luò)3 個(gè)消融因素對(duì)本文模型的有效性,本文采用以下的方式進(jìn)行消融試驗(yàn)分析:編碼器均統(tǒng)一采用EfficientNet-B2,解碼器為U-Net(模型1)、解碼器為U-Net 采用CutDepth(模型2)、解碼器為SU-Net(模型3)、解碼器為SU-Net 采用CutDepth(模型4)以及構(gòu)建的損失網(wǎng)絡(luò)(模型5)。 3 種因素對(duì)網(wǎng)絡(luò)消融試驗(yàn)的結(jié)果見表3,結(jié)果表明各項(xiàng)評(píng)估指標(biāo)在解碼器SU-Net 比U-Net 有一定的精度提升,這歸因于選擇特征融合模塊中雙通道空間注意力圖,通過(guò)對(duì)全局與局部路徑的空間特征權(quán)重的重標(biāo)定,對(duì)特征圖進(jìn)行自適應(yīng)性的恢復(fù)校準(zhǔn),從而提高模型識(shí)別恢復(fù)路徑的準(zhǔn)確性。 通常情況下,數(shù)據(jù)增強(qiáng)策略使樣本多樣性增多,模型精度越高。 模型2 基于UNet 與模型4 基于SU-Net,在數(shù)據(jù)增強(qiáng)策略下,模型的誤差小、準(zhǔn)確度高,與實(shí)際情況相符。
表3 不同模塊誤差對(duì)比Tab.3 Error comparison of different modules
本文構(gòu)建的模型與其余4 種模型相比,誤差更小,準(zhǔn)確率更高。 這得益于模型不僅汲取了數(shù)據(jù)增強(qiáng)與SU-Net 的兩個(gè)優(yōu)點(diǎn),還得到了損失網(wǎng)絡(luò)對(duì)預(yù)測(cè)輸出的進(jìn)一步感知。 損失網(wǎng)絡(luò)結(jié)合遷移學(xué)習(xí)中的高級(jí)特征信息,通過(guò)對(duì)預(yù)測(cè)深度與真實(shí)深度的融合感知,提高了網(wǎng)絡(luò)對(duì)標(biāo)簽信息的重構(gòu)使用,提取更為詳細(xì)的細(xì)節(jié)信息,彌補(bǔ)編碼-解碼階段特征信息表達(dá)能力不足的問(wèn)題。
5 種消融試驗(yàn)預(yù)測(cè)深度如圖3 所示,可見本文最終構(gòu)建模型相比前4 種消融試驗(yàn)在深度預(yù)測(cè)更加接近真實(shí)深度,存在鏡面反射時(shí)預(yù)測(cè)深度有明顯的提升,對(duì)于目標(biāo)的輪廓清晰可見,邊緣更加銳利,這得益于損失網(wǎng)絡(luò)強(qiáng)大的損失感知,使預(yù)測(cè)深度圖感知到與真實(shí)深度圖之間存在的差異,通過(guò)每一次感知損失函數(shù)的修正進(jìn)一步提升預(yù)測(cè)精度。
圖3 構(gòu)建模型深度效果Fig.3 Depth results of proposed model
為了驗(yàn)證本文模型的深度估計(jì)精度,將其與近年來(lái)其他應(yīng)用深度學(xué)習(xí)的單目深度估計(jì)在NYUDepth V2 數(shù)據(jù)集上的對(duì)比試驗(yàn)結(jié)果見表4。 試驗(yàn)結(jié)果表明,本文模型的絕對(duì)值相對(duì)誤差(Abs Rel)、均方根誤差(RMSE)、對(duì)數(shù)平均誤差(log)以及不同閾值下的準(zhǔn)確率(δ) 在對(duì)比試驗(yàn)中優(yōu)于其他方法。文獻(xiàn)[14]采用ResNet101 模型作為深度估計(jì)的基礎(chǔ)網(wǎng)絡(luò)并結(jié)合DenseASPP 部分結(jié)構(gòu),提出了一個(gè)DCDN(Deep Convolution DenseASPP Network)新的卷積神經(jīng)網(wǎng)絡(luò)模型;而本文構(gòu)建模型將EfficientNet-B2 結(jié)構(gòu)作為編碼器,其模型參數(shù)量更加的輕量,在絕對(duì)值相對(duì)誤差、均方根誤差以及對(duì)數(shù)平均誤差分別減少了15.8%、13.1%、11.8%,在閾值為δ <1.25、δ <1.252、δ <1.253的準(zhǔn)確度分別提升4.3%、1.4%、0.2%。
表4 NYU Depth v2 數(shù)據(jù)集上的試驗(yàn)結(jié)果對(duì)比Tab.4 Comparison of test results on NYU Depth v2 dataset
將本文構(gòu)建模型與文獻(xiàn)[5]的模型進(jìn)行定性評(píng)價(jià),得到的預(yù)測(cè)深度圖如圖4 所示。 從圖4 可以看出,采用本文模型,小型物體輪廓明顯邊緣更加銳利,遠(yuǎn)距離的深度預(yù)測(cè)效果有較大改善,說(shuō)明本文模型對(duì)于提取目標(biāo)輪廓邊緣有顯著提升,解決了小型物體輪廓模糊的問(wèn)題,同時(shí)提高了深度估計(jì)的性能,具有更好的預(yù)測(cè)深度能力。
圖4 深度預(yù)測(cè)圖對(duì)比Fig.4 Comparison of different depth maps
針對(duì)現(xiàn)有的深度估計(jì)任務(wù)中存在的編碼器模型參數(shù)量大和計(jì)算復(fù)雜度高等問(wèn)題,本文構(gòu)建了一種基于輕量化融合損失網(wǎng)絡(luò)的單目深度估計(jì)模型,并利用NYU-Depth V2 公開數(shù)據(jù)集開展了試驗(yàn)研究。試驗(yàn)結(jié)果表明,該模型中損失網(wǎng)絡(luò)汲取到了圖像的高級(jí)特征信息,能對(duì)預(yù)測(cè)深度與真實(shí)深度進(jìn)行融合感知,提高模型對(duì)信息的重構(gòu)使用,彌補(bǔ)編碼-解碼階段特征信息表達(dá)能力不足的問(wèn)題;該模型不僅誤差更小,準(zhǔn)確率更高,而且優(yōu)于現(xiàn)有的部分深度估計(jì)模型。