天天看點

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

一、論文簡述 

1. 第一作者:Jiayu Yang

2. 發表年份:2020

3. 發表期刊:CVPR oral

4. 關鍵詞:MVS、深度學習、代價體金字塔、殘差深度圖

5. 探索動機:MVSNet記憶體消耗立方級别的,R-MVSNet減少了記憶體但需要更多時間,Point-MVSNet運作時間和疊代次數成正比。現在基于學習的網絡精度很好,但是太慢了。

Yao et al. propose MVSNet to infer a depth map for each view. An essential step in is to build a cost volume based on a plane sweep process followed by multiscale 3D CNNs for regularization. While effective in depth inference accuracy, its memory requirement is cubic to the image resolution. To allow handling high resolution images, they then adopt a recurrent cost volume regularization process. However, the reduction in memory requirements involves a longer run-time.

In order to achieve a computationally efficient network, Chen et al.work on 3D point clouds to iteratively predict the depth residual along visual rays using edge convolutions operating on the knearest neighbors of each 3D point.While this approach is efficient, its run-time increases almost linearly with the number of iteration levels.

寫的很詳細。

6. 工作目标:是否提高精度的同時,可以提高網絡的效率?

7. 核心思想:提出了一個基于代價體、小型的和計算效率高的MVS深度推斷網絡;在詳細分析深度殘差搜尋範圍與圖像分辨率之間關系的基礎上,以由粗到細的方式建構代價體金字塔;架構可以用更少的記憶體處理更高分辨率的圖像,比目前最先進的架構(如Point-MVSNet)快6倍,并在基準資料集上實作了更好的精度。

8. 實驗結果:在基準資料集上,該模型具有與最先進的方法相似的性能,但是速度快6倍。

9. 論文及代碼下載下傳:

Cost Volume Pyramid Based Depth Inference for Multi-View Stereo (thecvf.com)

http://https: //github.com/JiayuYANG/CVP-MVSNet

二、實作過程

1. CVP-MVSNet概述

由粗到細(coarse-to-fine)建構代價體金字塔。首先建構不同分辨率的L+1層圖像金字塔,接着用最小分辨率層的N張圖像按照MVSNet的方式建構代價體,推斷深度圖DL+1,并上采樣得到L層的初始深度圖DL;以初始深度圖DL為基礎、結合L層的N張圖像,通過重投影的方式建構一個部分代價體(partial cost volumes),并依次推斷出初始深度圖DL上各像素的殘差深度(residual depth,即相對于初始深度的Δd),相加之後得到目前L層的最終深度圖,不斷重複疊代至推斷出最終第0層即原始尺寸的深度圖。

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

2. 特征金字塔

特征提取管道機制包括兩個步驟,首先對于每個輸入圖像,建構L + 1層圖像金字塔。其次,利用9個卷積層組成特征提取網絡(參數共享)擷取特征圖,每一層後面都有Leaky-ReLU激活函數(代替一般的 Conv + BN + ReLu結構)。每層的輸出通道數為16,第l層的寬高尺寸為[W/2l,H/2i]。

可學習特征表示的意義:​As raw images vary with illumination changes, we adopt learnable features, which has been demonstrated to be crucial step for extracting dense feature correspondences.

3. 代價體金字塔

動機:Common approaches usually build a single cost volume at a fixed resolution, which incurs in large memory requirements and thus, limits the use of high-resolution images.

解決思路:we propose to build a cost volume pyramid, a process that iteratively estimates and refines depth maps to achieve high resolution depth inference.

3.1. 推斷粗略深度圖的代價體(第L層)

建構最頂層也就是分辨率最小一層的代價體,方式和MVSnet一模一樣,深度假設均勻采樣。這一部分對于代價體建構描述的很詳細,建議反複閱讀。

深度定義:A sampled depth d = dmin + m(dmax - dmin)/M, m ∈ {0, 1, 2, · · · , M-1} represents a plane where its normal n0 is the principal axis of the reference camera.

方差意義:This metric encourages that the correct depth for each pixel has the smallest feature variance, which corresponds to the photometric consistency constraint.

3.2. 推斷多尺度深度殘差的代價體(第L層-第0層)

首先在上節中我們得到了第L+1層的深度圖DL+1,通過雙三次插值将其上采樣得到第L+1層的初始深度圖DL+1↑,然後,建構部分代價體,對定義為∆Dl的殘差深度圖進行回歸,得到第l層的改進後的深度圖Dl = Dl+1↑ +∆Dl。随後重複該步驟至第0層得到最終深度圖。

Our motivation is that depth displacements for neighboring pixels are correlated which indicates that regular multi-scale 3D convolution would provide useful contextual information for depth residual estimation. We therefore arrange the depth displacement hypotheses in a regular 3D space and compute the cost volume as follows。

對于上采樣後的初始深度圖DL+1 ↑,我們定義第L層圖像上像素點p(u,v)深度為dp=DL+1 ↑(u,v)。下圖是該操作的兩個步驟,左邊為重投影操作,右邊為提取特征和建構部分代價體。 

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

​左邊:重投影過程

在L層,依據目前點p的初始深度dp找出對應3D點(綠色),加、減一個值作為最遠和最近的、可能真實3D點(紫色、紅色),殘差搜尋深度sp就是指紫色點和紅色點之間的距離(該範圍及間隔標明方法将在下一節詳細解釋),殘差深度平面就是在中間劃分M個可能的深度值平面,此時殘差深度平面的距離間隔為Δdp=sp/M,M個可能3D點的深度值為(DL+1 ↑(u,v)+mΔdp),其中m∈{-M/2, … ,M/2-1}。也就是以初始深度為起始點,初始深度加、減sp/2為可能的3D點最遠、最近深度。

