馬 璐
宿州職業(yè)技術(shù)學(xué)院計算機信息系,安徽宿州,234000
數(shù)據(jù)圖像處理中對于圖像質(zhì)量評價(IQA)方法,通常有主觀圖像質(zhì)量評價和客觀圖像質(zhì)量評價,目前以客觀圖像質(zhì)量評價為主。主觀圖像質(zhì)量評價得到的結(jié)果最為準確,但是從評價的前期準備、評價過程以及結(jié)果產(chǎn)生等操作來看,主觀圖像質(zhì)量評價的步驟非常繁瑣與復(fù)雜,消耗大量人力資源,不利于人們對其進行研究。與之相對應(yīng)的客觀圖像質(zhì)量評價,包括全參考圖像質(zhì)量評價、半?yún)⒖紙D像質(zhì)量評價和無參考圖像質(zhì)量評價。相對于全參考質(zhì)量評價和半?yún)⒖假|(zhì)量評價,無參考質(zhì)量評價是更有研究價值與意義,原因之一是無參考質(zhì)量評價不需要對原始圖像進行比較,而其他的方法需要原始圖像,從而增加了許多不確定因素。
卷積神經(jīng)網(wǎng)絡(luò)[1]是深度學(xué)習(xí)中具有代表性的網(wǎng)絡(luò)模式之一,它的產(chǎn)生加快了神經(jīng)網(wǎng)絡(luò)發(fā)展。2012年,在計算機視覺大賽ImageNet中Alex-Net網(wǎng)絡(luò)脫穎而出成為冠軍后,卷積神經(jīng)網(wǎng)絡(luò)被人們所熟知。此后,卷積神經(jīng)網(wǎng)絡(luò)在每年的ImageNet比賽中一直以高比分占據(jù)冠軍之位,在2015年,改進后的卷積神經(jīng)網(wǎng)絡(luò)算法錯誤率已降低至4.94%,低于人類預(yù)測錯誤率0.06%,最終奠定其在人工智能領(lǐng)域的引領(lǐng)地位。目前被廣泛使用的有VGGNet,GoogLeNet兩種卷積神經(jīng)網(wǎng)絡(luò),分別是通過16層與22層進行搭建的多級網(wǎng)絡(luò)架構(gòu),架構(gòu)非常簡單,但具有很強的魯棒性。因此,它們在處理數(shù)字圖像質(zhì)量評價、識別和邊緣檢測等問題時被廣泛采用,然而在處理比較繁雜的數(shù)據(jù)集時,速度相對緩慢些同時加大了高風(fēng)險性。針對這些問題,本文提出DR-CNN算法,即基于原有的卷積神經(jīng)網(wǎng)絡(luò)技術(shù),通過在圖像進入卷積層前加入降維層,減小客觀圖像質(zhì)量評價與主觀圖像質(zhì)量評價之間的差距,同時有效地提高計算速度,以此解決圖像質(zhì)量評價問題。
卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)網(wǎng)絡(luò)模型的一種,它是多層級結(jié)構(gòu)網(wǎng)絡(luò)數(shù)學(xué)模型。傳統(tǒng)神經(jīng)網(wǎng)絡(luò)在進行數(shù)據(jù)圖像處理過程中,即使圖像相對應(yīng)的像素不高,但反映到傳統(tǒng)神經(jīng)網(wǎng)絡(luò)上其所參與的參數(shù)都是非常龐大的,最終的結(jié)果對于其他機器學(xué)習(xí)模型而言并沒有本質(zhì)上的提高,甚至有的略微降低。卷積神經(jīng)網(wǎng)絡(luò)通過局部感受野(local receptive fields)與權(quán)值共享的特點大大減少了神經(jīng)網(wǎng)絡(luò)中參與的參數(shù)量,同時把龐大的數(shù)據(jù)圖像信息不斷降維處理,最終快速準確地對數(shù)據(jù)完成訓(xùn)練得出結(jié)果。卷積神經(jīng)網(wǎng)絡(luò)中每一個層級中基本上需要包含有以下幾個相同操作。
卷積層[2]是整個卷積神經(jīng)網(wǎng)絡(luò)模型中重要的環(huán)節(jié),也是這個數(shù)學(xué)模型中核心,其基本原理如圖1所示,其中卷積核相當(dāng)于濾波器,卷積核的大小就是模擬局部視野的范圍,通過矩陣方式來作為卷積核數(shù)學(xué)輸入,其大小為y[a,b],圖像與卷積核操作的過程,其公式為
每次進行卷積操作后卷積核進行移動與下次圖像區(qū)域再次進行卷積操作,最后形成特征圖。把每個卷積核看為神經(jīng)元,多少個卷積核經(jīng)過卷積操作后就形成多少個特征圖。
圖1 卷積層結(jié)構(gòu)圖
在形成特征圖過程中,由于卷積核大小的因素會造成特征圖與原始圖像相比像丟失,為保持圖像形狀不發(fā)生改變,在圖像與卷積核進行卷積操作之前,先對圖像進行padding素的操作,即在圖像周圍填加值為0的像素點,依據(jù)卷積核大小不同,填加的外圍像素點不同。在通過卷積操作后形成的特征圖與原來的圖像大小不發(fā)生改變。
激勵機制在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中是指激活函數(shù)[3]。激活函數(shù)引入的主要目的是為了使得網(wǎng)絡(luò)模型得到更加廣泛的使用,因為現(xiàn)實世界中非線性事件往往比線性事件多,激活函數(shù)不僅能夠處理線性模型而且能夠用非線性函數(shù)來建立非線性模型。非線性函數(shù)主要有Sigmoid、tanh、ReLU和ELU等,選擇哪種類型的函數(shù)作為網(wǎng)絡(luò)中的激活函數(shù),既要考慮研究的事物構(gòu)建的模型,也要考慮到網(wǎng)絡(luò)模型中所使用的代價函數(shù)選取會影響到相應(yīng)的激活函數(shù)類型。
優(yōu)化器是指在卷積神經(jīng)網(wǎng)絡(luò)中對輸出的數(shù)據(jù)與原始數(shù)據(jù)架構(gòu)成代價函數(shù),通過對函數(shù)的優(yōu)化,求得最優(yōu)解。通常采用梯度下降法與誤差反向傳播法,來對代價函數(shù)進行優(yōu)化操作。
池化層[4](pooling)又叫作下采樣。其作用有兩個方面:一是把圖像的特征進行收集,以防止圖像特征值丟失。二是為了對圖像進行降維操作,大大地縮小過擬合現(xiàn)象。池化層通常有MAX pooling叫作最大池化層和Mean pooling叫作平均池化層,其基本原理如圖2所示。
圖2 最大池化層,平均池化層
以上是卷積神經(jīng)網(wǎng)絡(luò)中每一層的內(nèi)部結(jié)構(gòu),多層結(jié)構(gòu)疊加在一起就形成深度學(xué)習(xí)中代表性的卷積神經(jīng)網(wǎng)絡(luò)。
DR-CNN是基于卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)來處理數(shù)據(jù),CNN是指卷積神經(jīng)網(wǎng)絡(luò),而DR則是指降維層。整個DR-CNN卷積神經(jīng)網(wǎng)絡(luò)示意圖,如圖3所示。
圖3 DR-CNN結(jié)構(gòu)圖
采用卷積神經(jīng)網(wǎng)絡(luò)對圖像進行質(zhì)量評價,它不需要原始圖像,屬于無參考質(zhì)量評價[5]的范疇,其次在以往的圖像質(zhì)量評價中,例如:PSNR和SSIM技術(shù)方法,需要大量的知識積累與理論推導(dǎo),使得人們難以理解這些技術(shù)方法,同時在進行操作過程中對圖像本身而言也會受到噪聲、燈光和環(huán)境等影響而導(dǎo)致最后結(jié)果出入很大。即使以上這些因素都可以通過人為解決,但是不同的特征圖像也會因在進行不同方法演算時會出現(xiàn)截然不同的結(jié)論。
采用卷積神經(jīng)網(wǎng)絡(luò)對圖像進行質(zhì)量評價,就像一個“黑盒子”,人們只要考慮圖像的輸入信號與最終需要得到的輸出特征值即可,而“黑盒子”里面具體的構(gòu)成不要考慮,這樣就減少了人們對一些繁雜與晦澀難懂?dāng)?shù)學(xué)理論的依賴。本文采用卷積神經(jīng)網(wǎng)絡(luò)的創(chuàng)新點主要為對原始圖像進行降維操作和歸一化的改變。
預(yù)先把原始圖像進行池化操作的層,這里稱之為降維層,如圖4所示。在圖像輸入時,圖像本身如果是100×100以上的像素,相比較而言所使用的參數(shù)過多,在進行卷積操作時,時間與相對應(yīng)的神經(jīng)元的消耗都很龐大,為解決這一問題,提出可以提前對圖像進行降維操作,即在圖像進入卷積層前對其進行小型池化層操作,這樣不僅達到降維的目的,還保留圖像所有主要特征值。
圖4 降維層
降維層若過大容易造成圖像特征丟失,嚴重影響圖像的原始特征;若太小不能夠達到降維要求,經(jīng)過降維層后,圖像的維度被降低但圖像主要特征依然被保存,下面是圖像經(jīng)過降維層后進入卷積神經(jīng)網(wǎng)絡(luò)的流程圖,如圖5。
通過實驗測試發(fā)現(xiàn)使用3×3作為降維層的寬度能夠達到最好的效果。
圖5 流程圖
歸一化也為數(shù)據(jù)規(guī)則化,其目的是為了提前對數(shù)據(jù)進行一定的處理讓其在進入卷積后計算速度加快,同時又可以保證整個網(wǎng)絡(luò)在魯棒性數(shù)據(jù)更強。
數(shù)據(jù)規(guī)則化一般采用的方法是Batch Normalization(BN),通過BN讓數(shù)據(jù)可以成為標(biāo)準的正態(tài)分布。也有采用Group Normalization(GN)方法進行數(shù)據(jù)規(guī)則化,它是把通道進行分組,然后對每個組進行規(guī)則化操作,那么相對BN來說其batch size就要在很小的情況下才有很好的效果。當(dāng)然還有其他的規(guī)范化操作,比如WN、LN和IN等,但這些方法都有各自的優(yōu)點與缺點,適應(yīng)不同的batch size和操作環(huán)境。
(1)本文所使用的是訓(xùn)練集是TID2013圖像數(shù)據(jù)庫,該數(shù)據(jù)庫的值由971名觀察者給出524 340個數(shù)據(jù)統(tǒng)計得到,從該數(shù)據(jù)庫中抽取100個圖像作為訓(xùn)練集,把DMOS的值作為參考值,進行訓(xùn)練。
(2)從數(shù)據(jù)集中選定120×120大小的訓(xùn)練圖像集,進入降維層后圖像由120×120變?yōu)?0×40的特征圖像,為了防止數(shù)據(jù)過擬合情況出現(xiàn)并同時提高計算速度,采取BN方法進行數(shù)據(jù)規(guī)則化操作,此操作后特征圖大小沒有發(fā)生改變?nèi)允?0×40。
(3)降維后的特征圖進入卷積層,該卷積層采用3×3小卷積核進行卷積操作,使用32個隨機產(chǎn)生的3×3小卷積核對降維后的特征圖進行卷積操作生成32個40×40的特征圖,因采用了對圖像進行外圍補零方式,使得進入的特征圖在進行卷積后大小不發(fā)生變化。
(4)對32個特征圖進行非線性映射產(chǎn)生了32個40×40的特征激勵圖像,再把其進行pooling池化操作,生成32個20×20的特征圖,此時為卷積神經(jīng)網(wǎng)絡(luò)的第一層,把32個20×20特征圖送入到下一層,進行卷積操作生成128個20×20的特征圖,繼續(xù)進行映射操作后通過池化后生成128個10×10特征圖。
(5)對于10×10的特征圖而言是二維的,把其進行平展開形成100向量,進行全鏈接神經(jīng)網(wǎng)絡(luò)操作,把100向量作為輸入信息,最后得到一個輸出信息,該輸出信息可以定義為y,從訓(xùn)練集中找出主觀評價的數(shù)值h,y與h構(gòu)成代價函數(shù),通過梯度下降后對網(wǎng)絡(luò)進行訓(xùn)練,最后找到最優(yōu)解,完成對網(wǎng)絡(luò)的訓(xùn)練。
本次卷積神經(jīng)網(wǎng)絡(luò)不是一個分類模型網(wǎng)絡(luò),而是作為非線性回歸模型進行考慮,得到一個結(jié)果,從圖中可以看出,該網(wǎng)絡(luò)最終得到一個輸出值來評價圖像質(zhì)量。因此在網(wǎng)絡(luò)最后不使用SOFTMAX函數(shù),這里采用RELU函數(shù)作為最后的激活函數(shù)。
σ(x)=max(0,x)
建立代價函數(shù),依據(jù)主觀對圖像質(zhì)量的評價特征,使用交叉熵作為代價函數(shù)C,經(jīng)過梯度下降后得出以下公式:
z表示輸入值z=∑wjxj+b,h為主觀質(zhì)量評價值,在TID2013數(shù)據(jù)庫提取出相對應(yīng)的MOS值,通過代價函數(shù)式子中可以看出σ(z)與h相差的值越小說明結(jié)果越接近主觀質(zhì)量評價,經(jīng)過梯度下降后差值越大下降速度越快,差值越小下降越慢,滿足期望。
進過訓(xùn)練后,其值如圖6為:
圖6 測試結(jié)果
從中發(fā)現(xiàn),初始階段訓(xùn)練結(jié)果變化比較大,訓(xùn)練速度比較快,隨著不斷靠近,結(jié)果值變化逐步變慢,同時慢慢靠近主觀值。且在進行訓(xùn)練過程中數(shù)據(jù)有輕微的反復(fù),但能夠很快地重新調(diào)整過來。
卷積神經(jīng)網(wǎng)絡(luò)是近年來比較熱門的深度學(xué)習(xí)中經(jīng)典模型,本文詳細論述該網(wǎng)絡(luò)與以往神經(jīng)網(wǎng)絡(luò)的區(qū)別不同[5-7]。本文在原有卷積神經(jīng)網(wǎng)絡(luò)技術(shù)的基礎(chǔ)上加入降維層,目的是為了使輸入圖像在保持特征不變的情況下減少圖像維數(shù),從而提高了運算速度以及減少大量參數(shù)產(chǎn)生。經(jīng)過實驗與測試發(fā)現(xiàn),在圖像沒有進入卷積層時,提前進行降維后,結(jié)果并沒有受到影響,同時相對而言,要比沒有加入降維層的卷積神經(jīng)網(wǎng)絡(luò)要用的時間有顯著的提升,收斂的速度更快。