發表在2017年ICCV。網絡
核心內容:提出了亞像素運動補償(Sub-pixel Motion Compensation, SPMC)層,服務:基於CNN的視頻超分辨方法。架構
特色:ide
SPMC能夠同時完成超分辨和運動補償。這一點是精髓,做者claims that能夠更好地保持亞像素信息。爲何這麼說,最後我再解釋。學習
SPMC是無參數的,所以結合到視頻超分辨網絡中,使得該網絡可用於任意尺寸的輸入,而無需從新訓練。編碼
使用了Conv-LSTM,輸入幀數任意。這樣,咱們能夠在效率和質量上權衡。spa
這篇論文實際上寫得很繞。我無心間發現了做者對這篇論文的報告視頻(B站:https://www.bilibili.com/video/av36952293/),講得簡單明瞭。這裏作一個截圖和筆記。
3d
首先,視頻超分辨率有如下幾個挑戰:視頻
如何配準多幀信息。若是沒有配準,那麼多幀反而是有害的。blog
模型不夠健壯。一個放縮係數每每對應一個模型,而且輸入幀數也是固定的。
生成的細節有時是假的。這是由於外部數據庫的影響。
鑑於此,本文的目標是:
任意大小輸入,任意放縮係數。
更好地利用亞像素信息。
生成更真實的細節。
本文提出的網絡架構(從論文截取的大圖):
第\(i\)時刻的LR幀\(I_i^L\) 和 當前\(0\)時刻的LR幀\(I_0^L\) 一塊兒輸入運動預測網絡,獲得光流預測圖\(F_{i \to 0}\)。
\(F_{i \to 0}\) 和 \(I_i^L\) 一塊兒輸入SPMC層,獲得 升採樣而且運動補償的 \(J^L\)。
因爲\(J^L\)比較稀疏,所以輸入一個有豐富降採樣的編碼器-解碼器網絡,獲得殘差;而後與 \(I_0^L\) 點點求和,即獲得最終輸出。注意,與傳統編解碼網絡不一樣,中間的單元被換成了Conv-LSTM,從而能夠對視頻序列建模。
首先,做者嘗試將三個相同幀輸入網絡,發現輸出圖像雖然更銳利了,可是沒有產生額外的信息。
接着,做者換成了三張連續幀,效果就行了。這說明:SPMC的使用,使得細節僞造更少了,而且細節的生成更真實。
做者還嘗試了傳統方案:先運動補償,而後升採樣,結果中產生了不少虛假的細節:
換成SPMC就行了:
做者說:基於以上實驗,他們認爲,在亞像素級別,只有合適地運動補償,才能恢復真實的細節。這一句,就是點睛之筆。
個人理解:前人通常都是先 運動補償 而後 超分辨,在這個過程當中,亞像素信息須要二次加強,很難保真,而更傾向於從 根據外部數據庫學習的先驗 中獲取。
看完了視頻,咱們再來看一下SPMC。其實很簡單:
第一步是座標變換,其中\(\alpha\)就是放縮係數:
第二步是雙線性插值,將升採樣的圖完善。