CVPR21
將圖像超分辨率問題轉化為尋找圖像的連續表示。本質上圖像會存在分辨率的問題,是由於其存儲和表示使用的是二維數組。如果將圖像的表示是一個連續函數,那么圖像就可以是任意分辨率的。這個思路受啟發於三維重建中的implicit neural representation
implicit neural representation
所謂implicit neural representation是將物體表示為一個函數,該函數可以將坐標映射到圖像信號。這個函數由神經網絡學習得到。為了讓不同的物體之間可以共享知識,一般用encoder-based方法,將物體的latent code作為輸入之一。
目前使用encoder-based方法的implicit function無法表示高保真圖像,這可能是由於只用一個簡單的latent code完全encode圖像的所有細節比較困難。
因此本文提出用一組encode來表示一個圖像,即Local Implicit Image Function(LIIF)
具體來說就是,對於給定的坐標,根據坐標信息查詢該坐標附近的局部latent codes作為函數輸入,預測其RGB值
Local Implicit Image Function
每個圖像$I^{(i)}$可以由一個二維特征圖$M^{(i)}\in R^{H\times W\times D}$表示。 那么坐標$x_q$處的RGB值可以定義為:$I^{(i)}(x_q)=f(z^*,x_q-v^*)$,其中$z^*$是$M^{(i)}$中距離$x_q$最近的latent code,$v^*$是$z^*$對應的坐標。為了進一步豐富$M^{(i)}$中encode的信息,對其進行feature unfolding。即$\widehat{M}_{jk}^{(i)}=Concat({M_{j+l,k+m}^{(i)}}_{l,m\in{-1,0,1}})$
但上述表示存在一個最大的問題是預測是非連續的,當$x_q$變換時$z^*$會突然跳變。這導致坐標上無限接近的點可能輸出的latent code非常不同。針對這個問題作者采用的解決方法是**local ensemble**
上式變為:$I^{(i)}(x_q)=\sum_{t\in{00,01,10,11}}\frac{S_t}{S}\cdot f(z_t^*, x_q-v_t^*)$,其中$S_t$是$x_q$和$v_t^*$之間長方形的面積。也就是說實際上的RGB值是附近四個鄰域的加權均值
那么現在我們就可以在任意分辨率下使用LIIF對圖像進行表示。對於給定的分辨率,最直接的方式就是根據像素點中心坐標求得對應的RGB值。但這樣的方式是獨立於size的,也就是說像素點包圍的位置中的其他信息都丟失了。
因此作者采用了一種cell decoding的策略。s=f_{cell}(z, [x, c]),其中$c=[c_h, c_w]$, $[x,c]$表示concat
Learning Continuous Image Representation
因此整個訓練任務的目標是通過給定一組訓練集圖像,學習到一個可適用於unseen image的連續表示。為此我們需要學習一個encoder$E_\phi$用於將基於像素的圖像映射為二維特征圖,還需要學習一個neural implicit function$f_\theta$。這里,考慮到希望學到的LIIF不僅可以重建其輸入,還可以在高分辨率時保持高保真,因此采用的是自監督的方式學習。
對於給定的一張訓練圖片,以隨機的scale下采樣作為input。對應的ground-truth表示為$x_{hr},s_{hr}$,$x_{hr}$是中心坐標,$s_{hr}$是對應的RGB值。$E_\phi$將input映射為二維特征圖作為LIIF表示,使用$x_{hr}$進行query,$f_\theta$會預測對應RGB值$S_{pred}$,與$S_{hr}$計算loss。在本文的實驗中$E_\phi$是EDSR或RDN去掉upsampler部分,選用的loss是L1 loss
實驗
為了驗證本文的方法可以對連續表示有效,除了驗證訓練的scale以外,還需要驗證非常大的、不在訓練分布中的上采樣scale。因此訓練時在1倍到4倍之間均勻采樣,而在測試時對6倍到30倍都進行了驗證。由於針對如此大倍數的SR方法很少,這里實際上的SOTA就只有MetaSR。
從視覺效果上來看也還是很不錯的,其中1-SIREN是指直接針對一張測試圖片擬合一個SIREN neural implicit function
發現cell decoding似乎會影響out-of-distribution high resolution時的PSNR值。因此進行了如下的實驗:
可以看到針對30倍的任務,cell-1/30明顯好於其他設定。如果decoding cell大於實際的像素大小,這就類似於用一個比較大的平均核對圖像進行處理。結論是,使用cell decoding有助於in-distribution scales,當scale過大時可能會影響PSNR但是仍然可以提升視覺質量。
實驗在訓練時使用固定的scale,雖然可以提升該scale的結果,但是對於其他scale效果不好。
還針對size-varied ground-truth問題進行了實驗。