CVPR 2019 CLIC 影像壓縮挑戰賽冠軍方案解讀
- 2019 年 12 月 27 日
- 筆記
導讀:影像影片壓縮是傳統多媒體技術的核心,也是一項牽動整個多媒體資訊產業的基礎技術。深度學習在該領域的成功運用,已經引起了不少IT巨頭的關注。圖鴨科技是中國少有的專註於深度學習影像影片壓縮的初創公司,其創始團隊也是CV君的幾位前同事,在剛剛過去的CVPR 2019 CLIC 影像壓縮挑戰賽上,圖鴨獲得了 4 項冠軍。本期CV君邀請圖鴨科技對他們的獲勝論文進行了解讀,希望對做相關方向的朋友有所啟發。
近年來隨著人工智慧技術的發展,基於深度學習的影像壓縮技術已取得了飛速的發展。一種典型的基於深度學習的影像壓縮框架包括:自編碼網路結構設計、量化、碼率估計和失真優化等幾個模組。
本文將主要介紹圖鴨科技在CVPR 2019 CLIC影像壓縮挑戰賽上的相關技術方案,針對於比賽所設置的低碼點和高碼點壓縮兩個賽道,我們基於變分自編碼網路設計了可進行端到端優化的影像壓縮方案。
該方案包括一個非線性編碼網路、軟量化模組、一個非線性解碼網路和一個熵估計模組。我們技術方案的特色之處總結如下:
- 提出了基於全局特徵分析的non-local注意力模組,並融合進編碼網路和解碼網路,以實現提升自適應碼字分配性能的目的。
- 設計了一種基於自適應聚類的軟量化方法以降低量化損失。
- 提出了能融合超先驗子網路和基於pixel cnn++的上下文模型的碼率估計模組。
得益於優良的網路結構和演算法設計,我們所提出的演算法TucodecSSIM奪得了MS-SSIM和MOS兩項指標的冠軍,演算法TucodecPSNR奪得了PSNR指標的冠軍,演算法TucodecPSNR40dB則奪得高碼點影像壓縮指標的冠軍。接下來將具體介紹我們的演算法方案:
方法介紹
1. 編碼網路和解碼網路
我們的主幹壓縮自編碼網路使用了如圖1所示的非對稱結構,它包括卷積、非線性單元和殘差non-local注意力卷積等模組。

圖1 編碼和解碼網路結構示意圖
值得注意的是,通過使用殘差non-local注意力模組來對特徵的全局關聯性進行捕捉和建模,影像中的紋理、邊界等複雜部分能得到更好的重建。在kodak標準數據集上的實驗表明,通過在編碼和解碼網路結構中融合non-local注意力模組,能在PSNR指標上帶來0.6db的提升。
2. 量化
在現在的大部分方案中,取整量化是一種常用的方式。我們通過實驗測評發現,這種直接將浮點數映射到整數的量化方式會極大的降低重建精度(PSNR指標至少降低0.5db, MS-SSIM指標降低至少1.5db)。
為了降低量化帶來的精度損失,我們設計了一種基於自適應聚類的軟量化方案,具體介紹如下:
給定可學習的中心點,可使用最近鄰分配的方式來計算量化值:

(1)
但式(1)的量化方式是不可導的,因此將使用如下所定義的軟分配方式進行替換,以保證在訓練過程中能進行端到端的優化:

(2)
在用tensorflow進行實現時,可以用如下的程式碼對參數進行量化:

3. 先驗概率和碼率估計
為了進行碼率估計,使用拉普拉斯分布對壓縮特徵的分布進行表示,分布的參數包括均值和方差。為了對分布的均值和方差進行端到端的計算,設計了如圖2所示的網路結構:

圖2. 碼率估計模組示意圖,該模組包括超參自編碼網路、上下文網路和熵參數網路三部分。
碼率估計模組由三個子網路構成:超參網路,參數為;上下文網路,參數為; 熵參數網路,參數是。如圖2所示,超參網路由超參編碼網路,量化模組和超參解碼網路組成。超參網路的量化特徵也需要編碼,使用非參的概率密度估計方式進行先驗概率建模:

(4)
此外我們使用了Pixel cnn++網路結構對特徵的上下文關係進行捕捉和建模;最後使用卷積模組進行熵參數網路的構建,並將超參網路的輸出和上下文網路的輸出進行級聯來作為熵參數網路的輸入來計算相應的均值和方差。則主幹自編碼網路壓縮特徵的分布可以表示為:

(5)
最後碼率估計將由兩部分組成:一部分是對主幹自編碼網路中壓縮特徵的估計碼率,一部分是超參自編碼網路壓縮特徵的估計碼率:

(6)
4. 後處理
在方案TucodecPSNR中,我們使用了改進的H266演算法作為基礎,但低碼率壓縮演算法重建圖最顯著的缺點是存在偽影,並且很多紋理細節會丟失。為了改進在低碼率條件下重建圖的品質,我們設計一個有效的後處理模組,後處理模組的具體細節如圖3所示。

圖3 後處理演算法結構示意圖
實驗結果
我們從CLIC 2019訓練集和flickr.com 上收集了5000張高清圖片,並從中採集了百萬張的影像塊作為訓練集。為對網路進行高效訓練,我們使用tensorflow平台對相應網路結構進行實現。在方案TucodecSSIM中,進行網路訓練使用的損失函數如下所示:


(7)
除上述損失函數外,也結合了對抗生成網路對壓縮網路進行端到端的訓練。為了滿足比賽的0.15bpp的約束要求,我們訓練了5個模型分別對應λ=0.2/0.3/0.4/0.5/0.6,最後使用動態規劃演算法進行碼字分配。

在方案TucodecPSNR40db中,進行網路訓練所使用的損失函數如下所示:

(8)
在模型訓練完畢後,為了滿足比賽的PSNR 值不小於40db和MS-SSIM值不小於0.993的約束,共訓練了5個模型,對應的λ=4096/4800/5500/6500/8000。最後使用動態規劃演算法進行碼字分配。
在方案TucodecPSNR中,使用了我們改進的H266演算法作為基礎,並結合後處理網路進行性能的提升,我們給出了三個模型,分別對應QP 36/37/38,並最後進行碼字分配以滿足0.15bpp約束的要求。所提出演算法的測評指標如下表所示:

總結
得益於優良的網路結構和演算法設計,在CVPR 2019 CLIC影像壓縮挑戰賽中,我們所提出的演算法TucodecSSIM奪得了MS-SSIM和MOS兩項指標的冠軍,演算法TucodecPSNR奪得了PSNR指標的冠軍,演算法TucodecPSNR40dB則奪得高碼點影像壓縮Transparent Track的冠軍。