?

基于多層特征融合的單目深度估計模型

2020-08-01 07:30朱家懿NwoodoSmuelChuwkueukAnnorArnoldAntwi
浙江科技學院學報 2020年4期
關鍵詞:深度圖金字塔注意力

葉 綠,段 婷,朱家懿,Nwoodo Smuel Chuwkueuk,Annor Arnold Antwi

(浙江科技學院 a.信息與電子工程學院;b.機械與能源工程學院,杭州 310023)

深度估計在計算機視覺中占重要地位,廣泛應用于三維重建[1]、場景理解等上下文環境,同時對語義分割、顯著性目標檢測、邊緣檢測等具有一定的改良作用。早期的單目深度估計主要利用單目線索,如陰影、運動和視差等方法,但這些方法都具有一定的局限性,預測出的深度圖較模糊,質量不高,且帶有噪聲,紋理不清楚。要解決這些問題,首先要獲得更豐富的特征信息。隨著信息技術的發展,網絡模型對特征提取的要求越來越高,不僅限于單層特征提取,還包括多層次的特征提取。近幾年,卷積神經網絡(convolutional neural networks,CNN)在深度估計中能夠提取不同層次的特征,包括低層特征的細節信息和高層的抽象語義特征,以及介于二者之間的中層特征,但卷積層初始參數的選取會對特征提取產生較大的影響,如果選取不恰當,會導致整個網絡訓練效果不佳,因此它仍存在較大的改進空間。在特征提取不斷優化的情況下,神經網絡又面臨特征融合問題。Chen等[2]使用基于注意力的聚集網絡(attention-based context aggregation network,ACCN)來捕獲連續的上下文信息,并集成圖像級和像素級上下文信息;鐘海軍等[3]提出了一種有效的特征融合方法,通過消除高層次之間的語義差距來提高分割質量。這些方法雖然在一定程度上改善了特征融合,但仍然不能有效地融合多尺度特征。陳好等[4]提出了多模態融合模塊(complementarity-aware fusion,CA-Fuse),采用跨模態殘差函數和補充性感知監督,從深層到淺層逐層對RGB(red,green,blue)圖像和深度圖進行特征融合;吳磊等[5]采用了最經典最簡單的融合方式——拼接,將不同層的特征以拼接的方式在通道維度上實現特征融合;余春艷等[6]通過跳層將整體嵌套邊緣檢測(holistically-nested edge detection,HED)結構的側面輸出特征圖從深層向淺層傳遞,進行不同層的多尺度融合。通過這些方法實現了多層特征融合,但這些融合方式主要從高層向低層或從低層向高層進行特征融合,融合方向具有單一性,特征信息在融合的過程中不全面,忽略了中層特征信息?;诖?我們提出了一種新的單目深度估計模型,采用了兩個對稱的金字塔式結構(以下簡稱“金字塔”),從中層特征出發向低層和高層實現雙向的特征融合,最后再用中層特征和通過“金字塔”互補后的特征進行融合,從而實現了中層到高層,中層到低層,以及中層與融合后的高層、低層三個層面的融合。

1 總體模型設計

