深度學(xué)習(xí)再掀新篇菠发,最新圖像壓縮來襲

近年來王滤,深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域已經(jīng)占據(jù)主導(dǎo)地位,不論是在圖像識別還是超分辨重現(xiàn)上滓鸠,深度學(xué)習(xí)已成為圖片研究的重要技術(shù)雁乡;現(xiàn)在深度學(xué)習(xí)技術(shù)已進(jìn)入圖片壓縮領(lǐng)域。以圖鴨最新研發(fā)的圖片壓縮——Tiny Network Graphics(TNG)為例糜俗,其通過深度學(xué)習(xí)卷積網(wǎng)絡(luò)(CNN)的編碼方式踱稍,可以在保持圖片的質(zhì)量下,盡可能降低圖片的大小悠抹,使用戶在帶寬受限的網(wǎng)絡(luò)情況下珠月,仍然可以看到高清的圖像;同時(shí)幫助圖片類企業(yè)節(jié)約大量的帶寬成本楔敌,具有較強(qiáng)的商業(yè)應(yīng)用前景啤挎。

本文將和大家分享如何使用深度學(xué)習(xí)技術(shù)設(shè)計(jì)圖像壓縮算法。


說到圖像壓縮算法卵凑,目前市面上影響力比較大的圖片壓縮技術(shù)是WebP和BPG庆聘。


WebP:谷歌在2010年推出的一款可以同時(shí)提供有損壓縮和無損壓縮的圖片文件格式,其以VP8編碼為內(nèi)核勺卢,在2011年11月開始可以支持無損和透明色功能伙判。目前facebook、Ebay等網(wǎng)站都已采用此圖片格式黑忱。

BPG:是知名程序員宴抚、ffmpeg 和QEMU等項(xiàng)目作者Fabrice Bellard推出的圖像格式,它以HEVC編碼為內(nèi)核甫煞,在相同體積下菇曲,BPG文件大小只有JPEG的一半。另外BPG還支持8位和16位通道等等抚吠。盡管BPG有很好的壓縮效果羊娃,但是HEVC的專利費(fèi)很高,所以目前的市場使用比較少埃跷。


就壓縮效果來說蕊玷,BPG更高于WebP,但是BPG采用的HEVC內(nèi)核所帶來的專利費(fèi)弥雹,導(dǎo)致其無法在市場進(jìn)行大范圍使用垃帅。采用了深度學(xué)習(xí)算法的TNG與 JPEG 相比,壓縮率提升了 122%剪勿;與 WebP 相比贸诚,壓縮率提高了 30%。而且相比 BPG/HEIF 等圖片格式厕吉,TNG 采用了 CNN 技術(shù)可以避免高昂的專利費(fèi)用酱固,更利于商業(yè)化應(yīng)用。


如何用深度學(xué)習(xí)技術(shù)設(shè)計(jì)圖片壓縮算法

通過深度學(xué)習(xí)技術(shù)設(shè)計(jì)壓縮算法的目的之一是設(shè)計(jì)一個(gè)比目前商用圖片壓縮更優(yōu)的壓縮算法头朱,同時(shí)借助于深度學(xué)習(xí)技術(shù)還可以設(shè)計(jì)更簡潔的端到端算法运悲。

在圖片、視頻壓縮領(lǐng)域项钮,主要用到的深度學(xué)習(xí)技術(shù)就是卷積神經(jīng)網(wǎng)絡(luò)(CNN)班眯。如圖1所顯示,像搭積木一樣烁巫,一個(gè)卷積神經(jīng)網(wǎng)絡(luò)由卷積署隘、池化、非線性函數(shù)亚隙、歸一化層等模塊組成磁餐。最終的輸出根據(jù)應(yīng)用而定,如在人臉識別領(lǐng)域阿弃,我們可以用它來提取一串?dāng)?shù)字(專業(yè)術(shù)語稱為特征)來表示一幅人臉圖片诊霹,然后通過比較特征的異同進(jìn)行人臉識別。


