近日,華為推出了 HiSR 超解析度技術,該模型藉助第一款人工智慧手機晶片 Kirin 970 和深度學習演算法將低解析度圖片轉化生成高畫質圖片,並在移動端實現了快速預覽高畫質圖片的效果。本文簡要介紹了華為 HiSR 模型的結構與效果。
前言
超解析度演算法是一種將低解析度圖片重建為尺寸更大、畫素更多、質量更高的計算機視覺技術。最常見的傳統影像處理演算法是雙三次插值(Bicubic Interpolation),該方法能創造出比雙線性插值更平滑的影像邊緣,且速度也較快。但是 Bicubic 演算法對於重建高畫質作品裡生動的細節有些力不從心,影像的細節和紋理等資訊難以恢復。
華為推出的新技術 HiSR(Hisilicon Super-Resolution)在同樣的標準下,處理效果相比 Google 的 RAISR 超分演算法有明顯的提升,此外 HISR 透過 Kirin 970 晶片的 HiAI 移動人工智慧平臺加速,首次實現了移動端的深度網路超解析度演算法,不僅達到了實時處理的速度,還保證了圖片的效果,能效比提升了 50%。以下是 HiSR 演算法提升的效果對比圖:
HiSR 演算法提升效果對比圖:左圖為原圖,右圖為 HiSR 演算法生成的圖片
HiSR 超解析度模型
深度網路
首先,HiSR 構建了一個七層深度的卷積神經網路,該模型能夠有效地提升圖片的質量,解決了深度網路研究存在的很多問題,比如說圖片超解析度時出現的塊效應和細節丟失、邊緣紋理不清晰的問題。該網路能夠在 Kirin 970 的 HiAI 移動人工智慧平臺實現實時運算速度,相對普通的 CPU 計算,速度提升了 25 倍,即使相對於能夠並行處理的 GPU,速度也提升了 6 倍。HiSR 網路結構如下圖所示:
HiSR 超解析度深度網路結構
卷積層
影像的卷積操作相當於對影像進行一系列的濾波操作,在一定程度上,卷積神經網路的工作就在於構建這些濾波器。通常,影像經過第一個卷積層之後會有效的提取圖片的低階特徵,比如邊緣、角點、曲線等。透過第二個卷積層的輸出可以得到邊緣、角點、曲線等低階特徵的組合等情況(例如四邊形、半圓等),如此累積,深層的卷積網路可以檢測越來越複雜的特徵。事實上,我們人類大腦也遵循這樣的低階特徵到高階特徵的模式進行視覺資訊處理的。
本網路採用了七個卷積層,能夠透過學習獲取影像各個方面的資訊,有效的提取圖片的整體特徵。模型採用先進的 1x1 的卷積核和計算量較小的 3x3 卷積核,且整個過程保持 feature map 的尺寸不變,保證影像的細節不丟失。
反摺積層
相對於大多數超解析度的深度網路來說,例如 SRCNN 和 TSR 等超分演算法,都是透過採用 Bicubic 演算法先將圖片直接放大到需要的尺寸,然後再進行卷積操作,也就是說這類演算法的操作都是為了改善 Bicubic 演算法的缺陷,計算量比較大,執行的時間較長,而且效果往往也會侷限於 Bicubic 演算法的限制,得不到很大的提升。
HiSR 超解析度深度學習網路採用先進的反摺積的結構,反摺積(Deconvolution)的概念第一次出現是 Zeiler 在 2010 年發表的論文 Deconvolutional networks 中。隨著反摺積在神經網路視覺化上的成功應用,其被越來越多的工作所採納比如:超解析度、場景分割、生成模型等。
HiSR 採用了一層反摺積實現圖片的放大和還原,而且反摺積同樣透過學習實現引數的更新,可以保留豐富的細節和紋理,實現了超解析度圖片的還原。
模型輸入
在模型輸入方面,原始圖片從 RGB 轉換成 YCbCr 格式,其中 Y 是指亮度分量,Cb 指藍色色度分量,而 Cr 指紅色色度分量。CbCr 與 Y 通道分離後,HiSR 只對 Y 通道資料進行超分處理的方法提高處理速度。
YCbCr 是色彩空間的一種,因為人的肉眼對 Y 分量更敏感,在透過對色度分量進行子取樣來減少色度分量後,肉眼將察覺不到的影像質量的變化,因此常常用於影片中的影像連續處理,或是數字攝影系統中。Cb 和 Cr 為藍色和紅色的濃度偏移量成份,Y 是所謂的流明 (Luminance),表示光的強度。
圖片預處理
在模型的訓練過程中,我們蒐集了 10w 張真實的圖片進行訓練,透過調整圖片的對比度、飽和度和銳化等資料增強的操作,構造出百萬張圖片進行網路模型的訓練,透過這樣的操作在對圖片進行壓縮處理,新的圖片長寬變成原來的 1/n,從而構成一對訓練圖片。透過調整相應的引數從而得到更加豐富的圖片語義資訊,保證學習的全面和完整。
圖片後處理
透過網路模型對訓練資料的全覆蓋,HiSR 網路出來的影像再經過一定的後處理操作從而使得效果更佳,主要的操作是採用了自適應的飽和度調整演算法,使得 HiSR 超解析度演算法放大的圖片的達到更佳的效果。
HiSR 網路實現
我們知道,終端上面大部分的網站或者社交網路上面的圖片都會經過壓縮排行傳輸,這樣可以節約大量的頻寬,但是由於壓縮比率太大導致細節損失非常嚴重,因此我們針對這類圖片採用 HiSR 超解析度網路進行細節和紋理的復原。
HiSR 網路具有很強的適應性和擴充套件性。針對當前主流的網路壓縮傳輸應用,比如微信,facebook, 今日頭條等的壓縮方式進行調研,我們針對壓縮之後不同解析度的影像,提供兩種可選的網路用於圖片的增強(1x 網路)和放大(3x 網路):
1x 網路
HiSR 採用獨立訓練的 1x 網路對圖片進行了處理,透過該網路的處理,影像的細節不斷的增強,各種塊效應也消失了,圖片的鮮豔程度也提高了,給使用者帶來了強烈的視覺體驗。網路結構如下:
HiSR 採用的 1x 網路將最後一個反摺積層改為卷積層,然後再採用同比例的影像作為訓練集,進行有針對性的訓練,該網路收斂效果好,保證了圖片的細節和色彩的恢復。
3x 網路
當然,終端大部分的網路傳輸的圖片解析度相對來說都是比較小的,經過我們的調研和分析,大部分解析度較小的圖片放大到華為以及市面上大多數手機螢幕的解析度,需要 3 倍的網路進行放大,因此我們沒有采用大多數演算法那樣,主要工作集中在 2x 的圖片放大。3x 網路的放大意味著更多細節和更多紋理的恢復,因此挑戰性更大。
HiSR 採用獨立訓練的 3x 網路對圖片進行了處理,該網路只需要在 1x 的網路上進行很小的改動,加入了反摺積層,還原高解析度影像的特徵,影像的細節透過卷積層的不斷學習和增強,可以有效的提升高解析度影像的質量。HiSR 的 3x 網路結構如下:
HiSR 的 3x 網路採用反摺積層,訓練時在原來的網路上進行最佳化,採用三倍的圖片進行訓練,可以穩定的提升影像的質量和效果。
網路效果
下面展示了 HiSR 對圖片處理的效果。
1x 網路效果
左邊是原圖,右邊是 HiSR 超解析度演算法處理後的圖片
3x 網路效果
左邊是 Bicubic 處理後的圖片,右邊是 HiSR 超解析度演算法處理後的圖片
對比 Google RAISR 演算法
注:左邊是 Google RAISR 處理後的圖片,右邊是 HiSR 超解析度演算法處理後的圖片
參考文獻
[1] Romano Y, Isidoro J, Milanfar P. RAISR: Rapid and Accurate Image Super Resolution[J]. IEEE Transactions on Computational Imaging, 2017, 3(1):110-125.
[2] D. Chao, C. C. Loy, H. Kaiming, and T. Xiaoou,「Image super-resolution using deep convolutional networks,」IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 38, no. 2, pp. 295–307, Feb 2016. 2, 7, 20, 22
[3] C. Dong, C. C. Loy, K. He, and X. Tang,「Learning a deep convolutional network for image super-resolution,」in ECCV, 2014, pp. 184–199. 2, 7, 20, 22
[4] Dong C, Chen C L, Tang X. Accelerating the Super-Resolution Convolutional Neural Network[J]. 2016:391-407.
[5] R. Keys,「Cubic convolution interpolation for digital image processing,」IEEE Trans. on Acoustics, Speech and Signal Proc., vol. 29, no. 6, pp. 1153–1160, 1981. 2
[6] K. He, J. Sun, and X. Tang,「Guided image filtering,」in ECCV, 2010, pp. 1–14. 3, 19
[7] D. Martin, C. Fowlkes, D. Tal, and J. Malik,「A database of human segmented natural images and its application to evaluating segmentation algorithms and measuring ecological statistics,」in ICCV, vol. 2. IEEE, 2001, pp. 416–423. 25