雙流神經網絡由編碼和解碼兩個部分構成,編碼部分主要進行下采樣以提取特征,解碼部分主要進行上采樣和特征融合。編碼部分是一個基于ResNet-50[7]的雙流網絡,包括卷積層、池化層、殘差塊及全連接部分,前三個部分用于下采樣,最后一個全連接部分(包括平均池化層和全連接)的輸出通道數為1 000(主要用于分類),而在模型的搭建過程中,不需要這一部分,因此將其移除。本研究將ResNet-50分成了5個小塊,即卷積模塊(Conv_bn)、殘差模塊1(Res1)、殘差模塊2(Res2)、殘差模塊3(Res3)和殘差模塊4(Res4)。每經過一個小塊,特征圖的尺寸變為原來的1/2,其中Conv_bn與Res1位于淺層網絡,輸出的特征圖為低層特征圖;Res2位于中層網絡,輸出的特征圖為中層特征圖;Res3、Res4輸出的特征圖為高層特征圖。該雙流網絡有2個支流,右邊支流輸入的是一個320×512像素的RGB圖,從Conv_bn輸入,依次進行5次下采樣,尺寸變為原來的1/25,即10×16像素;左邊支流輸入的是一個1/2大小的RGB圖,即160×256像素,從Res1輸入,經過4次下采樣,尺寸變成10×16像素,與右邊支流輸出的尺寸一樣,通過兩個不同尺寸圖片的輸入可以獲得不同的深度特征,將其在ResNet-50最后一個輸出進行特征疊加,實現了多尺度信息的融合。為了在編碼過程中減少參數,我們在雙流網絡中相同的部分采用了參數共享。為了使輸出的深度圖大小等于輸入的RGB圖像,需要對模型進行解碼。本研究解碼部分采用了上采樣和下采樣兩個上下文感知的“金字塔”,下采樣“金字塔”通過兩個反卷積層(deconv),上采樣“金字塔”通過卷積層(conv)和池化層,使得分辨率與Res2的側邊輸出相同。為了保證通道數相同,Res2的輸出經過一個卷積核大小為1×1的卷積層,然后再與兩個“金字塔”的輸出進行疊加求和。通過卷積層改變通道數后輸入初始注意力(inception-attention,IA)模塊進行特征選擇。該解碼部分通過“金字塔”對不同層的特征進行提取、融合來解碼特征信息,從而獲得上下文感知的多尺度特征,并在不同的特征層中實現信息傳輸。網絡整體結構如圖1所示。

圖1 網絡整體結構Fig.1 Overall architecture of network

2 模型方法

2.1 “金字塔”特征融合

在神經網絡訓練時,對局部和全局信息的提取非常重要。局部信息是關于特征圖的一些細節信息,包括點、線、面的信息,這些局部信息的提取主要是在較低的層次上。全局信息是指語義信息,它是抽象的,一般從高層數據中獲取,而在獲取時通常會忽略中間層次的信息,且認為其不重要。實際上,中層特征介于高層特征和低層特征之間,既可以描述抽象的語義信息又包含了局部細節,深度估計不僅需要全局信息,而且還需要局部信息。因此,有效地實現各層信息融合是一個關鍵點,“金字塔”[8]融合圖像可以起到一個很好的過渡作用。

圖像經過上采樣和下采樣后信息會丟失,從而變得模糊。針對此問題,本研究采用了兩種“金字塔”。上采樣“金字塔”如圖2所示,第一層由3個節點組成,每個節點包含了不同尺度的特征;接著將Res1和Res2的輸出特征圖分別通過上采樣將尺寸擴大2倍和4倍,使其與Conv_bn的尺寸大小一致,并將它們拼接起來,作為第二層的第一個節點;然后將Res2的輸出特征圖通過上采樣將尺寸擴大2倍后與Res1拼接,構建第二層上的第二個節點。同理,將第二層的第二個節點通過上采樣將尺寸擴大2倍,與第二層的第一個節點拼接作為第三層的第一個節點。下采樣“金字塔”如圖3所示,第一層也由3個節點組成,分別是Res2、Res3和Res4,將Res2和Res3通過最大池化后分別經過下采樣將尺寸縮小1/4和1/2后與Res4拼接,構成第二層中的第一個節點;同樣地,將Res2經過下采樣將尺寸縮小1/2后與Res3拼接,得到第二層的第二個節點;最后將第二層的第二個節點通過下采樣縮小1/2,與第二層的第一個節點拼接構成第三層的第一個節點。在每個拼接層后面都有一個卷積層用于通道數降維,且所有卷積層的卷積核都是3×3。通過兩個不同功能的“金字塔”,分辨率不斷變化,有效地避免了融合過程中圖像連通區域像素不連續的問題,實現了圖像間的無縫連接。

圖2 上采樣“金字塔”Fig.2 Upsampling “pyramid”

圖3 下采樣“金字塔”Fig.3 Downsampling “pyramid”

2.2 IA模塊