圖1 卷積神經(jīng)網(wǎng)絡(luò)示意圖 (來源http://blog.csdn.net/hjimce/article/details/47323463)

用深度學(xué)習(xí)設(shè)計(jì)的圖片壓縮完整框架包括CNN編碼器恤浪、量化畅哑、反量化、CNN解碼器水由、熵編碼荠呐、碼字估計(jì)、碼率-失真優(yōu)化等幾個(gè)模塊砂客。編碼器的作用是將圖片轉(zhuǎn)換為壓縮特征泥张,解碼器就是從壓縮特征恢復(fù)出原始圖片。其中編碼器和解碼器鞠值,可以用卷積媚创、池化、非線性等模塊進(jìn)行設(shè)計(jì)和搭建彤恶。

(圖4 用深度學(xué)習(xí)進(jìn)行圖片壓縮示意圖)

如何評判壓縮算法

在深入技術(shù)細(xì)節(jié)前钞钙,我們先來了解一下如何評判壓縮算法鳄橘。評判一個(gè)壓縮算法好壞的重要指標(biāo)有三個(gè):PSNR(Peak Signal to Noise Ratio)、BPP(bit per pixel)和MS-SSIM(multi-scaleSSIM index)芒炼。我們知道瘫怜,任何數(shù)據(jù)在計(jì)算機(jī)內(nèi)都是以比特形式存儲,所需比特?cái)?shù)越多則占據(jù)的存儲空間越大本刽。PSNR用來評估解碼后圖像恢復(fù)質(zhì)量鲸湃,BPP用于表示圖像中每個(gè)像素所占據(jù)的比特?cái)?shù),MS-SSIM值用來衡量圖片的主觀質(zhì)量子寓,簡單來說在同等的Rate/BPP下PSNR更高暗挑,恢復(fù)質(zhì)量越好,MSSIM更高斜友,主觀感受越好炸裆。


舉個(gè)例子,假設(shè)長寬為768*512的圖片大小為1M蝙寨,利用深度學(xué)習(xí)技術(shù)對它編碼晒衩,通過編碼網(wǎng)絡(luò)后產(chǎn)生包括96*64*192個(gè)數(shù)據(jù)單元的壓縮特征數(shù)據(jù),如果表示每個(gè)數(shù)據(jù)單元平均需要消耗1個(gè)比特墙歪,則編碼整張圖需要96*64*192個(gè)比特听系。經(jīng)過壓縮后,編碼每個(gè)像素需要的比特?cái)?shù)為(96*64*192)/(768*512)=3虹菲,所以BPP值為3bit/pixel靠胜,壓縮比為24:3=8:1。這意味著一張1M的圖毕源,通過壓縮后只需要消耗0.125M的空間浪漠,換句話說,之前只能放1張照片的空間霎褐,現(xiàn)在可以放8張址愿。


如何用深度學(xué)習(xí)做壓縮

談到如何用深度學(xué)習(xí)做壓縮,還是用剛才那個(gè)例子冻璃。將一張大小768*512的三通道圖片送入編碼網(wǎng)絡(luò)响谓,進(jìn)行前向處理后,會得到占據(jù)96*64*192個(gè)數(shù)據(jù)單元的壓縮特征省艳。有計(jì)算機(jī)基礎(chǔ)的讀者可能會想到娘纷,這個(gè)數(shù)據(jù)單元中可放一個(gè)浮點(diǎn)數(shù)、整形數(shù)跋炕、或者是二進(jìn)制數(shù)赖晶。那到底應(yīng)該放入什么類型的數(shù)據(jù)?從圖像恢復(fù)角度和神經(jīng)網(wǎng)絡(luò)原理來講辐烂,如果壓縮特征數(shù)據(jù)都是浮點(diǎn)數(shù)遏插,恢復(fù)圖像質(zhì)量是最高的捂贿。但一個(gè)浮點(diǎn)數(shù)占據(jù)32個(gè)比特位,按之前講的比特?cái)?shù)計(jì)算公式為(96*64*192*32)/(768*512)=96涩堤,壓縮后反而每個(gè)像素占據(jù)比特從24變到96眷蜓,非但沒有壓縮,反而增加了胎围,這是一個(gè)糟糕的結(jié)果,很顯然浮點(diǎn)數(shù)不是好的選擇德召。


