高永彬,王慧星,黃 勃
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海201620)
單目深度估計(jì)對(duì)三維場(chǎng)景理解任務(wù)具有重要意義,在三維重建、自動(dòng)駕駛、視覺(jué)跟蹤、三維目標(biāo)檢測(cè)、增強(qiáng)現(xiàn)實(shí)等領(lǐng)域有著廣泛的應(yīng)用。隨著深度學(xué)習(xí)的迅速發(fā)展,利用有監(jiān)督學(xué)習(xí)方法進(jìn)行單目深度估計(jì)的研究大量涌現(xiàn),這些方法通常將深度估計(jì)建模作為一個(gè)回歸問(wèn)題,使用深度卷積神經(jīng)網(wǎng)絡(luò)獲取圖像的層次信息和層次特征,并通過(guò)最小化均方誤差來(lái)訓(xùn)練回歸網(wǎng)絡(luò)。然而,這些方法往往存在缺點(diǎn):一方面,使用最小化均方誤差來(lái)訓(xùn)練回歸網(wǎng)絡(luò),往往會(huì)導(dǎo)致網(wǎng)絡(luò)收斂慢和局部解不理想的問(wèn)題;另一方面,為了獲得高分辨率的深度圖,需要使用跳躍連接或多層反卷積網(wǎng)絡(luò)結(jié)構(gòu),這使網(wǎng)絡(luò)訓(xùn)練更加復(fù)雜,計(jì)算量大大增加;最后,利用多尺度網(wǎng)絡(luò)對(duì)圖像進(jìn)行特征提取,往往會(huì)丟失像素的特征信息和位置信息,對(duì)較小目標(biāo)的深度估計(jì)效果較差。為此,F(xiàn)u等人提出了用于單目深度估計(jì)的深度序數(shù)回歸網(wǎng)絡(luò)(Deep Ordinal Regression Network),使 用ASPP(Atrous Spatial Pyramid Pooling)獲取不同尺度的特征,并通過(guò)全圖像編碼器捕獲全局上下文信息[1]。采用離散策略對(duì)深度值進(jìn)行離散,將深度估計(jì)轉(zhuǎn)化為序數(shù)回歸問(wèn)題,通過(guò)一個(gè)普通回歸損失函數(shù)訓(xùn)練網(wǎng)絡(luò),提高網(wǎng)絡(luò)訓(xùn)練效率。
本文主要對(duì)深度序數(shù)回歸網(wǎng)絡(luò)深度序數(shù)回歸算法進(jìn)行研究,主要貢獻(xiàn)如下:
(1)提出了一種基于CBAM(convolutional block attention module)的深度序數(shù)回歸方法,通過(guò)CBAM代替深度序數(shù)回歸算法中的全圖像編碼器,獲取更完整的像素特征信息和位置信息,提高全局上下文信息的表示能力;
(2)將CBAM中的通道注意力機(jī)制和空間注意力機(jī)制以不同的順序融入到網(wǎng)絡(luò)中,以發(fā)現(xiàn)注意力機(jī)制的順序與網(wǎng)絡(luò)結(jié)構(gòu)的相適應(yīng)性,探索出最佳的網(wǎng)絡(luò)模型;
(3)實(shí)驗(yàn)結(jié)果證明,本文提出的網(wǎng)絡(luò)模型可以有效地提高深度估計(jì)的精度,在KITTI數(shù)據(jù)集上進(jìn)行測(cè)試,效果比當(dāng)前最佳方法提高1%左右。
近年來(lái),深度學(xué)習(xí)被廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)領(lǐng)域,并在單目深度估計(jì)方面取得了顯著的成就。Eigen等首次將深度學(xué)習(xí)應(yīng)用于單目深度估計(jì)研究中,提出了一種多尺度神經(jīng)網(wǎng)絡(luò)用于深度估計(jì)的思想,首先使用粗尺度網(wǎng)絡(luò)預(yù)測(cè)圖像的全局深度,然后使用細(xì)尺度網(wǎng)絡(luò)優(yōu)化局部細(xì)節(jié),最終獲得像素級(jí)別的深度信息[2];在此方法的基礎(chǔ)之上,他們又提出了一種用于多任務(wù)的多尺度網(wǎng)絡(luò)框架,使用了更深層次的網(wǎng)絡(luò)結(jié)構(gòu),利用3個(gè)細(xì)尺度的網(wǎng)絡(luò)進(jìn)一步增添細(xì)節(jié)信息,使用不同的損失函數(shù)和數(shù)據(jù)集分別對(duì)深度預(yù)測(cè)、表面法向量估計(jì)和語(yǔ)義分割任務(wù)進(jìn)行訓(xùn)練,最終獲得了良好的效果[3];由于多尺度網(wǎng)絡(luò)只是使用幾個(gè)串聯(lián)的淺層網(wǎng)絡(luò)對(duì)圖像進(jìn)行分層細(xì)化,因此最終得到的深度圖分辨率是偏低的,為了提高深度圖的分辨率,Li等在多尺度網(wǎng)絡(luò)之間加入跳躍連接,在第一個(gè)網(wǎng)絡(luò)中使用跳躍連接,對(duì)池化后的特征圖進(jìn)行上采樣,進(jìn)而與第二個(gè)網(wǎng)絡(luò)中的特征圖進(jìn)行拼接,同樣地,第二個(gè)網(wǎng)絡(luò)中的特征圖與第三個(gè)網(wǎng)絡(luò)中的特征圖進(jìn)行拼接,使網(wǎng)絡(luò)同時(shí)將較深層的低空間分辨率深度圖與較低層的高空間分辨率深度圖融合,提高了深度圖的分辨率[4];Laina等提出了一種殘差學(xué)習(xí)的全卷積網(wǎng)絡(luò),用于單幅圖像的深度估計(jì),網(wǎng)絡(luò)結(jié)構(gòu)更深,提高輸出分辨率的同時(shí)又優(yōu)化了效率[5];Liu等提出了將條件隨機(jī)場(chǎng)(conditional random field,CRF)與CNN相結(jié)合來(lái)估計(jì)單幅圖像深度的方法,使用CRF的一階項(xiàng)和二階項(xiàng)綜合訓(xùn)練2個(gè)CNN,然后將這兩個(gè)網(wǎng)絡(luò)通過(guò)CRF能量函數(shù)統(tǒng)一于一個(gè)訓(xùn)練框架中,這種方式可以提供更多的約束[6];同樣使用CRF方法,Xu等提出了一種結(jié)構(gòu)化注意力模型,它可以自動(dòng)調(diào)節(jié)不同尺度下對(duì)應(yīng)特征之間傳遞的信息量,并且可以無(wú)縫集成到CRF中,允許對(duì)整個(gè)架構(gòu)進(jìn)行端到端訓(xùn)練[7];Cao等把深度估計(jì)問(wèn)題看作像素分類問(wèn)題,首先將深度值進(jìn)行離散,然后使用殘差網(wǎng)絡(luò)來(lái)預(yù)測(cè)每個(gè)像素對(duì)應(yīng)的類別,最終使用CRF模型進(jìn)行優(yōu)化[8];Chang等提出了使用金字塔池化模塊來(lái)捕捉更多的全局信息,使單幅圖像的深度估計(jì)精度得到提高[9]。
以上方法雖然都利用了有監(jiān)督學(xué)習(xí)的方法對(duì)單幅圖像進(jìn)行深度估計(jì),但使用多尺度網(wǎng)絡(luò)結(jié)構(gòu)往往會(huì)丟失像素的特征信息和位置信息,對(duì)深度估計(jì)精度造成影響。通過(guò)最小化均方誤差訓(xùn)練網(wǎng)絡(luò),存在收斂慢和局部解不理想的缺點(diǎn)。加入跳躍連接等結(jié)構(gòu),使網(wǎng)絡(luò)訓(xùn)練復(fù)雜,計(jì)算量增加。
目前還有一些使用無(wú)監(jiān)督學(xué)習(xí)進(jìn)行深度估計(jì)的方法,Chen等提出了一種場(chǎng)景網(wǎng)絡(luò)來(lái)對(duì)物體的幾何結(jié)構(gòu)進(jìn)行建模,通過(guò)增強(qiáng)立體圖像對(duì)之間的語(yǔ)義一致性來(lái)執(zhí)行區(qū)域感知深度估計(jì)[10];Lee等提出了一種利用相對(duì)深度圖進(jìn)行單目深度估計(jì)的方法,使用CNN在不同的尺度上估計(jì)區(qū)域?qū)χg的相對(duì)深度和普通深度,進(jìn)而將普通深度圖和相對(duì)深度圖分解,并對(duì)分解之后的深度圖進(jìn)行優(yōu)化重組,以重建最終的深度圖[11]。雖然無(wú)監(jiān)督學(xué)習(xí)方法在一定程度上克服了數(shù)據(jù)標(biāo)注工作量大的問(wèn)題,但是始終達(dá)不到有監(jiān)督學(xué)習(xí)的方法的精度。
針對(duì)以上問(wèn)題,本文對(duì)有監(jiān)督學(xué)習(xí)的單目深度估計(jì)模型深度序數(shù)回歸算法進(jìn)行了研究,發(fā)現(xiàn)深度序數(shù)回歸算法中使用的全圖像編碼器存在易丟失較大特征值像素特征信息和位置信息的缺點(diǎn)。本文引入CBAM,提出了一種CBAM的深度序數(shù)回歸方法。使用全局最大池化和全局平均池化替代局部平均池化,解決較大特征值像素特征信息易丟失的問(wèn)題。使用空間注意力機(jī)制生成的注意力特征圖與原始特征圖相乘替代簡(jiǎn)單的復(fù)制操作,解決像素位置信息易丟失的問(wèn)題。
本文方法的整體網(wǎng)絡(luò)框架如圖1所示。主要由3部分組成,特征提取網(wǎng)絡(luò)、場(chǎng)景理解模塊和序數(shù)回歸模塊。
圖1 整體網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Overall network structure
首先將單幅圖像輸入到特征提取網(wǎng)絡(luò)中進(jìn)行初步的特征提取,特征提取網(wǎng)絡(luò)采用ResNet-101,通過(guò)在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練好的模型對(duì)其進(jìn)行初始化。由于前幾層的特征只包含一般的低級(jí)信息,在初始化后固定ResNet-101前2個(gè)卷積層的參數(shù),且在訓(xùn)練過(guò)程中為BN(Batch Normalization)層直接進(jìn)行初始化;然后將得到的特征送入場(chǎng)景理解模塊,場(chǎng)景理解模塊包括全圖像編碼器、空洞空間卷積池化金字塔模塊ASPP和跨通道信息學(xué)習(xí)器。全圖像編碼器主要作用是捕獲全局特征的上下文信息,在這里使用CBAM取代全圖像編碼器結(jié)構(gòu),依次使用通道注意力機(jī)制和空間注意力機(jī)制捕獲像素更好的特征信息和位置信息;ASPP模塊主要使用采樣率分別為6、12和18的空洞卷積對(duì)輸入的特征圖進(jìn)行并行采樣,進(jìn)而得到多尺度融合特征,來(lái)表征不同大小區(qū)域的圖像特征;跨通道信息學(xué)習(xí)器主要使用1×1的卷積對(duì)各個(gè)通道之間的相互作用進(jìn)行學(xué)習(xí)。進(jìn)一步地將全圖像編碼器、ASPP模塊和跨通道信息學(xué)習(xí)器輸出的特征圖分別經(jīng)過(guò)一個(gè)1×1的卷積,進(jìn)而將3個(gè)模塊的所有輸出進(jìn)行合并,再經(jīng)過(guò)一個(gè)1×1的卷積,輸入到序數(shù)回歸模塊。最后根據(jù)深度值的序數(shù)相關(guān)性,使用間隔遞增離散化策略(spacing-increasing discretization,SID)在對(duì)數(shù)空間中對(duì)深度值進(jìn)行離散,以降低深度值較大區(qū)域的訓(xùn)練損失。使用普通的序數(shù)回歸損失來(lái)學(xué)習(xí)網(wǎng)絡(luò)參數(shù),獲得更高的精度。
深度序數(shù)回歸算法中的全圖像編碼器結(jié)構(gòu)如圖2所示。為了從尺寸為C×h×w的F中獲得相同尺寸的全局特征F'',首先要通過(guò)局部平均池化對(duì)原始特征進(jìn)行降維,將降維之后的特征通過(guò)全連接層得到一個(gè)C維的特征向量;將特征向量視為空間維數(shù)為1×1特征圖的C通道,并添加一個(gè)核尺寸為1×1的卷積層作為特征向量跨通道參數(shù)池化結(jié)構(gòu);最后,將特征向量復(fù)制到F'',使F''的每個(gè)位置對(duì)整個(gè)圖像有相同的理解。通過(guò)研究發(fā)現(xiàn)全圖像編碼器存在以下缺點(diǎn):
圖2 全圖像編碼器Fig.2 Full image encoder
(1)只使用平均池化存在2個(gè)弊端:一方面,由于圖像中感興趣的對(duì)象往往會(huì)產(chǎn)生較大的像素值,因此只使用平均池化會(huì)丟失較大特征值像素的特征信息;另一方面,局部的平均池化只是使用小尺寸的卷積核在圖像中進(jìn)行局部卷積,難以很好地整合圖像的全局信息;
(2)針對(duì)圖像每個(gè)位置的信息,只將特征圖簡(jiǎn)單地復(fù)制到整個(gè)圖像,會(huì)丟失重要像素的位置信息?;谝陨先珗D像編碼器的缺點(diǎn),本文使用CBAM替代全圖像編碼器,通過(guò)全局最大池化和全局平均池化更好地捕獲較大特征值像素的特征信息。通過(guò)空間注意力機(jī)制生成的注意力圖與原始特征圖相乘替代簡(jiǎn)單的復(fù)制操作,保留完整的位置信息。
如圖1中的綠色部分所示,CBAM依次通過(guò)通道注意力機(jī)制和空間注意力機(jī)制,下面分別對(duì)通道注意力機(jī)制和空間注意力機(jī)制進(jìn)行詳細(xì)介紹。
通道注意力機(jī)制如圖3所示。首先在空間維度上使用全局最大池化和全局平均池化操作對(duì)輸入特征F∈RC×H×W進(jìn)行壓縮,生成2個(gè)不同的特征描述符;將2個(gè)描述符分別送入一個(gè)由多層感知機(jī)(multi-layer perceptron,MLP)構(gòu)成的共享網(wǎng)絡(luò)進(jìn)行計(jì)算,進(jìn)一步將共享網(wǎng)絡(luò)輸出的最大池化特征向量和平均池化特征向量以元素求和的方式進(jìn)行合并;最終使用sigmoid函數(shù)將合并之后的特征向量映射到[0,1],進(jìn)而得到通道注意力圖。通道注意力圖Mc∈RC×1×1的計(jì)算過(guò)程如式(1):
其中,σ代表sigmoid函數(shù)。
空間注意力機(jī)制如圖4所示。首先在通道維度上對(duì)經(jīng)過(guò)通道注意圖提煉之后的特征F'∈RC×H×W使用全局最大池化和全局平均池化操作,得到2個(gè)不同的特征描述符;使用卷積層對(duì)它們進(jìn)行連接合并;最終使用sigmoid函數(shù)將合并之后的特征向量映射到[0,1],進(jìn)而得到空間注意力圖??臻g注意力圖Ms∈RH×W的計(jì)算過(guò)程如式(2):
圖4 空間注意力機(jī)制Fig.4 Spatial attention module
其中,f7×7代表卷積核尺寸為7×7的卷積運(yùn)算。
得到通道注意力圖和空間注意力圖后,將通道注意力圖與輸入特征相乘得到F',然后計(jì)算F'的空間注意力圖,并將二者相乘得到最終的特征F''。 該過(guò)程可表示為式(3)和式(4):
其中,?代表逐元素相乘。
將原始特征依次經(jīng)過(guò)通道注意力圖和空間注意力圖的調(diào)整,使最終特征圖中的較大特征值像素特征信息和位置信息更加完整。
總的序數(shù)損失被表示為每個(gè)像素的序數(shù)損失的平均值。每個(gè)像素的序數(shù)損失函數(shù)為式(5)和式(6):
其中,l(w,h)∈{0,1,…,K-1}代表在空間位置(w,h)通過(guò)使用SID離散策略得到的離散標(biāo)簽;代表預(yù)測(cè)的離散深度值;通過(guò)softmax函數(shù)計(jì)算。
總的序數(shù)損失函數(shù)為式(7):
其中,N=W×H。
由于隨著深度值的增大,用于深度估計(jì)的信息會(huì)逐漸減少,進(jìn)而導(dǎo)致較大深度值的估計(jì)誤差通常較大。因此使用SID策略進(jìn)行離散化,該策略在對(duì)數(shù)空間中統(tǒng)一離散給定深度區(qū)間,以降低大深度值區(qū)域的訓(xùn)練損失,合理估計(jì)大深度值。假設(shè)深度區(qū)間[α,β]需要離散為M個(gè)子段,SID策略可表示為式(8):
其中,si∈{s0,s1,…,sM}代表離散閾值。
最終預(yù)測(cè)的深度值為式(9):
其中,ε為偏移值,α+ε=1。
KITTI數(shù)據(jù)集主要包含室外場(chǎng)景,數(shù)據(jù)由裝載在行駛汽車上的相機(jī)和深度傳感器捕獲,圖像大小為375×1241像素[12]。本文算法在KITTI數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試,數(shù)據(jù)切分方式從29個(gè)場(chǎng)景中切分出697幅圖像進(jìn)行測(cè)試,其余的32個(gè)場(chǎng)景中的23 488幅圖像用于訓(xùn)練和交叉驗(yàn)證,其中22 600幅用于訓(xùn)練,剩余的圖像用于驗(yàn)證。實(shí)驗(yàn)中,網(wǎng)絡(luò)結(jié)構(gòu)使用Pytorch框架實(shí)現(xiàn),訓(xùn)練時(shí)將輸入圖像大小調(diào)整為385×513。網(wǎng)絡(luò)使用SGD優(yōu)化器進(jìn)行優(yōu)化,動(dòng)量縮減參數(shù)設(shè)置為0.9,權(quán)重縮減參數(shù)設(shè)置為0.0005,初始學(xué)習(xí)率設(shè)置為0.000 1,mini-batch尺寸設(shè)置為4。
將訓(xùn)練模型的實(shí)驗(yàn)結(jié)果與其它相關(guān)方法進(jìn)行對(duì)比,采用常用的評(píng)價(jià)指標(biāo)來(lái)評(píng)估結(jié)果,其中di表示真實(shí)深度;表示預(yù)測(cè)深度;N表示圖像的像素總數(shù)。指標(biāo)表達(dá)式為:
·絕 對(duì) 相 對(duì) 誤 差(absolute relative error,AbsRel),式(10):
·平方相對(duì)誤差(squared relative error,SqRel),式(11):
·均 方 根 誤 差(root mean squared error,RMSE),式(12):
·準(zhǔn)確率:滿足如下條件的像素占總像素的百分比,式(13):
其中,thr=1.25,1.252,1.253。
本文方法與幾個(gè)先進(jìn)的單目深度估計(jì)方法的對(duì)比結(jié)果見(jiàn)表1,這些方法中包括了有基于監(jiān)督學(xué)習(xí)的 方 法(Eigen et al.[2]、Liu et al.[13]和Gan et al.[14])、半監(jiān)督學(xué)習(xí)的方法(Kuznietsov et al.[15])和無(wú)監(jiān)督學(xué)習(xí)的方法(Garg et al.[16]和Yin et al.[17])。從實(shí)驗(yàn)結(jié)果可以看出,本文算法的深度估計(jì)效果明顯優(yōu)于無(wú)監(jiān)督學(xué)習(xí)方法的效果,同時(shí)也達(dá)到甚至超過(guò)了有監(jiān)督學(xué)習(xí)方法的效果,這主要得益于在訓(xùn)練過(guò)程中,通過(guò)使用通道注意力機(jī)制和空間注意力機(jī)制提高了全局信息的表示能力。為了證明算法改進(jìn)部分的有效性,在表1中還提供了在KITTI數(shù)據(jù)集上的消融實(shí)驗(yàn)結(jié)果,各項(xiàng)指標(biāo)的結(jié)果證明了改進(jìn)部分的有效性。
表1 KITTI數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果對(duì)比Tab.1 Comparison of experimental results on the KITTI dataset
消融實(shí)驗(yàn)的結(jié)果見(jiàn)表2。主要對(duì)網(wǎng)絡(luò)中CBAM中通道注意力和空間注意力機(jī)制的使用順序進(jìn)行了分析。在只使用通道注意力機(jī)制、先空間注意力機(jī)制后通道注意力機(jī)制和先通道注意力機(jī)制后空間注意力機(jī)制3個(gè)方面進(jìn)行實(shí)驗(yàn)。通過(guò)分析表2可知,先通道注意力機(jī)制后空間注意力機(jī)制的精度比只使用通道注意力機(jī)制和先使用空間注意力機(jī)制后使用通道注意力機(jī)制的效果都高,說(shuō)明先通道注意力機(jī)制后空間注意力機(jī)制的順序結(jié)構(gòu)可以捕獲像素更完整的特征信息和位置信息。
表2 消融實(shí)驗(yàn)結(jié)果Tab.2 Results of ablation experiment
KITTI數(shù)據(jù)集上的深度估計(jì)的效果圖如圖5所示。與其它方法相比,該模型在細(xì)節(jié)處理方面具有更強(qiáng)大的能力,主要表現(xiàn)在小物體、行人以及樹(shù)木等區(qū)域保留了更為豐富的紋理信息,細(xì)節(jié)處理更加平滑,且前景和背景分離效果更好。
圖5 各模型深度預(yù)測(cè)結(jié)果Fig.5 Depth prediction results of each model
為了評(píng)估本文方法的泛化能力,本文還在Cityscapes數(shù)據(jù)集做了測(cè)試實(shí)驗(yàn),效果如圖6所示。該方法只使用KITTI數(shù)據(jù)集進(jìn)行訓(xùn)練和評(píng)估,而沒(méi)有使用Cityscapes數(shù)據(jù)集。雖然兩個(gè)數(shù)據(jù)集的場(chǎng)景類型存在一定差異,但是該方法仍然可以輸出效果很好的深度圖像。
圖6 在Cityscapes數(shù)據(jù)集上的測(cè)試效果圖Fig.6 Test effect diagram on Cityscapes dataset
針對(duì)有監(jiān)督學(xué)習(xí)的單目深度估計(jì)模型深度序數(shù)回歸算法中全圖像編碼器易丟失較大像素特征信息和位置信息的問(wèn)題,本文提出一種基于CBAM的深度序數(shù)回歸方法。通過(guò)一系列的對(duì)比試驗(yàn)和消融實(shí)驗(yàn),展示出了該方法的優(yōu)異性和合理性。對(duì)比基礎(chǔ)網(wǎng)絡(luò),該方法的網(wǎng)絡(luò)模型捕獲了更多目標(biāo)的特征信息和位置信息,更加完整地保留了圖像中較小目標(biāo)或其他細(xì)節(jié)的特征。通過(guò)利用KITTI數(shù)據(jù)集和Cityscapes數(shù)據(jù)集對(duì)該方法進(jìn)行驗(yàn)證,表明其高于現(xiàn)有的大部分深度估計(jì)方法。