Non-Local ConvLSTM for Video Compression Artifact Reduction
【這是MFQE 2.0的第一篇引用,也是博主學術生涯的第一篇引用。最重要的是,這篇文章確實抓住了MFQE方法的不足之處,而不是像其他文章,隨意改改網絡罷了。】
在MFQE的基礎上,作者提出了一個問題:“好”幀里的塊的質量就好嗎?“差”幀里的塊的質量就差嗎?顯然不一定,因為幀的好/壞是由整張圖像的綜合質量決定的(如PSNR)。
為了解決這個問題,作者提出用non-local結合ConvLSTM的思路。眾所周知,NL是很耗時的,因此作者提出了一種近似計算幀間相似性的方法,從而加速NL過程。由於使用了ConvLSTM,因此本方法不再需要精確的MC。
1. 方法
1.1 框圖
圖畫得很清楚。這是一個典型的Conv-LSTM,會連續輸入多幀的卷積特征。在輸出端,當前幀對應的雙向隱藏層特征被拼接,進一步處理,最后作為殘差與輸入相加,即得到輸出。
關鍵在於Conv-LSTM細胞的改進。由於去掉了MC組分,因此如果存在較大的運動位移,LSTM對運動的建模很可能失敗。為此,作者引入了NL機制來建模運動位移。但是注意,這里的NL用來捕捉特征圖間像素的相似性,而不是特征圖內像素的相似性。因此,上一特征圖\(F_t\)也要輸入NL模塊,但不輸入Conv-LSTM細胞!
1.2 NL流程
我們具體講一下改進后Conv-LSTM的工作流程。以下都以單向舉例。
首先,ConvLSTM的經典輸入輸出格式是:輸入當前特征圖\(F_t\)、上一時刻隱藏層狀態\(H_{t-1}\)和上一時刻細胞狀態\(C_{t-1}\),輸出當前時刻的隱藏層狀態\(H_{t}\)和細胞狀態\(C_{t}\):
為了讓LSTM更好地建模運動位移,尤其是大尺度運動,作者在Conv-LSTM前引入NL技術,但是是特征圖間的NL:
\(S_t\)代表像素相似性,計算公式為:
其中,\(S_t(i,j)\)說的是 \(t-1\)特征圖的第\(i\)個元素 與 當前\(t\)特征圖的第\(j\)個元素 的相似度。顯然要求關於\(i\)求和為1,因此用分母歸一化。
NL的第二步,就是基於計算出的相似度,執行扭曲:
具體操作很簡單:
【論文中的公式(4)有誤,時刻寫錯了?】
1.3 加速版NL
如果嚴格按照以上步驟算,運動復雜度會很高。為此,作者引入了兩步NL方法來近似 歐幾里得距離\(D_t\) 和 特征圖間像素相似度\(S_t\)。
-
首先,對輸入的特征圖\(F_{t-1}\)和\(F_t\),我們作\(p \times p\)的平均池化,得到\(F^p_{t-1}\)和\(F_t^p\)。實驗取\(p = 10\)。
-
然后我們再算它們的歐幾里得距離矩陣\(D_t^p\)。此時,我們就能得到最相關的k個點。實驗取\(k = 4\)。
-
這k個點對應原\(F_{t-1}\)的\(k \times p^2\)個點。后續操作就和上面一致了。
換句話說,這里有兩點加速:(1)並不考慮所有點的相互關系,而只考慮前k個(其他的S為0);(2)先池化,在低維度上計算相似度。一個點代表一個塊。
2. 實驗
-
表2的前兩列說明:輸入多幀比輸入單幀效果更好。作者還嘗試了輸入前后共20幀,結果比表2第4列還好。
-
作者嘗試將NL換成了MC,結果不如NL,在dpsnr上差了20%。
-
NL找到的相似塊也比較准。參見論文圖4,紅框是黃框的檢測相似框。
-
Conv-LSTM耗時很猛,比對比算法高出好幾倍,是MFQE 1.0的6-7倍。原因是要處理相鄰多幀。但作者的加速已經很有效了,比原始NL加速了4倍。
3. 總結
本文對Fig1中闡釋的問題進行了一定程度的處理。原因是:1、光流很難顧及全局關系,但相關度矩陣很擅長處理遠距離關系。這就類似於GNN相比於傳統CNN的優勢。2、輸入更多的相鄰幀。
因此,本文的核心貢獻是:在用Conv-LSTM建模時序和空域關系的同時,加入NL輔助完成了類似MC的功能。