高 林
(西安航天動(dòng)力試驗(yàn)技術(shù)研究所,西安710100)
分布式環(huán)繞高速攝影系統(tǒng)不僅可用來(lái)研究液體火箭發(fā)動(dòng)機(jī)試驗(yàn)中關(guān)鍵部位圖像的細(xì)節(jié)信息,且可通過(guò)放大局部圖像研究跌落試驗(yàn)中結(jié)構(gòu)件的形變程度。但受CMOS處理器尺寸的物理極限與成本的限制,圖像經(jīng)多次甚至2次放大后會(huì)變得模糊不清,影響圖像數(shù)據(jù)的分析。高精度光學(xué)儀器設(shè)備通常需要接近35 mm模擬膠片的分辨率水平,從而在放大一個(gè)圖像時(shí)不會(huì)有可見(jiàn)的瑕疵[1]。然而,隨著像素尺寸的減少,光通量也隨之減少,產(chǎn)生的散粒噪聲使圖像質(zhì)量嚴(yán)重惡化。不受散粒噪聲的影響而減少像素的尺寸有一個(gè)極限,即對(duì)于0.35 μm的CMOS處理器,像素的理想極限尺寸大約是40 μm[2]。當(dāng)前液體火箭發(fā)動(dòng)機(jī)試驗(yàn)使用德國(guó)PCO.dimax系列高速攝影機(jī)采集發(fā)動(dòng)機(jī)關(guān)鍵部位的高速攝影圖像,通過(guò)后處理軟件Visart實(shí)時(shí)放大查看圖像時(shí)便存在圖像失真與模糊的現(xiàn)象,影響圖像數(shù)據(jù)的細(xì)化分析。
超分辨率(Super-Resolution)算法從空間分辨率上解決了圖像放大時(shí)的失真問(wèn)題,克服了傳感器和光學(xué)制造技術(shù)的限制。該算法通過(guò)量化后的低分辨率圖像與高分辨率之間的對(duì)應(yīng)關(guān)系,將低分辨率圖像恢復(fù)成具有生動(dòng)紋理與顆粒細(xì)節(jié)的高分辨率圖像[3]。該技術(shù)可以在不改變硬件條件的情況下,在已有的低分辨率圖像基礎(chǔ)上,利用圖像的先驗(yàn)信息重建出高分辨率的圖像[4]。
超分辨率算法自上世紀(jì)70年代提出以來(lái),主流的算法主要為傳統(tǒng)的基于插值的圖像超分辨率算法和基于深度學(xué)習(xí)的圖像超分辨率算法[5]?;诓逯档乃惴ɡ门R近像素的灰度值來(lái)產(chǎn)生待插值像素點(diǎn)的灰度值,較為經(jīng)典的插值算法有雙線性插值算法和雙三次插值算法,但這些算法的應(yīng)用環(huán)境較為局限[6]。為克服傳統(tǒng)插值算法的不足,研究者提出了許多改進(jìn)的插值方法。Chang等2001年提出的基于最小二乘法的邊緣指導(dǎo)內(nèi)插值算法,獲得了更好的圖像效果[7]。陶洪久等[8]提出的小波域的雙線性插值算法雖滿足實(shí)時(shí)性要求,但是很難在超分辨圖像中得到較好的銳化效果。
當(dāng)前深度學(xué)習(xí)理論與算法在圖像超分辨率方面的發(fā)展非常迅速,優(yōu)化算法層出不窮,基本已經(jīng)取代了傳統(tǒng)的插值算法,如目前較新的算法有SRCNN、ESPCN 和 SRGAN等[9]。SRCNN(超分辨率卷積神經(jīng)網(wǎng)絡(luò),Super-Resolution Convolutional Neural Network)算法基于稀疏編碼的單幀超分辨重建算法,何凱明[10]在此基礎(chǔ)上設(shè)計(jì)了一個(gè)3層的卷積神經(jīng)網(wǎng)絡(luò),以逐像素?fù)p失為代價(jià)函數(shù),取得了令人震撼的效果。但是針對(duì)不同問(wèn)題,對(duì)3層卷積網(wǎng)絡(luò)中每層不同濾波器個(gè)數(shù)的選擇會(huì)得到不同的平均峰值信噪比和圖像清晰度。因此對(duì)高速攝影問(wèn)題,使用SRCNN須對(duì)濾波器個(gè)數(shù)進(jìn)行調(diào)優(yōu)。
本文將基于深度學(xué)習(xí)的超分辨率算法SRCNN應(yīng)用到高速攝影領(lǐng)域進(jìn)行濾波器參數(shù)調(diào)優(yōu),針對(duì)單幀高速攝影圖像,采用Matlab 2016a對(duì)圖像超分辨率SRCNN算法進(jìn)行仿真,對(duì)第2層卷積網(wǎng)絡(luò)參數(shù)f2進(jìn)行了調(diào)優(yōu),并對(duì)比原來(lái)的SRCNN算法和雙三次插值算法的圖像平均峰值信噪比和圖像清晰度,以求在保證圖像具有較高的平均峰值信噪比和圖像清晰度的同時(shí),取得較為滿意的收斂速度。
高速攝影實(shí)時(shí)采集的圖像或者事后得到的圖像經(jīng)多次甚至2次放大后,圖像已變得較為模糊。超分辨率求解任務(wù)如圖1所示,首先將輸入的低分辨率圖像放大至目標(biāo)尺寸,然后利用某種算法去擬合低分辨率圖像與高分辨率圖像間的映射關(guān)系,最后求解得到高分辨率圖像[10]。其中LR表示低分辨率,HR表示高分辨率。
圖1 超分辨率求解任務(wù)[10]Fig.1 Super-resolution solving task[10]
圖2 SRCNN算法超分辨率重建原理[10]Fig.2 Super-resolution reconstruction principle of SRCNN algorithm[10]
經(jīng)典的SRCNN算法超分辨率重建原理如圖2所示[10],包含3個(gè)卷積層,其在概念上分為3個(gè)步驟:
1)圖像子塊的提取和表示:此操作從輸入的低分辨率圖像中提取圖像子塊并將每個(gè)子塊表示為1個(gè)高維度的向量。這些向量包含了1組數(shù)量與向量維數(shù)相等的特征映射。圖像復(fù)原中流行的一種策略是密集地提取圖像子塊,然后通過(guò)一組預(yù)先訓(xùn)練的基來(lái)表示,例如PCA、DCT和Haar等。這相當(dāng)于用1組濾波器對(duì)圖像進(jìn)行卷積,其中的每個(gè)濾波器都是1個(gè)基。形式上,第1層可表示為1個(gè)操作F1:F1(Y)=Max(O,W1*Y+B1),其中W1和B1分別代表的濾波器和偏置,*表示卷積操作,W1相當(dāng)于c×f1×f1×n1的濾波器,其中c是輸入圖像的通道數(shù)目,f1是濾波器的空間大小。直觀地說(shuō),W1對(duì)圖像應(yīng)用n1個(gè)濾波器卷積,卷積核大小為c×f1×f1。輸出由n1個(gè)特征映射組成,B1是1個(gè)n1維向量,其每個(gè)元素與1個(gè)濾波器相關(guān)聯(lián)[10]。
2)非線性映射:此操作將每個(gè)高維度向量非線性映射到另一個(gè)高維度向量。第1層為每個(gè)圖像子塊提取1個(gè)n1維特征。在第2層中,我們將每個(gè)n1維向量映射到1個(gè)n2維向量中。這相當(dāng)于應(yīng)用了n2個(gè)卷積核大小為1×1濾波器,而且很容易推廣到更大的過(guò)濾器,如3×3或5×5濾波器,并非線性映射到3×3或5×5的圖像子塊上。第2層可表示為 1 個(gè)操作F2:F2(Y)=Max(O,W2*Y+B2),W2包含大小為n2×f1×f1的濾波器,B2是n2維的。每個(gè)輸出的n2維矢量在概念上是一個(gè)重建后的高分辨率圖像子塊的特征表達(dá)[10]。
3)重建:此操作將第2步中的高分辨率圖像子塊來(lái)生成最終的高分辨率圖像。第3層操作表示為F3:F3(Y)=Max(O,W3*Y+B3),W3包含大小為n3×f1×f1的濾波器,B3是n3維的。如果高分辨率圖像子塊的表示是在圖像域,濾波器表現(xiàn)的和均值濾波器一樣;如果高分辨率圖像子塊的表示是在一些其他域(例如,基于一些基的系數(shù)),W3先將系數(shù)投影到圖像域,然后平均產(chǎn)生最終的完整圖像。無(wú)論哪種方式中,W3是一套線性濾波器[11]。
上述3個(gè)步驟組合形成一個(gè)超分辨率卷積神經(jīng)網(wǎng)絡(luò),利用較少的卷積層獲得圖像分辨率質(zhì)的提升。
本文對(duì)液體火箭發(fā)動(dòng)機(jī)圖像深度學(xué)習(xí)訓(xùn)練采用ILSVRC 2014 ImageNet訓(xùn)練集。ImageNet訓(xùn)練集是一個(gè)用于視覺(jué)對(duì)象識(shí)別軟件研究的大型可視化數(shù)據(jù)庫(kù),其約有超過(guò)1400萬(wàn)的圖像URL被ImageNet手動(dòng)注釋,以指示圖片中的對(duì)象,并包含2萬(wàn)多個(gè)圖像類別。類似的訓(xùn)練集91 images樣本數(shù)較ImageNet訓(xùn)練集樣本數(shù)很小。但訓(xùn)練集樣本數(shù)越大不代表可以獲得的圖像質(zhì)量越高,訓(xùn)練集樣本數(shù)越大只是學(xué)習(xí)的細(xì)節(jié)信息越多,算法收斂速度越快,訓(xùn)練出模型的時(shí)間越短。在SRCNN上使用不同濾波器數(shù)目可以改善最終獲得的圖像的平均峰值信噪比PSNR,Set5 images數(shù)據(jù)集訓(xùn)練結(jié)果如表1所示[12],前者采用更多的濾波器數(shù)目取得了更加優(yōu)越的性能。
其中PSNR是圖像的平均峰值信噪比,計(jì)算方法如式(1)~(2)[13]:
對(duì)比尺度因子為2的雙三次插值算法,本文采用增大SRCNN算法第2層卷積非線性映射中濾波器大小來(lái)獲得圖像的平均峰值信噪比PSNR的提升,這樣收集了圖像更加豐富的結(jié)構(gòu)信息,從而得到更好的圖像質(zhì)量。在初始的試驗(yàn)中嘗試采用ImageNet數(shù)據(jù)集中9-1-5網(wǎng)絡(luò)結(jié)構(gòu)的x3.mat核文件輸出結(jié)果,但是圖像的質(zhì)量模糊不佳。在SRCNN算法流程第2步非線性映射中采用更大的5×5的濾波器訓(xùn)練出x2.mat核文件,采用訓(xùn)練出的9-5-5的x2.mat核文件重新測(cè)試,本文算法流程圖如圖3所示。
圖3 本文算法流程圖Fig.3 Flow chart of algorithm proposed in this paper
為了驗(yàn)證深度學(xué)習(xí)SRCNN調(diào)優(yōu)算法在高速攝影圖像優(yōu)化過(guò)程中的有效性,將第3節(jié)基于SRCNN算法采用 Matlab語(yǔ)言編程實(shí)現(xiàn),并將PCO.dimax高速攝影后處理軟件Visart處理后的視頻數(shù)據(jù)拆分為單幀圖像。
系統(tǒng)的仿真硬件平臺(tái)配置:處理器為Intel(R)Core(TM)i5-6200U CPU@2.40 GHZ,內(nèi)存 4.00 GB;軟件開(kāi)發(fā)平臺(tái)配置:Windows10操作系統(tǒng)(64 bit)、MATLAB R2016a。
訓(xùn)練數(shù)據(jù)集:采用樣本數(shù)為127萬(wàn)的ILSVRC 2014 ImageNet訓(xùn)練集訓(xùn)練網(wǎng)絡(luò)模型,由于該訓(xùn)練集樣本數(shù)過(guò)于龐大,于是每間隔3張圖片取一張,直到取到120萬(wàn)時(shí)終止,從而得到了30萬(wàn)張樣本圖像,并將取到的圖像統(tǒng)一壓縮為256×256大小的圖像進(jìn)行保存,再?gòu)?56×256的圖像的隨機(jī)位置取96×96大小的小塊,得到本文的HR標(biāo)簽。對(duì)96×96大小的小塊再采用高斯濾波和AREA下采樣2倍和4倍得到LR標(biāo)簽,以此組成了24/48和24/96的LR/HR圖像對(duì)。
校驗(yàn)步驟為:首先截取發(fā)動(dòng)機(jī)噴管附近區(qū)域202×202大小的jpg格式單幀高速攝影圖像作為輸入的原始圖像,然后分別使用雙三次插值算法、SCRNN算法、調(diào)優(yōu)后的SCRNN算法對(duì)輸入的原始圖像進(jìn)行處理,最后統(tǒng)計(jì)處理后圖像的PSNR值和算法運(yùn)行時(shí)間進(jìn)行比對(duì),如圖4所示。
從圖4可以看出,(b)中雙三次插值算法得到的圖像紋理細(xì)節(jié)模糊不清,這主要是因?yàn)椴逯的P偷牡屯V波效應(yīng),使得圖像缺少了高頻信息,對(duì)細(xì)節(jié)還原能力不夠。與雙三次插值算法對(duì)比,(d)中調(diào)優(yōu)后的SRCNN算法具有更高的圖像重建精度PSNR值為39.293 dB且主觀上圖像更加清晰銳利,算法運(yùn)行時(shí)間和(c)中SRCNN算法用時(shí)接近。從軟件算法層面提供了一種解決當(dāng)前試驗(yàn)系統(tǒng)中高速攝影圖像多次放大后圖像清晰度受物理硬件精度限制問(wèn)題的有效思路。
仿真實(shí)驗(yàn)表明,對(duì)深度學(xué)習(xí)SRCNN算法第2層卷積網(wǎng)絡(luò)層進(jìn)行調(diào)優(yōu)后的比原來(lái)的SRCNN算法和雙三次插值算法的圖像平均峰值信噪比表現(xiàn)更好,圖像清晰度滿足實(shí)驗(yàn)要求,可以應(yīng)用在液體火箭發(fā)動(dòng)機(jī)試驗(yàn)高速攝影圖像優(yōu)化以及大數(shù)據(jù)量的發(fā)動(dòng)機(jī)圖像壓縮存儲(chǔ)和復(fù)原。下一步研究重點(diǎn)是進(jìn)一步優(yōu)化發(fā)動(dòng)機(jī)訓(xùn)練集,提高算法收斂速度。