?

基于多層次CNN特征融合的深度估計算法

2023-11-02 12:37胡佑璞鄒承明
計算機應用與軟件 2023年10期
關鍵詞:卷積深度特征

凌 莉 胡佑璞 鄒承明,3,4*

1(武漢工程職業技術學院信息工程學院 湖北 武漢 431400)

2(武漢理工大學計算機科學與技術學院 湖北 武漢 430000)

3(交通物聯網技術湖北省重點實驗室 湖北 武漢 430000)

4(鵬城實驗室 廣東 深圳 518055)

0 引 言

單目深度估計任務針對輸入的單幅彩色圖像,要求估計出圖像中每個像素對應的深度信息,屬于計算機視覺領域研究的熱點問題之一,在許多其他領域有著廣泛的運用,例如:目標檢測[1]、三維重建[2]、無人駕駛[3]、姿態估計[4]等。由于圖像的空間信息屬于三維信息,通過單幅二維RGB圖像獲取每個像素的深度信息是困難的。目前可以通過硬件設備直接獲取深度信息,如微軟的Kinect相機可以搜集室內的近距離場景的深度信息,激光測距儀可以獲取室外場景的深度。然而,設備的價格十分昂貴,并且在復雜的場景中,深度估計仍然是不明確的病態問題,面臨著許多挑戰。

對于深度估計,許多研究采用卷積網絡進行訓練,但是深度圖像對于網絡的底層特征信息難以利用。通過高層次特征得到的深度圖雖然與輸入圖像具有相似的輪廓結構,但是最終估計結果精度仍然較低,因為圖像缺乏大量的細節信息。

在單目場景深度估計中,一般利用物體的外觀、場景的幾何運動、物體語義等特征實現對深度的約束。單目深度估計的方法大致分為兩類:有監督學習、無監督學習。

有監督學習方面,基于外觀特征差異與場景深度的不連續性具有對應關系這一假設,深度估計被視為連續的回歸問題。Eigen等[5]首次提出使用卷積神經網絡(CNN)解決單目深度估計問題。整個網絡框架由一個全局的粗糙網絡與一個局部的精細網絡堆疊組成。全局網絡以AlexNet為基礎,提取粗糙的全局深度信息。局部網絡結合原圖信息進一步優化全局網絡的深度圖,獲得了不錯的效果。無監督學習方面,Godard等[6]利用左右視圖的一致性進行無監督的深度估計預測,通過對極幾何約束輸出視差圖,利用左右視差一致性優化性能,提高了魯棒性。Kuznietsov等[7]提出稀疏深度圖像作為標簽的半監督學習方法,提高性能。

為了改善圖像的細節信息,本文提出基于CNN融合了多層次特征的深度估計算法。通過CNN模型同時提取圖像的底層特征與高層特征,不同層次的深度網絡特征代表了不同的語義信息。高層特征表示圖像的整體空間結構,而底層特征表示圖像的局部細節。為了在最終的深度估計結果中補充細節信息,則需要融合這些不同層級的特征,從而可以提高最終的深度估計效果。通過實驗可以證明,本文方法可以較好地估計出圖像的深度信息。

1 卷積與特征融合

1.1 全卷積神經網絡

全卷積神經網絡中包含了大量的卷積結構,該模型可以在沒有全連接層的情況下對每個像素進行分類。全卷積神經網絡用卷積層代替了卷積神經網絡的全連接層,具有許多優點:1) 網絡的輸入尺寸不再限制,可以利用反卷積層和上采樣的方法,輸出與原圖像同樣大小的特征圖,從而可以預測每個像素的分類,并保留輸入圖像中的空間信息;2) 無須輸入像素點周圍的整個圖像塊,方便減少存儲空間和冗余計算;3) 利用卷積運算提取圖像的整體特征,方便全局特征學習。與卷積神經網絡相比,全卷積神經網絡有了較大的突破,但仍有一些問題。網絡只對最后的特征進行處理,對于層數較深的網絡,底層特征則沒有利用到。

1.2 反卷積

