你不了解的卷積神經網絡:新一代圖像視頻壓縮技術

2020-12-05 快科技

說到圖像壓縮算法,最典型的就是 JPEG、JPEG2000 等。


圖 1:典型圖像壓縮算法 JPEG、JPEG2000 

其中 JPEG 採用的是以離散餘弦轉換(Discrete Cosine Transform)為主的區塊編碼方式(如圖 2)。JPEG2000 則改用以小波轉換(Wavelet Transform)為主的多解析編碼方式,小波轉換的主要目的是將圖像的頻率成分抽取出來。


圖 2:JPEG 編碼框圖

在有損壓縮下,JPEG2000 的明顯優勢在於其避免了 JPEG 壓縮中的馬賽克失真效果。JPEG2000 的失真主要是模糊失真,而模糊失真的主要原因在於高頻量在編碼過程中一定程度的衰減。在低壓縮比情形下(比如壓縮比小於 10:1),傳統的 JPEG 圖像質量有可能比 JPEG2000 好。JPEG2000 在高壓縮比的情形下,優勢才開始明顯。

整體來說,JPEG2000 相比於傳統 JPEG,仍有很大技術優勢,通常壓縮性能可提高 20% 以上。當壓縮比達到 100:1 時,JPEG 壓縮的圖像已經嚴重失真並開始難以識別了,而 JPEG2000 的圖像仍可識別。

深度學習技術設計壓縮算法的目的

通過深度學習技術設計壓縮算法的目的之一是學習一個比離散餘弦變換或小波變換更優的變換,同時藉助於深度學習技術還可以設計更簡潔的端到端算法,因而能夠設計出比 JPEG2000 等商用算法性能更優的算法。

在圖片、視頻壓縮領域,使用最多的深度學習技術就是卷積神經網絡(CNN),下面會就卷積神經網絡進行簡單介紹。如圖 3 所顯示,像搭積木一樣,一個卷積神經網絡由卷積、池化、非線性函數、歸一化層等模塊組成。最終的輸出根據應用而定,如在人臉識別領域,我們可以用它來提取一串數字(專業術語稱為特徵)來表示一幅人臉圖片。然後通過比較特徵的異同進行人臉識別。


圖 3 :卷積神經網絡示意圖

