1. 程式人生 > >論文閱讀筆記之Dispnet

論文閱讀筆記之Dispnet

寫在前面

總算有時間寫點東西,整理了一篇近期看的論文《A Large Dataset to Train Convolutional Networks for Disparity, Optical Flow, and Scene Flow Estimation》的閱讀筆記。如有轉載請註明出處。

1. 背景知識

立體視覺

目的在於重構場景的三維幾何資訊。
三種研究方法

  1. 程距法:直接使用測距器(如結構光,鐳射測距器)來獲得程距資訊建立三維描述。這是一種主動方式的立體視覺方法,已知的深度圖,用數值逼近的方法重建表面資訊,根據模型建立場景中的物體描述,實現影象理解功能。這類方法適用於嚴格控制下的環境,如工業自動化的應用方面。
  2. 單張影象推斷三維形狀:依據光學成像的透視原理及統計假設,根據場景中灰度變化匯出物體輪廓及表面,由影到形從而推斷場景中的物體。線條圖的理解就是這樣的一個典型問題,曾經引起了普遍的重視而成為計算機視覺研究領域的一個焦點,由此產生了各種各樣的線條標註法。這種方法的結果是定性的,不能確定位置等定量資訊,該方法由於受到單一影象所能提供資訊的侷限性,存在難以克服的困難。
  3. 多張影象恢復三維資訊:這是一種被動方式的方法,根據影象獲取方式的區別又可以劃分成普通立體視覺和通常所稱的光流兩大類。普通立體視覺研究的是由兩攝像機同時拍攝下的兩幅影象,而光流法中研究的是單個攝像機沿任一軌道運動時順序拍下的兩幅或更多幅影象。前者可以看作後者的一個特例,它們具有相同的幾何構形,研究方法具有共同點。雙目立體視覺是它的一個特例

其他基本概念

雙目立體視覺匹配(底層視覺問題)
是從雙目相機所獲取的左眼影象和右眼影象中恢復出逐畫素點的深度。由於雙目相機中的平行極線約束,該問題又轉化為左右眼圖之間的逐畫素匹配問題。
Disparity 視差 (與深度圖是反比關係)
就是從有一定距離的兩個點上觀察同一個目標所產生的方向差異。
Optional Flow 光流
光流指空間運動物體在觀察成像平面上的畫素運動的瞬時速度。
Scene Flow 場景流
場景流指空間中場景運動形成的三維運動場,論文中使用Disparity,Disparity change和Optional Flow表示。
光流是平面物體運動的二維資訊,場景流則包括了空間中物體運動的三維資訊。
EndPoint Error(EPE)


對預測錯誤率的一種評估方式,指所有畫素的ground truth和預測出來的光流之間的歐式距離的平均值,越低越好。

(uug)2+(vvg)2
uv是演算法估計出的結果,ugvg是真實值。

2. 文章主要貢獻

資料集:論文使用開源的3D Creation Suite Blender渲染出一系列帶有複雜運動模式的物體雙目圖片。渲染時從3D到2D且物體及場景的三維模型已知,生成訓練資料集。

模型:Dispnet,SceneFlownet(由一個Flownet和兩個Dispnet組成)模型訓練使用人工合成的資料集。

3. Dispnet的網路

Dispnet的網路結構是在Flownet的結構上進行的修改。因此先介紹Flownet的網路,然後介紹Dispnet的變化部分。

3.1. Flownet的網路結構

Flownet整體結構

3.1.1. 整體思路:

收縮部分——主要由卷積組成,用於深度的提取兩張圖片的一些特徵
擴大部分——智慧的把結果由粗到細,恢復到高畫素

3.1.2. 縮小部分

Flownet縮小部分結構
FlowNetS:兩張圖片的通道concat,輸入通道為6
FlowNetC:兩張圖片分開處理(分開處理時經過相同的layer),得到各自的特徵圖,再找到特徵圖之間的聯絡。這裡涉及一個corr層。

