日復一日的人像臨摹練習使得畫家能夠僅憑幾個關鍵特征畫出完整的人臉。同樣地,我們希望機器能夠通過低清圖像有限的圖像信息,推斷出圖像對應的高清細節,這就需要算法能夠像畫家一樣“理解”圖像內容。至此,傳統的規則算法不堪重負,新興的深度學習照耀著圖像超清化的星空。
得益于硬件的迅猛發展,短短幾年間,手機已更新了數代,老手機拍下的照片在大分辨率的屏幕上變得模糊起來。同樣地,圖像分辨率的提升使得網絡帶寬的壓力驟增。如此,圖像超清化算法就有了用武之地。
對于存放多年的老照片,我們使用超清算法令其細節栩栩如生;面對網絡傳輸的帶寬壓力,我們先將圖像壓縮傳輸,再用超清化算法復原,這樣可以大大減少傳輸數據量。
傳統的幾何手段如三次插值,傳統的匹配手段如碎片匹配,在應對這樣的需求上皆有心無力。
深度學習的出現使得算法對圖像的語義級操作成為可能。本文即是介紹深度學習技術在圖像超清化問題上的新研究進展。
深度學習早興起于圖像,其主要處理圖像的技術是卷積神經網絡,關于卷積神經網絡的起源,業界公認是Alex在2012年的ImageNet比賽中的煌煌表現。雖方五年,卻已是老生常談。因此卷積神經網絡的基礎細節本文不再贅述。在下文中,使用CNN(Convolutional Neural Network)來指代卷積神經網絡。
CNN出現以來,催生了很多研究熱點,其中令人印象深刻的五個熱點是:
這五個熱點,在圖像超清這個問題上都有所體現。下面會一一為大家道來。
圖像超清問題的特點在于,低清圖像和高清圖像中很大部分的信息是共享的,基于這個前提,在CNN出現之前,業界的解決方案是使用一些特定的方法,如PCA、Sparse Coding等將低分辨率和高分辨率圖像變為特征表示,然后將特征表示做映射。
基于傳統的方法結構,CNN也將模型劃分為三個部分,即特征抽取、非線性映射和特征重建。由于CNN的特性,三個部分的操作均可使用卷積完成。因而,雖然針對模型結構的解釋與傳統方法類似,但CNN卻是可以同時聯合訓練的統一體,在數學上擁有更加簡單的表達。
不僅在模型解釋上可以看到傳統方法的影子,在具體的操作上也可以看到。在上述模型中,需要對數據進行預處理,抽取出很多patch,這些patch可能互有重疊,將這些Patch取合集便是整張圖像。上述的CNN結構是被應用在這些Patch而不是整張圖像上,得到所有圖像的patch后,將這些patch組合起來得到后的高清圖像,重疊部分取均值。
圖2中的方法雖然效果遠高于傳統方法,但是卻有若干問題:
針對上述問題,圖3算法提出了采用更深的網絡模型。并用三種技術解決了圖2算法的問題。
種技術是殘差學習,CNN是端到端的學習,如果像圖2方法那樣直接學習,那么CNN需要保存圖像的所有信息,需要在恢復高清細節的同時記住所有的低分辨率圖像的信息。如此,網絡中的每一層都需要存儲所有的圖像信息,這就導致了信息過載,使得網絡對梯度十分敏感,容易造成梯度消失或梯度爆炸等現象。而圖像超清問題中,CNN的輸入圖像和輸出圖像中的信息很大一部分是共享的。殘差學習是只針對圖像高清細節信息進行學習的算法。如上圖所示,CNN的輸出加上原始的低分辨率圖像得到高分辨率圖像,即CNN學習到的是高分辨率圖像和低分辨率圖像的差。如此,CNN承載的信息量小,更容易收斂的同時還可以達到比非殘差網絡更好的效果。
高清圖像之所以能夠和低清圖像做加減法,是因為,在數據預處理時,將低清圖像使用插值法縮放到與高清圖像同等大小。于是雖然圖像被稱之為低清,但其實圖像大小與高清圖像是一致的。
第二種技術是高學習率,在CNN中設置高學習率通常會導致梯度爆炸,因而在使用高學習率的同時還使用了自適應梯度截斷。截斷區間為[-θ/γ, θ/γ],其中γ為當前學習率,θ是常數。
第三種技術是數據混合,理想化的算法是為每一種倍數分別訓練一個模型,但這樣極為消耗資源。因而,同之前的算法不同,本技術將不同倍數的數據集混合在一起訓練得到一個模型,從而支持多種倍數的高清化。
在此之前,使用CNN來解決高清問題時,對圖像高清化的評價方式是將CNN生成模型產生的圖像和實際圖像以像素為單位計算損失函數(一般為歐式距離)。此損失函數得到的模型捕捉到的只是像素級別的規律,其泛化能力相對較弱。
而感知損失,則是指將CNN生成模型和實際圖像都輸入到某個訓練好的網絡中,得到這兩張圖像在該訓練好的網絡上某幾層的激活值,在激活值上計算損失函數。
由于CNN能夠提取高級特征,那么基于感知損失的模型能夠學習到更魯棒更令人信服的結果。
圖4即為感知損失網絡,該網絡本是用于快速圖像風格轉換。在這個結構中,需要訓練左側的Transform網絡來生成圖像,將生成的圖像Y和內容圖像與風格圖像共同輸入進右側已經訓練好的VGG網絡中得到損失值。如果去掉風格圖像,將內容圖像變為高清圖像,將輸入改為低清圖像,那么這個網絡就可以用于解決圖像超清問題了。
對抗神經網絡稱得上是近期機器學習領域大的變革成果。其主要思想是訓練兩個模型G和D。G是生成網絡而D是分類網絡,G和D都用D的分類準確率來進行訓練。G用于某種生成任務,比如圖像超清化或圖像修復等。G生成圖像后,將生成圖像和真實圖像放到D中進行分類。使用對抗神經網絡訓練模型是一個追求平衡的過程:保持G不變,訓練D使分類準確率提升;保持D不變,訓練G使分類準確率下降,直到平衡。GAN框架使得無監督的生成任務能夠利用到監督學習的優勢來進行提升。
基于GAN框架,只要定義好生成網絡和分類網絡,就可以完成某種生成任務。
而將GAN應用到圖像高清問題的這篇論文,可以說是集大成之作。生成模型層次深且使用了residual block和skip-connection;在GAN的損失函數的基礎上同時添加了感知損失。
GAN的生成網絡和分類網絡如圖5,其中,生成網絡自己也可以是一個單獨的圖像超清算法。論文中分析了GAN和non-GAN的不同,發現GAN主要在細節方面起作用,但無法更加深入地解釋?!盁o法解釋性”也是GAN目前的缺點之一。
圖5中的GAN雖然能夠達到比較好的效果,但是由于可解釋性差,難免有套用之嫌。
其實,對于圖像超清這個問題來說,存在一個關鍵性的問題,即一張低清圖像可能對應著多張高清圖像,那么問題來了。
假如我們把低分辨率圖像中需要高清化的部分分成A,B,C,D等幾個部分,那么A可能對應A1,A2,A3,A4,B對應B1,B2,B3,B4,以此類推。假設A1,B1,C1,D1對應一張完美的高清圖片。那么現有的算法可能生成的是A1,B2,C3,D4這樣的混搭,從而導致生成的高清圖像模糊。
為了驗證上述問題的存在,設想一種極端情況。
為了分析圖像模糊問題的成因,在圖6的上半部分,基于MNist數據集生成一個新的數據集。生成方法如下:將MNIST數據集中的圖片A長寬各擴大兩倍,每張圖片可以生成兩張圖片A1和A2,A1中A處于右下角,A2中A處于左上角。
把原圖當做低清圖片,生成的圖當成高清圖片。使用圖6下半部分所列舉的三種方法進行訓練,得到的模型,在生成圖像的時候,會產生圖6下半部分的結果。即每個像素點可能等概率地投射到左上部分和右下部分,從而導致生成的圖片是錯誤的。而引入PixelCNN后,由于像素之間產生了依賴關系,很好地避免了這種情況的發生。
為了解決上述問題,需要在生成圖像的同時引入先驗知識。畫家在擁有了人臉的知識之后,就可以畫出令人信服的高清細節。類比到圖像超清問題中,先驗知識即是告知算法該選擇哪一種高清結果。
在圖像超清問題中,這樣的知識體現為讓像素之間有相互依賴的關系。這樣,就可以保證A、B、C、D四個不同的部分對于高清版的選擇是一致的。
模型架構如圖7。其中條件網絡是一個在低清圖像的基礎上生成高清圖像的網絡。它能以像素為單位獨立地生成高清圖像,如同GAN中的G網絡,感知損失中的轉換網絡。而先驗網絡則是一個Pixel CNN組件,它用來增加高清圖像像素間的依賴,使像素選擇一致的高清細節,從而看起來更加自然。
那么Pixel CNN是如何增加依賴的呢?在生成網絡的時候,Pixel CNN以像素為單位進行生成,從左上角到右下角,在生成當前像素的時候,會考慮之前生成的像素。
若加上先驗網絡和條件網絡的混合, PixelCNN在生成圖像的時候,除了考慮前面生成的像素,還需要考慮條件網絡的結果。
上述算法是圖像超清問題中使用的較為典型的CNN結構,此外,還有很多其他的結構也達到了比較好的效果。隨著CNN網絡結構層次的日益加深,距離實用場景反而越來越遠。譬如,基于GAN的網絡結構的訓練很難穩定,且結果具有不可解釋性;基于PixelCNN的網絡在使用中由于要在pixel級別生成,無法并行,導致生成效率極為低下。
更進一步地,從實用出發,可以在數據方向上進行進一步的優化。譬如,現在的算法輸入圖像都是由低清圖像三次插值而來,那么,是否可以先用一個小網絡得到的結果來作為初始化的值呢?再如,多個小網絡串聯是否能得到比一個大網絡更好的結果等等。
圖像超清問題是一個相對來說比較簡單的圖像語義問題,相信這只是圖像語義操作的一個開始,今后越來越多的圖像處理問題將會因為CNN的出現迎刃而解。
[1] Dong C, Loy C C, He K, et al. Image super-resolution using deep convolutional networks[J]. IEEE transactions on pattern analysis and machine intelligence, 2016, 38(2): 295-307.
[2] Kim J, Kwon Lee J, Mu Lee K. Accurate image super-resolution using very deep convolutional networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1646-1654.
[3] Johnson J, Alahi A, Fei-Fei L. Perceptual losses for real-time style transfer and super-resolution[C]//European Conference on Computer Vision. Springer International Publishing, 2016: 694-711.
[4] Ledig C, Theis L, Huszár F, et al. Photo-realistic single image super-resolution using a generative adversarial network[J]. arXiv preprint arXiv:1609.04802, 2016.
[5] Dahl R, Norouzi M, Shlens J. Pixel Recursive Super Resolution[J]. arXiv preprint arXiv:1702.00783, 2017.
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。