CVPR 2020 三篇有趣的論文解讀

做者 | 文永亮git

學校 | 哈爾濱工業大學(深圳)github

研究方向 | 視頻預測、時空序列預測算法

目錄

  • AdderNet — 其實不須要這麼多乘法
  • Deep Snake for Real-Time Instance Segmentation — 用輪廓作實例分割
  • Blurry Video Frame Interpolation — 完美的金字塔

AdderNet (在深度學習中咱們真的須要乘法?)

1582885309650

這篇論文是北大、諾亞、鵬城、悉大的論文,觀點比較有趣,在喜提CVPR2020以前也比較火了,下面我能夠介紹一下。網絡

論文指出咱們能夠定義以下公式,首先咱們定義核大小爲d,輸入通道爲\(c_{in}\),輸出通道爲\(c_{out}\)的濾波器\(F \in \mathbb{R}^{d \times d \times c_{i n} \times c_{o u t}}\),長寬爲H, W 的輸入特徵爲\(X \in \mathbb{R}^{H \times W \times c_{i n}}\)
\[ Y(m, n, t)=\sum_{i=0}^{d} \sum_{j=0}^{d} \sum_{k=0}^{c_{i n}} S(X(m+i, n+j, k), F(i, j, k, t)) \]ide

其中 \(S(\cdot, \cdot)\) 爲類似度計算方法,若是設 \(S(x, y)=x×y\) ,這就是卷積的一種定義方法了。 那麼論文就引出加法網絡的基本算子如何定義的:函數

\[ Y(m, n, t)=-\sum_{i=0}^{d} \sum_{j=0}^{d} \sum_{k=0}^{c_{i n}}|X(m+i, n+j, k)-F(i, j, k, t)| \]學習

如上定義只用了加法的\(\ell{1}\)距離,能夠有效地計算濾波器和特徵之間的類似度。url

在CIFAR-10和CIFAR-100以及ImageNet的實驗結果:spa

1582887041821

1582887234629

能夠看到在把卷積替換成加法以後好像也沒有太多精度的丟失,正如標題說的,咱們真的須要這麼多乘法嗎?設計

Deep Snake用於實例分割

image-20200305170006338

這篇工做是來自浙江大學Deepwise AI Lab的,我起初看到感受十分有趣,這篇論文的實例分割並非每一個像素的去分,而是用輪廓圍住了實例。代碼已經開源,有興趣的同窗能夠去看看。

repo url:https://github.com/zju3dv/snake

image-20200305170101929

基本思想是給實例一個初始輪廓,用循環卷積(Circular Convolution)方法學習更新輪廓,最後獲得offsets。

我在下面介紹一下Circular Convolution:

image-20200305171533355
\[ \left(f_{N}\right)_{i} \triangleq \sum_{j=-\infty}^{\infty} f_{i-j N}=f_{i(\bmod N)}\\ \left(f_{N} * k\right)_{i}=\sum_{j=-r}^{r}\left(f_{N}\right)_{i+j} k_{j} \]

咱們定義特徵爲藍色部分的圓圈,那麼它能夠表達爲\(f_{i(\bmod N)}\) ,*是標準的卷積操做,整個循環卷積就是每個藍色的特徵與黃色的kernel相乘獲得對應高亮的綠色輸出,一圈下來就獲得完整的輸出,kernel也是共享的。

image-20200305171835252

咱們能夠經過圖(b)看到整個算法的pipeline,首先輸入圖片,實驗中使用了CenterNet做爲目標檢測器, Center Net將檢測任務從新定義爲關鍵點檢測問題,這樣獲得一個初始的box,而後取每邊的中點鏈接做爲初始的Diamond contour(實際實驗中做者說他upsample成了40個點),而後經過變形操做使點回歸到實例的邊界點,而後經過邊界點一半向外拓展1/4的邊長獲得一個Octagon contour(八邊形輪廓),再作變形操做最終迴歸到目標的形狀邊界。

做者在三個數據集上作了實驗,分別是Cityscapes, Kins, Sbd。能夠看到在Kins上的數據集的AP值比Mask RCNN好一些。

image-20200305175636937

其分割的效果也不錯且有點有趣:

image-20200305172104856

能夠看到確實挺快的, Sbd數據集的512 × 512 的圖片,在Intel i7 3.7GHz,GTX 1080 Ti GPU達到32.3 fps。

image-20200305175354120

BIN 模糊視頻插幀

image-20200304184153117

這篇paper是上海交通大學的翟廣濤教授組的模糊視頻插幀技術,主要是爲了提升視頻質量而且達到插幀的效果,我以爲這篇論文十分優秀,只惋惜代碼還在重構中,repo說6.14公佈,這也有點久啊。

repo url : https://github.com/laomao0/BIN

這篇論文設計的很精巧,模型構建中分爲兩塊:

  • 1.金字塔模塊

  • 2.金字塔間的遞歸模塊

以下圖所示:

image-20200304144316823

