劉 穎,董占龍 ,盧 津,王富平
1.西安郵電大學 電子信息現場勘驗應用技術公安部重點實驗室,西安 710121
2.西安郵電大學 圖像與信息處理研究所,西安 710121
人臉圖像超分辨率(Super-Resolution,SR)重建[1]技術是通過SR 重建算法從低分辨率(Low Resolution,LR)人臉估計重建出高分辨率(High Resolution,HR)人臉的技術。因為人臉圖像是人們工作生活中關注度最高的多媒體內容之一,因此,通過彌補觀測到的LR人臉丟失的細節信息從而增強人臉分辨率是實際生活中亟待解決的問題。作為一種低成本的軟件技術,人臉超分辨率重建在公共監控、多媒體通信、人臉識別等圖像處理系統中得到廣泛研究與應用。20世紀60年代,Harris等人首次提出了SR 重建技術,隨后諸多學者掀起了對其的研究熱潮,并使之得到了長足發展。目前,圖像SR重建技術可分為三類:(1)基于插值的圖像超分技術;(2)基于重建的圖像超分技術;(3)基于學習的圖像超分技術。
基于插值的圖像SR 重建技術,以超分算法為理論基礎,可細分為:基于單幀圖像的最鄰近插值(Nearest Neighbor Interpolation)、雙線性插值(Bilinear Interpolation)、雙立方插值(Bicubic Interpolation)和樣條插值等算法,也有針對多幀圖像的非均勻采樣內插算法。基于插值的方法理論基礎簡單,計算量小,但是重建的圖像質量比較差;而基于重建的圖像SR方法是通過分析LR圖像提供的先驗信息降質過程進行重建的,該算法通過降質模型獲取先驗信息,重建效果受限于降質模型的有效性和噪聲的大小,即隨著圖像放大倍數的增大急劇下降。
鑒于以上兩類方法的不足,近年來,基于深度學習的學習型SR重建算法成為一大研究焦點。例如,Dong等人[2]提出了SRCNN 網絡,該網絡包含三層卷積神經網絡,是第一個基于深度學習的超分算法。為了增加網絡的深度,Kim 等人提出了 VDSR[3]和 DRCN[4],將網絡深度增加到了20 層。隨后,更多的基于深度學習的超分算法[5-8]不斷涌現。然而,這些超分方法產生模糊和過于平滑的輸出,重建的超分圖像普遍缺乏高頻紋理細節。為了解決這個問題,一些算法被提出來。典型的如,Dahl 等人[9]使用 PixelCNN 合成了真實的細節;Zhu 等人[10]將密集對應場估計與人臉超分辨率相結合;Yu 等人[11]對GAN[12]進行了研究,達到了創建感知現實的結果。然而,這些方法在超分辨率圖像空間中的應用面臨著許多問題,如計算復雜度[4]、訓練的不穩定性[11]、對姿態和遮擋變化[13]的魯棒性差等問題,Huang 等人將小波變換與深度學習相結合,提出了一種基于小波的多尺度人臉超分辨方法WaveletSRNet[14],將單幅圖像的超分辨率轉換為深度學習框架下的小波系數預測任務,實現了一種基于小波變換的柔性體積神經網絡,取得了較好的人臉重建效果。然而,重建的人臉圖像在局部細節紋理方面還有待深入研究。
鑒于此,本文在WaveletSRNet 網絡架構的基礎上,提出了基于注意力機制的稠密連接人臉超分算法。該算法主要由特征提取和圖像重建兩個部分組成,通過同時關注特征通道域和空間域的信息,建立多注意力域模塊。其中,通過改變信道和空間上的相互關系和權重,自適應地對特征進行加權重組,并且使用密集的稠密連接和長短連接將不同層的特征融合在一起,實現提升網絡性能。實驗結果驗證了本文算法的正確性;又與現有算法比較,表明了本文算法的優越性能,重建的人臉圖像具有更清晰的紋理細節特征。
本文研究的算法框架分為:特征提取子網絡和圖像重建子網絡,如圖1所示。
在特征提取子網絡中,首先輸入低分辨率圖像,通過卷積層(Conv)和一系列的稠密連接模塊(Dense Block,DB)后,使用連接層(Concat)將各模塊提取的特征圖進行連接;將連接的特征輸入圖像重建子網絡,通過卷積層(Conv)、批歸一化層(Batch Normalization,BN)、激活層(Relu)、多注意力域模塊(MADM)后,使用小波包逆變換(IDWPT)得到重建的高分辨率圖像HR。
特征提取子網絡結構如圖1左半部分描述,其由高分辨率圖像通過插值降采樣得到低分辨率圖像作為網絡的輸入,低分辨率圖像首先經過一個3×3 的卷積,得到特征圖,這個卷積層的作用是提取圖像的低級特征,同時擴展特征的通道數,通過長連接加入到每一個DB的輸入,以便同每一個DB模塊提取的高層語義特征進行融合。隨后,一系列DB用來提取圖像的高級語義特征。

