在深度學習和神經(jīng)網(wǎng)絡算法出現(xiàn)之前,我們無法通過計算將低分辨率、模糊不清的圖像轉(zhuǎn)換為平滑的高分辨率圖像。現(xiàn)在,由于算法的突破,圖像可以放大 8 倍或 16 倍,并可重新創(chuàng)建分辨率,該技術(shù)被稱為圖像超分辨率技術(shù)。為了實時執(zhí)行該技術(shù),處理器需要具備專用神經(jīng)網(wǎng)絡加速器,如新思科技的 DesignWare ARC EV 處理器 IP,以在不增加功耗和面積預算的情況下,也能滿足密集計算的功耗需求。圖像超分辨率技術(shù)現(xiàn)已應用于視頻監(jiān)控、人臉識別、醫(yī)療診斷、數(shù)字電視、游戲、多功能打印機和遠程傳感成像等應用。
低分辨率轉(zhuǎn)換至高分辨率的問題
我們都觀看過早期拍攝的電視劇或電影。英勇的偵探掌握了一個突破點 — 他們從監(jiān)控攝像機中得到了罪犯開車離開犯罪現(xiàn)場的圖像。但是,圖像放大后極其模糊不清。偵探轉(zhuǎn)向技術(shù)人員,用極盡嚴肅的聲音說:“你們能讓圖像清晰一些嗎?” 技術(shù)人員使用鍵盤經(jīng)過數(shù)秒激烈緊張的操作,或是執(zhí)行一些需要數(shù)小時處理的迭代操作后,將顯示器轉(zhuǎn)向偵探,上面出現(xiàn)了一幅分辨率高很多的清晰圖像,清楚地顯示了逃逸汽車的車牌。案件得以偵破!
但實際上,讓圖像變得更加清晰遠不是這么回事。無論花多少時間處理圖像,其實都無法滿足偵探的這個要求。在深度學習出現(xiàn)之前,采用最先進的技術(shù)可以完成一定程度的圖像銳化,但無法糾正嚴重模糊的圖像(或像素化非常嚴重的放大圖像)。
Adobe Photoshop 等程序中就有圖像銳化或縮放技術(shù)的示例,有三種使用較為廣泛:
最近鄰插值在圖像放大時復制圖像中的像素。
雙線性插值在圖像縮放到更高分辨率時均化周圍像素顏色值,以插入新像素。
雙三次插值分析 16 (4x4) 個像素(相對于雙線性插值的 4 (2x) 個像素),創(chuàng)建插值偽影較少的平滑圖像。雙三次插值盡管計算復雜程度較高,卻能產(chǎn)生最理想的銳化結(jié)果。
這三種技術(shù)的局限性都源于同一種理論概念,稱為數(shù)據(jù)處理不等式。簡而言之,數(shù)據(jù)處理不等式即您無法將信息添加到不存在的圖像中。放大圖像時無法恢復丟失的數(shù)據(jù)。雖然這些技術(shù)可以將模糊不清的原始圖像適度銳化,但在原始圖像放大 8 或 16 倍后,這些技術(shù)就無法處理了。
或者說,至少在深度學習和超分辨率神經(jīng)網(wǎng)絡出現(xiàn)之前,情況都是如此。
神經(jīng)網(wǎng)絡來救急了!
如果數(shù)據(jù)處理不等式的嚴酷現(xiàn)實阻礙了雙三次插值技術(shù)發(fā)揮作用,為什么深度學習算法會表現(xiàn)得更好呢?嗯,他們有秘技。基于學習的算法是用大數(shù)據(jù)集進行“訓練”的(例如,輸入大量帶標注的圖像,用于校準網(wǎng)絡的系數(shù)),所以它們成為縮放圖像和恢復分辨率的理想算法。恢復圖像所需的額外數(shù)據(jù)來自神經(jīng)網(wǎng)絡的訓練集,而不是從原始圖像中獲取。例如,如果一個神經(jīng)網(wǎng)絡經(jīng)過訓練用于學習人臉,那么當原始圖像被縮放到高分辨率時,它就可以合理地將訓練集的數(shù)據(jù)插入到原始圖像中。
單圖像超分辨率的第一個深度學習方法是 2014 年的超分辨率卷積神經(jīng)網(wǎng)絡 (SRCNN)。在用 SRCNN 進行訓練期間,使用雙三次插值將低分辨率的輸入圖像放大到所需的分辨率,然后將其送入一個相當淺的 CNN(跳過池化層以保持相同大小的圖像分辨率)。在輸出圖像和原始圖像之間采用均方平均 (MSE) 損失函數(shù)。通過多次訓練迭代,盡可能地減少損失以產(chǎn)生最完善的輸出圖像。結(jié)果(圖 2)顯示,相對于雙三次插值,SRCNN 的峰值信噪比 (PSNR) 有了顯著改善。
在 SRCNN 開辟了使用 CNN 實現(xiàn)超分辨率的道路之后,許多其他方法也在這個概念上進行了改進。2016 年,快速超分辨率卷積神經(jīng)網(wǎng)絡 (Fast Super-Resolution Convolutional Neural Network, FSRCNN) 取代了 SRCNN 的雙三次插值,它具有更多的 CNN 層,并結(jié)合了其他技術(shù),能夠產(chǎn)生更快、圖像質(zhì)量更高的解決方案。同樣在 2016 年,超分辨率加深網(wǎng)絡結(jié)構(gòu) (Very Deep network for Super-Resolution, VDSR) 將 SRCNN 的三層擴展到二十層,以提高準確度。2015 年底發(fā)布的超分辨率殘差網(wǎng)絡 (SRResNet) 將殘差網(wǎng)絡 (ResNet) 層增加至 152 層,以提高準確度。所有這些方法都提供了較高的 PSNR(更高的準確度),但經(jīng)常遺漏高頻細節(jié),因此被認為不夠悅目。
2017 年,超分辨率生成對抗網(wǎng)絡 (Super-Resolution Generative Adversarial Network, SRGAN) 將 2014 年發(fā)布的 GANS 概念應用到超分辨率上,取得了令人矚目的成果。GAN 由兩個網(wǎng)絡組成:一個生成器和一個鑒別器(圖 3),它們相互競爭以實現(xiàn)“對抗目標”。在網(wǎng)絡訓練期間,生成器輸入低分辨率圖像并力圖創(chuàng)建高分辨率版本。鑒別器網(wǎng)絡則致力于確定輸入的是真正的高分辨率圖像還是生成器放大的圖像。換句話說,生成器試圖偽造圖像蒙混過關(guān),而鑒別器則會努力捕捉偽造圖像。訓練期間的這一迭代過程迫使生成器改進其輸出。
訓練部分完成后,SRGAN 的生成器網(wǎng)絡只需將低分辨率圖像轉(zhuǎn)換為更高分辨率的圖像。
SRGAN 的一個關(guān)鍵點是使用了感知損失函數(shù),該函數(shù)會對比像素級 MSE 損失和對抗性損失(鑒別器遇到自然圖像而不是生成圖像的概率)。正因為如此,SRGAN 的輸出圖像的 PSNR 值并不高,但被認為更加悅目。
現(xiàn)在,研究SRGAN 提供的一個變體。增強型超分辨率生成對抗網(wǎng)絡 (Enhanced Super-Resolution Generative Adversarial Network, ESRGAN) 已成為游戲界的熱門產(chǎn)品,用于高端復古視頻游戲。雖然 ESRGAN 經(jīng)過自然圖像訓練,但應用于模糊不清的復古視頻游戲時也能改善圖形質(zhì)量。
超分辨率的另一個有趣用途是恢復舊電影的色彩和為其上色。超分辨率可以放大幀率和分辨率、填充缺失數(shù)據(jù)、改善模糊畫質(zhì),以及為黑白電影提供逼真的上色。
實時實現(xiàn)超分辨率
處理單個圖像、視頻游戲或舊電影以實現(xiàn)離線超分辨率,不需要實時執(zhí)行。如果時間充裕,您可以讓 CPU 或 GPU 在后臺處理這一過程。如果應用程序需要實時渲染和顯示圖像(可能是游戲或增強現(xiàn)實),要想在顯示之前運用超分辨率技術(shù)來改善圖像,則只能采用較低分辨率完成渲染,以節(jié)省功耗并提高每秒幀數(shù) (fps)。而要想以極快的速度解決圖像質(zhì)量改善,或從較低視頻分辨率提高到較高視頻分辨率,則需要專門的神經(jīng)網(wǎng)絡解決方案。
新思科技的 DesignWare ARC EV 系列處理器 IP,可為一系列實時超分辨率需求提供可擴展的神經(jīng)網(wǎng)絡解決方案。新思科技的 EV 架構(gòu)結(jié)合了可編程性和硬件優(yōu)化的特性,能以最小的面積和功耗提供最快的性能。EV7x(圖 5)將視覺引擎(用于單指令、多數(shù)據(jù) (SIMD) 并行處理的 512bit 向量 DSP)和一個深度神經(jīng)網(wǎng)絡加速器相結(jié)合,該加速器能夠從 880 乘累加單元擴展到 14,080 乘累加單元 (MAC),是神經(jīng)網(wǎng)絡實現(xiàn)的關(guān)鍵構(gòu)建模塊。
圖 5. DesignWare EV7x Vision 處理器 IP 通過從 LPDDR5 向配置內(nèi)部存儲器輸入部分輸入圖像、經(jīng)過訓練的系數(shù)和中間特征圖,在其深度神經(jīng)網(wǎng)絡加速器中執(zhí)行神經(jīng)網(wǎng)絡算法。
MetaWare EV (MWEV) 軟件開發(fā)工具包為DesignWare EV7x 處理器 IP 系列提供完美支持,該工具包是一條集成工具鏈,可為經(jīng)過訓練的神經(jīng)網(wǎng)絡執(zhí)行編譯、調(diào)試、優(yōu)化、仿真和映射。MWEV 神經(jīng)網(wǎng)絡軟件開發(fā)套件 (NN SDK) 采用 SRCNN、FSRCN、VDSR 等超分辨率圖形,然后自動映射至 EV7x 硬件,進行實時操作。
性能要求
實時實現(xiàn)的性能要求各不相同。多功能打印機可能需要以 5 fps 的速度銳化圖像。但是,從 30fps 視頻升級為 60fps 圖像,需要在較短的時間內(nèi)進行較多的處理。影響處理器性能的要求包括:
超分辨模型(不同模型需要不同的計算復雜程度)
輸入圖像分辨率
輸出圖像分辨率
帶寬限制(千兆字節(jié)/秒,GB/s)
期望的幀速率 (fps)
借助這些參數(shù),設計人員可以確定他們所需的深度神經(jīng)網(wǎng)絡加速器配置。新思科技可以與設計師合作,根據(jù)輸入分辨率和帶寬限制為所選超分辨率網(wǎng)絡的不同 MAC 配置確定 fps。例如,多功能打印機實現(xiàn)可能只需要具有 880 MAC 加速器的最小 EV71 處理器。速度飛快的高端游戲應用程序可能需要更大的處理器,如 EV72 或 EV74 和多達 14,080 個 MAC。
功耗要求
除了性能之外,另一個嵌入式系統(tǒng)的關(guān)鍵要求通常是功耗。一旦知道要求,就可以計算功耗。然而,考慮到神經(jīng)網(wǎng)絡的計算復雜性和仿真所有這些計算所需的時間(可能需要數(shù)周的時間),很難準確地仿真神經(jīng)網(wǎng)絡的功耗。新思科技使用了既快速又準確的仿真模型,來確定 EV7x 硬件實現(xiàn)神經(jīng)網(wǎng)絡的功耗。
位分辨率要求
通常使用 32 bit精度訓練神經(jīng)網(wǎng)絡;然而,對于神經(jīng)網(wǎng)絡實現(xiàn)而言,這是一種過度消耗。必要時,EV7x 的 DNN 可提供 8bit分辨率,以及可實現(xiàn)更高精度的高達 12bit的分辨率。MWEV NN SDK 將根據(jù)硬件中選定的位分辨率量化神經(jīng)網(wǎng)絡。還可以優(yōu)化每層的量化/精度,盡可能使用 8bit,而僅在需要確保準確度時才使用12bit。
結(jié)語
研究人員在不斷改進當今的先進技術(shù),所以超分辨率神經(jīng)網(wǎng)絡將會繼續(xù)發(fā)展。從 CNN 分類網(wǎng)絡的演進可以看出,首先側(cè)重于提高精度,然后再轉(zhuǎn)向提高算法效率。總體目標是用最少的計算量和數(shù)據(jù)移動獲得最高的準確度,從而將較低分辨率的圖像重新調(diào)整/升級為更高分辨率的圖像,實現(xiàn)悅目的效果。由于 DesignWare ARC EV7x 處理器 IP 系列是可編程的,它可以隨著研究的持續(xù)進行而發(fā)展為超分辨率網(wǎng)絡。
原文標題:老電影秒變4K畫質(zhì),超分辨率技術(shù)大發(fā)神威
文章出處:【微信公眾號:電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責任編輯:haq
-
神經(jīng)網(wǎng)絡
+關(guān)注
關(guān)注
42文章
4765瀏覽量
100549 -
圖像處理
+關(guān)注
關(guān)注
27文章
1282瀏覽量
56653 -
深度學習
+關(guān)注
關(guān)注
73文章
5493瀏覽量
120985
原文標題:老電影秒變4K畫質(zhì),超分辨率技術(shù)大發(fā)神威
文章出處:【微信號:elecfans,微信公眾號:電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論