作者?| 張俊怡
三維重建意義
三維重建作為環(huán)境感知的關(guān)鍵技術(shù)之一,可用于自動(dòng)駕駛、虛擬現(xiàn)實(shí)、運(yùn)動(dòng)目標(biāo)監(jiān)測(cè)、行為分析、安防監(jiān)控和重點(diǎn)人群監(jiān)護(hù)等?,F(xiàn)在每個(gè)人都在研究識(shí)別,但識(shí)別只是計(jì)算機(jī)視覺(jué)的一部分。真正意義上的計(jì)算機(jī)視覺(jué)要超越識(shí)別,感知三維環(huán)境。我們活在三維空間里,要做到交互和感知,就必須將世界恢復(fù)到三維。所以,在識(shí)別的基礎(chǔ)上,計(jì)算機(jī)視覺(jué)下一步必須走向三維重建。本文筆者將帶大家初步了解三維重建的相關(guān)內(nèi)容以及算法。
三維重建定義
在計(jì)算機(jī)視覺(jué)中, 三維重建是指根據(jù)單視圖或者多視圖的圖像重建三維信息的過(guò)程. 由于單視頻的信息不完全,因此三維重建需要利用經(jīng)驗(yàn)知識(shí). 而多視圖的三維重建(類似人的雙目定位)相對(duì)比較容易, 其方法是先對(duì)攝像機(jī)進(jìn)行標(biāo)定, 即計(jì)算出攝像機(jī)的圖象坐標(biāo)系與世界坐標(biāo)系的關(guān)系.然后利用多個(gè)二維圖象中的信息重建出三維信息。
常見(jiàn)的三維重建表達(dá)方式
常規(guī)的3D shape representation有以下四種:深度圖(depth)、點(diǎn)云(point cloud)、體素(voxel)、網(wǎng)格(mesh)。
深度圖其每個(gè)像素值代表的是物體到相機(jī)xy平面的距離,單位為 mm。
體素是三維空間中的一個(gè)有大小的點(diǎn),一個(gè)小方塊,相當(dāng)于是三維空間種的像素。
點(diǎn)云是某個(gè)坐標(biāo)系下的點(diǎn)的數(shù)據(jù)集。點(diǎn)包含了豐富的信息,包括三維坐標(biāo)X,Y,Z、顏色、分類值、強(qiáng)度值、時(shí)間等等。在我看來(lái)點(diǎn)云可以將現(xiàn)實(shí)世界原子化,通過(guò)高精度的點(diǎn)云數(shù)據(jù)可以還原現(xiàn)實(shí)世界。萬(wàn)物皆點(diǎn)云,獲取方式可通過(guò)三維激光掃描等。
△三角網(wǎng)格、用三角網(wǎng)格重建
三角網(wǎng)格就是全部由三角形組成的多邊形網(wǎng)格。多邊形和三角網(wǎng)格在圖形學(xué)和建模中廣泛使用,用來(lái)模擬復(fù)雜物體的表面,如建筑、車輛、人體,當(dāng)然還有茶壺等。任意多邊形網(wǎng)格都能轉(zhuǎn)換成三角網(wǎng)格。
三角網(wǎng)格需要存儲(chǔ)三類信息:
頂點(diǎn):每個(gè)三角形都有三個(gè)頂點(diǎn),各頂點(diǎn)都有可能和其他三角形共享。.
邊:連接兩個(gè)頂點(diǎn)的邊,每個(gè)三角形有三條邊。
面:每個(gè)三角形對(duì)應(yīng)一個(gè)面,我們可以用頂點(diǎn)或邊列表表示面。
三維重建的分類
根據(jù)采集設(shè)備是否主動(dòng)發(fā)射測(cè)量信號(hào),分為兩類:基于主動(dòng)視覺(jué)理論和基于被動(dòng)視覺(jué)的三維重建方法。
主動(dòng)視覺(jué)三維重建方法:主要包括結(jié)構(gòu)光法和激光掃描法。
被動(dòng)視覺(jué)三維重建方法:被動(dòng)視覺(jué)只使用攝像機(jī)采集三維場(chǎng)景得到其投影的二維圖像,根據(jù)圖像的紋理分布等信息恢復(fù)深度信息,進(jìn)而實(shí)現(xiàn)三維重建。
其中,雙目視覺(jué)和多目視覺(jué)理論上可精確恢復(fù)深度信息,但實(shí)際中,受拍攝條件的影響,精度無(wú)法得到保證。單目視覺(jué)只使用單一攝像機(jī)作為采集設(shè)備,具有低成本、易部署等優(yōu)點(diǎn),但其存在固有的問(wèn)題:?jiǎn)螐垐D像可能對(duì)應(yīng)無(wú)數(shù)真實(shí)物理世界場(chǎng)景(病態(tài)),故使用單目視覺(jué)方法從圖像中估計(jì)深度進(jìn)而實(shí)現(xiàn)三維重建的難度較大。
近幾年代表性論文回顧
-從單張圖像恢復(fù)深度圖
△Depth, NIPS 2014, Cited by 1011
這篇論文思路很簡(jiǎn)單,算是用深度學(xué)習(xí)做深度圖估計(jì)的開(kāi)山之作,網(wǎng)絡(luò)分為全局粗估計(jì)和局部精估計(jì),對(duì)深度由粗到精的估計(jì),并且提出了一個(gè)尺度不變的損失函數(shù)。
△主體網(wǎng)絡(luò)
△Scale-invariant Mean Squared Error
本文總結(jié)
(1)提出了一個(gè)包含分為全局粗估計(jì)和局部精估計(jì),可以由粗到精估計(jì)的網(wǎng)絡(luò)。
(2)提出了一個(gè)尺度不變的損失函數(shù)。
-用體素來(lái)做單視圖或多視圖的三維重建
△Voxel, ECCV 2016, Cited by 342
這篇文章挺有意思,結(jié)合了LSTM來(lái)做,如果輸入只有一張圖像,則輸入一張,輸出也一個(gè)結(jié)果。如果是多視圖的,則將多視圖看作一個(gè)序列,輸入到LSTM當(dāng)中,輸出多個(gè)結(jié)果。
△Framework
如主框架所示,這篇文章采用深度學(xué)習(xí)從2D圖像到其對(duì)應(yīng)的3D voxel模型的映射:?
首先利用一個(gè)標(biāo)準(zhǔn)的CNN結(jié)構(gòu)對(duì)原始input image 進(jìn)行編碼;再利用一個(gè)標(biāo)準(zhǔn) Deconvolution network 對(duì)其解碼。中間用LSTM進(jìn)行過(guò)渡連接, LSTM 單元排列成3D網(wǎng)格結(jié)構(gòu), 每個(gè)單元接收一個(gè)feature vector from Encoder and Hidden states of neighbors by convolution,并將他們輸送到Decoder中. 這樣每個(gè)LSTM單元重構(gòu)output voxel的一部分。?
總之,通過(guò)這樣的Encoder-3DLSTM-Decoder?的網(wǎng)絡(luò)結(jié)構(gòu)就建立了2D images -to -3D voxel model?的映射。
△3D LSTM 和 3D GRU
損失函數(shù)采用的是二分類的交叉熵?fù)p失,類似于在三維空間做分割,類別是兩類,分別是占有或者不占有。
△損失函數(shù)
除了交叉熵loss可以用作評(píng)價(jià)指標(biāo),還可以把預(yù)測(cè)結(jié)果跟標(biāo)簽的IoU作為評(píng)價(jià)指標(biāo),如下圖所示:
△IoU可作為評(píng)價(jià)指標(biāo)
△Single Real-World Image Reconstruction
△Reconstructing From Different Views.
本文總結(jié)
(1)采用深度學(xué)習(xí)從2D圖像到其對(duì)應(yīng)的3D voxel模型的映射,模型設(shè)計(jì)為Encoder+3D LSTM + Decoder。
(2)既適用單視圖,也適用多視圖。
(3)以體素的表現(xiàn)形式做的三維重建。
(4)缺點(diǎn)是需要權(quán)衡體素分辨率大?。ㄓ?jì)算耗時(shí))和精度大小。
-用點(diǎn)云來(lái)做單張RGB圖像的三維重建
△Point Cloud, CVPR 2017, Cited by 274
大多數(shù)現(xiàn)存的工作都在使用深度網(wǎng)絡(luò)進(jìn)行3D 數(shù)據(jù)采用體積網(wǎng)格或圖像集合(幾何體的2D視圖)。然而,這種表示導(dǎo)致采樣分辨率和凈效率之間的折衷。在這篇論文中,作者利用深度網(wǎng)絡(luò)通過(guò)單張圖像直接生成點(diǎn)云,解決了基于單個(gè)圖片對(duì)象生成3D幾何的問(wèn)題。
點(diǎn)云是一種簡(jiǎn)單,統(tǒng)一的結(jié)構(gòu),更容易學(xué)習(xí),點(diǎn)云可以在幾何變換和變形時(shí)更容易操作,因?yàn)檫B接性不需要更新。該網(wǎng)絡(luò)可以由輸入圖像確定的視角推斷的3D物體中實(shí)際包含點(diǎn)的位置。
模型最終的目標(biāo)是:給定一張單個(gè)的圖片(RGB或RGB-D),重構(gòu)出完整的3D形狀,并將這個(gè)輸出通過(guò)一種無(wú)序的表示——點(diǎn)云(Point cloud)來(lái)實(shí)現(xiàn)。點(diǎn)云中點(diǎn)的個(gè)數(shù),文中設(shè)置為1024,作者認(rèn)為這個(gè)個(gè)數(shù)已經(jīng)足夠表現(xiàn)大部分的幾何形狀。
△主框架
鑒于這種非正統(tǒng)的網(wǎng)絡(luò)輸出,作者面臨的挑戰(zhàn)之一是如何在訓(xùn)練期間構(gòu)造損失函數(shù)。因?yàn)橄嗤膸缀涡螤羁赡茉谙嗤慕瞥潭壬峡梢杂貌煌狞c(diǎn)云來(lái)表示,因此與通常的L2型損失不同。
本文使用的 loss
△倒角距離
△搬土距離
對(duì)于解決2D圖片重構(gòu)后可能的形狀有很多種這個(gè)問(wèn)題,作者構(gòu)造了一個(gè) Min-of-N loss (MoN) 損失函數(shù)。
Min-of-N loss 的意思是,網(wǎng)絡(luò)G通過(guò)n個(gè)不同的r擾動(dòng)項(xiàng)進(jìn)行n次預(yù)測(cè),作者認(rèn)為從直覺(jué)上來(lái)看,我們會(huì)相信n次中會(huì)至少有一次預(yù)測(cè)會(huì)非常接近真正的答案,因此可以認(rèn)為這n次預(yù)測(cè)與真正的答案的距離的最小值應(yīng)該要最小。
△實(shí)驗(yàn)可視化結(jié)果
△實(shí)驗(yàn)數(shù)值結(jié)果
本文總結(jié)
該文章的貢獻(xiàn)可歸納如下:
(1)開(kāi)創(chuàng)了點(diǎn)云生成的先例(單圖像3D重建)。
(2)系統(tǒng)地探討了體系結(jié)構(gòu)中的問(wèn)題點(diǎn)生成網(wǎng)絡(luò)的損失函數(shù)設(shè)計(jì)。
(3)提出了一種基于單圖像任務(wù)的三維重建的原理及公式和解決方案。
總體來(lái)說(shuō),該篇文章開(kāi)創(chuàng)了單個(gè)2D視角用點(diǎn)云重構(gòu)3D物體的先河,是一篇值得一看的文章。
-先中場(chǎng)休息一下,簡(jiǎn)單先分析一下:
根據(jù)各種不同的表示方法我們可以知道volume受到分辨率和表達(dá)能力的限制,會(huì)缺乏很多細(xì)節(jié);point cloud 的點(diǎn)之間沒(méi)有連接關(guān)系,會(huì)缺乏物體的表面信息。相比較而言mesh的表示方法具有輕量、形狀細(xì)節(jié)豐富的特點(diǎn)。
△不同表現(xiàn)形式的對(duì)比
Mesh:?我不是針對(duì)誰(shuí),我是想說(shuō)在座的各位都是垃圾(depth、volume、point cloud)
由于后邊的內(nèi)容使用了圖卷積神經(jīng)網(wǎng)絡(luò)(GCN),這里簡(jiǎn)要介紹一下:
f(p,l), f(p,l+1)分別表示頂點(diǎn)p在卷積操作前后的特征向量;
N(p)指頂點(diǎn)p的鄰居節(jié)點(diǎn);
W1,W2表示待學(xué)習(xí)的參數(shù);
-用三角網(wǎng)格來(lái)做單張RGB圖像的三維重建
△Mesh, ECCV 2018, cited by 58
這篇文章提出的方法不需要借助點(diǎn)云、深度或者其他更加信息豐富的數(shù)據(jù),而是直接從單張彩色圖片直接得到 3D mesh。
△主框架
1、給定一張輸入圖像:Input image
2、為任意的輸入圖像都初始化一個(gè)橢球體作為其初始三維形狀:Ellipsoid Mesh
整個(gè)網(wǎng)絡(luò)可以大概分成上下兩個(gè)部分:
(1)上面部分負(fù)責(zé)用全卷積神經(jīng)網(wǎng)絡(luò)提取輸入圖像的特征;
(2)下面部分負(fù)責(zé)用圖卷積神經(jīng)網(wǎng)絡(luò)來(lái)表示三維mesh,并對(duì)三維mesh不斷進(jìn)行形變,目標(biāo)是得到最終的輸出(最后邊的飛機(jī))。
△主框架中的部分內(nèi)容詳細(xì)的解釋
1、C表示三維頂點(diǎn)坐標(biāo),P表示圖像特征,F(xiàn)表示三維頂點(diǎn)特征;
2、perceptual feature pooling層負(fù)責(zé)根據(jù)三維頂點(diǎn)坐標(biāo)C(i-1)去圖像特征P中提取對(duì)應(yīng)的信息;
3、以上提取到的各個(gè)頂點(diǎn)特征再與上一時(shí)刻的頂點(diǎn)特征F(i-1)做融合,作為G-ResNet的輸入;
4、G-ResNet(graph-based ResNet)產(chǎn)生的輸出又做為mesh deformable block的輸出,得到新的三維坐標(biāo)C(i)和三維頂點(diǎn)特征F(i)。
除了剛剛提到的mesh deformation,下面這部分還有一個(gè)很關(guān)鍵的組成是graph uppooling。文章提出這個(gè)圖上采樣層是為了讓圖節(jié)點(diǎn)依次增加,從圖中可以直接看到節(jié)點(diǎn)數(shù)是由156-->628-->2466變換的,這其實(shí)就是coarse-to-fine的體現(xiàn),如下圖:
這篇文章定義了四種loss來(lái)約束網(wǎng)格更好的形變:
△loss
本文的實(shí)驗(yàn)結(jié)果
本文總結(jié)
該文章的貢獻(xiàn)可歸納如下:
(1)文章實(shí)現(xiàn)用端到端的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了從單張彩色圖直接生成用mesh表示的物體三維信息;
(2)文章采用圖卷積神經(jīng)網(wǎng)絡(luò)來(lái)表示3D mesh信息,利用從輸入圖像提到的特征逐漸對(duì)橢圓盡心變形從而產(chǎn)生正確的幾何形狀;
(3)為了讓整個(gè)形變的過(guò)程更加穩(wěn)定,文章還采用coarse-to-fine從粗粒度到細(xì)粒度的方式;
(4)文章為生成的mesh設(shè)計(jì)了幾種不同的損失函數(shù)來(lái)讓整個(gè)模型生成的效果更加好;
文章的核心思路就是給用一個(gè)橢球作為任意物體的初始形狀,然后逐漸將這個(gè)形狀變成目標(biāo)物體。
接下來(lái)介紹2019年的相關(guān)研究
由于相關(guān)內(nèi)容涉及到mask-rcnn,先回顧一下:
mask-rcnn是對(duì) faster rcnn 的擴(kuò)展或者說(shuō)是改進(jìn),其增加了一個(gè)用于分割的分支,并且將RoIpooling 改成了 RoIAlign。
△mask rcnn
Mask RCNN可以看做是一個(gè)通用實(shí)例分割架構(gòu);。
Mask RCNN以Faster RCNN原型,增加了一個(gè)分支用于分割任務(wù)。
Mask RCNN比Faster RCNN速度慢一些,達(dá)到了5fps。
可用于人的姿態(tài)估計(jì)等其他任務(wù);
-首先介紹一篇2019年做三維重建的文章
——Mesh R-CNN
這篇文章使用的正是mask rcnn 的框架,本篇文章提出了一種基于現(xiàn)實(shí)圖片的物體檢測(cè)系統(tǒng),同時(shí)為每個(gè)檢測(cè)物體生成三角網(wǎng)格給出完整三維形狀。文中的系統(tǒng)mesh-rcnn是基于mask-rcnn的增強(qiáng)網(wǎng)絡(luò),添加了一個(gè)網(wǎng)格預(yù)測(cè)分支,通過(guò)先預(yù)測(cè)轉(zhuǎn)化為物體的粗體素分布并轉(zhuǎn)化為三角形網(wǎng)格表示,然后通過(guò)一系列的圖卷積神經(jīng)網(wǎng)絡(luò)改進(jìn)網(wǎng)格的邊角輸出具有不同拓?fù)浣Y(jié)構(gòu)的網(wǎng)格。
△基本的pipeline
模型目標(biāo):輸入一個(gè)圖像,檢測(cè)圖像中的所有對(duì)象,并輸出所有對(duì)象的類別標(biāo)簽,邊界框、分割掩碼以及三維三角形網(wǎng)格。
模型主框架基于mask-rcnn,使用一個(gè)額外的網(wǎng)格預(yù)測(cè)器來(lái)獲得三維形狀,其中包括體素預(yù)測(cè)分支和網(wǎng)格細(xì)化分支。先由體素預(yù)測(cè)分支通過(guò)預(yù)選框?qū)?yīng)的RoIAlign預(yù)測(cè)物體的粗體素分布,并將粗體素轉(zhuǎn)化為初始的三角形網(wǎng)格,然后網(wǎng)格細(xì)化分支使用作用在網(wǎng)格頂點(diǎn)上的圖卷積層調(diào)整這個(gè)初始網(wǎng)格的定點(diǎn)位置。總框架圖如下所示:
△總框架圖
△分支細(xì)節(jié)
1、Box/Mask 分支:?和mask-rcnn中的兩個(gè)分支一樣。
2、體素預(yù)測(cè)分支:類似于mask-rcnn中的mask分支,輸入是RoIAlign,將預(yù)選框假設(shè)位于一個(gè)分割成 G*G*G個(gè)粗體素的空間,然后預(yù)測(cè)分割出來(lái)的粗體素占用率。使用一個(gè)小的全卷積網(wǎng)絡(luò)來(lái)保持輸入特征和體素占用預(yù)測(cè)概率之間的對(duì)應(yīng)關(guān)系。最后輸出用G個(gè)通道生成G*G的特征圖,為每個(gè)位置提供一列體素占用率分?jǐn)?shù)。
3、體素占用轉(zhuǎn)化為網(wǎng)格表示:將體素占用概率轉(zhuǎn)化為二值化體素占用之后,將每個(gè)被占用的體素被替換為具有8個(gè)頂點(diǎn)、18個(gè)邊和12個(gè)面的立方體三角形網(wǎng)格(如上圖Cubify所示),然后合并相鄰占用體元之間的共享頂點(diǎn)和邊,消除共享內(nèi)面就可以形成了一個(gè)拓?fù)浣Y(jié)構(gòu)依賴于體素預(yù)測(cè)的密集網(wǎng)格了。
網(wǎng)格細(xì)化分支
網(wǎng)格細(xì)化分支將初始的網(wǎng)格結(jié)構(gòu)經(jīng)過(guò)一系列精化階段(在文中作者使用了三個(gè)階段)來(lái)細(xì)化里面的頂點(diǎn)位置。每個(gè)精化階段都是輸入一個(gè)三角形網(wǎng)格),然后經(jīng)過(guò)三個(gè)步驟獲得更精細(xì)的網(wǎng)格結(jié)構(gòu):頂點(diǎn)對(duì)齊(獲得頂點(diǎn)位置對(duì)應(yīng)的圖像特征);圖卷積(沿著網(wǎng)格邊緣傳播信息);頂點(diǎn)細(xì)化(更新頂點(diǎn)位置)。網(wǎng)絡(luò)的每一層都為網(wǎng)格的每個(gè)頂點(diǎn)維護(hù)一個(gè)三維坐標(biāo)以及特征向量。
△網(wǎng)格細(xì)化分支
1、頂點(diǎn)對(duì)齊:利用攝像機(jī)的內(nèi)在矩陣將每個(gè)頂點(diǎn)的三維坐標(biāo)投影到圖像平面上。
根據(jù)獲取的RoIAlign,在每個(gè)投影的頂點(diǎn)位置上計(jì)算一個(gè)雙線性插值圖像特征來(lái)作為對(duì)應(yīng)頂點(diǎn)的圖像特征。
2、圖卷積:圖卷積用于沿著網(wǎng)格邊緣傳播頂點(diǎn)信息,公式定義如下:
其中N(i)表示頂點(diǎn)i的鄰點(diǎn)集合,使用多個(gè)圖卷積層在局部網(wǎng)格區(qū)域上聚合信息。
3、頂點(diǎn)精化:使用2中更新后的頂點(diǎn)特征使用下面公式來(lái)更新頂點(diǎn)位置:
只更改頂點(diǎn)位置,不更改三角形平面。
模型損失函數(shù)
網(wǎng)格細(xì)化損失(從三個(gè)方面定義了三個(gè)損失函數(shù))
論文實(shí)驗(yàn)
論文在兩個(gè)數(shù)據(jù)集上驗(yàn)證模型:在ShapeNet數(shù)據(jù)集上對(duì)網(wǎng)格預(yù)測(cè)器進(jìn)行了基準(zhǔn)測(cè)試與最先進(jìn)的方法進(jìn)行比較并且對(duì)模型中的各個(gè)模塊進(jìn)行單獨(dú)分析;在Pix3D數(shù)據(jù)集上測(cè)試完整Mesh R-Cnn模型在復(fù)雜背景下的物體三維網(wǎng)格預(yù)測(cè)結(jié)果。
在ShapeNet數(shù)據(jù)集:Mesh R-Cnn與其他的模型比較結(jié)果如圖下:
其中Ours(Best)表示去掉形狀正則化損失后的結(jié)果,在后面的實(shí)驗(yàn)中可以發(fā)現(xiàn),去掉形狀正則化損失后盡管在標(biāo)準(zhǔn)度量上有好的表現(xiàn),但是在視覺(jué)層面上生成的網(wǎng)格并不如加上后的結(jié)果(Ours(Pretty))。
表格中比較了模型的完整版本以及不同去除模塊版本的表現(xiàn):
其中Full Test Set表示在完整測(cè)試集上的表現(xiàn);
Holes Test Set表示在打孔對(duì)象測(cè)試集中的表現(xiàn);
Voxel-Only表示不適用網(wǎng)格細(xì)化分支;
Best和Perry分別表示不使用形狀正則化損失和使用形狀正則化損失;
Ours(light)表示在網(wǎng)格細(xì)化分支中使用較輕量的非殘差架構(gòu)。
盡管不使用邊長(zhǎng)正則化器的訓(xùn)練結(jié)果在標(biāo)準(zhǔn)度量中有更好的表現(xiàn),但是會(huì)產(chǎn)生退化的預(yù)測(cè)網(wǎng)格,會(huì)導(dǎo)致輸出的網(wǎng)格出現(xiàn)許多重疊的面。
對(duì)比Pixel2Mesh模型,Pixel2Mesh模型的輸出結(jié)果是從一個(gè)標(biāo)準(zhǔn)橢圓變形得到的,不能正確地建模有孔的物體。相反,Mesh R-Cnn可以對(duì)任意拓?fù)浣Y(jié)構(gòu)的物體進(jìn)行建模。
Pix3D數(shù)據(jù)集
可視化結(jié)果
本文總結(jié)
該文章的貢獻(xiàn)可歸納如下:
(1)借鑒mask rcnn 框架;
(2)由粗到細(xì)調(diào)整的思想;
(3)使用圖卷積神經(jīng)網(wǎng)絡(luò);
(4)使用多種損失來(lái)約束訓(xùn)練;
-最后介紹一篇論文,也是CVPR 2019的文章
△CVPR 2019, cited by 0
這篇文章同樣是既可以對(duì)單視圖,也可以對(duì)多視圖進(jìn)行重建,只不過(guò)這篇文章的重點(diǎn)不在這,而在于它可以對(duì)不可見(jiàn)部分(不確定性)進(jìn)行建模。
基本思想就是,每個(gè)輸入圖像都可以預(yù)測(cè)出多個(gè)重建結(jié)果,然后取交集就是最終結(jié)果。
下圖是主框架,左邊是訓(xùn)練階段,右邊是測(cè)試階段。
△主框架
左邊訓(xùn)練階段的意思是,輸入一張圖像 I,對(duì)其加入多個(gè)噪聲(r),生成多個(gè)重建結(jié)果(S)(類似于條件生成模型)。對(duì)改模型的訓(xùn)練要加約束,這里提出了front constraint和diversity constraint。
右邊是測(cè)試階段,提出了一個(gè)一致性損失(consistency loss)來(lái)進(jìn)行在線優(yōu)化。
Distance Metric:
△度量距離(這篇文章是基于點(diǎn)云做的,所以需要用度量距離衡量?jī)蓚€(gè)點(diǎn)云集的距離)
Diversity Constraint: 目的是讓條件生成器生成的重建結(jié)果更具有多樣性。
△Diversity Constraint:
Front Constraint:?對(duì)圖像前邊部分(部分點(diǎn))有監(jiān)督訓(xùn)練,所以這里有一個(gè)采樣過(guò)程,具體內(nèi)容如
下圖所示:
△Front Constraint、對(duì)Front Constraint采樣部分解釋
對(duì)于條件生成器生成的結(jié)果,用一個(gè)判別器去判斷這個(gè)形狀是否合理,公式如下:
Latent Space Discriminator(判別器是直接從WGAN-GP中拿來(lái)的)
△判別器
訓(xùn)練總的損失:
Inference (consistency constraint):
公式中Si 和 Sj 代表兩個(gè)點(diǎn)云集合。
△consistency constraint
條件生成器的結(jié)構(gòu):
△簡(jiǎn)約版本
△詳細(xì)版本
實(shí)驗(yàn)結(jié)果:
?
本文總結(jié)
該文章的貢獻(xiàn)可歸納如下:
(1)提出對(duì)不可見(jiàn)部分的不確定性進(jìn)行建模;
(2)使用了條件生成模型;
(3)提出了三種約束;
編輯:黃飛
?
評(píng)論