林思思,葉東毅,陳昭炯
(福州大學 數學與計算機科學學院,福州 350100)
花卉圖像分類中,不同類別的花卉在外形上往往具有較大的相似度,而同一類別的花卉有些卻有很大的差異性,如花瓣殘缺、變形等[2].早期花卉分類方法[3-5,15]主要采用人工設計的圖像特征,如顏色、紋理、形狀等特征.方法雖然實現簡單,但分類效果并不理想.因此,如何提取魯棒性強的花卉圖像特征仍是一個具有挑戰性的課題.
花卉分類按照其方法可以分為帶分割的花卉圖像分類和不帶分割的花卉圖像分類兩種.帶分割的花卉圖像分類希望通過分割去除不相關的背景信息,提高分類準確率.ME Nilsback和A Zisserman[1]最早在花卉分類上面取得較為顯著的進展,提出了基于花卉幾何圖像的分割算法,并在分割后的花卉圖像上提取Lab顏色、形狀、紋理等特征,構建相應的BoW模型[16],最后將這些特征的BoW向量加權融合作為花卉圖像的特征,但它使用的分割算法計算復雜度較高.為了克服這一缺點,Angelova等[9]首先利用超像素分割檢測可能屬于目標物體的區域,再使用laplacian propagation算法[18]進行全分割,最后串聯原圖的HOG特征與分割后圖像的HOG特征得到圖像特征,該特征對細節把握精確,但缺乏全局語義.一般來說,帶分割的花卉圖像分類已取得一定的效果,但它對分割算法的依賴性較強,特征性能直接受到分割效果的影響.
不帶分割的花卉圖像則是通過對花卉圖像統一建模,尋找具有區分度的特征進行分類.Khah等[8]提出融合顏色特征與形狀特征的分類方法,在每一個種類的花卉圖像上相同特征點的位置上同時提取顏色和形狀特征,構建相應顏色和形狀特征碼本,最后在碼本基礎上統計顏色特征在每一類花卉上出現的概率用于特征加權融合.這種方法兼具圖像局部顏色信息和形狀信息,但它對旋轉等變化不具有魯棒性.Fernando等[6]提取基于邏輯回歸模型的特征融合算法(LRFF),通過提取HUE顏色特征和SIFT特征并創建碼本,采用邏輯回歸算法計算每類花卉在不同碼本上最有判別力的碼本權重值,將BoW向量加權串聯后進行分類.雖然它的分類精度有了一定的提高,但串聯后特征維度較高.高維空間包含有冗余信息以及噪音信息,容易在在圖像分類中造成誤差,降低準確率;同時,特征維度太高經常會導致特征匹配過于復雜,消耗系統資源.
盡管上述多種花卉圖像特征取得較好的分類效果,但都是基于人工設計的圖像特征實現,但由于同一個物體在不同的圖像中存在不同的成像形態,其顏色、紋理及局部信息都會發生變化,用于表達這些信息的特征也會發生改變,因此這些特征在表達能力上存在較大局限.近幾年,深度學習的出現在機器學習領域引發了一場革命.物體無論在圖像中呈現何種形態,深度學習得到的語義信息能夠始終保持不變[22].其中,深度卷積神經網絡(Convolutional Neural Network,CNN)是在多層神經網絡的基礎上發展起來的針對圖像處理而特別設計的一種深度學習方法.LeCun等[20]在研究手寫數字識別問題時,首先提出了使用梯度反向傳播算法訓練的卷積神經網絡模型,并在MNIST手寫數字數據集上表現出了相對于當時其他方法更好的性能.Alex Krizhevsky等[12]提出的AlexNet首次將深度學習應用于大規模圖像分類,并取得了較好的分類效果.鑒于卷積神經網絡在圖像分類方面的優秀表現,開始有學者研究如何將卷積神經網絡應用到花卉圖像分類問題上.AS Ra-zavian等[13]提取CNN模型的最后一層全連接層輸出作為花卉圖像特征,經過SVM分類器進行分類,其分類準確率超過了大多數基于人工設計的特征,表明了深度網絡學習出的特征的有效性.然而,在自然環境下拍攝的花卉圖像中,顏色、亮度、紋理以及形狀等因素都將影響花卉圖像分類的結果,Razavian采用單一的CNN特征作為圖像特征,其表達的信息不夠全面;同時,Razavian提取出的特征為4096維,依然存在維度過高的問題.
基于上述情況,本文建立了一種基于MF(Parallel Convolution Neural Network with Multi-feature Fusion,MF-PCNN)的特征提取模型,設計并行神經網絡結構,通過CNN 模型從顏色、亮度多特征角度提取目標對象特征,并利用 CNN 低層級上的特征圖設計了一種基于卷積神經網絡的紋理特征,根據不同特征在分類方面的貢獻,設計出一種深度學習特征加權融合、人工設計特征串行連接的多特征融合方法,最后采用支持向量機(SVM)對提取的花卉圖像特征進行分類.分類實驗結果表明,MF-PCNN提取出的特征不僅維度低于傳統的人工設計特征,而且具有更好的分類準確性.
卷積神經網絡是一個包含多個層級的網絡結構,每一層級輸出大量的特征圖,每個特征圖上又有許多獨立的神經元.CNN模型利用大量的原始樣本數據,通過隱藏層逐層深入地學習圖像,使原始像素級特征抽象成強表達能力的高層特征,免去人工繁瑣、低效的特征選取過程.典型的深度卷積神經網絡主要由卷積層、池化層和全連接層組成,卷積神經網絡的學習過程如下所示:
1)將原始圖像尺寸調整為227×227大小作為模型的輸入,令I={I0,I1,…,IN-1,IN},其中,N為輸入圖像的數目.


