周忠義 吳 謹 朱 磊
(武漢科技大學(xué)信息科學(xué)與工程學(xué)院 湖北 武漢 430081)
露霜影響著生態(tài)環(huán)境的很多方面,例如地表水循環(huán)、農(nóng)作物收成和地表濕度等。露對昆蟲和植被有積極作用,而霜凍現(xiàn)象會使部分農(nóng)作物受到一些傷害,造成農(nóng)作物落花、落葉,食用價值的損失或作物的全株死亡,因此露霜天氣的識別和預(yù)測具有重要意義[1]。由于露霜特征易受溫度和光照影響而消失,露霜在圖像中的分布也無明顯規(guī)律,傳統(tǒng)基于特征變化檢測的露霜識別算法特征提取難度較大,識別準確率不高[2]。
目前,深度學(xué)習(xí)在圖像分類識別領(lǐng)域取得了越來越好的成績。為了提高圖像識別的準確率,越來越多的研究者開始利用深度卷積網(wǎng)絡(luò)做特定場景下的圖像分類識別研究。與傳統(tǒng)依賴圖像像素值處理的特征提取算法不同,深度卷積神經(jīng)網(wǎng)絡(luò)對像素相關(guān)性、形變、光照具有一定程度的自適應(yīng)性,并且可在大量訓(xùn)練數(shù)據(jù)驅(qū)動下自適應(yīng)地抽取特征進行自我學(xué)習(xí),避免了顯式的特征提取,具有更高的容錯率和泛化能力[3]。
本文提出了一種基于多路特征融合和深度學(xué)習(xí)的露霜圖像分類方法。本文的多路融合網(wǎng)絡(luò)模型在ResNet-50模型[4]基礎(chǔ)上增加了淺層網(wǎng)絡(luò)層到深層網(wǎng)絡(luò)層的多個通路,將具有更明顯視覺信息的淺層特征和具有更明確語義分類信息的深層特征相結(jié)合,以多路特征融合的方式增強后續(xù)卷積運算的特征信息,提高網(wǎng)絡(luò)的分類準確率。
卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖1所示,主要包括特征提取部分與模式識別部分。特征提取部分由若干個卷積層和激活函數(shù)層交替而成,中間可能出現(xiàn)池化層(降采樣層)。卷積層使用卷積核對上一層的輸出特征進行卷積操作,卷積核類似于圖像處理中使用的“滑動窗口”,卷積操作類似于卷積核與原始圖像上相應(yīng)大小的區(qū)域進行對應(yīng)相乘,并以一定步長作用于整幅圖像。一幅圖像可以與多個卷積核進行卷積操作,研究表明,卷積操作可以提取到圖像中更有區(qū)分力的特征。池化層將經(jīng)過卷積運算的圖像進行降采樣操作,去除圖像冗余信息。模式識別部分是分類器層,通常是多個感知器。圖像經(jīng)過卷積和降采樣等操作后得到原始圖像的特征,然后將這些特征以一維向量的形式輸入到全連接層中,最后將輸出結(jié)果輸入到模式識別部分進行判決,使整個網(wǎng)絡(luò)達到分類識別的目的。

圖1 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練分為前向傳播和反向傳播兩個過程。
前向傳播:
(1) 從訓(xùn)練圖像集中隨機選取樣本(X,Y),其中X代表輸入圖像,Y表示圖像實際類別。
(2) 通過卷積神經(jīng)網(wǎng)絡(luò)的逐層運算,最終得到的測試類別為O。其中網(wǎng)絡(luò)執(zhí)行的計算為交替執(zhí)行的卷積和下采樣操作,輸出結(jié)果為:
O=fn(…(f2f1(XW(1))W(2)…)W(n))
(1)
式中:fn表示第n層網(wǎng)絡(luò)的激活函數(shù);W(n)表示第n層的卷積核或下采樣矩陣。
反向傳播:
(1) 計算實際輸出O與相應(yīng)的理想輸出Y的差。
(2) 使用最小化誤差的方法反向傳播,不斷調(diào)整各權(quán)值參數(shù)。
為了達到較好的露霜圖像分類效果,本文中多路融合網(wǎng)絡(luò)模型在ResNet-50模型基礎(chǔ)上增加了淺層網(wǎng)絡(luò)層到深層網(wǎng)絡(luò)層的3個通路。在網(wǎng)絡(luò)基礎(chǔ)模型的選取上,選擇了網(wǎng)絡(luò)層數(shù)較高的ResNet-50模型,而沒有選擇alexnet[5]和vgg-f[6]等模型。主要是因為alexnet只有8層卷積層,總網(wǎng)絡(luò)層數(shù)相對偏低,在當年實現(xiàn)的top1-error還不夠高,而vgg-f同樣是8層網(wǎng)絡(luò)結(jié)構(gòu)。另外,考慮到網(wǎng)絡(luò)的復(fù)雜性、訓(xùn)練速度和硬件條件,也沒有選擇ResNet-101和ResNet-152模型。由于基礎(chǔ)模型經(jīng)過了研究者們的廣泛實驗,具有一定的借鑒性,直接利用避免了主觀經(jīng)驗的網(wǎng)絡(luò)設(shè)計,有利于網(wǎng)絡(luò)收斂。

