王培彪
(青島大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,山東 青島 266071)
從單幅 RGB圖像中估計(jì)場(chǎng)景中物體深度的方法稱為單目深度估計(jì),近年來(lái)機(jī)器學(xué)習(xí)方法在物體識(shí)別[1]、自然語(yǔ)言處理及場(chǎng)景理解等領(lǐng)域得到廣泛應(yīng)用?;趥鹘y(tǒng)機(jī)器學(xué)習(xí)的單目深度估計(jì)方法一般使用馬爾可夫隨機(jī)場(chǎng)(MRF)或條件隨機(jī)場(chǎng)(CRF)對(duì)場(chǎng)景中的物體深度關(guān)系進(jìn)行估計(jì)[2],隨著卷積神經(jīng)網(wǎng)絡(luò)(CNN)[3]以及深度學(xué)習(xí)技術(shù)日漸成熟,深度學(xué)習(xí)方法在單目圖像深度估計(jì)中開(kāi)始被研究與應(yīng)用。深度學(xué)習(xí)方法主要分為有監(jiān)督型和無(wú)監(jiān)督型兩類(lèi),本文介紹了有監(jiān)督型神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù)(NAS)[4-8]的模型與算法,研究并實(shí)現(xiàn)了在目前主流數(shù)據(jù)集SceneFlow上的算法測(cè)試驗(yàn)證結(jié)果,探討了目前研究中存在的難點(diǎn)與不足,在此基礎(chǔ)上進(jìn)行總結(jié)并提出優(yōu)化方案。
2006年,深度學(xué)習(xí)的概念最早由Hinton[9]提出,卷積神經(jīng)網(wǎng)絡(luò)(CNN)利用卷積核對(duì)圖像特征進(jìn)行提取,通過(guò)神經(jīng)網(wǎng)絡(luò)對(duì)特征逐層抽象。基于單目圖像的深度學(xué)習(xí)估計(jì)方法,可以分為有監(jiān)督和無(wú)監(jiān)督兩類(lèi)。
2014年,Eigen[10]等人首次實(shí)現(xiàn)將深度學(xué)習(xí)技術(shù)應(yīng)用于單目深度估計(jì),他們提出使用兩種尺度的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)單張圖片深度進(jìn)行估計(jì)的方法,其中粗尺度的網(wǎng)絡(luò)用于預(yù)測(cè)單張圖片的全局深度,細(xì)尺度的網(wǎng)絡(luò)用于優(yōu)化單張圖片的局部細(xì)節(jié)。
2016年,Liu[11]等人把CNN與CRF相結(jié)合,通過(guò)能量函數(shù)計(jì)算最大后驗(yàn)概率,估計(jì)單幅圖像的深度。上述方法在網(wǎng)絡(luò)的訓(xùn)練階段都需要圖像的真實(shí)參考深度圖,屬于監(jiān)督型學(xué)習(xí)。Garg[12]等人提出了無(wú)監(jiān)督框架,通過(guò)使用傳統(tǒng)的雙目立體匹配技術(shù)構(gòu)建目標(biāo)函數(shù),然后反向訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)。
在單目圖像深度估計(jì)場(chǎng)景中,監(jiān)督學(xué)習(xí)方法通過(guò)向網(wǎng)絡(luò)輸入真實(shí)的參考深度圖來(lái)訓(xùn)練網(wǎng)絡(luò),相比于無(wú)監(jiān)督學(xué)習(xí)方法,監(jiān)督學(xué)習(xí)方法可以獲得更高的精度,因此有大量研究人員從網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)、約束條件等角度展開(kāi)大量研究。
2019年,谷歌和斯坦福大學(xué)合作,推出了Auto-DeepLab[13],將神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù)用于圖像分割的領(lǐng)域里。Auto-DeepLab不僅可以參數(shù)化Cell,而且可以動(dòng)態(tài)搜索網(wǎng)絡(luò)層最優(yōu)化路徑。
神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索(neural architecture search,NAS)技術(shù)是一種通過(guò)算法自動(dòng)搜索針對(duì)解決給定任務(wù)最優(yōu)神經(jīng)網(wǎng)絡(luò)架構(gòu)的方法,在精度和效率上目前已超過(guò)傳統(tǒng)依靠專家經(jīng)驗(yàn)設(shè)計(jì)的網(wǎng)絡(luò)模型方式。
Liu等人提出Auto-DeepLab框架將神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù)應(yīng)用于圖像分割領(lǐng)域,神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索空間分為Network級(jí)和Cell級(jí)搜索,如圖1所示為 Network級(jí)搜索路徑,橫坐標(biāo)代表網(wǎng)絡(luò)層序號(hào),縱坐標(biāo)代表通道數(shù)倍數(shù)。白色節(jié)點(diǎn)代表固定的主干網(wǎng)絡(luò)層,藍(lán)色節(jié)點(diǎn)代表可選的Cell,箭頭的方向指示可搜索路徑,從左到右搜索到的最優(yōu)路徑為搜索空間Network級(jí)最優(yōu)搜索路徑。藍(lán)色節(jié)點(diǎn)Cell也是通過(guò)搜索得到,比如圖中黃色虛線所框選的三個(gè)Cell,如圖2所示為其Cell級(jí)搜索路徑,其中分別代表黃色框中左側(cè)、中間、右側(cè)三個(gè)藍(lán)色 Cell。黃色箭頭的計(jì)算值使用αj→i參數(shù)關(guān)聯(lián),右側(cè)Cell的計(jì)算結(jié)果通過(guò)圖1灰色箭頭方向可知,右側(cè)Cell的最終計(jì)算值分別與左上、左側(cè)、左下三個(gè)方向的計(jì)算值有關(guān),在此分別使用關(guān)聯(lián)。
Auto-DeepLab通過(guò)將網(wǎng)絡(luò)空間 Network和Cell級(jí)搜索參數(shù)化,Cell結(jié)構(gòu)參數(shù)可以表示為:
Network架構(gòu)參數(shù)表示為:
Network架構(gòu)參數(shù)需要滿足:
在優(yōu)化α、β參數(shù)時(shí)使用可微架構(gòu)搜索DARTS方法,把數(shù)據(jù)集分成訓(xùn)練集和驗(yàn)證集,分別輪流訓(xùn)練:
1. 固定架構(gòu)參數(shù)α和β,用訓(xùn)練集訓(xùn)練網(wǎng)絡(luò)權(quán)重參數(shù)ω
2. 固定網(wǎng)絡(luò)權(quán)重參數(shù)ω,用驗(yàn)證集訓(xùn)練架構(gòu)參數(shù)α和β
Auto-DeepLab框架神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索結(jié)果如圖3所示。
基于Auto-Deeplab神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù),本節(jié)我們對(duì)單目深度估計(jì)實(shí)現(xiàn)中的Cell級(jí)架構(gòu)搜索進(jìn)行描述。如圖4所示,單目深度估計(jì)中Cell級(jí)架構(gòu)搜索主要分為:兩個(gè)輸入節(jié)點(diǎn)三個(gè)中間節(jié)點(diǎn)一個(gè)輸出節(jié)點(diǎn)架構(gòu)參數(shù)α。
Cell結(jié)構(gòu)參數(shù)可以表示為:
節(jié)點(diǎn)是構(gòu)成Cell的基本元素,每個(gè)節(jié)點(diǎn)都是一個(gè)張量,在Cell級(jí)架構(gòu)搜索過(guò)程中,每個(gè)節(jié)點(diǎn)是通過(guò)特定操作得到的多通道圖像大小的特征圖。我們?cè)O(shè)置了兩種特定操作:1)3×3可分離卷積 2)跳躍連接,如圖 4所示,每個(gè)α架構(gòu)參數(shù)定義了兩種操作的權(quán)重值。與Auto-Deeplab神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù)相同,如圖1所示,當(dāng)前Cell的兩個(gè)輸入節(jié)點(diǎn)分別來(lái)自于網(wǎng)絡(luò)中左側(cè)前一個(gè)和上一個(gè)Cell的輸出值。在單目深度估計(jì)過(guò)程中,我們?cè)黾恿艘粋€(gè)深度值維度,計(jì)算量比Auto-Deeplab顯著增加,為此我們除了減少特定操作種類(lèi)之外,對(duì)比圖2和圖4可以發(fā)現(xiàn),中間節(jié)點(diǎn)數(shù)量減少為3個(gè),這種通過(guò)空間換時(shí)間的方式,可以明顯加快高維數(shù)據(jù)量的計(jì)算速率。
在單目深度估計(jì)神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索過(guò)程中,不僅要通過(guò)Feature Net輸出多通道圖像大小的特征圖,還要在特征圖基礎(chǔ)上添加一維深度信息,通過(guò)Matching Net最終輸出深度圖。
β是網(wǎng)絡(luò)架構(gòu)參數(shù),即是通過(guò)β參數(shù)實(shí)現(xiàn)網(wǎng)絡(luò)架構(gòu)參數(shù)化,獲得最優(yōu)路徑。
Network級(jí)架構(gòu)參數(shù)表示為:
Feature Net架構(gòu)搜索路徑如圖5所示,黃框計(jì)算l=4,s=12的Network級(jí)架構(gòu)參數(shù)slH,分別對(duì)應(yīng)紅、綠、藍(lán)三條路徑的權(quán)值,三條路徑選擇是一個(gè)離散問(wèn)題,由于離散問(wèn)題的搜索空間無(wú)法直接使用梯度下降法進(jìn)行優(yōu)化,為了使路徑選擇的搜索空間連續(xù),我們求取各種路徑選擇權(quán)值的softmax值,將離散搜索空間轉(zhuǎn)變?yōu)檫B續(xù)搜索空間問(wèn)題。
Matching Net架構(gòu)搜索路徑如圖6所示,將Feature Net輸出特征圖添加一維深度信息,分別取不同深度值,然后再將左右圖像輸出值合并,為了更好的獲取深度信息,與Feature Net相比網(wǎng)絡(luò)層數(shù)增大一倍變?yōu)?2層,與Auto-DeepLab處理的數(shù)據(jù)相比不僅維度增加,特征圖面積也增大一倍,二維卷積核變?yōu)槿S卷積核,計(jì)算數(shù)據(jù)量顯著增加,在Cell級(jí)架構(gòu)搜索過(guò)程中減少操作數(shù)和中間計(jì)算節(jié)點(diǎn),可以有效提高M(jìn)atching Net架構(gòu)搜索路徑效率。
3.3.1 對(duì)比分析效果
在神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索方法中,α、β參數(shù)為動(dòng)態(tài)可優(yōu)化參數(shù),使用可微架構(gòu)搜索DARTS方法,把數(shù)據(jù)集分成訓(xùn)練集和驗(yàn)證集,在每次迭代中,首先固定架構(gòu)參數(shù)α和β,用訓(xùn)練集訓(xùn)練網(wǎng)絡(luò)權(quán)重參數(shù)ω,然后固定網(wǎng)絡(luò)權(quán)重參數(shù)ω,繼續(xù)用訓(xùn)練集訓(xùn)練架構(gòu)參數(shù)α和β,最后計(jì)算每個(gè) epoch總誤差。訓(xùn)練集 epoch結(jié)束后,使用驗(yàn)證集驗(yàn)證訓(xùn)練模型的平均每次迭代誤差值。
在傳統(tǒng)固定架構(gòu)神經(jīng)網(wǎng)絡(luò)方法中,α、β參數(shù)為固定隨機(jī)參數(shù),同樣使用可微架構(gòu)搜索DARTS方法,把數(shù)據(jù)集分成訓(xùn)練集和驗(yàn)證集,在每次迭代中,只用訓(xùn)練集訓(xùn)練網(wǎng)絡(luò)權(quán)重參數(shù)ω,最后計(jì)算每個(gè)epoch總誤差。訓(xùn)練集epoch結(jié)束后,使用驗(yàn)證集驗(yàn)證訓(xùn)練模型的平均每次迭代誤差值。
實(shí)驗(yàn)所用顯卡為RTX3060,顯存12G,數(shù)據(jù)集選用SceneFlow數(shù)據(jù)集,實(shí)驗(yàn)數(shù)據(jù)如圖7、8所示,神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索方法與傳統(tǒng)固定架構(gòu)神經(jīng)網(wǎng)絡(luò)方法相比,訓(xùn)練和驗(yàn)證誤差都較小,盡管每次迭代計(jì)算量較大,但是損失函數(shù)的降低速率更快。
3.3.2 估計(jì)測(cè)試效果
如圖 9所示,左圖為神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù)單目深度估計(jì)圖,計(jì)算時(shí)間分別為3.72s和4.11s,圖像大小 576×960,神經(jīng)網(wǎng)絡(luò)估計(jì)的深度值范圍為0到192,將深度灰度圖轉(zhuǎn)換為RGB圖后,其中R值越大代表深度值越小,B值越大代表深度值越大。
本文基于Auto-Deeplab的神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù),研究并實(shí)現(xiàn)了在單目深度估計(jì)問(wèn)題領(lǐng)域應(yīng)用。通過(guò)實(shí)驗(yàn)與傳統(tǒng)固定架構(gòu)神經(jīng)網(wǎng)絡(luò)方法對(duì)比,驗(yàn)證了神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù)在單目深度估計(jì)領(lǐng)域的優(yōu)越性,并將深度估計(jì)圖轉(zhuǎn)換為RGB圖進(jìn)行顯示,基本能夠估計(jì)出場(chǎng)景中物體的不同深度。由于數(shù)據(jù)集的質(zhì)量在很大程度上決定了模型的魯棒性和泛化能力,SceneFlow的數(shù)據(jù)集來(lái)自于虛擬場(chǎng)景,如何提高模型的泛化能力是我們以后研究的重要方向。
同時(shí),在 Matching Net架構(gòu)搜索路徑和優(yōu)化權(quán)值過(guò)程中,由于處理帶有深度信息更高維的數(shù)據(jù),計(jì)算量顯著增加,如何提高算法效率,并得到更精確細(xì)致的深度信息也是我們研究的重要方向。