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