劉 春,吳一珩
湖北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,武漢 430068
深度感知問題屬于計(jì)算機(jī)視覺領(lǐng)域3-D重建部分,是各類機(jī)器人與無人駕駛技術(shù)環(huán)境感知與自主決策能力的基礎(chǔ),其中完全基于視覺的深度估計(jì)是近年來的熱點(diǎn)研究問題。雙目立體視覺深度估計(jì)[1-2]的準(zhǔn)確性與左右圖像像素點(diǎn)的匹配精確度以及基線長度相關(guān),適于測(cè)量距離較近、視場(chǎng)范圍較小的場(chǎng)景。單目視覺深度估計(jì)精度受攝像頭分辨率、成像畸變、焦距精度影響相對(duì)較差,且需要預(yù)先知道參照物的實(shí)際長寬高等參數(shù),還要能準(zhǔn)確預(yù)知目標(biāo)物的像素高度,目前通過單目相機(jī)獲取實(shí)際深度信息在實(shí)用化上還存在較大問題,但這種方法在功耗、安裝、成本、標(biāo)定步驟等方面相對(duì)其他測(cè)距方法具有難以比擬的優(yōu)點(diǎn)。
單目深度估計(jì)的經(jīng)典模型有模糊度模型、大氣散射模型、物體陰影模型、曲率模型、消失線模型等,基本上都屬于在約束條件下求病態(tài)優(yōu)化的問題。用機(jī)器學(xué)習(xí)方法求解的代表是Ng A Y[3],他基于MRF 把各種約束關(guān)系放在模型的data term 和connectivity term 中求解。Make3D[4]項(xiàng)目進(jìn)一步將圖像分割得到super-pixels,從而得到更平滑的結(jié)果。Hoiem D等[5]在圖像分割基礎(chǔ)上又增加了一層語義分割,即對(duì)分割部分標(biāo)注像素,然后采用平面billboard 做紋理映射后得到“pop-up”的3-D 景物,但這種像素級(jí)標(biāo)注工作挑戰(zhàn)性巨大。
使用深度學(xué)習(xí)做單目圖像深度估計(jì)可形式化描述為:
對(duì)2d圖像I,找到一個(gè)變換函數(shù)F來求取I上像素點(diǎn)對(duì)應(yīng)的深度d=F(I)。
直接求解F幾乎不可能,而將深度學(xué)習(xí)方法引入深度估計(jì)則提供了一個(gè)迂回解決的方法,即以相對(duì)深度的方式反映真實(shí)距離。
2014 年Eigen 組的經(jīng)典文獻(xiàn)[6]提出用Multi-Scale的深度神經(jīng)網(wǎng)絡(luò)來解決單目深度估計(jì)的問題,2015 年文獻(xiàn)[7]將AlexNet 換成了更深的VGG16 網(wǎng)絡(luò),并引入了池化層和上采樣過程提高了效果和適用性。文獻(xiàn)[8]則去掉了全連接層,建立了完全卷積網(wǎng)絡(luò)結(jié)構(gòu),并將高層的語義信息與深層的外觀信息結(jié)合起來,生成精確和詳細(xì)的語義分割,使得準(zhǔn)確度提高了近一倍。其后深度估計(jì)的進(jìn)展從暴力運(yùn)算轉(zhuǎn)為與各種經(jīng)典傳統(tǒng)算法相結(jié)合,例如結(jié)合表面法向圖的聯(lián)合訓(xùn)練方法GeoNet(Geometric Neural Network)[9],利用雙目立體視覺產(chǎn)生空間約束用作無監(jiān)督學(xué)習(xí)的單目深度估計(jì)方法[10],采用幀間運(yùn)動(dòng)輔助單目視頻深度估計(jì)的方法[11],結(jié)合全連接CRF的深層網(wǎng)絡(luò)聯(lián)合訓(xùn)練估計(jì)深度信息的方法[12],結(jié)合視覺綜合中的幾何約束和成像特性的方法[13],結(jié)合運(yùn)動(dòng)和邊緣信息的聯(lián)合訓(xùn)練方法[14],結(jié)合光流和姿態(tài)[10]的聯(lián)合訓(xùn)練方法,以及融合光流、物體運(yùn)動(dòng)信息、語義分割的方法[15-17]等。上述這些深度學(xué)習(xí)方法逐漸融入了傳統(tǒng)方法的約束和先驗(yàn)知識(shí),一定程度上緩解了數(shù)據(jù)標(biāo)注的壓力,并通過多任務(wù)聯(lián)合訓(xùn)練提升了模型和算法的性能。
本文提出了一種結(jié)合深度與深度梯度語義信息的融合神經(jīng)網(wǎng)絡(luò),從兩個(gè)方面對(duì)深度與RGB 圖像進(jìn)行端到端的估計(jì),能保留足夠的深度信息,該方法原理類似語義分割法,但過程更簡(jiǎn)便,并設(shè)計(jì)了一種單次標(biāo)定方法,大幅度減少了場(chǎng)景的標(biāo)注工作量,廣泛適用于戶外遠(yuǎn)距離和圖片分辨率較高的場(chǎng)景。
同一目標(biāo)物體的各個(gè)像素點(diǎn)在深度圖中可以認(rèn)為具有相同的深度,換言之,深度圖中擁有相同輪廓的物體映射區(qū)域可以認(rèn)為擁有相同的深度信息,而輪廓在圖像中表現(xiàn)出梯度信息變化劇烈的特征[18],因此本文在提取單張RGB 圖片的特征信息之外,又增加了額外一路結(jié)構(gòu)相同的神經(jīng)網(wǎng)絡(luò)用于提取深度梯度信息。設(shè)置該網(wǎng)絡(luò)有助于輔助判別前景與背景及目標(biāo)物體,減少深度計(jì)算中的錯(cuò)誤概率,如果不提取這種深度梯度特征,畫面中前景與后景的分層不夠清晰分明,深度圖中目標(biāo)物體表現(xiàn)為易與背景融合導(dǎo)致邊界模糊。
但同時(shí)提取RGB圖片特征和深度梯度特征會(huì)造成網(wǎng)絡(luò)結(jié)構(gòu)過于復(fù)雜,且由于本文需要采用的網(wǎng)絡(luò)輸入遠(yuǎn)大于常見的網(wǎng)絡(luò)輸入,在不加入額外一路神經(jīng)網(wǎng)絡(luò)時(shí),時(shí)間復(fù)雜度為6 871 MFLOPs,空間復(fù)雜度為681 Mparams。
在雙路架構(gòu)下總時(shí)間復(fù)雜度可達(dá)12 000 MFLOPs,空間復(fù)雜度為1 200 Mparams,因此對(duì)訓(xùn)練時(shí)使用的硬件設(shè)備有較高要求,也很容易引起過擬合的現(xiàn)象。為此本文采取了模塊化神經(jīng)網(wǎng)絡(luò)方法,模塊化神經(jīng)網(wǎng)絡(luò)模型[19]的優(yōu)點(diǎn)包括,降低網(wǎng)絡(luò)復(fù)雜性和實(shí)現(xiàn)難度、魯棒性和容錯(cuò)能力強(qiáng)、可擴(kuò)展性強(qiáng)、計(jì)算效率高、學(xué)習(xí)能力和泛化能力強(qiáng)等。本文提出的網(wǎng)絡(luò)結(jié)構(gòu)劃分為幾個(gè)小的訓(xùn)練模塊后,網(wǎng)絡(luò)結(jié)構(gòu)被解耦,在訓(xùn)練過程中不需要同時(shí)對(duì)全部的參數(shù)進(jìn)行操作,而是僅針對(duì)某一模塊中參數(shù)進(jìn)行調(diào)整,該模塊的結(jié)果再作為下一模塊的輸入,整體參數(shù)量雖然沒有減少,但是訓(xùn)練與識(shí)別過程中每次僅會(huì)出現(xiàn)總體參數(shù)量一部分,這種做法不僅可以解決復(fù)雜度過高帶來的訓(xùn)練和預(yù)測(cè)難題,也給予了快速驗(yàn)證模型有效性的能力。
本文中的雙路融合深度感知神經(jīng)網(wǎng)絡(luò)包括深度估計(jì)網(wǎng)絡(luò)和深度梯度計(jì)算網(wǎng)絡(luò)兩路,如圖1 所示,每一路分別又包含特征提取、特征融合、特征細(xì)化三個(gè)模塊,從粗糙到細(xì)致,逐步優(yōu)化,并在特征細(xì)化后對(duì)兩路的輸出特征拼接融合成新的聯(lián)合特征,然后再次訓(xùn)練和微調(diào)參數(shù)。不同模塊的卷積層之間部分以殘差結(jié)構(gòu)相連,在提高訓(xùn)練速度和減少參數(shù)量的同時(shí),保證了高層的語義在網(wǎng)絡(luò)中能穩(wěn)定地傳遞,并能減少參數(shù)量過大引起的網(wǎng)絡(luò)臃腫。雙路結(jié)構(gòu)中的每個(gè)模塊都融入了原有的RGB語義信息,模塊中的卷積網(wǎng)絡(luò)也融入高層的語義信息,六個(gè)模塊根據(jù)自身的結(jié)構(gòu)設(shè)計(jì)出相應(yīng)的訓(xùn)練策略,分模塊的訓(xùn)練將漫長的訓(xùn)練過程階段化,緩解了超大參數(shù)量和計(jì)算量帶來的硬件壓力。該網(wǎng)絡(luò)結(jié)構(gòu)的輸出為150×600的深度矩陣,代表了輸入圖片的相對(duì)深度信息,最后通過一個(gè)標(biāo)定參照物可解得全局最終的真實(shí)深度信息。
圖1 網(wǎng)絡(luò)整體結(jié)構(gòu)
常用于環(huán)境深度感知算法的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括Alexnet[6]、VGG-16[14]與VGG-19[14],這些算法也多是針對(duì)細(xì)節(jié)豐富圖片分辨率較低的室內(nèi)場(chǎng)景,因此網(wǎng)絡(luò)的輸入仍然可以選擇常見的224×224 或者是300×300,參數(shù)量與計(jì)算量可以有效控制在一定范圍內(nèi),甚至可以在網(wǎng)絡(luò)結(jié)構(gòu)中加入?yún)?shù)量極大的全連接層。但戶外的場(chǎng)景不僅包括一些難以測(cè)量的物體,例如藍(lán)天白云,而且畫面內(nèi)物體的體積也普遍大于室內(nèi)物體,由此帶來的影響是,戶外場(chǎng)景圖像分辨率遠(yuǎn)大于室內(nèi)場(chǎng)景并且為了有更寬闊的感知域,圖像長寬比也遠(yuǎn)大于室內(nèi)場(chǎng)景圖像,例如特斯拉無人駕駛汽車使用的三眼攝像頭Apollo 2.0,為了獲得更加寬闊的視野,三眼攝像頭拍攝的魚眼畫面被拼接一起,其畫面長寬比遠(yuǎn)大于普通相機(jī)照片。作為神經(jīng)網(wǎng)絡(luò)的輸入時(shí),單純地將其下采樣至一個(gè)方形矩陣等同于舍棄相當(dāng)大部分的深度信息,對(duì)于神經(jīng)網(wǎng)絡(luò)提取特征十分不利,結(jié)合本文使用的KITTI深度預(yù)測(cè)數(shù)據(jù)集和戶外環(huán)境深度信息預(yù)測(cè)的實(shí)際情況,如圖1 所示,本文提出的網(wǎng)絡(luò)結(jié)構(gòu)輸入大小為352×800×C,深度信息標(biāo)定訓(xùn)練時(shí)C=3,表示三通道,深度梯度信息標(biāo)定訓(xùn)練時(shí)C=2,表示圖片加權(quán)平均灰化后的梯度矩陣。采用反復(fù)堆疊小卷積核的方式來達(dá)到大卷積核的感受野,逐層穩(wěn)定地減小卷積圖的大小擴(kuò)充卷積圖的通道,盡可能地多保留語義信息。
如圖2所示,特征提取模塊采用了64個(gè)通道步長為1 大小為3×3 的卷積核,完成了較為粗糙的采樣,此時(shí)所采集到的特征是最原始的特征,然后使用4×4 大小步長為4 的最大池化層快速降低參數(shù)量,此后連續(xù)使用3×3 步長為1 的卷積核和2×2 步長為2 的最大池化層4次,將卷積特征圖大小降為11×25×256,由于原圖較大,為提取更多的特征信息,該層卷積特征圖之后進(jìn)行了小卷積核的多次堆疊卷積,最后的五層卷積特征圖同時(shí)引入特征融合模塊,形成殘差結(jié)構(gòu),該結(jié)構(gòu)在有效削減參數(shù)量的同時(shí),保證了特征重用。
最后的結(jié)果經(jīng)FLATTEN等處理后對(duì)參數(shù)數(shù)量稍作修改。在獲得相同感受野的情況下,多個(gè)3×3 卷積核相比大尺寸卷積核存在更多的非線性因子,使得判決函數(shù)更有判決性,因此本模塊的設(shè)計(jì)并沒有沿襲傳統(tǒng)的5×5、7×7 卷積的做法,實(shí)驗(yàn)證明這樣訓(xùn)練的模型效率更高。
特征融合模塊的設(shè)計(jì)是為了強(qiáng)化原圖的語義信息,從特征重用的角度提升網(wǎng)絡(luò)性能,其輸入與上一模塊相同。原圖RGB矩陣或梯度矩陣經(jīng)過特征融合模塊的六層連續(xù)卷積,如圖2 所示,其中五層與上一模塊之間通過殘差結(jié)構(gòu)相連,這五層分別為Conv13至Conv17按照順序與上一模塊的Conv6 至Conv11 兩兩相連,實(shí)驗(yàn)表明這種做法比跨越較小層數(shù)的連接在深度重建的精確度上略有提升。除了第一個(gè)卷積圖使用的卷積核為4×4 之外,其余的卷積核都為3×3,這也是為了將原圖快速處理成適應(yīng)神經(jīng)網(wǎng)絡(luò)的大小的同時(shí),盡可能減少參數(shù),特征提取模塊的輸出大小為178×398,略微修改形狀后大小變?yōu)閇120,480],與上一模塊的結(jié)果相融合后作為第二個(gè)模塊的最終輸出。
實(shí)驗(yàn)過程中發(fā)現(xiàn),僅有前兩個(gè)模塊的輸出深度信息仍然不夠精確,對(duì)于一些障礙物的邊緣準(zhǔn)確度不夠。因?yàn)榍皟蓚€(gè)模塊的卷積輸出大小僅有原深度圖的八分之一,會(huì)損失大量的邊緣信息和深度信息,使得邊緣模糊,因而對(duì)深度的恢復(fù)非常不利,造成輸出深度信息不夠精確。
另外[120,480]分辨率對(duì)于神經(jīng)網(wǎng)絡(luò)的參數(shù)量和計(jì)算量是一個(gè)很好的折中,但是考慮到目前攝像頭的分辨率都在百萬像素甚至千萬像素以上,此輸出分辨率損失的信息過多,畫面中的一些細(xì)節(jié)易被掩蓋。因此在特征融合模塊結(jié)束后還對(duì)輸出矩陣進(jìn)行了最鄰近上采樣處理,但倍數(shù)過大的上采樣又進(jìn)一步加重了圖像的失真,體現(xiàn)在深度圖上就是畫面出現(xiàn)“馬賽克”現(xiàn)象,加重了邊緣準(zhǔn)確性不足的問題。
圖2 特征提取模塊和特征融合模塊示意圖
因此需要通過特征細(xì)化模塊同時(shí)對(duì)輸出特征圖和原圖進(jìn)行操作處理,并將得到的語義信息與上采樣結(jié)果融合,來保證每個(gè)模塊都存在來自原圖最原始的特征信息。如圖3所示,采用與特征融合模塊中相同的結(jié)構(gòu)將原圖處理成大小為[176,400]的特征圖,對(duì)此特征圖略作參數(shù)量的調(diào)整后,將其與上一模塊的輸出結(jié)構(gòu)相融合,得到[150,600]大小的特征圖矩陣,為使最終結(jié)果進(jìn)一步接近標(biāo)定結(jié)果,采用1×1 大小的卷積核繼續(xù)逐步修正。由于整體結(jié)構(gòu)屬于端到端的網(wǎng)絡(luò),最后的1×1卷積核修正不再影響輸出結(jié)果的分辨率,因此可以根據(jù)實(shí)際情況增加或減少修正卷積層的層數(shù),本文選擇五層作為修正。
圖3 特征細(xì)化模塊示意圖
經(jīng)過上文的處理之后,雙路網(wǎng)絡(luò)的輸出最終融合,進(jìn)行最后的整體調(diào)整提升精度。特征細(xì)化模塊專為融合特征信息后提升精度而設(shè)計(jì),在此模塊中僅使用1×1大小的小卷積核,小卷積核帶來的非線性變換操作使得模型的泛化能力進(jìn)一步提高。
在訓(xùn)練期間,該雙路結(jié)構(gòu)網(wǎng)絡(luò)的輸入為單張RGB圖片,預(yù)處理之后得到歸一化的尺寸為352×800×3 的矩陣和此RGB圖片加權(quán)平均灰化后大小為352×800 的梯度矩陣。為了保證輸出結(jié)果的有效性,該網(wǎng)絡(luò)結(jié)構(gòu)沒有使用真實(shí)的深度信息作為輸出,網(wǎng)絡(luò)輸出為雙路融合后得到的大小為120×480 的歸一化相對(duì)深度信息矩陣,即為深度估計(jì)結(jié)果。
本文提出的網(wǎng)絡(luò)結(jié)構(gòu)由于分成了多個(gè)模塊,并且雙路的結(jié)構(gòu)基本一致,網(wǎng)絡(luò)結(jié)構(gòu)在實(shí)現(xiàn)的難度上不大,如圖4所示,由于雙路神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方式相同因此只畫出其中一路的完整訓(xùn)練過程。分模塊訓(xùn)練過程中,減少了每個(gè)模塊的訓(xùn)練參數(shù)量,也降低了每個(gè)模塊迭代的次數(shù),但是分模塊相當(dāng)于增加了代碼的循環(huán)迭代層數(shù),為了將原圖信息融入到各模塊中,雙路結(jié)構(gòu)相當(dāng)于進(jìn)行了三次不同的特征融合過程,相應(yīng)增加了訓(xùn)練的復(fù)雜度。
圖4 訓(xùn)練過程示意圖
圖5 所示為本模型使用的數(shù)據(jù)集,來源于KITTI 數(shù)據(jù)集中的單目深度預(yù)測(cè)數(shù)據(jù)集:總共包含1 000 張圖片及其相應(yīng)的深度圖,抽取其中800 張作為訓(xùn)練集,剩余200 張作為測(cè)試集。與常見的NYU 單目測(cè)距數(shù)據(jù)集比較,該深度圖由激光雷達(dá)采集得來,因此深度信息表現(xiàn)為3D云點(diǎn),深度信息中包含部分空值,上一章所述網(wǎng)絡(luò)結(jié)構(gòu)中最大池化層也是基于此考慮,若選擇平均池化則必定減小邊緣部分的深度,為減少其影響,在標(biāo)定時(shí)根據(jù)鄰近的像素值對(duì)物體所在區(qū)域進(jìn)行數(shù)值填補(bǔ)。訓(xùn)練時(shí)標(biāo)定的圖片由原深度圖的最鄰近差值下采樣得來,下采樣的最終大小分別為120×480 與150×600,分別作為分模塊訓(xùn)練時(shí)的標(biāo)定。
圖5 KITTI數(shù)據(jù)集
該網(wǎng)絡(luò)的訓(xùn)練采取分步的方式進(jìn)行,損失函數(shù)的選擇是深度學(xué)習(xí)網(wǎng)絡(luò)模型訓(xùn)練過程重要環(huán)節(jié)之一,選擇正確的損失函數(shù)能提供更好的收斂方向,獲得更好的訓(xùn)練結(jié)果。對(duì)于深度信息,目前通用的損失函數(shù)為l2損失函數(shù),以最小化預(yù)測(cè)結(jié)果與真實(shí)值差的歐式范數(shù)平方作為收斂方向。
首先只訓(xùn)練前兩個(gè)模塊,目的是為了使輸出結(jié)果更加接近標(biāo)定,所使用的損失函數(shù)為:
和分別表示某一張RGB圖像的深度信息矩陣與預(yù)測(cè)深度信息矩陣,這個(gè)矩陣共計(jì)有n個(gè)因子,也就是n個(gè)像素點(diǎn),p表示矩陣中第p個(gè)因子。
為了增強(qiáng)網(wǎng)絡(luò)模型在色彩對(duì)比度低、色調(diào)陰沉、背景單一環(huán)境下的性能,訓(xùn)練時(shí)對(duì)訓(xùn)練圖片直方圖均衡處理,也作為訓(xùn)練集喂入神經(jīng)網(wǎng)絡(luò)中。
訓(xùn)練完成后,凍結(jié)當(dāng)前模型,進(jìn)入特征細(xì)化模塊訓(xùn)練,此時(shí)使用的損失函數(shù)仍然為公式(1)。
基于深度梯度信息的神經(jīng)網(wǎng)絡(luò)損失函數(shù)如下:
和分別表示某一張RGB圖像的深度梯度信息,在x軸和y軸上的數(shù)值,表示標(biāo)定與訓(xùn)練輸出矩陣。其訓(xùn)練過程與深度信息神經(jīng)網(wǎng)絡(luò)完全一致。
兩個(gè)網(wǎng)絡(luò)的結(jié)果在特征細(xì)化模塊相遇后進(jìn)行融合和再訓(xùn)練,此時(shí)的聯(lián)合損失函數(shù)為:
聯(lián)合損失函數(shù)是公式(1)、(2)的結(jié)合,為了從深度信息和深度梯度信息兩個(gè)方面細(xì)化最終結(jié)果。
訓(xùn)練時(shí)使用的框架為tensorflow,并基于GTX 1080ti加速,考慮到參數(shù)量較大的因素,batchsize設(shè)置為32,初始學(xué)習(xí)率為0.01,每經(jīng)過10 000次學(xué)習(xí)率下降至原來的1/10,為避免過擬合,在每個(gè)卷積運(yùn)算中加入滑動(dòng)平均模塊。由于網(wǎng)絡(luò)訓(xùn)練分模塊進(jìn)行,其收斂速度非常快,網(wǎng)絡(luò)的梯度下降情況如圖6所示,將其與Eigen[7]的網(wǎng)絡(luò)結(jié)構(gòu)相比,其收斂速度有明顯優(yōu)勢(shì)。
圖6 損失函數(shù)數(shù)值變化
模塊化的設(shè)計(jì)拆分了原本結(jié)構(gòu)較深的網(wǎng)絡(luò)結(jié)構(gòu),整個(gè)訓(xùn)練過程中可以非常靈活地單獨(dú)取出某個(gè)模塊網(wǎng)絡(luò)結(jié)構(gòu)的權(quán)重,并進(jìn)行微調(diào)修正。
目前的深度估計(jì)神經(jīng)網(wǎng)絡(luò)在計(jì)算圖像特征和像素間距離關(guān)系時(shí)采用了歸一化值,因而最終的輸出為真實(shí)距離的歸一化關(guān)系值,也就只能獲得深度之間的相對(duì)關(guān)系,還需要至少預(yù)知一個(gè)標(biāo)準(zhǔn)參照物的真實(shí)距離才能恢復(fù)出各像素的實(shí)際距離。但如果拍攝內(nèi)容千變?nèi)f化,則預(yù)知標(biāo)準(zhǔn)參照物距離實(shí)際成為一個(gè)標(biāo)注與目標(biāo)識(shí)別問題,加大了工作量和復(fù)雜度。
本文采用了一種簡(jiǎn)便方法,如圖7 所示,利用在攝像頭前固定安裝帶標(biāo)尺的標(biāo)桿方法,可簡(jiǎn)便地獲得標(biāo)定參考值。從而在保證標(biāo)桿與鏡頭之間距離不變的情況下,已知該距離就可以從前文中獲得的相對(duì)深度信息圖還原出整體的畫面距離。如圖7所示,標(biāo)桿可固定在攝像頭前方。相較于傳統(tǒng)利用幾何關(guān)系推導(dǎo)的單目測(cè)距方案,本文方法的優(yōu)勢(shì)在于應(yīng)用簡(jiǎn)便,幾乎不受環(huán)境限制,也無需預(yù)知畫面中各種物體的種類和大小。
圖7 標(biāo)桿示意圖
由于激光束測(cè)距的局限性,實(shí)驗(yàn)所用的KITTI數(shù)據(jù)集圖片中的每個(gè)像素點(diǎn)并不都有相應(yīng)的深度數(shù)據(jù),為避免不存在的真實(shí)深度信息對(duì)測(cè)試結(jié)果的干擾,實(shí)驗(yàn)只對(duì)有深度數(shù)據(jù)的像素點(diǎn)進(jìn)行比較,并采用了常用的衡量指標(biāo)評(píng)估結(jié)果[20]:
平均相對(duì)誤差(average relative error,Rel):
對(duì)數(shù)空間平均誤差(average lg error,lg):
均方根誤差(Root Mean Squared Error,RMSE):
準(zhǔn)確率:
通過實(shí)驗(yàn)將得到的輸出結(jié)果與文獻(xiàn)[8,10,21-22]的訓(xùn)練方法輸出結(jié)果進(jìn)行對(duì)比,其結(jié)果如表1 所示,獲取的深度圖如圖8 所示。CNN 卷積神經(jīng)網(wǎng)絡(luò)模型能夠靈活地從圖像中提取出豐富的特征信息,且特征提取和統(tǒng)計(jì)分類的過程無需人工輔助。
表1 準(zhǔn)確率對(duì)比實(shí)驗(yàn)(前三列數(shù)值越小越好,后三列數(shù)值越大越好)
圖8 KITTI深度圖對(duì)比實(shí)驗(yàn)
圖9 實(shí)際場(chǎng)景對(duì)比實(shí)驗(yàn)
圖10 單目測(cè)距實(shí)驗(yàn)
實(shí)驗(yàn)采用的對(duì)比對(duì)象分別代表融合雙目立體視覺[10],使用全卷積層[8],融合CRF與超像素池化的網(wǎng)絡(luò)結(jié)構(gòu)[21]和融合CRF序列結(jié)構(gòu)的多尺度網(wǎng)絡(luò)結(jié)構(gòu)[22]。
實(shí)驗(yàn)結(jié)果如表1所示,本文提出的網(wǎng)絡(luò)結(jié)構(gòu)誤差上略低于文獻(xiàn)[10],但在整體像素點(diǎn)的距離預(yù)測(cè)上表現(xiàn)更優(yōu)。
文獻(xiàn)[10]網(wǎng)絡(luò)結(jié)構(gòu)的深度恢復(fù)能力來源于它創(chuàng)新性地使用了雙目立體視覺標(biāo)定的無監(jiān)督網(wǎng)絡(luò),因此該網(wǎng)絡(luò)結(jié)構(gòu)也繼承了雙目立體視覺的缺點(diǎn),由于在訓(xùn)練時(shí)使用的左右眼數(shù)據(jù)有著相同的基線,而基線是雙目立體視覺的測(cè)距精度的決定性因素之一,當(dāng)圖像不再是此方法所使用的數(shù)據(jù)集時(shí),相當(dāng)于特定鏡頭與空間點(diǎn)發(fā)生了變化,因此該方法在實(shí)際場(chǎng)景的應(yīng)用中(圖9),它的表現(xiàn)較差,距離略遠(yuǎn)一點(diǎn)的汽車被認(rèn)為是背景,雙目立體視覺不適用于單調(diào)缺乏紋理的場(chǎng)景,比如天空與墻面,所以文獻(xiàn)[10]網(wǎng)絡(luò)結(jié)構(gòu)對(duì)于背景中的一些物體提取深度信息的能力較差。
而本文提出的監(jiān)督學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)畫面的抗干擾性更強(qiáng),由于在訓(xùn)練過程中沒有引入光照亮度等因素,融合了深度梯度信息的本文網(wǎng)絡(luò)結(jié)構(gòu)對(duì)于單調(diào)背景下的物體邊緣深度信息獲取得更為準(zhǔn)確。在整體訓(xùn)練過程中做到了兼顧全局特征與局部特征,每個(gè)模塊都可以接收來自原圖的語義信息和高層卷積層的特征信息,同時(shí)模塊化的設(shè)計(jì)從多個(gè)角度優(yōu)化了網(wǎng)絡(luò)性能,殘差結(jié)構(gòu)的隨機(jī)丟棄特性有效避免了參數(shù)龐大層數(shù)過深引起的過擬合,對(duì)于較遠(yuǎn)距離的物體也能從圖片的梯度信息中提取出邊緣,表現(xiàn)出較強(qiáng)的魯棒性。
實(shí)地環(huán)境測(cè)試包括幾個(gè)不同的場(chǎng)景,如圖10所示,圖中標(biāo)尺為此次實(shí)驗(yàn)中使用的距離標(biāo)定物。選用基于幾何關(guān)系推算的單目測(cè)距方案做對(duì)比實(shí)驗(yàn)[23],測(cè)距準(zhǔn)確率的對(duì)比實(shí)驗(yàn)結(jié)果如表2 所示,誤差與實(shí)際距離之間的距離如圖11 所示,實(shí)際距離與誤差之間進(jìn)行線性擬合得:
本文方法:
基于幾何關(guān)系的單目測(cè)距:
圖11 誤差分析
表2 測(cè)距準(zhǔn)確率對(duì)比試驗(yàn)
基于幾何關(guān)系的單目測(cè)距隨著測(cè)量距離逐漸增加,誤差快速上升并越來越大[24]。本文提出的方案則是從單張圖片中獲取完整的相對(duì)深度信息,再通過一次標(biāo)定求出所有真實(shí)距離,誤差率僅與相對(duì)深度信息有關(guān),深度圖的精度越高,標(biāo)定物得到的距離越準(zhǔn)確,誤差率就越低,在對(duì)于有充分訓(xùn)練數(shù)據(jù)的測(cè)距范圍,神經(jīng)網(wǎng)絡(luò)的深度估計(jì)誤差范圍能被控制在一定范圍之內(nèi),該范圍與深度計(jì)算誤差、訓(xùn)練數(shù)據(jù)中激光雷達(dá)對(duì)于遠(yuǎn)距離物體的分辨率等有關(guān)。若畫面中的目標(biāo)距離超過一定范圍時(shí),其邊緣可能會(huì)與背景融合導(dǎo)致其深度信息產(chǎn)生較大誤差,極限條件下,超過一定距離范圍都會(huì)被處理為1,表示無窮遠(yuǎn),導(dǎo)致誤判。因此測(cè)試時(shí)選取了具有明顯輪廓的目標(biāo)物體作為測(cè)距對(duì)象,實(shí)驗(yàn)測(cè)試集中物體真實(shí)距離最遠(yuǎn)為17 m,實(shí)驗(yàn)結(jié)果如表2 所示,在該距離段內(nèi)誤差范圍小于7.0%,與標(biāo)定物距離遠(yuǎn)的物體的測(cè)量結(jié)果比距離標(biāo)定物近的物體的測(cè)量結(jié)果誤差略大但不是線性增加。該誤差與深度識(shí)別的精度有關(guān),而神經(jīng)網(wǎng)絡(luò)的深度識(shí)別精度直接受訓(xùn)練時(shí)標(biāo)定數(shù)據(jù)集的影響,本文中使用的訓(xùn)練數(shù)據(jù)集來自KITTI的激光雷達(dá)深度圖,受設(shè)備調(diào)制頻率和大氣折射率影響,激光雷達(dá)測(cè)距的比例誤差隨距離而增加,對(duì)中遠(yuǎn)程精密測(cè)距影響明顯,這也從源頭對(duì)神經(jīng)網(wǎng)絡(luò)的深度識(shí)別結(jié)果產(chǎn)生了一定影響。
針對(duì)單目圖像深度估計(jì)問題,提出了雙路融合的深度感知神經(jīng)網(wǎng)絡(luò)模型,為保留更多特征信息擴(kuò)張網(wǎng)絡(luò)的輸入利用殘差結(jié)構(gòu)特征重用以及減少參數(shù)的特性,分階段地訓(xùn)練網(wǎng)絡(luò)并逐步細(xì)化輸出結(jié)果,有效地實(shí)現(xiàn)了全局預(yù)測(cè)和局部預(yù)測(cè)。引入單張RPG圖片的梯度作為預(yù)測(cè)的特征之一,相較于其他的深度學(xué)習(xí)單目深度算法對(duì)于物體輪廓的表達(dá)更加細(xì)膩。設(shè)計(jì)了單次標(biāo)定方法,并將標(biāo)桿制作為標(biāo)準(zhǔn)圖疊加大幅度減少了圖像標(biāo)注工作量,也不必要進(jìn)行目標(biāo)識(shí)別。
此模型與一些經(jīng)典的CNN網(wǎng)絡(luò)模型相比有著實(shí)際場(chǎng)景深度信息恢復(fù)的優(yōu)勢(shì)。但目前此模型仍然是基于有監(jiān)督的訓(xùn)練,對(duì)于深度圖數(shù)據(jù)集的要求較高,參數(shù)量仍然較大,因此實(shí)際應(yīng)用時(shí)對(duì)硬件設(shè)備有著一定的要求,而為了獲得更高分辨率的深度圖輸出,監(jiān)督學(xué)習(xí)就很難避免增加更多的參數(shù),在接下來的研究中,考慮結(jié)合無監(jiān)督的學(xué)習(xí)方法,將網(wǎng)絡(luò)修改為半監(jiān)督方式,給予該網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)一步擴(kuò)張輸出大小的可能性,同時(shí)進(jìn)行該網(wǎng)絡(luò)結(jié)構(gòu)在弱紋理場(chǎng)景中的測(cè)試并進(jìn)行優(yōu)化,提升算法的泛化性。
(本文的相關(guān)代碼已開源:https://github.com/bb-1357/Mocular)