此時對于目前參考視圖下的像素點p,我們可以将其M個不同深度的可能3D點的按照以下公式投影,在一張源視圖下得到M個深度對應的特征,如圖上設定的紫色、綠色、紅色三個深度點在各個源視圖下都對應了一個特征。

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

右邊:建構局部代價體

将這些不同深度的可能3D點投影後的特征做方差,并将方內插補點作為像素點p在該深度的代價;由于有M個假設深度,共HxW個像素點,通過以下公式,便得到[H/2l×W/2l×M×F]的部分代價體,回歸即可的到殘差深度Δd。

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

這裡和MVSNet建構代價體都使用方差法,MVSNet是通過假設一系列深度值,将各源視圖轉化到參考圖前的平行視錐體,也就是參考視圖的各像素坐标通過單應矩陣H變換到源視圖下對應的像素坐标進而取其值,而這裡是通過假設真實3D點位置來找到各源視圖上該點的特征。本質上是一樣的,隻是一個從源圖像投到參考圖像,一個從參考圖像投到源圖像。

參考:https://blog.csdn.net/qq_41794040/article/details/127897080

4. 深度圖推斷

4.1. 代價體金字塔的深度采樣

我們觀察到虛拟深度平面的深度采樣與圖像分辨率有關。如圖所示,不需要對深度面進行密集采樣,因為這些采樣的3D點在圖像中的投影距離太近,無法為深度推斷提供額外的資訊。實驗中,為了确定虛拟平面的數量,隻計算圖像中對應0.5像素距離的平均深度采樣間隔。

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

​為了确定每個像素目前深度估計附近的深度殘差局部搜尋範圍,我們首先将其3D點投影到源視圖中,沿着極線在兩個方向上找到距離其投影兩個像素的點(見 2 pixel length),然後将這兩個點反向投影到3D射線中。這兩條射線與參考視圖中的可視射線的交點決定了目前層的深度的搜尋範圍。

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

​4.2. 深度圖估計

與MVSNet一樣,把代價體輸入3D卷積網絡中聚合上下文資訊并輸出機率體,由機率體通過soft-argmax求期望得到深度圖。首先對PL=0應用soft-argmax來獲得粗深度圖:

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

​然後,利用soft-argmax疊代改進得到的深度圖PL,得到較高分辨率下的深度殘差。設rp = m·∆dp為深度殘差假設。我們計算下一層的更新深度為:

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

​5. 損失函數

對每層估計深度圖與真實深度圖求l1損失求和作為loss:

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

​其中Ω是帶有真實度量的有效像素集。​​

6. 實驗

6.1. 資料集

DTU Dataset

真實深度圖大小:To train our model, we generate a 160 × 128 depth map for each view by using the method provided by MVSNet.

Tanks and Temples Benchmark:intermediate set

6.2. 實作

訓練:使用DTU資料集訓練CVP-MVSNet。與Mvsnet、RMvsnet以高分辨率圖像作為輸入,但估計的深度圖尺寸較小不同,我們的方法生成與輸入圖像相同大小的深度圖。為了進行訓練,我們通過将高分辨率圖像下采樣到一個較小的尺寸為160×128的圖像來比對真實深度圖。然後,我們建立了圖像和地面的兩層真實深度金字塔。為了建構代價體金字塔,我們在最粗(第2層)的整個深度範圍内均勻采樣M = 48個深度假設。然後,每個像素下一層有M = 8個深度殘差假設,用于深度估計的改進。輸入視圖數N = 3,通過PyTorch實作,Adam作為優化器,batch size為16,在1張NVIDIA TITAN RTX顯示卡訓練,疊代27個epoch。

名額:accuracy, completeness and overall score

Accuracy is measured as the distance from estimated point clouds to the ground truth ones in millimeter and completeness is defined as the distance from ground truth point clouds to the estimated ones [1]. The overall score is the average of accuracy and completeness.

評估:設定深度采樣次數,最粗深度估計M = 96,對于深度殘差推理層M = 8。輸入視圖數N = 5,采用相同深度圖融合方法得到點雲D = 192。用不同大小的圖像評估我們的模型,并相應地設定金字塔水準,以在最粗的水準上保持與輸入圖像(80 × 64)相似的大小。例如,輸入尺寸為1600 × 1184時,金字塔有5層,輸入尺寸為800 × 576和640 × 480時,金字塔有4層。

6.3. 結果

DTU資料集重建品質:SOTA

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

​時間及記憶體:精度相似,但是又快又小

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

​點雲及法線圖:上面一行顯示點雲,下面一行顯示與橙色矩形對應的法線圖。在法線圖中看到,我們的結果在邊緣區域獲得更多高頻細節的同時,在表面上更平滑。

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

​泛化性:SOTA

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程

​6.4. 消融實驗

訓練金字塔層級。首先分析金字塔層數對重建品質的影響。為此,我們對圖像進行下采樣,以形成具有四個不同層次的金字塔。分析結果彙總在表中。如圖所示,2層金字塔是最好的。随着金字塔等級的增加,最粗等級的圖像分辨率降低。對于超過2層的情況,這個分辨率太小,無法生成一個好的初始深度圖。

評估像素間隔設定。深度采樣是由源視圖中相應的像素偏移量決定的,是以設定合适的像素間隔很重要。表中總結了在評估期間從0.25像素到2像素對應的深度範圍更改間隔的效果。如圖所示,當間隔過小(0.25像素)或過大(2像素)時,性能會下降。

【論文簡述】CVP-MVSNet:Cost Volume Pyramid Based Depth Inference for Multi-View Stereo(CVPR 2020)一、論文簡述 二、實作過程
這篇論文在每節開始前和結束後都有或多或少的總述或總結,文字表述很結構化。

繼續閱讀