From Big to Small: Multi-Scale Local Planar Guidance for Monocular Depth Estimation 介紹

How哥
9 min readDec 30, 2021

--

From Big to Small 簡稱 BTS,在 KITTI 和 NYUv2 資料集上擁有絕佳的表現,不直接讓 Decoder 還原出深度,作者提出 LPG 層,使模型能透過 4 個參數還原出真實真度,來看看詳細介紹

2019 年的論文 2021 還有更新,但就是沒有上任何期刊,在各個深度 Dataset 表現都有前 4 名

Introduction

自古以來,想用單張影像來辨認影像中物體的深度,就是一個很難的問題,試想我們把一隻眼睛遮起來,只用一隻眼睛來看眼前的物品,也很難看出拿個離自己比較近,頂多用光影和經驗來判斷

而近期有人使用架構 Decoder-Encoder 的架構來預測單張影像深度,最常被拿來用的有 VGG、ResNet、DenseNet 諸如此類

上排:input, predict map, ground truth, 下排 (planar guidance resolution):1/2, 1/4, 1/8

而這些網路為了達到精確的準確度都會把網路層疊得很深,使得最後輸出 feature 比原本輸入的解析度還要小很多,損失的資料也變多,因此後來有人提出一些多尺度模型的方法,像是 Multi-scale NetworksSkip ConnectionsMulti-layer Deconvolutional NetworksAtrous Spatial Pyramid PoolingDilated Convolution 來讓模型不用疊很深,就能取得較多的資訊

為了讓模型在 Decode 階段能夠還原的更好,作者提出 Local Planar Guidance Layers 架構放在 Decoder 中,在解碼到 1/8, 1/4, 1/2 時個放置一層 Planar Guidance Layers 引導 Decoder 解碼出正確的深度,最後融合起來

不同於 Multiscale Network 和 Image Pyramid,從 Local Planar Guidance Layers 輸出的預測不直接預測深度,而是產生一個 4 維度係數,用來重建原尺度的深度資訊

Related Work

Supervised Monocular Depth Estimation

在監督式學習中,使用 RGB-D 相機或是雷射掃描器收集 GroundTruth 資料,並做訓練

Semi-Supervised Monocular Depth Estimation

在深度預測使用 Semi-Supervised 或是 Weakly Supervised,像是有人出對相對深度排序的 Loss Function 來訓練網路

Self-Supervised Monocular Depth Estimation

Self-Supervised 的作法是拿到一對 Stereo Image 並且計算視差得到深度來訓練網路,這類的作法大大降低製作 Dataset 時的工作量,但是跟最好的 Supervised Learning 模型精準度相比還是輸一點

Garg et al. and Godard et al. 的 Self-Supervised 方法是讓模型能從一張圖生成這張圖的雙目視差圖,並且定義這兩張圖的視差作為目標的 Reconstruction Error,把深度估計變成影像重建的問題

Godard et al. 提出一個能夠端對端的訓練,還提出左右圖片一致性的損失精進模型預測結果

Method

Network Architecture

下圖是網路架構圖

網路架構圖

首先使用一般常用的 Encoder 把圖片的大小變成原本的 8 分之 1,把編碼好的圖片接上 ASPP (Atrous Spatial Pyramid Pooling) 得到不同視野域的特徵融合之後,接上作者們提出的 LPG (Local Planar Guidance) 層,並且使用輸出的 4 個參數預測原本圖片的深度

LPG8x8 代表這裡每一個 pixel 會預測出一個 8x8 的平面大小,而他的輸入又是 H/8,所以輸出大小會就是 H

LPG4x4 同理,每個 pixel 預測出 4x4 平面,輸入是 H/4,所以輸出大小也會是 H

Local Planar Guidance

LPG 總共預測出 n1, n2, n3, n4 這 4 個參數,n1, n2, n3 的算法是由模型預測出 theta 和 phi,作者幾乎沒有解釋為甚麼,真的很棒

Equation 2

底下這個公式是由 Ray-Plane Intesection 公式推導而來的,這邊有解釋,總之他的特色是幾可用少數幾個參數還原出平面,這裡的 u, v 表示 kxk的座標,不少人在 issue 裡頭問他模型參數怎麼帶入到公式中,這裡有解說

底下這張圖顯示,不同大小的 LPG 層還原出不同細緻度的圖片,把這些圖片加在一起就能還原出真實真度(紅色框框)

Experiment

GPU GTX1080 TI,50 epoch

NYUv2 Depth

使用裡面的 24,231 張圖片訓練,最遠距離是 10 公尺

KITTI Eigen Split

使用 23,488 圖片訓練,最遠距離為 80 公尺

底下是在 NYU 上跟其他現有的方式比較

Evaluation results on NYU Depth v2. Ours outperforms previous works with a significant margin in all measures except only from AbsRel

在 KITTI 上的比較結果,可以發現 0-50m 比 0-80m 精準度較高

Performance on KITTI Eigen split. (CS+K) denotes a model pre-trained on Cityscapes dataset [8] and fine-tuned on KITTI

還有把結果丟入 KITTI server 的結果

Result on the online KITTI evaluation server

底下是比較提出來的模塊看加上後有沒有比較好,Baseline 是普通的 ResNet-101 加上 upsample 組成的,A 代表 ASPP,U 代表 upconv(先變大兩倍之後再經過 convolution),L 代表 LPG

Ours-ResNet Ours-DenseNet 使用的 loss function 略有不同,會把原本的 loss 開更號 * 10,他也沒解釋為甚麼

下圖是把 encoder 換成其他模型,看效果如何

換 Backbone

下面是一些視覺化的結果

Conclusion

BTS 模型真的是除了使用 Transfomer 模型以外做得最好的一個深度預測模型,但是有太多地方沒有解釋清楚,從 2019年發的第一個版本到 2021 年的第六個版本,我都沒辦法從中得到一些合理的解釋,像是為甚麼他會想用 Ray Plane Intersection 導出一個平面,或是裡面有些地方取了 sin 和 cos ,在 github issue 裡面有很多人有相同的問題,作者都選擇沒有回答,只能說模型精準度這麼高的論文沒有投上任何一個 conference 有點可惜了

--

--

How哥

台灣科技大學資工所研究生,把有趣的電腦視覺論文整理上來,希望能幫助到有需要的人,聯絡信箱 b10515007@gmail.com