兩個特徵圖分別為f1,f2: w * h * c, 然後corr層比較這兩個特徵圖各個塊。比如以x1為中心的一塊和以x2為中心的一塊,它們之間的聯絡用以下公式計算,塊長為K:= 2k+1,大小為 K*K。
corr計算公式
該公式和卷積的操作是一樣的,以x1為中心的patch和以x2為中心的patch,對應位置相乘然後相加,這就是卷積核在圖片上的操作啊,只是卷積網路裡是和filter之間進行卷積,且它的weight是不需訓練或不可訓練。計算這兩塊之間的聯絡計算複雜度是 c * K * K,而f1上每個塊都要與f2上所有塊計算聯絡,f1上有w * h個塊(每個畫素點都可以做一個塊的中心點),f2上也有w * h個塊,所有整個計算複雜度是c * K * K * ( w * h) * ( w * h),這裡是假設每個塊在下一張圖上時,可以移動任何位置。但是這樣計算複雜度太高了,所以我們可以約束位移範圍為d(上下左右移動d),就是每個塊只和它附近D: 2d+1的位置塊計算聯絡,而且以x1為中心的塊去和它附近D範圍計算聯絡時,還可以加上步長,就是不必和D範圍的每個點都進行計算,可以跳著。

3.1.3. 放大部分

Flownet放大部分結構
一邊向後unconv,一邊直接在小的特徵圖上預測,然後把結果雙線性插值然後concat在unconv後的特徵圖上,然後接著往後傳,重複四次後,得到的預測光流解析度依然是輸入的1/4,再重複之前的操作已沒有太多提升,所以可以直接雙線性插值得到和輸入相同解析度的光流預測圖。
在最後的雙線性插值放大上還有個可選方案就是variational approach。

3.2. Dispnet的網路結構

Dispnet結構
上圖為DispnetS的結構,對應於FlowNetS,主要有3點改變:

  1. label的augmentation裡多了一個dummydata——輔助實現,對效果無影響,多加一個dummydata是因為FlowAugmentation要求ground truth的channel需為2(原來處理flownet,光流的chhannel為2)。
  2. 放大部分在每個deconv和前一預測結果的concat後增加一個卷積層——文中解釋是這樣做得到的結果圖更為平滑。
    對比圖
  3. 放大部分比Flownet多做了一次deconv——得到的結果圖解析度更高
    Flownet 384*512->96*128
    Dispnet 384*768->192*384

DispNetCorr1D結構對應FlowNetC ,除了上述與DispnetS一樣的改變,對corr做了一些變換:

  1. DispNetCorr1D是兩層卷積後做corr,FlowNetC是三層卷積後做corr;
  2. DispNetCorr1D將corr操作變為一維操作,只在x方向上做運算;
  3. 對於corr layer的一些引數設定進行了更改:
    corr設定對比
    左為FlowNetC,右為DispNetCorr1D

4. 訓練過程

端對端訓練:Given the images as input and the ground truth as output。

優化方式:Adam

學習率:1e-4
divided it by 2 every 200k iterations starting from iteration 400k.

loss weight
We found that using a loss weight schedule can be beneficial: we start training with a loss weight of 1 assigned. to the lowest resolution loss loss6 and a weight of 0 for all other losses (that is, all other losses are switched off). During training, we progressively increase the weights of losses with higher resolution and deactivate the low resolution losses. This enables the network to first learn a coarse representation and then proceed with finer resolutions without losses constraining intermediate features.

資料擴充
spatial (rotation, translation, cropping, scaling)
chromatic transformations (color, contrast, brightness)

For disparity, any rotation or vertical shift would break the epipolar constraint, and horizontal shifts between stereo views could lead to negative disparities.
旋轉或垂直移動會破壞極線約束,水平移動可能導致錯誤視差。
因此,dispnet資料擴充無rotate。

5. 實現細節

5.1. 資料擴充

CustomData——讀取資料,根據slice_point切割channel,輸出為img0,img1,groundtruth
Eltwise——按元素操作層。支援3種基本操作:
PROD:按元素乘積 SUM:按元素求和(預設) MAX:儲存元素大者
在dispnet中用於資料歸一化[0,255]->[0,1]
DataAugmentation——對資料集進行擴充, aug params變換系數,42維
輸入為歸一後的orig data,輸出為augmented data和aug params
輸入為歸一後的orig data和aug params,輸出為augmented data
GenerateAugmentationParameters——生成適合於當前圖片的變換引數
輸入aug params,orig data, augmented data
輸出適合orig data的aug params,這些操作與之前那張圖片的操作相符
FlowAugmentation——對ground truth進行與圖片相同的變換
輸入FlowField, Img1TransfParams, Img2TransfParams
輸出groundtruth_aug
DummyData——虛擬資料,可以用這一層模擬預測過程,常用來debug,也可以用來測試網路傳遞時間
Slice——按維度對輸入進行切片,ground truth切片channel為1

