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