(1)
3)池化層主要通過下采樣減少卷積層的特征維數,對特征圖中急劇變化的區域進行均衡化,如式(2)所示
(2)

4)全連接層一般位于池化層后,將所有的輸入節點串聯成矢量,輸出圖像特征,第t層全連接層的操作實現如下:
F=f(wt*It-1+bt)
(3)
本文的卷積神經網絡的設計是在文獻[12]的基礎上進行了適應性的拓展.本文采用文獻[12]網絡結構的前8層,并就本文的算法思路添加1層全連接層,具體如下:第1層為227×227的3通道圖像原始像素輸入.第2層為卷積層,卷積核大小為11×11,卷積核個數為96,步長為4.第3層為卷積層,卷積核大小為5×5,卷積核個數為256,步長為1.第4層為卷積層,卷積核大小為3×3,卷積核個數為384,步長為1.第5層為卷積層,卷積核大小為3×3,卷積核個數為384,步長為1.第6層為卷積層,卷積核大小為3×3,卷積核個數為256,步長為1.第7層和第8層為全連接層,神經元個數都為4096.第9層為本文添加的全連接層,最后一層為SoftMax層.如圖1所示.

圖1 單路卷積神經網絡結構圖Fig.1 Single column convolutional neural networks
一幅彩色圖像有不同的特征提取方法,每種方法都側重圖像不同方面的描述,將這些特征聯合起來,可以更加全面地表達圖像信息.因此,本文從圖像的色彩、亮度、紋理細節等方面考慮,設計并行神經網絡結構,將圖像的RGB矩陣、H通道和V通道分別輸入到深度卷積神經網絡中,訓練得到相應的網絡模型.對每一幅圖像分別利用以上的模型提取第9層的特征向量,并利用CNN低層特征圖上的紋理信息,設計了一種基于卷積神經網絡的紋理特征,最后將上述多個特征向量與原圖的SIFT特征進行融合,得到完整的圖像特征.
1)RGB圖像:RGB圖像從不同顏色分量混合的角度以色彩來表示圖像.由于卷積神經網絡需要輸入固定大小的圖像,因此將RGB圖像縮放至227像素×227像素的大小輸入網絡.
2)HSV圖像:HSV圖像的H、S、V三個通道分別代表圖像的色度、飽和度和亮度,與RGB圖像三通道代表的意義區別較大.同時在花卉數據庫中,每類花的顏色、拍攝時圖像的亮度都對花卉的識別產生較大的影響,所以取出HSV圖像中的H通道矩陣和V通道矩陣縮放至227×227大小后分別作為卷積神經網絡的輸入.
深度卷積神經網絡的訓練使用當前研究中常用的開源框架Caffe[14]完成,本文的訓練過程如下:首先根據上述本文設定的單路卷積神經網絡,劃分好數據集的訓練集和測試集.然后將輸入圖像的每個像素值減去所有訓練圖像在該像素點上的平均值,本文設學習率為0.001,動量為0.9,權重衰減為0.0005,完成深度網絡的訓練,得到3個CNN模型.分別取每個模型最后一層全連接層的輸出作為圖像特征.
CNN結構中的每個層級都包含若干特征圖,每個特征圖都是從不同尺度、不同層面對圖像進行表達.如圖2所示,本文隨機從the oxford Flower 102數據庫中選取一張圖像,展示其卷積層部分可視化的結果.

