趙彥輝 范欣寧 張建逵 謝明



摘要:目的 基于卷積神經網絡,使藥用植物的圖像識別自動化、智能化,從而提高藥用植物識別的效率。方法 使用中國植物圖像庫搜集藥用植物圖像,進行灰度化、角度隨機旋轉等批量處理。采用卷積神經網絡圖像識別技術,結合DeepLearning4j框架,對模型參數進行優化調試。結果 使用DL4J-example、AlexNet、VGG16模型,小樣本單一背景藥用植物圖像識別正確率分別達到68.00%、70.00%、24.00%,大樣本復雜背景藥用植物圖像識別正確率分別達到48.87%、60.00%、91.35%。 結論 圖像識別技術的使用提高了復雜背景下藥用植物圖像識別的正確率和效率,為藥用植物的識別提供了新方法,識別正確率高低與激勵函數、迭代次數、卷積層數及參與訓練的圖像數量直接相關。
關鍵詞:圖像識別;卷積神經網絡;深度學習;遷移學習;藥用植物
DOI: 10.3969/j.issn.2095-5707.2018.05.005
中圖分類號:G250.7 文獻標識碼:A 文章編號:2095-5707(2018)05-0018-05
Discussion on Application of Deep Learning Method in Medical Plant Image Recognition Based on DeepLearning4J on Spark
ZHAO Yan-hui1, FAN Xin-ning2, ZHANG Jian-kui2, XIE Ming2*
(1. Library of Liaoning University of Traditional Chinese Medicine, Shenyang 110032, China; 2. College of Pharmacy, Liaoning University of Traditional Chinese Medicine, Dalian 116600, China)
Abstract: Objective To automate and intelligentize medical plant image recognition based on the convolution neural network. To improve the efficiency of medical plant recognition. Methods Chinese plant image database was used to collect medical plant images, and the batch processing of gray scale and angle random rotation were carried out. Convolution neural network image recognition technology was used and DeepLearning4J frame was combined. Model parameters were optimized and debugged. Results DL4J-example, AlexNet and VGG16 models were used. The accuracy rates of image recognition for small samples of single background medical plants reached 68.00%, 70.00% and 24.00%, respectively, and the accuracy rates of image recognition of medical plants in complex background reached 48.87%, 60.00% and 91.35%, respectively. Conclusion The use of image recognition technology can improve accuracy and efficiency of medical plant image recognition under complex background, and provide a new method for recognition of medical plants. The recognition accuracy rate is directly related to the excitation function, the number of iterations, the number of convolution layers, and the number of images participating in the training.
Key words: image recognition; convolution neural network; deep learning; transfer learning; medical plants
基金項目:2014年遼寧省高等學校創新團隊(WT2014004)
第一作者:趙彥輝,E-mail: 644735344@qq.com
*通訊作者:謝明,E-mail: x6m6@163.com
傳統的藥用植物識別主要依靠專業人員通過眼看、手摸、口嘗、鼻聞的方式進行[1],這種方式主要依賴操作者的專業水平和經驗,因此不同的操作者識別藥用植物有一定的主觀性,其正確率有所不同。而圖像識別技術能解決人工識別主觀性強等問題,可以降低藥用植物識別的難度。圖像識別是指利用計算機對圖像進行處理、分析和理解,以識別各種不同模式的目標和對象的技術,是信息科學和人工智能的重要組成部分[2]。近年來,深度學習已經成為圖像識別領域的熱點。為解決人工識別藥用植物效率低、主觀性強的難題,本研究基于卷積神經網絡(Convolutional Neural Network, CNN),探究藥用植物圖像識別的方法,構建自動化的識別系統,并利用搜集的5種藥用植物圖像對系統進行識別訓練,為藥用植物的識別提供新方法、新思路。
1 實驗材料及開發工具
1.1 操作系統及分布式實時計算環境
Windows 7 sp1 64位(客戶端),CentOS-Linux release 7.4-64位,Hadoop2.6.0-CDH5.5.2,Spark2.2.1。
1.2 硬件環境
Intel CORE i5-42100-2.4GHZ/6G內存/1T硬盤筆記本電腦1臺;清華同方超越E550,2核Intel(R) Pentium(R) CPU G645@2.90GHz/8G/500G 2臺;Dell臺式機2核Intel(R) Celeron(R) CPU G1820@ 2.70GHz/6G/500G 1臺;Dell虛擬機Vmware5.5.0-4核Intel(R) Xeon(R) CPU E3-1220 V2@3.10GHz/7G/ 46G 1臺;曙光Vmware5.5.0-15核AMD Opteron(TM) Processor 6212/8G/50G 1臺。
1.3 軟件環境
Eclipse Oxygen集成開發平臺、JAVA語言環境、DeepLearning4j深度學習框架、Adobe Photoshop CC軟件。
2 實驗方法與結果
2.1 卷積神經網絡框架設計
本文所構建的CNN構架主要由輸入層、卷積層、池化層、全連接層和輸出層5個部分組成(見圖1)。
2.1.1 輸入層 若輸入對象是圖像,那么輸入層的原始輸入數據為圖像的像素值。本研究中原始輸入數據即為256×256像素大小的圖像,JPG格式,RGB3通道。
2.1.2 卷積層 卷積層由多個特征面組成,每個特征面由多個神經元組成,每個神經元通過卷積核與上一層特征面的局部區域相連[3]。卷積層的主要作用為提取輸入數據特征,其過程如圖2所示。幾種濾波(即核)在已被分解為彩色值的圖像上滑動,將核內值的濾波乘積加和,并將加和的值返回,得到卷積特征。卷積層中卷積核數量越多,提取的輸入數據特征就越多。本實驗通過更改核的值來提取不同類型的特征。
圖1 卷積神經網絡設計構架示意圖
圖2 卷積特征提取示意圖
2.1.3 池化層 由多個特征面組成,它的每一個特征面均唯一對應于其上一層的一個特征面,且池化層的神經元也與其輸入層的局部接受域相連[3]。池化層自身并不會訓練或者學習,僅僅是把卷積層傳播過來的圖像進行池化(下采樣)。其主要作用是在保留有用信息的基礎上減少數據的處理量,加快網絡訓練的速度。
2.1.4 全連接層 后面層的神經元節點和前一層的神經元節點連接,而同一層神經元節點間無連接。每一層神經元節點通過連接線上的權值進行前向傳播,加權組合得到下一層神經元節點的輸入。其實質為多層感知機的隱含層。本文中,為了提升卷積神經網絡性能,降低模型的計算復雜度,在全連接層選用了Relu(修正線性單元)激活函數。計算公式如式⑴。除此之外,在網絡訓練的過程中,為了避免過擬合,本文在全連接層使用了正則化方法——dropout技術,有研究表明,此方法可使隱含層神經元的輸出值以50%的概率變成0[4]。因此能有效降低神經元間的復雜性,忽略無效細節,從而提升神經元學習特征的魯棒性。
⑴
2.1.5 輸出層 可根據具體應用任務來設定輸出層的神經元節點數,本文訓練5種藥用植物圖像,因此輸出節點數設置為5。
2.2 DeepLearning4j深度學習框架搭建
2.2.1 安裝集成開發環境 下載并安裝JDK9.0.1、Eclipse Oxygen版for windows(64Bit)軟件。設置系統環境變量,JAVA_HOME為D:/JAVA/JDK-9.0.1,PATH增加%JAVA_HOME%\bin,CLASSPATH為.;%JAVA_HOME%\lib。測試運行環境,運行CMD、java-version、javac回報版本和編譯信息。安裝Eclipse軟件至D:/ECLIPSE。
2.2.2 安裝DeepLearning4J 訪問https://deeplearning4j.org/,下載ZIP文件到D:/DL4J,安裝MAVEN環境,導入Maven Existing Maven Projects,打開dl4j-examples。
2.2.3 搭建Hadoop集群和Spark集群 測試任務提交命令,#spark-submit -- class cn.edu.lnutcm. nd4jonSpark. FitFromFeaturized -- master spark:// storm6: 7077 -- deploy-mode client -- driver-memory 6g -- executor-memory 4g hdfs://ns1/spark_lib/ Nd4jTestOnMllib-0.0.1-SNAPSHOT.jar。
2.3 圖像的搜集與處理
2.3.1 植物圖像的搜集 圖像特征提取是藥用植物圖像識別的核心,直接影響最終的識別效果[5]。本實驗選取銀杏、牛蒡、薄荷、知母、芍藥5種藥用植物。
銀杏(Ginkgo biloba L.),幼樹樹皮近平滑,淺灰色,大樹之皮灰褐色。葉互生,在長枝上輻射狀散生,在短枝上3~5枚成簇生狀,扇形,淡綠色,具多數叉狀細脈。
牛蒡(Arctium lappa L.),莖直立,帶紫色,上部多分枝。基生葉叢生,大型,有長柄;莖生葉廣卵形或心形。頭狀花序多數,排成傘狀;總苞球形,總苞片披針形;花淡紅色,管狀。
芍藥(Paeonia lactiflora Pall.),莖直立,上部分枝。葉互生,近革質,二回三出復葉,小葉窄卵形。花兩性,數朵生莖頂和葉腋,白色,有時基部具深紫色斑塊或粉紅色。
薄荷(Mentha haplocalyx Briq.),莖四棱形。單葉對生,葉片長卵形或長圓形。輪傘花序腋生,花冠二唇形,淡紫色或白色,4裂。
知母(Anemarrhena asphodeloides Bunge.),葉基生,叢出;線形,基部擴大成鞘狀。花莖直立,穗狀花序稀疏而狹長,花常2~3朵簇生;花綠色或紫堇色;花被片6,宿存,排成2輪。
在中國植物圖像庫(PPBC, http://www. plantphoto.cn/)中搜集具有上述識別特征的植物圖像。經篩選,本文選取了銀杏圖像2483個,牛蒡圖像1494個,薄荷圖像2120個,知母圖像591個,芍藥圖像2318個,共計9006個圖像。以上圖像均經過遼寧中醫藥大學藥學院張建逵副教授鑒定。
2.3.2 植物圖像的預處理 為加強卷積神經網絡對圖像特征的學習效果,利用Adobe Photoshop CC軟件對這些圖像進行批量處理。首先去掉圖像中的水印和干擾元素,只保留識別所需的特征部位,然后進行灰度化處理,并歸一化像素值為256×256大小。為增加圖像的數據量、更好地檢驗卷積神經網絡對幾何變換、形變等一定程度上的不變性[6],本實驗將圖像進行了隨機角度旋轉(5~180°)變換,并將隨機旋轉角度后的圖片背景處理為白色。
經過以上處理,圖像數量增長了1倍,變為 18 012個,將這些圖像構建為大樣本復雜背景數據庫,命名為L(Large)數據庫,圖像見圖3。另外,為了探究圖像數量及背景復雜程度對模型訓練效果的影響,還建立一個小樣本簡單背景數據庫,即從5類植物圖像中各隨機抽取25個圖像,進行單一背景處理,命名為S(Small)數據庫,含單一背景圖像125個(見圖4)。
圖3 大樣本復雜背景圖片示例(Large數據庫)
圖4 小樣本單一背景圖片示例(Small數據庫)
2.3.3 實驗模型參數調試 本文分別采用了DL4J-example、AlexNet和VGG16共3種神經網絡模型進行有監督學習的訓練[7],在每次模型訓練過程中先將數據庫中的圖像進行標簽,然后隨機選取其中80%圖片作為訓練集,20%作為測試集。
為了較好地評價所建立的模型是否具有較強的魯棒性,本實驗統計了5類植物分類的正確率(accuracy),計算了每個類別的查準率(precision)、查全率(recall)及查全率與查準率的加權平均分數(F1),取其平均值作為模型評價標準。具體計算表達式見式⑵、式⑶、式⑷,其中,nij表示類別i預測為第j類的樣本數,nii表示類別i預測為第i類的樣本數,nji表示類別j預測為第i類的樣本數,ncl表示樣本類別數,本實驗值為5。
參照查閱的文獻,在DL4J-examples源碼基礎上構建模型,進行1~7、10~12號實驗。在第8、13號實驗引入AlexNet網絡模型,在第9、14號實驗引入VGG16網絡模型。對模型中的參數進行調試,并對其性能進行檢測。1~8、10~13號實驗為單機運行所得,9、14號實驗是在Spark集群上運行所得。實驗結果見表1。
將本文所構建的深度學習模型對單一背景和復雜背景圖像識別的正確率分別與文獻中查閱到的CNN+SVM模型[8](8層CNN+SVM分類器,其中SVM選取默認參數C=10,為SVM分類器的懲罰變量值;σ=0.038 461 54,是徑向基RBF形式核函數的變量值)及PCANet模型[8](L1=10,L2=8,指層濾波核數分別為10、8)的圖像識別正確率進行對比,結果見表2。
3 分析討論
通過實驗數據可看出,基于卷積神經網絡的藥用植物圖像模式識別程序的性能受激勵函數、迭代次數、卷積層數及圖像數量等因素的影響。
3.1 激勵函數
Tanh函數是飽和非線性函數,能在解決梯度爆炸(或消失)問題的同時加快收斂速度[9]。而Relu函數是不飽和非線性函數,從第3、6號實驗不難看出,使用Relu函數后,正確率提升了9.05%。可見,在卷積神經網絡中選用Relu函數,能夠更有效地提升網絡模型的性能。
3.2 迭代次數
從第3、5號實驗的測試結果可以看出,訓練和測試集來自S數據庫時,迭代次數為1次的準確率比10次的高出4.55%。再對比10、12號實驗的測試結果可以發現,訓練和測試集來自L數據庫時,迭代次數為15次時的準確率較1次迭代的準確率高出26.69%。
因此,不能簡單地說明迭代次數與準確率成線性關系。對于較小數據庫的訓練來說,迭代次數少,會使準確率更高;但對于較大數據庫的訓練來說,迭代次數多會使準確率更高。
3.3 卷積層數
從10、11、12號實驗可以看出,隨著數據量的增大,只增加卷積層的數量是不夠的,從2層卷積增加至7層后查準率反而下降了。因此,我們將卷積層數與迭代次數同時增加,層數加至7層(在第二層增加隱含層,在第七層增加池化層),迭代次數加至15次,結果表明,正確率有所提高。
3.4 數據量對網絡性能的影響
結合上述實驗結果來看,數據量越大,所構建的卷積神經網絡模型也就越復雜,但是對比5、12號實驗,不難發現,數據量的增加對于正確率的提升有一定幫助。用于訓練的圖像數量越多,卷積神經網絡能提取、學習到的特征也就越豐富,再加上多次反復的學習,識別的準確度和效率也就越高。
3.5 單機深度學習與分布式遷移學習的差別
因為單機內存不足,利用VGG16模型無法運行遷移學習,故9、14號實驗選擇了分布式平臺,搭建了由5臺計算機組成的Spark集群環境。由單機勉強運行的13號實驗(13層卷積,迭代50次),訓練了24 747 397個參數,運行了7.70 h,才得出結果。而在Spark集群環境下,凍結134 260 544個參數,訓練20 485個參數,僅運行6.95 min,得出了91.35%的正確率。
3.6 與其他模型對比分析
從表2中可以看出,與其他模型相比,本文所構建的模型在復雜背景圖像的識別應用中將現有研究中的最佳正確率提高到91.35%,使用遷移學習方法,訓練時間大大縮短。但與學習識別單一背景圖像的模型相比,由于數據量較小,正確率較低。
4 小結
圖像識別技術通過對圖像特征提取、處理和分析,能夠自動完成對圖像進行描述、辨認、分類和解釋,已經成為信息科學和人工智能的重要組成部分。將卷積神經網絡應用到藥用植物識別中,降低了藥用植物識別的難度,避免了手工提取特征而導致誤差累積的缺點。使用相對較少的預處理,更適用于復雜的圖像特征,具有適用性強、特征提取與分類同時進行、泛化能力強、全局優化訓練參數少等優點,為藥用植物的識別提供了新方法、新思路。
參考文獻
[1] 葉鋒,蔡光東,鄭子華,等.基于多特征融合的藥用植物標本識別[C]// 2011年中國智能自動化學術會議論文集(第一分冊).北京,2011:5.
[2] 龔丁禧,曹長榮.基于卷積神經網絡的植物葉片分類[J].計算機與現代化,2014(4):12-19.
[3] 周飛燕,金林鵬,董軍.卷積神經網絡研究綜述[J].計算機學報,2017, 40(6):1229-1251.
[4] 孫俊,譚文軍,毛罕平,等.基于改進卷積神經網絡的多種植物葉片病害識別[J].農業工程學報,2017,33(19):209-215.
[5] 譚亮.基于內容的中草藥圖像檢索關鍵技術研究[D].杭州:浙江大學, 2016.
[6] 馬珍玉,王樹森,聶磊,等.基于Matlab的植物葉片識別研究與實現[J].內蒙古科技與經濟,2016(9):48-49,51.
[7] 張善文,黃德雙.一種魯棒的監督流形學習算法及其在植物葉片分類中的應用[J].模式識別與人工智能,2010,23(6):836-841.
[8] 張帥,淮永建.基于分層卷積深度學習系統的植物葉片識別研究[J].北京林業大學學報,2016,38(9):108-115.
[9] 羅曉曙.人工神經網絡理論·模型·算法與應用[M].桂林:廣西師范大學出版社,2005.