周忠義 吳 謹(jǐn) 朱 磊
(武漢科技大學(xué)信息科學(xué)與工程學(xué)院 湖北 武漢 430081)
露霜影響著生態(tài)環(huán)境的很多方面,例如地表水循環(huán)、農(nóng)作物收成和地表濕度等。露對(duì)昆蟲(chóng)和植被有積極作用,而霜凍現(xiàn)象會(huì)使部分農(nóng)作物受到一些傷害,造成農(nóng)作物落花、落葉,食用價(jià)值的損失或作物的全株死亡,因此露霜天氣的識(shí)別和預(yù)測(cè)具有重要意義[1]。由于露霜特征易受溫度和光照影響而消失,露霜在圖像中的分布也無(wú)明顯規(guī)律,傳統(tǒng)基于特征變化檢測(cè)的露霜識(shí)別算法特征提取難度較大,識(shí)別準(zhǔn)確率不高[2]。
目前,深度學(xué)習(xí)在圖像分類識(shí)別領(lǐng)域取得了越來(lái)越好的成績(jī)。為了提高圖像識(shí)別的準(zhǔn)確率,越來(lái)越多的研究者開(kāi)始利用深度卷積網(wǎng)絡(luò)做特定場(chǎng)景下的圖像分類識(shí)別研究。與傳統(tǒng)依賴圖像像素值處理的特征提取算法不同,深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)像素相關(guān)性、形變、光照具有一定程度的自適應(yīng)性,并且可在大量訓(xùn)練數(shù)據(jù)驅(qū)動(dòng)下自適應(yīng)地抽取特征進(jìn)行自我學(xué)習(xí),避免了顯式的特征提取,具有更高的容錯(cuò)率和泛化能力[3]。
本文提出了一種基于多路特征融合和深度學(xué)習(xí)的露霜圖像分類方法。本文的多路融合網(wǎng)絡(luò)模型在ResNet-50模型[4]基礎(chǔ)上增加了淺層網(wǎng)絡(luò)層到深層網(wǎng)絡(luò)層的多個(gè)通路,將具有更明顯視覺(jué)信息的淺層特征和具有更明確語(yǔ)義分類信息的深層特征相結(jié)合,以多路特征融合的方式增強(qiáng)后續(xù)卷積運(yùn)算的特征信息,提高網(wǎng)絡(luò)的分類準(zhǔn)確率。
卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖1所示,主要包括特征提取部分與模式識(shí)別部分。特征提取部分由若干個(gè)卷積層和激活函數(shù)層交替而成,中間可能出現(xiàn)池化層(降采樣層)。卷積層使用卷積核對(duì)上一層的輸出特征進(jìn)行卷積操作,卷積核類似于圖像處理中使用的“滑動(dòng)窗口”,卷積操作類似于卷積核與原始圖像上相應(yīng)大小的區(qū)域進(jìn)行對(duì)應(yīng)相乘,并以一定步長(zhǎng)作用于整幅圖像。一幅圖像可以與多個(gè)卷積核進(jìn)行卷積操作,研究表明,卷積操作可以提取到圖像中更有區(qū)分力的特征。池化層將經(jīng)過(guò)卷積運(yùn)算的圖像進(jìn)行降采樣操作,去除圖像冗余信息。模式識(shí)別部分是分類器層,通常是多個(gè)感知器。圖像經(jīng)過(guò)卷積和降采樣等操作后得到原始圖像的特征,然后將這些特征以一維向量的形式輸入到全連接層中,最后將輸出結(jié)果輸入到模式識(shí)別部分進(jìn)行判決,使整個(gè)網(wǎng)絡(luò)達(dá)到分類識(shí)別的目的。
圖1 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練分為前向傳播和反向傳播兩個(gè)過(guò)程。
前向傳播:
(1) 從訓(xùn)練圖像集中隨機(jī)選取樣本(X,Y),其中X代表輸入圖像,Y表示圖像實(shí)際類別。
(2) 通過(guò)卷積神經(jīng)網(wǎng)絡(luò)的逐層運(yùn)算,最終得到的測(cè)試類別為O。其中網(wǎng)絡(luò)執(zhí)行的計(jì)算為交替執(zhí)行的卷積和下采樣操作,輸出結(jié)果為:
O=fn(…(f2f1(XW(1))W(2)…)W(n))
(1)
式中:fn表示第n層網(wǎng)絡(luò)的激活函數(shù);W(n)表示第n層的卷積核或下采樣矩陣。
反向傳播:
(1) 計(jì)算實(shí)際輸出O與相應(yīng)的理想輸出Y的差。
(2) 使用最小化誤差的方法反向傳播,不斷調(diào)整各權(quán)值參數(shù)。
為了達(dá)到較好的露霜圖像分類效果,本文中多路融合網(wǎng)絡(luò)模型在ResNet-50模型基礎(chǔ)上增加了淺層網(wǎng)絡(luò)層到深層網(wǎng)絡(luò)層的3個(gè)通路。在網(wǎng)絡(luò)基礎(chǔ)模型的選取上,選擇了網(wǎng)絡(luò)層數(shù)較高的ResNet-50模型,而沒(méi)有選擇alexnet[5]和vgg-f[6]等模型。主要是因?yàn)閍lexnet只有8層卷積層,總網(wǎng)絡(luò)層數(shù)相對(duì)偏低,在當(dāng)年實(shí)現(xiàn)的top1-error還不夠高,而vgg-f同樣是8層網(wǎng)絡(luò)結(jié)構(gòu)。另外,考慮到網(wǎng)絡(luò)的復(fù)雜性、訓(xùn)練速度和硬件條件,也沒(méi)有選擇ResNet-101和ResNet-152模型。由于基礎(chǔ)模型經(jīng)過(guò)了研究者們的廣泛實(shí)驗(yàn),具有一定的借鑒性,直接利用避免了主觀經(jīng)驗(yàn)的網(wǎng)絡(luò)設(shè)計(jì),有利于網(wǎng)絡(luò)收斂。
圖2 殘差網(wǎng)絡(luò)結(jié)構(gòu)
ResNet以其核心算法命名,意為殘差網(wǎng)絡(luò)(Residual Network)。ResNet的主要優(yōu)勢(shì)在于殘差路徑,如圖2所示。當(dāng)卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)層數(shù)增加時(shí),可能出現(xiàn)網(wǎng)絡(luò)性能退化等問(wèn)題,而ResNet恰恰借助殘差路徑彌補(bǔ)了這一點(diǎn)[7]。這種在淺層網(wǎng)絡(luò)層直接加入通路使得輸入可以直達(dá)輸出的思想使網(wǎng)絡(luò)訓(xùn)練優(yōu)化的目標(biāo)由原來(lái)的擬合輸出H(x)變成輸出和輸入的差H(x)-x,而擬合殘差F(x)=H(x)-x會(huì)更容易,其中H(x)是原始的期望輸出,x是輸入。
ResNet-50模型如圖3所示。以Conv卷積層計(jì)算共50層,本文將一個(gè)Conv卷積層、BatchNorm批量歸一化層和ReLU激活函數(shù)層依次連接的結(jié)構(gòu)稱為CBR結(jié)構(gòu),而圖中的殘差網(wǎng)絡(luò)結(jié)構(gòu)稱為Unit結(jié)構(gòu),該結(jié)構(gòu)包含兩個(gè)CBR結(jié)構(gòu)。整個(gè)網(wǎng)絡(luò)主要是多個(gè)Unit結(jié)構(gòu)的串聯(lián)。
圖3 ResNet-50網(wǎng)絡(luò)模型
在深度訓(xùn)練中,特征信息維度不斷下降,實(shí)驗(yàn)中抽取了基于原圖大小的4個(gè)分辨率的結(jié)霜圖像特征進(jìn)行分析,如圖4所示??梢园l(fā)現(xiàn)越靠近網(wǎng)絡(luò)的輸入部分,視覺(jué)紋理特征越明顯。
圖4 ResNet-50各分辨率節(jié)點(diǎn)結(jié)霜圖像特征
在圖3中,Unit結(jié)構(gòu)里存在兩條路徑,不存在CBR結(jié)構(gòu)的另一條路徑即是殘差路徑。圖中Conv+BatchNorm代表一個(gè)Conv層和BatchNorm層的依次連接結(jié)構(gòu)。input代表輸入圖像,在深度訓(xùn)練中一般將圖像統(tǒng)一放縮到指定的大小,ResNet-50默認(rèn)輸入圖像的維度為224×224×3。Pool代表降采樣層,主要目的是防止過(guò)擬合和降低計(jì)算量。Softmax層用于根據(jù)類別信息進(jìn)行分類。
本文在ResNet-50網(wǎng)絡(luò)的基礎(chǔ)上增加了3個(gè)淺層網(wǎng)絡(luò)層到深層網(wǎng)絡(luò)層的訓(xùn)練通路。訓(xùn)練通路分別處于3個(gè)典型的分辨率節(jié)點(diǎn),特征最終融合至原圖1/32分辨率的網(wǎng)絡(luò)節(jié)點(diǎn)。另外,在網(wǎng)絡(luò)的輸出部分加入了兩個(gè)全連接層,多路融合網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 多路融合網(wǎng)絡(luò)結(jié)構(gòu)
多路融合網(wǎng)絡(luò)的設(shè)計(jì)思路來(lái)源于文獻(xiàn)[8]中提出的一種RefineNet的網(wǎng)絡(luò)模型。該模型綜合了淺層的視覺(jué)特征信息和深層的語(yǔ)義特征信息,并進(jìn)行上采樣等操作將深度訓(xùn)練的特征還原到一定的分辨率之內(nèi),起到了良好的圖像分割效果。但是,露霜圖像分類不需要將深層的語(yǔ)義分類信息還原到一定的分辨率之內(nèi),只用根據(jù)分類標(biāo)簽朝著指定的類別學(xué)習(xí)訓(xùn)練即可。因此實(shí)驗(yàn)只利用了其中用于綜合多路特征的網(wǎng)絡(luò)結(jié)構(gòu)。
圖5中從input到res2cx直至res5cx等網(wǎng)絡(luò)層分別對(duì)應(yīng)ResNet-50網(wǎng)絡(luò)中自上而下訓(xùn)練的對(duì)應(yīng)名稱網(wǎng)絡(luò)層。圖中虛線對(duì)應(yīng)框代表相應(yīng)層計(jì)算所需要的參數(shù),數(shù)字部分代表相應(yīng)層的維度信息。My_copy_layer網(wǎng)絡(luò)層用于特征抽取,即將上層訓(xùn)練結(jié)果直接輸入下一層。dagnn.Sum層用于融合抽取的特征,其中dagnn代表matconvnet框架中的dagnn網(wǎng)絡(luò),在圖中分別代表網(wǎng)絡(luò)層的類型,例如dagnn.Conv就是Conv卷積層。
如圖6所示,實(shí)驗(yàn)中輸入圖像到多路融合網(wǎng)絡(luò)觀察到不同分辨率網(wǎng)絡(luò)節(jié)點(diǎn)的分類特征有從細(xì)節(jié)到語(yǔ)義的變化。在網(wǎng)絡(luò)自上而下的訓(xùn)練過(guò)程中分辨率不斷下降,淺網(wǎng)絡(luò)層具有高分辨率,更接近于輸入,具有更明顯的視覺(jué)信息,而深網(wǎng)絡(luò)層距離輸出較近,具有更明確的分類信息。本網(wǎng)絡(luò)以多路特征融合的方式增強(qiáng)后續(xù)卷積運(yùn)算的特征信息,圖6中Multi-Path Fusion結(jié)構(gòu)信息見(jiàn)圖5。
圖6 多路特征融合
該算法的核心在于初始網(wǎng)絡(luò)設(shè)計(jì)部分,由于matconvnet框架對(duì)各個(gè)網(wǎng)絡(luò)層有明確的訓(xùn)練定義,對(duì)訓(xùn)練主函數(shù)有比較好的集成,實(shí)驗(yàn)?zāi)軌蛑苯永?。本文只用將初始設(shè)計(jì)的網(wǎng)絡(luò)模型輸入matconvnet框架,然后利用該框架讀取圖像集訓(xùn)練即可。模型的定義和圖像集格式都必須滿足matconvnet的默認(rèn)規(guī)則來(lái)設(shè)計(jì)。訓(xùn)練的相關(guān)核心代碼大部分已由matconvnet框架集成,在此不再贅述。整個(gè)訓(xùn)練流程如圖7所示。
圖7 網(wǎng)絡(luò)訓(xùn)練流程圖
用于特征抽取的My_copy_layer網(wǎng)絡(luò)層的核心代碼定義如下:
My_copy_layer.m
%網(wǎng)絡(luò)層類定義,繼承自dagnn.ElementWise(框架集成)
classdef My_copy_layer %屬性定義 properties end %成員函數(shù)定義 methods %前向傳播訓(xùn)練,輸入直接輸出 function outputs=forward(obj,inputs,params) outputs=inputs; end %反向傳播訓(xùn)練,實(shí)現(xiàn)參數(shù)傳遞 function[derInputs, derParams]=backward(obj, inputs, params, derOutputs) derInputs=derOutputs; derParams={}; end %加載參數(shù)和預(yù)初始化部分網(wǎng)絡(luò)參數(shù) function obj = DropOut(varargin) obj.load(varargin{:}); end function obj=reset(obj) reset@dagnn.ElementWise(obj); end end end 數(shù)據(jù)集基于文獻(xiàn)[9]中露霜圖像自動(dòng)化采集設(shè)備所拍攝的露霜圖像數(shù)據(jù)集,圖像采集設(shè)備如圖8所示。該設(shè)備屬于氣象站自動(dòng)化露霜觀測(cè)設(shè)備,露霜圖像的拍攝大多在夜間拍攝,設(shè)備每隔10分鐘周期性抓拍,并且只在抓拍期間提供LED照明。 圖8 基于玻璃載體的露霜自動(dòng)化觀測(cè)設(shè)備 本文首先對(duì)圖8設(shè)備采集的圖像進(jìn)行了預(yù)處理。將檢測(cè)結(jié)露結(jié)霜現(xiàn)象的玻璃片區(qū)域圖像分割出來(lái)用于本實(shí)驗(yàn)的深度訓(xùn)練,如圖9所示。 圖9 氣象設(shè)備拍攝的露霜圖像 分割的玻璃片區(qū)域圖像由于并不規(guī)則,尺寸大小也不盡相同,在實(shí)驗(yàn)中統(tǒng)一縮放至224×224大小。 實(shí)驗(yàn)訓(xùn)練圖像集已人工進(jìn)行預(yù)分類,具備類別信息。各類別的樣本數(shù)量分布如表1所示。 表1 各分類樣本圖像數(shù)目 幅 實(shí)驗(yàn)的露霜訓(xùn)練圖像集如圖10所示。 圖10 露霜圖像訓(xùn)練樣本 本文的實(shí)驗(yàn)環(huán)境為Windows 7操作系統(tǒng),MATLAB 2016,matconvnet框架,機(jī)器內(nèi)存12 GB。利用數(shù)據(jù)集分別在alexnet、vgg-f、ResNet-50和多路融合網(wǎng)絡(luò)4種模型上進(jìn)行實(shí)驗(yàn),并對(duì)matconvnet中的深度訓(xùn)練參數(shù)做了設(shè)置。實(shí)驗(yàn)中alexnet和vgg-f模型比較相似,因此采用了同樣的訓(xùn)練參數(shù),后兩者網(wǎng)絡(luò)同樣如此,如表2所示。 表2 實(shí)驗(yàn)深度訓(xùn)練參數(shù) 表2中:learningRate為網(wǎng)絡(luò)學(xué)習(xí)率,可以用于調(diào)節(jié)收斂速度,實(shí)驗(yàn)中分別取值0.1和0.000 1時(shí)效果都不太好,當(dāng)為0.1時(shí)網(wǎng)絡(luò)并不收斂,而取值后者時(shí)網(wǎng)絡(luò)收斂太慢,需要耗費(fèi)很大的訓(xùn)練時(shí)間;weightDecay是權(quán)值衰減參數(shù),是放在正則項(xiàng)前面的一個(gè)系數(shù),weightDecay參數(shù)使用的目的是防止過(guò)擬合,該參數(shù)實(shí)驗(yàn)中使用了matconvnet框架的默認(rèn)值;batchSize在網(wǎng)絡(luò)層較多時(shí)可以相應(yīng)減小,該參數(shù)代表一次迭代更新權(quán)值參數(shù)時(shí)讀取圖片數(shù)量,該值越大對(duì)存儲(chǔ)器容量要求越高,由于網(wǎng)絡(luò)層數(shù)更多的殘差網(wǎng)絡(luò)計(jì)算數(shù)據(jù)量更大,本文相應(yīng)調(diào)小了該值。另外,網(wǎng)絡(luò)中權(quán)值參數(shù)的初始化均采用均值為0,方差為0.01的高斯分布,偏置初始化為0。 為了分析多路融合網(wǎng)絡(luò)的性能和收斂性,在實(shí)驗(yàn)參數(shù)epoch取值為150時(shí),觀察到多路融合網(wǎng)絡(luò)的最后一層softmax多分類層的代價(jià)函數(shù)隨訓(xùn)練迭代次數(shù)的變化曲線如圖11所示??梢钥闯?,訓(xùn)練前期softmax分類器代價(jià)函數(shù)的值下降得很快,但有較大波動(dòng),說(shuō)明網(wǎng)絡(luò)正快速優(yōu)化,但并未穩(wěn)定。當(dāng)?shù)?xùn)練次數(shù)大于50次以后,代價(jià)函數(shù)的值已經(jīng)幾乎不再變化,代價(jià)函數(shù)已接近最優(yōu)。 圖11 多路融合網(wǎng)絡(luò)softmax代價(jià)函數(shù)的迭代曲線 另外,多路融合網(wǎng)絡(luò)的top1-error在訓(xùn)練過(guò)程中也在不斷下降,如圖12所示??梢杂^察到,在訓(xùn)練的前期階段,多路融合網(wǎng)絡(luò)的top1-error下降得很快,前期同樣有較大波動(dòng),當(dāng)網(wǎng)絡(luò)訓(xùn)練到50次時(shí)top1-error已基本不再變化。該函數(shù)曲線同softmax代價(jià)函數(shù)的變化趨勢(shì)基本相符,表明此時(shí)網(wǎng)絡(luò)已基本收斂。繼續(xù)訓(xùn)練發(fā)現(xiàn),網(wǎng)絡(luò)的top1-error會(huì)有輕微波動(dòng),屬于正常的識(shí)別誤差波動(dòng)。由圖12可以得出,多路融合網(wǎng)絡(luò)在網(wǎng)絡(luò)剛開(kāi)始訓(xùn)練階段,網(wǎng)絡(luò)的top1-error約為25%。 圖12 多路融合網(wǎng)絡(luò)top1-error的迭代曲線 為了測(cè)試網(wǎng)絡(luò)的分類效果,實(shí)驗(yàn)選取了多路融合網(wǎng)絡(luò)訓(xùn)練到100次時(shí)的模型,對(duì)測(cè)試集的2 400幅圖像樣本進(jìn)行分類,分類數(shù)據(jù)如表3所示。 表3 多路融合網(wǎng)絡(luò)的分類結(jié)果 幅 實(shí)驗(yàn)結(jié)果表明,多路融合網(wǎng)絡(luò)正確分類了2 381幅圖像,分類準(zhǔn)確率達(dá)到99.2%。另外可以發(fā)現(xiàn),結(jié)露圖像錯(cuò)誤分類為未結(jié)露霜的圖像最多,反映了某些結(jié)露圖像中露水并不明顯。 實(shí)驗(yàn)中分別在4個(gè)迭代訓(xùn)練次數(shù)點(diǎn)的網(wǎng)絡(luò)模型上做了露霜圖像的分類實(shí)驗(yàn),得出的平均分類準(zhǔn)確率如表4所示。 表4 不同模型和epoch下的平均分類準(zhǔn)確率 % 比較后發(fā)現(xiàn),當(dāng)訓(xùn)練到30次時(shí),由于網(wǎng)絡(luò)并未完全收斂,多路融合網(wǎng)絡(luò)的分類準(zhǔn)確率沒(méi)有ResNet-50高;當(dāng)訓(xùn)練超過(guò)100次后,各個(gè)網(wǎng)絡(luò)的分類準(zhǔn)確率都基本不再變化。最終,多路融合網(wǎng)絡(luò)相比ResNet-50增加了1.3%的分類準(zhǔn)確率。另外,由于alexnet和vgg-f網(wǎng)絡(luò)層數(shù)較低,分類準(zhǔn)確率還不夠高,基于總網(wǎng)絡(luò)層更多的殘差網(wǎng)絡(luò)分類效果會(huì)更好。 在識(shí)別階段,也統(tǒng)計(jì)了2 400幅測(cè)試樣本的識(shí)別時(shí)間。多路融合網(wǎng)絡(luò)的識(shí)別時(shí)間為81 s,ResNet-50模型需要78 s,alexnet和vgg-f的識(shí)別時(shí)間均為16 s,就單幅圖像的露霜識(shí)別速率而言,多路融合網(wǎng)絡(luò)識(shí)別時(shí)間約為33 ms。可以得出,為了取得更好的分類效果,網(wǎng)絡(luò)更復(fù)雜,運(yùn)算代價(jià)也會(huì)更高。由于GPU已廣泛應(yīng)用于神經(jīng)網(wǎng)絡(luò)的計(jì)算,這個(gè)速率將來(lái)會(huì)更快。 本文實(shí)驗(yàn)結(jié)果表明:基于深度學(xué)習(xí)的方法對(duì)露霜圖像的分類取得了較好的分類效果,通過(guò)多路特征融合的方式增強(qiáng)后續(xù)卷積運(yùn)算的特征信息,進(jìn)一步提高了網(wǎng)絡(luò)的分類準(zhǔn)確率。 本文提出了一種基于多路特征融合和深度學(xué)習(xí)的露霜圖像分類算法,將深度訓(xùn)練中的淺層特征和深層特征進(jìn)一步綜合,增強(qiáng)后續(xù)卷積運(yùn)算的特征信息,提高了網(wǎng)絡(luò)的分類準(zhǔn)確率。另外,基于深度學(xué)習(xí)的方法相比傳統(tǒng)基于特征變化的露霜檢測(cè)算法,避免了顯式的特征提取,具有更高的容錯(cuò)率和泛化性,在分類準(zhǔn)確率上更有優(yōu)勢(shì)。實(shí)驗(yàn)結(jié)果表明,基于多路特征融合和深度學(xué)習(xí)的方法對(duì)露霜圖像分類的準(zhǔn)確率達(dá)到了99.2%。該項(xiàng)研究對(duì)露霜特征研究、氣象站自動(dòng)化準(zhǔn)確預(yù)測(cè)和識(shí)別露霜天氣具有重要意義。3 實(shí)驗(yàn)與分析
3.1 數(shù)據(jù)集
3.2 實(shí)驗(yàn)參數(shù)設(shè)置
3.3 結(jié)果與分析
4 結(jié) 語(yǔ)