圖2 單路卷積神經網絡結構圖Fig.2 Single column convolutional neural networks
由圖2可知,低層級上的特征圖( Conv1、Conv2 層級上的特征圖)仍然可以直接通過可視化進行理解,越高層的特征圖越是抽象,它們捕獲圖像中物體邊緣和急劇變化的像素信息,特征圖上依然保留著原始圖像中的豐富細節紋理.據此,本文利用灰度共生矩陣在低層級的特征圖中提取紋理特征,具體方法描述如下:
首先對于輸入圖像,本文通過式(1)提取出它在Conv1和Conv2上所有的特征圖,表示低層級上所有特征圖的幾何,表示第t層上的第j張特征圖,分別表示Conv1、Conv2上特征圖的數量.
然后對每一幅特征圖,本文都通過計算灰度圖像得到它的共生矩陣,然后透過計算這個共生矩陣得到矩陣的部分特征值,本文采用熵表示該特征圖的紋理特征.熵是圖像包含信息量的隨機性度量.當共生矩陣中所有值均相等或者像素值表現出最大的隨機性時,熵最大;因此熵值表明了圖像灰度分布的復雜程度,熵值較低時表示區域中顯著變化的位置分布較為集中,熵值較高表示顯著變化的位置廣泛分布于整個特征區域,因此,熵值越高,圖像越復雜.熵值的計算如式(5)所示:
(4)
(5)
本文所處理的花卉數據庫大都是在自然環境下拍攝,在進行分類時易受到拍攝光線、拍攝角度等方面的影響.David Lowe[15]提出的SIFT算法,將斑點檢測與特征描述與生成、特征匹配等步驟結合到一起,提取了尺度、旋轉、光照以及視角等變換上具有良好不變性的圖像局部特征.鑒于SIFT特征優秀的不變性,本文使用它進行花卉圖像分類.但由于圖像大小的差異以及興趣點個數的不同,將造成最后得到每幅圖像特征個數不同,因此本文通過視覺詞袋法(Bag of Words,BoW),將這些特征映射到同樣維度的向量.具體過程如下:
第1步,提取所有圖像的SIFT特征,利用K-means算法對其聚類,生成k個聚類中心,每個中心代表一個視覺單詞,這k個視覺單詞構成視覺詞典.
第2步,計算圖像每個SIFT特征向量與視覺單詞的歐氏距離,將特征向量映射到最近的視覺單詞.假設特征為f,視覺詞典為di,特征到視覺詞典的權重W(f,d)通過確定.使用公式(6)計算:
(6)
其中,dk表示第k個視覺單詞,D(f,dk)表示特征f到視覺單詞的歐氏距離.
目前,常用的多特征融合方法有簡單疊加、串行連接等,但簡單的疊加難以體現特征間的差異性,將特征全部串行連接會導致特征維數過大,增加計算成本.因此本文根據不同特征在分類方面的貢獻,設計出一種深度學習特征加權融合,人工設計特征串行連接的多特征融合方法.
對于一幅圖像提取的M種深度特征,本文用yi表示,其中i=1,…,M.考慮到不同特征的組合,我們使用泛化性能較好的支持向量機(SVM)對提取出的特征向量進行學習,本文分別對每種特征向量采用合適的SVM核函數來訓練初級分類器,以得到該特征向量的分類誤差率ei.一般誤差率越低則表示該類特征具有較強的區分能力,所以從誤差率的角度出發定義特征i的權重wi,當誤差率越低時權重越大,如式(6)所示:
(7)
根據式(7),本文根據每個特征不同的權重融合得出圖像深度學習特征F:
(8)
最后,本文串聯圖像深度學習特征F和SIFT特征,得到完整的圖像特征.
MF-PCNN模型是由特征提取以及多特征融合兩部分組成.具體步驟如下:
1)特征提取階段:
步驟1.分別將normal RGB圖像、H矩陣、V矩陣輸入到深度卷積神經網絡中,進行訓練得到相應的網絡模型;
步驟2.對每一幅圖像分別利用以上模型提取第9層特征向量,本文將這三種特征向量依次標記為yi,i=1,2,3;
步驟3.對每一幅圖像利用normal RGB圖像訓練得到的模型,通過GLCM-CNN方法得到紋理特征y4;
步驟4.對每一幅圖像提取出SIFT-BoW特征y5.
2)多特征融合階段:
步驟1.特征yi,i=1,2,3,4分別用多分類SVM(Multiclass-Svm)進行訓練,得到每個特征的誤差ei;
步驟2.根據誤差率ei,利用式(7)獲取不同特征的權重;
步驟3.利用式(8),結合不同特征的權重,融合深度學習特征F;
步驟4.串聯圖像深度學習特征F和SIFT特征,得到完整的圖像特征.
為了驗證MF-PCNN的有效性,本文分別在牛津大學VGG實驗室提供的Oxford-17 flower數據庫[17]和 Oxford-102 flower數據庫[1]上進行了實驗,采用SVM分類花卉圖像,以識別精度作為評判標準.本文所選用的SVM核函數是文獻 [21]提到的直方圖交叉核.實驗環境為Matlab 2015b on 64-bit Ubuntu.計算機配置如下,處理器為Intel(R)Core(TM) i7-6700 CPU @ 3.40GHZ×8,GeForce GTX 960 GPU,內存8.00GB,本節給出實驗結果與分析.
Oxford-17 flower數據庫是牛津大學Visual Geometry Group選取的在英國比較常見的17種花,每類花有80張圖像,共有1360張圖像.根據數據庫設計者的設定,選取其中1021張圖像作為訓練樣本,339張圖像作為測試樣本.Oxford-102 flower數據庫是在做花卉分類時最常用的公共數據庫之一,它包含102類的花卉,每類包含40到258張不等的圖像,共8189張圖像.選取其中1020張圖像作為訓練樣本,6149張圖像作為測試樣本.Oxford-102 flower數據庫不僅有更多的花卉種類,而且每一類花卉圖像之間的數量不平衡,不同花卉類別之間擁有更高的相似度,因此相較于Oxford-17 flower數據庫,Oxford-102 flower數據庫在分類過程中具有更大的挑戰性.

