計(jì)算機(jī)視覺(jué)方向簡(jiǎn)介:深度圖補(bǔ)全
點(diǎn)擊下方卡片,關(guān)注“新機(jī)器視覺(jué)”公眾號(hào)
重磅干貨,第一時(shí)間送達(dá)
微軟2010年發(fā)布了消費(fèi)級(jí)RGB-D(RGB+depth)相機(jī)Kinect1,此后涌現(xiàn)了大量基于RGB-D相機(jī)的研究工作,比如用RGB-D相機(jī)來(lái)進(jìn)行室內(nèi)三維重建,比較有名的是KinectFusion、Kintinuous,ElasticFusion,InfiniTAM,BundleFusion等。此外,RGB-D相機(jī)還大量用于物體及人臉的三維建模、自動(dòng)駕駛、增強(qiáng)現(xiàn)實(shí)、三維打印等。
目前主流的RGB-D相機(jī)有微軟的Kinect系列,Intel的realsense系列,structure sensor(需結(jié)合iPad使用)等。去年iPhone X前置結(jié)構(gòu)光深度相機(jī)(depth)面世后,更是激發(fā)了手機(jī)產(chǎn)業(yè)鏈深度相機(jī)的熱潮,目前小米、OPPO、Vivo等手機(jī)大廠都在積極推動(dòng)深度相機(jī)在手機(jī)上的應(yīng)用。
雖然RGB-D相機(jī)前景無(wú)限,但是受制于物理硬件的限制,目前深度相機(jī)輸出的depth圖還有很多問(wèn)題,比如對(duì)于光滑物體表面反射、半/透明物體、深色物體、超出量程等都會(huì)造成深度圖缺失。而且很多深度相機(jī)是大片的深度值缺失,這對(duì)于算法工程師來(lái)說(shuō)非常頭疼。
因此,深度圖補(bǔ)全一直是一個(gè)非常有用的研究方向,之前的文獻(xiàn)大都只能補(bǔ)全比較小范圍的深度缺失,對(duì)于較大深度值缺失的情況無(wú)能無(wú)力,本文介紹的是2018 CVPR 最新的一項(xiàng)研究deep depth completion,不受RGB-D相機(jī)類型的限制,只需要輸入一張RGB加一張depth圖,可以補(bǔ)全任意形式深度圖的缺失。對(duì)于算法工程師來(lái)說(shuō)真的是喜大普奔啊,目前主要針對(duì)的是室內(nèi)環(huán)境。

Deep depth completion算法流程如下,其輸入是RGB-D相機(jī)拍攝的一張RGB圖像和對(duì)應(yīng)的深度圖,然后根據(jù)分別訓(xùn)練好的兩個(gè)網(wǎng)絡(luò)(一個(gè)是針對(duì)RGB圖表面法線的深度學(xué)習(xí)網(wǎng)絡(luò),一個(gè)是針對(duì)物體邊緣遮擋的深度學(xué)習(xí)網(wǎng)絡(luò)),預(yù)測(cè)該彩色圖像中所有平面的表面法線和物體邊緣遮擋。最后用深度圖作為正則化,求解一個(gè)全局線性優(yōu)化問(wèn)題,最終得到補(bǔ)全的深度圖。

一切看起來(lái)順理成章,但是,做深度學(xué)習(xí)的小伙伴們紛紛舉起了小手,開(kāi)始提問(wèn):我的訓(xùn)練集怎么搞?我去哪里找大量的高精度已經(jīng)補(bǔ)全的深度圖?
的確,這是個(gè)大問(wèn)題,消費(fèi)級(jí)深度相機(jī)拍攝的深度圖本身就是缺失的,沒(méi)辦法作為深度圖的groundtruth,但是現(xiàn)有的RGB-D數(shù)據(jù)集幾乎都是基于消費(fèi)級(jí)深度相機(jī)的。而使用高精度的深度相機(jī)不僅設(shè)備費(fèi)用成本高,時(shí)間成本也非常高,give up吧。
這里要夸一下本文的作者,聰明又勤奮,還樂(lè)于奉獻(xiàn)。他們之間提供了一個(gè)已經(jīng)補(bǔ)全好深度圖的RGB-D數(shù)據(jù)集,包含105,432幅RGB-D圖,而且給你都對(duì)齊了的。那他們是怎么做到的?
主要是因?yàn)樗麄兟斆?。?duì),你沒(méi)看錯(cuò)!他們利用現(xiàn)有的消費(fèi)級(jí)RGB-D相機(jī)拍攝的數(shù)據(jù)集(Matterport3D、ScanNet、SUN3D、SceneNN)先進(jìn)行稠密的三維重建,然后再進(jìn)行優(yōu)化和渲染。雖然單一視角的深度圖可能會(huì)有因?yàn)椴煌蛞鸬娜笔?,但是?jīng)過(guò)多個(gè)不同視角的重建和優(yōu)化,這些缺失的地方都被填補(bǔ)了。然后將其深度結(jié)果反投影回到輸入深度圖。最后得到的深度圖就是groundtruth啦,簡(jiǎn)直完美!省時(shí)省力省錢,還順帶學(xué)習(xí)了稠密三維重建,就是這么棒!看看下面的圖,還是比較形象的,黃色代表不同視點(diǎn)的圖,紅色是當(dāng)前視點(diǎn)渲染后的深度圖。

親自測(cè)試,效果杠杠滴!具體的量化比較就不放了,可以查看論文,目前效果是該領(lǐng)域最好的,我這里只放幾張比較直觀的視覺(jué)效果的比較結(jié)果。
首先是和聯(lián)合雙邊濾波的inpainting方法進(jìn)行比較,如下所示,可以明顯看出邊緣信息保存的很好,噪點(diǎn)也很少。

再看一下和深度神經(jīng)網(wǎng)絡(luò)深度估計(jì)方法的對(duì)比,如下圖所示。不僅深度值更準(zhǔn)確,大尺度的幾何結(jié)構(gòu)也更準(zhǔn)確。

來(lái)看一下點(diǎn)云結(jié)果對(duì)比吧,原始的RGB-D生成的點(diǎn)云結(jié)果如下:

經(jīng)過(guò)深度圖補(bǔ)全后生成的點(diǎn)云結(jié)果如下:

運(yùn)行速度怎么樣?
學(xué)術(shù)界對(duì)運(yùn)行速度不是特別關(guān)注,但是產(chǎn)業(yè)界就是死死的盯住運(yùn)行速度不放,因?yàn)檫@直接關(guān)系到能否直接用在嵌入式設(shè)備上。
他的運(yùn)行速度是這樣的:
實(shí)驗(yàn)環(huán)境:對(duì)于一幅320x256的RGB-D輸入圖來(lái)說(shuō),用NVIDIA TITAN X GPU預(yù)測(cè)表面法線和邊界遮擋需要0.3s。在Intel Xeon 2.4GHz CPU上求解線性方程需要1.5秒。
雖然慢了點(diǎn),但是也給算法優(yōu)化的同志們留了一個(gè)不大不小的挑戰(zhàn),不是嗎?
良心的作者不僅給了數(shù)據(jù)集,還開(kāi)源了代碼,還給了訓(xùn)練好了結(jié)果,如此良心負(fù)責(zé)人的作者必須給個(gè)大大的點(diǎn)贊!
項(xiàng)目地址:
http://deepcompletion.cs.princeton.edu/
開(kāi)源代碼地址:
https://github.com/yindaz/DeepCompletionRelease
本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪文。