所以為了設(shè)計(jì)靠譜的算法白魂,我們使用一種稱為量化的技術(shù),它的目的是將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)或二進(jìn)制數(shù)上岗,最簡單的操作是去掉浮點(diǎn)數(shù)后面的小數(shù)福荸,浮點(diǎn)數(shù)變成整數(shù)后只占據(jù)8比特,則表示每個(gè)像素要占據(jù)24個(gè)比特位肴掷。與之對應(yīng)敬锐,在解碼端,可以使用反量化技術(shù)將變換后的特征數(shù)據(jù)恢復(fù)成浮點(diǎn)數(shù)呆瞻,如給整數(shù)加上一個(gè)隨機(jī)小數(shù)台夺,這樣可以一定程度上降低量化對神經(jīng)網(wǎng)絡(luò)精度的影響,從而提高恢復(fù)圖像的質(zhì)量痴脾。


即使壓縮特征中每個(gè)數(shù)據(jù)占據(jù)1個(gè)比特位颤介,可是 8:1的壓縮比在我們看來并不是一個(gè)很理想的結(jié)果。那如何進(jìn)一步優(yōu)化算法赞赖?再看下BPP的計(jì)算公式滚朵。假設(shè)每個(gè)壓縮特征數(shù)據(jù)單元占據(jù)1個(gè)比特,則公式可寫成:(96*64*192*1)/(768*512)=3前域,計(jì)算結(jié)果是3 bit/pixel辕近,從壓縮的目的來看,BPP越小越好匿垄。在這個(gè)公式中移宅,分母由圖像決定,可以調(diào)整的部分在分子年堆,分子中96吞杭、64、192這三個(gè)數(shù)字與網(wǎng)絡(luò)結(jié)構(gòu)相關(guān)变丧。很顯然芽狗,當(dāng)我們設(shè)計(jì)出更優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),這三個(gè)數(shù)字就會變小痒蓬。


那1與哪些模塊相關(guān)童擎?1表示每個(gè)壓縮特征數(shù)據(jù)單元平均占據(jù)1個(gè)比特位滴劲,量化會影響這個(gè)數(shù)字,但它不是唯一的影響因素顾复,它還與碼率控制和熵編碼有關(guān)班挖。碼率控制的目的是在保證圖像恢復(fù)質(zhì)量的前提下,讓壓縮特征數(shù)據(jù)單元中的數(shù)據(jù)分布盡可能集中芯砸、出現(xiàn)數(shù)值范圍盡可能小萧芙,這樣我們就可以通過熵編碼技術(shù)來進(jìn)一步降低1這個(gè)數(shù)值,圖像壓縮率會進(jìn)一步提升假丧。


用深度學(xué)習(xí)做視頻壓縮双揪,可以看作是在深度學(xué)習(xí)圖片壓縮基礎(chǔ)上的擴(kuò)展,可結(jié)合視頻序列幀間的光流等時(shí)空信息包帚,在單張壓縮的基礎(chǔ)上渔期,進(jìn)一步降低碼率


深度學(xué)習(xí)圖片壓縮的優(yōu)勢

圖鴨科技通過深度學(xué)習(xí)技術(shù)研發(fā)的圖片壓縮TNG在內(nèi)部的測試上已經(jīng)超過webp與BPG渴邦,下圖是在kodak24標(biāo)準(zhǔn)數(shù)據(jù)集上測評結(jié)果,分別是PSNR值與MS-SSIM值疯趟。

圖 5 圖6在kodak24標(biāo)準(zhǔn)數(shù)據(jù)集上測評結(jié)果,上圖為PSNR結(jié)果谋梭,下圖為MS-SSIM的結(jié)果


熟悉圖像壓縮的朋友可以直接通過PSNR和MS-SSIM值看出:TNG的PSNR值與MS-SSIM值明顯高于WebP信峻、jpeg2000和jpeg;且TNG在高碼字的情況下PSNR值高于BPG章蚣,且其MS-SSIM值基本一致高于BPG站欺。


在低碼字情況下TNG與WebP壓縮效果對比


