超解像度成像(Super-resolution imaging,縮寫SR),是一種提高影片解像度的技術。在一些稱為「光學SR」的SR技術中,系統的繞射極限被超越;而在其他所謂的「幾何SR」中,數位感光元件的解像度因而提高。超解像度成像技術用於一般圖像處理和超高解像度顯微鏡。
此條目可參照英語維基百科相應條目來擴充。 |
小波變換相關技術
在2000年以來,小波變換的技術被使用在提高影像的解像度。
DASR (Demirel-Anbarjafari Super Resolution)是使用離散小波變換(Discrete wavelet transform)來進行超解像度成像的方法。當時,超解像度成像通常是以內插影像的像素值來完成,而作者認為,對影像中的高頻部份進行內插是造成品質降低的主要理由,因為內插高頻部份讓物體的邊界變得模糊且平滑,於是提出使用離散小波變換的算法來減輕這個問題。
影像可以表示成二維的訊號,經過二維的離散小波變換,可以被分解成四個不同頻段的影像,分別是:low-low (LL), low-high (LH), high-low (HL) 和 high-high (HH),各自代表在不同維度是高頻或低頻,舉例來說,LH就是在原影像的第一維(x軸)是低頻而在第二維(y軸)是高頻的分解後結果。
將原影像分解為LL, LH, HL和HH後,DASR會對高頻段的三張影像LH, HL和HH分別做內插,以產生高解像度的LH, HL和HH。這是由於作者認為,將不同的高頻影像各自做內插,能夠避免彼此干擾,進而保留更多的高頻資訊。DASR不會內插LL,而是內插原圖來當作高解像度的LL,因為原圖比LL含有更多資訊。取得四張高解像度的LL, LH, HL和HH後,DASR將四張影像經過逆離散小波變換(Inversed discrete wavelet transform),來生成最終的成像結果。
DASR當時在 Lena, Elaine, Pepper和Baboon上取得State-of-the-art的結果,並超越傳統使用內插和其它使用離散小波變換的方法。
深度神經網絡相關技術
隨着神經網絡的流行,相關技術也被應用在提高圖片解像度。
SRCNN ( Super-resolution convolution neural network )是一個神經網絡,輸入是一個低解像度(視覺上)的圖像,而輸出是一個高解像度的圖像,這裏需要注意的是,在將圖像餵進神經網絡前,需要先經過一個預處理bicubic interpolation,將原始圖片變成跟想要的高解像度圖像一樣大小後,再餵進神經網絡中。而神經網絡做的事情,主要分成三個步驟區塊特徵抽取與表達(Patch extraction and representation)、非線性對應(non-linear mapping)以及重建(reconstruction)。
這一步就如同一般的CNN ( convolution neural network ),只是沒有經過max-pooling,公式如下。
代表已經經過bicubic interpolation的圖像,則為這層神經網絡的輸出,代表個的filter(是圖像的channel數量,而則為filter的大小),代表卷積(convolution),是偏移量(bias),最後的則代表激活函數RELU。
非線性對應,基本上就是持續利用一般CNN的方式將前一步每一塊的維的特徵向量,分別轉換成維的特徵向量,公式如下。
在重建的步驟中,我們要考慮的是每一個像素所要的值是多少,這個步驟可以想成在多個相關的高維度的特徵向量中,取一個平均,很湊巧的,這剛好也很像一般的卷積層(convolution layer),公式如下。
在SRCNN中所採用的差異函數(Loss Function)是簡單的平均方根差(Mean Square Error),定義為重建後的相片每一個像素與真正的圖片的每一個像素的差異,公式如下。
為SRCNN的參數,為給定的SRCNN重建的圖像,則為真正的高解像度圖像,為拿來訓練神經網絡的圖像數量或者是一個batch中所有的圖像數量。
這篇論文提供了一個做法,可以應用在圖像風格轉移(Style Transfer)以及超高解像度(Super-resolution)。
整個系統由兩個神經網絡組成,其中一個是圖像轉移網絡,另一個則是可以用來定義各種差異的差異網絡。
圖像轉移網絡的輸入為一張圖像,輸出也是一張圖像,而這個網絡的參數以表示。
這個圖像轉移網絡由5個residual block[4]所組成,而所有非residual的convolution layer後面都會接上batch normalization。激活函數(activation function)的部分,除了在最後的輸出層(output layer)使用scaled tanh使得輸出的數值在0到255之間,其他都是使用RELU。
convolution layer的filter(kernel)的數量上,第一層和最後一層使用個,其他層則是使用個。
差異網絡定義了各種差異函數(loss function),輸入為兩張圖像,一張來自圖像轉移網絡,一張則是真正的高解像度影像,輸出為一個實數(scalar)。
而這篇論文所使用的差異網絡是16層的VGG網絡[5],並事先利用Image Net訓練過。差異函數的部分,使用了兩個不同於傳統簡單的差異函數。(CHW代表feature map各個維度的數值)
這個差異函數的設計理念在於,當我們在看兩張圖片像不像時,我們並不是一個一個像素的比較,而是比較兩張圖片中的特徵像不像。因此,他拿差異網絡中某一層的輸出,當作一個圖片特徵值,再以兩張圖片的特徵值的Euclidean Distance當作差異。
除了一般的特徵以外,我們也會需要圖像轉移網絡正確的重建顏色、材質等等的內容,因此必須再加上風格重建差異函數。 在定義風格重建差異之前,我們先定義Gram矩陣。
接着差異函數就可以定義為
而一般比較每一個像素差異的差異函數,則可以寫為
有了這兩個網絡後,訓練圖像轉移網絡的方法則是最小化各式差異函數的權重和(weighted sum),優化的方法是梯度下降法(Stochastic Gradient Descent(l()是差異函數(loss function)))。
這篇論文在高解像度圖像這個傳統問題上,給了一個快速且有效的解法,快速的原因在於,在遇到一張新的圖片時,只需要把圖像餵進圖像轉移網絡就好(一次forward pass)。而在結果上,也大大的超越了之前的做法(一樣使用深度神經網絡)SRCNN。
立體圖像超解像度成像
立體圖像超解像度成像(Stereo Image Super-Resolution,縮寫SSR)是一種利用多臺相機對同一場景進行拍攝的影像進行超解像度成像的技術。通常,SSR技術的目的是提高低解像度的立體圖像對的空間解像度,從而獲得更加細緻、清晰的立體圖像。單張圖像超解像度成像(Single Image Super-Resolution)方法在單張圖像上進行超解像度處理,但當只有單張圖像時,無法從中獲得立體資訊。而SSR技術利用兩臺或多臺相機同時拍攝同一場景的影像,通過分析這些影像中的立體資訊,從而實現對低解像度立體圖像對的超解像度成像。
SSR技術的關鍵是能夠對齊或是解析不同視角的立體圖像,並處理影像之間的視差,以便將它們結合在一起進行超解像度處理。一旦能夠取得視差資訊,可以使用多種超解像度技術,如插值、機器學習等方法,來提高解像度。
由於機器學習是一種能夠從資料中自動分析獲得規律,並利用規律對未知資料進行預測的演算法,因此在超解像度領域可以藉由讓神經網絡模型從大量的訓練數據中學習到高解像度圖像的統計特性和特徵,來獲得提高立體圖像的超解像度成像效果。
立體圖像超解像度成像作為單張圖像超解像度成像的延伸,在神經網絡架構的設計上是可以沿用單張圖像超解像度成像的架構的,再加入圖像間特徵混合的作法來處理影像之間的視差,如此便可以有效利用不同視角的圖片間的資訊,將解像度提升至比單張圖像超解像度成像還要高的品質,如:NAFSSR[8]即是一個以此概念設計的神經網絡。
由於立體圖像超解像度任務是很容易過適的,因此在訓練過程中,需要適當的加上數據擴充方法,常見的方法為隨機裁減訓練影像的部分區塊、隨機的水平或上下翻轉,以及隨機排列RGB顏色通道的順序。
參見條目
參考資料
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.