(1)

反卷積操作如式(2)所示,其中輸入特征圖大小、邊緣填充、步長、卷積核大小分別記為x2、p2、s2、k2,輸出特征圖記為y2,則:

y2=x2-k2+2p2+1

(2)

1.3 特征融合

CNN中使用的多維的卷積核,每層通過多個特征圖像組成。不同于傳統的方法,深度學習目的是利用反向傳播來自動學習圖像的表示,并非是人工特征一樣去人為地設計特征。每個卷積層通過輸入信息學習一種映射關系來表示局部空間的特征,即卷積層融合了局部空間信息和輸入圖像,并且限制于局部感受野范圍。卷積神經網絡通過疊加許多的非線性層和下采樣層,便可以學習到具有全局范圍的圖像描述信息,是一種強力的特征提取手段。通過顯示的控制信息的流向,可以建立不同層之間的依賴關系,每一層的信息可以不僅來自它的上一層,還可以接收到其他層的信息,即跳躍連接。它可以容易地使用在網絡中。

在圖像深度估計任務中,需要通過圖像的空間信息來推測物體的深度信息,需要通過全局特征與局部特征共同判斷物體的深度信息。VGG、ResNet[8]屬于利用圖像的高層語義信息的深度模型。已有的方法大部分是利用深層的CNN網絡做特征的提取。包括AlexNet[9]同樣會利用深層卷積作為網絡的特征提取手段,來對圖像做一個整體的空間特征提取。然而,這類方法利用CNN網絡的高層特征圖來表示圖像,然后估計其深度。由于高層特征往往代表全局的空間結構,其中缺少大量的細節信息,影響了深度圖估計算法的最終質量。如圖1的特征融合示意圖所示,通過將各種層次的特征連接起來,從而在最終的輸出特征中融合了代表局部細節的底層特征,進而提高了圖像的整體與細節信息,最終提高深度圖像的質量。

圖1 多層次CNN特征融合

如圖1所示,利用反卷積融合從網絡中提取低層和高層特征。輸入一幅圖像,在網絡的前向傳播里,經過多層卷積和池化后,輸出特征圖像的大小將持續減小。對這些不同尺度、不同層次的特征圖像進行反卷積后,疊加在相應的位置進行連接操作。

2 算法設計

2.1 模型的結構

特征融合的CNN模型架構如圖2所示,其中:conv-3-128表示卷積運算,表示卷積核大小為3×3,通道數為128,pool代表池化操作。架構當中顯示了對應的卷積核、步長與池化信息,表明了圖像的size變化過程。

圖2 基于多層次特征融合架構

網絡架構的左側為特征提取模塊,根據多層的卷積操作提取不同層次的特征圖??梢钥闯?第一次池化操作后,輸出圖像尺寸減小到原圖像的1/2;然后在第2次池化后,減少到1/4;一直到第5次池化后,尺寸縮小至原圖像的1/32,輸出的是512維特征圖。在第5個池化操作之后增加了一層1×1、通道數為1的卷積層,將特征圖的通道數轉換為1。第一部分輸出的X0,可以表示圖像的整體空間結構。

卷積網絡中的特征根據不同的層次具有不同的含義,一般來說,對于高層次的特征,由于感受野較大,因此包含了更多的全局信息,即圖像的整體空間信息。而相對于高層特征,低層次的特征由于感受野較小,所以關注點在局部區域,因此包含了大量的局部細節信息。但是,現有的方法大多只利用了最后的高層特征,因此導致了細節信息的丟失,使得車輛的邊緣比較模糊。但是不同層次的特征不能直接連接起來,因為它們的通道數不一致。因此需要對特征進行變化,例如:池化和采樣。得到size和通道數一致的特征圖。整體大致分為3步。

步驟3對特征圖X4進行第3次反卷積操作,目的是還原成原輸入圖像的大小,但是通道數為1,即最終輸出的深度圖像。

2.2 損失函數