圖3 數據庫圖像示例Fig.3 Examples of flower images of datasets
圖5是Oxford-17 flower數據庫的圖像示例.其中,第一行的圖像是番紅花圖像,第二行圖像是雪蓮花圖像.從第一行的兩張圖像我們可以看出相同花卉可能存在多種不同的顏色,且由于拍攝角度不同,可能導致花卉圖像的扭曲、旋轉;第二行圖像體現了花卉在處于不同花期時的差異性.而在第一列中,兩類花卉的顏色相同、花瓣形狀相似,整體的相似度更高.
4.2.1 單路卷積神經網絡結構實驗
為了減少特征的冗余性和算法的復雜度,本文減少單路卷積神經網絡的輸出維度,同時為了保證單路卷積神經網絡對花卉圖像數據庫的分類性能,本節主要探討單路卷積神經網絡的結構設計.
網絡的前8層沿用[12]的結構,并在第9層添加一層全連接層.本節主要探討加入該全連接層后對圖像分類準確率的影響,并在Oxford-17 flower和Oxford-102 flower數據庫上進行了實驗,結果如表1所示.

表1 不同結構卷積神經網絡的分類準確率Table 1 Classification accuracy of convolutional neural networks with different structures
其中,Arch1為原始CNN模型,Arch2為本文所設計的CNN模型,即在卷積神經網絡最后添加一層352維的全連接層.表1顯示,全連接層的添加對圖像分類效果的影響差別并不大,甚至在Oxford 102數據庫上的表現略好于原始CNN模型.綜合考慮準確率和特征維數,本文選擇Arch2結構的卷積神經網絡,其輸出特征維數適當,有利于特征融合.
4.2.2 花卉圖像分類實驗結果與對比
針對本文基于多特征融合的分類方法,本文進一步考慮不同特征組合對于分類準確的影響,實驗結果如表2所示.第二列的jpg、h、v分別代表RGB圖像、H通道和V通道經過CNN模型提取的特征,GLCM-CNN為本文設計的紋理特征,SIFT352代表352維的SIFT-BoW特征,′+′代表融合.

