賈 凡,張英俊,謝斌紅
(太原科技大學 計算機科學與技術學院,太原 030024)
近年來,隨著科技時代的快速發(fā)展,手機、攝像機等智能設備已經成為人們日常拍攝的主要工具,但在實際應用時,運動模糊通常會出現在手持智能設備拍攝的照片圖像或包含運動物體的低幀速率視頻中.圖像模糊會降低人類的感知質量,并對后續(xù)的計算機視覺分析提出挑戰(zhàn).為此從模糊圖像中恢復潛在的銳利圖像不僅可以提高圖像的視覺效果,還有利于其他的視覺任務,如目標檢測和識別[1].
拍攝過程中造成視頻圖像模糊的原因可以分為運動模糊、失焦模糊和高斯模糊3大類.其中運動模糊是造成視頻圖像退化的主要原因,也是研究的熱點之一.在進行科學研究和實際問題的處理中,模糊模型可以表示為:
其中,IB是模糊圖像,IS是銳化圖像,K(M)是由運動場M確定的未知模糊核,?表示卷積,N是噪聲.根據模糊核 K(M)是否已知,運動視頻圖像去模糊方法可劃分為非盲去模糊和盲去模糊兩大類.早期的工作主要集中在非盲去模糊,根據相機運動的信息,往往會假定一個運動視頻圖像的模糊函數(核),以此為基礎對模糊圖像 IB進行反卷積,從而得到去模糊的圖像IS.近幾年,許多非盲去模糊的方法都被提出,如Schmidt U[2]、Ren[3]、Richardson-Lucy[4]方法都利用各種數學方法模擬出退化機理(模糊核),再反卷積對模糊圖像進行重新處理.但該類模擬出退化機理的方法需要花費大量時間推理,并且很難找到一個模糊核滿足所有像素點.
盲運動去模糊方法主要目標是如何有效地抑制噪聲對視頻圖像的影響,從而提高對視頻圖像的恢復質量.在實際處理中,盲去模糊算法的關鍵在于能夠精確估算模糊的核函數.早期盲去模糊算法依賴于自然圖像的先驗去模糊的方法.2006年Fergus等[5]用混合高斯模型來約束條件服從自然圖像梯度分布的規(guī)律,利用變分貝葉斯方法獲得模糊核函數,然后使用RL算法對圖像進行去模糊處理.2013年Xu等[6]利用一種參數化的先驗計算模型對每次迭代后的模糊核和銳化圖像的進行估計改進.這類方法的缺點是運算時的成本高,并且這類方法在用來處理具有一個更大圖像尺度的模糊動態(tài)圖像時,穩(wěn)定性也會更差.
由于傳統(tǒng)去模糊方法存在著計算量大、受噪聲影響大、對模糊核估計要求較高等缺點,因此基于深度學習的去模糊方法得到了迅速發(fā)展.目前,卷積神經網絡(Convolutional Neural Networks,CNN)[7]在圖像的去模糊領域中已被廣泛應用.2015年Sun等[8]提出了利用CNN預測運動圖像模糊概率分布的深度學習方法,輸入為已知模糊概率分布的模糊圖像,使得訓練輸出的模糊概率和已知先驗信息的模糊概率同分布,然后再反卷積得到清晰圖像.2017年Nah等[9]提出一種以端到端的方式直接去除動態(tài)場景模糊的深度多尺度卷積網絡; Ramakrishnan等[10]利用條件生成對抗網絡框架與卷積神經網絡相結合的方法,進行盲無核圖像去模糊處理; Kupyn等[1]用條件生成對抗網絡和內容損失函數相結合的方法,直接去除運動所產生的圖像模糊.這些方法避免了模糊核的估計問題,直接端到端的生成銳化圖像,并且取得較好效果,但缺點是推理速度慢,難以達到對模糊視頻圖像的實時處理.
針對上述研究,本文提出了一種基于輕量級生成對抗網絡的實時視頻圖像去模糊新模型,避免了對模糊核的估計,以端到端的方式直接實現快速高效的視頻圖像復原.
2014年,由Goodfellow等[11]提出的生成對抗網絡(Generative Adversarial Network,GAN)可以使用生成器生成逼真的高質量圖像,并為計算機視覺應用提供了新的技術和手段.GAN提出的初衷是為了判斷生成人工數據樣本的質量,目前已滿足了許多領域的研究和應用需求[12],如語音和語言處理[13]、圖標設計[14]、電腦病毒檢測[15]等.
GAN模型啟發(fā)于博弈論中的納什均衡[16],生成對抗網絡模型如圖1所示,它包括生成網絡(Generative net,G)和判別網絡(Discriminative net,D)兩個部分.兩個網絡對抗訓練交替進行,生成網絡接受噪聲作為輸入,輸出生成數據,判別網絡接受生成數據和真實數據更新參數進行優(yōu)化時固定生成網絡參數,目的是將它們區(qū)分開判斷真假.更新參數優(yōu)化生成網絡時固定判別網絡參數,目的是提高生成數據的可信度.
圖1 生成對抗網絡模型
GAN目標函數定義為:
本文引用GAN網絡的思想,為了達到實時高效的視頻圖像去模糊效果,在生成網絡部分選用輕量級MobileNet,該網絡具有計算量少,體積小,精度高等優(yōu)勢.MobileNetV1[17]中使用了大量的深度可分離卷積,它是由一層深度卷積(DepthWise convolution,DW)和一層逐點卷積(PointWise convolution,PW)組合而成;MobileNetV2[18]中引入了Bottleneck塊,該塊第1層使用逐點卷積升維擴充通道數提取更多特征,第2層使用深度卷積進行特征融合,其激活函數均使用ReLU6,第3層使用逐點卷積降維,降維后使用Linear激活函數; MobileNetV3[19]分為Large和Small兩個版本,它們分別針對高資源和低資源的使用情況,在MoblieNetV2的基礎上將5×5大小的深度卷積代替了部分3×3的深度卷積.引入并改進Squeeze-and-Excitation(SE)模塊[20]使得有效的權重大,無效或效果小的權重小,可以訓練出更好的模型,并且減少了參數量和計算量,還有部分ReLU激活函數被H-Swish(HS)激活函數替代以提高模型精度,MoblieNetV3(Small)網絡結構如表1,其中,NL(NonLinear)表示使用的非線性激活函數有HS和RE兩種,NBN(No BatchNormalization)表示不使用批量標準化,k類表示1×1卷積抽取用于訓練最后分類器的特征,最后劃分到k類.
表1 MobileNetV3(Small)網絡結構
另外,在圖像的去模糊領域里,感受野的選取對于去模糊問題有著重要作用,為了使得去模糊后的視頻圖像紋理細節(jié)豐富和美觀,就需要通過選取多個感受野進行特征提取,從而獲得更多的圖像上下文語義信息.因此,本文方法又加入了多尺度感受野模型特征金字塔網絡(Feature Pyramid Net,FPN).FPN模型最初設計用于目標檢測[21],它產生多個特征映射層,這些特征映射層編碼不同的語義,并且包含更好的質量信息.FPN有自下而上和自上而下的兩條路徑,其中,自下而上的路徑是使用卷積網絡提取不同尺度的特征,在該過程中空間分辨率被下采樣,可以提取和壓縮更多的語義信息.另一方面,通過自上往下的路徑,FPN從語義豐富的層重建出更高的空間分辨率.自下而上和自上而下通道之間的橫向連接補充了高分辨率細節(jié),有助于定位物體.
生成網絡在DeblurGAN模型的基礎上修改添加了多尺度特征FPN框架和輕量級MoblieNetV3(Small)主干網兩部分,主干網絡一共有16層,本文選取表1中的5層(1、2、4、9、12)提取圖像特征,并作為多尺度FPN模型不同尺度的特征信息來進行合并,由此生成更清晰的去模糊圖像.本文模型利用MoblieNetV3的輕量快捷和FPN重建的高分辨率豐富語義信息特點,使生成網絡在速度和精度之間取得了平衡,生成網絡模型如圖2所示.
圖2 生成網絡模型
生成網絡具體實現過程如下:
1)如表1,首先對輸入的模糊圖片256×256×3進行3×3的有效卷積下采樣,得到第一個128×128×16的特征圖lateral0.
2)隨后再通過主干網提取4個不同尺度特征:64×64×16(lateral1),32×32×24(lateral2),16×16×48(lateral3),8×8×96(lateral4).
3)將lateral1-lateral4進行1×1的卷積改變特征通道數為128,并進行2倍上采樣,與上一層的特征lateral融合分別得到特征圖map1-map4,將latetal0進行1×1的卷積改變特征通道數為64 map0.
4)將map1-map4進行3×3相同卷積改變通道數為64并上采樣到原輸入尺寸的1/4大小并連接成一個張量(64×64×256),其中包含不同級別的語義信息.將該張量如同上述操作相同卷積后通道數變?yōu)?4.
5)將該張量2倍上采樣與map0進行特征融合后再次二倍上采樣并進行3×3下相同卷積通道變?yōu)?,恢復原始圖像大小并減少偽影.
6)最后引入了一個從輸入到輸出的直接跳過連接,以便學習集中在剩余部分.
判別器網絡的架構與PatchGAN[22]相同.為了使得判別網絡在輔助生成網絡生成更加逼真的去模糊圖像,本文在PatchGAN上設置了雙尺度判別器,分別為尺寸70×70的局部特征判別器和256×256的全局圖像判別器來產生兩個對抗性損失,以便捕獲圖像紋理的局部連續(xù)性和圖像的全局特征,從而為生成網絡提供更加豐富的信息,判別網絡如圖3所示.
圖3 判別網絡模型
本文將像素空間損失、內容損失和對抗損失相結合訓練網絡.其中Ladv包含了局部判別器損失(Lpadv)和全局判別器損失(Lgadv).a、b、c為權重因子,用于平衡各項損失函數,總體損失函數定義為:
(1)對抗損失
GAN早期的優(yōu)化對抗損失是基于JS(Jensen Shannon divergence)和KL(Kullback Leibler divergence),但是這種優(yōu)化方式會使訓練過程變得不穩(wěn)定,并且很容易導致梯度消失和模型崩潰.針對上述問題,2017年Gulrajani等[23]提出WGAN-GP,使網絡訓練收斂速度加快,產生更多的紋理細節(jié)信息和視覺更好的銳利圖片.2018年Jolicoeur-Martineau認為對抗損失中真實數據的概率應該是一個逐步下降的過程,假數據的概率應該是一個逐步上升的過程,這是以往標準GAN所欠缺的.故此提出了相對論判別器(relativistic discriminator)[24],本論文采用當中具有梯度懲罰的RaGAN-LS對抗損失來訓練:
其中,S表示清晰圖像,P表示概率,G(B)表示生成器生成的圖像,S~Psharp(S)表示在真實清晰圖像集中取樣,B~Pblurred(B)表示在生成圖像集中取樣,E為期望值,相比于其他GAN相比,RaGAN-LS可以顯著提高網絡訓練速度和穩(wěn)定性,所產生的結果具有更高的感知質量和更清晰的輸出.
(2)像素空間損失
像素空間損失用于保證生成圖像與真實圖像之間的相似性,選用L2損失(MSE)有助于糾正顏色和紋理失真.像素空間損失函數定義如下:
(3)內容損失
像素空間損失往往會產生過于平滑的像素空間輸出,本文使用感知距離作為內容損失LC的一種形式.它將生成的圖像和真實圖像送入訓練好的VGG19網絡中,與L2相比通過計算第3個池化層前的第3個卷積層的特征差異來計算內容損失,使得產生的圖像與目標清晰圖像在語義上更為相似.內容損失函數定義為:
其中,S表示清晰圖像,B表示模糊圖像,Wi,j、Hi,j是特征的維度,表示特征映射圖的寬和高,是第i個池化層之前的第j個卷積所獲得的特征映射.
GoPro數據集[9]使用GoPro Hero 4相機每秒捕獲240幀(fps)視頻序列,隨后通過平均連續(xù)的短曝光幀生成模糊圖像.包含3214個模糊、清晰圖像對,使用2103對進行訓練,其余1111對進行評估測試.
Kohler數據集[25]由4幅圖像組成,每一幅圖像都使用12種不同的模糊核進行模糊處理.它是評估盲去模糊方法的標準數據集.該數據集是通過記錄和分析實際的相機運動生成的,并在機器人平臺上進行回放,從而記錄了一系列清晰的圖像,以對6D相機的運動軌跡進行采樣.
DVD數據集[26]包含手機、運動相機,以及單反相機以240 fps的速度拍攝的71段視頻,然后通過平均連續(xù)短曝光幀來近似長曝光,生成了6708個模糊和清晰對.
本實驗使用的軟件環(huán)境為Ubuntu 16.04.6操作系統(tǒng)、PyTorch 1.5深度學習框架、Python 3.7語言版本;硬件環(huán)境主要有NVIDIA GeForce RTX 2080Ti顯卡,11 GB顯存,Intel(R)Xeon(R)Silver4210CPU@2.20 GHz處理器,10 GB內存.
網絡訓練采用的數據集通過從GoPro數據集里2103對和DVD數據集6708對混合組成訓練集,來減少對任何特定數據集的過度擬合.用于測試的數據集都為通用數據集,分別為GoPro數據集(1111對),Kohler數據集(48對).
模型epoch設置為300,式(3)中的權重因子a、b和c分別設為0.5、0.006和0.01.采用Adam優(yōu)化器[27]來訓練模型,batchsize設置為1,學習率初始化為10-4,,在訓練150個epoch后學習率線性衰減到10-7.整個模型訓練近112 h.采用客觀量化的質量評價指標,即峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結構相似度(Structural SIMilarity,SSIM)[28],其中,PSNR衡量的是銳化(生成)圖像與模糊圖像在像素值上的差異,值越高代表圖像失真越小,圖像質量越高; 而SSIM從亮度、對比度、結構信息3方面來衡量兩幅圖之間的相似度,其值越趨近于1,表明它們之間越相似.
訓練過程的損失函數及PSNR、SSIM指標變化折線圖如圖4所示.
圖4 變化折線圖
本文將提出模型與近年來幾種先進的深度學習算法模型進行比較,包括文獻[8]的模型、DG-wild[1]、DeepDeblur[9]、DG[1]和 IRv2[29].
3.4.1 GoPro數據集
本文所提出的模型在標準性能指標(PSNR、SSIM)、推理速度(在單個GPU上測量每個圖像的平均運行時間)以及模型大小與其他模型進行了比較,結果如表2所示,實驗對比圖如圖5所示.
圖5 實驗對比圖
從表2可以看出,本文去模糊模型在PSNR和SSIM值上都保持較高水平,并且在推理速度有了顯著提升.表2中,文獻[8]的模型訓練時所用的數據集是由模糊核和清晰圖像卷積合成的,這與真實場景中的模糊有很大不同,因此應用到真實視頻圖像去模糊不能夠有效恢復圖像.相比于使用GoPro數據集進行訓練和測試的模型DG-wild[1],本文模型的PSNR提升了1.46 dB,SSIM也有所提高.文獻[9,29]的模型、DG[1]與本文模型PSNR都達到了28以上,SSIM達到了0.9以上,說明本文模型也可以生成紋理信息豐富、與原始圖像相近的圖像,與模型DeepDeblur[9]相比推理速度提高了近127倍; 與模型IRv2[29]相比,本文所提出來的模型尺寸要小的多(233 MB vs.10.5 MB),同時推理速度提高了近10倍; 與現有的輕量級網絡MobileNet模型[29]相比,PSNR和SSIM都有所提升,模型大小也占有優(yōu)勢,推理速度提升了近1.7倍.這表明本文模型可以對29 fps的視頻進行實時幀去模糊處理.本文模型是能夠同時實現速度和精度需求的去模糊模型.
3.4.2 Kohler數據集
各模型在Kohler數據集上的測試結果如表3所示,實驗對比圖如圖6所示.與GoPro結果類似,相比于文獻[8]的傳統(tǒng)去模糊模型,文獻[1,9,29]的模型和本文模型采用端到端的網絡模型得到的去模糊圖像SSIM較高,說明模型對圖像去模糊效果依然顯著.PSNR提升并不明顯、普遍較低,這是因為基于深度網絡學習的端到端去模糊模型依賴于訓練時的數據集,當測試數據集與訓練數據集相關程度不高時,模型沒有學習此類數據特征,導致重建的去模糊圖像在紋理細節(jié)上較差.表2和表3中DG-wild[1]和DG[1]兩個模型的測試結果相反是因為訓練時數據集的分配比例不同所導致的,所以在端到端的去模糊網絡模型訓練中,訓練數據是關鍵問題,在未來具有大量、準確訓練對的數據情況下,所訓練的網絡模型泛化能力應有更大的提升.
圖6 實驗對比圖
表2 GoPro數據集的實驗對比結果
表3 Kohler數據集的實驗對比結果
3.4.3 消融實驗
為驗證本文模型各組成部分的有效性,在GoPro數據集進行了消融實驗,起點為生成對抗網絡(生成器部分MobileNetV3、感知損失和WGAN-GP,全局判別器)端到端直接去模糊,結果如表4所示.
表4 本文方法的消融實驗(GoPro)
從表4中可以看出本文提出的方法各部分都在穩(wěn)步提升PSNR和SSIM,FPN模塊的貢獻最大,另外加入均方誤差或感知損失有利于訓練的穩(wěn)定性和最終結果.
3.4.4 自行拍攝圖像去模糊
許多經過訓練好的模型應用到實際場景中,不能很好地獲得去模糊效果,為了驗證本文模型的實用性,在訓練好的模型上對手機拍攝的校園模糊圖像進行去模糊處理,結果如圖7所示.
圖7 自行拍攝校園圖像去模糊
本文主要研究單幅圖像盲運動去模糊問題,針對的主要是由相機抖動或低幀率視頻中運動物體引起的非均勻運動模糊.在DeblurGAN模型的基礎上提出了一種基于輕量級生成對抗網絡實時視頻圖像去模糊新方法,解決了早期去模糊算法計算復雜、推理效率慢以及恢復圖像效果差等問題.該方法在GAN的生成器中引入輕量級網絡MobileNetV3進行特征提取,并加入多尺度FPN框架進行特征融合,這兩者結合使得生成網絡在推理效率上有了顯著提升.雙判別網絡可以為生成網絡提供更加豐富的局部紋理細節(jié)和全局特征,更加準確的區(qū)分生成的去模糊圖像和真實的清晰圖像.實驗結果表明,本文方法在PSNR和SSIM保持著較高的結果,同時速度比其它方法快1.7-127倍,并且網絡模型僅10.5 MB.訓練測試時時使用的圖片類型為jpg或png,本文的網絡模型是完全卷積的,因此可以應用于任意尺寸大小的圖像,另外還可以將本文方法用于車輛、人臉的去模糊任務中.未來工作一是進一步改進網絡模型,在保持推理效率的同時,進一步提升圖像復原的質量; 二是擴展該方法以實現實時視頻增強.