損失函數(Loss Function)是用來判斷模型的指標函數,反映了模型的輸出預測值與實際真實值之間的距離。訓練過程中,就是要最小化損失函數,使得模型達到最優收斂的狀態。損失函數可分為兩類:經驗風險損失函數和結構性風險損失函數。經驗風險損失函數表達了預測結果與實際結果的差異,而結構風險損失函數則表達了正則化懲罰項與經驗風險損失函數的總和。常用的損失函數有分類交叉熵損失函數和回歸均方損失函數。

KITTI數據集中包含了所需要的采集原圖像與對象的深度圖,為了學習兩種數據之間的映射關系,需要合適的損失函數來判別兩者的差,如式(3)所示。根據有監督的模型,使用誤差進行反向傳播來更新參數權重。給定輸入的原圖像,采用回歸均方損失函數,以此評估模型輸出的深度圖像與原圖像之間的距離和誤差,再更新參數,使得模型逐步達到收斂的狀態。

(3)

3 實驗分析與評價

3.1 實驗評價指標及參數

1) 實驗參數。模型的訓練與測試均采用單塊的型號為1080Ti的GPU完成,使用的深度學習框架為TensorFlow。為了驗證本文方法的有效性,在KITTI數據集上進行測試。利用隨機梯度下降更新參數,學習率lr初始化為10-3,逐步遞減至10-4。因為是端到端的網絡模型,所以將圖像輸入至已收斂的模型中后,輸出圖像即為對應的深度圖像。

2) 評價指標。本文使用的評價指標有平均相對誤差Abs、平方相對誤差Sq、均方根誤差RMSE和閾值δ下的精度。和傳統的有代表性的方法進行對比。

(1) 平均相對誤差:

(4)

(2) 平方相對誤差:

(5)

(3) 均方根誤差:

(6)

(4) 閾值δ下的精度:

(7)

3.2 實驗數據集介紹

(1) KITTI數據集。KITTI是一個龐大的交通數據集、不僅可以訓練車輛檢測模型,還可以訓練深度估計、語義分割等模型。因此,該數據集與本文的研究方向十分吻合。并且,本文模型也需要大量的圖像使得模型訓練收斂,而且后續的章節也需要同類型的數據集進行深度估計。本文使用公開數據集KITTI[10],由德國卡爾斯魯厄理工學院與豐田美國理工學院聯合完成。在數據集中,包含了多種類型的圖像,包含了鄉村、城市、高速公路等場景。圖3是KITTI數據集中的相關統計信息??梢钥闯?數據集中的對象類型主要有:“汽車”“貨車”“卡車”“行人”等,它們是交通場景中的常見目標。

該數據集在多個領域均有廣泛的應用,例如:目標識別、深度估計、語義分割等,標簽信息很豐富。本文進行深度估計研究,KITTI數據集主要包括三種數據,注解文件使用XML文件標注了目標的類別以及坐標信息;圖像文件劃分了訓練集與測試集;JPG文件包含了訓練的原始圖像。圖片分辨率為1 242×375。通過PASCALVOC的格式,對KITTI數據集進行調整,主要是修改了原本的標簽格式。通過Python腳本進行處理。KITTI數據集統計信息如圖4所示。

圖4 KITTI數據集相關統計信息

(2) ApolloScape數據集。ApolloScape數據集是由百度公司的Apollo自動駕駛平臺采集的數據集[11]。通過激光雷達設備來采集大量的深度圖像,所采集的圖像來自北京、上海、深圳等城市。數據集中包含了像素級的語義標簽、3D信息、實例分割和雙目視角下的圖像等多種類型數據。其中包含了多種類型的目標,例如:小車、行人、人行道、交通標識、樓房等。圖像分辨率為3 384×2 710,數據集總共包含了17 062幅RGB圖像。其中的像素級語義標簽和視差圖可以分別轉換為相應的目標坐標信息和圖像的深度數據,用于目標檢測和深度估計任務。圖5是數據集ApolloScape中的一些例子。

3.3 實驗分析與算法效果

在KITTI與ApolloScape數據集上進行對比實驗,證明融合特征的多層次CNN深度估計算法的優越性。圖6為對比實驗結果展示。

