1. 程式人生 > >【論文筆記1】RNN在影象壓縮領域的運用——Variable Rate Image Compression with Recurrent Neural Networks

【論文筆記1】RNN在影象壓縮領域的運用——Variable Rate Image Compression with Recurrent Neural Networks

一、引言

隨著網際網路的發展,網路圖片的數量越來越多,而使用者對網頁載入的速度要求越來越高。為了滿足使用者對網頁載入快速性、舒適性的服務需求,如何將影象以更低的位元組數儲存(儲存空間的節省意味著更快的傳輸速度)並給使用者一個低解析度的thumbnails(縮圖)的preview變得越來越重要。如今有很多的標準影象壓縮演算法,如JPEG、JPEG2000、WebP已經有了很不錯的表現。如何利用其他方法提高影象壓縮比並又能最大程度地儲存原始圖片資訊是相關領域集中研究的問題。

最近在和協會的同學一起學習影象壓縮相關的知識,現在還在起步階段。看了一些相關的論文,瞭解到最近幾年深度學習在影象壓縮領域也有著非常不錯的發展,一些深度網路框架的表現已經outperform了很多標準的影象壓縮演算法。我從中挑選了幾篇最經典的認真學習了一下,本文便是RNN在影象壓縮領域運用的最經典的一篇,是Google的George Toderici以及他的團隊提出的。原論文傳送門:

《Variable Rate Image Compression with Recurrent Neural Networks》

文章提出了一種基於卷積和反捲積LSTM的RNN網路框架,並強調該網路框架有如下技術優點:

(1)網路只需要訓練一次,而不是每張圖片都需要訓練,並且圖片輸入大小和壓縮比變化也不需要重複訓練;

(2)網路具有連續性,也就是說越多位元組數的representation code意味著越高的圖片重建精確度;

(3)至少可以說和訓練後的自編碼器模型在相同的位元數下有著相同的效率。

在展開講文章提出的RNN網路框架前,需要先了解普適的標準影象壓縮演算法和標準自編碼器模型,以及它們存在的問題。

二、標準圖片壓縮演算法的缺點

如今,很多普適的標準影象壓縮演算法取得了很不錯的效果,例如Joint Picture Experts Group提出的JPEG和JPEG2000,以及剛提出不久的WebP演算法,但是它們都普遍地存在如下兩個問題:

(1)專注於大圖片的壓縮,低解析度的thumbnail圖片的壓縮效果不佳,甚至受損。因為它們圖片壓縮的原理都來自同一切入點:先設計不同的啟發方法減少需要保留的圖片資訊,再決定能夠利用保留的資訊儘可能低損地壓縮圖片的轉換方法。

(2)影象scale上的假設大多不成立。例如假設高解析度的圖片包含許多冗餘的資訊,而實際上圖片解析度越高,來自圖片的patch包含的低頻資訊越多。因此這些假設在生成高解析度影象的thumbnail圖的時候並不成立,因為來自thumbnail的patch更多的包含難壓縮的高頻資訊。

要知道,壓縮thumbnails的大小,不僅是降低儲存大小,而且要更好地利用網路頻寬是一個至關重要的問題,因為現在的網路中有數量十分巨大的縮圖,提高縮圖的壓縮技術便能顯著提高使用者在低頻寬網路連線時的上網體驗。而目前的標準影象壓縮演算法並不能勝任。

三、標準自編碼器模型的缺點

近些年來,基於神經網路的演算法在影象識別和目標檢測領域有了飛速的發展,很多學者自然而然地想到能否利用神經網路方法進行影象壓縮。Krizhevsky和Hinton於2011年提出了標準自編碼器模型,利用神經網路作為編碼器(encoder)去生成一個具有代表性的編碼,再利用解碼器(decoder)根據編碼結果重建原始圖片。

圖片patch經過encoder編碼生成一個representation,然後經過二值化函式生成一個二值化編碼,最後經過一個decoder利用二值化編碼重建原始的圖片patch。整個流程可以用如下方程表示:

其中x是原始圖片,x'是壓縮重建的圖片,E是編碼器函式,B是二值化函式,D是解碼器函式。

然而標準自編碼器存在很多限制條件使得它們無法推廣作為標準的圖片編碼解碼器。其中的一些限制條件使得變壓縮比的壓縮過程無法實現,每一個壓縮比需要對應一個單獨的網路單獨訓練,這是很不經濟的行為,並且輸出的圖片質量並不能保證,因為它們都是為了專門的圖片大小設計的,只能在對應的圖片大小上抓取圖片中的冗餘資訊。

四、本文提出的RNN模型框架

1、基於殘差輸入的影象壓縮網路框架

用輸出和原始圖片的殘差作為影象的輸入可以保證網路的連續性,即每步訓練可以產生圖片的增量資訊。因此,網路可以用如下方程表示:

r便是殘差輸入,下標表示的是迭代的時間點。

基於殘差輸入的壓縮網路分為基於LSTM的和不基於LSTM的。

對於沒有LSTM結構的模型,F沒有記憶性,每一步的殘差僅根據上一步的殘差結果計算得出,因此,整個影象patch的重建是通過將殘差全部加起來的總和得出的,例如後文將要提到的前向全連殘差編碼器(feed-forward fully-connected residual encoder)和前向卷積/反捲積殘差編碼器(feed-forward convolutional/deconvolutional residual encoder)。每一步的殘差計算公式如下:

