# 淺談深度學習在圖像壓縮上的應用 #### M093040061 劉景翔 ## 前言 在AI技術正式跨入深度學習時代的現今,許多經典的應用都被其所席捲,有了革命性的改進。不管是存儲裝置不足的時代,抑或大數據佔據主導地位,數十億GB尺度的的圖像資料在伺服器陣列上被儲存的今日,多媒體資料的壓縮都是被研究者聚焦的技術。本報告將大略介紹深度學習技術在圖像壓縮上的應用與發展,並簡評其與傳統技術比較的優劣利弊,與此技術將帶來的衝擊與影響。 --- ## 圖像壓縮技術簡史 ### JPEG 圖像壓縮技術的歷史,要從1992年JPEG被提出開始,其在1994年被列入ISO標準後,直至今日都還是最被廣泛使用的壓縮圖像格式。而後聯合圖像專家小組提出JPEG2000,被視為JPEG的接班人,擁有較高的壓縮率之餘也更不容易失真,但發布二十年直至今日卻仍尚未普及。 ### WebP 然而社群網站的興起使伺服器中存取大量圖片的需求重新浮上檯面,2010年Google提出開源的格式WebP,以用於影像編碼的VP8作為內核,在將PNG格式圖檔的大小減少到接近一半到三分之一的條件下保持了相同的清晰程度,目前已成為各大社群網站主要使用的格式。 ### BPG 2014年法國程式設計師法布里斯提出BPG,將影像編碼HEVC的技術融合進圖像壓縮中,算是目前傳統方法的SOTA,但因為專利費高昂的緣故並沒有被普及使用。 --- ## 深度學習技術與圖像壓縮 ### 編解碼與人工神經網路 圖像壓縮的技術細節五花八門,但都脫離不了編碼和解碼的過程。壓縮演算法以各式各樣的方式將圖像轉化成資訊量較少的表達方式,而解碼器將其反向操作,解譯成人眼辨識的圖片。 深度學習,即人工神經網路的運作,恰好是一個極其相似的過程。將輸入向量經過一連串編碼,進而產生出輸出向量,這讓使用深度學習技術對圖像進行壓縮具有相當的相性。 ### Encoder-Decoder Encoder-Decoder是一類神經網路架構的總稱,也可以算是一種框架,基本架構是讓輸入通過網路進行編碼,再讓輸出的向量通過另一網路解碼出資訊,以各種方式呈現。 ![](https://i.imgur.com/cSJWm6P.png) 上圖呈現此架構被用於機器翻譯的過程,將輸入的單字序列編碼,再解碼成另一語言的句子,這也是本架構最初被投入的應用。 ### AutoEncoder 自動編碼器是一種非監督式學習的網路架構,其與Encoder-Decoder的主要差異在於,一般將Enocder與Decoder合併成單一網路,並使用Decoder輸出與輸入的比較作為loss值,達成非監督訓練的效果。在Encoder與Decoder的中間層稱為瓶頸層(Bottleneck),代表一個壓縮過的輸入資料的低維表示法。 ![](https://i.imgur.com/oAwThZT.png) 不難發現將一張圖像擺在輸入端,並將輸出的圖像透過一些評估指標與原始圖片比對,以相似度差作為loss值,即可以構建出一個基本的圖像壓縮網路,其壓縮率為瓶頸層的參數資料量與輸入資料量的比例。 --- ## 研究概覽 ### [Variable Rate Image Compression with Recurrent Neural Networks](https://arxiv.org/abs/1511.06085) 本篇是深度學習技術用於圖像壓縮的起源,由Google研究團隊在2016年的ICLR上提出。團隊指出現今的圖像壓縮技術多用於高畫質圖像,對圖示與縮圖的壓縮表現不佳,它並提出三種架構,其中使用LSTM的一種架構在32X32圖示的壓縮上在SSIM指標上與JPEG格式相媲美甚至超越。 #### 傳統AutoEncoder的限制 文中提出傳統AutoEncoder存在某些限制,使得不同的壓縮比例會需要多個獨立的網路才能完成壓縮,在修補這個問題的前提下對架構進行改良。 #### 以殘差作為輸入的網路 以殘差(輸出和原始圖像的差距)作為輸入可以讓訓練的每一步驟互相關聯,最終LSTM的網路在三種架構中脫穎而出也可能是因為此一特性的緣故。 #### 下圖為最終獲勝的LSTM網路架構 ![](https://i.imgur.com/fen15fR.png) ### [Full Resolution Image Compression with Recurrent Neural Network](https://arxiv.org/abs/1608.05148) 隔年同一團隊在CPVR上發表了上述論文的改進版,解決了32X32的圖像大小限制,並引入熵編碼技術,配合已有的二值化技術與改良後的LSTM網路架構,進一步提升了壓縮率,並在多個指標包括PSNR與其變種、SSIM與其變種與AUC上,於經典資料集Kodak上正式勝過JPEG。 #### 改良後的架構 本次提出的數個架構都是基於RNN,並如下連接,其中有LSTM、關聯LSTM與其變種GRU,並且此改良後的架構支援任意圖片大小。 ![](https://i.imgur.com/K5xYypi.png) ### [End-to-end Optimized Image Compression](https://arxiv.org/abs/1611.01704) 因時間關係不及完成 --- ## 結論 深度學習技術在圖像壓縮上可說是突飛猛進,在2016到2020短短四年間,已經將1992到2014二十二年的路程走完,在SOTA的方法中,壓縮率與失真程度等指標已經媲美甚至超越現今最佳的傳統方法。但在神經網路的硬傷,即運算速度與資源使用量上依然存在短時間內無法突破的瓶頸,如果要廣泛使用可能需要專門的硬體,且所費的計算量讓有大量需求的企業不一定能負擔,更何況私人使用者。且要將其進一步套用在影片上會造成24fps或以上的需求,恐怕又會更加困難。雖然此技術暫時無法普及,但它無疑在圖像壓縮的研究領域中開闢了一條新的道路。 --- ## 參考資料 [JPEG - 維基百科,自由的百科全書](https://zh.wikipedia.org/wiki/JPEG) [JPEG2000 - 維基百科,自由的百科全書](https://zh.wikipedia.org/wiki/JPEG_2000) [WebP - 維基百科,自由的百科全書](https://zh.wikipedia.org/wiki/WebP) [BPG - 維基百科,自由的百科全書](https://zh.wikipedia.org/wiki/BPG) [Re:从零开始的机器学习 - Encoder-Decoder架构](https://juejin.cn/post/6844903853457047559) [深度学习方法(八):自然语言处理中的Encoder-Decoder模型,基本Sequence to Sequence模型](https://blog.csdn.net/xbinworld/article/details/54605408) [AutoEncoder (一)-認識與理解](https://medium.com/%E7%A8%8B%E5%BC%8F%E5%B7%A5%E4%BD%9C%E7%B4%A1/autoencoder-%E4%B8%80-%E8%AA%8D%E8%AD%98%E8%88%87%E7%90%86%E8%A7%A3-725854ab25e8) [【论文笔记1】RNN在图像压缩领域的运用——Variable Rate Image Compression with Recurrent Neural Networks](https://blog.csdn.net/qq_28659831/article/details/79253610?spm=1001.2014.3001.5501) [【论文笔记2】图像压缩神经网络在Kodak数据集上首次超越JPEG——Full Resolution Image Compression with Recurrent Neural Networks](https://blog.csdn.net/qq_28659831/article/details/79263609)