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