對於有LSTM結構的模型,F具有記憶性,每一步的殘差直接根據原始圖片計算得出,因此每一步的輸出都是在預測原始圖片patch,例如後文將要提到的基於LSTM的壓縮網路(LSTM-based compression)和基於LSTM的卷積/反捲積壓縮網路(convolutional/deconvolutional LSTM-based compression)。每一步的殘差計算公式如下:

無論是基於LSTM結構的壓縮網路還是不基於LSTM的壓縮網路按如下方式訓練網路的,其中N是網路中的自編碼器的總數:

2、二值化representation編碼

文章引用的二值化方法分為如下兩步:

(1)第一步使用一個全連層加tanh啟用函式,將經過編碼器得到的representation對映到(-1,1)的區間內;

(2)利用如下函式將(-1,1)區間內的編碼二值化為集合{-1,1}:

因此,整個二值化編碼器可以表示成:

其中W、b分別是線性全連層的權重和偏置,x為上一層的啟用值。影象的壓縮比由每一步生成的representation的位元數(即W矩陣的行數)和網路迭代次數(即殘差自編碼器的重複次數)共同決定。

3、模型一:不基於LSTM的前向全連殘差編碼器

文章首先提出最簡單的例項便是全連層堆疊起來的編碼器E和解碼器D,文章還設定每一個全連層的輸出的個數均為512,並且只使用tanh非線性啟用函式。網路框架如下圖所示:

從結構圖片可以看出,最終圖片patch的重建是通過所有stage的residual加和得到的

4、模型二:基於LSTM的殘差編碼器

該模型通過堆疊LSTM層搭建基於LSTM的編碼器E和解碼器D。並且本文使用的LSTM結構是2013年由Grave提出的簡易結構,該簡易LSTM結構如下:

其中帶上標l和小標t的h代表第l層、t時間點的LSTM隱層的狀態,T代表一種仿射變換,圓圈裡加一點代表的是元素級別的乘法。這種簡易的LSTM能夠減少每一步的運算元,能夠保證GPU的高效執行。基於LSTM的壓縮網路結構如下:

編碼器中由一個全連層後跟上兩個LSTM層構成;解碼器由兩個LSTM層後跟上一個全連層加上一個tanh非線性啟用函式構成來預測原始圖片patch的RGB值,因此每一步迭代都是在預測原始圖片patch

5、模型三:不基於LSTM的前向卷積/反捲積殘差編碼器

文章在模型一中提出了全連的殘差自編碼器,文章在此基礎上用卷積操作代替模型一編碼器中的全連層,用反捲積操作代替模型一解碼器中的全連層,並通過3個1×1的卷積將解碼後的representation轉化為三通道的RGB值。不基於LSTM的前向卷積/反捲積殘差編碼器結構如下:

同樣,類似於模型一,圖片patch的重建是通過加和所有stage的residual得到的

6、模型四:基於LSTM的前向卷積/反捲積殘差編碼器

最後一個模型的編碼器將模型三(見圖片3)編碼器和解碼器中的第二個和第三個卷積和反捲積層替換為LSTM卷積和反捲積層,即將模型二中的仿射變換T替換為為卷積加上偏置。

LSTM卷積操作方程為:

LSTM反捲積操作方程為:

用c和d來區分卷積和反捲積操作。

五、實驗和評價標準

1、訓練

文章採用Adam演算法,使用多種學習率,分別為{0.1,0.3,0.5,0.8,1}進行訓練,損失函式為根據patch畫素個數和迭代總步數標準化後的L2損失,採用從8至16多種編碼步數進行試驗。

文章使用的32×32影象資料集中含有從公共網路中收集的216,000,000張隨機色彩的圖片,對於一些大小不是32×32的質量不錯的影象,文章通過降取樣將圖片轉換為32×32,最終的32×32圖片都被無損的用PNG格式儲存作為訓練和測試的資料集。訓練LSTM模型時,90%的影象作為訓練集,10%的影象作為測試集,為了驗證編碼器的效能,將100,000張的隨機圖片子集作為驗證集。

2、評價標準

文章強調不應採用PSNR作為評價標準,因為PSNR偏向於使用L2損失的模型,這在本文提出的模型和JPEG演算法的比較中對JPEG演算法不公平,因此文章放棄採用PSNR,而採用SSIM(Structural Similarity Idex)。文章將32×32的圖片分成不同的8×8的patch,並且在不同patch和不同顏色通道上計算SSIM,最後的得分由所有patch和channel的平均SSIM給出。在分析結果的時候,更高的得分表示更好的影象重建,1.0表示完美重建。

SSIM,結構相似性,是一種衡量兩幅影象相似度的指標。該指標首先由德州大學奧斯丁分校的影象和視訊工程實驗室(Laboratory for Image and Video Engineering)提出。給定兩個影象x和y, 兩張影象的結構相似性可按照以下方式求出:

當兩張影象一模一樣時,SSIM的值等於1。

六、結果和分析

文章的各個網路的評價結果以及與標準影象壓縮演算法(JPEG,JPEG2000和WebP)的比較結果由如下表格給出:

全連的LSTM模型的效能可以和JPEG相媲美,基於LSTM的卷積/反捲積模型能夠在SSIM感知矩陣這一指標上超越JPEG。



-------------------------------------------

Youzhi Gu, master student

Foresight Control Center

College of Control Science & Engineering

Zhejiang University

Email: [email protected]