5.2. 縮小部分

Convolution——對原有conv進行了修改,支援多bottom多top(此處也可以不修改conv,對對應layer進行引數共享達到同樣的效果)
ReLU

5.3. 放大部分

Downsample——雙線性插值放大圖片
L1Loss——計算與euclidean_loss_layer等價,多執行緒
Deconvolution
Silence——SilenceLayer的作用就是避免在log中列印並沒有使用的blobs的資訊。作為一個output的管理層,梯度是0
Resample——恢復預測結果解析度為原圖大小,用於deploy.prototxt中,使用線性插值

閱讀參考:

  1. A Large Dataset to Train Convolutional Networks for Disparity, Optical Flow, and Scene Flow Estimation
  2. FlowNet: Learning Optical Flow with Convolutional Networks

相關推薦

論文閱讀筆記Dispnet

寫在前面 總算有時間寫點東西,整理了一篇近期看的論文《A Large Dataset to Train Convolutional Networks for Disparity, Optical Flow, and Scene Flow Estimation》

論文閱讀筆記——《DN-ResNet: Efficient Deep Residual Network for Image Denoising》

本文提出的DN-ResNet,就是a deep convolutional neural network (CNN) consisting of several residual blocks (ResBlocks).感覺有點類似於SRResNet的思路。並且對於訓練這個作者所提出的網路,作者還

論文閱讀筆記——《Practical Signal-Dependent Noise Parameter Estimation From a Single Noisy Image》

噪聲水平估計對於非盲去噪方法是至關重要的,噪聲水平估計質量直接影響去噪的質量。一般認為影象的噪聲都是零均值噪聲,所謂的噪聲水平估計就是通過單張噪聲影象估計高斯噪聲的方差(或標準差) 噪聲的分類 高斯噪聲是指它的概率密度函式服從高斯分佈(即正態分佈)的一類噪聲。如果一個噪聲,它的幅度分佈服

論文閱讀筆記——《Benchmarking Denoising Algorithms with Real Photographs》

本博文為論文《Benchmarking Denoising Algorithms with Real Photographs》的閱讀筆記 通過Gaussian noise來合成圖片 benchmarking denoising techniques(基準測試去噪技術) 影象去噪傳統的

論文閱讀筆記3】序列模型入門LSTM和GRU

本文只是吳恩達視訊課程關於序列模型一節的筆記。 參考資料: 吳恩達深度學習工程師微專業之序列模型 博文——理解LSTM 吳恩達本來就是根據這篇博文的內容來講的,所以 個人認為 認真學習過吳恩達講的那個課程後可以不用再看那篇博文了,能獲得的新的知識不多,另外網上的博文基本也都是根據那篇

深度學習論文閱讀筆記(三)深度信念網路DBN

想要獲得更多深度學習在NLP方面應用的經典論文、實踐經驗和最新訊息,歡迎關注微信公眾號“DeepLearning_NLP” 或者掃描下方二維碼新增關注。 深度神經網路    12.《受限波爾茲曼機簡介》 (1)主要內容:主要介紹受限玻爾茲曼機(RBM)的基本模型、學習

論文閱讀筆記】目標檢測RetinaNet--論文閱讀 Focal Loss for Dense Object Detection

【寫在前面】 RetinaNet 是目前目標檢測最為優秀的方法之一,值得好好拜讀一下,在COCO資料集上達到了單個模型的state of art 的效果, 由Kaiming He團隊所作,作者發現導致one-stage演算法效能劣於two-stage演算法的主要

深度學習-模型壓縮Quantization & Binarization方向論文閱讀筆記

深度學習-模型壓縮之Quantization & Binarization方向論文閱讀筆記 論文:Binarized Neural Networks: Training Neural Networks with Weights and Activa

jdk源碼閱讀筆記java集合框架(四)(LinkedList)

ray private array public 源碼閱讀 jdk源碼閱讀 oid color 解釋 關於LinkedList的分析,會從且僅從其添加(add)方法入手。 因為上一篇已經分析過ArrayList,相似的地方就不再敘述,關註點在LinkedList的特點。 屬

