日復一日的人像臨摹練習使得畫家能夠僅憑幾個關鍵特征畫出完整的人臉。同樣地,我們希望機器能夠通過低清圖像有限的圖像信息,推斷出圖像對應的高清細節,這就需要算法能夠像畫家一樣“理解”圖像內容。至此,傳統的規則算法不堪重負,新興的深度學習照耀著圖像超清化的星空。
圖1. 最新的Pixel遞歸網絡在圖像超清化上的應用。左圖為低清圖像,右圖為其對應的高清圖像,中間為算法生成結果。這是4倍超清問題,即將邊長擴大為原來的4倍。
得益于硬件的迅猛發展,短短幾年間,手機已更新了數代,老手機拍下的照片在大分辨率的屏幕上變得模糊起來。同樣地,圖像分辨率的提升使得網絡帶寬的壓力驟增。如此,圖像超清化算法就有了用武之地。
對于存放多年的老照片,我們使用超清算法令其細節栩栩如生;面對網絡傳輸的帶寬壓力,我們先將圖像壓縮傳輸,再用超清化算法復原,這樣可以大大減少傳輸數據量。
傳統的幾何手段如三次插值,傳統的匹配手段如碎片匹配,在應對這樣的需求上皆有心無力。
深度學習的出現使得算法對圖像的語義級操作成為可能。本文即是介紹深度學習技術在圖像超清化問題上的最新研究進展。
深度學習最早興起于圖像,其主要處理圖像的技術是卷積神經網絡,關于卷積神經網絡的起源,業界公認是Alex在2012年的ImageNet比賽中的煌煌表現。雖方五年,卻已是老生常談。因此卷積神經網絡的基礎細節本文不再贅述。在下文中,使用CNN(Convolutional Neural Network)來指代卷積神經網絡。
CNN出現以來,催生了很多研究熱點,其中最令人印象深刻的五個熱點是:
深廣探索:VGG網絡的出現標志著CNN在搜索的深度和廣度上有了初步的突破。
結構探索:Inception及其變種的出現進一步增加了模型的深度。而ResNet的出現則使得深度學習的深度變得“名副其實”起來,可以達到上百層甚至上千層。
內容損失:圖像風格轉換是CNN在應用層面的一個小高峰,涌現了一批以Prisma為首的小型創業公司。但圖像風格轉換在技術上的真正貢獻卻是通過一個預訓練好的模型上的特征圖,在語義層面生成圖像。
對抗神經網絡(GAN):雖然GAN是針對機器學習領域的架構創新,但其最初的應用卻是在CNN上。通過對抗訓練,使得生成模型能夠借用監督學習的東風進行提升,將生成模型的質量提升了一個級別。
Pixel CNN:將依賴關系引入到像素之間,是CNN模型結構方法的一次比較大的創新,用于生成圖像,效果最佳,但有失效率。
這五個熱點,在圖像超清這個問題上都有所體現。下面會一一為大家道來。
CNN的第一次出手
圖2. 首個應用于圖像超清問題的CNN網絡結構.輸入為低清圖像,輸出為高清圖像.該結構分為三個步驟:低清圖像的特征抽取、低清特征到高清特征的映射、高清圖像的重建。
圖像超清問題的特點在于,低清圖像和高清圖像中很大部分的信息是共享的,基于這個前提,在CNN出現之前,業界的解決方案是使用一些特定的方法,如PCA、Sparse Coding等將低分辨率和高分辨率圖像變為特征表示,然后將特征表示做映射。
基于傳統的方法結構,CNN也將模型劃分為三個部分,即特征抽取、非線性映射和特征重建。由于CNN的特性,三個部分的操作均可使用卷積完成。因而,雖然針對模型結構的解釋與傳統方法類似,但CNN卻是可以同時聯合訓練的統一體,在數學上擁有更加簡單的表達。
不僅在模型解釋上可以看到傳統方法的影子,在具體的操作上也可以看到。在上述模型中,需要對數據進行預處理,抽取出很多patch,這些patch可能互有重疊,將這些Patch取合集便是整張圖像。上述的CNN結構是被應用在這些Patch而不是整張圖像上,得到所有圖像的patch后,將這些patch組合起來得到最后的高清圖像,重疊部分取均值。
更深更快更準的CNN
圖3. 基于殘差的深度CNN結構。該結構使用殘差連接將低清圖像與CNN的輸出相加得到高清圖像。即僅用CNN結構學習低清圖像中缺乏的高清細節部分。
圖2中的方法雖然效果遠高于傳統方法,但是卻有若干問題:
訓練層數少,沒有足夠的視野域;
訓練太慢,導致沒有在深層網絡上得到好的效果;
不能支持多種倍數的高清化。
針對上述問題,圖3算法提出了采用更深的網絡模型。并用三種技術解決了圖2算法的問題。