SelFlow: Self-Supervised Learning of Optical Flow
Pengpeng Liu, Michael Lyu, Irwin King
The Chinese University of Hong Kong, § Tencent AI Lab
一篇來自2019年CVPR的自監督光流估計---SelFlow
作者提出一種從無標注數據中學習光流的自監督訓練框架。
1)利用Noc-Model 從未遮蓋區域,學習可靠的光流信息;
2)利用Noc-Model學習到的可靠的光流信息,去指導OCC-Model 學習被遮擋像素的光流(這些被遮蓋的像素,俗稱Occlusion是利用隨機遮蓋超像素的方法產生的);
3)設計一個可以利用多幀圖像時序連續性的網絡結構更好地學習光流。
首先介紹幾個標注信息:
?文章利用連續的 I t-1、l t、l t+1 三幀圖像作為網絡的輸入;
wi->j 表示i、j 之間的光流信息;
backward warp 則表示把t+1 warping 成 t 利用 Spatial Transformer Network(其實就是反向warp)[46]
Oi->j 表示 i、j之間的遮蓋信息,標為1的表示在 i 中出現但沒有在 j 中出現的;
看正文的Fig 1 :
First row: (a) t時刻圖像,(b)t+1時刻圖像,(c) t、t+1 時刻的真實光流信息,(d)把t+1 warped 成 t 。
Second row: 為主題網絡結構:1)Noc-Model 這一行表示,從3個連續幀中學習p 的光流信息,類似學習全局的光流信息,得到Flow;
2)OCC-Model 這一行表示,作者首先 生成 Superpixel , 隨機選取幾個超像素區域,并進行遮蓋,利用Noc-Model 學習到的一種全局的光流信息,以及后續的Mask(i) 操作共同指導 OCC-Moedel 生成光流,且對遮蓋區域進行一個預測。
這種方式類似于DDFlow 里的teacher-studenr structure? 與SelFlow 為同一作者:
1)對Teacher Model , 學習I1、I2 間的光流信息,圖中的點p(x1,y1);
2)對Student Model ,? 對I1、I2 進行裁剪,那么對I1 中的p點,并不會在裁剪后的I2中出現,那么就發生的遮蓋,?利用Teacher Model 指導Student Model 學習并預測全像素的光流信息(當然,也包括被遮蓋區域)。
接下來,到文章主線
CNNs for Multi-Frame flow estimate:
?上圖是NOC-Model 、OCC-Model 的具體作用,不再細說。
就到了NOC-Model 、OCC-Model網絡結構:
?是由PWC-Net 改造的:
首先 ,l+1 level 的光流信息W ,經過上采樣分辨率和大小校正,保持和l level 一致;
要知道,整個網絡就是對 t-1 t t+1 的迭代循壞。所以F的信息只是尺度不同。
利用 w t->t-1? 和 F t-1 進行warp ,讓F t-1 變成 warped 的 F t-1 , 然后再利用 F t 進行 cost volume 計算。同理得到 F t+1 的 cost volume 。
把上面的得到的一起放入Estimator Network 就可以得到 l level 光流信息。至于為什么有 -w 是為了計算 occlusion estimation.
由于這個網絡是改的PWC-Net .所以把一部分pwc-net 也放上來:
下圖是PWC-Net 的網絡結構
?將frame 2 warping 到 frame1 上去,為后續和frame1 計算cost volume.
代價體積的計算。
接下來,作者利用更好的獲得遮擋信息,利用五幀來估計三幀的遮擋信息,如下圖:
?通過t-2、t-1、t、t+1、t+2五個時刻,或者t-1、t、t+1 三個時刻的遮擋信息,且能保證一定時序性。
下面為作者結果,僅供參考,畢竟19年的文章。
Loss Function:
由于看這片文章是2個月之前,有點忘記Loss了,大概就是L1
作者說where ψ(x) is a robust loss function,當時去DDFlow文章中找了也是如此解釋,估計是絕對值的作用吧。
?
總結
以上是生活随笔為你收集整理的SelFlow: Self-Supervised Learning of Optical Flow的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux之网络命令学习
- 下一篇: 计算机网络大题分析(一)