TNG
Webp? ? ? ?低碼字情況下TNG與WebP壓縮效果對比

相比TNG,WebP盡管保留了更多的細(xì)節(jié)纤垂,但是其失真更多矾策,不利于后期恢復(fù)。而TNG采用了保邊濾波的方法峭沦,讓其失真更少贾虽,整體圖像效果優(yōu)于WebP


在高碼字情況下TNG與BPG對比

TNG
BPG? ??圖9圖10 高碼字情況下TNG與BPG壓縮效果對比吼鱼,上圖TNG下圖BPG

上面兩幅圖是高碼字的情況蓬豁,在實(shí)際的測試中,BPG會出現(xiàn)上圖所示的顏色失真情況菇肃;而反觀TNG其基本不會出現(xiàn)這類的失真狀況地粪。

這是因?yàn)?b>BPG在編碼壓縮時(shí)盡管圖片時(shí),其YUV通道是分開進(jìn)行編解碼琐谤,產(chǎn)生了一些色差蟆技。

而TNG在編碼時(shí)考慮到了整體圖片的情況,采用了同一編碼,也就避免了上述的情況质礼。


在低碼字的情況下TNG與BPG的對比


TNG
BPG? 圖11圖12低碼字情況下TNG與BPG壓縮效果對比旺聚,上圖TNG下圖BPG

在低碼字的情況下,BPG壓縮圖片中出現(xiàn)了偽輪廓和塊效應(yīng)等問題眶蕉,整個(gè)圖片的連續(xù)性比較差砰粹;而TNG的圖片連續(xù)性和物體的輪廓保持的更好。

總結(jié)

總體而言造挽,借助于深度學(xué)習(xí)設(shè)計(jì)圖像壓縮算法是一項(xiàng)非常具有前景但也非常具有挑戰(zhàn)性的技術(shù)碱璃。目前,其已經(jīng)在人臉識別等領(lǐng)域證明了它的強(qiáng)大能力饭入,未來圖像壓縮領(lǐng)域的深度學(xué)習(xí)技術(shù)介入可以使大家在全面高清屏的時(shí)代有更優(yōu)質(zhì)的視覺體驗(yàn)厘贼,同時(shí)在游戲、空間圖像傳感等領(lǐng)域圣拄,深度學(xué)習(xí)圖像壓縮算法的應(yīng)用也將帶來更高分辨率,更小存儲空間毁欣,更少帶寬成本庇谆。


附上TNG的測試鏈接TNG測試

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市凭疮,隨后出現(xiàn)的幾起案子饭耳,更是在濱河造成了極大的恐慌,老刑警劉巖执解,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寞肖,死亡現(xiàn)場離奇詭異,居然都是意外死亡衰腌,警方通過查閱死者的電腦和手機(jī)新蟆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來右蕊,“玉大人琼稻,你說我怎么就攤上這事∪那簦” “怎么了帕翻?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長萝风。 經(jīng)常有香客問我嘀掸,道長,這世上最難降的妖魔是什么规惰? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任睬塌,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘衫仑。我一直安慰自己梨与,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布文狱。 她就那樣靜靜地躺著粥鞋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞄崇。 梳的紋絲不亂的頭發(fā)上呻粹,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音苏研,去河邊找鬼等浊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛摹蘑,可吹牛的內(nèi)容都是我干的筹燕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼衅鹿,長吁一口氣:“原來是場噩夢啊……” “哼撒踪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起大渤,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤制妄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后泵三,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耕捞,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年烫幕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俺抽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纬霞,死狀恐怖凌埂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诗芜,我是刑警寧澤瞳抓,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站伏恐,受9級特大地震影響孩哑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜翠桦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一横蜒、第九天 我趴在偏房一處隱蔽的房頂上張望胳蛮。 院中可真熱鬧,春花似錦丛晌、人聲如沸仅炊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抚垄。三九已至,卻和暖如春谋逻,著一層夾襖步出監(jiān)牢的瞬間呆馁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工毁兆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浙滤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓气堕,卻偏偏與公主長得像件舵,于是被迫代替她去往敵國和親范嘱。 傳聞我的和親對象是個(gè)殘疾皇子某抓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容