卜東寒,李志宏,王安紅,趙利軍
(太原科技大學(xué) 電子信息工程學(xué)院,太原 030024)
圖像的數(shù)據(jù)量迅速增加,圖像壓縮與恢復(fù)技術(shù)面臨巨大的挑戰(zhàn)。有損壓縮如JPEG[1]會引入復(fù)雜的壓縮偽影,尤其是塊偽影,振鈴效應(yīng)和模糊。不僅影響視覺效果,還給目標檢測等領(lǐng)域帶來極大的負面影響。因此,去除壓縮偽影在圖像處理領(lǐng)域尤為重要。針對壓縮偽影去除,相關(guān)研究人員提出了很多算法。Foi等人[2]提出基于形狀自適應(yīng)離散余弦變換的圖像濾波算法,但會導(dǎo)致輸出圖像丟失高頻信息。Yoo等人[3]提出了基于DCT的后處理算法去除塊效應(yīng),但仍存在較明顯偽影。近年來基于深度學(xué)習的算法在各種計算機視覺領(lǐng)域[4-8]取得了十分優(yōu)秀的效果。在去除JPEG壓縮偽影方面,DONG等人[9]最早提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的框架,但恢復(fù)圖像仍有一些明顯的塊效應(yīng)。Zhang等人[10]提出了一種雙域多尺度CNN放大接收域,利用像素域和DCT域的冗余去除JPEG壓縮偽影。
本文提出了一個多尺度對稱壓縮偽影去除神經(jīng)網(wǎng)絡(luò),在原始圖像尺寸和小圖像尺寸采用對稱的網(wǎng)絡(luò)結(jié)構(gòu)進行特征提取和整合。為了更多恢復(fù)出圖像的紋理信息,并且增加在高層次視覺處理如目標檢測中的表現(xiàn)效果,本網(wǎng)絡(luò)同時在感知空間控制模型訓(xùn)練。實驗結(jié)果表明,本文所提算法可以在壓縮偽影去除處理中取得更好的性能。
為了去除壓縮偽影,本文設(shè)計構(gòu)建了一個基于卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)框架,如圖1所示。低分辨率會弱化失真,縮小圖像可以減小壓縮偽影帶來的影響,所以采用多尺度的多支路結(jié)構(gòu),使得降低分辨率的支路提取到的特征對不改變分辨率支路提取的特征進行信息增強。同時,在圖像原始尺寸和小尺寸的特征提取過程中,輸入均為帶有壓縮偽影的圖像,輸出均是用于恢復(fù)重建圖像的特征,考慮到兩條支路輸入與輸出的一致性,兩條支路采用相同的網(wǎng)絡(luò)結(jié)構(gòu),整個壓縮偽影去除網(wǎng)絡(luò)呈現(xiàn)出對稱的特點。
圖1 多尺度對稱壓縮偽影去除神經(jīng)網(wǎng)絡(luò)Fig.1 Multi-scale symmetrical neural network for compression artifacts reduction
圖1中矩形框代表卷積操作,卷積核尺寸均為3×3,卷積步長為1.在未改變圖像尺寸的支路中,首先使用一層卷積操作輸出大通道特征圖,再送入多個殘差塊中進一步增強和處理特征。在改變分辨率的支路中,采用步長為2的卷積實現(xiàn)縮小圖像,同時充分提取圖像特征并輸出大通道特征圖。接下來輸入多個殘差塊增強并處理特征,將得到的特征圖使用Subpixel上采樣變回原圖尺寸。將兩條支路的輸出在通道維度上進行拼接,再經(jīng)過一個卷積映射回原始圖像的通道數(shù)。為了加快網(wǎng)絡(luò)收斂,迅速獲得圖像內(nèi)容和結(jié)構(gòu)信息,本網(wǎng)絡(luò)整體進行殘差學(xué)習。
本文使用一種復(fù)合損失函數(shù)進行網(wǎng)絡(luò)訓(xùn)練,如公式(1)所示,主要由三部分構(gòu)成:MSE損失、VGG損失和SSIM損失。其中,MSE損失函數(shù)可以保證重建圖像與原始圖像之間逐像素的相似性,但是單獨使用可能會導(dǎo)致輸出圖像過度平滑。為了更好地保留圖像的邊緣和細節(jié)等高頻信息,本文結(jié)合了SSIM損失提高對圖像結(jié)構(gòu)相似性的判斷,同時可以加快收斂,快速獲得結(jié)構(gòu)信息。但是使用單一的SSIM損失函數(shù)可能會帶來亮度的改變或者顏色的偏差,與MSE函數(shù)復(fù)合使用可以規(guī)避這一缺陷。在此基礎(chǔ)上,加入VGG損失確保要對比的兩幅圖像在感知空間有一致性,進一步提高模型性能。
(1)
(2)
為了避免MSE損失帶來的過度平滑,缺少高頻信息,添加感知損失,將重建后圖像與原始圖像都映射到感知空間對比兩圖像的感知內(nèi)容的差異,如公式(3)所示。本文采用了PyTorch模型庫中添加的預(yù)訓(xùn)練好的VGG網(wǎng)絡(luò)模型,提取用于特征提取的最后一層卷積經(jīng)過ReLU激活層的輸出φV(·)作為感知對比,減小感知間的差異性。
(3)
(4)
本網(wǎng)絡(luò)使用了MSCOCO數(shù)據(jù)集作為訓(xùn)練集,另外,從MSCOCO中隨機選取了100張不同于訓(xùn)練集的圖像作為一個測試集,在下文中稱為MSCOCO_test100.測試集另外還包括LIVE1數(shù)據(jù)集、Classic5數(shù)據(jù)集、BSD500數(shù)據(jù)集中的測試集等,具體可參見表1.使用標準JPEG壓縮方案,將壓縮參數(shù)Q設(shè)置為10、20、30、40,得到壓縮數(shù)據(jù)集。在壓縮偽影去除的實驗中,使用了圖像Y通道(YCbCr空間的Y通道)和RGB彩色圖像兩種方案作為數(shù)據(jù)集。
表1 本文所提算法與ARCNN的PSNR與SSIM對比結(jié)果Tab.1 The PSNR and SSIM comparison results between ARCNN and the proposed algorithm
在訓(xùn)練過程中,每個Epoch隨機從MSCOCO數(shù)據(jù)集中抽取10 000張圖像作為訓(xùn)練集,并將其隨機裁剪成200×200的圖像進行批次訓(xùn)練,減少訓(xùn)練時間。使用Adam優(yōu)化器進行模型訓(xùn)練,采用等間隔調(diào)整的方式進行學(xué)習率衰減,初始學(xué)習率設(shè)置為0.000 5,每30個Epoch學(xué)習率的值變?yōu)樵瓉淼囊话?總共訓(xùn)練150個Epoch.損失函數(shù)的三個參數(shù)值,α、β、γ均設(shè)置為1.本網(wǎng)絡(luò)使用PyTorch實現(xiàn),訓(xùn)練在NVIDIA TITAN RTX 與 TITAN XP GPU上進行,測試在NVIDIA TITAN RTX GPU上進行。
使用ARCNN和DMCNN給出的官方測試代碼和預(yù)訓(xùn)練模型進行該算法的測試,與本文提出的模型效果進行比較。ARCNN與DMCNN分別將數(shù)據(jù)集處理成不同的尺寸,ARCNN不改變原本的數(shù)據(jù)集,而DMCNN對數(shù)據(jù)集進行了裁剪,為了比較公平,分別用它們的方法處理數(shù)據(jù)集進行結(jié)果對比。
3.1.1 客觀比較
峰值信噪比PSNR是圖像處理領(lǐng)域使用極其廣泛的評價指標,但是它沒有考慮到人眼的視覺特性,而結(jié)構(gòu)相似性SSIM分別從亮度、對比度和結(jié)構(gòu)三方面度量圖像相似性。近些年來關(guān)于圖像處理方面的研究更加注重于SSIM的對比,所以本文主要側(cè)重于SSIM指標進行恢復(fù)圖像質(zhì)量評價。
Skimage是基于Python開發(fā)的圖像處理包,在圖像處理領(lǐng)域尤其是基于深度學(xué)習的圖像處理方面具有廣泛的應(yīng)用。為保證比較公平,本文中對所有比較方法全部用給出的預(yù)訓(xùn)練模型進行測試,將得到的結(jié)果統(tǒng)一使用Skimage圖像處理包計算。
本文所提模型與ARCNN的結(jié)果對比如表1所示,最優(yōu)參數(shù)用加粗字體表示,每個壓縮質(zhì)量參數(shù)Q中最后一行對應(yīng)的是每個算法在所有測試集上的平均值。在大部分測試集上,本文所提算法的PSNR高于ARCNN.在所有測試集上,本文所提算法的SSIM均優(yōu)于ARCNN.
本文所提模型與DMCNN的結(jié)果對比如表2所示,最優(yōu)參數(shù)用加粗字體表示,每個壓縮質(zhì)量參數(shù)Q中最后一行對應(yīng)的是每個算法在所有測試集上的平均值。在大部分測試集上,本文所提算法的SSIM優(yōu)于DMCNN.而PSNR次于DMCNN,這是由于DMCNN的損失函數(shù)全部由MSE組成。
表2 本文所提算法與DMCNN的PSNR與SSIM對比結(jié)果Tab.2 The PSNR and SSIM comparison results between DMCNN and the proposed algorithm
表3列舉了各個模型的參數(shù)量的對比。其中,ARCNN的模型最小,但是在數(shù)字度量指標的成績很低,視覺質(zhì)量有所欠缺。相對更好的是DMCNN和本文所提算法,但是本文算法模型的參數(shù)量僅僅為DMCNN的四分之一,卻可以取得更高的SSIM和視覺質(zhì)量,獲得更好的恢復(fù)效果。
表3 各個模型的參數(shù)量對比Tab.3 Comparison of parameters of each model
3.1.2 主觀比較
圖2和圖3中展示了測試集中主觀視覺對比的部分結(jié)果。圖中第一列是原始圖像,第二列是經(jīng)過JPEG壓縮的圖像,第三列分別是經(jīng)過ARCNN和DMCNN恢復(fù)出的圖像,最后一列是本文所提算法的恢復(fù)結(jié)果,展示的均為局部放大圖,可以看到更清晰的細節(jié)內(nèi)容。
圖2 本文算法與ARCNN的視覺對比Fig.2 Visual comparison between ARCNN and the proposed algorithm
圖3 本文算法與DMCNN的視覺對比Fig.3 Visual comparison between DMCNN and the algorithm proposed
從圖2中的第一幅圖像的局部放大圖可以看出,本文所提算法重建出的圖像中的樹木枝葉更加分明。相比來說,ARCNN重建出的圖像比較模糊,且受塊偽影影響較大,本文算法可以重建出更加清晰更加豐富的紋理。在第二幅圖像的天空部分,ARCNN的恢復(fù)重建結(jié)果還有明顯的帶狀效應(yīng),而本文算法的恢復(fù)結(jié)果沒有明顯的過渡邊緣,比ARCNN的結(jié)果更加接近原始圖像。
本文算法去除圖像壓縮偽影的結(jié)果比DMCNN有更豐富的紋理,如圖3所示。第一幅圖像中老虎身上的條紋對比度更大,第二幅圖像中恢復(fù)出的水花更加明顯。
表4是經(jīng)過不同處理的數(shù)據(jù)集在YOLOv5各個模型上的mAP對比。此處使用了四個不同大小的模型,從小到大依次是Yolov5s、Yolov5m、Yolov5l、Yolov5x.不同的處理分別表示為原始數(shù)據(jù)集、經(jīng)過JPEG壓縮的數(shù)據(jù)集和經(jīng)過本文算法恢復(fù)出的數(shù)據(jù)集。mAP均在JPEG壓縮之后下降明顯,但是在經(jīng)過本文的恢復(fù)算法之后,所有模型的mAP值都會有較大回升。
表4 不同處理的數(shù)據(jù)集在YOLOv5上的mAP對比Tab.4 mAP of different processed data on YOLOv5
圖4中第一列是目標檢測的標簽示意圖,第二列是原始數(shù)據(jù)集的目標檢測結(jié)果,第三列是將原始數(shù)據(jù)集經(jīng)過壓縮之后的檢測結(jié)果,最后一列是使用本文算法對壓縮圖像恢復(fù)之后的目標檢測輸出。此處使用的目標檢測算法是Yolov5x預(yù)訓(xùn)練模型。
圖4 經(jīng)過不同處理的數(shù)據(jù)集在YOLOv5模型上的檢測結(jié)果Fig.4 Object detection results of different processed data on YOLOv5
如圖4所示,圖像經(jīng)過JPEG壓縮之后,產(chǎn)生了明顯的漏檢,比如第一幅圖像中的狗和第三幅圖像中的人。第二幅圖像中的長頸鹿一只漏檢,另外一只雖然可以檢出,但是概率得分從0.9下降到0.5,經(jīng)過本文算法恢復(fù)之后的檢測結(jié)果不僅可以提高檢出率,還可以提高檢測概率分數(shù)。第三幅圖像中有一些小型目標因壓縮導(dǎo)致了漏檢,本文算法恢復(fù)后也可以重新檢測出來。
為了去除壓縮偽影,本文提出了一個多尺度對稱神經(jīng)網(wǎng)絡(luò),在原始圖像尺寸和小圖像尺寸采用對稱的網(wǎng)絡(luò)結(jié)構(gòu)進行特征提取和整合。為了加速網(wǎng)絡(luò)訓(xùn)練,快速獲取圖像的結(jié)構(gòu)信息,本網(wǎng)絡(luò)采用殘差結(jié)構(gòu),同時在感知空間控制模型訓(xùn)練。實驗結(jié)果表明,本文所提算法可以在圖像壓縮偽影去除處理中取得更好的性能,并且可以在一定程度上對抗壓縮偽影給目標檢測領(lǐng)域帶來的負面影響。