本發(fā)明涉及圖像處理領(lǐng)域,特別是一種單目圖像深度估計(jì)方法和存儲(chǔ)介質(zhì)。
背景技術(shù):
1、單目圖像的深度估計(jì)是計(jì)算機(jī)視覺領(lǐng)域的基礎(chǔ)性研究問題,該任務(wù)旨在基于單張圖片信息,預(yù)測(cè)并恢復(fù)出場景像素級(jí)的深度信息。單目深度估計(jì)技術(shù)是三維重建、環(huán)境感知與理解等高階視覺任務(wù)的關(guān)鍵支撐技術(shù),具有廣泛的應(yīng)用需求。近年來,隨著深度學(xué)習(xí)技術(shù)的迅速發(fā)展,單目深度估計(jì)也取得了長足的發(fā)展與進(jìn)步。早期基于深度學(xué)習(xí)的單目深度估計(jì)模型通?;诰矸e神經(jīng)網(wǎng)絡(luò)(cnn)。鑒于深度神經(jīng)網(wǎng)絡(luò)強(qiáng)大的特征提取與表示能力,相比于傳統(tǒng)方法,基于cnn的方法取得了較好的深度估計(jì)結(jié)果。之后,大部分工作致力于設(shè)計(jì)越來越復(fù)雜和強(qiáng)大的網(wǎng)絡(luò)來提升模型性能,然而,在沒有額外信息引導(dǎo)的情況下,深度估計(jì)任務(wù)變得難以擬合。
2、近期,自然語言處理領(lǐng)域的transformer變得流行,研究者們將這種基于注意機(jī)制的網(wǎng)絡(luò)結(jié)構(gòu)引入計(jì)算機(jī)視覺領(lǐng)域,并取得了很好的效果。在單目深度估計(jì)領(lǐng)域,transformer架構(gòu)近年來也展現(xiàn)出了出色的效果,通過自注意力捕捉特征長距離依賴關(guān)系,在取得優(yōu)越性能的同時(shí)往往伴隨較高的計(jì)算復(fù)雜度,聯(lián)合窗口自注意力和移動(dòng)窗口的策略有效降低了算法復(fù)雜度,但難以感知全局信息。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的不足,提供一種單目圖像深度估計(jì)方法和存儲(chǔ)介質(zhì),解決現(xiàn)有技術(shù)使用移動(dòng)窗口捕獲窗口之間的聯(lián)系導(dǎo)致的圖像信息丟失問題,兼顧局部、全局和相關(guān)性信息,實(shí)現(xiàn)窗口之間、窗口和整幅圖之間的信息交流,更全面地提取圖片信息實(shí)現(xiàn)更準(zhǔn)確的深度估計(jì)效果。
2、為解決上述技術(shù)問題,本發(fā)明是采用下述技術(shù)方案實(shí)現(xiàn)的:
3、第一方面,本發(fā)明提供了一種單目圖像深度估計(jì)方法,其特征是,包括:
4、獲取待估計(jì)的單目圖像并預(yù)處理;
5、將預(yù)處理過的圖像輸入預(yù)先訓(xùn)練的初步深度估計(jì)網(wǎng)絡(luò),獲得圖像初步深度估計(jì)結(jié)果;
6、將所述初步深度估計(jì)結(jié)果輸入預(yù)先訓(xùn)練的迭代優(yōu)化網(wǎng)絡(luò),獲得最終的單目圖像深度估計(jì)結(jié)果;
7、所述初步深度估計(jì)網(wǎng)絡(luò)包括編碼器、解碼器和回歸頭;
8、所述編碼器包括若干個(gè)依次連接的編碼層,所述解碼器包含若干個(gè)依次連接的解碼層,各所述編碼層沿編碼順序方向與各解碼層沿解碼順序反方向一一對(duì)應(yīng);所述解碼層采用三元組交叉注意力tca模塊,
9、所述三元組交叉注意力tca模塊包括窗口注意力wca模塊、跨維度注意力cda模塊、相關(guān)性注意力rea模塊和特征塊選擇融合fbsf模塊;
10、所述窗口注意力wca模塊用于對(duì)輸入的編碼特征和解碼特征計(jì)算注意力,輸出窗口注意力特征;
11、所述跨維度注意力cda模塊用于對(duì)輸入的所述解碼特征和所述窗口注意力特征計(jì)算注意力,輸出跨維度注意力特征;
12、所述相關(guān)性注意力rea模塊用于對(duì)所述窗口注意力特征進(jìn)行窗口相關(guān)性特征提取并計(jì)算注意力,輸出相關(guān)性注意力特征;
13、所述特征塊選擇融合fbsf模塊對(duì)所述窗口注意力特征、所述跨維度注意力特征和所述相關(guān)性注意力特征融合,生成本解碼層的輸出特征;
14、最后一個(gè)解碼層的輸出為最終解碼特征;所述編碼特征為本解碼層所對(duì)應(yīng)編碼層的輸出特征;若本解碼層為第一個(gè)解碼層,則輸入本解碼層的解碼特征為每個(gè)所述編碼層的輸出特征融合后的輸出特征,若本解碼層不為第一個(gè)解碼層,則輸入本解碼層的解碼特征為前一個(gè)解碼層的輸出特征;
15、所述回歸頭,用于根據(jù)所述最終解碼特征生成所述初步深度估計(jì)結(jié)果。
16、上述圖像深度估計(jì)過程,通過窗口注意力wca、跨維度注意力cda和相關(guān)性注意力rea模塊的設(shè)計(jì),來刻畫局部、全局以及局部之間的特征關(guān)系,設(shè)計(jì)特征塊選擇融合fbsf模塊將三種不同視角下的注意力進(jìn)行有效融合,去除具有高度相似的特征表示,兼顧局部、全局信息以及局部信息的相關(guān)性得到更加魯棒的特征表示,經(jīng)過迭代優(yōu)化模塊優(yōu)化生成的初步深度估計(jì)結(jié)果,得到最終的單目圖像深度估計(jì)結(jié)果。
17、可選的,所述窗口注意力wca模塊對(duì)輸入的編碼特征和解碼特征計(jì)算注意力包括:
18、s11:將所述預(yù)處理過的圖像拆分成窗口;
19、s12:在各個(gè)窗口,對(duì)所述編碼特征計(jì)算q向量和k向量,對(duì)所述解碼特征計(jì)算v向量,其中q向量、k向量和v向量分別為對(duì)應(yīng)特征經(jīng)過線性變化得到的quary矩陣、key矩陣和value矩陣;
20、s13:根據(jù)各個(gè)窗口計(jì)算的q向量、k向量和v向量,計(jì)算窗口注意力輸出為窗口注意力特征,公式為:
21、,
22、其中,表示窗口注意力特征,表示歸一化函數(shù),b為相對(duì)位置偏差矩陣,d表示q向量和k向量的向量維度的比值,b中每個(gè)元素表示位置m和位置n之間的相對(duì)位置嵌入,其中m表示q向量中的元素位置,n表示k向量中的元素位置。
23、窗口注意力wca模塊用于關(guān)注圖像局部窗口內(nèi)的細(xì)節(jié)特征,相對(duì)位置編碼通過一個(gè)可學(xué)習(xí)的矩陣b來表示查詢q和鍵k對(duì)之間的相對(duì)位置,這樣在計(jì)算注意力分?jǐn)?shù)時(shí),不僅考慮內(nèi)容相似度,還將相對(duì)位置的信息加入進(jìn)去。計(jì)算完每個(gè)窗口內(nèi)的注意力后,再將這些結(jié)果按原始位置重排,以得到最終的注意力輸出。這種方法可以在捕捉位置信息的同時(shí),提高模型的表現(xiàn)力和泛化能力,更好地關(guān)注圖像局部窗口內(nèi)的細(xì)節(jié)特征。
24、可選的,所述初步深度估計(jì)網(wǎng)絡(luò)還包括金字塔池化ppm模塊,金字塔池化ppm模塊接收每個(gè)所述編碼層的輸出特征,融合處理得到輸入第一個(gè)解碼層的所述解碼特征。
25、可選的,所述跨維度注意力cda模塊包括全局向量生成器gvg,所述全局向量生成器gvg用于接收所述解碼特征處理生成全局感知向量,過程為:
26、s211:將所述解碼特征的維度的大小壓縮成與窗口維度相同,所述解碼特征的維度和窗口維度的大小分別為解碼特征分辨率和窗口分辨率;
27、s212:將壓縮的解碼特征復(fù)制恢復(fù)成原所述解碼特征的維度,邊緣用mask補(bǔ)充;
28、s213:從恢復(fù)后的解碼特征各個(gè)窗口大小的壓縮解碼特征內(nèi)提取v向量作為全局感知向量。
29、將壓縮的解碼特征復(fù)制恢復(fù)成原解碼特征維度時(shí),當(dāng)遇到邊緣不足以放置整個(gè)壓縮的解碼特征,則采用mask補(bǔ)充完整,mask是一個(gè)只有0和1的值的二值化圖像,用于標(biāo)識(shí)哪些像素是有效的,即原始特征中的像素,哪些像素是填充或復(fù)制的,即需要被mask掉的像素。
30、可選的,所述跨維度注意力cda模塊用于對(duì)輸入的所述解碼特征和所述窗口注意力特征計(jì)算注意力包括:
31、s21:所述全局向量生成器gvg生成所述全局感知向量,所述全局感知向量作為v向量,對(duì)所述窗口注意力特征計(jì)算得到q向量和k向量;
32、s22:對(duì)q向量、k向量和v向量計(jì)算注意力,輸出所述跨維度注意力特征。
33、全局感知向量代表了更遠(yuǎn)距離或者說全局性的長程依賴關(guān)系。將全局感知向量作為包含全局信息的v向量,與局部特征向量一同參與在窗口內(nèi)進(jìn)行不同維度之間的注意力計(jì)算,得到跨維度注意力特征,該特征能夠表示整幅圖像與當(dāng)前窗口特征之間的關(guān)系,實(shí)現(xiàn)窗口內(nèi)外信息的交互。
34、可選的,所述相關(guān)性注意力rea模塊用于對(duì)所述窗口注意力特征進(jìn)行窗口相關(guān)性特征提取并計(jì)算注意力包括:
35、s31:將所述窗口注意力特征拆分為不同的窗口,每個(gè)窗口經(jīng)過線性變換,得到q向量、k向量和v向量;
36、s32:將q向量和k向量的每個(gè)窗口內(nèi)取平均作為該窗口的標(biāo)志;
37、s33:分別提取所述q向量和k向量各個(gè)窗口的標(biāo)志對(duì)應(yīng)生成中間q向量矩陣與中間k向量矩陣;
38、s34:將中間q向量矩陣與中間k向量矩陣的轉(zhuǎn)置矩陣相乘,生成表示窗口之間親和關(guān)系的鄰接矩陣;
39、s35:基于所述鄰接矩陣構(gòu)建索引函數(shù),得到每個(gè)窗口與哪k個(gè)窗口相關(guān)性最高,k是小于窗口數(shù)量的非零自然數(shù);
40、s36:分別對(duì)所述k向量和v向量使用所述索引函數(shù)進(jìn)行索引并使用收集函數(shù)收集對(duì)應(yīng)的索引結(jié)果,生成包含窗口相關(guān)性信息的k向量和包含窗口相關(guān)性信息的v向量;
41、s37:對(duì)q向量、包含窗口相關(guān)性信息的k向量和包含窗口相關(guān)性信息的v向量計(jì)算注意力,輸出相關(guān)性注意力特征。
42、相關(guān)性注意力rea模塊利用語義相關(guān)性計(jì)算高度關(guān)聯(lián)的窗口之間的注意力,實(shí)現(xiàn)窗口之間信息交流,從而獲取各個(gè)窗口的全局依賴關(guān)系。
43、可選的,所述特征塊選擇融合fbsf模塊對(duì)所述窗口注意力特征、所述跨維度注意力特征和所述相關(guān)性注意力特征融合,包括:
44、s41:將所述跨維度注意力特征和所述相關(guān)性注意力特征之和設(shè)為第一特征gu;
45、s42:將所述第一特征gu和所述窗口注意力特征沿著通道維度進(jìn)行拼接,形成第二特征bu;
46、s43:將所述第二特征bu通過切片操作分割成特征塊;
47、s44:將被分割的特征塊通過特征塊選擇操作間隔選中,提取各個(gè)被選中特征塊里的最大值生成第三特征bu';
48、s45:對(duì)所述第三特征bu'應(yīng)用卷積操作生成兩個(gè)通道,對(duì)每個(gè)通道應(yīng)用sigmoid函數(shù)生成一個(gè)雙通道注意圖,將所述第一特征gu和所述窗口注意力特征分別與該雙通道注意圖相乘生成第四特征gu’和第五特征lu’;
49、s46:將所述第四特征gu’和第五特征lu’相加生成本解碼層的輸出特征。
50、特征塊選擇融合fbsf模塊將三種不同視角下的注意力進(jìn)行有效融合。特征gu由跨維度注意力和相關(guān)性注意力結(jié)果之和組成,這些特征具有全局性的長程依賴關(guān)系。特征lu則是通過窗口自注意力機(jī)制得到的局部特征,具有較強(qiáng)的局部關(guān)聯(lián)性。通過特征塊選擇操作,去除具有高度相似的特征表示,可以在保留關(guān)鍵信息的同時(shí)減少特征的維度,從而得到更具代表性的特征。最后通過sigmoid操作生成一個(gè)雙通道注意圖,其中每個(gè)局部和全局特征分別與一個(gè)通道圖相乘,以聚焦于重要位置,得到最終特征表示。
51、可選的,所述迭代優(yōu)化網(wǎng)絡(luò)包括基于門控循環(huán)單元gru的迭代優(yōu)化器,所述迭代優(yōu)化網(wǎng)絡(luò)基于初步深度估計(jì)結(jié)果獲得最終的單目圖像深度估計(jì)結(jié)果,包括:
52、s51:計(jì)算不確定圖與第t階段的深度圖之間的差值表示t階段的差異圖,公式為:
53、 ?=? ,
54、其中,t=1時(shí),為初始的深度圖,其值為所述初步深度估計(jì)結(jié)果,所述不確定圖由所述最終解碼特征經(jīng)過所述回歸頭生成;
55、s52:將第t階段的深度圖、不確定圖、第t階段的差異圖、第t階段的隱藏特征和初始的隱藏特征輸入門控循環(huán)單元gru生成第t+1階段的隱藏特征,具體計(jì)算為:
56、,
57、其中,為第一個(gè)編碼層的輸出特征;
58、s53:將所述第t+1階段的隱藏特征輸入更新模塊△生成的計(jì)算結(jié)果疊加第t階段的深度圖,輸出第t+1階段深度圖,具體計(jì)算為:
59、?=?+△(),
60、其中,更新模塊△為conv-relu組合操作,
61、所述迭代優(yōu)化器的迭代過程為:設(shè)定迭代次數(shù)為x,x為非零自然數(shù),t的初始值為1順序循環(huán)執(zhí)行s51-s53步驟至t等于x,為所述最終的單目圖像深度估計(jì)結(jié)果。
62、本發(fā)明生成的初步深度估計(jì)結(jié)果已經(jīng)顯著提升了物體邊緣和輪廓的效果。然而在一些圖片中,對(duì)于那些顏色接近但深度不同的情況下,深度變化的預(yù)測(cè)存在錯(cuò)誤。為了進(jìn)一步提高預(yù)測(cè)準(zhǔn)確率,本發(fā)明采用了基于gru的迭代優(yōu)化器,對(duì)初步深度估計(jì)結(jié)果進(jìn)行迭代優(yōu)化。
63、可選的,訓(xùn)練所述初步深度估計(jì)網(wǎng)絡(luò)和所述迭代優(yōu)化網(wǎng)絡(luò)包括訓(xùn)練損失函數(shù),采用的損失函數(shù)包括不確定性損失和深度圖損失;
64、計(jì)算所述不確定性損失包括:
65、s61:用拉普拉斯分布的概率密度函數(shù)來構(gòu)建第i個(gè)像素點(diǎn)的不確定性真值:
66、,
67、其中,為數(shù)據(jù)集提供的第i個(gè)像素點(diǎn)的圖像深度真值,為第i個(gè)像素點(diǎn)的圖像深度預(yù)測(cè)值,所述圖像深度預(yù)測(cè)值為所述迭代優(yōu)化網(wǎng)絡(luò)的各階段的深度圖,t表示控制誤差容忍度的系數(shù),exp為e為底數(shù)的指數(shù)函數(shù);
68、s62:計(jì)算不確定性損失:
69、,
70、其中,為第i個(gè)像素點(diǎn)的不確定圖的不確定性值,表示第i個(gè)像素點(diǎn)的圖像不確定性預(yù)測(cè)值,為i個(gè)絕對(duì)值求和運(yùn)算;
71、計(jì)算所述深度圖損失包括:
72、s71:計(jì)算圖像第i個(gè)像素點(diǎn)深度預(yù)測(cè)值與深度真值之間e為底的對(duì)數(shù)函數(shù)差:
73、,
74、s72:計(jì)算深度圖損失silog如下:
75、,
76、其中y為像素點(diǎn)總數(shù),是方差最小化因子,是尺度常數(shù);
77、總體損失為silog計(jì)算結(jié)果與不確定性損失之和:
78、。
79、為了減輕深度噪聲的負(fù)面影響,引入了一個(gè)不確定性校正損失,通過對(duì)存在較高不確定性的部分進(jìn)行修正,減輕高不確定性區(qū)域?qū)Σ淮_定圖生成的負(fù)面影響。同時(shí),使用silog來監(jiān)督迭代優(yōu)化器各個(gè)階段生成的深度圖,不確定性損失疊加深度圖損失構(gòu)成總體損失函數(shù)訓(xùn)練模型,實(shí)現(xiàn)更準(zhǔn)確的深度估計(jì)效果。
80、第二方面,本發(fā)明提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)一個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序包括指令,所述指令當(dāng)由計(jì)算設(shè)備執(zhí)行時(shí),使得所述計(jì)算設(shè)備執(zhí)行單目圖像深度估計(jì)方法。
81、與現(xiàn)有技術(shù)相比,本發(fā)明所達(dá)到的有益效果:
82、本發(fā)明適用于單目圖像深度估計(jì),解決了現(xiàn)有技術(shù)使用移動(dòng)窗口捕獲窗口之間的聯(lián)系導(dǎo)致的圖像信息丟失問題,兼顧局部、全局和相關(guān)性信息,實(shí)現(xiàn)窗口之間、窗口和整幅圖之間的信息交流,更全面地提取圖片信息實(shí)現(xiàn)更準(zhǔn)確的深度估計(jì)效果。
83、具體來說,設(shè)計(jì)窗口注意力wca模塊用于關(guān)注圖像局部窗口內(nèi)的細(xì)節(jié)特征,跨維度注意力cda模塊通過計(jì)算整幅圖像與當(dāng)前窗口特征之間的關(guān)系,實(shí)現(xiàn)窗口內(nèi)外信息的交互,相關(guān)性注意力rea模塊利用語義相關(guān)性計(jì)算高度關(guān)聯(lián)的窗口之間的注意力,實(shí)現(xiàn)與其他窗口的信息交流,從而獲取各個(gè)窗口的全局依賴關(guān)系。同時(shí),設(shè)計(jì)了一種特征塊選擇融合機(jī)制將三種不同視角下的注意力進(jìn)行有效融合,去除具有高度相似的特征表示,以得到更加魯棒的特征表示。根據(jù)融合了局部、全局信息以及局部相關(guān)性的最終特征表示,生成初步的深度估計(jì)結(jié)果,將初步深度估計(jì)結(jié)果輸入迭代優(yōu)化模塊得到最終單目圖像深度估計(jì)結(jié)果。
84、本發(fā)明通過獲取全局窗口信息以及不同窗口之間的交互信息,解決信息缺失問題。通過特征塊選擇操作,有效融合全局與局部特征,避免了融合注意力機(jī)制產(chǎn)生的大量相似特征,使用自迭代模塊對(duì)初始結(jié)果做了進(jìn)一步修正。利用深度圖與深度不確定圖之間的關(guān)系,設(shè)計(jì)包括不確定性損失和深度圖損失的損失函數(shù),迭代優(yōu)化初始生成的結(jié)果,從而實(shí)現(xiàn)更準(zhǔn)確的單目圖像深度估計(jì)。