夢斷代碼閱讀筆記

模塊 代碼 clas 堅持 大牛 方式 理解 spa 閱讀 第七章 OSAF的第一個“演示日”,看起來並不順暢的演示,但是卻是實現了以往沒有過的模塊,是工作人員們幾個月的心血。而這整個改變正是許多細節都發生改變的結果。用戶的錯誤理解卻真實反映出關註細節、無視上下文的閱讀方式

夢斷代碼閱讀筆記

原因 設計 開始 微軟雅黑 戰爭 分鐘 導航 不足 family 今天我看到了本書的第九章,本章主要講了關於軟件開發的方法論。同時作者為我們介紹了軟件缺陷編年史上數量不多但是足以警示世人的驚人災難。 1962年6月,水手一號探測飛船在發射5分鐘後偏離軌道,

夢斷代碼閱讀筆記

不同 beat 缺陷 源代碼 應該 鼓勵 開發 團隊 clas 在本書第一章裏,作者為我們介紹了一些關於開源的歷史和開源的開發方式。同時作者為我們對比了傳統開發模式與開源開發的優劣之處。這兩者的對比能讓我們對於軟件開發模式有一個更深刻的認識。 開源不僅給出

夢斷代碼閱讀筆記

創意 解決 選擇 程序員 痛苦 創新 即使 似的 找到 第三章--原型與Python 我們在編程的前期選擇語言的時候是最難過的,這真的是一個痛苦的選擇,文中提及很多種語言:C、匯編、Fortran等等。最後,選擇了Python語言。在我們的編程過程中也會出現類似的問題,一開

關鍵字抽取論文閱讀筆記

三種 度量 gin 提高 簡單 類模型 分類問題 同時 權重 劉知遠老師博士論文-基於文檔主題結構的關鍵詞抽取方法研究 一、研究背景和論文工作介紹   關鍵詞抽取分為兩步:選取候選關鍵詞和從候選集合中推薦關鍵詞。 1.1. 選取候選關鍵詞 關鍵詞:單個詞或者多個單詞組成的短

nsq源碼閱讀筆記nsqd(一)——nsqd的配置解析和初始化

con views pos 直接 rgba 函數調用 程序 spa 重命名 配置解析nsqd的主函數位於apps/nsqd.go中的main函數首先main函數調用nsqFlagset和Parse進行命令行參數集初始化, 然後判斷version參數是否存在,若存在,則打印版

nsq源碼閱讀筆記nsqd(三)——diskQueue

hit emp files tro interact 一次 導致 store text diskQueue是backendQueue接口的一個實現。backendQueue的作用是在實現在內存go channel緩沖區滿的情況下對消息的處理的對象。 除了diskQueue外

06軟件需求模式閱讀筆記

操作系統 需求 pos 廣泛 正在 亮點 能力 spa 不同 軟件需求模式閱讀筆記之六 這一章主要是說明用戶功能需求模式。用戶功能豐富多彩,它包括查詢模式和報表模式。查詢是一個系統的亮點,一個查詢需求應該指定查詢名稱,查詢的業務意圖,顯示的信息,排序順序,挑選標準,瀏覽,交

06需求工程軟件建模與分析閱讀筆記

情況 標記 細節 客戶 管理 優先級 交叉引用 術語 重復 此次閱讀了解到了優秀需求規格說明書文檔的特性。 1、完備性:需求規格說明文檔是完備的,當且僅當:(1)描述了用戶所有有意義的需求,包括功能、性能、約束、質量屬性和對外接口。(2)定義了軟件對所有的情況的所有實際輸入

《軟件需求》閱讀筆記

說明書 clas 產品 文本 範圍 pan 相對 分享 src 這次閱讀的是這本書的第二部分,這部分內容相對較多,所以還沒有看完。這部分介紹了一些文檔的主要內容。首先是項目視圖和範圍文檔的模板,書中一一介紹了這個文檔中應該包括的內容。主要就是業務需求,項目視圖的解決方案,範

《The challenge of realistic music generation: modelling raw audio at scale》論文閱讀筆記

mes esc color del strac argmax bst repr 幫助 The challenge of realistic music generation: modelling raw audio at scale 作者:Deep mind三位大神