圖1 算法整體框架示意圖
圖2是本文構建的DB模塊,其包括m個卷積層,每個卷積層后連接BN 層和Relu 層。如果每個卷積層產生c維的特征向量,則一個稠密連接模塊產生c×m維的特征向量。這里,c稱為增長系數,表示每個卷積操作為最后的輸出貢獻的信息量。與殘差連接模塊不同的是每一層可以將其之前的所有層提取的特征作為輸入,即:

式中,F0表示第一個卷積層輸出的特征圖,FDB1,FDB2,…,FDBn-1表示當前DB之前每個DB的輸出。

圖2 DB結構圖
通常,在神經網絡中,合理地使用跳躍連接可以有效地提高SR 重建性能。因此,構建的DB 模塊,鄰近層間都設計短的通道。以此加強通過深層網絡的信息流,從而緩解消失梯度問題;且DB可通過特性重用大大減少參量個數,減輕內存負擔,降低計算量,從而實現高性能。另外,采用DB作為基礎的卷積模塊,不同于當前超分的稠密連接網絡,而是在DB中加入了BN層,并移除了可刪除特征圖像素信息的池化層和丟棄層,將更利于超分圖像的重建。
在人臉圖像的超分任務中,由于需要將低分辨率圖像重建為高分辨率圖像,所以涉及到圖像尺寸需放大。現今研究中,主要有兩種策略:一是如SRCNN[2]和VDSR[3]所闡述,將低分辨率圖像直接插值到與高分辨率圖像一樣的大小,輸入神經網絡,但是這種方法由于輸入尺寸變大,增加可計算的復雜度,而且并沒有為圖像的重建帶來新的信息;另一種是輸入低分辨率圖像,使用反卷積層來擴展圖像的尺寸,雖然不會增加計算復雜度,但是反卷積操作在特征圖中引入額外的信息。正因為諸如此類問題的存在,本文采用網絡學習獲取小波域圖像,通過小波包的逆變換來實現圖像重建。基于此,圖像重建子網絡涉及多注意力域模塊(MADM)和小波包逆變換(IDWPT)。
計算機視覺中,卷積神經網絡通過提取圖像的特征從而進行各種任務,但是傳統的神經網絡其實是將全部特征等價對待,這是不符合實際情況的。而注意力機制的網絡通過給不同的特征分配相應的權重,使神經網絡更加關注“好的”特征,忽視“壞的”特征,從而提升網絡的性能。袁等人[15]將注意力機制用于圖像識別,構建了一個基于特征圖通道和子空間的注意力卷積模塊,在識別精度上獲得較大提升;孫等人[16]在目標檢測中引入與子區域特征和寬高比特性相關的注意力庫,生成注意力特征圖對原始候選框池化特征進行優化,取得了較大的精度提升;Li 等人[17]在人臉面部識別中引入注意力機制,感知人臉遮擋部分,將網絡的注意力集中到最具區分度的人臉遮擋部分,實現更好的面部識別精度。
針對網絡注意力域的不同,一般分為時間域、空間域、通道域。通常任務只關注特征的一個注意力域,比如通道域[18]或空間域[19]。為了使網絡可以關注到特征圖中更有效的信息,本文融合通道域和空間域,創建用于人臉超分任務中的多注意力域模塊,如圖3所示。
基于通道域的注意力機制如圖3 上半部分所示。上一層輸出的特征首先經過全局平均池化得到一個1×1×c的全連接層,其中c表示上一層特征的通道數,順著空間維度來進行特征壓縮,將每個二維的特征通道變成一個實數,這個實數某種程度上具有全局的感受野,并且輸出的維度和輸入的特征通道數相匹配。它表征著在特征通道上響應的全局分布,而且使得靠近輸入的層也可以獲得全局的感受野。隨后首先將特征維度降低到輸入的1/r,這樣做比直接用一個全連接層的好處在于:(1)具有更多的非線性,可以更好地擬合通道間復雜的相關性;(2)極大地減少了參數量和計算量,其中r表示降維壓縮比,r需要根據實驗來進行調整,r過大會造成有效信息的過分丟失,r太小計算復雜度過高。最后經過ReLu激活后再通過一個全連接層升回到原來的維度c,此時的全連接層表示特征圖每個通道的權重,與輸入特征圖進行相乘可得到通道注意力特征圖FCA。

