這一兩年來,基于神經網絡的圖像壓縮進展十分迅速。2016年,基于神經網絡的模型首次取得了和JPEG相當的表現。而到了2017年,神經網絡在圖像壓縮方面的表現已經超過了現代工業標準(WebP、BPG)。本屆CVPR 2018上,就有三篇基于神經網絡進行圖像壓縮的論文,分別來自Google、蘇黎世聯邦理工學院、港理工和哈工大。下面我們將介紹這三篇論文的主要內容。
Google對基于循環網絡的模型的改進
2016年,Google的研究人員使用循環神經網絡(一個混合GRU和ResNet的變體)在圖像壓縮上取得了和JPEG相當的表現。(arXiv:1608.05148)。
而本次在CVPR 2018上提交的論文(arXiv:1703.10114),Google對之前的模型進行了三大改進,將其表現提升至超越WebP的水平。
Kodak數據集上相同MS-SSIM下的壓縮率比較,藍色為Google新提出的模型
對比JPEG2000、WebP、BPG 420
網絡架構
整個網絡的架構和Google之前的模型類似,如下圖所示:
上圖中,Ei為編碼器,Dj為解碼器,中間的國際象棋棋盤圖案表示binarizer(二值化輸入為1、-1)。每個網絡層對應的分辨率標識于下方,深度標識于上方。其中的數字(I/H)分別表示輸入(I)和隱藏狀態(H)的卷積核大小。如3/1表示3x3輸入卷積,1x1隱藏卷積,1/0表示1x1(前饋)卷積。另外,前饋卷積單元(H = 0)使用tanh激活,其他層為卷積GRU層。
以上示意的是單次迭代過程。在每次迭代中,上圖中的循環自動編碼器編碼之前的重建圖像和原始圖像之間的殘差。在每一步,網絡從當前的殘差中提取新信息,接著合并到循環層的隱藏狀態中存儲的上下文。每次迭代后,在量化瓶頸模塊保存相應的比特,從而生成輸入圖像的漸進式編碼。
了解了模型的基本架構后,下面我們來看看Google的研究人員所做的三大改進。
隱藏狀態引火
初次迭代時,每個GRU層的隱藏狀態初始化為零。在試驗中,Google的研究人員發現,起初的幾個迭代過程中,圖像質量的提升十分明顯。因此,研究人員假設,缺乏一個良好的隱藏狀態初始化導致模型在早期碼率上表現不佳。由于編碼器和解碼器都堆疊了許多GRU網絡層序列,編碼器的binarizer和解碼器的重建都需要好幾次迭代才能觀察到首層GRU的隱藏狀態改進。因此,研究人員使用了隱藏狀態引火(hidden-state priming)技術為每個GRU層生成了更好的初始隱藏狀態。
所謂隱藏狀態退火,或者叫“k-退火”(k-priming),單獨增加了編碼器和解碼器網絡的首次迭代的循環深度(額外增加了k步)。為了避免占用額外的帶寬,這些步驟是單獨運行的,編碼器產生的額外位元并不會加入實際的碼流。對編碼器而言,這意味著多次處理原始圖像,拋棄生成的位元,不過保存編碼器循環單元隱藏狀態的變動。對解碼器而言,這意味多次生成解碼圖像,不過僅僅保留最終的圖像重建(當然,同時保留解碼器隱藏狀態的變動)。
下圖為網絡在0.125 bpp時重建的圖像對比,可以看到,引火后的重建效果明顯好于未引火時。
左:原圖;中:未引火;右:引火
此外,我們還可以在中間的迭代過程中進行引火,研究人員稱其為發散(diffusion)。
同樣,我們也能從視覺上直接看出發散給圖像重建帶來的質量提升。
從左往右,依次為0-3次發散
空間自適應碼率
如前所述,在不同的迭代中,模型生成不同碼率的圖像表示。然而,每張圖像應用的碼率是常量,而沒有考慮圖像的內容。實際上,圖像的不同局部的復雜程度是不一樣的,比如,圖像上方可能是晴朗的天空,而圖像下方則可能是繁復的花海。
因此,Google的研究人員引入了空間自適應碼率(Spatially Adaptive Bit Rates,SABR),根據目標重建質量動態地調整局部的碼率。
消融測試印證了SABR的效果:
左為Kodak數據集,右為Tecnick數據集
SSIM加權損失
訓練有損壓縮圖像網絡可以說是左右為難。最直接的方式是直接比較和參考圖像(即原圖)像素間的差異,比如,使用經典的L1或L2損失。然而,直接比較像素差異沒有考慮到主觀感知因素,畢竟人眼對不同類型的像素差異(失真)的敏感程度不同。而基于感知的指標卻不可微或者條件梯度不良。
為了兼顧兩方面的需求,Google的研究人員提出了一種加權L1參數:
其中,x為參考圖像(原圖),y為fθ(x)的解壓縮圖像(θ為壓縮模型的參數)。S(x, y)為衡量圖像不相似性的感知指標,ˉS為基線。具體來說,ˉS為S(x, y)的移動平均。移動平均不是常量,但是在短暫的訓練窗口中基本可以視作常量。在Google研究人員的試驗中,移動平均的衰減為0.99. 然后,將w(x, y)視為固定值,這樣就可以更新梯度了。
具體而言,Google研究人員使用的S(x, y)基于結構相似性指標(SSIM)。研究人員首先將圖像切分為8 x 8的小塊。然后在每個小塊上使用以下方法計算局部權重:
整個圖像的損失為所有局部加權損失之和。
內容加權圖像壓縮
之前我們提到過,Google研究人員的三大改進之一是空間自適應碼率(SABR),其背后的直覺是圖像的不同局部復雜程度不同,應該分配不同的碼率。無獨有偶,香港理工大學和哈爾濱工業大學的研究人員Li、Zuo等在CVPR 2018上提交的論文“內容加權圖像壓縮”,同樣是基于圖像局部的復雜性采用不同的碼率(arXiv:1703.10553)。
老鷹應該比天空占用更多的碼率
SABR根據圖像的重建質量調整碼率,使用的是啟發式的算法。而港理工和哈工大的研究人員則使用一個三層卷積網絡學習圖像的重要性映射(importance map),然后通過量化生成重要性掩碼(importance mask),并應用于之后的編碼過程。
另外,模型生成的重要性映射可以適應不同的bpp。如下圖所示,壓縮得很厲害時,重要性映射僅僅在明顯的邊緣分配更多的碼率。而隨著bpp的升高,重要性映射給紋理分配了更多碼率。這和人眼的感知是一致的。
基于上下文模型并行學習
循環網絡之外,基于自動編碼器(auto encoder)的圖像壓縮模型也是一個很有希望的方向。
2017年3月,Twitter的Theis等提出了基于自動編碼器的模型(arXiv:1703.00395),表現與JPEG 2000相當。
Theis等提出的壓縮自動編碼器架構
2017年4月,ETHZ(蘇黎世聯邦理工學院)的Agustsson等,提出了soft-to-hard熵最小化訓練方法(arXiv:1704.00648),改進了上述自動編碼器模型。2017年5月,WaveOne的Rippel和Bourdev提出的自動編碼器架構使用了金字塔分解(pyramidal decomposition)編碼器、自適應算術編碼(adaptive arithmetic coding)、自適應碼長正則化(adaptive codelength regularization),此外還使用了對抗訓練(arXiv:1705.05823)。該模型的表現超越了現代圖像壓縮的工業標準(WebP、BPG)。
在CVPR 2018上,ETHZ的Mentzer、Agustsson等提交的論文(1801.04260),則在自動編碼器的訓練過程中使用一個輕量上下文模型(三維CNN)來估計潛圖像表示的熵,基于熵損失并行學習,從而更好地控制重建誤差(失真)和熵(壓縮率)之間的折衷。
在Kodak數據集上,模型的表現超越了現代工業標準,與前述WaveOne提出的模型相當
量化
ETHZ研究人員的這項工作使用了之前提到的soft-to-hard熵最小化中的量化方法,不過對其進行了簡化。研究人員使用最近鄰分配計算:
為了在反向傳播階段計算梯度,研究人員使用以下可微逼近:
注意,以上可微逼近只在反向傳播時應用,以免還要選擇退火策略硬化逼近(軟量化)。
模型架構
讓我們看下整個模型架構的示意圖。
示意圖上部為編碼器,下部為解碼器。深灰色塊表示殘差單元。編碼器中,k5 n64-2表示核大小5、輸出頻道64、步長2的卷積層,其他卷積層同理。相應地,在解碼器中,它表示反卷積層。所有卷積層使用batch norm和SAME補齊。Normalize表示將輸入歸一化至[0, 1],歸一化基于訓練集的一個子集的均值和方差。Denormalize為其逆操作。Masked quantization(掩碼量化)采用了之前提到過的重要性映射,不過,ETHZ簡化了重要性映射的生成方法,沒有使用一個單獨的網絡,相反,直接在編碼器的最后一層增加了一個額外的單頻道輸出y作為重要性映射,之后將其轉換為掩碼:
其中,yi,j表示空間位置(i,j)處y的值。k值的選取需滿足掩碼轉換在0到1之間平滑過渡。
下圖可視化了自動編碼器的潛表示,可以看到重要性映射的效果:
M:加入重要性映射;M':未加入重要性映射
整個訓練過程如下:
從編碼器E得到壓縮(潛)表示z和重要性映射y:(z,y) = E(x)
使用剛剛提到的公式轉換重要性映射y至掩碼m
使用分素相乘掩碼z。
量化(Q)。
使用四層的三維CNN網絡計算上下文(P)。
解碼(D)。
訓練過程中為自動編碼器(E、D)和量化器(Q)計算如下損失函數(折衷碼率和失真):
相應的上下文模型P的損失函數為:
其中,C為潛圖像表示的編碼代價:
類似地,MC為掩碼編碼代價:
各個模型均可在GPU上并行訓練。
非現實圖像
ETHZ研究人員順便測試了模型在非現實圖像上的表現。
Manga109數據集樣本
如上圖所示,BPG壓縮的黑白漫畫,文字更銳利,而ETHZ研究人員新提出的模型則保留了更多臉部的細微紋理。
CLIC挑戰
另外,CVPR 2018還舉辦了一場學習圖像壓縮挑戰(CLIC),以鼓勵這一領域的進展。
有三個團隊在CLIC取得優勝,其中來自圖鴨科技的TucodecTNGcnn4p在MOS和MS-SSIM兩項指標上均獲第一。
TucodecTNGcnn4p基于端到端的深度學習算法,其中使用了層次特征融合的網絡結構,以及新的量化方式、碼字估計技術。
-
Google
+關注
關注
5文章
1757瀏覽量
57411 -
神經網絡
+關注
關注
42文章
4762瀏覽量
100535 -
圖像壓縮
+關注
關注
1文章
60瀏覽量
22371
原文標題:概覽CVPR 2018神經網絡圖像壓縮領域進展
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論