于 恒,梅紅巖,許曉明,賈慧萍
遼寧工業(yè)大學 電子與信息工程學院,遼寧 錦州 121001
圖像壓縮一直是圖形圖像處理領(lǐng)域的基礎(chǔ)課題,自1948年提出電視信號數(shù)字化設(shè)想后,圖像壓縮便登上了歷史的舞臺,其大概發(fā)展路程如圖1所示,從圖中可以看出,在有了BP算法[1]之后,就已經(jīng)有研究人員將神經(jīng)網(wǎng)絡引入圖像壓縮領(lǐng)域的先例,之后隨著深度學習地不斷深入研究,基于深度學習的圖像壓縮方法也隨之被提出。深度學習[2]對圖像特征提取、表達能力,以及高維數(shù)據(jù)的處理能力等都被認為對于圖像壓縮存在獨有的優(yōu)勢,時至今日研究這一方向的人數(shù)日益增多,將深度學習應用于圖像壓縮逐漸成為當前的熱點研究問題之一。傳統(tǒng)的圖像編碼標準如:JPEG[3]、JPEG2000[4]和BPG已被廣泛使用,傳統(tǒng)的圖像壓縮多采用固定的變換方式和量化編碼框架,如離散余弦變換和離散小波變換,在結(jié)合量化和編碼器來減少圖像的空間冗余,但是并非所有類型的圖像都適用于這種方式,如以圖像塊的方式進行變換量化后會有塊效應。同時在大量傳輸圖像時由于網(wǎng)絡帶寬的限制,為了實現(xiàn)低比特位率編碼,會導致圖像的模糊[5]現(xiàn)象。深度學習技術(shù)可以根據(jù)自身特點優(yōu)化上述問題:如在編碼器的性能上,深度學習技術(shù)可以對編碼器和解碼器進行聯(lián)合優(yōu)化,不斷提升編碼器的性能;在圖像清晰度上,基于深度學習的圖像超分辨率[6]技術(shù),以及生成對抗網(wǎng)絡都能使圖像重建更加清晰;在面對不同類型的圖像,針對不同類型的任務上,深度學習技術(shù)能夠根據(jù)任務的特點對圖像實現(xiàn)更智能、更針對的編解碼。本文將根據(jù)不同的深度學習方法對圖像壓縮處理取得的成果進行介紹。
圖1 圖像壓縮發(fā)展簡圖
圖像壓縮的目的是通過消除數(shù)字圖像像素間的冗余實現(xiàn)圖像壓縮處理。在靜態(tài)圖像中,空間冗余是存在的最多的冗余,物體與背景具有很強的聯(lián)系,這種聯(lián)系映射到像素一級上,就體現(xiàn)了很強的相關(guān)性,這種相關(guān)性在數(shù)字圖像中就被稱為數(shù)據(jù)冗余,通過壓縮的方式來消除數(shù)據(jù)冗余的原理主要分為三類:預測編碼、變換編碼和統(tǒng)計編碼。
預測編碼的基礎(chǔ)理論為現(xiàn)代統(tǒng)計學和控制論,其技術(shù)是建立在信號數(shù)據(jù)的相關(guān)性上。最經(jīng)典的方式為DPCM法,利用當前圖像的一個像素的真實值,根據(jù)相鄰像素的相關(guān)性對當前像素進行預測,利用兩者具有預測性的殘差進行量化、編碼,通過降低碼流進而達到圖像壓縮的目的。變換編碼技術(shù)的圖像壓縮算法主要是對圖像進行函數(shù)變換,將空域信息變換到頻域,之后在對頻域信息進行處理,將高頻信號和低頻信號進行分離,按照信號的重要程度對比特位進行分配,減少信息冗余,達到壓縮目的。統(tǒng)計編碼也被稱為熵編碼是根據(jù)信息出現(xiàn)概率的分布特性進行編碼?;谏疃葘W習的圖像壓縮,并不是獨立于傳統(tǒng)的圖像壓縮方法的,更多的方法是建立在傳統(tǒng)的編碼方式之上,對傳統(tǒng)圖像壓縮的比特率和重建圖像的分辨率進行提升。
在使用變換編碼時,主要問題在于重建圖像時存在塊效應與偽影,這些問題其實并非只有深度學習能夠處理,很多方法[7-8]都可以對這些塊效應進行很好的處理,但是深度學習更有能力處理這類問題。在早期,一個普通的多層感知器已經(jīng)被用來直接學習一個投影從一個有噪聲的圖像到一個無噪聲的圖像,在近期,利用卷積神經(jīng)網(wǎng)絡、生成對抗網(wǎng)絡,對圖像進行超分辨率更是取得了階段性的成果。熵編碼是圖像壓縮框架中的一個重要組成部分。根據(jù)信息論[9]編碼信號所需的比特率受信息熵的限制,信息熵對應于表示信號的符號的概率分布。因此,在端到端學習圖像壓縮框架中嵌入熵編碼組件來估計潛在表示的概率分布,并對熵進行約束來降低比特率。熵編碼模型提供了對所有元素的可能性的估計,在熵模型中,大部分的工作都是利用算術(shù)編碼對元素的符號進行無損編碼。傳統(tǒng)的圖像壓縮采用變換方式在配合熵編碼進行圖像壓縮,而深度學習則是采用端到端的結(jié)構(gòu)設(shè)計和不同種類的網(wǎng)絡經(jīng)過訓練替代傳統(tǒng)的固定變換方式,進而提升圖像壓縮。同時近些年GPU的高速發(fā)展,為更多樣性網(wǎng)絡結(jié)構(gòu)的設(shè)計提供了計算保障,也為性能的提升提供了硬件支持,使基于深度學習的圖像壓縮在其分辨率、比特率等各方面有了提高。
圖像壓縮根據(jù)對編碼信息的恢復程度來進行分類,主要分為無損壓縮[10]和有損壓縮[11],基于深度學習的圖像壓縮方法多為有損圖像壓縮,依賴深度學習強大的建模能力,基于深度學習的圖像壓縮性能已經(jīng)超過了JPEG和BPG,并且這種性能上的差距仍在逐步擴大。下面將分別對基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)[12]、循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)[13]、生成對抗網(wǎng)絡(Generative Adversarial Network,GAN)[14]進行介紹。
圖2 CNN圖像壓縮框架圖
CNN在圖像領(lǐng)域發(fā)展迅速,特別是在計算機視覺領(lǐng)域中表現(xiàn)出優(yōu)異的性能。如目標檢測、圖像分類、語義分割等。CNN卷積運算中的稀疏連接和參數(shù)共享兩大特性使CNN在圖像壓縮中彰顯優(yōu)勢。稀疏鏈接可以通過卷積核的大小來限制輸出參數(shù)的多少,在圖像中都存在空間組織結(jié)構(gòu),圖像中的一個像素點在空間上與周圍的像素點都有緊密的關(guān)系,稀疏連接借鑒這一關(guān)系只接受相互有關(guān)聯(lián)的區(qū)域作為像素點的輸入,之后將所有神經(jīng)元接收到的局部信息在更深層的網(wǎng)絡進行綜合,就可以得到全局的信息,從而降低了參數(shù),也降低計算的復雜程度。權(quán)值共享是指每個神經(jīng)元的參數(shù)都是相同的,在同一個卷積核的圖像處理中參數(shù)都是共享的,卷積神經(jīng)網(wǎng)絡采用這種方式也會顯著地降低參數(shù)的數(shù)量,并在一定程度上避免了過擬合的發(fā)生。卷積神經(jīng)網(wǎng)絡的這兩大特性,更好地降低了計算的復雜程度,使訓練可以向更深、更優(yōu)的網(wǎng)絡結(jié)構(gòu)發(fā)展。同時這兩大特性也減少圖像壓縮的數(shù)據(jù)量。CNN的圖像壓縮多以端到端的方式進行圖像壓縮,通過CNN設(shè)計編碼端與解碼端,通過大量圖像數(shù)據(jù)以及優(yōu)化網(wǎng)絡方式,獲得高性能的壓縮框架。
經(jīng)典的圖像壓縮如JPEG、JPEG2000通常是將變化、量化、熵編碼三個部分分別手動優(yōu)化,圖像碼率經(jīng)過量化計算后為離散系數(shù),而基于CNN端到端優(yōu)化采用梯度下降時要求函數(shù)全局可微,為此Ballé等人[15]提出基于廣義分歧歸一化的卷積神經(jīng)網(wǎng)絡圖像編碼框架,使線性卷積和非線性更靈活的轉(zhuǎn)換,這種方法將卷積層分為兩個部分,一部分負責分析圖像的緊湊表示,另一部分負責重建和逆過程,使用廣義分歧歸一化函數(shù)作為激活函數(shù),這個方法取得了可以媲美JPEG2000的編碼性能。之后Ballé等人[16]又提出一種由非線性變換與統(tǒng)一量化的圖像壓縮方法,通過CNN實現(xiàn)非線性變換,并通過之前的廣義分歧歸一化實現(xiàn)了局部增益。這也是首次將CNN與圖像壓縮相結(jié)合,給之后基于CNN的端到端圖像壓縮的可行性奠定了基礎(chǔ)。之前圖像重建工作為了提高重建圖像質(zhì)量,研究的關(guān)注點多在一些圖像先驗模型,這些模型即使提高了重建圖像的質(zhì)量但多存在時效性低的問題,限制了其實際應用價值,并且忽略了圖像壓縮時的退化信息,為了提高重建圖像的質(zhì)量,Jiang等人[17]提出基于CNN的圖像端到端壓縮框架,其結(jié)構(gòu)如圖2所示,該方法從圖像的編碼器端和解碼器端同時使用兩個卷積神經(jīng)網(wǎng)絡將編碼器與解碼器進行聯(lián)合,采用統(tǒng)一優(yōu)化方法訓練了兩個CNN,使其相互配合在編碼器端使用一個CNN用于對圖像進行緊湊表示后,在通過編碼器進行編碼,在解碼器端使用一個CNN對解碼后的圖像進行高質(zhì)量的復原,兩個網(wǎng)絡同時作用,通過卷積采樣代替?zhèn)鹘y(tǒng)圖像壓縮以圖像塊為單位的變換計算,其塊效應與JPEG相比有明顯提升。
雖然Jiang等人端到端圖像壓縮同時優(yōu)化兩個卷積神經(jīng)網(wǎng)絡,但其在編解碼前后直接連接兩個卷積神經(jīng)網(wǎng)絡的近似方法并不是最優(yōu)的。Zhao等人[18]認為這個問題最優(yōu)解的直觀想法是使用CNN來完美地替代傳統(tǒng)的梯度反向傳播編解碼器端到端的方式提高重構(gòu)圖像的編碼質(zhì)量,因此他們提出使用一個虛擬編碼器,在訓練時使用虛擬編碼器用于連接編碼端和解碼端,虛擬編碼器也為CNN,并通過虛擬編碼器使解碼端的CNN逼近最優(yōu)解,這種方式將真實圖像的有效表示信息經(jīng)過虛擬編碼器投影到用于重構(gòu)圖像的解碼網(wǎng)絡。該方法不僅得到了高質(zhì)量的重建圖像,也可以和端到端的網(wǎng)絡結(jié)構(gòu)一樣可以兼容傳統(tǒng)編碼器,也可以推廣到其他基于CNN的端到端圖像壓縮結(jié)構(gòu)中,但是整個框架存在三個CNN,經(jīng)過一次訓練難度相對較大,因此在訓練上需要對三個網(wǎng)絡進行分解訓練,但實際應用只需要兩個網(wǎng)絡。
盡管CNN對于圖像壓縮具有優(yōu)勢,但是采用基于CNN的圖像壓縮仍然具有一定的困難:首先是優(yōu)化問題,CNN通常采用端到端的模式,在傳統(tǒng)編碼器的兩端加入CNN,這兩個CNN都是需要通過訓練來達到圖像壓縮和圖像重建的目的,但是深度學習的優(yōu)化問題本身就是一個難點問題,同時讓兩端進行聯(lián)合優(yōu)化,從而得到性能良好的框架也并非易事;二是傳統(tǒng)的圖像壓縮方法往往能夠定量地對圖像壓縮,如JPEG可以對圖像進行50∶1的壓縮,但是基于CNN的圖像壓縮很少能夠?qū)D像進行固定比率的圖像壓縮;在壓縮圖像分辨率問題上,由于CNN方法大多采用對圖像進行下采樣,卷積核的感受野是有限的,如在對1 024×1 024的圖像進行壓縮時,采用的128×128的訓練框架,往往得不到很好的效果,因而要實現(xiàn)全分辨率就要深化網(wǎng)絡模型,提高框架的能力,但同時會增加網(wǎng)絡結(jié)構(gòu)的訓練難度。
圖3 RNN圖像壓縮框架圖
RNN出現(xiàn)于20世紀80年代,RNN最初因?qū)崿F(xiàn)困難并沒有被廣泛使用,之后隨著RNN結(jié)構(gòu)方面的進步和GPU性能的提升使得RNN逐漸流行起來,目前RNN在語音識別、機器翻譯等領(lǐng)域取得諸多成果。與CNN對比,RNN與CNN一樣都有參數(shù)共享的特性,不同的是CNN的參數(shù)共享是空間上的,而RNN則是時間上的,也就是序列上的,這使得RNN對于之前的序列信息有了“記憶”,同其訓練方式是通過梯度下降的方式迭代向前計算。這兩種方式一是可以提高數(shù)據(jù)的壓縮程度,二是可以通過迭代的方式來控制圖像的碼率,都可以提高圖像的壓縮性能。因此應用RNN的圖像壓縮在對全分辨率圖像壓縮和通過碼率來控制壓縮比都取得了較為不錯的成果,但值得注意的是在采用RNN時多數(shù)都需要引入LSTM[19]或者GRU[20]來解決長期依賴問題,因此在模型的訓練上也會更加的復雜。
Toderici等人[21]首次使用了卷積LSTM實現(xiàn)了可變比特率的端到端學習圖像壓縮,可以說該方法是利用RNN進行圖像壓縮具有代表性的方法,它驗證了任意的輸入圖像,在給定圖像質(zhì)量的情況下都能得到比目前最優(yōu)壓縮率更好的重建圖像質(zhì)量效果,但是這一效果限制在32×32尺寸的圖像,這說明了該方法在捕捉圖像依賴關(guān)系的不足,為了解決這一問題。Toderici等人[22]設(shè)計一種基于殘差塊的剩余編碼器和一個熵編碼器,不僅能夠捕捉圖像中補丁之間的長期依賴關(guān)系并結(jié)合兩種可能的方法來提高給定質(zhì)量的壓縮率,并且實現(xiàn)了全分辨率的圖像壓縮。該方法利用RNN梯度下降的訓練方式,提出了一種基于全分辨率的有損圖像壓縮方法。其結(jié)構(gòu)如圖3所示。該方法包括三個主要部分,分別為:Encoder編碼、Binarizer二值化、Decoder解碼。首先對輸入圖像進行編碼,然后將其轉(zhuǎn)換成二進制代碼,可以存儲或傳輸?shù)浇獯a器。編碼部分由一個CNN和三個RNN構(gòu)成,Encoder解碼器網(wǎng)絡根據(jù)接收到的二進制代碼創(chuàng)建原始輸入圖像的估計值。Binarizer二值化部分主要通過一個RNN進行,Decoder解碼部分使用卷積-循環(huán)網(wǎng)絡的結(jié)構(gòu)對信號進行迭代來恢復原圖像,在迭代的過程中權(quán)值共享,并且每次迭代都會產(chǎn)生一個二值化的比特數(shù),同時在每次迭代中,網(wǎng)絡從當前的殘差中提取新的信息,并將其與存儲在循環(huán)層的隱藏狀態(tài)中的上下文相結(jié)合,通過這些信息實現(xiàn)圖像的重建。該方法利用RNN的成功是有目共睹的,使更多人的目光轉(zhuǎn)向了圖像壓縮。在此之后Johnston等人[23]為了提高框架的壓縮性能,修改了遞歸結(jié)構(gòu)從而改善了空間擴散,使得網(wǎng)絡能夠更加高效地捕獲圖像信息;引入了一種空間自適應比特分配算法,它可以根據(jù)圖像的復雜性動態(tài)的調(diào)整每個圖像的比特率;采用了基于SSIM加權(quán)像素損失訓練[24-25],該方法可以更好地感知圖像。
基于深度學習的圖像壓縮框架多采用端到端的方式,并且大多數(shù)圖像壓縮系統(tǒng)對空間塊分別進行解碼,而不考慮與周圍塊的空間依賴性,因此Ororbia等人[26]沒有采用端到端的壓縮框架,而是關(guān)注了空間塊的相關(guān)性,引入了一種有效利用因果信息和非因果信息來改進低比特率重構(gòu)結(jié)構(gòu),更專注于系統(tǒng)的解碼器,在算法的設(shè)計上采用了非線性估計作為編碼器,將空間上像素的關(guān)聯(lián)和非關(guān)聯(lián)的相關(guān)性引入了RNN中,利用RNN的局部記憶捕捉短期的因果環(huán)境,通過RNN的記憶對圖像斑塊進行逐步改善重建,將圖像壓縮中重建圖像的行為視為一個多步重建問題,建立一個模型使其在有限數(shù)量的通道上改進其對某些目標樣本的重建效果,以逐步改善圖像重建質(zhì)量,達到在給定編碼位數(shù)的情況下提高編碼精度,并且根據(jù)不同的編碼器和量化方案,尋求最優(yōu)的非線性解碼器,從而避開如近似、量化等問題,使其可以更好地利用開發(fā)編碼器和量化操作。值得一提的是該方法可以用于任意的傳統(tǒng)編碼器中。
GAN最早由Goodfellow等人提出[14],目前在圖像生成、圖像風格遷移和視頻幀生成等領(lǐng)域獲得了很好的成績。近期在基于GAN的圖像超分辨率[27]也有了諸多成果。GAN的思想是對抗和博弈,在對抗中不斷發(fā)展,一個生成器通過輸入噪聲樣本進行生成數(shù)據(jù),一個判別器用于接收生成器生成的數(shù)據(jù)和真實的數(shù)據(jù)樣本,并且對輸入的真實數(shù)據(jù)和生成數(shù)據(jù)做出正確的判斷,通過對生成器和判別器的不斷對抗,使網(wǎng)絡架構(gòu)得到優(yōu)化。GAN根據(jù)這一特性,通過生成器的生成圖像來不斷“愚弄”判別器,使得最后得到的輸出圖像有更加清晰的紋理,更好的視覺感官效果。
GAN初期的發(fā)展由于其生成圖像類型單一,模型訓練難度大,研究人員并沒有將目光投向這一算法,之后隨著GPU運算效率的不斷增加,Rippel等人[28]提出了一篇實時自適應圖像壓縮算法,這是首次將GAN引入到圖像壓縮中,并且該算法在低碼率條件下生成的文件要比傳統(tǒng)的JPEG小2.5倍,通過GPU進行框架部署提高了實時性,該算法在率失真目標函數(shù)加入了一個多尺度對抗訓練模型,使得重建圖像與真實圖像更加接近,即使在低比特率的情況下也能產(chǎn)生更清晰的圖片,可以說該算法為基于GAN的圖像壓縮創(chuàng)建了基石;之前的基于深度學習圖像壓縮算法關(guān)注點多在重建圖像分辨率或圖像編解碼結(jié)構(gòu)的設(shè)計上,Santurkar等人研究的關(guān)注點與之前圖像壓縮算法不同,之前研究重建圖像分辨率通常是對于像素目標的優(yōu)化,而Santurkar等人[29]提出了生成壓縮模型,將合成變換訓練成模型,替代圖像重建的優(yōu)化,該方法不僅能通過GAN生成高質(zhì)量的圖像,同時也與編碼器進行了很好的結(jié)合,在編碼器中加入GAN,通過不斷優(yōu)化網(wǎng)絡結(jié)構(gòu)得到更高質(zhì)量的重建圖像。但是GAN生成圖像有著極大的不穩(wěn)定性,在生成圖像時有可能生成的圖像具有清晰的紋理,很好的視覺效果,很高的分辨率和清晰度,但與原圖對比卻可能存在明顯差異,這也就形成一種欺詐性的清晰與高分辨率。
通過GAN得到高清正確的重建圖像并非易事,GAN的訓練較為困難,在訓練中要協(xié)調(diào)好生成器和判別器的訓練程度,若判別器訓練得過于優(yōu)越那么會使生成器在訓練時發(fā)生梯度消失等問題,而判別器訓練的程度不夠時,又會導致生成器會無法生成理想的圖像。為了得到更高分辨率的生成圖像Agustsson等人[30]提出了從語義標簽映射中生成高分辨率重建圖像的算法,該算法不僅在全分辨率的前提下實現(xiàn)了超低碼率的極限壓縮,同時也實現(xiàn)了在低碼率時的高分辨率重建圖像,其訓練結(jié)構(gòu)如圖4所示,其中E和q分別表示編碼器和量化,w?則代表一個壓縮表示,G和D分別為生成器與判別器,通過D來提升G的質(zhì)量。他們分別采用了GAN、cGAN的生成圖像壓縮和具有選擇性的生成壓縮,生成壓縮用于保留圖像的整體結(jié)構(gòu),生成不同尺度的圖像結(jié)構(gòu),選擇性地生成壓縮用于從語義標簽映射中完全生成圖像的各個部分,同時保留用戶定義的具有高度細節(jié)的區(qū)域。在兩種方式的共同作用下,保證重建圖像的分辨率。
圖4 GAN壓縮網(wǎng)絡結(jié)構(gòu)
目前GAN研究發(fā)展火熱,基于GAN的圖像壓縮也有很多優(yōu)勢:一是GAN可以對全分辨率圖像進行壓縮,體現(xiàn)了該方法有較好的適用性;二是GAN能夠?qū)崿F(xiàn)極限碼率的圖像壓縮;三是盡管GAN生成的圖像可能存在問題,但是其重建圖像的分辨率和清晰度這一優(yōu)點是值得被人重視的,尤其是近幾年GAN的深入研究衍生了諸多基于GAN的模型,如:Denton等人[31]提出了Lap-GAN(Laplacian Generative Adversarial Networks)將GAN和cGAN[32]結(jié)合,并且通過圖像金字塔的方式能夠產(chǎn)生更高分辨率的圖像;Radford等人[33]將CNN與GAN結(jié)合到了一起,提出了DCGAN(Deep Convolutional GAN)的網(wǎng)絡結(jié)構(gòu)。DCGAN能有效地學習物體的特征,且在訓練過程中表現(xiàn)更加穩(wěn)定;Arjovsky等人[34]提出WGAN(Wasserstein GAN),引入了Earth Mover(EM)距離緩解了GAN在訓練時的不穩(wěn)的問題。近期GAN的發(fā)展迅猛,這些衍生模型都可以嘗試性地應用于圖像壓縮領(lǐng)域。
基于深度學習的圖像壓縮涵蓋了很多不同的算法,每種不同的算法都各有特點,CNN在提取特征方面要比傳統(tǒng)的圖像壓縮變換更好,并且應用RNN和GAN處理圖像壓縮時也經(jīng)常采用CNN進行圖像特征提取;LSTM作為RNN的模型之一,LSTM模型可以很好地處理、合并空間信息,并且各種具有卷積運算的LSTM,這都使其可能更適用于圖像壓縮;GAN在對圖像的極限壓縮和提高重建圖像質(zhì)量,以及對圖像數(shù)據(jù)實時性的壓縮等方面表現(xiàn)良好。由于不同算法目的和評估的側(cè)重性不同、使用數(shù)據(jù)集尺寸和類型也有所不同,文中所述所有算法多數(shù)都會給出其重建圖像與JPEG或BPG的RD對比曲線,因此本文根據(jù)其文獻中與JPEG或BPG圖像的主觀對比,以及壓縮數(shù)據(jù)后對比,將對較為經(jīng)典的算法進行對比與分析,表1為基于深度學習的圖像壓縮方法比較。
圖像數(shù)據(jù)集的種類與對圖像進行評價的標準有很多,這一部分主要是對已經(jīng)在基于深度學習技術(shù)的圖像壓縮方法中應用到的圖像數(shù)據(jù)集和標準進行總結(jié)。
使用深度學習的網(wǎng)絡架構(gòu)完成圖像壓縮訓練時需要大量圖像數(shù)據(jù)支撐,選擇和采用正確圖像數(shù)據(jù)集對網(wǎng)絡結(jié)構(gòu)訓練的作用是至關(guān)重要的。表2主要介紹在基于深度學習的圖像壓縮算法應用過的數(shù)據(jù)集。
表2介紹了9種數(shù)據(jù)集,在具體的使用中需要根據(jù)研究人員的實驗目的和實驗方法來選擇合理的數(shù)據(jù)集應用。具體來講:需要對實驗的可行性進行分析時,可選用Cifar-10或LSUN中的一個場景,這類數(shù)據(jù)集數(shù)據(jù)量小,包含內(nèi)容適中,訓練速度快,可以滿足實驗設(shè)計的可行性;當實驗目的定位需求在較高的重建圖像分辨率時,可以采用DIV2K、Flickr這類數(shù)據(jù)集;當實驗設(shè)計網(wǎng)絡結(jié)構(gòu)較深,需要大量且類型多樣化的數(shù)據(jù)集時,可以采用ImageNet、Open Images V4這類數(shù)據(jù)集;在實驗設(shè)計中需要一些條件特征來進行約束時,如在圖像壓縮使用cGAN時使用圖像的語義信息來對生成器進行約束,就可以選擇Cityscapes、COCO、LSUN這類帶有語義注釋的圖像數(shù)據(jù)集。
表1 基于深度學習的圖像壓縮方法比較
表2 數(shù)據(jù)集介紹
用于測試的重建圖像質(zhì)量的數(shù)據(jù)集主要有以下Kodak PhotoCD[47]、CLIC、RAISE-1k、Tecnick[48]。這些數(shù)據(jù)集都有很高的分辨率,如:Kodak PhotoCD數(shù)據(jù)集的圖像分辨率為762×512,且其像素約達40萬;CLIC作為一個專門為圖像壓縮發(fā)起的挑戰(zhàn)賽,其提供的圖像照片的分辨率更高,手機圖片的分辨率為1 913×1 361,專業(yè)相機圖片的分辨率為1 803×1 175;Tecnick數(shù)據(jù)集的像素約達140萬。
圖像壓縮模型大多數(shù)采用端到端的形式,將深度學習技術(shù)應用到圖像壓縮中,當然也有采用自己獨立的編碼方式,因此圖像評價上,多使用被壓縮后的重建圖像進行圖像壓縮性能的評估。
均方誤差(Mean Square Error,MSE)[49],是計算兩幅相同尺寸圖像像素之間的方差平方和,如式(1)所示。其中M和N分別表示圖像的長與寬,I(x ,y)和I′(x ,y)分別表示待評價圖像與原始圖像,I(x ,y)表示在(x ,y)位置的像素值。MSE是最簡單的圖像評價方式,但是這只能說明兩幅圖像的差異,它不會考慮到圖像高頻像素和低頻像素分量,而圖像壓縮就是需要能更大程度上保留和恢復低頻像素,因此該方法不為常用。
峰值信噪比(Peak Signal to Noise Ratio,PSNR)[50],是兩個圖像峰值誤差的度量,如公式(2)所示,R表示輸入圖像的最大值。PSNR是全參考圖像評價指標,是一種客觀的評價指標,通常來講PSNR大于40 dB說明圖像質(zhì)量接近原圖,在30 dB與40 dB之間時圖像存在失真,20 dB到30 dB說明圖像質(zhì)量不好,低于20 dB時說明圖像質(zhì)量差。PSRN與MSE通常只針對圖像對應像素點間的誤差,并不會考慮到人的視覺特性,因此往往存在出現(xiàn)評價結(jié)果與人的主觀感受不一致的情況。
結(jié)構(gòu)相似性(Structural Similarity Index,SSIM)[51],是用于判斷兩幅圖像相似性的指標,SSIM可用于測量經(jīng)過圖像壓縮后的圖像質(zhì)量下降,如公式(3)所示,x和y分別代表兩幅圖像,μx、μy代表兩幅圖像的平均像素值,σxy是圖像x和圖像 y的協(xié)方差,σ2x、σ2y分別代表圖像x和圖像y的方差。SSIM在進行評價時考慮到了圖像中的可見結(jié)構(gòu),可以很好地評估圖像壓縮前與圖像壓縮后的圖像質(zhì)量。
多層結(jié)構(gòu)相似性(Multi-Scale,MS-SSIM)[52],該方法在融合圖像分辨率和觀測條件變化方面比單尺度方法具有更大的靈活性,該方法通過迭代的方式對圖像的各個尺度上進行SSIM,如公式(4)所示,其中l(wèi)M(X ,Y)表示在M尺度下亮度比較,j表示在第 j尺度下進行比較,cj(X ,Y )表示對比度比較、sj(X ,Y )表示結(jié)構(gòu)比較,將不同尺度下的測量結(jié)構(gòu)結(jié)合起來進行SSIM評價作為最后的評價結(jié)果。對于指數(shù)αM、βj和γj可以取經(jīng)過實驗得出的經(jīng)驗值即可,該評價標準已經(jīng)被證明比SSIM更貼近人的主觀視覺。
MSE和PSNR是最簡單和最廣泛使用的全參考質(zhì)量度量,其通過平均失真和參考圖像像素的平方強度差異以及峰值信噪比的相關(guān)數(shù)量來計算的。這些方法計算簡單,物理意義明確,但是其評價存在客觀性。SSIM和MS-SSIM都為主觀的評價方式,這種評價方式最大的優(yōu)點就是更加貼近人的主觀視覺,因此在圖像壓縮的實驗中,研究人員多采用客觀評價和主觀評價結(jié)合來對重建圖像進行評估,即采用PSNR也會使用MS-SSIM或SSIM。除了在采取這兩種措施的同時,也有研究人會讓一部分人來觀察重建圖像,通過觀察人員給出的結(jié)論進行統(tǒng)計來對圖像進行評價。
進入信息時代后,人們對數(shù)字圖像的質(zhì)量要求越發(fā)提高,數(shù)字圖像也向著更清晰、更高分辨率的方向發(fā)展[53]。隨著大數(shù)據(jù)時代的到來,圖像數(shù)據(jù)量的增長速度遠超存儲設(shè)備和傳輸技術(shù)的發(fā)展速度,只增加存儲容量和網(wǎng)絡帶寬并不是解決問題的根本方法,尋找更加合理的圖片壓縮算法是解決這一問題的有效辦法之一。深度學習能夠有效地提取圖像的特征信息,不僅能清晰地分辨出圖像的重要信息與冗余信息,同時也可以對特征信息進行很好地表達,還可以對圖像信息進行高分辨率地重建,使圖像在消除冗余信息的同時保持更清晰的分辨率和更好的視覺效果。因此深度學習技術(shù)將在圖像壓縮領(lǐng)域得到很好的發(fā)展。
圖像壓縮的目的不僅僅是追求更小單位的數(shù)據(jù)量,在圖像壓縮的同時也追求更好的壓縮比和更高的重建圖像清晰度。下面根據(jù)深度學習的特點和圖像壓縮領(lǐng)域的優(yōu)勢對其未來發(fā)展趨勢進行總結(jié)與討論:
(1)深度學習對圖像處理任務本身就有著很強的能力,盡管目前有了諸多成果,但如何使用深度學習方法得到高層次緊湊表達;如何通過深度學習的預測能力、記憶能力對圖像上下文關(guān)系信息進行更為高效編碼;如何利用GAN等方式圖像的生成能力,生成具有更為真實圖像紋理信息的重建圖像;如何設(shè)計更好的網(wǎng)絡模型結(jié)構(gòu)以及模型參數(shù)的調(diào)優(yōu)方式來提高圖像壓縮的泛化性;圖像壓縮初期提取的高層次緊湊信息能否應用于機器視覺等其他應用,這些問題都是基于深度學習的圖像壓縮需要不斷深入研究的熱點問題。
(2)由于圖像類型的多樣化,不同的圖像有各自的特征,如海洋圖像大部分以藍色為基調(diào)、CT圖像需要對病理區(qū)域更加清晰、多光譜圖像數(shù)據(jù)量大等特征。傳統(tǒng)的圖像壓縮算法不會適用所有的圖像類型,深度學習技術(shù)可以根據(jù)不同圖像的特征和需求設(shè)計針對性圖像壓縮,如孔繁鏘等人[54]提出基于CNN的多光譜圖像壓縮方法,就在保證圖像信息的情況下進一步提升了壓縮性能。因此根據(jù)特殊圖像的需求,使用深度學習進行針對性圖像壓縮也是研究方向之一。
(3)圖像編碼技術(shù)需要實時性[55],如今基于深度學習的圖像壓縮框架多為深度神經(jīng)網(wǎng)絡,盡管有著很好的重建圖像分辨率,但難免對實時性和高效有所保證,在面對海量流數(shù)據(jù)傳輸時也就失去實用性的意義,因此在研究中保障重建圖像質(zhì)量和高壓縮比的同時,如何使用低復雜度的深度學習方法,提高算法實時性,尋求高性能、高時效性算法也將是該領(lǐng)域的熱點研究問題之一。
(4)基于深度學習的圖像壓縮對于重建圖像已經(jīng)有了很高的還原度,但是目前的圖像壓縮評價指標多為PSNR和SSIM或MS-SSIM,但是這些指標并不能十分全面精準地衡量重建圖像質(zhì)量,同時完全采用人的視覺來進行主觀評價將耗費很大的人力與時間,但在現(xiàn)實應用中,圖像更多是被人所觀看、應用,圖像質(zhì)量往往由人來進行評估。因此建立一個更為精準的圖像評價指標也將是基于深度學習技術(shù)的圖像壓縮領(lǐng)域一個熱點研究。
圖像壓縮領(lǐng)域經(jīng)過了幾十年的不斷發(fā)展,雖然已經(jīng)有了十分成熟的算法與標準,但面對5G時代的海量數(shù)據(jù)難免捉襟見肘,隨著深度學習技術(shù)的突破,基于深度學習的圖像壓縮應用不斷出現(xiàn),深度學習大概率成為圖像壓縮領(lǐng)域未來發(fā)展的助推器。本文通過對傳統(tǒng)圖像壓縮算法的簡述,分析了傳統(tǒng)方法目前存在的問題以及深度學習可以在傳統(tǒng)方法上所作的提升。根據(jù)不同的深度學習網(wǎng)絡結(jié)構(gòu),分別對近幾年有代表性文獻進行了介紹與對比,分析了不同深度學習方法應用于圖像壓縮領(lǐng)域的優(yōu)點與不足,最后依據(jù)深度學習的算法特點、圖像壓縮的實時性需要、圖像壓縮的評價指標對基于深度學習的圖像壓縮研究內(nèi)容進行了討論與展望。