日復(fù)一日的人像臨摹練習(xí)使得畫(huà)家能夠僅憑幾個(gè)關(guān)鍵特征畫(huà)出完整的人臉。同樣地,我們希望機(jī)器能夠通過(guò)低清圖像有限的圖像信息,推斷出圖像對(duì)應(yīng)的高清細(xì)節(jié),這就需要算法能夠像畫(huà)家一樣“理解”圖像內(nèi)容。至此,傳統(tǒng)的規(guī)則算法不堪重負(fù),新興的深度學(xué)習(xí)照耀著圖像超清化的星空。
圖1. 最新的Pixel遞歸網(wǎng)絡(luò)在圖像超清化上的應(yīng)用。左圖為低清圖像,右圖為其對(duì)應(yīng)的高清圖像,中間為算法生成結(jié)果。這是4倍超清問(wèn)題,即將邊長(zhǎng)擴(kuò)大為原來(lái)的4倍。
得益于硬件的迅猛發(fā)展,短短幾年間,手機(jī)已更新了數(shù)代,老手機(jī)拍下的照片在大分辨率的屏幕上變得模糊起來(lái)。同樣地,圖像分辨率的提升使得網(wǎng)絡(luò)帶寬的壓力驟增。如此,圖像超清化算法就有了用武之地。
對(duì)于存放多年的老照片,我們使用超清算法令其細(xì)節(jié)栩栩如生;面對(duì)網(wǎng)絡(luò)傳輸?shù)膸拤毫Γ覀兿葘D像壓縮傳輸,再用超清化算法復(fù)原,這樣可以大大減少傳輸數(shù)據(jù)量。
深度學(xué)習(xí)的出現(xiàn)使得算法對(duì)圖像的語(yǔ)義級(jí)操作成為可能。本文即是介紹深度學(xué)習(xí)技術(shù)在圖像超清化問(wèn)題上的最新研究進(jìn)展。
深度學(xué)習(xí)最早興起于圖像,其主要處理圖像的技術(shù)是卷積神經(jīng)網(wǎng)絡(luò),關(guān)于卷積神經(jīng)網(wǎng)絡(luò)的起源,業(yè)界公認(rèn)是Alex在2012年的ImageNet比賽中的煌煌表現(xiàn)。雖方五年,卻已是老生常談。因此卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)細(xì)節(jié)本文不再贅述。在下文中,使用CNN(Convolutional Neural Network)來(lái)指代卷積神經(jīng)網(wǎng)絡(luò)。
圖2. 首個(gè)應(yīng)用于圖像超清問(wèn)題的CNN網(wǎng)絡(luò)結(jié)構(gòu).輸入為低清圖像,輸出為高清圖像.該結(jié)構(gòu)分為三個(gè)步驟:低清圖像的特征抽取、低清特征到高清特征的映射、高清圖像的重建。
圖像超清問(wèn)題的特點(diǎn)在于,低清圖像和高清圖像中很大部分的信息是共享的,基于這個(gè)前提,在CNN出現(xiàn)之前,業(yè)界的解決方案是使用一些特定的方法,如PCA、Sparse Coding等將低分辨率和高分辨率圖像變?yōu)樘卣鞅硎荆缓髮⑻卣鞅硎咀鲇成洹?/div>
基于傳統(tǒng)的方法結(jié)構(gòu),CNN也將模型劃分為三個(gè)部分,即特征抽取、非線(xiàn)性映射和特征重建。由于CNN的特性,三個(gè)部分的操作均可使用卷積完成。因而,雖然針對(duì)模型結(jié)構(gòu)的解釋與傳統(tǒng)方法類(lèi)似,但CNN卻是可以同時(shí)聯(lián)合訓(xùn)練的統(tǒng)一體,在數(shù)學(xué)上擁有更加簡(jiǎn)單的表達(dá)。
不僅在模型解釋上可以看到傳統(tǒng)方法的影子,在具體的操作上也可以看到。在上述模型中,需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,抽取出很多patch,這些patch可能互有重疊,將這些Patch取合集便是整張圖像。上述的CNN結(jié)構(gòu)是被應(yīng)用在這些Patch而不是整張圖像上,得到所有圖像的patch后,將這些patch組合起來(lái)得到最后的高清圖像,重疊部分取均值。
更深更快更準(zhǔn)的CNN
圖3. 基于殘差的深度CNN結(jié)構(gòu)。該結(jié)構(gòu)使用殘差連接將低清圖像與CNN的輸出相加得到高清圖像。即僅用CNN結(jié)構(gòu)學(xué)習(xí)低清圖像中缺乏的高清細(xì)節(jié)部分。
圖2中的方法雖然效果遠(yuǎn)高于傳統(tǒng)方法,但是卻有若干問(wèn)題:
-
訓(xùn)練層數(shù)少,沒(méi)有足夠的視野域;
-
訓(xùn)練太慢,導(dǎo)致沒(méi)有在深層網(wǎng)絡(luò)上得到好的效果;
針對(duì)上述問(wèn)題,圖3算法提出了采用更深的網(wǎng)絡(luò)模型。并用三種技術(shù)解決了圖2算法的問(wèn)題。
第一種技術(shù)是殘差學(xué)習(xí),CNN是端到端的學(xué)習(xí),如果像圖2方法那樣直接學(xué)習(xí),那么CNN需要保存圖像的所有信息,需要在恢復(fù)高清細(xì)節(jié)的同時(shí)記住所有的低分辨率圖像的信息。如此,網(wǎng)絡(luò)中的每一層都需要存儲(chǔ)所有的圖像信息,這就導(dǎo)致了信息過(guò)載,使得網(wǎng)絡(luò)對(duì)梯度十分敏感,容易造成梯度消失或梯度爆炸等現(xiàn)象。而圖像超清問(wèn)題中,CNN的輸入圖像和輸出圖像中的信息很大一部分是共享的。殘差學(xué)習(xí)是只針對(duì)圖像高清細(xì)節(jié)信息進(jìn)行學(xué)習(xí)的算法。如上圖所示,CNN的輸出加上原始的低分辨率圖像得到高分辨率圖像,即CNN學(xué)習(xí)到的是高分辨率圖像和低分辨率圖像的差。如此,CNN承載的信息量小,更容易收斂的同時(shí)還可以達(dá)到比非殘差網(wǎng)絡(luò)更好的效果。
高清圖像之所以能夠和低清圖像做加減法,是因?yàn),在?shù)據(jù)預(yù)處理時(shí),將低清圖像使用插值法縮放到與高清圖像同等大小。于是雖然圖像被稱(chēng)之為低清,但其實(shí)圖像大小與高清圖像是一致的。
第二種技術(shù)是高學(xué)習(xí)率,在CNN中設(shè)置高學(xué)習(xí)率通常會(huì)導(dǎo)致梯度爆炸,因而在使用高學(xué)習(xí)率的同時(shí)還使用了自適應(yīng)梯度截?cái)。截(cái)鄥^(qū)間為[-θ/γ, θ/γ],其中γ為當(dāng)前學(xué)習(xí)率,θ是常數(shù)。
第三種技術(shù)是數(shù)據(jù)混合,最理想化的算法是為每一種倍數(shù)分別訓(xùn)練一個(gè)模型,但這樣極為消耗資源。因而,同之前的算法不同,本技術(shù)將不同倍數(shù)的數(shù)據(jù)集混合在一起訓(xùn)練得到一個(gè)模型,從而支持多種倍數(shù)的高清化。
感知損失
在此之前,使用CNN來(lái)解決高清問(wèn)題時(shí),對(duì)圖像高清化的評(píng)價(jià)方式是將CNN生成模型產(chǎn)生的圖像和實(shí)際圖像以像素為單位計(jì)算損失函數(shù)(一般為歐式距離)。此損失函數(shù)得到的模型捕捉到的只是像素級(jí)別的規(guī)律,其泛化能力相對(duì)較弱。
而感知損失,則是指將CNN生成模型和實(shí)際圖像都輸入到某個(gè)訓(xùn)練好的網(wǎng)絡(luò)中,得到這兩張圖像在該訓(xùn)練好的網(wǎng)絡(luò)上某幾層的激活值,在激活值上計(jì)算損失函數(shù)。
由于CNN能夠提取高級(jí)特征,那么基于感知損失的模型能夠?qū)W習(xí)到更魯棒更令人信服的結(jié)果。
圖4. 基于感知損失的圖像風(fēng)格轉(zhuǎn)換網(wǎng)絡(luò)。該網(wǎng)絡(luò)也可用于圖像超清問(wèn)題。左側(cè)是一個(gè)待訓(xùn)練的轉(zhuǎn)換網(wǎng)絡(luò),用于對(duì)圖像進(jìn)行操作;右側(cè)是一個(gè)已訓(xùn)練好的網(wǎng)絡(luò),將使用其中的幾層計(jì)算損失。
圖4即為感知損失網(wǎng)絡(luò),該網(wǎng)絡(luò)本是用于快速圖像風(fēng)格轉(zhuǎn)換。在這個(gè)結(jié)構(gòu)中,需要訓(xùn)練左側(cè)的Transform網(wǎng)絡(luò)來(lái)生成圖像,將生成的圖像Y和內(nèi)容圖像與風(fēng)格圖像共同輸入進(jìn)右側(cè)已經(jīng)訓(xùn)練好的VGG網(wǎng)絡(luò)中得到損失值。如果去掉風(fēng)格圖像,將內(nèi)容圖像變?yōu)楦咔鍒D像,將輸入改為低清圖像,那么這個(gè)網(wǎng)絡(luò)就可以用于解決圖像超清問(wèn)題了。
對(duì)抗神經(jīng)網(wǎng)絡(luò)(GAN)
圖5. 對(duì)抗訓(xùn)練的生成網(wǎng)絡(luò)G和判別網(wǎng)絡(luò)結(jié)構(gòu)D。上半部分是生成網(wǎng)絡(luò)G,層次很深且使用了residual block和skip-connection結(jié)構(gòu);下半部分是判別網(wǎng)絡(luò)D。
對(duì)抗神經(jīng)網(wǎng)絡(luò)稱(chēng)得上是近期機(jī)器學(xué)習(xí)領(lǐng)域最大的變革成果。其主要思想是訓(xùn)練兩個(gè)模型G和D。G是生成網(wǎng)絡(luò)而D是分類(lèi)網(wǎng)絡(luò),G和D都用D的分類(lèi)準(zhǔn)確率來(lái)進(jìn)行訓(xùn)練。G用于某種生成任務(wù),比如圖像超清化或圖像修復(fù)等。G生成圖像后,將生成圖像和真實(shí)圖像放到D中進(jìn)行分類(lèi)。使用對(duì)抗神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型是一個(gè)追求平衡的過(guò)程:保持G不變,訓(xùn)練D使分類(lèi)準(zhǔn)確率提升;保持D不變,訓(xùn)練G使分類(lèi)準(zhǔn)確率下降,直到平衡。GAN框架使得無(wú)監(jiān)督的生成任務(wù)能夠利用到監(jiān)督學(xué)習(xí)的優(yōu)勢(shì)來(lái)進(jìn)行提升。
基于GAN框架,只要定義好生成網(wǎng)絡(luò)和分類(lèi)網(wǎng)絡(luò),就可以完成某種生成任務(wù)。
而將GAN應(yīng)用到圖像高清問(wèn)題的這篇論文,可以說(shuō)是集大成之作。生成模型層次深且使用了residual block和skip-connection;在GAN的損失函數(shù)的基礎(chǔ)上同時(shí)添加了感知損失。
GAN的生成網(wǎng)絡(luò)和分類(lèi)網(wǎng)絡(luò)如圖5,其中,生成網(wǎng)絡(luò)自己也可以是一個(gè)單獨(dú)的圖像超清算法。論文中分析了GAN和non-GAN的不同,發(fā)現(xiàn)GAN主要在細(xì)節(jié)方面起作用,但無(wú)法更加深入地解釋。“無(wú)法解釋性”也是GAN目前的缺點(diǎn)之一。
像素遞歸網(wǎng)絡(luò)(Pixel CNN)
圖5中的GAN雖然能夠達(dá)到比較好的效果,但是由于可解釋性差,難免有套用之嫌。
其實(shí),對(duì)于圖像超清這個(gè)問(wèn)題來(lái)說(shuō),存在一個(gè)關(guān)鍵性的問(wèn)題,即一張低清圖像可能對(duì)應(yīng)著多張高清圖像,那么問(wèn)題來(lái)了。
假如我們把低分辨率圖像中需要高清化的部分分成A,B,C,D等幾個(gè)部分,那么A可能對(duì)應(yīng)A1,A2,A3,A4,B對(duì)應(yīng)B1,B2,B3,B4,以此類(lèi)推。假設(shè)A1,B1,C1,D1對(duì)應(yīng)一張完美的高清圖片。那么現(xiàn)有的算法可能生成的是A1,B2,C3,D4這樣的混搭,從而導(dǎo)致生成的高清圖像模糊。
為了驗(yàn)證上述問(wèn)題的存在,設(shè)想一種極端情況。
圖6. 圖像超清模糊性問(wèn)題分析圖示。上半部分為分析問(wèn)題所用數(shù)據(jù)集的構(gòu)建。下半部分為現(xiàn)有的損失函數(shù)在這個(gè)問(wèn)題上的效果?梢酝ㄟ^(guò)對(duì)比看出,PixelCNN能夠防止這種模糊的出現(xiàn)。
為了分析圖像模糊問(wèn)題的成因,在圖6的上半部分,基于MNist數(shù)據(jù)集生成一個(gè)新的數(shù)據(jù)集。生成方法如下:將MNIST數(shù)據(jù)集中的圖片A長(zhǎng)寬各擴(kuò)大兩倍,每張圖片可以生成兩張圖片A1和A2,A1中A處于右下角,A2中A處于左上角。
把原圖當(dāng)做低清圖片,生成的圖當(dāng)成高清圖片。使用圖6下半部分所列舉的三種方法進(jìn)行訓(xùn)練,得到的模型,在生成圖像的時(shí)候,會(huì)產(chǎn)生圖6下半部分的結(jié)果。即每個(gè)像素點(diǎn)可能等概率地投射到左上部分和右下部分,從而導(dǎo)致生成的圖片是錯(cuò)誤的。而引入PixelCNN后,由于像素之間產(chǎn)生了依賴(lài)關(guān)系,很好地避免了這種情況的發(fā)生。
為了解決上述問(wèn)題,需要在生成圖像的同時(shí)引入先驗(yàn)知識(shí)。畫(huà)家在擁有了人臉的知識(shí)之后,就可以畫(huà)出令人信服的高清細(xì)節(jié)。類(lèi)比到圖像超清問(wèn)題中,先驗(yàn)知識(shí)即是告知算法該選擇哪一種高清結(jié)果。
在圖像超清問(wèn)題中,這樣的知識(shí)體現(xiàn)為讓像素之間有相互依賴(lài)的關(guān)系。這樣,就可以保證A、B、C、D四個(gè)不同的部分對(duì)于高清版的選擇是一致的。
圖7. 基于PixelCNN的解決圖像超清問(wèn)題的CNN網(wǎng)絡(luò)結(jié)構(gòu)。其中先驗(yàn)網(wǎng)絡(luò)(prior network)為PixelCNN;條件網(wǎng)絡(luò)(conditioning network)為圖像生成網(wǎng)絡(luò),其結(jié)構(gòu)與作用同GAN中的生成網(wǎng)絡(luò)、感知損失中的轉(zhuǎn)換網(wǎng)絡(luò)均類(lèi)似。
模型架構(gòu)如圖7。其中條件網(wǎng)絡(luò)是一個(gè)在低清圖像的基礎(chǔ)上生成高清圖像的網(wǎng)絡(luò)。它能以像素為單位獨(dú)立地生成高清圖像,如同GAN中的G網(wǎng)絡(luò),感知損失中的轉(zhuǎn)換網(wǎng)絡(luò)。而先驗(yàn)網(wǎng)絡(luò)則是一個(gè)Pixel CNN組件,它用來(lái)增加高清圖像像素間的依賴(lài),使像素選擇一致的高清細(xì)節(jié),從而看起來(lái)更加自然。
那么Pixel CNN是如何增加依賴(lài)的呢?在生成網(wǎng)絡(luò)的時(shí)候,Pixel CNN以像素為單位進(jìn)行生成,從左上角到右下角,在生成當(dāng)前像素的時(shí)候,會(huì)考慮之前生成的像素。
若加上先驗(yàn)網(wǎng)絡(luò)和條件網(wǎng)絡(luò)的混合, PixelCNN在生成圖像的時(shí)候,除了考慮前面生成的像素,還需要考慮條件網(wǎng)絡(luò)的結(jié)果。
總結(jié)
上述算法是圖像超清問(wèn)題中使用的較為典型的CNN結(jié)構(gòu),此外,還有很多其他的結(jié)構(gòu)也達(dá)到了比較好的效果。隨著CNN網(wǎng)絡(luò)結(jié)構(gòu)層次的日益加深,距離實(shí)用場(chǎng)景反而越來(lái)越遠(yuǎn)。譬如,基于GAN的網(wǎng)絡(luò)結(jié)構(gòu)的訓(xùn)練很難穩(wěn)定,且結(jié)果具有不可解釋性;基于PixelCNN的網(wǎng)絡(luò)在使用中由于要在pixel級(jí)別生成,無(wú)法并行,導(dǎo)致生成效率極為低下。
更進(jìn)一步地,從實(shí)用出發(fā),可以在數(shù)據(jù)方向上進(jìn)行進(jìn)一步的優(yōu)化。譬如,現(xiàn)在的算法輸入圖像都是由低清圖像三次插值而來(lái),那么,是否可以先用一個(gè)小網(wǎng)絡(luò)得到的結(jié)果來(lái)作為初始化的值呢?再如,多個(gè)小網(wǎng)絡(luò)串聯(lián)是否能得到比一個(gè)大網(wǎng)絡(luò)更好的結(jié)果等等。
圖像超清問(wèn)題是一個(gè)相對(duì)來(lái)說(shuō)比較簡(jiǎn)單的圖像語(yǔ)義問(wèn)題,相信這只是圖像語(yǔ)義操作的一個(gè)開(kāi)始,今后越來(lái)越多的圖像處理問(wèn)題將會(huì)因?yàn)镃NN的出現(xiàn)迎刃而解。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴(lài)品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:深度學(xué)習(xí)在圖像超清化的應(yīng)用
本文網(wǎng)址:http://www.ezxoed.cn/html/news/10515520616.html