茍東強
(重慶郵電大學(xué)軟件工程學(xué)院 重慶 400065)
深度學(xué)習(xí)是機器學(xué)習(xí)的一個分支,這種技術(shù)已經(jīng)出現(xiàn)很久了。所謂深度學(xué)習(xí),就是“很多層”的神經(jīng)網(wǎng)絡(luò),從簡單的部件構(gòu)成復(fù)雜對象的過程。深度學(xué)習(xí)非常適合圖像處理,尤其是圖像超分辨率重構(gòu)。2014年,Dong等[1]使用卷積神經(jīng)網(wǎng)絡(luò)進行圖像超分辨率重建,提出了SRCNN。2017年,Ledig等[2]提出SRGAN方法,將生成對抗網(wǎng)絡(luò)應(yīng)用到圖像超分辨率算法中。
本文著重從基于生成對抗網(wǎng)絡(luò)的圖像超分辨率方法,使用上采樣的圖像超分辨率方法,基于卷積神經(jīng)網(wǎng)絡(luò)的圖像超分辨率方法等三方面進行了研究,解決了傳統(tǒng)圖像超分辨率方法準(zhǔn)確度和效率不足的問題。
在深度學(xué)習(xí)出現(xiàn)之前,就已經(jīng)有圖像超分辨率重構(gòu)的方法了。1964年,Harris[3]提出了圖像超分辨率處理的概念,使用的是外推頻譜方法,效果并不理想。20世紀(jì)80年代,Tsai[4]利用傅里葉變換建立低分辨率圖像與高分辨率圖像之間的線性關(guān)系,結(jié)合多幅低分辨率圖像重建出一幅高分辨率圖像,但并沒有主流應(yīng)用。21世紀(jì)初,Chang等[5]提出了基于鄰域的圖像超分辨率重建方法,該方法利用高分辨率圖像塊與低分辨率圖像塊之間的對應(yīng)關(guān)系,重建高分辨率圖像。上述方法對系統(tǒng)性能要求較高,且效果不好。因此,將深度學(xué)習(xí)引入圖像超分辨率領(lǐng)域是有必要的。
在介紹深度學(xué)習(xí)之前,先給出機器學(xué)習(xí)的概念。機器學(xué)習(xí)是一門致力于研究如何通過計算手段,利用經(jīng)驗來改善系統(tǒng)性能的學(xué)科。這里的“經(jīng)驗”在計算機中以數(shù)據(jù)的形式存在,機器學(xué)習(xí)中有一個重要概念,就是神經(jīng)元模型和生物學(xué)中的神經(jīng)元類似,這里的神經(jīng)元也會接受輸入并產(chǎn)生輸出。神經(jīng)元能接受多個輸入,每個輸入都被賦予了相應(yīng)的權(quán)值,當(dāng)總輸入大于閾值時,就會產(chǎn)生輸出。圖1是一個簡單的神經(jīng)元模型。
當(dāng)一個神經(jīng)元的輸出作為另一個神經(jīng)元的輸入時,就有了層的概念。一個典型的多層神經(jīng)網(wǎng)絡(luò)可由輸入層、隱層、輸出層構(gòu)成。圖2就是一個雙隱層神經(jīng)網(wǎng)絡(luò)。而深度學(xué)習(xí)則是含有很深層神經(jīng)網(wǎng)絡(luò)的模型,也即含有很多的隱層的神經(jīng)網(wǎng)絡(luò)。由于隱層的增多,相應(yīng)的神經(jīng)元連接權(quán)、閾值等參數(shù)也就多了,模型的復(fù)雜度也大幅增加。
近年來,計算機的性能飛速發(fā)展,對AI的研究逐漸深入。這是深度學(xué)習(xí)發(fā)展的必要條件。將深度學(xué)習(xí)技術(shù)應(yīng)用到圖像超分辨率處理上,是有必要的。這能解決人們對高分辨率圖片的需求,而且相比傳統(tǒng)方法的效果更好。
專欄小編:剛才我們談到經(jīng)濟下行、中美貿(mào)易摩擦、提振內(nèi)需、就業(yè)問題、民營經(jīng)濟,這些問題疊加在一起,與其說給企業(yè)的試卷不如說是給政府部門的試卷。那么如何解決?大家來議一議吧。
圖像超分辨重建是計算機視覺和圖像處理領(lǐng)域的重要研究方向之一。下面介紹這種技術(shù)在單幅圖像上的應(yīng)用,單幅圖像超分辨重建僅利用一幅低分辨率圖像為輸入,重建高分辨率圖像。下面將介紹3種使用深度學(xué)習(xí)進行圖像超分辨率重構(gòu)的方法。
3.1.1 生成對抗網(wǎng)絡(luò)原理
生成對抗網(wǎng)絡(luò)(GAN)的基本原理是,生成器依靠從大量樣本中學(xué)習(xí)的規(guī)律來生成新的圖像,發(fā)送給判別器,判別器的目的則是利用從大量樣本中學(xué)習(xí)的規(guī)律來判斷輸入的圖像是來自生成器還是真實樣本。兩者互相反饋,生成器不斷生成更真實的樣本去“欺騙”判別器,判別器則通過之前的判斷過程不斷提升抗“欺騙”能力。經(jīng)過大量訓(xùn)練后,生成器就能生成以假亂真的圖像。GAN模型示意圖如圖3所示。
3.1.3 SRGAN的網(wǎng)絡(luò)結(jié)構(gòu)
基于生成對抗網(wǎng)絡(luò)的圖像超分辨率重構(gòu)的網(wǎng)絡(luò)結(jié)構(gòu)主要由生成器和判別器組成,網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示在樣本訓(xùn)練階段,低分辨率源圖像先由生成器生成超分辨率圖像,然后判別器結(jié)合之前的訓(xùn)練模型和高分辨率真實數(shù)據(jù)對生成器傳來的超分辨率圖像進行判別,判斷其是否為真實圖像,如果判定結(jié)果為真,則輸出該圖像,如果判定結(jié)果為否,則將圖像返回給生成器,生成器則會對自身參數(shù)進行調(diào)節(jié),然后再次生成新的超分辨率圖像傳遞給判別器進行判別。
3.1.2 SRGAN基本模型
基于生成對抗網(wǎng)絡(luò)的圖像超分辨率重構(gòu)(SRGAN)的基本原理是,生成器依靠從大量樣本中學(xué)習(xí)的規(guī)律來對原始低分辨率圖像進行插值處理,生成具有更高分辨率的圖像,發(fā)送給判別器,判別器的目的則是利用從大量樣本中學(xué)習(xí)的規(guī)律來判斷來自生成器的高分辨率圖像是否準(zhǔn)確以及分辨率是否達標(biāo)。兩者互相反饋,生成器不斷生成更準(zhǔn)確的圖像給判別器,判別器則通過之前的判斷過程不斷提升判斷能力。經(jīng)過大量訓(xùn)練后,生成器就能生成足夠準(zhǔn)確和清晰的圖像。在實際訓(xùn)練中,首先將原始圖像輸入給生成器,生成器依托訓(xùn)練數(shù)據(jù)生成一個高分辨率圖像,并把該圖像輸出到判別器,判別器通過內(nèi)置的二分類器對圖像進行檢驗,判斷是否符合要求,如果正確,則將該圖像作為最終結(jié)果輸出,如果失敗則返回給生成器,并將該次判斷作為一個新的訓(xùn)練樣本,這種方法稱為SRGAN。SRGAN將低分辨率圖像輸入至生成器G中進行圖像重建,由判別器D將生成圖像與真實圖像對抗訓(xùn)練,最后輸出訓(xùn)練后的圖像[6]。SRGAN基本結(jié)構(gòu)示意圖如圖4所示,低分辨率源(LR Source)傳遞給生成器G,生成器通過學(xué)習(xí)得到的模型結(jié)合插值算法,生成一個超分辨率圖像(SR Image)傳遞給判別器D。D接受的樣本,如果是真實高分辨率目標(biāo)(HR Target),則標(biāo)記為1,D接受的樣本如果判定為來自生成器G,則標(biāo)記為0。生成器的目標(biāo)就是讓自己生成的圖像在判別器上的表現(xiàn)與真實數(shù)據(jù)一致,即判別器對生成圖像標(biāo)記為1。兩者互相對抗迭代優(yōu)化。
3.1.4 生成器的結(jié)構(gòu)
生成器主要用于接受原始的低分辨率圖像,并提取圖像中的信息,并將這些特征信息結(jié)合之前進行的樣本訓(xùn)練進行插值處理,從而生成高分辨率圖像。生成器的中間層使用的是一個n×n的卷積核,使用基于領(lǐng)域的上采用方法進行插值處理。由于輸入的是原始圖像,因此性能開銷較低。同時為了使神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過程更加穩(wěn)定,可以在初始低分辨率源圖像傳遞給上采樣層前的多個隱藏上添加n個殘差塊。
3.1.5 判別器的結(jié)構(gòu)
判別器用于接收生成器輸出的圖像,并對其進行檢驗,結(jié)合之前訓(xùn)練產(chǎn)生的模型對輸入的圖像進行判定,判定結(jié)果有兩種可能正確和錯誤。因此,判定器本質(zhì)是一個二分類器,在判定過程中,需要使用到?jīng)Q策樹的理論,改進決策樹模型也可以提高判定器的效率。判定器的卷積層也有一個類似生成器的n×n卷積核。判定器使用的激活函數(shù)是Sigmoid函數(shù)。
基于插值的上采樣方法指通過傳統(tǒng)的圖像插值操作進行圖像尺寸的放大。常用的插值方法主要有最近鄰插值、雙線性插值和雙立方插值[7]。但上采樣方法是可以和深度學(xué)習(xí)結(jié)合起來的。基于深度學(xué)習(xí)的上采樣方法指以端到學(xué)習(xí)的方式進行上采樣,可以通過在網(wǎng)絡(luò)結(jié)構(gòu)中加入轉(zhuǎn)置卷積層或者亞像素卷積層實現(xiàn)。該模型首先會利用大量的圖像樣本進行訓(xùn)練,通過訓(xùn)練建立一個學(xué)習(xí)模型,該模型的目的是讓系統(tǒng)能對像素進行補充。例如,當(dāng)系統(tǒng)進行一組關(guān)于蘋果圖像的樣本訓(xùn)練后,系統(tǒng)能知道蘋果圖像中紅色像素點的鄰近像素也應(yīng)該是紅色或者接近紅色的顏色。當(dāng)系統(tǒng)拿到低分辨率圖像后,先對其進行插值放縮處理,例如讓其長寬均拉伸為2倍,這樣該圖片的分辨率也就變?yōu)榱嗽紙D像的4倍。當(dāng)然多出的像素用空白進行填充,系統(tǒng)利用之前訓(xùn)練得到的學(xué)習(xí)模型對這些像素進行填充,就能獲得超分辨率的效果。該模型也會用到GAN網(wǎng)絡(luò),也需要大量的學(xué)習(xí)樣本、學(xué)習(xí)過程中也會不斷進行生成對抗反饋。
3.3.1 SRCNN原理
基于卷積神經(jīng)網(wǎng)絡(luò)的圖像超分辨率方法(SRCNN)相比SRGAN方法有一定的優(yōu)勢,其中一個原因是SRCNN算法可以在原始低分辨率源圖像和高分辨率目標(biāo)圖像之間建立一個映射[8]。該網(wǎng)絡(luò)采用梯度下降方法進行神經(jīng)網(wǎng)絡(luò)訓(xùn)練。神經(jīng)網(wǎng)絡(luò)中,位于前層的神經(jīng)元可以從原始低分辨率源圖像中提取出像素矩陣的特征值,這些特征值將通過神經(jīng)元連接傳遞給后層神經(jīng)元,后層神經(jīng)元接收到前層傳遞過來的特征值后,可根據(jù)之前訓(xùn)練得出的模型恢復(fù)出一些原始低分辨率源圖像丟失的像素信息,這樣即可合成出一些圖像的高分辨率信息。
3.3.2 SRCNN的網(wǎng)絡(luò)結(jié)構(gòu)
SRCNN使用三個卷積層,在原始低分辨率源圖像和高分辨率目標(biāo)圖像之間有端到端的映射[9]。該網(wǎng)絡(luò)結(jié)構(gòu)可直接學(xué)習(xí)低分辨率圖像與高分辨率圖像之間的映射,其網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
當(dāng)該模型接收到原始低分辨率源圖像時,先會使用插值算法對其進行縮放,這里將使用插值算法后生成的圖像稱為X,高分辨率目標(biāo)圖像稱為Y,經(jīng)過三個卷積層后輸出的最終圖像稱為F(X),該神經(jīng)網(wǎng)絡(luò)訓(xùn)練的目標(biāo)就是使F(X)無限接近于Y,這里的插值算法使用Bicubic插值,因為Bicubic插值算法的效果相對較好。上述過程稱為SRCNN 方法的預(yù)處理操作步驟,目的使用插值方法將原本的低分辨率圖像放大到目標(biāo)尺寸,作為后面的三層卷積核模型的輸入[10]。然后通過三層卷積操作,學(xué)習(xí)低分辨率圖像與高分辨率圖像之間的映射關(guān)系,該卷積網(wǎng)絡(luò)主要由以下3個步驟組成:
1)特征提取和表示:該操作使用64個9×9的卷積核,從低分辨率圖像中提取特征,并將其表示為一個高維向量。圖像塊的提取是在原始低分辨率源圖像X上按照一定的像素矩陣分割算法提取出固定像素數(shù)的低分辨率圖像塊,之后便將每個圖像塊表示為一個高維向量,再將這些高維向量作為原始低分辨率源圖像的特征圖。以上操作的卷積運算由下列公式1和公式2表示,其中的*表示卷積運算
2)非線性映射:該操作使用32個1×1的卷積核,將原本的高維向量映射成為另一個向量,用于增加網(wǎng)絡(luò)的非線性。在經(jīng)過特征提取和表示后,將得到的每個高維向量通過非線性的映射方式對應(yīng)到另一個向量上。將該向量稱為目標(biāo)向量,這些目標(biāo)向量可以轉(zhuǎn)化為一個高分辨率圖像塊,這些高分辨率圖像塊即可組成高分辨率圖像的特征圖。上述非線性映射算法可由公式3和公式4表示。
3)重建:該操作使用5×5大小的卷積核,輸出1個特征圖即為最終重建出的高分辨率圖像。將非線性映射得到的高分辨率圖像塊按照一定的算法結(jié)合起來,最終得到目標(biāo)圖像。該操作也可看作是一種卷積運算。因此可表示為下述公式5和公式6。
基于深度學(xué)習(xí)的圖像超分辨率重構(gòu)技術(shù)在計算機視覺領(lǐng)域有著廣泛應(yīng)用。計算機視覺主要致力于圖像識別和目標(biāo)檢測,基于深度學(xué)習(xí)的圖像超分辨率重構(gòu)由于其高效和準(zhǔn)確的特性,能使圖像的分辨率和保真率大幅提升,圖像從僅可檢測水平提升到可準(zhǔn)確識別水平。這樣計算機在得到一張分辨率不足的圖像時,便能準(zhǔn)確識別圖像的內(nèi)容。一個較為常用的例子是目標(biāo)物識別。比如分析某一區(qū)域的人流量或人臉識別,有了圖像超分辨率技術(shù),計算機在分析圖像時就不必采用數(shù)據(jù)量巨大的高分辨率圖像,從而大幅節(jié)省性能。
從視頻中截取圖像是十分常用的,不論是在工業(yè)應(yīng)用或是日常生活中。當(dāng)我們觀看視頻時,由于視頻本身就是由每秒幾十幀的圖像組成,并且視頻具有動態(tài)補償技術(shù),因此,視頻每一張圖像的噪聲在幀與幀的過渡中得以掩蓋。然而,當(dāng)我們從視頻中截取一張圖像時,圖像的噪聲將被暴露,圖像的內(nèi)容將難以被準(zhǔn)確識別。使用基于深度學(xué)習(xí)的圖像超分辨率重構(gòu)將解決這種問題。該算法將多張連續(xù)圖像結(jié)合在一起,后一幀圖像將對上一幀圖像進行采樣,分析像素的位移向量,并結(jié)合系統(tǒng)通過深度學(xué)習(xí)進行的大量樣本訓(xùn)練得出的模型,從而實現(xiàn)視頻靜止幀的去動態(tài)模糊和高清化。這一技術(shù)在視頻的靜態(tài)圖像捕捉上起到了重要作用。
環(huán)地衛(wèi)星對地球進行掃描并輸出圖像是十分常用的。由于衛(wèi)星與地表的距離極其遙遠,并且高分辨率相機造價昂貴,不是所有衛(wèi)星都能配備好的高分辨率相機,因此,衛(wèi)星輸出的圖像往往是模糊的。這時,使用基于深度學(xué)習(xí)的圖像超分辨率方法對拍攝的圖像進行超分辨率,從而得到高清的地表掃描圖像。這對地球地形資料庫的建立以及地面目標(biāo)識別有著重要的作用。
本文對基于深度學(xué)習(xí)的圖像超分辨率重構(gòu)進行了研究,包括使用生成對抗網(wǎng)絡(luò)的圖像超分辨率重構(gòu),基于插值的圖像超分辨率修復(fù)以及基于卷積神經(jīng)網(wǎng)絡(luò)的圖像超分辨率重構(gòu),說明了基于深度學(xué)習(xí)的方法進行的圖像超分辨率重構(gòu)相比傳統(tǒng)方法在效果和性能上的優(yōu)勢。文末列舉了圖像超分辨率重構(gòu)技術(shù)的應(yīng)用現(xiàn)狀,體現(xiàn)研究價值。
隨著計算機科技的發(fā)展,多媒體技術(shù)已滲透了人類世界的各個領(lǐng)域,科技、工業(yè)、教育、娛樂等信息傳播都離不開圖像,圖像處理越來越重要。人們對圖像質(zhì)量的要求也越來越高。如果使用傳統(tǒng)方法,高質(zhì)量的圖像不管是創(chuàng)建還是傳播都對系統(tǒng)性能有著很高的要求。因此,基于深度學(xué)習(xí)的圖像處理技術(shù)十分重要。目前已經(jīng)有很多高校、科研機構(gòu)、企業(yè)加入了基于深度學(xué)習(xí)的圖像處理的研究行列,這對該領(lǐng)域的發(fā)展很有幫助。