馬成齊,李學(xué)華,張?zhí)m杰,向 維,2
1.北京信息科技大學(xué) 信息與通信工程學(xué)院,北京100101
2.詹姆斯庫(kù)克大學(xué) 工程學(xué)院,昆士蘭 凱恩斯4878
近年來(lái),隨著深度學(xué)習(xí)技術(shù)的迅速發(fā)展,產(chǎn)生了越來(lái)越多的智能化技術(shù)。例如與深度估計(jì)有著密切聯(lián)系的圖像編輯、VR(Virtual Reality)、AR(Augmented Reality)、3D場(chǎng)景解析和自動(dòng)駕駛技術(shù)等。在深度學(xué)習(xí)技術(shù)問(wèn)世之前,利用普通相機(jī)只能捕獲場(chǎng)景的二維平面信息,無(wú)法獲取到場(chǎng)景中的深度值。雖然通過(guò)使用多個(gè)攝像頭以及激光和雷達(dá)設(shè)備,能夠獲取到深度信息,但激光和雷達(dá)不能完美地與相機(jī)對(duì)準(zhǔn),會(huì)導(dǎo)致測(cè)量的深度值產(chǎn)生誤差。因此,有學(xué)者開(kāi)始采用深度學(xué)習(xí)技術(shù)替代傳統(tǒng)的激光雷達(dá),在獲取深度信息的同時(shí)節(jié)約了成本。
使用深度學(xué)習(xí)技術(shù)進(jìn)行單目深度估計(jì)可分為監(jiān)督型和自監(jiān)督型。在監(jiān)督型單目深度估計(jì)中,較為經(jīng)典的是Eigen 和Fergus[1]設(shè)計(jì)的一個(gè)包含粗糙網(wǎng)絡(luò)和細(xì)化網(wǎng)絡(luò)的系統(tǒng)。該系統(tǒng)中的粗糙網(wǎng)絡(luò)用于對(duì)圖像做全局預(yù)測(cè),細(xì)化網(wǎng)絡(luò)用于對(duì)全局預(yù)測(cè)的結(jié)果進(jìn)行局部?jī)?yōu)化,整個(gè)網(wǎng)絡(luò)采用了較早的AlexNet 架構(gòu)。2015 年,Eigen 和Fergus[2]改進(jìn)了上述系統(tǒng),在原有的兩個(gè)網(wǎng)絡(luò)中增加了一個(gè)采樣網(wǎng)絡(luò),加深了網(wǎng)絡(luò)結(jié)構(gòu),同時(shí)將AlexNet架構(gòu)更換為層數(shù)更深的VGG 架構(gòu),使得輸出的深度圖與使用AlexNet架構(gòu)相比更為清晰。2018年,F(xiàn)u等人[3]提出了編碼解碼深度估計(jì)網(wǎng)絡(luò),采用洞卷積型網(wǎng)絡(luò)來(lái)更好地提取圖像的多尺度特征,相比以往的監(jiān)督型方法,輸出的深度圖分辨率更高。以上監(jiān)督型方法在訓(xùn)練過(guò)程中都需要地面真實(shí)深度,即需要大量密集標(biāo)注后的數(shù)據(jù)集。但在實(shí)際中,數(shù)據(jù)集的深度信息標(biāo)簽普遍是稀疏的,采用監(jiān)督型單目深度估計(jì)不能較好地對(duì)場(chǎng)景進(jìn)行密集估計(jì)。
不同于監(jiān)督型方法,自監(jiān)督方法在網(wǎng)絡(luò)輸入部分使用的是左右兩個(gè)相機(jī)在同一水平位置上拍攝出的圖像[4](即同步立體對(duì)),或者單目視頻[5]中相鄰幀組合的一組圖像。采用自監(jiān)督方法進(jìn)行單目深度估計(jì),較為經(jīng)典的是Zhou等人[6]設(shè)計(jì)的系統(tǒng),該系統(tǒng)把未作任何標(biāo)記的單目視頻中的每一幀圖像都作為訓(xùn)練集,使用深度估計(jì)網(wǎng)絡(luò)和相機(jī)位姿網(wǎng)絡(luò)對(duì)上述訓(xùn)練集進(jìn)行訓(xùn)練。之后采用視圖合成方法,將深度網(wǎng)絡(luò)估計(jì)出的深度信息與相機(jī)位姿網(wǎng)絡(luò)結(jié)合,恢復(fù)出與目標(biāo)圖像相鄰的另一幅圖像。最后將恢復(fù)出的圖像與目標(biāo)圖像做差,通過(guò)最小化損失函數(shù)使網(wǎng)絡(luò)收斂。Godard[4]則采用同步立體對(duì)圖像作為訓(xùn)練集,利用圖像重建損失對(duì)深度網(wǎng)絡(luò)進(jìn)行訓(xùn)練,輸出視差圖,之后與目標(biāo)圖像相結(jié)合,得到估計(jì)的深度圖,進(jìn)一步提升了準(zhǔn)確率。Mahjourian等人[7]提出了一種將場(chǎng)景中的三維損失與單目視頻中的二維損失結(jié)合的方法,同時(shí)結(jié)合掩碼將無(wú)用的信息去除,最終得到了較好的深度圖。但由于現(xiàn)有數(shù)據(jù)集存在物體間遮擋以及物體運(yùn)動(dòng)問(wèn)題,采用自監(jiān)督方法估計(jì)出的深度圖都會(huì)存在偽影。
為了解決以上問(wèn)題,本文提出了一種抗遮擋的自監(jiān)督單目深度估計(jì)方法。主要貢獻(xiàn)如下:(1)提出了一種新穎的網(wǎng)絡(luò)架構(gòu),將U-Net[8]架構(gòu)與殘差網(wǎng)絡(luò)(Residual Network,ResNet)[9]融合,并且保證了輸入和輸出的圖像分辨率一致。(2)使用最小化光度重投影損失函數(shù)與自動(dòng)掩蔽損失來(lái)處理物體被遮擋的問(wèn)題,使估計(jì)出的深度圖更加清晰,減少了邊界偽影。(3)基于KITTI數(shù)據(jù)集[10],驗(yàn)證了本文方法的有效性,相比于文獻(xiàn)[4,11-13]中提到的四種方法,本文方法呈現(xiàn)了較好的估計(jì)結(jié)果。
本章將從深度網(wǎng)絡(luò)模型的構(gòu)造及損失函數(shù)的選擇來(lái)介紹本文提出的自監(jiān)督單目深度估計(jì)方法。
本文的網(wǎng)絡(luò)架構(gòu)采用了深度網(wǎng)絡(luò)和相機(jī)位姿網(wǎng)絡(luò)協(xié)同工作的架構(gòu)。其中,深度網(wǎng)絡(luò)使用U-Net 和ResNet34 相融合的編碼、解碼架構(gòu),輸入為某時(shí)刻的單幀圖像;位姿網(wǎng)絡(luò)的編碼器和深度網(wǎng)絡(luò)相同,輸入為三幀相鄰時(shí)刻的圖像。網(wǎng)絡(luò)的損失函數(shù)由光度重投影和邊緣感知平滑函數(shù)兩部分構(gòu)成。其中,最小化光度重投影函數(shù)結(jié)合了自動(dòng)掩蔽損失,用于解決物體遮擋和運(yùn)動(dòng)帶來(lái)的影響。本文網(wǎng)絡(luò)架構(gòu)如圖1所示。
1.1.1 U-Net架構(gòu)
U-Net 網(wǎng)絡(luò)架構(gòu)是一種輕量級(jí)的全卷積神經(jīng)網(wǎng)絡(luò),可以分為兩個(gè)部分:收縮路徑對(duì)應(yīng)的是編碼器部分,而擴(kuò)展路徑對(duì)應(yīng)的是解碼器部分。在收縮路徑中,通過(guò)池化層將特征通道的數(shù)量加倍,同時(shí)考慮到卷積會(huì)導(dǎo)致邊界像素的損失,該網(wǎng)絡(luò)進(jìn)行了適當(dāng)?shù)募舨谩O喾?,在擴(kuò)展路徑中,通過(guò)上采樣將特征通道數(shù)量減半,最后與收縮路徑中經(jīng)過(guò)剪裁后的特征圖進(jìn)行連接。圖2 給出了U-Net架構(gòu)示意圖。
圖2 U-Net結(jié)構(gòu)圖
本文使用的KITTI數(shù)據(jù)集涉及市區(qū)、鄉(xiāng)村和高速公路等場(chǎng)景采集的真實(shí)圖像,包含內(nèi)容較多。每張圖像中的車(chē)輛最多可達(dá)15輛,行人最多可達(dá)30個(gè),且會(huì)出現(xiàn)不同程度的遮擋與截?cái)鄦?wèn)題。如果采用普通深度網(wǎng)絡(luò)對(duì)KITTI 數(shù)據(jù)集進(jìn)行訓(xùn)練,隨著網(wǎng)絡(luò)層數(shù)的加深,預(yù)測(cè)的準(zhǔn)確率將呈現(xiàn)先上升,后飽和再下降的趨勢(shì)。因此,為了更加準(zhǔn)確地提取圖像中的深度信息,將ResNet34 與U-Net 網(wǎng)絡(luò)融合,使用ResNet34 網(wǎng)絡(luò)參數(shù)作為U-Net 架構(gòu)中的編碼器部分,解決了隨著網(wǎng)絡(luò)層數(shù)的加深,出現(xiàn)預(yù)測(cè)準(zhǔn)確率下降以及梯度消失和爆炸的問(wèn)題。
1.1.2 ResNet34結(jié)構(gòu)
ResNet34的結(jié)構(gòu)圖如圖3所示,每?jī)蓚€(gè)卷積塊組成一個(gè)building block,結(jié)構(gòu)為:Conv(3×3)-BN-ReLUConv(3×3)-BN,其中BN(Batch Normalization)層為批量歸一化層。在整個(gè)模型中,每個(gè)卷積核卷積步長(zhǎng)皆為2,卷積核的輸出部分統(tǒng)一采用了ReLU激活函數(shù)。
圖3 ResNet34結(jié)構(gòu)圖
與編碼器對(duì)應(yīng),深度網(wǎng)絡(luò)的解碼器部分采用了步長(zhǎng)為1,大小為3×3的卷積核,具體信息如表1所示。為了更好地減少深度圖中的偽影,本文將解碼器中采用的補(bǔ)零填充方式更換為了反射填充。該方法在樣本處于圖像邊界之外時(shí),能夠返回原圖像中與邊界像素相似的值。
表1 解碼器信息
整個(gè)深度網(wǎng)絡(luò)的設(shè)計(jì)可以防止在對(duì)目標(biāo)進(jìn)行深度估計(jì)和圖像重建時(shí),訓(xùn)練目標(biāo)陷入局部最小值。同時(shí),編解碼的結(jié)構(gòu)能夠保證輸入圖像和輸出圖像分辨率一致。但采用單目視頻中的幀序列進(jìn)行深度估計(jì)時(shí),無(wú)法保證拍攝每幀圖像時(shí)的相機(jī)位姿是一致的,因此本文加入了相機(jī)位姿網(wǎng)絡(luò)。
Godard[4]設(shè)計(jì)的自監(jiān)督方法,采用同步立體對(duì)進(jìn)行訓(xùn)練,會(huì)導(dǎo)致相機(jī)位姿估計(jì)只能進(jìn)行一次離線矯正,無(wú)法考慮每個(gè)時(shí)刻相機(jī)位姿以及物體間的遮擋所帶來(lái)的影響。因此,本文在訓(xùn)練網(wǎng)絡(luò)時(shí)采用了單目視頻中的連續(xù)幀作為輸入,在對(duì)圖像深度進(jìn)行估計(jì)的同時(shí),還需要估計(jì)單目視頻中幀與幀之間的攝像機(jī)姿態(tài)。通過(guò)姿態(tài)估計(jì)約束深度網(wǎng)絡(luò),實(shí)現(xiàn)從幀序列中的某一幅圖像預(yù)測(cè)出與其相鄰的另一幀圖像,同時(shí)采用最小化光度重投影來(lái)處理遮擋問(wèn)題,采用自動(dòng)掩蔽損失處理運(yùn)動(dòng)帶來(lái)的偽影問(wèn)題。
位姿網(wǎng)絡(luò)采用了與深度網(wǎng)絡(luò)相同的結(jié)構(gòu)設(shè)計(jì),編碼器部分仍然采用標(biāo)準(zhǔn)的ResNet34,解碼器部分的所有卷積核以及輸出部分統(tǒng)一采用了ReLU函數(shù)。
本文使用的損失函數(shù)是兩個(gè)部分的加權(quán),即結(jié)合了自動(dòng)掩蔽損失的光度重投影誤差函數(shù)和邊緣感知平滑函數(shù)。其中,最小化光度重投影用來(lái)處理物體遮擋問(wèn)題,而自動(dòng)掩蔽損失用來(lái)處理運(yùn)動(dòng)帶來(lái)的偽影問(wèn)題。
1.3.1 最小化光度重投影函數(shù)
自監(jiān)督單目深度估計(jì)通過(guò)訓(xùn)練網(wǎng)絡(luò)從一幅圖像的視覺(jué)角度預(yù)測(cè)目標(biāo)圖像的出現(xiàn),通過(guò)深度網(wǎng)絡(luò)和相機(jī)位姿網(wǎng)絡(luò)以及損失函數(shù)來(lái)執(zhí)行目標(biāo)圖像的合成。但在新建視圖時(shí)存在一個(gè)問(wèn)題,即每個(gè)像素可能存在多個(gè)不正確的深度,會(huì)導(dǎo)致最終的深度圖出現(xiàn)模糊以及偽影。本文將這一問(wèn)題轉(zhuǎn)化為訓(xùn)練時(shí)光度重投影誤差的最小化。其中光度重投影誤差Lp表達(dá)式為:
式中,It為目標(biāo)圖像,It′為源視圖,pe 為光度重投影誤差,由L1和SSIM組成,表達(dá)式為:
其中,損失函數(shù)L1 用于將目標(biāo)圖像中的像素值與估計(jì)圖像中的像素值做差,并取絕對(duì)值。損失函數(shù)SSIM(Structural Similarity index)用于衡量目標(biāo)圖像與估計(jì)圖像的相似度。Tt→t′表示每個(gè)源視圖相對(duì)于目標(biāo)圖像的相機(jī)姿態(tài)。在單目訓(xùn)練中,通常采用與目標(biāo)圖像相鄰的兩幀圖像作為輸入,該輸入方式可能會(huì)使目標(biāo)圖像的前一幀和后一幀像素之間存在遮擋和去遮擋問(wèn)題。當(dāng)損失函數(shù)迫使網(wǎng)絡(luò)去匹配這些像素時(shí),將會(huì)包含被遮擋的像素,導(dǎo)致最終的深度圖出現(xiàn)偽影,估計(jì)效果較差。
本文采用最小化光度重投影誤差替代原有的光度重投影誤差,表達(dá)式為:
即在每個(gè)進(jìn)行匹配的像素處,取光度重投影誤差的最小值作為投影誤差,而不是原有的對(duì)光度重投影誤差取平均值,有效降低了投影誤差,從而減少了深度圖中的偽影,具體實(shí)現(xiàn)方式如圖4所示。
1.3.2 自動(dòng)掩蔽損失
自監(jiān)督單目深度估計(jì)采用的KITTI 數(shù)據(jù)集是假定場(chǎng)景為靜態(tài)情況下,運(yùn)動(dòng)的攝像機(jī)拍攝的街道物體圖像。因此,如果場(chǎng)景中存在移動(dòng)物體,或者有物體與攝像機(jī)保持了相對(duì)靜止,都會(huì)對(duì)預(yù)測(cè)的深度圖產(chǎn)生很大影響。該問(wèn)題可以理解為對(duì)于運(yùn)動(dòng)的物體,自監(jiān)督單目深度估計(jì)方法預(yù)測(cè)出的深度圖將存在無(wú)限深度的洞[11]。本文采用自動(dòng)掩蔽損失[14]來(lái)處理該問(wèn)題,函數(shù)表達(dá)式為:
圖4 外觀損失圖
自動(dòng)掩蔽損失函數(shù)會(huì)過(guò)濾掉從當(dāng)前某一個(gè)幀序列到下一個(gè)幀序列中不改變外觀的物體,進(jìn)而使深度網(wǎng)絡(luò)過(guò)濾掉和攝像機(jī)具有相同速度的物體。[]為艾弗森括號(hào),當(dāng)括號(hào)內(nèi)的條件滿足時(shí),μ 的值為1,不滿足則μ 為0。由于未經(jīng)過(guò)形變的源圖像It′ 的重投影誤差要低于經(jīng)過(guò)形變的圖像It′→t的誤差,因此使用μ 來(lái)忽略原始的光度重投影誤差像素?fù)p失。
1.3.3 邊緣感知平滑函數(shù)
最后,結(jié)合使用邊緣感知平滑函數(shù)Ls,表達(dá)式為:
由于深度不連續(xù)的問(wèn)題一般會(huì)發(fā)生在圖像的梯度上,因此對(duì)視差梯度增加了L1懲罰項(xiàng),用于預(yù)測(cè)出較為平滑的視差。
最終,本文提出的深度估計(jì)網(wǎng)絡(luò)模型的損失函數(shù)為:
其中,λ 為常數(shù),取值為0.001,光度重投影誤差中的?取值為0.85。其中?和λ 的取值參考了Godard[4]的設(shè)置,該取值是目前最常用的最佳參數(shù)設(shè)置,Lp為SSIM與L1的組合。
本章采用本文的深度估計(jì)網(wǎng)絡(luò)模型對(duì)KITTI 數(shù)據(jù)集進(jìn)行深度估計(jì),并對(duì)結(jié)果進(jìn)行分析,同時(shí)與目前四種單目深度估計(jì)模型算法在同一個(gè)場(chǎng)景下進(jìn)行了對(duì)比。
本次實(shí)驗(yàn)選用的KITTI數(shù)據(jù)集,是當(dāng)前最大的自動(dòng)駕駛場(chǎng)景下的計(jì)算機(jī)視覺(jué)算法測(cè)評(píng)數(shù)據(jù)集,包含了城市、住宅、道路、校園和行人。使用整個(gè)raw data的數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練以及測(cè)試,其中每張圖像的分辨率為1 242×375。
本文在單目深度訓(xùn)練中使用了相鄰三幀圖像的序列長(zhǎng)度,以50%的幾率對(duì)輸入圖像進(jìn)行了水平翻轉(zhuǎn)以及范圍統(tǒng)一為±0.1 的隨機(jī)亮度、對(duì)比度、飽和度和色調(diào)的抖動(dòng),相機(jī)位姿網(wǎng)絡(luò)也采用上述操作。在對(duì)輸入數(shù)據(jù)進(jìn)行訓(xùn)練時(shí),本模型使用Adam 算法[15]替代傳統(tǒng)的隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)算法,可以更高效地更新深度網(wǎng)絡(luò)中的權(quán)重。訓(xùn)練周期為20 個(gè),每個(gè)周期的批處理數(shù)量為12。由于采用了U-Net 對(duì)稱性網(wǎng)絡(luò)架構(gòu),輸入及輸出的圖像分辨率均為1 242×375。在訓(xùn)練的前15 個(gè)周期使用了1×10-4的學(xué)習(xí)率,在后面的5 個(gè)周期中將學(xué)習(xí)率降低為1×10-5。訓(xùn)練使用的服務(wù)器CPU為E5-2650 v4,GPU為NVIDIA TITAN V,系統(tǒng)為Ubuntu16.04.6。整個(gè)輸入輸出網(wǎng)絡(luò)采用Pytorch搭建,訓(xùn)練時(shí)間為30個(gè)小時(shí)。
與以往單目深度估計(jì)算法類(lèi)似,本文也使用Eigen[2]的數(shù)據(jù)拆分方法對(duì)KITTI數(shù)據(jù)集進(jìn)行了拆分,拆分后的39 810張圖像用于訓(xùn)練,4 424張圖像用于驗(yàn)證,同時(shí)將相機(jī)的中心點(diǎn)設(shè)置為圖像的中心點(diǎn),相機(jī)的焦距設(shè)置為KITTI 數(shù)據(jù)集中所有焦距的平均值。為了便于和以往方法進(jìn)行對(duì)比,在測(cè)試結(jié)果中,按照標(biāo)準(zhǔn)的對(duì)比方法將深度限制在80 m范圍。
本節(jié)重點(diǎn)對(duì)比了本文的單目深度估計(jì)算法與其他作者的單目深度估計(jì)算法的估計(jì)結(jié)果。為了更加清晰準(zhǔn)確地對(duì)結(jié)果進(jìn)行比較,測(cè)試時(shí)采用了相同的道路場(chǎng)景。
2.3.1 算法結(jié)果
圖5給出了本文結(jié)果與Godard[4]、Luo等人[11]、Ranjan等人[12]以及Yin等人[13]的方法對(duì)比效果圖。從圖5 可以看出,相比其他四種方法,本文的單目深度估計(jì)算法在場(chǎng)景圖a中可以清晰地顯示出行人和遠(yuǎn)處車(chē)輛的輪廓,而其他方法所估計(jì)出的行人較為模糊,或者存在深度值不統(tǒng)一及顏色不一致。在場(chǎng)景圖b中,對(duì)于街道中被立柱遮擋的汽車(chē),本文算法也可以顯示出其輪廓,且立柱的顯示效果好于其他四種算法。從場(chǎng)景圖c中可以看出,和其他四種算法相比,只有本文算法可以清晰地顯示被行人遮擋的立柱。
圖5 實(shí)驗(yàn)結(jié)果對(duì)比圖
圖6給出了未加入任何優(yōu)化組件、加入自動(dòng)掩蔽損失單獨(dú)組件、加入最小化光度重投影誤差單獨(dú)組件,以及同時(shí)加入自動(dòng)掩蔽損失和最小化光度重投影誤差兩個(gè)組件的效果圖。從圖中可以看出,當(dāng)未加入最小化光度重投影和自動(dòng)掩蔽損失時(shí),估計(jì)的深度圖效果較為模糊,存在偽影,同時(shí)遠(yuǎn)方的無(wú)限深度出現(xiàn)洞,而且運(yùn)動(dòng)物體較為模糊。例如場(chǎng)景圖a 中,行人在一個(gè)固定位置時(shí),估計(jì)出的整個(gè)行人的深度圖像素值不統(tǒng)一,存在一定誤差,同時(shí)遠(yuǎn)處行駛的汽車(chē)也未顯示出來(lái)。場(chǎng)景圖b中,正前方有大面積無(wú)限深度的洞,同時(shí)左側(cè)的立柱由于遮擋也沒(méi)有清晰顯示出來(lái)。場(chǎng)景圖c中,被行人遮擋的立柱顯示較為模糊,存在偽影。
圖6 組件對(duì)比實(shí)驗(yàn)圖
當(dāng)單獨(dú)加入自動(dòng)掩蔽損失后,場(chǎng)景圖a中遠(yuǎn)方運(yùn)動(dòng)的汽車(chē)可以估計(jì)出清晰的效果,同時(shí)右側(cè)運(yùn)動(dòng)的行人深度值統(tǒng)一,顏色一致。場(chǎng)景圖b 中,正前方無(wú)限深度的洞明顯減弱,畫(huà)面有了分割。場(chǎng)景圖c和場(chǎng)景圖b相似,洞的效果也明顯減弱。
當(dāng)單獨(dú)加入最小化光度重投影組件后,在場(chǎng)景圖a中,左側(cè)的樹(shù)木枝干可以估計(jì)出清晰效果。在場(chǎng)景圖b中,前方被遮擋的立柱也可以估計(jì)出較為清晰的效果。在場(chǎng)景圖c 中,效果更加明顯,被行人遮擋的立柱也可以清晰看出估計(jì)結(jié)果。
最終將自動(dòng)掩蔽損失和最小化光度重投影誤差兩個(gè)組件同時(shí)加入到網(wǎng)絡(luò)模型中后,估計(jì)出的效果得到了進(jìn)一步提升,被遮擋的立柱以及運(yùn)動(dòng)的車(chē)輛及行人整體同時(shí)都呈現(xiàn)出較為清晰的估計(jì)結(jié)果,正前方無(wú)限深度畫(huà)面邊界分割更加細(xì)致。
為了對(duì)比本文算法在不同遮擋下的效果,圖7給出了KITTI 數(shù)據(jù)集(場(chǎng)景a)以及數(shù)據(jù)集之外的兩組場(chǎng)景(場(chǎng)景b和c)的效果圖。從圖中可知,對(duì)于場(chǎng)景a中的單一物體車(chē)輛、樹(shù)木以及低紋理區(qū)域,并且遮擋物體和被遮擋物體之間存在一定距離時(shí),本文算法的估計(jì)效果較好。對(duì)于在場(chǎng)景b 中,樹(shù)木上方的枝干繁多,分布較為密集,本文方法的估計(jì)效果有所下降,但對(duì)于距離較遠(yuǎn)的低紋理區(qū)域,如下方枝干,依然可以估計(jì)出清晰的效果圖。在場(chǎng)景c 中,由于房屋右側(cè)被密集的樹(shù)葉遮擋,估計(jì)效果也有所下降。因此,本文方法對(duì)于所拍攝的街道和公路中的行人、車(chē)輛等這種運(yùn)動(dòng)物體間造成的單一遮擋有較好效果。
圖7 遮擋對(duì)比實(shí)驗(yàn)圖
2.3.2 算法性能分析
與標(biāo)準(zhǔn)差(Standard Deviation)和平均絕對(duì)誤差(Mean Absolute Error,MAE)相比,均方根誤差(Root Mean Square Error,RMSE)對(duì)深度圖中的異常值更加敏感。因此,本實(shí)驗(yàn)選取了RMSE函數(shù)和平方絕對(duì)誤差(Square Relative error,Sq Rel)函數(shù)作為網(wǎng)絡(luò)模型算法的評(píng)估指標(biāo),表達(dá)式分別為:
其中,ypred表示估計(jì)出的深度圖,而ygt表示地面真實(shí)深度圖。RMSE 函數(shù)用來(lái)衡量觀測(cè)值同真值之間的誤差。表2和表3所示分別給出了本文單目深度估計(jì)算法和其他四種算法的RMSE 和Sq Rel 的對(duì)比結(jié)果。從表中可以看出,相比其他四種方法,使用本文方法獲得的深度圖的RMSE和Sq Rel都是最小的。
表2 RMSE指標(biāo)結(jié)果對(duì)比
表3 Sq Rel指標(biāo)結(jié)果對(duì)比
針對(duì)單目深度估計(jì)中由于物體遮擋導(dǎo)致的圖像估計(jì)準(zhǔn)確度較低的問(wèn)題,本文提出了一種優(yōu)化方法。在網(wǎng)絡(luò)結(jié)構(gòu)中,將U-Net 和ResNet 相結(jié)合,通過(guò)使用最小化光度重投影損失函數(shù),來(lái)處理單目視頻中相鄰幀間的遮擋問(wèn)題,同時(shí)結(jié)合了自動(dòng)掩蔽損失,解決了運(yùn)動(dòng)物體帶來(lái)的干擾,使深度估計(jì)的結(jié)果更加清晰,減少了偽影問(wèn)題。最后,使用KITTI數(shù)據(jù)集驗(yàn)證了本文優(yōu)化方法的可行性,相比于目前四種單目深度估計(jì)模型算法,本文方法估計(jì)出深度圖的RMSE誤差和Sq Rel誤差都是較優(yōu)的。