表2 各種特征融合組合的分類準確率Table 2 Classification accuracy of various features combination
由表1結果可以看出:1)特征融合后的花卉圖像分類準確率是高于原單路特征的準確率.2)從組合1、6、7、8可以看出原圖特征融入色度特征或亮度特征后的分類效果都比單一的CNN特征效果好,且同時融入這兩個特征后的準確率是最高的.3)從組合6到12的對比中發現,原有特征在融合GLCM-CNN特征后,它們的分類準確率都有所上升,這一點在Oxford 17數據庫中尤其明顯,如jpg+h+GLCM-CNN組合的準確率比沒加GLCM-CNN特征的準確率提高約18%,jpg+v+GLCM-CNN組合的準確率比沒加GLCM-CNN特征的準確率提高約15.5%,說明本文設計的紋理特征的有效性.3)對比組合12和組合13,加入SIFT特征后第一個數據庫準確率高于沒加SIFT特征前的組合0.68%,比第二個數據庫提高1.2%的準確率,說明加入人工設計SIFT特征是有助于花卉圖像的分類.
為了對本文提出的方法進行驗證和分析,本文選取了文獻 [1,2,7,8,9,13]給出不同特征在該數據庫上的識別精度,如表3所示.其中,由于文獻[1]實現了多種人工特征的組合,所以本文選擇其中表現最好的方法SIFT-Internal進行對比,NaN表示作者并未在論文中在該數據庫上進行實驗.

表3 本方法與現有方法的實驗對比Table 3 Experimental results of our method and comparison with existing methods
由表3可以看出,在Oxford 17 數據庫中,本文方法提出的特征分類準確率最高,既高于單組的人工特征,也高于人工特征方法融合得出的特征,說明深度學習所得到的特征性能是優于傳統特征提取出的特征.同時,本文深度特征融合的準確率比單純的深度特征效果好.由文獻[1]可知,在Oxford 102數據庫的實驗中,單一的人工特征在數據庫中準確率最高不超過55.1%,詞袋模型、SPM模型以及人工特征融合方法的準確率在70%左右,本方法稍遜于Angelova等提出的Dense HOG+Coding+pooling模型.Angelova采用了同類花卉形狀協同分布的分割算法,因此排除圖像背景的干擾,提高分類準確率.而本文的算法在未使用分割算法的前提下,其正確率幾乎與Angelova算法的準確率持平.并且,本文的方式使用的是704維,遠小于Angelova所提出特征的維度(8000維).
本文提出的多特征融合的花卉圖像深度學習花卉圖像分類算法(MF-PCNN).該方法首先構建基于深度卷積神經網絡的特征提取框架,然后利用CNN模型從顏色、亮度多特征角度提取目標對象特征,并通過CNN低層級上的特征圖設計了一種基于卷積神經網絡的紋理特征,最后將上述多個特征與人工設計特征經過融合得到完整的圖像特征.通過對比傳統人工提取特征的實驗效果,驗證本文所構建的特征的有效性.在已有研究的基礎上,下一階段將考慮結合高效的圖像分割算法使提取出的花卉圖像特征具有更強的表達能力.