劉嘉政
摘要:為了解決傳統(tǒng)花卉識別方法中特征提取主觀性強、模型泛化能力差、錯分率高的問題,提出一種基于Inception_v3的深度遷移學習模型的花卉圖像識別方法。本研究對5種常見花卉圖像進行識別分類,首先對原始圖像進行預處理,通過對每張圖像進行水平翻轉、旋轉操作,擴增數(shù)據集;其次,采用預訓練完畢的Inception_v3模型,對其在ImageNet上訓練好的網絡參數(shù)進行遷移學習,對各個參數(shù)進行微調,并保留原模型的特征提取能力,并將原模型的全連接層替換為符合本研究要求的5分類softmax分類輸出層,從而構建基于深度遷移學習的識別模型。對5種花卉共計11 000張圖像進行訓練和驗證,平均識別正確率達到93.73%,與傳統(tǒng)的花卉識別方法相比,識別率得到提高,模型魯棒性更強,具有一定的使用價值。
關鍵詞:花卉種類;深度學習;遷移學習;識別分類
中圖分類號: TP391.4?文獻標志碼: A
文章編號:1002-1302(2019)20-0231-05
花卉種類識別,一直是植物識別領域的熱門話題之一。在國內,諸多學者在花卉種類識別的研究中,取得了一些進展。在傳統(tǒng)方法上,吳笑鑫等采用Grab Cut分割算法,提取花卉圖像特征,并將支持向量機(SVM)作為分類器,識別率達到92.5%[1];劉晶晶等通過提取牡丹紋理和形狀特征,采用BP神經網絡進行識別分類,提高了準確率和穩(wěn)定性[2];柯逍等利用Canny算子對花卉雷同圖片進行過濾分割,結合形狀特征和紋理特征的邊緣LBP算子,實現(xiàn)對花卉種類的識別[3]。翟果等通過提取菊花的顏色、形狀和紋理3個方面的特征,并以此建立特征模型,最后采用KNN算法對未知觀賞菊品種進行分類識別,取得了理想的識別效果[4]。但是,傳統(tǒng)的花卉識別方法中,存在兩大問題:(1)過分依賴人工提取特征,受到人的主觀影響大,并且費時費力;(2)傳統(tǒng)的方法只適合于小樣本量的識別,對于海量圖像數(shù)據,達不到識別要求。另外,由于花卉的種類繁多,花卉形態(tài)各式各樣,目前而言,并沒有一種普適性的方法能夠識別所有花卉種類。
但隨著理論知識和計算機技術的飛速發(fā)展,卷積神經網絡在圖像識別領域越來越受到歡迎。袁培森等以菊花為例,基于端到端的卷積神經網絡對菊花花型和品種進行識別,并實現(xiàn)了移動端菊花識別系統(tǒng),平均識別率達到0.95左右[5];郭子琰等基于卷積神經網絡模型,并選用ReLu激活函數(shù)代替?zhèn)鹘y(tǒng)的Sigmoid函數(shù),取得了理想的識別效果[6]。沈萍等基于多隱層的深度卷積神經網絡,對80種常見花卉品種進行識別分類,識別率提高10%以上[7];但是,以上都是針對相同場景的花卉圖像識別,而且,面對海量數(shù)據,對于模型及計算機硬件要求都是極大的考驗。因此,深度遷移學習方法可以較好地解決上述問題。劉德建等基于LetNet模型構建多層的花卉識別網絡,識別效果良好[8];王麗雯等將AlexNet模型進行遷移學習,對Oxford花卉種類進行識別,精度提升了10%[9];Oquab等利用遷移卷積神經網絡在VOC2012上取得了很大的成功[10]。
因此,本研究提出基于Inception_v3模型[11]的遷移學習的花卉識別方法。利用預訓練的源模型,此方法的優(yōu)點在于不需要模型源數(shù)據與本研究具體圖像數(shù)據一致,只是將Inception_v3模型的自動提取特征的能力移植過來,保留低層的結構參數(shù),并對相關參數(shù)進行微調,從而構建適合本研究花卉識別的神經網絡。為了驗證本研究模型的性能,與傳統(tǒng)的支持向量機(SVM)做比較。試驗結果表明,本研究提出的方法識別正確率較傳統(tǒng)方法來說,有了明顯的提高。
1?數(shù)據與方法
1.1?數(shù)據集
本研究所用到的圖像來自于中國植物主題數(shù)據庫,主要選取了雛菊、蒲公英、玫瑰花、向日葵和郁金香5種常見花卉作為識別對象。5類花卉試驗樣本圖像共采集3 670張,其中雛菊633張,蒲公英898張,玫瑰花641張,向日葵699張,郁金香799張。
為避免訓練過擬合,對原始數(shù)據集進行擴增。通過Python腳本語言,將圖片進行水平翻轉、旋轉90°,對樣本量進行擴增。此時,共得到11 010張,其中雛菊1 899張,蒲公英2 694張,玫瑰花1 923張,向日葵2 097張,郁金香2 397張。每類花卉隨機選取200張圖片作為驗證集,剩余10 010張作為訓練集。表1列出了具體的數(shù)據集數(shù)量。每類花卉示例見圖1。
1.2?試驗方法
1.2.1?程序運行環(huán)境
本試驗環(huán)境為Windows 10系統(tǒng),處理器為Intel(R)CoreTM i7-6700 CPU @ 3.40 GHz 3.41 GHz,運行內存為8.00 GB。本試驗所有代碼均在Pycharm代碼平臺、基于TensorFlow開源框架[12]、采用Python3語言編寫實現(xiàn)。
1.2.2?卷積神經網絡
卷積神經網絡(convolutional neural network,簡稱CNN)[13]結構有輸入層、卷積層、池化層、全連接層、輸出層。近年來,卷積神經網絡之所以在圖像識別領域發(fā)展迅速,得益于它的幾大特點:(1)自主進行學習,自動提取特征,無需過多的人工干預;(2)多卷積結構層,增強特征提取能力;(3)利用反饋機制,能夠自動更新、共享權值,不斷提高正確率。
1.2.3?深度遷移學習
遷移學習屬于機器學習的一種方法,是將一個任務訓練得到的模型移植到其他任務的訓練上來[14]。在大數(shù)據時代,要想訓練深度學習模型,得到理想的結果,須要耗費巨大的資源,對計算機硬件也更高。因此,深度遷移學習就成為很受歡迎的方法。和傳統(tǒng)的機器學習方法相比,深度遷移學習可以應用于多分類識別中,不需要訓練多個模型,只需要直接應用到其他的任務中即可。圖2為遷移學習和傳統(tǒng)機器學習的比較。
1.2.4?Inception_v3模型
Inception_v3模型是基于GoogleNet卷積神經網絡進行的改進。卷積神經網絡(CNN)的卷積層結構通常選用單一且固定尺寸的卷積核,Inception_v3模型在卷積層結構中嘗試使用不同尺寸的卷積核,并且將尺寸較大的卷積核拆分成幾個較小的卷積核。Inception_v3模型的原數(shù)據集包含大約120萬幅圖像,1 000多個種類,包含大約 2 500 萬個結構參數(shù)。
1.2.5?模型構建
圖3為本研究深度遷移學習模型的構建流程圖。利用在GoogleNet上預先訓練好的Inception_v3模型,將具有自動提取圖像特征能力的卷積、池化層遷移到本研究的模型中。當輸入1張花卉圖像時,對該圖像特征進行提取,并用2048維張量表示,并依次存入緩存文件中。本研究還對Inception_v3的全連接層、Dropout層進行重新訓練,對結構參數(shù)進行微調,以適應本研究要求。
因此,根據試驗具體要求,本研究提出花卉種類識別模型的網絡結構參數(shù)設置見表2。
1.2.6?試驗訓練過程
本研究深度遷移學習過程分為3個階段:(1)初始化設置:對隨機變換的圖像與原始圖像相結合,構成用于本研究訓練的花卉圖像數(shù)據庫?;陬A訓練的Inception_v3模型自帶的結構參數(shù),將花卉數(shù)據庫作為下一階段模型訓練的數(shù)據源;(2)除了預訓練模型和最后1層全連接層以外,要重新訓練完整的全連接層,并將最后的全連接層的結構參數(shù)作為下一階段的特征提取輸入源;(3)最后1個階段是對整個模型結構層數(shù)進行微調,以適應本研究要求。最后采用Softmax分類器,作為最后的分類輸出層。
2?結果與分析
2.1?迭代次數(shù)對試驗的影響
試驗中,迭代次數(shù)初始設置為1 000次,每次試驗迭代次數(shù)依次增加1 000次。當?shù)螖?shù)達到5 000次時,識別正確率略有下降。此時將迭代次數(shù)減少,直到設置為4 500次時,識別正確率最高(圖4)。
2.2?學習率對試驗的影響
當測試學習率對識別正確率的影響時,是在“2.1”節(jié)確定的最佳迭代次數(shù)的基礎上進行的測試,測試結果見表3。當學習率為0.010 0時,識別率達到93.8%。
2.3?Dropout層對試驗的影響
在模型訓練過程中,都會出現(xiàn)過擬合現(xiàn)象。所謂過擬合,具體表現(xiàn)為在模型識別率在訓練集上效果好,測試集上效果差,這表明模型泛化能力弱,從而影響識別率。為防止訓練過擬合,除在數(shù)據處理時擴增數(shù)據集之外,本研究在模型中加入Dropout層。Dropout策略是通過對模型本身結構進行修改的一種防過擬合方法。試驗中共運行程序5次,來測試Dropout層對試驗的影響。測試結果見表4。
2.4?不同激勵函數(shù)對試驗的影響
在神經網絡結構中,往往加入激勵函數(shù)[15],來保證網絡輸出的是非線性函數(shù)。常見的激勵函數(shù)有Sigmoid函數(shù)、Tanh函數(shù)、ReLU函數(shù)。圖5是采用不同激活函數(shù)對試驗產生的結果。很明顯,采用ReLU函數(shù)時,識別正確率最高。ReLU激勵函數(shù)[16]為分段形式,使其前向、后向、導數(shù)的形式均為分段形式,更易于優(yōu)化學習,從而解決模型收斂問題。
2.5?特征圖提取
為更加直觀地了解訓練過程中,神經網絡對圖像的特征提取情況,部分特征提取如圖6、圖7所示。深度卷積神經網絡,具有強大的自動提取特征功能,會依次提取圖像低級乃至高級的抽象特征,人眼有時無法分辨出來。
2.6?識別結果
經過數(shù)據初始化、參數(shù)調整、訓練模型,得到accuracy和loss迭代收斂結果(圖8、圖9)。當?shù)螖?shù)達到 4 500 次時,準確率和損失值都接近收斂,數(shù)值不再有大的變化。
2.7?方法對比
為驗證本研究方法的可行性,與傳統(tǒng)的支持向量機(SVM)、卷積神經網絡(CNN)進行比較。對于SVM模型,通過提取全局特征和局部特征,對花卉圖像進行識別,平均識別率最低;對于CNN來說,平均識別率較高,達到80%以上;本研究提出的方法,對5種花卉圖像的平均識別率達到 93.73%,比較結果見表5。
3?結論與討論
本研究提出一種基于深度遷移學習模型的花卉種類識別方法,構建了基于Inception_v3的花卉種類識別模型,實現(xiàn)了對雛菊、蒲公英、玫瑰花、向日葵、郁金香5種花卉的有效識別,平均識別率達到93.73%。(1)基于遷移學習的花卉圖像識別模型,對輸入圖像不用人工進行特征提取,只進行簡單的類別標注即可,既節(jié)省了大量的人力和時間,又不用掌握過多的植物花卉方面的專業(yè)知識,提高了識別效率和精度。(2)本研究提出的方法,與傳統(tǒng)的SVM方法相比,不僅識別率得到大大提高,而且更適合于處理海量數(shù)據,傳統(tǒng)的方法僅僅適合對小樣本數(shù)據集的處理。(3)本研究通過對原始圖像進行隨機旋轉、水平翻轉,擴增數(shù)據集,對模型結構權重參數(shù)進行微調,避免了過擬合現(xiàn)象的出現(xiàn),且隨著樣本量的增加,模型泛化能力和魯棒性都得到提高。
本研究用到的5種花卉的圖像特征差別較明顯,提出的模型對5種花卉種類有較理想的識別結果,但是否能應用到其他花卉種類識別,還有待進一步驗證。同時,下一步的工作是繼續(xù)增加樣本集種類和數(shù)量,改進網絡結構,提高分類精度,使其應用性更強。
參考文獻:
[1]吳笑鑫,高?良,閆?民,等. 基于多特征融合的花卉種類識別研究[J]. 北京林業(yè)大學學報,2017,39(4):86-93.
[2]劉晶晶,侯凌燕,楊大利. 牡丹花特征提取及識別技術研究[J]. 北京信息科技大學學報(自然科學版),2017,32(1):65-71.
[3]柯?逍,陳小芬,李紹滋. 基于多特征融合的花卉圖像檢索[J]. 計算機科學,2010,37(11):282-286.
[4]翟?果,李志敏,路文超,等. 基于圖像處理技術的觀賞菊品種識別方法研究[J]. 中國農機化學報,2016,37(2):105-110,115.
[5]袁培森,黎?薇,任守綱,等. 基于卷積神經網絡的菊花花型和品種識別[J]. 農業(yè)工程學報,2018,34(5):152-158.
[6]郭子琰,舒?心,劉常燕,等. 基于ReLU函數(shù)的卷積神經網絡的花卉識別算法[J]. 計算機技術與發(fā)展,2018,28(5):154-157,163.
[7]沈?萍,趙?備. 基于深度學習模型的花卉種類識別[J]. 科技通報,2017,33(3):115-119.
[8]劉德建. 基于LeNet的花卉識別方法[J]. 電子技術與軟件工程,2015(23):13-14.
[9]王麗雯. 基于AlexNet的Oxford花卉識別方法[J]. 科技視界,2017(14):83.
[10]Oquab M,Bottou L,Laptev I,et al. Learning and transferring mid-level image representations using convolutional neural netwoks[C]. IEEE Conference on Computer Vision and Pattern Recognition,2014.
[11]Yosinski J,Clune J,Bengio Y,et al. How transferable are features in deep neural networks?[C]. Advances in Neural Information Processing Systems,2014.
[12]Wongsuphasawat K,Smilkov D,Wexler J,et al. Visualizing dataflow graphs of deep learning models in tensorflow[J]. IEEE Transactions on Visualization and Computer Graphics,2017,24(1):1-12.
[13]周飛燕,金林鵬,董?軍. 卷積神經網絡研究綜述[J]. 計算機學報,2017,40(6):1229-1251.
[14]王?惠. 遷移學習研究綜述[J]. 電腦知識與技術,2017,13(32):203-205.
[15]張?彤,劉?志,莊新卿. 基于開發(fā)者平臺和深度學習的智能識花與護花系統(tǒng)[J]. 工業(yè)控制計算機,2018,31(1):90-92.
[16]王雙印,滕國文. 卷積神經網絡中ReLU激活函數(shù)優(yōu)化設計[J]. 信息通信,2018(1):42-43.