網絡深度的加深會導致參數的不斷增加,增大對硬件的壓力,導致模型的運行速度減慢。針對該問題,本研究在Inception[9]模塊與注意力模塊[10]的基礎上設計了IA模塊,它結合Inception與注意力模塊的優點,IA模塊如圖4所示。IA模塊首先經過一個1×1的卷積層對輸入的特征圖進行通道數降維,再經過一個上采樣層(upsample)將特征圖尺寸放大2倍。上采樣的方式選擇使用雙線性插值,使用雙線性插值可使得上采樣的特征圖更平滑,因而可避免特征圖中出現方塊的現象,減少棋盤效應的出現;之后IA模塊被分成4個分支,即1×1卷積層、3×3卷積層、通道注意力(channel attention,CA)模塊、空間注意力(spatial attention,SA)模塊。通過不同大小的卷積核進行卷積,卷積層接收域大小要求不同,對于大的物體,需要更多的上下文信息來避免類間的不一致,這時需要更大的接收域來提取全局特征;同理,小的物體則需要更小的接收域來提取局部特征,才可以得到不同尺度的特征圖。因此,本模塊把兩個卷積層分支輸出的多尺度特征圖與CA模塊和SA模塊的輸出通過融合層進行拼接,進行不同尺度特征圖的有效融合,拼接后的通道數變成了輸入前的4倍,因此我們設計了1×1的卷積層對通道進行降維,再經過一個雙線插值上采樣層進行上采樣。

圖4 IA模塊Fig.4 Module of IA

2.3 注意力機制

在計算機視覺領域中,注意力機制是讓計算機模仿人眼自覺地將注意力放在感興趣的地方去學習圖片。注意力模型在訓練過程中學習圖片時,給圖片的每個部分賦予不同的權重,對感興趣的地方給予較大的權重。因此,為了提取圖片中的關鍵信息,讓模型做出的判斷更為準確,我們在IA模塊中加入了注意力機制,在一定程度上減少了計算資源的消耗。

本文采用通道注意力機制和空間注意力機制這兩種常用的注意力機制。CA模塊如圖5所示,首先經過一個全局平均池化層(global average pooling,GAP),將特征圖整合成1×1×C(C為通道數)的形式,高和寬都變成尺寸為1,這時只對通道數進行改變,后面通過一個全連接的密集層(dense),用邏輯函數進行激活,將特征圖標準化為0到1之間,將輸入通過跳躍連接與輸出進行點乘,將尺寸還原,特征圖通過CA模塊后,輸出特征圖的大小和通道數保持不變。SA模塊如圖6所示,它主要作用在空間域中,將通道數變為1后,集中對特征圖的高和寬進行處理。該模塊由兩個卷積層和一個邏輯函數及點乘組成,兩個卷積層的卷積核寬和高是不等的,一個為1×3,另一個為3×1,對水平和垂直方向的特征進行捕捉,不同卷積核的大小產生不同的接收域,兩個卷積層后面都有Relu非線性激活層與批規化層,經過卷積層后通過邏輯函數對特征圖進行歸一化,再通過一個跳層將SA模塊的輸入與歸一化后的輸出進行點乘,將尺寸和通道數恢復成原輸入大小。

圖5 CA模塊Fig.5 CA module

圖6 SA模塊Fig.6 SA module

注意力模型的輸出不改變特征圖的尺寸和通道數量,但是經過注意力模型輸出之后,模型會自動將注意力集中在圖片的部分區域進行特征提取。將注意力模塊加入IA模塊中,替換了原Inception結構中的卷積層,為Inception結構增加了注意力機制,從而有效地改善了模型的性能。

3 試驗分析

試驗借助Ubuntu 16.04 Keras 2.2.4環境實現,編程語言采用Python,使用NVIDIA TITAN XP-12 GB的顯卡,數據集采用KITTI(Karlsruhe Institute of Technology and Toyota Technological Institute)數據集[11]。KITTI數據集包括了車、房子、樹、行人,由于KITTI數據集的測試數據集標簽還未在KITTI官網公布,因而對KITTI原始數據集中的訓練集進行了隨機拆分,將其分為4 286張圖的訓練集,343張圖的測試集,把數據集尺寸處理成320×512像素。訓練時,將處理好的訓練集輸入搭建好的神經網絡中,損失函數值最小時保存一個最優的模型權重,總共訓練20個周期。測試時,把保存好的最優權重載入模型,將測試集輸入神經網絡中進行模型評估。損失函數選擇均方誤差(mean square error,MSE),用于估計預測深度圖與對應標簽的誤差程度。用自適應矩估計優化器進行優化,以減少損失函數的值,學習率設置為1e-4。

