在 AlphaGo 對(duì)弈李世石、柯潔之后,更多行業(yè)開始嘗試通過(guò)機(jī)器學(xué)習(xí)優(yōu)化現(xiàn)有技術(shù)方案。其實(shí)對(duì)于實(shí)時(shí)音視頻來(lái)講,對(duì)機(jī)器學(xué)習(xí)的研究已有多年,我們?cè)窒磉^(guò)的實(shí)時(shí)圖像識(shí)別只是其中一種應(yīng)用。我們還可以利用深度學(xué)習(xí)來(lái)做超分辨率。我們這次就分享一下用于超分辨率的深度學(xué)習(xí)基本框架,以及衍生出的各種網(wǎng)絡(luò)模型,其中有些網(wǎng)絡(luò)在滿足實(shí)時(shí)性方面也有不錯(cuò)的表現(xiàn)。
機(jī)器學(xué)習(xí)與深度學(xué)習(xí)
對(duì)于接觸機(jī)器學(xué)習(xí)與深度學(xué)習(xí)較少的開發(fā)者,可能會(huì)搞不清兩者的差別,甚至認(rèn)為機(jī)器學(xué)習(xí)就是深度學(xué)習(xí)。其實(shí),我們用一張圖可以簡(jiǎn)單區(qū)分這個(gè)概念。
上世紀(jì)50年代,就有人工智能的概念,后來(lái)也有一些較基礎(chǔ)的應(yīng)用,比如國(guó)際象棋。但到了70年代,由于硬件性能的制約,以及訓(xùn)練數(shù)據(jù)集的匱乏,使得人工智能經(jīng)歷了一段低谷。人工智能包括了很多,比如機(jī)器學(xué)習(xí)、調(diào)度算法、專家系統(tǒng)等。到了80年代才開始出現(xiàn)更多機(jī)器學(xué)習(xí)的應(yīng)用,比如利用算法來(lái)分析數(shù)據(jù),并進(jìn)行判斷或預(yù)測(cè)。機(jī)器學(xué)習(xí)包括了邏輯樹、神經(jīng)網(wǎng)絡(luò)等。而深度學(xué)習(xí),則是機(jī)器學(xué)習(xí)中的一種方法,源于神經(jīng)網(wǎng)絡(luò)。
超分辨率是什么?
超分辨率是基于人類視覺(jué)系統(tǒng)提出的概念。1981年諾貝爾醫(yī)學(xué)獎(jiǎng)獲獎(jiǎng)?wù)逥avid Hubel、Torsten Wiesel,發(fā)現(xiàn)人類視覺(jué)系統(tǒng)的信息處理方式是分層級(jí)的。第一層是原始的數(shù)據(jù)輸入。當(dāng)人看到一個(gè)人臉圖像時(shí),首先會(huì)先識(shí)別出其中的點(diǎn)、線等邊緣。然后進(jìn)入第二層,會(huì)識(shí)別出圖像中一些基本的組成元素,比如眼睛、耳朵、鼻子。最后,會(huì)生成一個(gè)對(duì)象模型,也就是一張張完整的臉。
而我們?cè)谏疃葘W(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)(如下圖為例),就是模仿了人類視覺(jué)系統(tǒng)的處理過(guò)程。正因此,計(jì)算機(jī)視覺(jué)是深度學(xué)習(xí)最佳的應(yīng)用領(lǐng)域之一。超分辨就是計(jì)算機(jī)視覺(jué)中的一個(gè)經(jīng)典應(yīng)用。
超分辨率是通過(guò)軟件或硬件方法,提高圖像分辨率的一種方法。它的核心思想,就是用時(shí)間帶寬換取空間分辨率。簡(jiǎn)單來(lái)講,就是在我無(wú)法得到一張超高分辨率的圖像時(shí),我可以多拍幾張圖像,然后將這一系列低分辨率的圖像組成一張高分辨的圖像。這個(gè)過(guò)程叫超分辨率重建。
為什么超分辨率可以通過(guò)多拍幾張圖像,就能提高圖片分辨率呢?
這牽涉到抖動(dòng)。我們經(jīng)常說(shuō)的拍照防抖動(dòng),其實(shí)防的是較明顯的抖動(dòng),但微小的抖動(dòng)始終存在。在拍攝同一場(chǎng)景的每張圖像之間,都有細(xì)微差別,這些微小的抖動(dòng)其實(shí)都包含了這個(gè)場(chǎng)景的額外信息,如果將他們合并,就會(huì)得到一張更為清晰的圖像。
有人可能會(huì)問(wèn),我們手機(jī)都能前后置兩千萬(wàn),為什么需要超分辨率技術(shù)呢?這種技術(shù)應(yīng)用場(chǎng)景是不是不多?
其實(shí)不是。了解攝影的人都知道。在相同的感光元器件上,拍攝的圖像分辨率越高,在感光元器件上,單個(gè)像素占的面積越小,那會(huì)導(dǎo)致通光率越低,當(dāng)你的像素密度到達(dá)一定程度后,會(huì)帶來(lái)大量噪聲,直接影響圖像質(zhì)量。超分辨率就可以解決這種問(wèn)題。超分辨率有很多應(yīng)用,比如:
數(shù)字高清,通過(guò)這種方法來(lái)提高分辨率
顯微成像:合成一系列顯微鏡下的低分辨率圖像來(lái)得到高分辨率圖像
衛(wèi)星圖像:用于遙感衛(wèi)星成像,提升圖像精度
視頻復(fù)原:可以通過(guò)該技術(shù)復(fù)原視頻,例如老電影
但是,有很多情況下,我們只有一張圖像,無(wú)法拍攝多張,那么如何做超分辨率呢?這就需要用到機(jī)器學(xué)習(xí)了。比較典型的例子,就是在2017年Google 提出的一項(xiàng)“黑科技”。他們可以通過(guò)機(jī)器學(xué)習(xí)來(lái)消除視頻圖像中的馬賽克。當(dāng)然,這項(xiàng)黑科技也有一定限制,以下圖為例,它訓(xùn)練的神經(jīng)網(wǎng)絡(luò)是針對(duì)人臉圖像的,那么如果你給的馬賽克圖像不是人臉,就無(wú)法還原。
超分辨率神經(jīng)網(wǎng)絡(luò)原理
超分辨率神經(jīng)網(wǎng)絡(luò)(Super-Resolution CNN,SRCNN)是深度學(xué)習(xí)應(yīng)用在超分辨率領(lǐng)域的首個(gè)模型。原理比較簡(jiǎn)單。它有三層神經(jīng)網(wǎng)絡(luò),包括:
特征提取:低分辨率圖像經(jīng)過(guò)二項(xiàng)式差值得到模糊圖像,從中提取圖像特征,Channel 為3,卷積核大小為 f1*f1,卷積核個(gè)數(shù)為 n1;
非線性映射:將低分辨率圖片特征映射到高分辨率,卷積核大小1*1;
圖像重構(gòu):恢復(fù)細(xì)節(jié),得到清晰的高分辨率圖像,卷積核為f3*f3;
參數(shù)調(diào)節(jié)是神經(jīng)網(wǎng)絡(luò)中比較玄的部分,也是最為人詬病的部分。很多人認(rèn)為參數(shù)調(diào)節(jié)很像老中醫(yī)看病,通常缺少理論依據(jù)。在這里列出了幾個(gè)在 n1 取不同值的時(shí)候,所用的訓(xùn)練時(shí)間和峰值信噪比(PSNR,用于判斷圖片質(zhì)量的參數(shù),越高越好)。
在訓(xùn)練中,使用均方誤差(Mean Squared Error, MSE)作為損失函數(shù),有利于獲得較高的PSNR。
訓(xùn)練結(jié)果如何呢?在下表中,列出了幾個(gè)傳統(tǒng)方法與 SRCNN 方法的結(jié)果對(duì)比。最左一列是圖片集,右側(cè)分別列出了每個(gè)方法的所用訓(xùn)練時(shí)間和圖片峰值信噪比??梢钥闯?,盡管有些圖片,傳統(tǒng)方法得出的結(jié)果更優(yōu)于深度學(xué)習(xí),但是總體來(lái)講,深度學(xué)習(xí)稍勝一籌,甚至所需時(shí)間更短。
有人說(shuō)一圖勝千言。那么實(shí)際圖片效果如何呢?我們可以看下面兩組圖片。每組第一張是小分辨率的原圖,后面通過(guò)不同的方法來(lái)實(shí)現(xiàn)高分辨率的大圖。相比傳統(tǒng)方法,SRCNN 的圖片邊緣更加清晰,細(xì)節(jié)恢復(fù)的更好一些。以上就是最初的超分辨率的深度學(xué)習(xí)模型。
9個(gè)超分辨率神經(jīng)網(wǎng)絡(luò)模型
SRCNN 是第一個(gè)超分辨率的神經(jīng)網(wǎng)絡(luò)模型。在 SRCNN 這個(gè)模型出現(xiàn)后,更多應(yīng)用于超分辨率的神經(jīng)網(wǎng)絡(luò)模型。我們以下分享幾個(gè):
FSRCNN
相對(duì) SRCNN,這個(gè)方法不需要對(duì)原始圖片使用二項(xiàng)式差值,可以直接對(duì)小分辨率圖像進(jìn)行處理。在提取特征值之后,縮小圖片,然后經(jīng)過(guò) mapping、expending、反卷積層,然后得到高分辨率圖片。它好處是,縮小圖片可以降低訓(xùn)練的時(shí)間。同時(shí),如果你需要得到不同分辨率的圖片,單獨(dú)訓(xùn)練反卷積層即可,更省時(shí)。
ESPCN
這個(gè)模型是基于小圖進(jìn)行訓(xùn)練。最后提取了 r2 個(gè) Channel。比如說(shuō),我想將圖片擴(kuò)大到原圖的3倍,那么 r 就是縮放因子 3,Channel 為9。通過(guò)將一個(gè)像素?cái)U(kuò)充為一個(gè)3x3的矩陣,模擬為一個(gè)像素的矩陣,來(lái)達(dá)到超分辨率的效果。
對(duì)實(shí)時(shí)視頻進(jìn)行超分辨率處理的實(shí)驗(yàn)結(jié)果也非常理想。對(duì) 1080 HD 格式的視頻進(jìn)行3倍放大,SRCNN 每幀需要0.435s,而 ESPCN 則只需0.038s。
VDSR
這是2016年獲獎(jiǎng)的一個(gè)模型。我們做視頻編解碼的都知道,圖像之間是存在殘差的。它認(rèn)為原始的低分辨率圖片與高分辨率圖片之間,低頻分量幾乎一樣,缺失的是高頻分量,即圖片細(xì)節(jié)。那么訓(xùn)練的時(shí)候,只需要針對(duì)高頻分量進(jìn)行訓(xùn)練就行了。
所以它的輸入分為兩部分,一是將整張?jiān)瓐D作為一個(gè)輸入,另一部分則是對(duì)殘差進(jìn)行訓(xùn)練然后得到一個(gè)輸入,將兩者加起來(lái)就得到一張高分辨率圖像。這樣就大大加快了訓(xùn)練速度,收斂效果也更好。
DRCN
它還是分為三層。但是在非線性映射這一層,它使用了一個(gè)遞歸網(wǎng)絡(luò),也就是說(shuō),數(shù)據(jù)循環(huán)多次地通過(guò)該層。將這個(gè)循環(huán)展開的話,等效于使用同一組參數(shù)的多個(gè)串聯(lián)的卷積層。
RED
每一個(gè)卷積層都對(duì)應(yīng)一個(gè)非卷積層。簡(jiǎn)單來(lái)講,可以理解為是將一張圖片進(jìn)行了編碼,然后緊接著進(jìn)行解碼。它的優(yōu)勢(shì)在于解決了梯度消失的問(wèn)題,而且能恢復(fù)出更干凈的圖片。它和 VDSR 有相似的思路。中間卷積層與反卷積層的訓(xùn)練是針對(duì)原始圖片與目標(biāo)圖片的殘差。最后原圖會(huì)與訓(xùn)練輸出結(jié)果相加,得到高分辨率的圖片。
DRRN
在這個(gè)模型里你可以看到DRCN、VDSR的影子。它采用了更深的網(wǎng)絡(luò)結(jié)構(gòu)來(lái)提升性能。其中有很多個(gè)圖片增強(qiáng)層??梢岳斫鉃?,一張模糊的圖片,經(jīng)過(guò)多個(gè)增強(qiáng)層,一級(jí)級(jí)變得更加清晰,最終得出高清圖片。大家可以在名為tyshiwo的 Github 上找到源碼。
LapSRN
LapSRN 的特別之處在于引入了一個(gè)分級(jí)的網(wǎng)絡(luò)。每一級(jí)都只對(duì)原圖放大兩倍,然后加上殘差獲得一個(gè)結(jié)果。如果對(duì)圖片放大8倍的話,這樣處理的性能會(huì)更高。同時(shí),在每一級(jí)處理時(shí),都可以得到一個(gè)輸出結(jié)果。
SRDenseNet
它引入了一個(gè) Desent Block 的結(jié)構(gòu)。上一層網(wǎng)絡(luò)訓(xùn)練出的特征值會(huì)傳遞到下一層網(wǎng)絡(luò),所有特征串聯(lián)起來(lái)。這樣做的好處是減輕梯度消失問(wèn)題、減少參數(shù)數(shù)量。而且,后面的層可以復(fù)用之前訓(xùn)練得出的特征值,不需要重復(fù)訓(xùn)練。
SRGAN
它可以利用感知損失(perceptual loss)和對(duì)抗損失(adversarial loss)來(lái)提升恢復(fù)出的圖片的。
在這個(gè)模型中有兩個(gè)網(wǎng)絡(luò),一個(gè)是生成網(wǎng)絡(luò),另一個(gè)是判別網(wǎng)路,前者會(huì)生成高分辨率圖片,后者則會(huì)判斷這張圖是否是原圖,如果結(jié)果為“否”,那么前者會(huì)再次進(jìn)行訓(xùn)練、生成,直到可以騙過(guò)判別網(wǎng)絡(luò)。
以上這些神經(jīng)網(wǎng)絡(luò)模型都可以應(yīng)用于視頻處理中,但實(shí)際應(yīng)用還需要考慮很多因素,比如系統(tǒng)平臺(tái)、硬件配置、性能優(yōu)化。其實(shí),除了超分辨率,機(jī)器學(xué)習(xí)與實(shí)時(shí)音視頻有很多可結(jié)合的應(yīng)用場(chǎng)景,比如音視頻體驗(yàn)優(yōu)化、鑒黃、QoE 改進(jìn)等。我們將在今年9月的 RTC 2018 實(shí)時(shí)互聯(lián)網(wǎng)大會(huì)上,將邀請(qǐng)來(lái)自 Google、美圖、搜狗等公司技術(shù)專家分享更多實(shí)踐經(jīng)驗(yàn)與干貨。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4733瀏覽量
100417 -
計(jì)算機(jī)視覺(jué)
+關(guān)注
關(guān)注
8文章
1694瀏覽量
45901 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5463瀏覽量
120890
原文標(biāo)題:普通視頻轉(zhuǎn)高清:10個(gè)基于深度學(xué)習(xí)的超分辨率神經(jīng)網(wǎng)絡(luò)
文章出處:【微信號(hào):shengwang-agora,微信公眾號(hào):聲網(wǎng)Agora】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論