其實這網絡結構很容易理解,\(B_0,B_2,B_4,B_6,B_8\)都是輸入,當咱們取Scale 2的時候,輸入取\(B_0,B_2,B_4\), 咱們可經過\(B_0,B_2\)獲得中間插幀\(\hat{{I}}_1\),同理可得\(\hat{I}_3\),最後經過\(\hat{{I}}_1\)\(\hat{I}_3\)插幀獲得\(\hat{{I}}_2\)

數學表達以下:
\[ \hat{\mathbf{I}}_{1: 1: 2 N-1}=\mathcal{F}\left(\mathbf{B}_{0: 2: 2 N}\right) \]

\[ \hat{\mathbf{I}}_{1}=\mathcal{F}_{\mathrm{b}}\left(\mathbf{B}_{0}, \mathbf{B}_{2}\right) \]

可是Scale 3和4的時候就不同了,我舉例Scale 3的時候,Scale 4同理
\[ \hat{\mathbf{I}}_{1}=\mathcal{F}_{\mathrm{b_1}}\left(\mathbf{B}_{0}, \mathbf{B}_{2}\right)\\ {\mathbf{I'}}_{3}=\mathcal{F}_{\mathrm{b_1}}\left(\mathbf{B}_{2}, \mathbf{B}_{4}\right)\\ \hat{\mathbf{I}}_{2}=\mathcal{F}_{\mathrm{b_2}}\left(\mathbf{\hat{I}}_{1}, \mathbf{I'}_{3}\right)\\ \hat{\mathbf{I}}_{3}=\mathcal{F}_{\mathrm{b_2}}\left(\mathbf{\hat{I}}_{2}, \mathbf{\hat{I}}_{4},\mathbf{B}_{3},\mathbf{B}_{4}\right)\\ {\mathbf{I'}}_{5}=\mathcal{F}_{\mathrm{b_1}}\left(\mathbf{B}_{4}, \mathbf{B}_{6}\right) \]
這樣經過\(B_0,B_2,B_4,B_6\)就會獲得中間1,3,5的插幀,或許有人疑惑爲何會有\(\mathbf{I'}_{3}\)\(\hat{\mathbf{I}}_{3}\) ,這兩個有什麼區別,這裏主要就是由於做者作了一個Cycle Consistency的loss,主要是保證中間產生的幀與金字塔最後產生的幀保持空間上的一致性。

image-20200304183338088

金字塔模塊的構建有(a)Backbone (b)Residual Dense Block 兩種

其中金字塔模塊具備可調節的空間感覺域和時間範圍,能夠從圖中看到,做者採用了三種scale,隨着scale的增長,網絡將會拓展的更深,所以具備更大的空間感覺域,同時在時間範圍內輸入的數量會須要更多,因此說時間範圍也正是如此,從而控制計算複雜度和復原能力。金字塔模塊使用普通的卷積神經網絡搭建而成,其中同一級的共享權重,這其實節省了不少參數空間,可是這樣是否就缺少了時間上的信息呢?

若是採用Scale 2的時候,咱們能夠分析金字塔之間如何傳遞信息的,如圖中(b)部分:

image-20200304181040357

ConvLSTM構成的Inter-Pyramid Recurrent Module實際上就是爲了傳遞時空上的信息,這裏Time Step爲2,\(B_2^{t}\)\(B_2^{t+1}\) 其實是同一張輸入,可是進入了兩個不一樣的模塊,總體step前進了一步,其中的ConvLSTM就是爲了傳遞C和H的,其公式以下:
\[ \mathbf{H}^{t}, \mathbf{C}^{t}=\mathcal{F}_{\mathrm{c}}\left(\hat{\mathbf{I}}_{3}^{t}, \mathbf{H}^{t-1}, \mathbf{C}^{t-1}\right) \]
損失函數很是的簡單,這裏不作過多的說明,分爲了重構偏差\(L_p\) (Pixel Reconstruction) 和 一致性偏差\(L_c\) (Cycle Consistency) :
\[ \rho(x)=\sqrt{x^{2}+\epsilon^{2}}\\ \mathcal{L}_{p}=\frac{1}{T} \sum_{t=1}^{T} \sum_{n=1}^{2 M-1} \rho\left(\hat{\mathbf{I}}_{n}^{t}-\mathbf{G}_{n}^{t}\right)\\ \mathcal{L}_{c}=\frac{1}{T} \sum_{t=1}^{T} \sum_{n \in \Omega} \rho\left(\mathbf{I}_{n}^{t}-\hat{\mathbf{I}}_{n}^{t}\right)\\ \mathcal{L}=\mathcal{L}_{p}+\mathcal{L}_{c}\\ \]
數據集用的是:Adobe240YouTube240,能夠看到論文的效果取了Scale=4的時候跟GT已經看不出太大的區別了。

image-20200304144247336

並且Scale越大圖片質量就越好

image-20200304145554144

相關文章
相關標籤/搜索