田 煜 賈瑞生 鄧夢迪 趙超越
(山東科技大學計算機科學與工程學院 山東 青島 266590)(山東科技大學山東省智慧礦山信息技術(shù)省級重點實驗室 山東 青島 266590)
高分辨率車牌圖像可以提升車牌檢測、車牌識別、車牌分割等研究的質(zhì)量。然而車牌在拍攝過程中,受拍攝硬件和拍攝環(huán)境的影響,會造成得到的車牌圖像模糊不清,這對后續(xù)工作造成了極大的挑戰(zhàn)。針對如今通過改進硬件提高圖像分辨率的方法將花費高昂的經(jīng)濟代價,并且傳統(tǒng)的提升分辨率方法效果不佳等問題,提出一種采用卷積神經(jīng)網(wǎng)絡對模糊車牌圖像進行超分辨率重建的方法。采用神經(jīng)網(wǎng)絡提升模糊車牌圖像的分辨率,用低成本的軟件對分辨率進行改善。目前超分辨率重建技術(shù)的研究成果對于醫(yī)學、車牌分割、車牌識別等領(lǐng)域具有重大意義[1-3]。
目前模糊車牌圖像的超分辨率重建方法大致分為三類:基于插值的方法,基于重構(gòu)的方法和基于學習的方法[4]。基于插值的方法是圖像超分辨率重建最早出現(xiàn)的方法[5],這種方法復雜度低、速度快,但是插值結(jié)果容易引起鋸齒、振鈴等人工效應;基于重構(gòu)的方法是針對插值方法的不足提出的一種方法,但該方法操作復雜、精度難以保證、效率較低[6-7];基于學習的算法是目前超分辨率重建領(lǐng)域中研究的熱點[8]。Freeman等[9]提出基于樣本學習的圖像超分辨率方法;Polatkan 等[10]提出了一種新的貝葉斯非參數(shù)模型;Timofte等[11]提出了一種基于固定鄰域回歸的方法;Yang等[12-13]提出了稀疏編碼算法是通過稀疏表示關(guān)系來學習耦合字典;Timofte等[14]提出了ANR算法;Schulter等[15]提出了SRF算法;Dong等[16]提出了基于卷積神經(jīng)網(wǎng)絡的超分辨率重建,成功將深度學習技術(shù)引入到SR當中,該算法被稱為SRCNN。在SRCNN的基礎(chǔ)上,Dong等[17]提出加速超分辨率卷積網(wǎng)絡(FSRCNN),彭亞麗等[18]在此基礎(chǔ)上提出了一種基于深度反卷積神經(jīng)網(wǎng)絡的圖像超分辨率算法。以上算法在圖像重建領(lǐng)域取得了很好的效果,但在車牌圖像領(lǐng)域仍有以下不足:特征提取階段卷積核過于單一特征提取效果不佳;映射部分參數(shù)冗余,訓練花費時間過長;重建部分引入的人工信息過多。針對以上不足,本文提出一種雙通道深度可分離網(wǎng)絡模型。模型在特征提取階段采用雙通道代替原有的單通道,映射部分加入深度可分離卷積提升訓練速度,重建部分采用子像素卷積操作抑制人工冗余信息。結(jié)果表明,相比其他算法,在車牌圖像重建領(lǐng)域本文算法取得更優(yōu)的效果。
深度可分離卷積[19]是把標準卷積分解成深度卷積和逐點卷積。深度可分離卷積可以降低網(wǎng)絡模型的參數(shù)數(shù)量,加快神經(jīng)網(wǎng)絡的訓練速度,具體結(jié)構(gòu)如圖1所示。
輸入的特征映射I尺寸為(DI,DI,M),采用標準卷積K為(F,F,M,N),輸出的特征映射O尺寸為(DO,DO,N),深度可分離卷積相對于標準卷積減少的計算量為:
(1)
式中:F為卷積核大??;DI為輸入特征圖大??;M為輸入通道數(shù);N為輸出通道數(shù)。
無論是人為放大、雙立方插值放大,還是反卷積層放大,這些手段通常會帶入過多人工因素,子像素卷積會大大降低這個風險,其結(jié)構(gòu)如圖2所示。
圖2 子像素卷積結(jié)構(gòu)圖
對于待重建的一幅模糊車牌圖像I(x,y),對其放大r倍,子像素卷積層就會輸出r2個特征圖,將r2個特征圖的同一位置各取一個點,將其組成一個r×r的小塊,對其他點重復此操作,最終實現(xiàn)r2倍放大。
為了實現(xiàn)車牌圖像的超分辨率重建,首先需要訓練一個深度卷積神經(jīng)網(wǎng)絡模型,如圖3所示。訓練首先要建立一個高分辨率車牌圖像樣本庫,對高分辨率樣本庫中的車牌圖像進行下采樣,獲得低分辨率車牌圖像樣本庫,對低分辨率車牌圖像和高分辨率車牌圖像分別進行圖像切割,得到若干低分辨率車牌圖像塊和高分辨率車牌圖像塊,將得到的低分辨率車牌圖像塊和高分辨率車牌圖像塊成對送入卷積神經(jīng)網(wǎng)絡中進行訓練,即可得到車牌圖像超分辨率重建模型。對低分辨率車牌圖像進行重建時,把低分辨率車牌圖像送入訓練好的神經(jīng)網(wǎng)絡模型中,完成車牌圖像重建。
圖3 低分辨率車牌圖像超分辨率重建模型
目前在車牌圖像領(lǐng)域傳統(tǒng)的算法具有以下不足:特征提取階段卷積核過于單一特征提取效果不佳;映射部分參數(shù)冗余,訓練花費時間過長;重建部分引入的人工信息過多。針對以上不足,本文在FSRCNN基礎(chǔ)上進行改進,提出一種雙通道深度可分離網(wǎng)絡模型。模型在特征提取階段采用雙通道代替原有的單通道,映射部分加入深度可分離卷積提升訓練速度,重建部分采用子像素卷積操作抑制人工冗余信息,構(gòu)建的神經(jīng)網(wǎng)絡模型結(jié)構(gòu)如圖4所示。
圖4 本文神經(jīng)網(wǎng)絡模型結(jié)構(gòu)圖
本文算法的神經(jīng)網(wǎng)絡模型包括特征提取、非線性映射、重建三大部分。具體如下:
特征提取:使用28個3×3的卷積核與兩層28個3×3的卷積核分別進行圖像特征提取,最后采用contact操作,最終生成56個特征圖。
映射:為了將低分辨率的特征映射為高分辨率的特征,對12個特征圖進行2層深度可分離卷積操作,卷積核大小均采用3×3,卷積核數(shù)量為12。
重建:對拓展后的高分辨率特征進行重建和放大,將56個特征圖與9×9的卷積核進行子像素卷積操作,得到重建后的高分辨率圖像。其中卷積操作所采用的卷積函數(shù)為:
Fn(Y)=max(λ*(Wn*Fn-1(Y)+Bn),Wn*Fn-1(Y)+Bn)
(2)
子像素卷積操作所采用的卷積公式為:
Fn(Y)=PS(Wn*Fn-1(Y)+Bn)
(3)
式中:Wn為卷積核大小;Bn為偏置;Fn(Y)為本層輸出的特征圖;Fn-1(Y)為是本層輸入的特征圖;λ為激活函數(shù)PReLU中的參數(shù);*為卷積操作;Y為待處理的特征圖;PS是指子像素卷積操作。
卷積操作所涉及的各層參數(shù)維度設置如表1所示。
表1 本文神經(jīng)網(wǎng)絡模型參數(shù)設置圖
本文算法在每個卷積層之后使用PReLU激活函數(shù)[20],即帶修正參數(shù)的ReLU[21],對于ReLU出現(xiàn)的dead feature現(xiàn)象[22],PReLU激活函數(shù)通過增加少量計算量就可以避免,同時還能實現(xiàn)更高的準確率,PReLU激活函數(shù)表達式如下:
(4)
式中:yi為第i通道的輸入;λ為PReLU的參數(shù),λ值為變量,伴隨訓練迭代不斷更新。
本文算法采用MSE作為損失函數(shù)。對于一系列由卷積神經(jīng)網(wǎng)絡重建得到的車牌圖像Fi(Y;θ)和一系列原始的高分辨率車牌圖像Xi,為了使均方誤差達到最小,求得最優(yōu)的參數(shù)θ,均方誤差公式如下:
(5)
式中:n為樣本個數(shù);模型參數(shù)θ包括卷積核權(quán)重W、偏置b和激活函數(shù)參數(shù)λ。L(θ)值越接近0,說明擬合效果更好,模型參數(shù)越優(yōu)。
模型采用的數(shù)據(jù)集是通過網(wǎng)絡爬蟲以及人為拍攝得到的100幅不同車牌圖像,記作X。從X中隨機選取91幅圖像作為原始訓練樣本,記作X1,隨機選取9幅圖像作為驗證樣本,記為X2。訓練樣本是由網(wǎng)絡的輸入(低分辨圖DL)和標簽(高分辨圖DH)兩部分組成。首先對原始訓練樣本X1進行下采樣,得到低分辨率圖像集X′1,然后對X′1、X1進行擴充,分別采用大小為7×7和19×19的滑動窗口進行切塊得到若干7×7的低分辨率圖像塊和19×19的高分辨率圖像塊作為訓練集。部分切割前的數(shù)據(jù)集如圖5所示。
圖5 數(shù)據(jù)集展示
目前主觀評價和客觀評價是現(xiàn)有圖像超分辨率重建的主要評測標準[18]。主觀評價是通過人眼對圖像進行評測,目前客觀量化方法主要包括:峰值信噪比(PSNR), PSNR越高,說明重建圖像的質(zhì)量相對于高分辨率圖像的質(zhì)量越接近,具有更優(yōu)秀的重建效果;結(jié)構(gòu)相似性(SSIM),SSIM值越趨近于1,則兩幅圖相似度越高,重建效果越好。
本文算法訓練過程的輸入為7×7的低分辨率圖像塊,采用的優(yōu)化器為SGD,動量設置為0.9,學習率為0.000 1,學習率政策采用fixed,放大倍數(shù)為3倍,總共迭代50萬次。訓練完成后,從驗證樣本集X2中選取一幅測試圖像I(x,y)。圖6(a)為網(wǎng)絡輸入圖像;(b)是對(a)人為放大3倍的結(jié)果;(c)為對(a)采用雙立方插值放大的結(jié)果;按照本文提出的神經(jīng)網(wǎng)絡,對(a)進行超分辨率重建,重建結(jié)果如(d)所示。
圖6 本文算法結(jié)果圖
從集合X2中隨機選取一幅測試圖像I(xi,yi),分別對這些圖片采用雙立方插值算法(Bicubic)[23]、SRF[15]、SRCNN[16]、SCN[24]、FSRCNN[17]、本文算法進行重建。3倍放大重建效果如圖7所示??梢钥闯?,本文算法相對于傳統(tǒng)算法來說,客觀評價指標得到大幅的提高,相對于學習的算法,本文算法無論是在PSNR還是SSIM方面,均取得最高值。
圖7 放大3倍局部放大效果圖
為了驗證實驗結(jié)果并非偶然性,隨機選取5幅不同種類的圖像進行測試,采用PSNR、SSIM評價指標對6種算法進行客觀評價。為了客觀公正,本文算法與所有表中網(wǎng)絡均采用數(shù)據(jù)集X和圖6實驗所采用的參數(shù)。表2為客觀測試的結(jié)果,表中用粗體表示最優(yōu)的重建結(jié)果。實驗結(jié)果表明,本文方法相對于圖中其他算法在客觀評價指標中取得最優(yōu)值,充分說明本文方法重建出的車牌圖像的質(zhì)量更接近于原圖的質(zhì)量,對車牌圖像的重建效果更好。
表2 不同算法評價指標比較
為了驗證本文算法的優(yōu)越性,本文同時采用公開數(shù)據(jù)集上的91幅自然圖像作為訓練樣本,采用Set5[25]、Set14[26]作為測試樣本進行測試,測試結(jié)果如表3所示??梢钥闯觯疚乃惴ㄔ诠_數(shù)據(jù)集上相對于其他算法無論是PSNR還是SSIM上都具有更優(yōu)的表現(xiàn)。
表3 不同算法公開數(shù)據(jù)集比較
為了驗證本文模型的時效性,從兩個數(shù)據(jù)集中隨機選取5幅不同的車牌圖像進行重建,分別對Bicubic[23]、SRF[15]、SRCNN[16]、SCN[24]、FSRCNN[17]和本文算法計時。表4為不同方法重建一幅車牌圖像所需時間的結(jié)果。可以看出,Bicubic重建一幅車牌圖像所需的時間最少,平均只需要0.005 7 s,但其重建結(jié)果并不能達到預期的效果。本文算法的測試時間相相比其他算法都有提高,且在PSNR和SSIM方面都略優(yōu)于表中其他算法。
表4 不同算法耗時量比較
為了評估不同的卷積核數(shù)量對超分辨率重建性能的影響,在網(wǎng)絡層數(shù)為6層時分別訓練卷積核數(shù)目為28、56、84的網(wǎng)絡模型,選擇放大倍數(shù)為3,在本文的數(shù)據(jù)集中進行測試,結(jié)果如圖8所示。圖中X28、X56、X84分別表示特征提取部分采用的卷積核個數(shù)??梢钥闯?,雖然采用84個卷積核收斂速度快,但造成了過擬合現(xiàn)象,采用28個卷積核收斂速度慢,效果差,因此本文采取56個卷積核用于特征提取。
圖8 不同卷積核數(shù)目對效果的影響
為了驗證不同的映射層數(shù)對于最終重建結(jié)果的影響和對于重建速度的影響。對映射部分分別選取2、3、4層進行測試,選擇放大倍數(shù)為3,最終的PSNR與時間的關(guān)系圖如圖9所示,X2、X3、X4分別表示本文方法在非線性映射部分采用的深度可分離卷積層數(shù)。由于SRF、SRCNN、SCN的運行時間遠大于FSRCNN與本文算法,并且重建效果不佳,故在此不進行比較??梢钥闯?,本文算法在非線性映射部分采用兩層深度可分離卷積層可以取得最優(yōu)效果。
圖9 不同卷積層數(shù)對效果及時間的影響
本文提出一種多層神經(jīng)網(wǎng)絡用于超分辨率重建,針對其他算法在車牌圖像領(lǐng)域具有特征提取不足、訓練耗時以及重建引入過多人工冗余信息等問題,通過雙通道、深度可分離卷積以及子像素卷積層來解決。本文算法在保證重建精度的基礎(chǔ)上,訓練速度和測試速度相對于對比方法均有提高,使該放大在實際應用中取得了更好的效果。下一步將對車牌圖像與其他圖像(遙感圖像、自然圖像等)的特點進行研究,以搭建能同時適用于多類圖像的超分辨率重建的模型。