高志軍, 馮嬌嬌
(黑龍江科技大學 計算機與信息工程學院, 哈爾濱 150022)
煤礦工人臉圖像是實現(xiàn)智能礦業(yè)的重要信息載體,由于工作環(huán)境的特殊性,高質量的煤礦工人臉圖像難以獲得[1],因此,通過有效地利用計算機和圖像處理技術處理低分辨率(Low resolution, LR)圖像,生成具有清晰邊緣、清晰紋理和完整保色的高質量、高分辨率(High resolution, HR)圖像是國內外學者關注的焦點[2]。
圖像超分辨率重建技術一般被分為基于插值[3]、重建[4]和深度學習三類[5]?;诓逯档乃惴赐ㄟ^鄰近像素點的灰度值估算待插像素點的灰度值。傳統(tǒng)的雙三次插值方法[6]操作簡單迅速,但易丟失圖像細節(jié)?;谥亟ǖ乃惴ǚ譃轭l域方法[7]和空域方法[8],頻域方法通過消除頻譜混疊重建圖像的信息??沼蚍椒òǖ赐队胺?IBP)[9]、凸集投影(POCS)[10]、最大后驗概率法(MAP)和正則化。該類算法在重建效果上有一定的提升,但計算繁瑣,復雜度高。
基于深度學習的超分辨率重建技術的萌芽,受到國內外學者廣泛關注。Dong等[11]將卷積神經網絡(CNN)方法應用于超分辨率領域,用三層卷積的方法(SRCNN)完成LR圖像到HR圖像的重建。Dong等[12]進一步改進SRCNN得到一種快速超分辨率重建卷積神經網絡(FSRCNN)。Shi等[13]提出了一種基于亞像素卷積層的超分辨率重建方法(ESPCN)。Goodfellow等[14]提出的生成對抗網絡(GAN)為超分辨率領域提供了另一種可能性。Ledig等[15]將GAN的網絡框架應用于圖像超分辨率,建立了SRGAN模型。Wang等[16]實現(xiàn)了更高倍數(shù)的超分辨率重建,取得較好的效果。
在煤礦工人臉超分辨率的領域,需要解決在面目存在大量粉塵的情況下,得到清晰的、較多細節(jié)信息的煤礦工人臉圖像。文中通過進一步改進SRGAN網絡模型[15],在生成器網絡中,采用去除批量歸一化層的殘差密集塊進行深層特征的提取,同時,增加殘差密集塊的個數(shù),實現(xiàn)生成對抗網絡的加深,有效避免重建圖像出現(xiàn)偽影的現(xiàn)象。運用亞像素卷積層,逐步實現(xiàn)圖像的上采樣重建,摒棄原網絡結構中的反卷積層,在重建圖像時能保留圖像更多的細節(jié)信息,利用感知損失、對抗損失以及L1損失的混和損失函數(shù),使網絡模型快速收斂到最優(yōu)。
Ledig等[15]在4倍放大因子下,提出了一種生成對抗網絡的超分辨率算法,網絡結構如圖1所示。該模型以結合跳躍連接的深度殘差網絡(SRResNet)作為生成器的主要結構,將殘差塊數(shù)量定義為16個,采用3×3小內核的卷積層和64個特征映射,通過殘差塊加強信息跨層之間的流動,以及防止網絡深度的加深導致梯度消失的問題。在鑒別器上,采用傳統(tǒng)的標準鑒別器,整個鑒別網絡是一個沒有池化層的VGG網絡,包含8個卷積層。
圖1 SRGAN網絡結構Fig. 1 SRGAN network structure
鑒于煤礦工人圖像的特別之處,臉部圖像由于分辨率不足導致在某些環(huán)境下無法識別,因此,采用基于生成對抗網絡進行煤礦工人臉部圖像的超分辨率重建,生成器網絡為主要部分并進行改進,總共分為三部分:淺層特征提取網絡(SFENet)、深層特征提取網絡(DFENet),以及重建網絡(ReNet),整體的生成器網絡結構如圖2所示。
圖2 文中生成模型結構Fig. 2 Structure of model generated in this paper
1.2.1 淺層特征提取網絡
SFENet主要適用于提取圖像中煤礦工人臉部的淺層特征,由兩層卷積組成,第一層是卷積核為3×3的卷積層C3,用于提取第i幅低分辨率礦工人臉圖像ki的邊緣信息,完成礦工圖像從空間維度到特征維度的映射;第二層為卷積核1×1的卷積層C1進行特征降維,網絡表示為
F-1=C3(ki),
F0=C1(F-1)。
最終獲得的F0表示為淺層特征提取網絡的圖像中礦工人臉的淺層特征[17]。
1.2.2 深度特征提取網絡
DFENet采用殘差密集網絡結構,以SRResNet的殘差模塊為主干部分并進行了一定的改進。在SRResNet的殘差模塊中,存在批量歸一化層(Batch normalization,BN),而BN層可能會引入偽影,同時可能會造成訓練速度的緩慢。因此,移除BN層,對相加后的數(shù)據(jù)不再經過ReLU激活層處理,展示了殘差結構的改進結構如圖3所示。
圖3 殘差塊結構變化Fig. 3 Residual block structure change
DFENet整體采用兩層殘差結構,由多個殘差密集塊(Residual in residual dense block, RRDB)鏈接組成,能很好地將全局特征和局部特征融合形成一個連續(xù)的記憶機制。DFENet的主體部分RRDB由多個密集塊(Dense block, DB)構成,比例為1∶3,每一個DB塊都包含5個卷積核為7×7的卷積層和4個激活函數(shù),卷積層步幅設置為1,如圖4所示。通過密集連接卷積層提取豐富的局部特征,利用殘差密集塊的局部特征融合自適應地從先前和當前的局部特征中學習更有效的特征,使訓練更加穩(wěn)定。激活函數(shù)選用Leaky-ReLu,避免了丟失小于0的數(shù)據(jù)。
圖4 殘差密集塊結構Fig. 4 Structure of RRDB block
同時,相較于原有的網絡結構,殘差密集塊數(shù)量由16個增加為23個,通過殘差密集塊的數(shù)量加深網絡,達到更高復雜度映射,提高了模型性能。
1.2.3 重建網絡
原網絡的上采樣采用步長為0.5的兩個反卷積層構成,反卷積層的方式易出現(xiàn)重建后的高分辨率圖像的顏色有不均勻重疊的現(xiàn)象,因此,文中采用亞像素卷積層與逐步上采樣的方式實現(xiàn),該方法在超分辨率算法中,可以為圖像重建提供更多的上下文信息。根據(jù)亞像素卷積層的原理,要完成4倍超分辨率重建,除了卷積層的引入還采用了像素洗牌重新排列組合的操作。4倍的放大效果分成兩步完成,每一步完成2倍放大效果,使用兩個3×3×256的卷積層,且每一層都經過像素洗牌操作,最終經過卷積層9×9×3輸出重建圖像。
1.2.4 鑒別器網絡結構
在鑒別器上,傳統(tǒng)標準鑒別器最終輸出的概率是其來自真實樣本的概率,僅能單純地判別圖像的真假,因此,文中采用相對鑒別器輸出的是相對概率,即真實圖像和生成器的生成圖像之間的相對真實概率。
標準鑒別器定義為
D(x)=σ(C(x)),
式中:σ——sigmoid函數(shù);
C(x)——非變換鑒別器輸出。
相對鑒別器定義為
D=σ(C(xr))-E[C(xf)],
式中:xr——原始真實圖像;
xf——網絡生成圖像,xf=G(xi);
xi——輸入的低分辨率圖像;
E[·]——mini-batch中所有假數(shù)據(jù)的均值操作。
1.2.5 損失函數(shù)
SRGAN[15]網絡中,作者提出了一種基于感知內容損失的損失函數(shù),該損失定義為重建圖像與輸入圖像特征之間的歐幾里得距離,可以更好地注重礦工人臉圖像得細節(jié)特征,公式為
式中:IH——高分辨率圖像;
IL——低分辨率圖像;
Wi,j——VGG網絡中特征映射寬度尺寸;
Hi,j——VGG網絡中特征映射高度尺寸;
Φi,j——圖像經過預訓練VGG19網絡中第i個卷積層之前的第j個卷積層的特征圖,通過Relu函數(shù)激活得到的特征映射;
G——生成器網絡。
因此,基于感知內容損失函數(shù),文中網絡模型采用一種混合損失函數(shù),公式為
LG=Lp+λLG+ηL1,
式中:λ、η——平衡不同損失項的系數(shù);
Lp——感知內容損失。
Φi,j(G(IL)x,y)2。
原模型內容損失函數(shù)的計算采用激活后特征,文中采用VGG19網絡中第二次最大池化操作之前的第二個卷積層激活前特征,即為lVGG(2,2),在礦工人臉圖像的超分辨率重建任務中,能對重建后的圖像能更好保存色彩和亮度的信息。
LG為生成器的對抗損失,根據(jù)鑒別器可知,鑒別器的損失公式為
LD=-Exr[log2D(xr,xf))]-Exf[log2(1-D(xf,xr))],
則,生成器的對抗損失定義為
LG=-Exr[log2(1-D(xr,xf)]-Exf[log2(D(xf,xr))],
L1損失函數(shù)定義為
L1=Exi||G(xr)-y||1。
數(shù)據(jù)集為采集到的煤礦工人臉圖像,共有圖像270張,進一步擴增數(shù)據(jù)集,擴增方法有圖像左右上下翻轉、圖像分別沿x、y軸平移20個像素單位長度、圖像旋轉10°、圖像對比度增強0.2或減弱0.2、圖像亮度增強0.2或減弱0.2,經過5倍擴充后,數(shù)據(jù)集共有1 350張,其中,訓練集占80%,測試集占20%如圖5所示。通過 Matlab的雙三次核函數(shù)對高分辨率圖像進行下采樣,比例因子r=4,得到對應的低分辨率圖像。為了方便訓練,高分辨率圖像裁剪為512×512,則低分辨率圖像為128×128。
超分辨率算法常用的評價指標包括:峰值信噪比(PSNR)和結構相似性(SSIM)。
PSNR經常作為圖像質量的衡量指標。兩個m×n單色圖像I和P,均方誤差定義為
式中:I——無噪聲的原始圖像;
P——I的噪聲近似。
峰值信噪比定義為
式中,I——未壓縮的原圖像。
圖5 數(shù)據(jù)集的擴增展示Fig. 5 Expansion of data set
SSIM是衡量兩幅圖像相似度的重要指標,取值范圍為[0,1],SSIM的值越接近數(shù)值1,表示圖像失真程度越小。
SSIM的公式為
式中:μx——圖像x像素灰度的均值;
μy——圖像y像素灰度的均值;
σx——圖像x像素方差;
σy——圖像y像素方差;
σxy——圖像x和圖像y的協(xié)方差;
c1、c2——常數(shù)。
2.2.1 訓練細節(jié)
文中的算法訓練實驗中,數(shù)據(jù)集的低分辨率圖像與高分辨率圖像之間以4倍的比例因子,最小批量大小(batch size)設定為16, HR的裁剪塊大小(patch_size)設定為128×128。
模型訓練中,學習率設置為1×10-4,并且在5×104、1×105、2×105和3×105迭代輪次時減半。損失函數(shù)L1的系數(shù)η為1×10-2,對抗損失函數(shù)LG的系數(shù)λ為5×10-3。
網絡模型的訓練過程使用Adam優(yōu)化器,初始學習率為1×10-4,β1=0.9,β2=0.999,交替更新生成器和鑒別器網絡,直至模型收斂。模型搭建通過PyTorch框架,操作系統(tǒng)為Linux,GPU為NVDIA GeForce RTX 3090。
2.2.2 實驗結果
文中方法與雙三次插值法(Bicubic)[17]、SRCNN[11]、FSRCNN[12]、ESPCN[13]、SRGAN[15]以及ESRGAN[16]方法進行對比實驗,完成測試集的4倍重建, 峰值信噪比P與結構相似性S的對比結果如表1所示。
表1 不同算法的PSRN與SSIM對比結果
文中算法相較于Bicubic算法有較大的提升。相較于傳統(tǒng)的卷積神經網絡算法如SRCNN算法,PSNR提升了3.748 dB,SSIM提升了0.104;相較于FSRCNN算法,PSNR值提升了3.379 dB,SSIM提升了0.095;相較于ESPCN算法PSNR值提升了3.442 dB,SSIM提升了0.088。相較于SRGAN和ESGAN,PSNR值分別提高了1.329和0.523 dB,SSIM值分別提高了0.035和0.021。
將訓練過程中每種算法的PSNR值隨迭代變化的關系如圖6所示。
圖6 不同算法的PSNR迭代對比Fig. 6 Comparison of PSNR iterations of different algorithms
由圖6可知,訓練100代后,文中方法模型在訓練過程中PSNR值為最高,達到28.5 dB,并且文中方法的收斂性相對較好。
為了更加直觀展示不同算法對礦工圖像的4倍超分辨率重建效果,選取了正常光照下的礦工人臉圖像如圖7所示。
圖7 正常光照下不同算法的礦工人臉對比Fig. 7 Comparison of miners′ faces with different algorithms under normal light
由圖7可見,文中算法更好展示眼皮褶皺等細節(jié)信息,能更清晰的看到胡須、皺紋的紋理狀況,整體色彩保存較完整,在視覺上更貼近真實圖像。進一步選取了低光照射下的礦工人臉圖像可視化圖展示,如圖8所示。
圖8 低光下不同算法的礦工人臉對比Fig. 8 Comparison of miners′ faces with different algorithms in low light
由圖8可見,在低光狀態(tài)下,文中算法下圖像能展示出眉毛的毛發(fā)狀態(tài),眼睛邊緣的褶皺等細節(jié)信息,人臉的每個器官的輪廓相對更銳利,嘴巴的邊緣、色彩等信息都保存較好。
2.2.3 消融實驗
超分辨率領域,網絡的深度,以及訓練集中高分辨率圖像的裁剪塊(patch_size)大小對實驗結果有較大的影響。因此,在文中算法中HR的裁剪塊設為128×128、64×64,并分別在16個和23個殘差塊上進行4倍重建的實驗,結果如圖9所示。
圖9 不同殘差塊下裁剪塊的迭代變化Fig. 9 Iterative changes of patch_size under different residual blocks
由圖9可見,迭代6×105后,23個殘差塊的PSNR值約在28.3~28.5 dB,16個殘差塊的PSNR值在28.0~28.1 dB。在相同的殘差塊下,裁剪塊為128×128比64×64的PSNR值高0.1~0.2 dB,因此,文中選用23個殘差塊,裁剪塊大小設為128×128。
批尺寸(batch_size)設置的大小不同也會帶來不同的訓練效果。因此,在4倍放大因子下,將批尺寸分別設定為16、32、64進行實驗,結果如圖10所示。
由圖10可見,迭代6×105后,三種批尺寸在訓練集上的PSNR差值為0.117~0.126 dB,批尺寸設為16時PSNR值最高,因此,文中的批尺寸大小設定為16。
圖10 不同批尺寸的迭代變化關系Fig. 10 Iterative change of different batch_size
在4倍放大因子下,設置四種情況,第一種情況,即為原網絡結構,引用BN層,殘差塊為16個,上采樣利用反卷積層;第二種情況引用BN層,殘差塊為23個,上采樣利用亞像素卷積層;第三種情況引用BN層,殘差塊為16個,上采樣利用亞像素卷積層;第四種情況不使用BN層,殘差塊為23個,上采樣利用亞像素卷積層,四種情況的結果如表2所示。
表2 不同實驗條件下測試集的PSNR/SSIM結果
由表2可見,第一種情況為原網絡,采用亞像素卷層后,第三種情況相較于第一種情況的PSNR和SSIM值分別提高了0.068 dB和0.002,在此基礎上再提高網絡深度,第二種情況相較于第三種情況的PSNR和SSIM值分別提高了0.194 dB和0.004,進一步刪除BN層,文中方法即第四種情況比第二種情況的PSNR和SSIM值分別提高了0.261 dB和0.007,因此,文中方法即第四種情況的PSNR和SSIM值最高。
為了進一步展示不同實驗條件對礦工人臉圖像重建的影響,給出不同情況下的可視化結果,如圖11所示。從視覺效果以及PSNR/SSIM的數(shù)值可知,刪除BN層對于偽影的消除有一定的幫助,加深網絡深度、采用亞像素卷積層能更好地保存礦工圖像的色彩、圖像邊緣和細節(jié)信息。
圖11 不同實驗條件的可視化結果Fig. 11 Visualization results of different experimental conditions
(1)在原有超分辨率生成對抗網絡模型的基礎上,改進生成器,刪除殘差密集塊的批量歸一化層,將殘差密集塊的個數(shù)增加至23個,加深網絡深度,可以更好提取圖像的特征信息。同時使用亞像素卷積層,采用逐步上采樣的方式,更好地保存了重建圖像的邊緣信息。
(2)文中使用了基于感知內容損失、對抗損失以及L1范數(shù)的混合損失函數(shù),使生成器在重建礦工人臉時注意到圖像的深層特征,在1 350張礦工人臉圖像上進行訓練、測試,實驗結果表明,文中方法取得了較好的圖像超分辨率重建效果。
(3)文中僅研究了4倍礦工人臉的超分辨率重建,下一步需要增加礦工人臉圖像的2倍、3倍、8倍的圖像重建,重建高倍數(shù)的礦工人臉圖像,對模型的要求更高,仍需要進一步的學習和改進。