3D 相片是這兩年比較熱門的研究方向,F(xiàn)acebook 已經(jīng)支持分享 3D 相片。相信在不久的將來朋友圈、微博上也可以分享炫酷的 3D 照片
這篇論文作者來自弗吉尼亞理工學(xué)院、臺(tái)灣國立清華大學(xué)和 Facebook,作者提出了一種從 單張 RGB-D 圖像生成 3D 照相 的方法,效果炫酷、驚艷,目前代碼已在Github上開源。
開源鏈接:https://github.com/vt-vl-lab/3d-photo-inpainting
先展示下貓咪和高達(dá)的結(jié)果,鏡頭晃動(dòng)、希區(qū)柯克等效果,毫無違和感。
文章方法對(duì)深度圖的質(zhì)量要求并不高,只需要深度不連續(xù)處在彩色圖和深度圖中是合理對(duì)齊的即可。深度圖可以從 雙攝相機(jī)通過立體視覺的方式計(jì)算 得到,也可以借助 深度學(xué)習(xí)的方法從單張圖片估計(jì) 得到,因此應(yīng)用到智能手機(jī)完全沒有問題,作者也對(duì)這兩種來源的深度圖進(jìn)行了測(cè)試。
初始化階段首先將輸入的 RGB-D 圖的深度通道歸一化到 0-1 之間,并對(duì)深度圖進(jìn)行雙邊中值濾波,以使得邊緣更加明顯,再基于此圖片生成初始 LDI。然后再根據(jù)給定閾值判斷相鄰像素的視差,找到深度不連續(xù)像素,并經(jīng)過一些簡(jiǎn)化、處理得到最終的深度不連續(xù)邊。
接下來每次選擇一條深度邊借助填補(bǔ)算法來修復(fù)背景,首先在深度不連續(xù)處斷開 LDI 像素連接,得到 (前景、背景) 輪廓像素,然后生成一個(gè)合成區(qū)域,使用洪水漫淹算法初始化顏色和深度值,再使用深度學(xué)習(xí)的方法填補(bǔ)該合成區(qū)域。
給定語境區(qū)域和合成區(qū)域,這里的目標(biāo)是合成顏色值和深度值。將整個(gè)修復(fù)任務(wù)分解成三個(gè)子網(wǎng)絡(luò):
- 邊修復(fù)網(wǎng)絡(luò) (edge inpainting network)
- 顏色修復(fù)網(wǎng)絡(luò) (color inpainting network)
- 深度修復(fù)網(wǎng)絡(luò) (depth inpainting network)
首先將語境區(qū)域的邊作為輸入,使用邊修復(fù)網(wǎng)絡(luò)預(yù)測(cè)合成區(qū)域中的深度邊,先預(yù)測(cè)邊信息能夠推斷 (基于邊的) 結(jié)構(gòu) 信息,有助于約束 (顏色和深度的) 內(nèi)容 預(yù)測(cè)。然后使用修復(fù)的邊和語境區(qū)域的顏色作為輸入,使用顏色修復(fù)網(wǎng)絡(luò)預(yù)測(cè)顏色。最后再使用同樣的方法預(yù)測(cè)深度信息。
由于我本地機(jī)器沒有 GPU,使用 CPU 運(yùn)行代碼,雖然也能跑,但運(yùn)行時(shí)要消耗至少 12GB 內(nèi)存,而且結(jié)果還不準(zhǔn)確。故使用 Colab,簡(jiǎn)單方便。下面是電源寶寶測(cè)試結(jié)果,感覺還湊合 。