­

論文閱讀:Consistent Video Depth Estimation

  • 2020 年 7 月 17 日
  • AI

Hello!終於又到了小李更新論文閱讀模塊的時間了。

論文名稱:《Consistent Video Depth Estimation》
論文地址://arxiv.org/abs/2004.15021
項目地址://roxanneluo.github.io/Consistent-Video-Depth-Estimation/
論文部分翻譯://blog.csdn.net/dy_happy/article/details/105940293
閱讀參考鏈接://blog.csdn.net/qq_26623879/article/details/105926829
中國女博士的「水淹食堂」大法:單目視頻完美重建3D場景,畫面毫無違和感

本篇文章只記錄個人閱讀論文的筆記,具體翻譯、代碼等不展開,詳細可見上述的鏈接.

Background

Task(what to do )
Reconstructing dense, geometrically consistent depth for all pixels in a monocular video
即重建單目視頻中所有像素密集、幾何一致性深度估計,也就是從重建的角度來做深度估計。

Challenges
a.Traditional reconstruction methods combine sparse structure-from-motion with dense multi-view stereo-essentially matching patches along epipolar line
This often induces incorrect geometry in the affected regions, so that many methods drop pixels with low confidence altogether, leaving 「holes」 in the reconstruction
傳統的重建的方法是結合稀疏的sfm和密集的多視圖幾何來得到,實質就是在極線之間匹配塊。那麼匹配的正確,得到的結果在幾何上就越準確。然而匹配塊通常有很大的噪聲,這就需要使用正則化進行平滑噪聲, 這往往導致受影響區域的幾何形狀不正確,因此許多方法完全以低置信度的方式丟棄像素,在重建中留下「洞」。
b.Learning-based methods
These methods do not require heuristic regularization
However, the estimated depth often flickers erratically due to the independent per-frame processing
基於學習的方法,不需要進行正則化,而是從數據中學的場景的先驗知識,這樣就會有在有缺陷的地方也會有很好的重建的能力。然而,因為每個幀是獨立處理的,產生的深度圖會有不穩定的閃爍,不是度量的。這就會導致視頻重建產生幾何上的不穩定
c. poorly textured areas, repetitive patterns, and occlusions, there are several additional challenges with video: higher noise level, shake and motion blur, rolling shutter deformations,small baseline between adjacent frames, and, often, the presence of dynamic objects, such as people
獲取單目視頻並重建,對於我們大部分人來說最希望可以通過手機就可以進行3D重建,手機比較方便,會容易獲得大的場景,但是實現起來並不容易。這其中會有不少問題,比如弱紋理,重複文案,遮擋,而且對於視頻額外的挑戰有高噪聲,晃動和模糊,變形,一級在連續兩幀之間有很小的基線,而且有動態的物體。
(a,b兩種缺陷如下圖b,c所示)

Work

Do?
In this work, we present a new video-based reconstruction system
that combines the strengths of traditional and learning-based techniques.
在本工作中,我們提出了一種新的基於視頻的重建系統,它結合了傳統技術和基於學習的技術的優點。

Related Work
a.Supervised monocular depth estimation:基於監督的單目深度估計
需要很多的精力標註,獲取那麼多的真實數據存在困難
b.Self-supervised monocular depth estimation:自我監督的單目深度估計
不適合遠距離的框架,因為大的外觀上的變化會產生影響
c.Multi-view reconstruction:多視圖重建
針對的大多是靜態的場景
d.Depth from video:視頻中估計深度
e.Temporal consistency:時間一致性
f.Depth-aware visual effects:深度感知視覺影響
g.Test-time training

Model

如上圖所示即為此論文的主要模型。先介紹一下大體的思想:
1.首先, 以單目視頻為輸入,對一對(潛在的遠距離)幀進行採樣,並使用預先訓練的單圖像深度估計模型估計深度,以獲得初始深度圖。
2.對這對圖像,使用光流法前後向一致性檢查建立對應關係。接着,利用這些對應關係和相機位置提取三維幾何約束。
3.將三維幾何約束分解為兩個損失:空間損失和視差損失。通過標準反向傳播,用這兩個損失對深度估計網絡的權重進行微調,以最小化多幀幾何不一致性誤差。 在微調階段之後,我們從視頻中得到的最終深度估計結果是從微調模型中計算出來的。
總的來說,該論文思想是結合各個方法的優勢。使用已經存在的單圖片深度估計網絡去估計可能的深度,然後使用傳統的重建方法提取幾何約束來微調該網絡(即傳統的方法與基於學習的方法結合),所以這個網絡會產生幾何上一致性的深度圖。主要分為兩個階段:
預處理階段:從視頻幀中提取出幾何約束,使用傳統的方法sfm,計算出內外參,使用初始網絡產生初始深度圖。
測試訓練階段:微調網絡。

詳細說明各階段
預處理
1.相機標定(Camera registration):使用sfm和多視圖立體重建軟件COLMAP來估計視頻每一幀之間的相機的內參和外參。但是因為在重建的過程中有動態的物體,所以我們使用R-CNN分割出人,並且抑制這些區域特徵的提取。(為了消除場景中人,動物等動態物體,採用Mark-rcnn將其從幾何重投影中剔除)
2.尺度校準(Scale calibration):sfm和基於學習的重建的尺度可能是不匹配的,為了使尺度在幾何損失上兼容,我們調整sfm的尺度,可以簡單地通過將所有相機平移乘以一個因子來做到這一點。D^{NN}_i作為深度網絡初始的深度圖,首先圖像i計算相對尺度

