摘要:目前,其已經在人臉識別等領域證明了它的強大能力,有理由相信在不久的將來,深度學習技術將為圖像視頻壓縮領域帶來更大的突破。
說到圖像壓縮算法,最典型的就是JPEG、JPEG2000等。
其中JPEG 采用的是以離散余弦轉換(Discrete Cosine Transform) 為主的區塊編碼方式(如圖2)。JPEG2000則改用以小波轉換(Wavelet Transform) 為主的多解析編碼方式,小波轉換的主要目的是將圖像的頻率成分抽取出來。
在有損壓縮下,JPEG2000的明顯優勢在于其避免了JPEG壓縮中的馬賽克失真效果。JPEG2000的失真主要是模糊失真,而模糊失真的主要原因在于高頻量在編碼過程中一定程度的衰減。在低壓縮比情形下(比如壓縮比小于10:1),傳統的JPEG圖像質量有可能比JPEG2000好。JPEG2000在高壓縮比的情形下,優勢才開始明顯。
整體來說,JPEG2000相比于傳統JPEG,仍有很大技術優勢,通常壓縮性能可提高20%以上。當壓縮比達到100:1時,JPEG壓縮的圖像已經嚴重失真并開始難以識別了,而JPEG2000的圖像仍可識別。
深度學習技術設計壓縮算法的目的通過深度學習技術設計壓縮算法的目的之一是學習一個比離散余弦變換或小波變換更優的變換,同時借助于深度學習技術還可以設計更簡潔的端到端算法,因而能夠設計出比JPEG2000等商用算法性能更優的算法。
在圖片、視頻壓縮領域,使用最多的深度學習技術就是卷積神經網絡(CNN),下面會就卷積神經網絡進行簡單介紹。如圖3所顯示,像搭積木一樣,一個卷積神經網絡由卷積、池化、非線性函數、歸一化層等模塊組成。最終的輸出根據應用而定,如在人臉識別領域,我們可以用它來提取一串數字(專業術語稱為特征)來表示一幅人臉圖片。然后通過比較特征的異同進行人臉識別。
那如何利用卷積神經網絡做壓縮?如圖4所示,完整的框架包括CNN編碼網絡、量化、反量化、CNN解碼、熵編碼等幾個模塊。編碼網絡的作用是將圖片轉換為壓縮特征,解碼網絡就是從壓縮特征恢復出原始圖片。其中編碼網絡和解碼網絡,可以用卷積、池化、非線性等模塊進行設計和搭建。
?
在深入技術細節前,我們先來了解一下如何評判壓縮算法。評判一個壓縮算法好壞的重要指標有兩個:一個是每個像素占據的比特位數(bit per pixel, BPP),一個是PSNR。我們知道,數據在計算機中以比特形式存儲,所需比特數越多則占據的存儲空間越大。BPP用于表示圖像中每個像素所占據的比特數,如一張RGB三通道圖,表示每個像素需要消耗24個比特。PSNR用來評估解碼后圖像的恢復質量,簡單理解就是PSNR越高,恢復質量越好。
我們舉個例子,假設長寬為768512的圖片大小為1M,利用深度學習技術對它編碼,通過編碼網絡后產生包括9664192個數據單元的壓縮特征數據,如果表示每個數據單元平均需要消耗1個比特,則編碼整張圖需要9664192個比特。經過壓縮后,編碼每個像素需要的比特數為(9664192)/(768512)=3,所以BPP值為3bit/pixel,壓縮比為24:3=8:1。這意味著一張1M的圖,通過壓縮后只需要消耗0.125M的空間,換句話說,之前只能放1張照片的空間,現在可以放8張。
????
談到如何用深度學習做壓縮,還是用剛才那個例子。將一張大小768512的三通道圖片送入編碼網絡,進行前向處理后,會得到占據9664192個數據單元的壓縮特征。有計算機基礎的讀者可能會想到,這個數據單元中可放一個浮點數,整形數,或者是二進制數。那問題來了,到底應該放入什么類型的數據?從圖像恢復角度和神經網絡原理來講,如果壓縮特征數據都是浮點數,恢復圖像質量是最高的。但一個浮點數占據32個比特位,那之前講的比特數計算公式變為(966419232)/(768*512)=96,壓縮后反而每個像素占據比特從24變到96,非但沒有壓縮,反而增加了,這是一個糟糕的結果,很顯然浮點數不是好的選擇。
所以為了設計靠譜的算法,我們使用一種稱為量化的技術,它的目的是將浮點數轉換為整數或二進制數,最簡單的操作是去掉浮點數后面的小數,浮點數變成整數后只占據8比特,則表示每個像素要占據24個比特位。與之對應,在解碼端,可以使用反量化技術將變換后的特征數據恢復成浮點數,如給整數加上一個隨機小數,這樣可以一定程度上降低量化對神經網絡精度的影響,從而提高恢復圖像的質量。
即使壓縮特征中每個數據占據1個比特位,可是 8:1的壓縮比在我們看來并不是一個很理想的結果。那如何進一步優化算法?再看下BPP的計算公式。假設每個壓縮特征數據單元占據1個比特,則公式可寫成:(96641921)/(768512)=3,計算結果是3 bit/pixel,從壓縮的目的來看,BPP越小越好。在這個公式中,分母由圖像決定,可以調整的部分在分子,分子中96、64、192這三個數字與網絡結構相關。很顯然,當我們設計出更優的網絡結構,這三個數字就會變小。
那1與哪些模塊相關?1表示每個壓縮特征數據單元平均占據1個比特位,量化會影響這個數字,但它不是唯一的影響因素,它還與碼率控制和熵編碼有關。碼率控制的目的是在保證圖像恢復質量的前提下,讓壓縮特征數據單元中的數據分布盡可能集中、出現數值范圍盡可能小,這樣我們就可以通過熵編碼技術來進一步降低1這個數值,圖像壓縮率會進一步提升。
用深度學習做視頻壓縮,可以看作是在深度學習圖片壓縮基礎上的擴展,可結合視頻序列幀間的光流等時空信息,在單張壓縮的基礎上,進一步降低碼率。
圖 5 在kodak24標準數據集上測評結果,上圖為PSNR結果,下圖為MS-SSIM的結果
總結?
總體而言,借助于深度學習設計視頻和圖像壓縮算法是一項非常具有前景但也非常具有挑戰性的技術。目前,其已經在人臉識別等領域證明了它的強大能力,有理由相信在不久的將來,深度學習技術將為圖像視頻壓縮領域帶來更大的突破。現階段圖鴨團隊自主研發的算法已經超過商用的JPEG2000。如圖6和圖7
圖 6 在同等壓縮率下壓縮視覺效果對比。上圖為圖鴨所提出的算法,下圖為JPEG2000算法。在紋理細節上,我們的算法能得到更好的效果。
圖 7 在同等壓縮率下,對復雜圖像壓縮視覺效果對比。上圖為圖鴨所提出的算法,下圖為JPEG2000算法。在細節上,我們的算法能得到更好的效果。
文章由圖鴨團隊撰寫,感興趣的朋友請關注微信公眾號:tucodec.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/11038.html
摘要:隨后深度學習的研究大放異彩,廣泛應用在了圖像處理和語音識別領域。比如的學生就用深度學習算法贏得年的。深度學習和人工智能的春天離人工智能最近的互聯網公司敏銳嗅到了這一機遇。 多倫多大學計算機系教授Geoffrey Hinton是Deep Learning的開山鼻祖,我們來講講他的故事。他有個傳奇的姑姑不過先來說說他姑姑吧,他姑姑Joan Hinton是一個與中國有關的具有傳奇經歷的人物,中文名...
閱讀 2843·2023-04-26 02:23
閱讀 1587·2021-11-11 16:55
閱讀 3153·2021-10-19 11:47
閱讀 3365·2021-09-22 15:15
閱讀 1982·2019-08-30 15:55
閱讀 1042·2019-08-29 15:43
閱讀 1297·2019-08-29 13:16
閱讀 2199·2019-08-29 12:38