深度隱式表達(dá)系列 (一)
深度隱式表達(dá) (Deep Implicit Representation, DIR) 在 2019年同期發(fā)表了一系列代表性的工作,本文主要介紹 Deepsdf[4] 以及Occupancy Networks[2] (OccNet) 兩篇文章,之后會介紹一些其他的工作,本系列僅涉及部分代表性的DIR工作,讀者感興趣的話可以自行查找其他相關(guān)的工作。
值得注意的是,這里DIR的說法是比較嚴(yán)格的,Openreview上關(guān)于GRF[5](當(dāng)然 GRF 也是很好的工作) 的評論中提到:

也就是說,implicit function 的說法是不推薦的。
那么什么是 DIR呢?用下面這張圖可以概括:

輸入一個點(diǎn)p,輸出p的屬性,如果屬性是該點(diǎn)是否被占據(jù),那么這就是Occupancy Networks,如果屬性是SDF值,那么這就是DeepSDF,到這里其實(shí)已經(jīng)介紹完了DIR的相關(guān)概念。如果讀者是更關(guān)注 NeRF的內(nèi)容,剩下部分可以選擇跳過。
下面我們具體介紹這兩篇文章。
1 DeepSDF
DeepSDF的作者之一是Newcombe,也是KinectFusion的作者之一, 現(xiàn)在在Facebook Reality Labs,對重建這一套是再熟悉不過了。在表示方面,傳統(tǒng)方法都會使用 Mesh, 點(diǎn)云,體素,面片等,其實(shí)這些表示方法都各有各的優(yōu)缺點(diǎn),很多文章都踩過了我們就不踩了,那么使用 DIR 的表示方法有什么好處呢?首先它是連續(xù)的,神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的插值能力。其次使用深度學(xué)習(xí)的方法就一定會想到要具有一定的泛化性。如果你對傳統(tǒng)重建方法有所了解的話,一定會發(fā)現(xiàn),傳統(tǒng)重建會有許多空洞,那么能不能使用 DIR 方法補(bǔ)全一下缺失的幾何。當(dāng)然還有 compact 的優(yōu)點(diǎn),少量參數(shù)的內(nèi)存開銷即可,還有很多其他優(yōu)點(diǎn)不一一贅述。下面我們進(jìn)入主題。

首先距離符號函數(shù) (SDF) 是一個連續(xù)函數(shù):
? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
這里 x 表示采樣點(diǎn)的坐標(biāo),|s| 表示距離表面的最近距離,s的符號為正表示在物體外部,符號為負(fù)表示在物體內(nèi)部,上面這張圖是SDF 的示意圖,物體的表面被隱式的表達(dá)為 SDF(.) = 0的等值面。
DeepSDF 使用 MLP 來擬合這個連續(xù)函數(shù):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???(2)
這樣一個函數(shù)是沒有什么意義的,對每個物體都要訓(xùn)練測試訓(xùn)練測試...... 因此DeepSDF引入了Auto-Decoder來增加泛化性。其實(shí)這個概念并不陌生,但是按照論文的說法在3D learning方面是首次提出的。用白話講就是為每個形狀分配一個 latent code z,然后與采樣點(diǎn)坐標(biāo)一同輸入到網(wǎng)絡(luò)中,把這個code與網(wǎng)絡(luò)的參數(shù)一同進(jìn)行優(yōu)化即可:

