論文筆記:Depth Map Prediction from a Single Image using a Multi-Scale Deep NetworkEigen(Eigen 1)

一、基本信息

標題:Depth Map Prediction from a Single Image using a Multi-Scale Deep Network
時間:2014
出版源:NIPS
論文領域:單目深度估計、深度學習、CNN
引用格式:Eigen D, Puhrsch C, Fergus R. Depth map prediction from a single image using a multi-scale deep network[C]//Advances in neural information processing systems. 2014: 2366-2374.

二、摘要

單目視圖估計深度比較難,在本文中通過使用兩個深度網絡堆棧來解決這個問題:
1.基於整個圖像進行粗略的全局預測
2.局部優化這個預測
使用尺度不變誤差測量深度關係。

二、研究背景

大多數研究基於多目或者運動,比較少數基於單目深度的研究。但是大多數web和社交媒體上的圖片是單目的。
單目沒有被用於立體可能原因:

  • 不夠精確

2個技術不合適的問題:

  • 3D到2D有無數種可能,雖然大多數可以排除,但是總體是不精確的
  • 尺度變換(本文使用尺度不變的誤差解決 scale-invariant error)

本文直接使用神經網絡進行深度迴歸預測。

早期研究:

  • Make3D 線性迴歸和MRF,依賴於圖像的水平對齊,參數少。將圖像區域劃分爲幾何結構(地面、天空、垂直),簡單的場景三維模型。
  • 語義標籤對應,需要手工特徵和超像素
  • 基於SIFT光流使用knn方法,需要對齊
  • 在圖像補丁上訓練了一個因子自動編碼器來從立體序列預測深度;然而,這依賴於立體聲提供的局部位移
  • 還有幾種基於硬件的單圖像深度估計解決方案

三、創新點

在這裏插入圖片描述
2個網絡:
1.基於整個圖像進行粗略的全局預測網絡
2.局部優化這個預測的網絡

卷積輸出計算公式,具體看這裏
設圖像大小:n*n, 步長:s,卷積核大小:f,padding:p
(n+2pfs+1)(n+2pfs+1)\left(\frac{n+2 p-f}{s}+1\right) *\left(\frac{n+2 p-f}{s}+1\right)

全局粗尺度網絡

(上圖上方網絡,該網絡的輸出作爲局部細化網絡的輸入)
這不就是AlexNet ?再分析分析一波
在這裏插入圖片描述

  • 96 卷積(池化) 1/2
    輸入:304 * 228 * 3
    卷積核大小:11 * 11 *3 步長:4(這個是11x11核的中心視野) 數目:96
    輸出:75 * 56 * 96
    (304 - 11)/4 +1 = 74.25,取了上整75
    (228- 11)/4 +1 = 55.25,取了上整56
    ReLu激活
    池化層
    核大小:2 * 2 * 1 步長:1
    輸出:38 * 28 * 96
    (75 - 2)/2 + 1 = 37.5 ,取了上整38
    (56- 2)/2 + 1 = 28

.
.
.

  • 256 卷積(池化) 1/4
  • 384 卷積
  • 256 卷積
  • 256 卷積
  • 4096 全連接
  • 1 全連接

在這裏插入圖片描述
沒具體看論文實驗,不過上次分析了AlexNet,可以看到這個網絡就是AlexNet,網絡都一樣,2012提出,本論文2014應用倒也合理。
不過仔細發現這裏只用了2次池化,第5層沒有池化。所以輸出對於輸入時1/4。

局部細化網絡

在這裏插入圖片描述

  • Fine1卷積 (池化) 63
    大小:9 * 9 數目:63 步長:2
  • Fine2 組合
    輸入1:74 * 55(來自Coarse網絡)
    輸入2:
  • Fine3 卷積
    大小:5 * 5 數目:64
  • Fine4 卷積
    大小:5 * 5 數目:1

尺度不變誤差

定義:
D(y,y)=12ni=1n(logyilogyi+α(y,y))2D\left(y, y^{*}\right)=\frac{1}{2 n} \sum_{i=1}^{n}\left(\log y_{i}-\log y_{i}^{*}+\alpha\left(y, y^{*}\right)\right)^{2}
α(y,y)=1ni(logyilogyi)\alpha\left(y, y^{*}\right)=\frac{1}{n} \sum_{i}\left(\log y_{i}^{*}-\log y_{i}\right)
di=logyilogyid_{i}=\log y_{i}-\log y_{i}^{*}
D(y,y)=12n2i,j((logyilogyj)(logyilogyj))2=1nidi21n2i,jdidj=1nidi21n2(idi)2\begin{aligned} D\left(y, y^{*}\right) &=\frac{1}{2 n^{2}} \sum_{i, j}\left(\left(\log y_{i}-\log y_{j}\right)-\left(\log y_{i}^{*}-\log y_{j}^{*}\right)\right)^{2} \\ &=\frac{1}{n} \sum_{i} d_{i}^{2}-\frac{1}{n^{2}} \sum_{i, j} d_{i} d_{j}=\frac{1}{n} \sum_{i} d_{i}^{2}-\frac{1}{n^{2}}\left(\sum_{i} d_{i}\right)^{2} \end{aligned}

就是說有2個配對點i和j,i位置有預測深度yiy_i和真實深度yiy_i^*,j位置有預測深度yjy_j和真實深度yjy_j^*, 如果didj>0d_i d_j > 0,說明預測同向,誤差會更小,否則誤差更大。
損失函數就是上述式子最後一項:
L(y,y)=1nidi2λn2(idi)2L\left(y, y^{*}\right)=\frac{1}{n} \sum_{i} d_{i}^{2}-\frac{\lambda}{n^{2}}\left(\sum_{i} d_{i}\right)^{2}

作者λ=0.5\lambda=0.5

數據增強

  • 大小縮放s[1,1.5]s\in[1, 1.5],深度也縮放s,注意:會改變空間結構,因爲縮放s倍,不能保證鏡頭移動s倍
  • 旋轉
  • 平移(隨機裁剪),注意:會改變空間結構,平移後,深度值還是平移之前的,但是這種作者說操作有利於網絡-_-
  • 顏色
  • 水平翻轉

四、實驗結果

在這裏插入圖片描述
在這裏插入圖片描述
L2 scale-inv是使用了尺度不變損失函數結果,雖然沒有數值上的改進,但是觀察圖片可以看到細節有所改善。

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

五、結論與思考

作者結論

從單個圖像預測深度估計值是一項具有挑戰性的任務。但是,通過組合來自全局和本地視圖的信息,可以很好地執行它。我們的系統通過使用兩個深度網絡來完成這一任務,一個用於估計全局深度結構,另一個用於在局部進行更精細的解析。我們爲NYU Depth和KITTI數據集實現了一種新的最先進的技術,有效地利用了完整的原始數據分佈。在未來的工作中,我們計劃擴展我們的方法,以納入更多的三維幾何信息,如曲面法線。Fouhey等人在預測法線貼圖方面取得了令人鼓舞的結果。[2]將法線貼圖與深度貼圖結合起來,可以提高[16]的整體性能。我們還希望通過不斷地應用規模更小的局部網絡,將深度映射擴展到完整的原始輸入分辨率。

總結

使用卷積網絡預測深度,使用了2個網絡,一個用於全局,一個用於局部細節。

思考

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章