1. 程式人生 > 實用技巧 >論文筆記_S2D.21_Deep Convolutional Neural Fields for Depth Estimation from a Single Image

論文筆記_S2D.21_Deep Convolutional Neural Fields for Depth Estimation from a Single Image

本篇論文的優勢:

①我們不採用任何這些啟發式方法改進我們的結果,但我們就相對誤差而言取得了更好的結果。
②為了克服過擬合,其他方法必須收集數以百萬計的帶有附加標籤的影象訓練他們的模型。一個可能的原因是,他們的方法捕捉到絕對畫素的位置資訊,他們可能需要一個非常大的訓練集覆蓋所有可能的畫素佈局。相比之下,我們只使用沒有任何額外資料的標準訓練集,但我們獲得相媲美,甚至更好的效能。
③我們的模型只有一元項的時候,相當於帶有模糊邊界的粗糙預測。通過加入平滑項,我們的模型產生了更好的視覺化,接近ground-truth

大體概括

由於目前對單幅單目影象進行深度估計並沒有合適的深度線索,所以以前的工作一直專注於幾何先驗或者是有手工製作特徵的額外資訊來源。另外,深度值的連續性的特性使得深度估計可以很自然地看成是一個連續的條件隨機場CRF

學習問題,它不依賴於任何的幾何先驗和額外的資訊。

所以這篇論文提出了一個deep convolutional neural field model,通過共同探索deep CNN和連續CRF的能力(在統一deep CNN框架中學習連續CRF(使用CRF明確相鄰超畫素的關係)的一元和成對的勢能),來進行估計單幅影象的深度(使用後向傳播進行訓練)。

此外,給定深度值的連續性,在概率密度函式中的分割槽函式(可積的)可以解析計算,因此,我們可以直接解決對數似然優化,而無需任何近似。

這篇論文所提出的方法可以用於一般場景的深度估計,這些場景沒有任何幾何先驗或者額外的資訊。此外,用MAP方法預測一幅新影象的深度,是高效的封閉式的解決方案。

Deep convolutional neural fields

【注】除非另有說明,否則本篇論文使用粗體大寫和小寫字母分別表示矩陣和列向量

①Overview

我們假設一幅影象是由小的均勻區域(超畫素)組成,圖模型是由結點組成,超畫素表示圖中的結點。
由於框架具有靈活性,因此可以應用在畫素和超畫素上。

每個超畫素由它的質心(centroid)的深度所描述。我們使用x表示一幅影象, y = [y1, . . . , yn]T ∈ R_n表示影象x中所有的n個超畫素所對應的連續深度值的一個vector。

類似於傳統的CRF,我們下邊的密度函式來建立資料的條件概率分佈模型。
在這裡插入圖片描述
其中,E是勢能函式(energy function);Z是配分函式(partition function),被定義為:

在這裡插入圖片描述
為了預測一個新影象的深度,we solve the maximum a posteriori(MAP) inference problem:
在這裡插入圖片描述

我們把勢函式看成是在結點(超畫素)N的一元勢能U和在影象X邊緣的成對勢能V的組合
在這裡插入圖片描述
其中,一元項U的目的是迴歸單個超畫素的深度值;成對項V鼓勵有相似外觀的鄰近超畫素採取相似的深度。我們的目標是在一個統一的CNN框架中,共同學習U和V.

An illustration of our deep convolutional neural field model for depth estimation.

【圖片內容的大致解釋】
The input image is first over-segmented into superpixels. In the unary part, for a superpixel p, we crop the image patch centred around its centroid, then resize and feed it to a CNN which is composed of 5 convolutional and 4 fully-connected layers .
In the pairwise part, for a pair of neighbouring superpixels (p, q), we consider K types of similarities, and feed them into a fully-connected layer.
The outputs of unary part and the pairwise part are then fed to the CRF structured loss layer, which minimizes the negative log-likelihood.
Predicting the depths of a new image x is to maximize the conditional probability Pr(y|x), which has closed-form solutions .

Note that the convolutional and the fully-connected layers are shared across all the image patches of different superpixels!!!
在這裡插入圖片描述

整個網路由一元部分(a unary part),成對部分(a pairwise part)和CRF損失層組成。
首先將一個輸入影象,分割(over-segment)成N個超畫素,我們考慮image patches圍繞每個超畫素的質心。

The unary part

將所有image patchesresize為224×224 pixels後作為輸入,放到每一個CNN中,輸出一個包括n個超畫素迴歸深度值的n維向量。
在這裡插入圖片描述
一元部分的網路由5個卷積和4全連線層組成。CNN的引數被所有的超畫素共享。注意各層的啟用函式問題
一個image patch輸出一個超畫素的一維實數值。

The pairwise part

把所有鄰近超畫素對的相似向量(每個包括k個元件)作為輸入,把它們放在全連線層(引數被不同的超畫素對共享),然後輸出一個包含每個相鄰超級畫素對的所有一維相似性的向量。

The CRF loss layer

從一元部分和成對部分輸出值作為CRF損耗層的輸入來最小化負對數似然函式。

這個模型兩個潛在的優點是:
1)實現平移不變性,因為我們構建一元勢能不考慮超畫素的座標;
2)成對勢能由鄰近超畫素的關係組成

②Potential functions

一元勢能Unary potential

在這裡插入圖片描述
這裡,z_p是由CNN引數θ引數化的超畫素p的迴歸深度。

成對勢能Pairwise potential

我們從相似觀察值的K個型別構造成對勢能,它們的利用鄰近超畫素的一致性資訊執行平滑:
在這裡插入圖片描述
其中,R_pq表示一個相鄰超畫素對(p,q)在the pairwise part的輸出,在這裡我們使用一個全連線層:
在這裡插入圖片描述
在這裡插入圖片描述:第k個相似矩陣,它是對稱的,其元素是在這裡插入圖片描述
在這裡插入圖片描述是神經網路的引數。

To guarantee Z(x)is integrable, we require β_k ≥ 0

我們通過顏色差異,顏色直方圖差異和區域性二進位制模式(LBP)的紋理差距這三種類型來衡量成對相似性。其卷積形式為:在這裡插入圖片描述=在這裡插入圖片描述

Learning

在這裡插入圖片描述由於在公式中的勢能函式y的二次項和A的正定性,我們可以解析計算公式(2)這個配分函式的積分:
在這裡插入圖片描述
則,根據公式(1),(10),(11),概率分佈函式為:
在這裡插入圖片描述
【注】
x_(i),y_(i)指的是第i個訓練函式和其對應的深度圖。
N是指訓練圖片的數量。
λ1 and λ2 are weight decay parameters
我們使用基於後向傳播的隨機梯度下降(SGD)來進行公式的優化

在這裡插入圖片描述

在這裡插入圖片描述

Implementation details

我們基於高效的CNN工具箱VLFeat MatConvNet1實現了網路的訓練。6GB的GPU可能無法在同一時間處理所有影象塊,因此我們把一幅影象的超畫素影象塊分成兩部分。在實施過程中,我們使用從 ImageNet中訓練的CNN模型,初始化圖2中一元部分的前6層。首先,我們不通過固定前6層進行反向傳播和訓練網路的其餘部分,然後我們執行60 epoches報告預訓練結果(學習速率下降兩倍),然後我們使用相同的動量和權重衰減訓練整個網路。

實驗結果對比

在這裡插入圖片描述