圖2 殘差網(wǎng)絡(luò)結(jié)構(gòu)
ResNet以其核心算法命名,意為殘差網(wǎng)絡(luò)(Residual Network)。ResNet的主要優(yōu)勢在于殘差路徑,如圖2所示。當卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)層數(shù)增加時,可能出現(xiàn)網(wǎng)絡(luò)性能退化等問題,而ResNet恰恰借助殘差路徑彌補了這一點[7]。這種在淺層網(wǎng)絡(luò)層直接加入通路使得輸入可以直達輸出的思想使網(wǎng)絡(luò)訓(xùn)練優(yōu)化的目標由原來的擬合輸出H(x)變成輸出和輸入的差H(x)-x,而擬合殘差F(x)=H(x)-x會更容易,其中H(x)是原始的期望輸出,x是輸入。
ResNet-50模型如圖3所示。以Conv卷積層計算共50層,本文將一個Conv卷積層、BatchNorm批量歸一化層和ReLU激活函數(shù)層依次連接的結(jié)構(gòu)稱為CBR結(jié)構(gòu),而圖中的殘差網(wǎng)絡(luò)結(jié)構(gòu)稱為Unit結(jié)構(gòu),該結(jié)構(gòu)包含兩個CBR結(jié)構(gòu)。整個網(wǎng)絡(luò)主要是多個Unit結(jié)構(gòu)的串聯(lián)。

圖3 ResNet-50網(wǎng)絡(luò)模型
在深度訓(xùn)練中,特征信息維度不斷下降,實驗中抽取了基于原圖大小的4個分辨率的結(jié)霜圖像特征進行分析,如圖4所示。可以發(fā)現(xiàn)越靠近網(wǎng)絡(luò)的輸入部分,視覺紋理特征越明顯。

圖4 ResNet-50各分辨率節(jié)點結(jié)霜圖像特征
在圖3中,Unit結(jié)構(gòu)里存在兩條路徑,不存在CBR結(jié)構(gòu)的另一條路徑即是殘差路徑。圖中Conv+BatchNorm代表一個Conv層和BatchNorm層的依次連接結(jié)構(gòu)。input代表輸入圖像,在深度訓(xùn)練中一般將圖像統(tǒng)一放縮到指定的大小,ResNet-50默認輸入圖像的維度為224×224×3。Pool代表降采樣層,主要目的是防止過擬合和降低計算量。Softmax層用于根據(jù)類別信息進行分類。
本文在ResNet-50網(wǎng)絡(luò)的基礎(chǔ)上增加了3個淺層網(wǎng)絡(luò)層到深層網(wǎng)絡(luò)層的訓(xùn)練通路。訓(xùn)練通路分別處于3個典型的分辨率節(jié)點,特征最終融合至原圖1/32分辨率的網(wǎng)絡(luò)節(jié)點。另外,在網(wǎng)絡(luò)的輸出部分加入了兩個全連接層,多路融合網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。