(來源 http://blog.csdn.net/hjimce/article/details/47323463)

那如何利用卷積神經網絡做壓縮?如圖 4 所示,完整的框架包括 CNN 編碼網絡、量化、反量化、CNN 解碼、熵編碼等幾個模塊。編碼網絡的作用是將圖片轉換為壓縮特徵,解碼網絡就是從壓縮特徵恢復出原始圖片。其中編碼網絡和解碼網絡,可以用卷積、池化、非線性等模塊進行設計和搭建。


圖 4:用深度學習進行圖片壓縮示意圖

如何評判壓縮算法

在深入技術細節前,我們先來了解一下如何評判壓縮算法。評判一個壓縮算法好壞的重要指標有兩個:一個是每個像素佔據的比特位數(bit per pixel,BPP),一個是 PSNR

我們知道,數據在計算機中以比特形式存儲,所需比特數越多則佔據的存儲空間越大。BPP 用於表示圖像中每個像素所佔據的比特數,如一張 RGB 三通道圖,表示每個像素需要消耗 24 個比特。PSNR 用來評估解碼後圖像的恢復質量,簡單理解就是 PSNR 越高,恢復質量越好。

我們舉個例子,假設長寬為 768*512 的圖片大小為 1M,利用深度學習技術對它編碼,通過編碼網絡後產生包括 96*64*192 個數據單元的壓縮特徵數據,如果表示每個數據單元平均需要消耗 1 個比特,則編碼整張圖需要 96*64*192 個比特。

經過壓縮後,編碼每個像素需要的比特數為(96*64*192)/(768*512)=3,所以 BPP 值為 3bit/pixel,壓縮比為 24:3=8:1。這意味著一張 1M 的圖,通過壓縮後只需要消耗 0.125M 的空間,換句話說,之前只能放 1 張照片的空間,現在可以放 8 張。

如何用深度學習做壓縮

談到如何用深度學習做壓縮,還是用剛才那個例子。將一張大小 768*512 的三通道圖片送入編碼網絡,進行前向處理後,會得到佔據 96*64*192 個數據單元的壓縮特徵。有計算機基礎的讀者可能會想到,這個數據單元中可放一個浮點數,整形數,或者是二進位數。那問題來了,到底應該放入什麼類型的數據?

從圖像恢復角度和神經網絡原理來講,如果壓縮特徵數據都是浮點數,恢復圖像質量是最高的。但一個浮點數佔據 32 個比特位,那之前講的比特數計算公式變為(96*64*192*32)/(768*512)=96,壓縮後反而每個像素佔據比特從 24 變到 96,非但沒有壓縮,反而增加了,這是一個糟糕的結果,很顯然浮點數不是好的選擇。

所以為了設計靠譜的算法,我們使用一種稱為量化的技術,它的目的是將浮點數轉換為整數或二進位數,最簡單的操作是去掉浮點數後面的小數,浮點數變成整數後只佔據 8 比特,則表示每個像素要佔據 24 個比特位。與之對應,在解碼端,可以使用反量化技術將變換後的特徵數據恢復成浮點數,如給整數加上一個隨機小數,這樣可以一定程度上降低量化對神經網絡精度的影響,從而提高恢復圖像的質量。

即使壓縮特徵中每個數據佔據 1 個比特位,可是 8:1 的壓縮比在我們看來並不是一個很理想的結果。那如何進一步優化算法?再看下 BPP 的計算公式。假設每個壓縮特徵數據單元佔據 1 個比特,則公式可寫成:(96*64*192*1)/(768*512)=3,計算結果是 3 bit/pixel,從壓縮的目的來看,BPP 越小越好。在這個公式中,分母由圖像決定,可以調整的部分在分子,分子中 96、64、192 這三個數字與網絡結構相關。很顯然,當我們設計出更優的網絡結構,這三個數字就會變小。

那 1 與哪些模塊相關?1 表示每個壓縮特徵數據單元平均佔據 1 個比特位,量化會影響這個數字,但它不是唯一的影響因素,它還與碼率控制和熵編碼有關。碼率控制的目的是在保證圖像恢復質量的前提下,讓壓縮特徵數據單元中的數據分布儘可能集中、出現數值範圍儘可能小,這樣我們就可以通過熵編碼技術來進一步降低 1 這個數值,圖像壓縮率會進一步提升。

用深度學習做視頻壓縮,可以看作是在深度學習圖片壓縮基礎上的擴展,可結合視頻序列幀間的光流等時空信息,在單張壓縮的基礎上,進一步降低碼率。

圖 5:在 kodak24 標準數據集上測評結果,上圖為 PSNR 結果,下圖為 MS-SSIM 的結果

總結

總體而言,藉助於深度學習設計視頻和圖像壓縮算法是一項非常具有前景但也非常具有挑戰性的技術。目前,其已經在人臉識別等領域證明了它的強大能力,有理由相信在不久的將來,深度學習技術將為圖像視頻壓縮領域帶來更大的突破。

圖 6:在同等壓縮率下壓縮視覺效果對比。上圖為圖鴨所提出的算法,下圖為 JPEG2000 算法。在紋理細節上,上圖的效果更好。

圖 7:在同等壓縮率下,對複雜圖像壓縮視覺效果對比。上圖為圖鴨所提出的算法,下圖為 JPEG2000 算法。在細節上,可以看到上圖的效果更好。

圖 8:圖鴨科技,BPG,JPEG2000,JPEG,CNN-google 算法的圖像亮度分量的 rate-distortion 曲線,上圖為感知質量,由多尺度結構相似性度量(MS-SSIM)。下圖為峰值信噪比。

相關焦點

  • 應用豐富的「卷積神經網絡」技術,怎樣實現了圖像識別?
    (原標題:應用豐富的「卷積神經網絡」技術,怎樣實現了圖像識別?) 摘要: 本文將使用卷積神經網絡來介紹「圖像識別」的概念、應用和技術方法。
  • 74KB圖片也高清,谷歌用神經網絡打造圖像壓縮新算法
    目前處於特殊時期,大量國外網友仍在家中隔離,Netflix和油管的播放量暴增,一些視頻網站甚至不得不被迫降低視頻在線播放的清晰度,以適應激增的數據量。但看慣了高清視頻的網友們,面對突如其來的「模糊打擊」自然怨聲載道。用一位網友的話來說,如果視頻行業也能被應用類似的技術,相信Netflix和油管會特別高興,畢竟這種高清低碼率的圖像復原實在太誘惑。
  • 一場深度學習引發的圖像壓縮革命
    WEBP 是 Google 推出的新一代文件格式,期望代替 JPEG,在與 JPEG 相同圖片質量的情況下,可以大大縮小文件大小。WEBP 採用一種基於 VP8 編碼(已於 2010 年 5 月開源)的圖片壓縮器,利用預測編碼技術,達到減少數據量、加速網絡傳輸的目的。
  • MSRA視頻理解新突破,實現199層三維卷積神經網絡
    然而目前視頻識別的相關研究多數使用的是基於圖像的卷積神經網絡(如微軟研究院在 2015 提出的殘差神經網絡 ResNet)來學習視頻特徵,這種方法僅僅是對單幀圖像的 CNN 特徵進行融合,因此往往忽略了相鄰的連續視頻幀間的聯繫以及視頻中的動作信息。目前,視頻專用的深度神經網絡還很缺乏。
  • 淺析人工智慧的卷積神經網絡與圖像處理
    淺析人工智慧的卷積神經網絡與圖像處理 demi 發表於 2019-11-02 11:23:43 在人工智慧深度學習技術中,有一個很重要的概念就是卷積神經網絡 CNN(Convolutional Neural
  • 圖像識別技術——卷積神經網絡CNN詳解
    神經網絡與卷積神經網絡神經網絡對於各種各樣的數據都具有一個很強的非線性擬合能力,但是在語音、圖像這類「raw data」數據處理上,我們遲遲得不到突破。這些數據屬於人類一出生就能接受到的信息,在這方面數據,我們很難用機器學習的方法去驅動產出很好的效果。
  • 卷積神經網絡在圖像領域中的發展及存在問題
    深層神經網絡一般使用反向傳播算法的方法來訓練,但是由於層數較多並且隨機初始化的方法較粗糙,隨著深度加深,會造成的訓練結果不穩定或產生「梯度消失」的問題,使得深層神經網絡無法work。2012年6月,《紐約時報》報導了由著名機器學習專家Andrew Ng和Google軟體架構師Jeff Dean主持的Google Brains項目,該項目使用包含16000顆CPU的並行計算平臺,在沒有標註信息的情況下,對深度神經網絡進行無監督訓練,網絡學會了自動從數百萬張Youtube視頻截圖中識別貓臉。
  • 反思卷積神經網絡:圖像角度泛化上的困難重重
    毫無疑問,卷積神經網絡在圖像處理及周邊領域的開發進程和研究突破中發揮著重要作用。 但是,這不代表卷積神經網絡表現完美。 研究人員經常會遇到一個問題:他們往往由於過於追求理論和完美數據集而深陷其中。然而事與願違,要求數據準確度到小數點後幾位其實往往與現實情況中圖像處理的實際用處恰恰相反。
  • 華為開發者學院|卷積神經網絡與圖像處理,聽這一節課就夠了
    允中 發自 凹非寺量子位 編輯 | 公眾號 QbitAI隨著人工智慧技術越來越多地融入到我們的生活中,出現了智能音箱、智能助理、智慧機器人等實用性產品。人工智慧作為當前最熱門的技術之一,越來越多的人加入人工智慧的大家庭,根據應用領域的不同,人工智慧研究的技術也不盡相同。
  • 深度學習入門:淺析卷積神經網絡
    它在語音識別、自然語言處理、計算機視覺、圖像與視頻分析、多媒體等諸多領域的應用取得了巨大成功。至今已有數種深度學習方法,如卷積神經網絡(CNN)、自編碼神經網絡(包括Auto encoder和Sparse Coding)和深度置信網絡(DBN),並在各個領域中取得了極好的效果。
  • 解析卷積神經網絡的應用
    深度學習,尤其是卷積神經網絡的使用,並沒有依賴傳統的圖像處理技術,而是賦予計算機理解世界的能力,且這方面已取得重大進展。 卷積神經網絡最早可以追溯到20世紀80年代末,其創建是基於20世紀60年代早期的人工神經網絡(ANN)和多層感知器(MLP)。它們最初的設計旨在模擬人腦的工作方式。當然,為了像人腦一樣做好工作,需要使用大量的數據來進行訓練。
  • 「範例卷積神經網絡」和信息最大化
    我們在案例中只使用了一個數量適中的訓練圖像集,「範例卷積神經網絡」恰恰利用了這一點,把數據分布表示為一個經驗分布(離散有限可能性的分布)。假設我們離散了分布,使之變得不連續,那麼「範例卷積神經網絡」就能夠被推導成為「種子圖像」和其表徵之間的互信息的一個下界。
  • 基於小波變換的視頻圖像壓縮算法研究
    l 引 言 隨著網絡和多媒體技術的迅速發展,特別是3G技術的逐漸普及,多媒體信息特別是視頻圖像信息將越來越豐富。對數據量龐大的視頻圖像信息進行壓縮是非常必要的,因此視頻圖像的壓縮也一直吸引著廣大研究者進行不斷深入的探索。
  • 卷積神經網絡(CNN)新手指南
    這些數字雖然對於我們進行圖像分類時沒有任何意義,但其卻是計算機在圖像輸入時唯一獲取的數據。這個理念就是你給電腦指定相關數據排列,它將圖像是一個特定的類別的可能性進行輸出(如80—貓,15—狗,05—鳥等)。我們希望電腦做什麼現在我們了解到問題是在輸入和輸出上,讓我們來考慮如何解決這個問題。
  • 了解1D和3D卷積神經網絡|Keras
    當我們說卷積神經網絡(CNN)時,通常是指用於圖像分類的2維CNN。但是,現實世界中還使用了其他兩種類型的卷積神經網絡,即1維CNN和3維CNN。在本指南中,我們將介紹1D和3D CNN及其在現實世界中的應用。我假設你已經大體上熟悉卷積網絡的概念。
  • 梯度上升可視化卷積神經網絡
    減掉幾層可以減少網絡參數,本來我的GPU顯存不是很大,太大的網絡塞不下,不想重新買GPU只能減層,有沒有大神可以教教我怎麼操作啊?很多時候我們會遇到上面的問題,然後道聽途說地開始給別人瞎粑粑吹吹牛皮。在這之前,連我自己都不知道VGG16網絡最後兩層block5 conv2,block5 conv3訓練到最後幾乎沒有太多的紋理特徵。你知道嗎?
  • ...計算能力來獲取攝像頭採集的視頻並採用多個卷積神經網絡進行處理
    打開APP 如何使用硬體的計算能力來獲取攝像頭採集的視頻並採用多個卷積神經網絡進行處理 工程師5 發表於 2018-04-27 16:10:00
  • CVPR 2018 圖像壓縮挑戰賽結果出爐,騰訊音視頻實驗室壓縮性能第一
    名次:1
  • 卷積神經網絡理解(一):濾波器的意義
    作者 | 荔枝boy出品 | 磐創AI技術團隊一. 卷積神經網絡的發展二. 卷積神經網絡的重要性三.卷積神經網絡與圖像識別四. 濾波器一.卷積神經網絡的發展卷積神經網絡受到視覺細胞研究的啟發,1962年,Hubel和Wiesel發現初級視覺皮層中的神經元會響應視覺環境中特定的簡單特徵(比如有向的邊等)。
  • 被壓縮的視覺:視頻編解碼技術
    這樣為了表示一個像素需要1.5位元組的數據,而一幅圖像中有成千上萬個像素。一幅720p解析度的視頻包含92萬個像素,一幅1080p解析度的視頻包含207萬個像素,而一秒鐘的視頻包含30幀圖像。對於數據量巨大的YUV視頻數據,需要壓縮後才能存儲與傳輸。2. 壓縮原理壓縮視頻信息與壓縮文件信息不同,在視頻中存在著大量的冗餘信息。