盧冰, 李燦林, 馮薛龍, 宋順, 王華
(鄭州輕工業(yè)大學(xué)計算機(jī)與通信工程學(xué)院, 鄭州 450000)
清晰的高分辨率圖像能夠為人們提供更多的信息,但在實際情況中,受到圖像信息采集設(shè)備、采集環(huán)境、網(wǎng)絡(luò)環(huán)境、圖像退化模型等因素的影響,人們往往無法直接方便地獲得畫面清晰的、明亮的、理想的高分辨率圖像,尤其在環(huán)境照度不足的低照度場景下更是如此[1]。圖像超分辨率重建是指將給定的低分辨率圖像通過特定算法恢復(fù)重建為高分辨率圖像,并使圖像的細(xì)節(jié)信息更加清晰完整的過程。圖像超分辨率重建在許多領(lǐng)域都有著十分重要的應(yīng)用價值[2-6]。例如,在醫(yī)學(xué)領(lǐng)域中有時需要將低分辨率的B超、X射線衍射等圖像重建為清晰的高分辨率圖像,以便更好地協(xié)助醫(yī)生診斷病情。對陰雨天甚至極端天氣情況下采集的低分辨率監(jiān)控影像進(jìn)行超分辨率重建,能夠給公共安防等領(lǐng)域提供更多有效的關(guān)鍵信息。而夜間、水下、礦井等特殊環(huán)境下采集到的低分辨率圖像具有畫面模糊、亮度低、細(xì)節(jié)丟失等問題,通過高分辨率重建,可以幫助值班人員更早發(fā)現(xiàn)環(huán)境中存在的問題與危險。
圖像超分辨率重建方法可以簡單地劃分為傳統(tǒng)方法和基于深度學(xué)習(xí)的方法兩種。傳統(tǒng)方法以最近鄰插值法(nearest neighbor interpolation,NNI)、雙線性插值法(bilinear interpolation,BLI)、雙立方插值法(bicubic interpolation,BCI)等基于插值的超分辨率重建方法為代表,基于插值的算法計算效率高,但重建時的效果不佳。傳統(tǒng)方法中也有基于鄰域嵌入[3,7]、稀疏表示[5-6]和錨定鄰域回歸[8-9]等操作的一些其他重建方法。而基于深度學(xué)習(xí)的圖像超分辨率重建方法隨著卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)等人工智能技術(shù)在圖像處理領(lǐng)域的深入應(yīng)用而興起。該類方法通過將高分辨率圖像和低分辨率圖像分別切割為子圖像塊集合,學(xué)習(xí)大量的圖像塊對,來模擬形成低分辨率圖像和高分辨率圖像之間的映射關(guān)系,然后將輸入的低分辨率圖像映射為高分辨率圖像。這些方法主要包含有首次將卷積神經(jīng)網(wǎng)絡(luò)引入圖像超分辨率重建算法的SRCNN(super-resolution convolutional neural network)方法[10],增加反卷積層的FSRCNN(fast super-resolution by CNN)方法[11],采用亞像素卷積的ESPCN(efficient sub-pixel convolutional neural network)方法[12],網(wǎng)絡(luò)結(jié)構(gòu)極度加深的VDSR(very deep super-resolution)方法[13],引入遞歸神經(jīng)網(wǎng)絡(luò)的DRCN(deeply-recursive convolutional network)方法[14],引入深度殘差網(wǎng)絡(luò)的SRResNet方法[15],其中以SRCNN方法、SRResNet方法最具代表性。
低照度圖像具有對比度低、顏色偏暗、畫面模糊、有明顯噪聲等特征。現(xiàn)有的以上圖像超分辨率重建方法大多適用于正常環(huán)境光照下圖像的超分辨率重建,但這些方法用于處理低照度圖像時效果普遍不佳。雖然也能夠提高圖像分辨率,但重建后的圖像畫面亮度依舊較低、暗部細(xì)節(jié)難以有效捕捉。而目前針對低照度圖像的超分辨率重建方法研究甚少。Han等[16]針對低光環(huán)境下的近紅外圖像的放大,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的超分辨率算法。Honda等[17]提出了一種在低光環(huán)境下拍攝的基于多幀的低分辨率彩色圖像的超分辨率方法,但這兩種方法分別針對近紅外圖像和多幀處理情形,也都各有局限性。
針對單幀低照度彩色圖像的超分辨率重建進(jìn)行研究,采用目前主流的基于深度學(xué)習(xí)的超分辨率重建思想,提出一種基于改進(jìn)超分辨率殘差網(wǎng)絡(luò)(super-resolution residual networks,SRResNet)深度學(xué)習(xí)網(wǎng)絡(luò)的低照度圖像超分辨率重建方法。通過將讀取的圖像下采樣、亮度降低等處理生成低照度低分辨率圖像,并將該圖像與高分辨率圖像作為數(shù)據(jù)對輸入學(xué)習(xí)模型,以便改進(jìn)SRResNet的訓(xùn)練數(shù)據(jù)對的生成方式,優(yōu)化訓(xùn)練過程,從而構(gòu)建面向單幀低照度彩色圖像的基于改進(jìn)SRResNet的超分辨率重建方法。
在基于深度學(xué)習(xí)的超分辨率重建研究中,加深網(wǎng)絡(luò)結(jié)構(gòu)模型能夠得到更高質(zhì)量的重建結(jié)果。但隨著模型層數(shù)的逐漸加深,模型越來越不能很好地收斂,往往無法得到期望的結(jié)果。深度殘差網(wǎng)絡(luò)(residual networks,ResNet)在卷積神經(jīng)網(wǎng)絡(luò)中加入了殘差學(xué)習(xí)模塊,有效地解決了深層網(wǎng)絡(luò)中的精度下降和梯度彌散問題,既能夠大幅加深網(wǎng)絡(luò)層數(shù),又能夠保證精度。深度殘差網(wǎng)絡(luò)將每層學(xué)習(xí)的映射關(guān)系定義為
H(x)=F(x)+x
(1)
式(1)中:x為原始輸入圖像;H(x)為其期望的預(yù)測值;F(x)為殘差函數(shù)。也就是在每層的結(jié)束加上原始輸入,隨著層數(shù)不斷加深,F(xiàn)(x)就會趨向于0或者一個相對較小的值。在這種情況下,即使層數(shù)不斷加深,訓(xùn)練誤差依舊會被控制在一個較小的范圍內(nèi),整個模型在訓(xùn)練時就不容易發(fā)散。
SRResNet深度學(xué)習(xí)模型是一種以SRCNN為基礎(chǔ),加入殘差學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)建出的用于圖像超分辨率重建的網(wǎng)絡(luò)結(jié)構(gòu),原理如圖1所示[15]。SRResNet模型以低分辨率圖像為輸入,輸出重建后的高分辨率圖像。模型主體包含5個殘差模塊,每個殘差模塊中包含2個卷積層、2個BN(batch normalization)層和1個PreLU(parametric rectified linear unit)激活函數(shù)。2個子像素卷積層用于增大特征圖大小。除了作為主體的深度殘差模塊和用于放大的子像素卷積模塊以外,在整個模型的開始和結(jié)尾部分分別添加了一個卷積層,用于數(shù)據(jù)調(diào)整和增強(qiáng)。BN層是深度學(xué)習(xí)中非常重要的一環(huán),可以大大增加訓(xùn)練速度,防止過度擬合。
k為卷積核大小,n為輸出通道數(shù),s為步長圖1 SRResNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 SRResNet network structure
為了能夠在重建低照度圖像后獲得清晰而明亮的圖像,通過改進(jìn)SRResNet的訓(xùn)練數(shù)據(jù)對的生成方式,優(yōu)化生成和訓(xùn)練過程,以便提升低照度環(huán)境下的圖像超分辨率重建效果。
對于訓(xùn)練數(shù)據(jù)對的生成方法,首先從訓(xùn)練集中讀取一張圖像,然后判斷圖像的分辨率大小,若圖像尺寸小于96×96,則會根據(jù)放大倍率將整個圖像進(jìn)行下采樣,生成低分辨率(low resolution,LR)圖像;若圖像尺寸大于96×96,則從圖像的隨機(jī)位置裁剪一塊96×96的子圖像塊作為高分辨率(high resolution,HR)圖像,然后根據(jù)放大倍率對子圖像塊進(jìn)行下采樣,生成低分辨率圖像。
進(jìn)一步,為適應(yīng)低照度圖像的超分辨率重建,將下采樣后生成的低分辨率圖像進(jìn)行隨機(jī)亮度下降(下降幅度為原亮度的30%~70%),用于模擬低照度環(huán)境,使低分辨率圖像轉(zhuǎn)換為低照度低分辨率圖像,改進(jìn)SRResNet的訓(xùn)練對的生成過程,將高分辨率圖像和低照度低分辨率圖像作為一組數(shù)據(jù)對,輸入模型進(jìn)行訓(xùn)練,學(xué)習(xí)高分辨率圖像與低照度低分辨率圖像之間的非線性映射關(guān)系,由此訓(xùn)練出來的網(wǎng)絡(luò)模型的重建圖像將比原圖像亮度提高,暗部細(xì)節(jié)也能夠更加清晰。
以上面向SRResNet的訓(xùn)練對改進(jìn)生成的流程如圖2所示。
針對低照度圖像的超分辨率重建,面向SRResNet的訓(xùn)練對改進(jìn)生成能獲得如下3個方面的明顯效果。
(1)重建后的圖像暗部細(xì)節(jié)亮度提升明顯,暗部細(xì)節(jié)更加清晰。
(2)圖像亮部(比如夜間拍攝的燈箱等高光物體)的亮度不會提升太多,防止過度曝光的問題,同時亮部細(xì)節(jié)不會丟失過多。
(3)超分辨率圖像重建訓(xùn)練集仍可用于本文的面向低照度圖像的超分辨率重建的學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練。
基于改進(jìn)SRResNet的低照度圖像超分辨率重建方法的主要流程如下。
(1)讀取訓(xùn)練集,根據(jù)上節(jié)的方法,對訓(xùn)練集圖像做預(yù)處理,改進(jìn)生成訓(xùn)練圖像對。
(2)使用訓(xùn)練圖像對訓(xùn)練SRResNet學(xué)習(xí)網(wǎng)絡(luò)。
(3)將訓(xùn)練好的網(wǎng)絡(luò)模型存儲到文件。
(4)加載已訓(xùn)練的網(wǎng)絡(luò)模型,對低照度低分辨率圖像進(jìn)行超分辨率重建。
本文方法的基本訓(xùn)練過程和重建過程如圖3所示。
圖2 面向SRResNet的訓(xùn)練對改進(jìn)生成Fig.2 SRResNet oriented training pair optimization generation
圖3 本文學(xué)習(xí)訓(xùn)練過程和超分辨率圖像重建過程Fig.3 Learning and training process and super-resolution image reconstruction process of the proposed method
為合理評價本文方法, 選取有代表性的BLI、BCI、SRCNN、SRResNet方法與本文方法進(jìn)行對比,比較它們在相同放大倍數(shù)條件下的面向低照度圖像的超分辨率重建的重建效果與運行速度,其中SRCNN、SRResNet與本文方法采用同一訓(xùn)練集進(jìn)行學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練。
本文所有實驗均在以下環(huán)境進(jìn)行。
(1)硬件環(huán)境:CPU為Intel(R) Core(TM) i5-7400,主頻為3.00 GHz,RAM為8.00 GB,GPU為NVIDIA GeForce GTX 1050 Ti。
(2)軟件環(huán)境:Windows 10 專業(yè)版、Visual Studio Code 1.56.2、Python 3.9.5、Pytorch 1.8.1、tensorflow 2.5.0rc3。
將選自COCO2014數(shù)據(jù)集的1 008張圖片作為SRCNN、SRResNet和改進(jìn)的SRResNet學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練集。為保證訓(xùn)練量的一致,將SRCNN、SRResNet、本文方法的訓(xùn)練圖像對生成過程統(tǒng)一為:從每張原圖像中裁剪一個子圖像塊。
重建測試實驗選用了圖像超分辨率重建算法常用的5個數(shù)據(jù)集Set5、Set14、BSD100、URban100、Sunhay80作為測試集,分別如圖4~圖8所示。
圖4 Set5數(shù)據(jù)集Fig.4 Set5 dataset
(1)Set5:由5張人物、動物圖像組成,圖像分辨率大約是280×280。
(2)Set14:由14張人物、動物、漫畫圖像組成,圖像分辨率大約是300×300。
(3)BSD100:由100張生活中常見的物體圖像組成,圖像分辨率大約是481×321。
圖5 Set14數(shù)據(jù)集部分圖片F(xiàn)ig.5 Some images of Set14 dataset
圖6 BSD100數(shù)據(jù)集部分圖片F(xiàn)ig.6 Some images of BSD100 dataset
圖7 Urban100數(shù)據(jù)集部分圖片F(xiàn)ig.7 Some images of Urban100 dataset
圖8 SunHays80數(shù)據(jù)集部分圖片F(xiàn)ig.8 Some images of SunHays80 dataset
(4)Urban100:由100張邊緣清晰的建筑圖像組成,圖像分辨率大約是1 024×1 024。
(5)SunHays80:由80張邊緣信息復(fù)雜的風(fēng)景照片組成,圖像分辨率大約是1 024×768。
為驗證本文方法的效果,實驗具體過程如下。
(1)使用相同訓(xùn)練集(1 008張圖片)和訓(xùn)練量,針對SRCNN、SRResNet和本文改進(jìn)的SRResNet學(xué)習(xí)網(wǎng)絡(luò),進(jìn)行4倍放大訓(xùn)練。
(2)將Set5、Set14、BSD100、URban100、Sunhay80五個圖片測試集作為原圖,對原圖進(jìn)行4倍下采樣,再分別按比例將其亮度分別下降至原圖的70%~30%,生成低照度低分辨率圖像。
(3) 將生成的低照度低分辨率圖像作為輸入,分別輸入各訓(xùn)練好的模型,進(jìn)行超分辨率重建,并對重建結(jié)果進(jìn)行圖像視覺效果等主觀比較評價,以及各測試圖像集上的平均峰值信噪比(peak signal to noise ratio,PSNR)、平均結(jié)構(gòu)相似性(structural similarity,SSIM)、平均運行時間方面的客觀比較評價。
PSNR和SSIM是圖像超分辨率重建算法的常用評價指標(biāo),分別介紹如下。
(1)PSNR。PSNR是一種評價圖像超分辨率重建效果的客觀有效指標(biāo)。PSNR的取值范圍為0~100,PSNR指標(biāo)越大,表示圖像重建效果越好,其數(shù)學(xué)計算公式為
(2)
式(2)中:MAXI為表示圖像點顏色的最大數(shù)值;MSE為均方誤差。PSNR也存在著一定的局限性,其計算結(jié)果無法和人眼觀察到的視覺感受效果完全相同,這主要是因為人的視覺感受系統(tǒng)對于誤差的感知并不是絕對的,感知結(jié)果往往會受到多種因素的影響,從而可能發(fā)生較大的變化。
(2)SSIM。SSIM是一種衡量兩幅圖像相似程度的指標(biāo),同樣也是評價圖像超分辨率重建效果的客觀有效指標(biāo)。對于給定的兩幅圖像x和y,結(jié)構(gòu)相似性SSIM計算公式為
(3)
式(3)中:μ為圖像x和y的平均值;σ2為方差;σxy為和的協(xié)方差;c1和c2為用來維持穩(wěn)定的常數(shù),其定義分別為
c1=(k1L)2
(4)
c2=(k2L)2
(5)
式中:L為像素值的動態(tài)范圍,一般都取為255;k1=0.01,k2=0.03。結(jié)構(gòu)相似性指標(biāo)的取值范圍為-1~1,數(shù)值越大代表重建效果越好,當(dāng)兩幅圖像完全一樣時,SSIM指標(biāo)就等于1。
根據(jù)第3節(jié)的實驗方法,本節(jié)按照不同亮度環(huán)境來展示與分析實驗結(jié)果,以便驗證本文提出的基于改進(jìn)SRResNet深度學(xué)習(xí)網(wǎng)絡(luò)的低照度圖像超分辨率重建方法。對于5個測試集上的圖像重建效果的主觀視覺比較而言,由于本文版面空間的限制,本文只對其中具有代表性的兩幅圖(蝴蝶、人臉)在不同重建方法、50%及30%亮度環(huán)境下的超分辨率重建效果進(jìn)行了完整的展示。同時也對各參與比較的方法在各測試圖像集上、不同亮度環(huán)境下的平均PSNR、平均SSIM、平均運行時間等性能進(jìn)行客觀比較評價,以便驗證本文方法針對低照度圖像處理的效果和性能。
在測試圖像降低亮度到50%的情形下,兩幅代表性的測試圖(蝴蝶,人臉)在5種不同重建方法的超分辨率重建效果分別見圖9和圖10。可以明顯看出BLI和BCI兩種方法的處理結(jié)果圖像畫面模糊,細(xì)節(jié)信息嚴(yán)重缺失,整體效果較差。而SRCNN、SRResNet和本文方法三種基于深度學(xué)習(xí)方法的處理結(jié)果明顯好于兩種傳統(tǒng)的方法,邊緣信息相對清晰,但由于重建后的圖像畫面亮度低,仍有細(xì)節(jié)信息缺失。而相比于原SRResNet網(wǎng)絡(luò)的重建結(jié)果,改進(jìn)訓(xùn)練后的學(xué)習(xí)網(wǎng)絡(luò)獲得的重建圖像畫面亮度提高明顯,暗部細(xì)節(jié)更加清晰,視覺效果更好。
表1展示了在測試圖像降低到50%亮度情形下、各參與比較的圖像超分辨率重建方法在各測試集上進(jìn)行超分辨率重建的平均PSNR、平均SSIM、平均運行時間等性能指標(biāo)。通過表1可以看到,在圖像重建效果方面,兩種基于插值的方法的平均PSNR和SSIM指標(biāo)相差不大,但表現(xiàn)十分不理想,在部分測試集的平均SSIM指標(biāo)變?yōu)樨?fù)數(shù),與三種深度學(xué)習(xí)方法相差甚遠(yuǎn),而本文改進(jìn)后的方法優(yōu)于SRCNN、SRResNet兩種方法,平均PSNR、平均SSIM均表現(xiàn)最好。在平均運行時間方面,兩種基于插值的方法平均處理時間相差不大,并且在處理URban100和Sunhay80兩個圖像尺寸較大的測試集時,處理時間均明顯少于三種基于深度學(xué)習(xí)的方法。三種深度學(xué)習(xí)方法中,由于增加了殘差網(wǎng)絡(luò)結(jié)構(gòu),SRResNet和本文方法相比SRCNN的整體時間稍長,而本文改進(jìn)后的算法在處理時間上比SRResNet略長,但總體差距不大。
圖9 蝴蝶測試圖50%亮度下超分辨率重建效果對比Fig.9 Comparison of super-resolution reconstruction effects of different methods on the image “butterfly” with 50% brightness
圖10 人臉測試圖50%亮度下超分辨率重建效果對比Fig.10 Comparison of super-resolution reconstruction effects of different methods on the image “face” with 50% brightness
表1 測試數(shù)據(jù)集50%亮度情形下各種重建方法的平均客觀性能指標(biāo)Table 1 Average objective performance indices of various reconstruction methods on test datasets with 50% brightness
在降低亮度到30%的情形下,代表性的兩幅測試圖(蝴蝶、人臉)在5種不同重建方法的超分辨率重建效果分別見圖11和圖12??梢悦黠@看出BLI和BCI兩種方法的處理結(jié)果圖像畫面模糊,細(xì)節(jié)信息嚴(yán)重缺失,整體效果差、亮度低。而SRCNN、SRResNet和本文的方法三種基于深度學(xué)習(xí)的方法的處理結(jié)果好于傳統(tǒng)的方法,邊緣信息相對清晰。但由于重建后的圖像畫面亮度低,缺失大量細(xì)節(jié)信息,重建效果不夠理想。相比另外兩種深度學(xué)習(xí)的方法,本文改進(jìn)后的方法畫面亮度更加明亮,暗部細(xì)節(jié)更加清晰,具有更好的視覺感受。
表2展示了在測試圖像降低到30%亮度情形下、各參與比較的圖像超分辨率重建方法在各測試集上進(jìn)行超分辨率重建的平均PSNR、平均SSIM、平均運行時間等性能指標(biāo)。通過表2可以看到,在圖像重建效果方面,兩種基于插值的方法的PSNR和SSIM指標(biāo)依然相差不大,但性能指標(biāo)很差,甚至在所有測試集中它們的SSIM指標(biāo)都為負(fù)數(shù),與三種深度學(xué)習(xí)方法相差特別大,并且本文改進(jìn)后的方法優(yōu)于SRCNN、SRResNet兩種方法,其平均PSNR、平均SSIM表現(xiàn)均最好。各個方法平均運行時間與前面亮度下的實驗結(jié)論基本保持一致。
圖11 蝴蝶測試圖30%亮度下超分辨率重建效果對比Fig.11 Comparison of super-resolution reconstruction effects of different methods on the image “butterfly” with 30% brightness
圖12 人臉測試圖30%亮度下超分辨率重建效果對比Fig.12 Comparison of super-resolution reconstruction effects of different methods on the image “face” with 30% brightness
表2 測試數(shù)據(jù)集30%亮度情形下各種重建方法的平均客觀性能指標(biāo)Table2 Average objective performance indices of various reconstruction methods on test datasets with 30% brightness
總的來說,就圖像超分辨率重建效果而言, SRCNN、SRResNet和本文方法三種方法的處理結(jié)果優(yōu)于BLI和BCI方法,邊緣信息相對清晰。隨著圖像亮度的下降,重建后的圖像同樣會亮度有所下降,缺失暗部細(xì)節(jié),使圖像整體變得不清晰。而相比于其他方法,針對低照度圖像,本文改進(jìn)后的方法的超分辨率重建畫面亮度有所提高,暗部細(xì)節(jié)更加清晰,視覺效果更好。在客觀評價指標(biāo)方面,所有算法的平均PSNR、平均SSIM指標(biāo)會隨著圖像的整體亮度降低而降低。兩種傳統(tǒng)方法重建結(jié)果的平均PSNR和SSIM指標(biāo)都不理想,與三種深度學(xué)習(xí)方法相差較大。三種基于深度學(xué)習(xí)的方法中,本文方法的平均PSNR指標(biāo)、平均SSIM指標(biāo)最好。在不改變其他因素的情況下,只改變測試圖像的亮度對參與比較的方法的平均運行時間都沒有什么影響,傳統(tǒng)的方法在處理速度方面整體優(yōu)于基于深度學(xué)習(xí)的方法。本文改進(jìn)后的方法在平均處理時間上比原SRResNet方法略長一點。整體而言,可以看出本文改進(jìn)后的方法對低照度圖像進(jìn)行超分辨率重建時,效果優(yōu)于傳統(tǒng)重建方法和常規(guī)的基于深度學(xué)習(xí)的圖像超分辨率重建算法。
針對低照度條件下低分辨率圖像的超分辨率重建問題,提出了一種基于改進(jìn)SRResNet深度學(xué)習(xí)網(wǎng)絡(luò)的低照度圖像超分辨率重建方法。通過實驗結(jié)果及分析得到以下結(jié)論。
(1) 與傳統(tǒng)方法以及基于深度學(xué)習(xí)的SRCNN、SRResNet方法相比,針對低照度圖像,改進(jìn)SRResNet的訓(xùn)練數(shù)據(jù)對的生成方式,優(yōu)化生成過程,使得超分辨率重建后的畫面亮度得到提高,暗部細(xì)節(jié)更加清晰,視覺效果更好。
(2) 與傳統(tǒng)方法以及基于深度學(xué)習(xí)的SRCNN、SRResNet方法相比,本文方法的平均PSNR指標(biāo)、平均SSIM指標(biāo)最好。
(3) 通過對比實驗驗證了本文優(yōu)化訓(xùn)練后的方法在處理低照度圖像超分辨率重建時重建效果和性能整體優(yōu)于現(xiàn)有典型方法。