圖3 MADM框架示意圖
其次,在空間域中,每一個卷積濾波器輸出一個H×W的特征圖,和人類視覺系統一樣,人們看一張圖時,總是會聚焦到圖中最重要的部分,同樣在神經網絡中,希望網絡能夠聚焦到特征圖中最重要的部分,所以給特征圖上每個像素賦予不同的權重來對它們的重要性進行區分。如圖3下半部分,前面卷積層提取出的特征被分成三個支路,分別經過一個1×1 的卷積層,用來減少通道的數量,降低計算復雜度。三個支路的輸出分別為Q、K、V,即:式中,WQ、WK、WV分別表示三個卷積層的參數,F為前面卷積層輸出的特征圖。

緊接著對上面兩個支路進行壓縮,此時,Q∈Rc×N,K∈Rc×N,V∈Rc×N。其中,c表示特征圖的通道數,N=H×W為每個通道像素的總個數。隨后,將Q進行轉置并與K進行相乘,通過softmax 函數,將空間特征權重歸一化到[0,1]之間,具體公式如下:

此時,S∈RN×N,sij表示特征圖中第i個像素對第j個像素的影響權重。

得到空間注意力特征圖FSA。隨后,將通道域和空間域的特征進行融合F=FSA+FCA,得到最終給予不同權重的特征圖,將其通過一個3×3 的卷積得到小波域的圖像,最后,通過小波包逆變換得到最終的高分辨率圖像。
在人臉超分任務中,普遍使用基于像素的均方誤差(Mean Square Error,MSE)作為損失函數。然而,正如文獻[4]所述,僅僅是最小化基于像素的均方誤差損失函數,會使重建圖像過于平滑,很難捕捉到高頻紋理細節,導致模糊的紋理重建效果。但是,利用高頻小波系數描述紋理細節,將超分辨率問題從原始圖像空間轉化為小波域,引入基于小波的損耗可以來幫助紋理重建,避免使用均方誤差損失導致的模糊的紋理重建效果。相比于直接在原始圖像空間中進行超分辨率,在小波域中可以將圖像分解成相同大小的小波系數序列,可以對不同頻率的信息分多支路進行重建,最后通過小波包逆變換進行重建。相比僅單獨使用整個圖像計算損失,每個支路的任務更為單一,從而使重建效果具有更多的高頻紋理細節。在損失函數中limg表示整個圖像的損失函數,而lwavelet表示不同頻率的小波系數的損失函數來約束網絡重建出各個頻率的小波系數。多個損失函數共同對網絡進行約束,使網絡重建出更清晰的圖像。同時,為了得到更清晰的紋理細節,使用VGG19中間層的輸出特征來計算感知損失。
具體損失函數如下:

式中,ωi表示第i個損失函數的權重,lwavelet、limg、ltexture和lperceptual分別為小波系數損失函數、圖像損失函數、紋理損失函數和感知損失函數,各損失函數的計算如下。
小波系數的損失函數為:

式中,C?和C分別表示網絡預測的小波系數和真實高分辨率圖像產生的小波系數。
整個圖像的損失函數為:

同樣,為了防止小波系數為0,加入紋理損失為:

由于在深度學習的網絡中,淺層網絡一般提取紋理結構等基礎特征,隨著網絡的加深,就會得到更多的深層語義特征,所以在預訓練的VGG19網絡中,分別輸入重建圖像和原始圖像,得到其淺層網絡輸出的紋理結構特征來計算感知損失,以此來約束重建圖像得到更多的紋理細節信息。提取預訓練的VGG19網絡中間層的特征來計算感知損失:

式中,φ?和φ表示預測高分辨率圖像和真實高分辨率圖像輸入VGG19 網絡后中間層提取出的特征。最后,聯立損失函數式(6)~(9),進行加權整合,得到總的損失函數lfull,如式(5)所示。
使用LFW、Celeba 以及Helen 三個主要人臉數據集,其中 Celeba 數據集有 202 599 張人臉圖像,LFW 數據集包括13 000多張人臉圖像,Helen數據集包含2 230張人臉圖像。在實驗中,分別挑選Celeba 數據集中的10 042張圖像和LFW數據集中的12 233張人臉圖像作為訓練集;測試時,分別在Celeba 數據集中挑選1 000張,在LFW 數據集中挑選1 000 張,在Helen 數據集中挑選330張圖像,且所有測試圖像均不在訓練集中。所有圖像均被裁剪到128 pixel×128 pixel,并將訓練數據使用插值進行下采樣輸入網絡中,本文實驗均在Pytorch深度學習框架下,硬件平臺為TeslaV100 顯卡,顯存為32 GB。
實驗中,采用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結構相似性[20](Structural Similarity Index,SSIM)作為性能評價指標。其中,PSNR計算為:

式中,n為每像素的比特數,一般取8,即像素灰階數為256。PSNR 的單位是dB,數值越大表示失真越小。其中,MSE表示當前圖像X和參考圖像Y的均方誤差:

式中,H、W分別為圖像的高度和寬度。
SSIM的計算為:

式中,l(X,Y) 、c(X,Y)、s(X,Y)分別表示亮度比較、對比度比較、結構比較:

其中,μX、μY分別表示圖像X和Y的均值,σX、σY分別表示圖像X和Y的方差,σXY表示圖像X和Y的協方差,SSIM 是一個0 到1 之間的數,越大表示輸出圖像和無失真圖像的差距越小,即圖像質量越好。
3.1.1 批歸一化(BN)的影響
BN層作為一種有效的歸一化方法被廣泛應用于深度學習的各個領域。文獻[21]認為,在網絡中加入BN層不利于超分圖像的重建。實驗在相同的網絡中分別加入BN 層和移除BN 層,結果發現:BN 層有利于人臉圖像的重建,在相同的網絡結構中加入BN,PSNR 和SSIM 均得到提升。這主要因為不同于通用圖像的超分,人臉圖像具有相似的結構,BN層有利于增強人臉圖像的結構信息。具體實驗結果如表1所示。

表1 相同網絡下有無BN層實驗結果
3.1.2 稠密連接模塊規模的分析
在稠密連接中,主要有3個參數影響到該模塊的規模,分別為稠密連接模塊的個數n,模塊中卷積層的數量m,以及每個卷積操作輸出的特征通道數(增長系數)c。實驗中,分別選擇不同的參數來觀察其對實驗結果的影響,發現在超分網絡中,增加網絡的深度(m、n)和寬度(c),有利于圖像的重建,但是并不是網絡越深越好,網絡過深有可能陷入局部最優,從而降低網絡性能。具體的實驗結果如表2和表3所示。

表2 不同稠密連接模塊的實驗結果

表3 不同增長系數的實驗結果
為了驗證提出算法的優越性能,采用雙三次插值算法(Bicubic Interpolation)、SRCNN、VDSR、WaveletSRNet、EDSR及本文算法在相同數據集上進行訓練與測試,其結果如圖4和圖5所示。圖4為本文算法與現存的各算法在SSIM性能上的曲線圖,由圖中可以看出,本文算法在三個不同的數據集上均取得了較好的性能,在Celeba數據集以及Helen 數據集上均取得了最好的SSIM 指標,在LFW數據集上稍遜于VDSR算法,但在視覺效果上要優于VDSR 算法,如圖6 所示;圖5 為各算法在PSNR 指標上的性能曲線圖,相比于Wavelet 方法,本文算法在三個數據集上PSNR 分別提升0.22 dB、0.44 dB、0.39 dB,并且本文算法在三個數據集上均取得了最高的PSNR值,證明本文算法的優越性。

圖4 SSIM對比曲線

圖6 實驗結果示例
圖6展示了不同方法的實驗結果圖像示例,可以看到,SRCNN的超分結果雖然在PSNR和SSIM上不如直接進行插值的Bicubic方法,但是在視覺效果上要優于后者,但是在圖像邊緣會出現黑色的橫紋;VDSR和EDSR相對SRCNN 方法取得一些改善,并且取得了較高的PSNR,但是其超分結果過于平滑,無法恢復出牙齒等紋理細節;WaveletSRNet 雖能夠恢復出一些細節信息,但局部細節紋理的清晰度依然存在改進空間,相比之下,本文算法重建出的人臉圖像具有更清晰的牙齒等紋理細節特征,并且在特征邊緣避免了像素失真問題。得益于為網絡中的不同通道和不同空間賦予了不同的權重,使對重建結果有利的特征和通道發揮更大的作用,并且降低不利特征和通道對結果的影響,使得最終重建出更好的結果。
本文提出了一種基于注意力機制的稠密連接人臉超分算法,在網絡中使用多注意力域模塊,并且使用稠密連接和長短連接。通過實驗分析,證明了與一般超分任務不同,人臉圖像由于具有相似的結構,使用批歸一化層有利于增強人臉圖像的結構信息;并且通過對稠密連接模塊規模的實驗,證明在人臉超分任務中,網絡結構并不是越深越好。最后,通過與現有算法比較,本文方法重建的人臉圖像在量化指標和主觀視覺效果上均優于其他幾種重建方法,在重建的人臉圖像上能夠恢復出更清晰的紋理細節。
相比于傳統的深度學習超分方法,本文方法重建的人臉圖像雖然在高頻紋理細節上得到一定的改進,但是相對于真實圖像而言,補充的細節雖然是細節,但是可能和真實的細節不同,紋理結構比較單一,并且和實際不符,不過總歸是有了細節,視覺感官上要更好一些。而生成式對抗網絡通過鑒別器來對重建圖像和真實圖像進行鑒別,直到鑒別不出兩者的區別,使得重建的細節更加符合真實圖像的細節。加入生成對抗網絡,在訓練階段增加了網絡的規模,但是在測試階段只需要保留生成器進行圖像重建。