端到端图像压缩《Asymmetric Gained Deep Image Compression With Continuous Rate Adaptation》
Asymmetric Gained Deep Image Compression With Continuous Rate Adaptation
- 一 簡介
- 二 內容
- 2.1 目前方法的缺陷
- 2.2 整體方案
- 2.2 Gain Unit
- 2.3 連續可變速率模型
- 2.4 高斯熵模型
- 2.5 實驗補充說明
- 三 性能結論
論文地址:https://openaccess.thecvf.com/content/CVPR2021/papers/Cui_Asymmetric_Gained_Deep_Image_Compression_With_Continuous_Rate_Adaptation_CVPR_2021_paper.pdf
代碼地址:https://github.com/mmSir/GainedVAE
華為可變速率文章,代碼非官方部署,一個小哥實現的,該文章僅供本人筆記用,如果問題歡迎討論。一 簡介
???????提出了一種連續速率可調的學習圖像壓縮框架,即非對稱增益變分自動編碼器(AGVAE)。 AG-VAE 利用一對增益單元在一個模型中實現離散速率自適應,而額外的計算可以忽略不計。并且通過使用指數插值,在不影響性能的情況下實現連續速率自適應。除此之外,部署了非對稱的熵模型提高模型的性能增益。
二 內容
2.1 目前方法的缺陷
???????在之前的圖像壓縮工作中,都是通過改變損失函數中的 λ\lambdaλ 超參數調整模型的碼率,這會導致無法將圖像壓縮至固定碼率點的情況,并且要為此訓練多個模型,需要消耗大量的訓練時間和存儲模型所需要的空間。為此,單個模型能夠覆蓋多個碼率的情形有很大的應用需求。
???????在以往的可變速率技術方案中,基于RNN方案進行漸進式的圖像編碼,但是RD性能比較差,基于條件的conditional卷積網絡復雜度高并且占用內存大,可變的量化bin size方式會導致性能的下降,此外對于BottleNeck層的尺度縮放方案在低碼率的情況下會掉性能。
???????在編解碼方案中,不同通道對最后的重建質量的影響是不同的。作者探索基線方案中,被量化中的前32個通道信息對最后重建圖像質量的影響,得出不同通道有不同重要性的結論,并且對通道進行scale的縮放,被量化后的潛在表示值乘以尺度縮放因子,得到潛在表示縮放后的重建質量。
2.2 整體方案
???????整體方案還是和Google[1]的網絡一致,對比框架優化了 Gain Unit 單元,擴展了自回歸模型中的Mask Convolution,從1個5x5和擴展成 3x3,5x5,7x7的網絡,并且文章中有優化熵模型,從單高斯模型擴展到高斯分布的兩側采用不同方差的半邊高斯分布。
圖1.整體網絡框架圖2.2 Gain Unit
???????標記編碼器的輸出y∈Rc,h,wy\in R^{c,h,w}y∈Rc,h,w即有c個通道(一般為192)w,h的寬高。yi∈Rh,wy_i\in R^{h,w}yi?∈Rh,w則表示單個通道的潛在表示,其中i∈Ci\in Ci∈C,對應的Gain Unit 單元是有一個矩陣M∈Rc,nM \in R^{c,n}M∈Rc,n,表示這個矩陣實際上是為每一個通道的潛在表示分配一個長度為 n 的向量,ms∈m(s,0),m(s,1),m(s,2),...m(s,c?1)m_s \in { m_{(s,0)},m_{(s,1)},m_{(s,2)},...m_{(s,c-1)} }ms?∈m(s,0)?,m(s,1)?,m(s,2)?,...m(s,c?1)?。即每個msm_sms? 是一個長度為n的向量,對于每個通道的操作表示如下:y ̄=yi×ms,i\overline{y}=y_{i} \times m_{s,i}y?=yi?×ms,i? 這里就是關于 Gain Unit的說明,每一個通道上的潛在表示都會乘以對應向量中的某個值,下面介紹基于Gain Unit的離散可變速率框架:
???????編碼器的輸出 yyy 經過Unit Gain單元進行處理縮放之后,得到 y ̄\overline{y}y?,并且需要經過量化,得到量化后的潛在表示y^=round(y ̄)\hat{y}=round(\overline{y})y^?=round(y?),解碼端會同樣部署Inverce-Unit Gain,從熵解碼器中得到y^\hat{y}y^? ,然后進行對應擬變換得到y′=InverseGain(yi^×ms,i′)y^{'}=Inverse Gain(\hat{y_i}\times m^{'} _{s,i})y′=InverseGain(yi?^?×ms,i′?)。
???????整體框架的損失函數優化主流的損失函數基本保持一致:
其中,RφR_{\varphi}Rφ? 項表示碼率, DDD 表示失真, βs\beta_sβs? 表示訓練模型中,失真和碼率的權衡,βs\beta_sβs? 越大,則表示模型越注重重建圖像的質量,βs\beta_sβs? 是從一組預定好的參數集中選取的。有βs∈B\beta_s \in Bβs?∈B ,其中B的長度為n,定義好了一系列的權重值。此外,可以發現, βs\beta_sβs? 的長度為n,而對于每一個Unit Gain 矩陣,每一個通道的scale向量的長度也是n。不同與之前的模型,每一個模型的訓練 βs\beta_sβs? 為預定的單個數值,而此處的 βs\beta_sβs? 在訓練中從 B 的預定義池中隨機選取的,并且在選取 βs\beta_sβs?后,得到對應的 ms,ms′{m_s, m^{'}_s}ms?,ms′?。
???????在推理階段,可以訓練的Unit Gain 矩陣中獲取到有映射關系的ms,ms′{m_s, m^{'}_s}ms?,ms′? 對潛在表示yyy和y^\hat{y}y^?進行縮放,得到對應幾個離散情況下的離散點,如下圖所示,訓練了基于mse loss和(1-msssim) loss的兩個模型。并且通過修改Gain Unit矩陣中的對應ms,ms′{m_s, m^{'}_s}ms?,ms′? 向量,得到的離散RD曲線,離散的模型記為DVR模型。
2.3 連續可變速率模型
本文通過了采用不同的 ms,ms′{m_s, m^{'}_s}ms?,ms′? 矢量對完成單模型多碼率的模型設置,與此同時,可以對 ms,ms′{m_s, m^{'}_s}ms?,ms′? 和 ms?1,ms?1′{m_{s-1}, m^{'}_{s-1}}ms?1?,ms?1′? 進行差值完成連續可變速率的實現。為了確保不同的ms,ms′{m_s, m^{'}_s}ms?,ms′? 之間的對于潛在表示yyy和y^\hat{y}y^? 的縮放結果是一致的,對不同的 ms,ms′{m_s, m^{'}_s}ms?,ms′? 有以下約束:
ms?ms′=mt?mt′=C{m_s*m^{'}_s}={m_t*m^{'}_t}=Cms??ms′?=mt??mt′?=C
ms,ms′{m_s, m^{'}_s}ms?,ms′? 和 mt,mt′{m_t, m^{'}_t}mt?,mt′? (r,t∈[0,1,...n?1]r,t\in [0,1,...n-1]r,t∈[0,1,...n?1])表示不同的增益矢量單元對應在不同的βs\beta_sβs? 和 βt\beta_tβt?。有以下公式:
此處 mv,mv′{m_v, m^{'}_v}mv?,mv′? 表示 mr,mr′{m_r, m^{'}_r}mr?,mr′? 和 mtmt′{m_t m^{'}_t}mt?mt′? 之間的差值系數,通過控制參數lll來表示 mv,mv′{m_v, m^{'}_v}mv?,mv′? 的取值情況,當lll從0取到1時,模型能夠取到兩個離散點mr,mr′{m_r, m^{'}_r}mr?,mr′? 和 mtmt′{m_t m^{'}_t}mt?mt′?之間所有的連續的碼率點,從而實現連續可變速率的目的。結果如下圖所示:
可以從上圖看出,插值后的模型RD性能基本無損甚至比擬合的曲線RD性能更高。
2.4 高斯熵模型
???????在之前的工作中,文章大致采用了三種概率密度函數對參數進行建模:單高斯概率密度函數,混合高斯概率密度函數,單拉普拉斯概率密度函數。其中單高斯概率密度函數表達如下:
μ\muμ和 σ\sigmaσ表示概率密度函數的均值和方差,上述對稱的方式對于建模的精準度不夠高,不夠freedom ,因此使用一種非對稱的熵模型,具體如下:
公式中,μ\muμ還是表示原來的含義,但是對于均值左右兩側的方差采用非對稱的形式,即左邊和右邊采用不同的方差,σl和σr\sigma_l和\sigma_rσl?和σr?則分別表示兩側的方差參數。
2.5 實驗補充說明
在實驗中,對應訓練msssim的模型使用的Bmsssim={0.07,0.03,0.007,0.003,0.001,0.0006}B_{msssim}={\{0.07,0.03,0.007,0.003,0.001,0.0006\}}Bmsssim?={0.07,0.03,0.007,0.003,0.001,0.0006} 六個數值,和訓練psnr指標的模型Bmse={0.05,0.03,0.007,0.003,0.001,0.0003}B_{mse}={\{0.05,0.03,0.007,0.003,0.001,0.0003\}}Bmse?={0.05,0.03,0.007,0.003,0.001,0.0003},以訓練psnr模型為例,在訓練的每個batch,會隨機生成一個索引值s∈{0,1,2,3,4,5}s\in{\{0,1,2,3,4,5\}}s∈{0,1,2,3,4,5},對應能夠取到Bmse={0.05,0.03,0.007,0.003,0.001,0.0003}B_{mse}={\{0.05,0.03,0.007,0.003,0.001,0.0003\}}Bmse?={0.05,0.03,0.007,0.003,0.001,0.0003}中的對應值,與此同時為整個Unit Gain單元初始化一個長度矩陣 M[6][192]M[6][192]M[6][192]的矩陣,同樣Inverce Gain也會有一個同樣的矩陣,上面的msm_sms?就是表示, 對應可以通過s索引得到ms=M[s][:]m_s=M[s][:]ms?=M[s][:],在訓練開始前,可以把MMM矩陣初始化為常量,在每個batch的迭代中,從M矩陣中提取的msm_sms?都會被更新,并且保存。
三 性能結論
整體的性能是基于圖一框架以及對應的使用非對稱熵模型得到的,除此之外,還使用了論文1論文^{1}論文1中的attention機制和論文2論文^{2}論文2中Universal量化技術和論文3論文^{3}論文3中采用的并行上下文技術,整體性能展示如下:
總結
以上是生活随笔為你收集整理的端到端图像压缩《Asymmetric Gained Deep Image Compression With Continuous Rate Adaptation》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10款js图片代码_图片滚动代码_图片切
- 下一篇: iapp教程从入门到精通全部,小白用的i