(a) 原圖像 (b) Garg等 (c) 本文 (d) 真實深度圖像圖6 各數據集上的深度估計結果對比

圖6顯示了本文模型在各數據集上的深度估計效果。顏色越淺,表示物體的距離越近;顏色越深,表示物體的距離越遠。真實深度圖像中天空部分深度為缺失值,則不計入深度估計區域??梢钥闯?基于多層次CNN特征融合的深度估計方法可以較好地還原圖像的深度圖,特別是能夠更好地反映不同對象之間的細節信息。例如:如圖6的第1行與第3行所示,左側停放了多個距離較近的車輛。Garg等的深度估計結果中,多個車輛之間距離的邊界十分模糊,難以區分。本文在多個對象的區分較為清晰,并且可以發現,路中的車輛也是比較清楚的。在ApolloScape中的結果也表明本文方法的清晰度更高。原因在于本文方法是基于多種特征融合的,在CNN的感受野范圍內,既選取了高層特征,也包含了底層特征,使得圖像在整體以及局部范圍內,都可以表現較好。數據集的實驗結果表明,本文模型相對其他方法取得了較好的效果。與其他方法相比,通過對比誤差指標與精確度指標,本文方法取得了較好的結果,可以保證精度盡可能高、誤差盡可能小。

如表1所示,表示本文方法與其他兩種深度估計方法對比結果。Abs、Sq和RMSE這三個指標表示模型輸出的深度圖與真實深度圖像的誤差,值越小,說明模型的深度估計效果越好。與其他2種方法相比,本文提出的網絡結構誤差最小,計算結果有較大的改善,特別是在Abs誤差方面。相比于文獻[12]的方法Abs、Sq和RMSE誤差分別下降了41%、42%和23%;相比于文獻[13]的方法Abs、Sq和RMSE誤差分別下降了30%、15%和2%。最后3列比較了模型在深度估計中的精度。本文模型在ApolloScape中的精度也表現較好。通過比較真實深度圖像與預測深度圖像的比值來表明模型的精確度,值越高,說明模型精度越高。本文方法相比于文獻[12]的方法準確率分別提升了26%、5%和1%;相比于文獻[13]的方法準確率分別提升了15%、5%和2%。結果表明,本文算法的精度較高,說明采用多種特征融合方法的有效性。

表1 定量比較結果

文獻[12]的方法同樣屬于單目深度估計方法,且應用在室外場景。通過提出一種超像素池化方法,組合不同層級的卷積特征進行上采樣。本文與文獻[12]的方法區別在于,本文通過反卷積來改變不同層級的特征圖的size,再通過直接合并特征圖達到多層次特征融合的目的,并且取得了更好的實驗效果。而文獻[13]的方法屬于一種雙目的深度估計,通過兩個固定攝像機來獲取場景的結構化數據。根據重構誤差來進行訓練。

雖然現有的許多方法都基于CNN的模型來做特征提取,但是本文在此基礎上進行了特征融合,通過融合高層次與低層次的特征來提高深度估計的質量,最終達到圖像細節表現更好的效果。綜合圖6及表1可知,本文算法在圖像細節與指標上均表現較好,可以有效地在圖像中估計出場景的深度值。

4 結 語

為了解決CNN無法很好地利用底層特征的問題,本文提出基于多層次特征融合的卷積圖像深度估計算法。將網絡分為特征提取模塊與特征融合模塊,通過在對應位置添加不同特征圖像的方法,融合了不同層次、不同尺度的特征,增強了整體深度結構細節。實驗結果表明,本文方法能夠較好地重建場景的局部細節,恢復圖像的深度信息。

猜你喜歡
卷積深度特征
基于3D-Winograd的快速卷積算法設計及FPGA實現
深度理解一元一次方程
如何表達“特征”
從濾波器理解卷積
不忠誠的四個特征
深度觀察
深度觀察
深度觀察
基于傅里葉域卷積表示的目標跟蹤算法
抓住特征巧觀察
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合