論文里比較 sao 氣的給了概率證明,對于理解DIR 來說意義并不大,我們不多涉及。
接下來我們完整的回顧一下 DeepSDF:
1. 數(shù)據(jù)準(zhǔn)備。對與每個3D模型取一些列的采樣點(diǎn) (x, s),采樣方式是個比較繁瑣的過程 (假設(shè)是watertight的mesh 模型,先將模型normalize到一個單位球,接著在表面采250000個點(diǎn),并保留其法向量,然后對250000點(diǎn)加擾動,每個點(diǎn)擾動得到2個點(diǎn),一共會有500000個擾動空間點(diǎn),對這些空間點(diǎn)計(jì)算 SDF值,計(jì)算方式就是從250000個表面點(diǎn)中找最近的點(diǎn),然后計(jì)算符號與距離。)
2. 訓(xùn)練。將大批量的采樣點(diǎn)與隨機(jī)初始化的 latent code z 一同輸入到網(wǎng)絡(luò),通過 gt SDF 值做監(jiān)督,對網(wǎng)絡(luò)參數(shù)以及z一同做優(yōu)化。
3. 測試。同樣需要采樣點(diǎn),但是此時的采樣點(diǎn)可以是稀疏的,甚至可以僅僅根據(jù)一張深度圖即可完成推理。但是需要優(yōu)化 latent code z,網(wǎng)絡(luò)參數(shù)保持不變。
4. 可視化。使用 Marching Cubes 或者 raycasting 算法即可。
結(jié)果我們不過多展示了,大家可以參考論文。DeepSDF 的效果在當(dāng)時是十分驚艷的,當(dāng)然也存在一些問題,比如,姿態(tài)問題沒有考慮,訓(xùn)練測試的模型都是處于 canonical pose 的;部分區(qū)域過于平滑;僅適用于單個物體,不能拓展到大場景等。感興趣的讀者可以自行查找一下相關(guān)的 task,DIR的研究是多種多樣的,在3D視覺領(lǐng)域能挖掘的東西還有很多很多。
2 Occupancy Networks

這張圖我很喜歡,它很直觀的表達(dá)出 DIR在表示方面的優(yōu)勢,相信reviewer一看到也是類似的反應(yīng)。DIR最大的優(yōu)勢就是緊致連續(xù),僅使用少量的內(nèi)存開銷即可將3D信息嵌入到神經(jīng)網(wǎng)絡(luò)的參數(shù)當(dāng)中。
使用 SDF值作為點(diǎn)的屬性表達(dá)是一種方式,當(dāng)然也可以使用該點(diǎn)是否被占據(jù),OccNet 沒有使用額外的類似 DeepSDF的latent code,而是選擇將觀測(如圖片、點(diǎn)云、體素等)作為輸入然后提取 code,可以概括的表達(dá)為以下形式:


這里 是OccNet 中唯一的超參數(shù),文中給出的建議值為
= 0.2。相比 SDF 值,occupancy值的gt更容易獲取一些,在提取幾何部分 OccNet 也做了特殊的處理,提出了 Multiresolution IsoSurface Extraction (MISE),有效利用了
的梯度信息做約束,使得提取到的 mesh既不會太復(fù)雜,又相對準(zhǔn)確,本文對MISE不做深入講解。
OccNet 與 DeepSDF、IM-NET[1]、Deep Level Set[3] 是同期的工作,這四篇工作都是在 2019年發(fā)表的,也從此引發(fā)了以DIR為表示方法的熱潮。
下面給出兩張 OccNet 的網(wǎng)絡(luò)結(jié)構(gòu)圖幫助讀者理解:

圖 1: OccNet 網(wǎng)絡(luò)架構(gòu)



圖 2: Encoder
3 結(jié)語
對于 loss function是個開放性的問題,本文兩篇文章都沒涉及。核心本質(zhì)的 DIR思想相信大家已經(jīng)初步建立概念了,接下來的更新我們會提到一些典型的 DIR工作,由于作者本身也要做一些 research 工作,希望在深度和廣度方面盡可能地拓展一些,如有不正確的地方歡迎大家指正。
參考文獻(xiàn)
[1] Z. Chen and H. Zhang. Learning implicit fields for generative shape modeling. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 5939–5948, 2019.
[2] L. Mescheder, M. Oechsle, M. Niemeyer, S. Nowozin, and A. Geiger. Occupancy networks: Learning 3d reconstruction in function space. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 4460–4470, 2019.
[3] M. Michalkiewicz, J. K. Pontes, D. Jack, M. Baktashmotlagh, and A. Eriksson. Deep level sets: Implicit surface representations for 3d shape inference. arXiv preprint arXiv:1901.06802, 2019.
[4] J. J. Park, P. Florence, J. Straub, R. Newcombe, and S. Lovegrove. Deepsdf: Learning continuous signed distance functions for shape representation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 165–174, 2019.
[5] A. Trevithick and B. Yang. Grf: Learning a general radiance field for 3d scene representation and rendering. arXiv preprint arXiv:2010.04595, 2020