其中D(x)是x的深度值。進一步計算全局尺度自適應因子s:

然後對於所有的位姿變換的t_i,進行尺度調整:

3.幀採樣(Frame sampling):第一個階段是采連續相鄰的幀,第二個階段包含一個逐漸稀疏的幀採樣,最後一個階段是上面兩個的一個並集。
4.光流估計(Optical flow estimation):對於S中的所有幀對(i,j),我們需要計算一個密集的光學流場Fi→j。 因為當框架對儘可能對齊時,流量估計效果最好,所以我們首先對齊(潛在的遠距離)幀使用(用基於RANSAC的擬合方法計算)消除兩幀之間的主導運動(例如,由於攝像機旋轉)。 然後我們使用FlowNet2 計算對齊幀之間的光流。
接下來還是得考慮如何讓幾何投影儘可能的前後一致,對於圖像中由於遮擋了一些像素在下一幀中不從在了,這樣就破壞了幾何投影中的原則。為了考慮運動物體和遮擋/去遮擋(因為它們不滿足幾何約束或不可靠),應用前向-後向一致性檢查,並去除前向-後向誤差大於1像素的像素,得到一個二值映射Mi→j。 此外,我們還觀察到流動估計 對於重疊少的幀對,結果是不可靠的,所以我們排除了重疊率少於20%的幀對.

測試階段
1.空間損失(space loss)
首先(7)表示通過預處理階段求得的,x是幀為i的2D上的坐標,那麼相對應的第j 幀的坐標即f_{i→j}

將當前的2D坐標x轉換為對應的相機下的3D坐標c(x),利用當前初始計算得到的深度

\widetilde{x}是x的齊次坐標,K是相機的內參,然後映射到第j幀下的三維坐標

R,t是相機外參旋轉和平移,再把這個三維坐標轉換為對應的二維坐標

那麼最後對應的空間損失就是:

2.視差損失(The disparity loss)

其中U_i是幀i的焦距,z_iz_{i→j}分別是c_ic_{i→j}的標量z分量。
所以總的損失即二者相加:

其中λ=0.1是平衡係數

優化
通過分析第i幀和第j幀之間的幾何損失L_{i→j},利用標準反向傳播對網絡權值進行微調。使用預訓練的深度估計模型初始化網絡參數,使我們能夠使用先驗知識,在圖像上生成可信的深度圖,這對傳統的基於幾何的重構系統是一個挑戰。使用固定數量的epoch對網絡進行微調(所有實驗使用20個epoch)。在實踐中,我們發現,通過這個簡單的微調步驟,網絡訓練不會對數據進行過度擬合,不會喪失在場景的無約束或弱約束部分合成合理深度的能力。

Experiment

1.Implementation details
試驗了幾種單目深度估計體系結構和預先訓練的權重Mondepth2 和 Neural RGB→D Sensing: Depth and Uncertainty from a Video Camera作為先驗訓練完成網絡。在我們所有的實驗中,我們使用ADAM optimizer對網絡進行了20個epoch的Test-train,批處理大小為4,學習速率為0.0004。不同長度的視頻的測試時間不同。對於一個244幀的視頻,在4台NVIDIA Tesla M40 gpu上訓練需要40分鐘
2.Dataset:(1) the TUM dataset (2) the ScanNet dataset (3) the KITTI 2015 dataset
3.Evaluation metrics:Photometric error Ep(重投影像素誤差)、Instability(穩定性)、Drift(漂移量)

實驗結果
與最先進的深度估計算法進行比較

頂部:靜態序列;底部:動態序列。

消融實驗(Ablation Study):

公共基準的定量比較

評價指標參見://blog.csdn.net/aq531211903/article/details/84307358

局限性探討:
1.姿勢
該方法目前依賴 COLMAP,來基於單目視頻估計相機位姿。而在難度較大的場景中,如相機平移有限及動態模糊的情況下,COLMAP 可能無法生成靠譜的稀疏重建結果和相機位姿估計。
較大的位姿誤差也會對該方法的輸出結果造成極大的負面影響,因此這限制了該方法在此類視頻中的應用。
將基於學習的位姿估計和該研究提出的方法結合起來,或許是一個不錯的研究方向。
2.動態運動
該方法支持包含溫和運動的視頻,但如果運動較為激烈則該方法會出現問題。
3.光流
該方法依賴 FlowNet2 來構建幾何約束。使用前後向傳播一致性檢查並過濾掉不可靠的光流,但這也可能出現錯誤。這時該方法無法輸出正確的深度。研究者嘗試使用稀疏光流,但效果並不好。
4.速度
該方法利用視頻中所有幀提取幾何約束,因此不支持在線處理。例如,對於一個包含 244 幀、708 個採樣光流對的視頻來說,該方法的測試時訓練步耗時約 40 分鐘。


Ending~