圖5 多路融合網(wǎng)絡(luò)結(jié)構(gòu)
多路融合網(wǎng)絡(luò)的設(shè)計思路來源于文獻[8]中提出的一種RefineNet的網(wǎng)絡(luò)模型。該模型綜合了淺層的視覺特征信息和深層的語義特征信息,并進行上采樣等操作將深度訓(xùn)練的特征還原到一定的分辨率之內(nèi),起到了良好的圖像分割效果。但是,露霜圖像分類不需要將深層的語義分類信息還原到一定的分辨率之內(nèi),只用根據(jù)分類標簽朝著指定的類別學(xué)習(xí)訓(xùn)練即可。因此實驗只利用了其中用于綜合多路特征的網(wǎng)絡(luò)結(jié)構(gòu)。
圖5中從input到res2cx直至res5cx等網(wǎng)絡(luò)層分別對應(yīng)ResNet-50網(wǎng)絡(luò)中自上而下訓(xùn)練的對應(yīng)名稱網(wǎng)絡(luò)層。圖中虛線對應(yīng)框代表相應(yīng)層計算所需要的參數(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所示,實驗中輸入圖像到多路融合網(wǎng)絡(luò)觀察到不同分辨率網(wǎng)絡(luò)節(jié)點的分類特征有從細節(jié)到語義的變化。在網(wǎng)絡(luò)自上而下的訓(xùn)練過程中分辨率不斷下降,淺網(wǎng)絡(luò)層具有高分辨率,更接近于輸入,具有更明顯的視覺信息,而深網(wǎng)絡(luò)層距離輸出較近,具有更明確的分類信息。本網(wǎng)絡(luò)以多路特征融合的方式增強后續(xù)卷積運算的特征信息,圖6中Multi-Path Fusion結(jié)構(gòu)信息見圖5。

圖6 多路特征融合
該算法的核心在于初始網(wǎng)絡(luò)設(shè)計部分,由于matconvnet框架對各個網(wǎng)絡(luò)層有明確的訓(xùn)練定義,對訓(xùn)練主函數(shù)有比較好的集成,實驗?zāi)軌蛑苯永谩1疚闹挥脤⒊跏荚O(shè)計的網(wǎng)絡(luò)模型輸入matconvnet框架,然后利用該框架讀取圖像集訓(xùn)練即可。模型的定義和圖像集格式都必須滿足matconvnet的默認規(guī)則來設(shè)計。訓(xùn)練的相關(guān)核心代碼大部分已由matconvnet框架集成,在此不再贅述。整個訓(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)練,實現(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ù)集基于文獻[9]中露霜圖像自動化采集設(shè)備所拍攝的露霜圖像數(shù)據(jù)集,圖像采集設(shè)備如圖8所示。該設(shè)備屬于氣象站自動化露霜觀測設(shè)備,露霜圖像的拍攝大多在夜間拍攝,設(shè)備每隔10分鐘周期性抓拍,并且只在抓拍期間提供LED照明。 圖8 基于玻璃載體的露霜自動化觀測設(shè)備 本文首先對圖8設(shè)備采集的圖像進行了預(yù)處理。將檢測結(jié)露結(jié)霜現(xiàn)象的玻璃片區(qū)域圖像分割出來用于本實驗的深度訓(xùn)練,如圖9所示。 圖9 氣象設(shè)備拍攝的露霜圖像 分割的玻璃片區(qū)域圖像由于并不規(guī)則,尺寸大小也不盡相同,在實驗中統(tǒng)一縮放至224×224大小。 實驗訓(xùn)練圖像集已人工進行預(yù)分類,具備類別信息。各類別的樣本數(shù)量分布如表1所示。 表1 各分類樣本圖像數(shù)目 幅 實驗的露霜訓(xùn)練圖像集如圖10所示。 圖10 露霜圖像訓(xùn)練樣本 本文的實驗環(huán)境為Windows 7操作系統(tǒng),MATLAB 2016,matconvnet框架,機器內(nèi)存12 GB。利用數(shù)據(jù)集分別在alexnet、vgg-f、ResNet-50和多路融合網(wǎng)絡(luò)4種模型上進行實驗,并對matconvnet中的深度訓(xùn)練參數(shù)做了設(shè)置。實驗中alexnet和vgg-f模型比較相似,因此采用了同樣的訓(xùn)練參數(shù),后兩者網(wǎng)絡(luò)同樣如此,如表2所示。 表2 實驗深度訓(xùn)練參數(shù) 表2中:learningRate為網(wǎng)絡(luò)學(xué)習(xí)率,可以用于調(diào)節(jié)收斂速度,實驗中分別取值0.1和0.000 1時效果都不太好,當為0.1時網(wǎng)絡(luò)并不收斂,而取值后者時網(wǎng)絡(luò)收斂太慢,需要耗費很大的訓(xùn)練時間;weightDecay是權(quán)值衰減參數(shù),是放在正則項前面的一個系數(shù),weightDecay參數(shù)使用的目的是防止過擬合,該參數(shù)實驗中使用了matconvnet框架的默認值;batchSize在網(wǎng)絡(luò)層較多時可以相應(yīng)減小,該參數(shù)代表一次迭代更新權(quán)值參數(shù)時讀取圖片數(shù)量,該值越大對存儲器容量要求越高,由于網(wǎng)絡(luò)層數(shù)更多的殘差網(wǎng)絡(luò)計算數(shù)據(jù)量更大,本文相應(yīng)調(diào)小了該值。另外,網(wǎng)絡(luò)中權(quán)值參數(shù)的初始化均采用均值為0,方差為0.01的高斯分布,偏置初始化為0。 為了分析多路融合網(wǎng)絡(luò)的性能和收斂性,在實驗參數(shù)epoch取值為150時,觀察到多路融合網(wǎng)絡(luò)的最后一層softmax多分類層的代價函數(shù)隨訓(xùn)練迭代次數(shù)的變化曲線如圖11所示。可以看出,訓(xùn)練前期softmax分類器代價函數(shù)的值下降得很快,但有較大波動,說明網(wǎng)絡(luò)正快速優(yōu)化,但并未穩(wěn)定。當?shù)?xùn)練次數(shù)大于50次以后,代價函數(shù)的值已經(jīng)幾乎不再變化,代價函數(shù)已接近最優(yōu)。 圖11 多路融合網(wǎng)絡(luò)softmax代價函數(shù)的迭代曲線 另外,多路融合網(wǎng)絡(luò)的top1-error在訓(xùn)練過程中也在不斷下降,如圖12所示。可以觀察到,在訓(xùn)練的前期階段,多路融合網(wǎng)絡(luò)的top1-error下降得很快,前期同樣有較大波動,當網(wǎng)絡(luò)訓(xùn)練到50次時top1-error已基本不再變化。該函數(shù)曲線同softmax代價函數(shù)的變化趨勢基本相符,表明此時網(wǎng)絡(luò)已基本收斂。繼續(xù)訓(xùn)練發(fā)現(xiàn),網(wǎng)絡(luò)的top1-error會有輕微波動,屬于正常的識別誤差波動。由圖12可以得出,多路融合網(wǎng)絡(luò)在網(wǎng)絡(luò)剛開始訓(xùn)練階段,網(wǎng)絡(luò)的top1-error約為25%。 圖12 多路融合網(wǎng)絡(luò)top1-error的迭代曲線 為了測試網(wǎng)絡(luò)的分類效果,實驗選取了多路融合網(wǎng)絡(luò)訓(xùn)練到100次時的模型,對測試集的2 400幅圖像樣本進行分類,分類數(shù)據(jù)如表3所示。 表3 多路融合網(wǎng)絡(luò)的分類結(jié)果 幅 實驗結(jié)果表明,多路融合網(wǎng)絡(luò)正確分類了2 381幅圖像,分類準確率達到99.2%。另外可以發(fā)現(xiàn),結(jié)露圖像錯誤分類為未結(jié)露霜的圖像最多,反映了某些結(jié)露圖像中露水并不明顯。 實驗中分別在4個迭代訓(xùn)練次數(shù)點的網(wǎng)絡(luò)模型上做了露霜圖像的分類實驗,得出的平均分類準確率如表4所示。 表4 不同模型和epoch下的平均分類準確率 % 比較后發(fā)現(xiàn),當訓(xùn)練到30次時,由于網(wǎng)絡(luò)并未完全收斂,多路融合網(wǎng)絡(luò)的分類準確率沒有ResNet-50高;當訓(xùn)練超過100次后,各個網(wǎng)絡(luò)的分類準確率都基本不再變化。最終,多路融合網(wǎng)絡(luò)相比ResNet-50增加了1.3%的分類準確率。另外,由于alexnet和vgg-f網(wǎng)絡(luò)層數(shù)較低,分類準確率還不夠高,基于總網(wǎng)絡(luò)層更多的殘差網(wǎng)絡(luò)分類效果會更好。 在識別階段,也統(tǒng)計了2 400幅測試樣本的識別時間。多路融合網(wǎng)絡(luò)的識別時間為81 s,ResNet-50模型需要78 s,alexnet和vgg-f的識別時間均為16 s,就單幅圖像的露霜識別速率而言,多路融合網(wǎng)絡(luò)識別時間約為33 ms。可以得出,為了取得更好的分類效果,網(wǎng)絡(luò)更復(fù)雜,運算代價也會更高。由于GPU已廣泛應(yīng)用于神經(jīng)網(wǎng)絡(luò)的計算,這個速率將來會更快。 本文實驗結(jié)果表明:基于深度學(xué)習(xí)的方法對露霜圖像的分類取得了較好的分類效果,通過多路特征融合的方式增強后續(xù)卷積運算的特征信息,進一步提高了網(wǎng)絡(luò)的分類準確率。 本文提出了一種基于多路特征融合和深度學(xué)習(xí)的露霜圖像分類算法,將深度訓(xùn)練中的淺層特征和深層特征進一步綜合,增強后續(xù)卷積運算的特征信息,提高了網(wǎng)絡(luò)的分類準確率。另外,基于深度學(xué)習(xí)的方法相比傳統(tǒng)基于特征變化的露霜檢測算法,避免了顯式的特征提取,具有更高的容錯率和泛化性,在分類準確率上更有優(yōu)勢。實驗結(jié)果表明,基于多路特征融合和深度學(xué)習(xí)的方法對露霜圖像分類的準確率達到了99.2%。該項研究對露霜特征研究、氣象站自動化準確預(yù)測和識別露霜天氣具有重要意義。3 實驗與分析
3.1 數(shù)據(jù)集




3.2 實驗參數(shù)設(shè)置

3.3 結(jié)果與分析




4 結(jié) 語