Point-MVSNet:基于多視角的點(diǎn)云重建網(wǎng)絡(luò)
Point-MVSNet的大致流程如下:1)首先生成一個(gè)粗略的深度圖(通過MVSNet,這是另一篇文章提出的網(wǎng)絡(luò)結(jié)構(gòu),不過它是通過cost volume的方式進(jìn)行重建的)。2)然后把深度圖轉(zhuǎn)換為點(diǎn)云,再通過事先生成的深度圖與ground truth之間的差值,通過迭代的方式進(jìn)一步優(yōu)化點(diǎn)云。Point-MVSNet的亮點(diǎn)為,該網(wǎng)絡(luò)把3D幾何先驗(yàn)知識(shí)和2D紋理信息融合到一個(gè)叫做特征增強(qiáng)點(diǎn)云中(feature-augmented point cloud),然后在為每一個(gè)點(diǎn)估計(jì)它的3D flow(什么是3D flow,難道是一個(gè)點(diǎn)的3D屬性的抽象表示???)
2.方法粗略深度圖預(yù)測(cè)論文采用MVSNet模型來生成一個(gè)粗略的深度圖。通過給予MVSNet圖片和相關(guān)的相機(jī)參數(shù),MVSNet生成一個(gè)3D cost volume(代價(jià)塊),所謂代價(jià)塊,是指每一個(gè)像素其實(shí)都有一個(gè)代價(jià)值,這個(gè)代價(jià)是通過代價(jià)聚合(cost aggregation)的方式計(jì)算來的,假想此處有一個(gè)WxHxD的三維矩陣,W和H分別是圖像的寬高,D是深度范圍(一般這個(gè)D都是在實(shí)驗(yàn)中,假定的一個(gè)范圍比如5-10之類的),這個(gè)三維矩陣的每一個(gè)值都是一個(gè)像素點(diǎn)在不同深度值下的代價(jià),如果說某一個(gè)像素點(diǎn)在的深度值下,它的代價(jià)最小,那么就取作為該像素點(diǎn)的深度值,每一個(gè)像素點(diǎn)的深度值確定了之后,這張圖片的深度圖也就確定了。2D-3D特征融合在網(wǎng)絡(luò)里面使用的點(diǎn)特征是由從多尺度條件下提取出來的圖像2D特征和歸一化的3D坐標(biāo)組成的,這就是所謂的2D-3D特征融合。這里的2D特征就是通過卷積網(wǎng)絡(luò)金字塔結(jié)構(gòu),提取出多尺度的圖像特征,賦予每個(gè)點(diǎn)更大的感受野和上下文信息,一張圖 ,這些不同尺度下的特征圖是需要融合在一起,再去和坐標(biāo)信息融合的。而且這里還不止一張圖片,是不同角度的多張圖片,每一張圖片還提取出了多尺度的特征圖,融合不同角度的圖像特征使,需要用到不同角度的相機(jī)參數(shù),這樣才能把特征圖wrap到一個(gè)統(tǒng)一的方向(就是一些旋轉(zhuǎn)矩陣和平移向量組成的相機(jī)外參以及相機(jī)內(nèi)參,再和特征圖做矩陣乘法)。多張圖片在同一個(gè)尺度下的特征融合公式如下:
文中提到的動(dòng)態(tài)特征提取的意思就是,得出來的Cp輸入到point flow中,得到深度殘差,然后這個(gè)深度殘差往回輸入到點(diǎn)云中,進(jìn)一步更新點(diǎn)云的位置,然后再通過更新后的點(diǎn)云輸入到point flow得到深度殘差。這個(gè)過程文中迭代了兩次。
PointFlowPointFlow是論文中的核心模塊,工作內(nèi)容為為unprojected point點(diǎn)(通過深度圖外加相機(jī)參數(shù),通過非映射的方式生成的點(diǎn))生成一系列假設(shè)點(diǎn),利用這些點(diǎn)構(gòu)造出一個(gè)有向圖,在進(jìn)行邊卷積進(jìn)一步提取鄰域特征。然后經(jīng)過MLP判斷unprojected point的偏移位置,偏移向量由各假設(shè)點(diǎn)帶權(quán)平均得到。
假設(shè)點(diǎn)的生成(Point Hypothesis Generation)
對(duì)每一個(gè)unprojected point都會(huì)沿著參考相機(jī)的方向生成一系列不同偏移的點(diǎn)(就是在投影出來的點(diǎn)的前前后后生成一些點(diǎn))。公式如下:
t代表參考相機(jī)的方向,s代表偏移距離。最后會(huì)有2m+1個(gè)假設(shè)點(diǎn)。
邊卷積(Edge Convolution)
如上圖所示,論文通過KNN的方法生成一個(gè)有向圖。邊卷積可以先簡(jiǎn)單理解為提取出邊的特征(后面研究DGCNN的時(shí)候再做詳細(xì)記錄)。
如上圖所示,邊卷積過后的點(diǎn)云跳連接到一起。
Flow Prediction
如上圖所示,Point Flow輸入增強(qiáng)點(diǎn)云,輸出深度殘差圖。內(nèi)部使用了三個(gè)EdgeConv層來聚合不用尺度下的點(diǎn)特征(特征金字塔剛好也是3層),再通過快連接把EdgeConv的結(jié)果組合成一個(gè)局部點(diǎn)特征。最后通過MLP來轉(zhuǎn)換點(diǎn)特征,輸出每一個(gè)unprojected point在假設(shè)點(diǎn)上的概率值,最終的unprojected point的偏移是由每一個(gè)假設(shè)點(diǎn)帶權(quán)平均得到的。
Training loss
損失函數(shù)的公式如下所示: 代表迭代次數(shù)
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。