單目深度估計的評價指標有均方根誤差(root mean squared error,RMS)、對數均方根誤差(root mean squared log error,Log_RMS)、平均對數誤差(average log10 error,Log10)、閾值精度δi(i=1,2,3)6個。前3個評價指標為誤差指標,衡量預測值和標簽之間的誤差大小,值越小表示評測的結果越好,而閾值準確性表示精確度的指標,值越大表示評測的指標越好。

我們進行一系列對比試驗來說明模型的有效性,不僅對比了一些經典模型,如Eigen等[12]、Laina等[13]、Yin等[14]的模型,同時也對比了一些新模型,如Gur等[15]、Heo等[16]。這5個模型的復現符合原設定標準,試驗環境配置同本文模型一致,訓練集和測試集圖片數量分別保持4 286張和343張。通過6個指標的對比來衡量預測深度圖的優劣性,6種模型的誤差和精度比較結果見表1(表中加粗的數值表示結果最優)。

表1 6種模型的誤差和精度比較結果Table 1 Error and accuracy comparison results of six models

由表1可知,本文模型在評價指標上總體優于對比的其他5個模型。通過具體的數據分析可知,在參與對比的這5個模型中,近兩年提出的模型測試出的指標要比復現經典模型的指標整體上有較大的提升。定量試驗的目的是要將本研究模型測得的每個指標與之前最好的評測結果逐一對比,文獻[15]的模型復現結果在RMS、Log_RMS、Log 10及δ2上表現最優,依次為2.399 6、0.234、0.120、0.949;文獻[14]的模型復現結果在δ3上最優,為0.979;文獻[16]的模型復現結果在δ1上最優,為0.685;與之前獲得的模型性能相比,本文模型在RMS上相比最優的結果2.399 6(文獻[15])減少了0.029 2。同理,在Log_RMS上相比0.234減少了0.005,在Log 10上相比0.120的誤差減少了0.002。在δ1和δ2上相比0.685和0.949分別增加了0.001和0.002,雖然δ3比最優結果小0.002,但是文獻[14]中是降低了前3個誤差指標的值來提升δ3的值。本研究提出的模型上述前5個指標均是對比模型中最優的,因此本研究模型整體的評測結果指標優于對比的神經網絡,這充分驗證了本文神經網絡的有效性。

本文模型的預測結果如圖7所示。輸入的彩色圖片如圖7(a)所示;標簽圖片如圖7(b)所示,標簽圖是灰度圖,通過深度相機拍攝而來,由一系列的像素點構成,每個像素點的值反映了該點的深度信息,因此通過深度圖可以反映深度圖中物體到攝像機的距離,不同的深度可以表示不同的距離;預測出的深度圖片如圖7(c)所示,我們可以直觀地看到,預測出的深度圖比較接近標簽圖,該深度圖可將整車輪廓及道路的場景輸出??傮w而言,生成的深度圖信息比較完整,丟失的信息較少,得到的深度圖更精確。因此,本文模型預測出了質量較高的深度圖。

圖7 本文模型的預測結果Fig.7 Predicted results by model of this paper

4 結 語

本研究提出了一種有監督單目深度估計模型,該模型通過雙流網絡對不同尺度的特征圖進行融合,采用“金字塔”模塊有效地提取多層特征,實現了不同層特征的傳遞和集成,避免了訓練過程中的特征信息丟失,改進的IA模塊有助于訓練并提升了網絡性能。試驗結果表明,我們提出的模型優于對比的其他5種模型,可以預測出精確的深度圖,從而驗證了本模型的有效性。

猜你喜歡
深度圖金字塔注意力
“金字塔”
讓注意力“飛”回來
一種基于WMF-ACA的深度圖像修復算法
Great Vacation Places
如何培養一年級學生的注意力
基于深度圖的3D-HEVC魯棒視頻水印算法
金字塔是用金子造的嗎
一種基于局部直方圖匹配的深度編碼濾波算法
A Beautiful Way Of Looking At Things
疊加速度譜在鉆孔稀少地區資料解釋中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合