黃方亮,沈同平,金 力
(安徽中醫(yī)藥大學(xué)醫(yī)藥信息工程學(xué)院,安徽合肥230012)
葉片是中草藥植物的重要器官,也是區(qū)分不同植物的重要參照,大多數(shù)中草藥的葉片都趨于扁平化,便于被攝錄設(shè)備采集并進(jìn)行數(shù)字化存儲(chǔ)。傳統(tǒng)的中草藥葉片識(shí)別往往需要人工采集大量的原始樣本,再進(jìn)行人工分析和研究,需要研究者具有相當(dāng)豐富的中醫(yī)藥知識(shí)儲(chǔ)備和經(jīng)驗(yàn),整個(gè)過(guò)程耗時(shí)耗力且識(shí)別率難以得到保證。隨著信息技術(shù)的飛速發(fā)展,人工智能早已在圖像識(shí)別領(lǐng)域嶄露頭角。將人工智能與傳統(tǒng)醫(yī)藥文化結(jié)合,為推動(dòng)中醫(yī)藥信息化提供技術(shù)支持。謝寶劍[1]利用動(dòng)態(tài)生長(zhǎng)模型結(jié)合主動(dòng)樣本學(xué)習(xí)方法進(jìn)行植物葉片識(shí)別,能自動(dòng)找到適合于應(yīng)用需求的合理結(jié)構(gòu)并有效解決了過(guò)擬合問(wèn)題;姚明勝[2]以AdaboostLDA為分類算法,提取葉片幾何特征,在相近的分類精度基礎(chǔ)上相較于BP神經(jīng)網(wǎng)絡(luò)具有更快的訓(xùn)練速度;張帥[3]結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(CNN)和支持向量機(jī)(SVM)加以訓(xùn)練,對(duì)單一背景葉片能獲得較高的識(shí)別率,但對(duì)復(fù)雜背景葉片的識(shí)別效果一般;忽勝?gòu)?qiáng)[4]以植物葉片幾何形狀作為分類依據(jù),采用半自動(dòng)交互式圖像分割方法解決復(fù)雜背景葉片圖像分割問(wèn)題,將集成學(xué)習(xí)算法應(yīng)用于植物葉片分類器的訓(xùn)練取得了較高的分類識(shí)別精度;李龍龍[5]將半監(jiān)督算法應(yīng)用到植物葉片識(shí)別中,采用特征加權(quán)模糊半監(jiān)督聚類算法SFFD作為分類識(shí)別器,極大地提高了聚類速度并有效增強(qiáng)了算法的分類質(zhì)量。雖然這些方法均取得85%以上的識(shí)別準(zhǔn)確率,但是本課題在研究中草藥植物葉片分類過(guò)程中,借助人工智能算法的優(yōu)勢(shì),開展基于深度神經(jīng)網(wǎng)絡(luò)的圖像分類實(shí)驗(yàn),進(jìn)一步提高識(shí)別準(zhǔn)確率。在收集數(shù)據(jù)集時(shí)發(fā)現(xiàn)樣本較小,訓(xùn)練的準(zhǔn)確率較低,為此對(duì)原始樣本進(jìn)行了數(shù)據(jù)增擴(kuò),將樣本容量提升4倍,構(gòu)建了新的數(shù)據(jù)集。此外,對(duì)原始AlexNet模型進(jìn)行了改進(jìn),形成了AlexNet_En模型,該模型強(qiáng)化了特征提取能力,從而提高訓(xùn)練的準(zhǔn)確率。為了驗(yàn)證數(shù)據(jù)增擴(kuò)和AlexNet_En模型的有效性,開展了4組實(shí)驗(yàn)。
CNN[6]是一種多層網(wǎng)絡(luò)模型,是深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型。這種網(wǎng)絡(luò)是為識(shí)別二維形狀而特殊設(shè)計(jì)的一個(gè)前饋神經(jīng)網(wǎng)絡(luò),對(duì)平移、比例縮放、傾斜或者其他形式的變形具有高度不變性。圖1所示為一幅二維圖的卷積過(guò)程。
局部鄰域池化操作和經(jīng)過(guò)訓(xùn)練的過(guò)濾器在輸入的圖片上交替作用,進(jìn)而輸出一系列日益復(fù)雜的特征[7]。CNN是對(duì)BP神經(jīng)網(wǎng)絡(luò)的一種優(yōu)化和改進(jìn),區(qū)別于BP神經(jīng)網(wǎng)絡(luò)的全連接,CNN采用層與層間的局部連接,這種連接方式被命名為局部感受野。從輸入層開始,之后每層都接收上一層的輸入,一直到輸出。整個(gè)過(guò)程沒(méi)有反饋,而是用有向環(huán)圖表示。CNN在原始輸入中重用卷積運(yùn)算和局部池操作,從而使得到的特征圖越來(lái)越復(fù)雜。每個(gè)圖由多個(gè)神經(jīng)元構(gòu)成,多個(gè)圖構(gòu)成一個(gè)層。圖充當(dāng)過(guò)濾器的作用,同一圖的所有神經(jīng)元共用被稱為卷積核的特征,又被命名為權(quán)重。針對(duì)該特征計(jì)算輸入圖像的卷積值,具有最大值的區(qū)域與特征匹配,從而得到合適的特征,并將該特征輸入到下一層結(jié)構(gòu)中。圖2展示了一個(gè)完整的CNN框架。
圖1 CNN卷積過(guò)程
圖2 CNN框架
在查閱文獻(xiàn)過(guò)程中發(fā)現(xiàn)AlexNet由8層結(jié)構(gòu)組成,在圖像分類上有自身較為出色的優(yōu)勢(shì)[8]。它是由Krizhevsky 等[9]創(chuàng)造并奪得2012 年ImageNet 比賽的冠軍,將ImageNet 的識(shí)別準(zhǔn)確率提高了一倍多。AlexNet的具體結(jié)構(gòu)如圖3所示。
圖3 AlexNet網(wǎng)絡(luò)結(jié)構(gòu)圖
數(shù)據(jù)源輸入格式為227×227×3,227表示輸入圖像的寬和高,3表示數(shù)據(jù)源為三通道RGB模式,因此支持常用格式的彩色圖片,無(wú)需對(duì)采集的原始數(shù)據(jù)源進(jìn)行額外的格式裁剪。本研究數(shù)據(jù)集均為JPG格式彩色圖像。前兩層計(jì)算過(guò)程均為卷積、ReLU、最大池化及歸一化。第二層輸出的結(jié)果經(jīng)過(guò)256個(gè)特征圖進(jìn)行卷積操作,其中kernel_size為5、stride為1,其余參數(shù)同第一層。第三、第四層只進(jìn)行了卷積和Re-LU操作。第五層同第一層的過(guò)程類似,區(qū)別在于沒(méi)經(jīng)過(guò)歸一化處理。將第五層結(jié)果轉(zhuǎn)換為長(zhǎng)向量,輸入到使用了三層全連接結(jié)構(gòu)的傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中,其中前兩個(gè)全連接層的kernel都為4 096,最后一層生成1 000個(gè)節(jié)點(diǎn),運(yùn)用Softmax回歸函數(shù)即可得到分類值[10]。
文獻(xiàn)[11]發(fā)現(xiàn)原AlexNet模型的第三層和第四層特征提取的能力最強(qiáng),第四層的分類效果略優(yōu)于第三層。為了提高分類的精確度,對(duì)模型的改進(jìn)和優(yōu)化重點(diǎn)集中在這兩層。經(jīng)過(guò)多次實(shí)驗(yàn)、反復(fù)探索,發(fā)現(xiàn)如果在第四層之后插入一層,即為新的第五層,如圖4虛線框所示。該層與原第四層結(jié)構(gòu)一致,由于增加了卷積操作,過(guò)濾出了更多的有效特征,因此對(duì)特征能夠進(jìn)行更精確的提取。新模型訓(xùn)練后的分類精確度要優(yōu)于原AlexNet模型,改進(jìn)后的模型命名為AlexNet_En,圖4為AlexNet_En模型的結(jié)構(gòu)圖。
圖4 AlexNet_En網(wǎng)絡(luò)結(jié)構(gòu)圖
圖4結(jié)構(gòu)中除第5層(L5)外其余各層工作流程已在2.2節(jié)詳細(xì)描述了。L5層卷積核大小為3×3,數(shù)量192×2=384個(gè),步長(zhǎng)為1,激活函數(shù)為ReLU。輸入特征圖像先擴(kuò)展一個(gè)像素,即大小15×15。輸出特征圖像大小為(15-3)/1+1=13,即13×13×384。
本研究通過(guò)python爬蟲算法爬取百度圖片(http://image.baidu.com/)中關(guān)鍵字為“蒼耳”(xanthium sibiricum)、“金銀花”(honeysuckle)、“薄荷”(mint)、“藿香”(patchouli)、“白花蛇舌草”(hedyotis diffusa)共 5類中藥植物圖片,每類挑選其中600張,共3 000張圖片組成數(shù)據(jù)集,其中2 400張作為訓(xùn)練集,300張作為驗(yàn)證集,300張作為測(cè)試集,各占總圖像數(shù)量的80%、10%、10%,將該數(shù)據(jù)集命名為HERB3K。為了解決數(shù)據(jù)集HERB3K樣本數(shù)量較少可能影響訓(xùn)練的準(zhǔn)確率問(wèn)題,擬采用以下3種方法對(duì)數(shù)據(jù)集HERB3K進(jìn)行數(shù)據(jù)增擴(kuò)。
如圖5所示,若求原始點(diǎn)(x0,y0)的水平鏡像點(diǎn)(x1,y1),根據(jù)圖5所示坐標(biāo)關(guān)系可得:
因此以矩陣形式表示為
圖5 水平鏡像原理圖
圖6 旋轉(zhuǎn)原理圖
根據(jù)圖6原理,若點(diǎn)A0(x0,y0)旋轉(zhuǎn)θ到點(diǎn)A(x,y),半徑為r,原始圖像的點(diǎn)A0(x0,y0)的坐標(biāo)為
旋轉(zhuǎn)到新位置A(x,y)的坐標(biāo)為
用矩陣表示:
此例為順時(shí)針旋轉(zhuǎn)θ,若逆時(shí)針旋轉(zhuǎn)只需將θ=-θ即可。
關(guān)于圖像增噪有許多算法可以實(shí)現(xiàn),本研究采用加性零均值高斯噪聲方法為圖像增加相應(yīng)的噪點(diǎn)。增噪的方式是為圖像上每個(gè)點(diǎn)的灰度值加上一個(gè)噪聲值,噪聲值的產(chǎn)生方式是使用Box-Muller算法生成高斯噪聲。Box-Muller算法是以兩組獨(dú)立的在(0,1]區(qū)間均勻分布的隨機(jī)數(shù)U和V來(lái)生成兩組獨(dú)立的標(biāo)準(zhǔn)常態(tài)分布隨機(jī)變量X和Y:X=-2lnUcos(2πV),Y=-2lnUsin(2πV)。圖7所示即為使用Box-Muller算法進(jìn)行增噪處理后的金銀花圖片。
圖7 某一金銀花原始圖片及經(jīng)增噪處理后的圖片
經(jīng)過(guò)上述3種方法擴(kuò)增后的數(shù)據(jù)集樣本容量達(dá)到12 000張,其中9 600張作為訓(xùn)練集,1 200張作為驗(yàn)證集,1 200張作為測(cè)試集,各占總圖像數(shù)量的80%、10%、10%,將該數(shù)據(jù)集命名為HERB12K。
實(shí)驗(yàn)基于Caffe 平臺(tái)搭建,Caffe 是一款基于C++/CUDA,支持命令行、Matlab 和Python 接口的深度學(xué)習(xí)框架,該框架利用MKL、OpenBLAS、cuBLAS等矩陣運(yùn)算庫(kù)加速計(jì)算、同時(shí)支持GPU 加速,具有例程腳本豐富、入門快等特點(diǎn)。實(shí)驗(yàn)軟硬件環(huán)境為Mac OS 操作系統(tǒng)、Intel Core i5 1.6 G CPU、8 G 內(nèi)存。在不考慮訓(xùn)練時(shí)間因素的前提下,開展表1所列4組實(shí)驗(yàn)。
表1 實(shí)驗(yàn)分組及各組設(shè)置信息
需要注意的是,默認(rèn)的AlexNet模型使用的是1 000類的ImageNet數(shù)據(jù)集,而本研究只采集了5種中草藥圖像,因此需要修改每組實(shí)驗(yàn)?zāi)P蛥?shù)num_output=5。此外,在訓(xùn)練過(guò)程中多次測(cè)試發(fā)現(xiàn)每組進(jìn)行了300次左右迭代后準(zhǔn)確率及損失值基本趨于平穩(wěn),因此實(shí)驗(yàn)三、實(shí)驗(yàn)四只分析了前300次迭代過(guò)程,實(shí)驗(yàn)一、實(shí)驗(yàn)二分析了完整的1 000次迭代過(guò)程。圖8~11所示為4組實(shí)驗(yàn)過(guò)程中的損失值及準(zhǔn)確率變化曲線。
圖8 實(shí)驗(yàn)一訓(xùn)練過(guò)程
圖9 實(shí)驗(yàn)二訓(xùn)練過(guò)程
圖10 實(shí)驗(yàn)三訓(xùn)練過(guò)程
圖11 實(shí)驗(yàn)四訓(xùn)練過(guò)程
實(shí)驗(yàn)過(guò)程可以將4組實(shí)驗(yàn)再分成兩類:實(shí)驗(yàn)一、實(shí)驗(yàn)三及實(shí)驗(yàn)二、實(shí)驗(yàn)四驗(yàn)證數(shù)據(jù)增擴(kuò)對(duì)于訓(xùn)練結(jié)果的影響;實(shí)驗(yàn)一、實(shí)驗(yàn)二及實(shí)驗(yàn)三、實(shí)驗(yàn)四驗(yàn)證改進(jìn)后的AlexNet模型對(duì)于訓(xùn)練結(jié)果的影響。各組準(zhǔn)確率和損失值統(tǒng)計(jì)結(jié)果如表2所示。
表2 準(zhǔn)確率和損失統(tǒng)計(jì)表
從表2 可以發(fā)現(xiàn),數(shù)據(jù)增擴(kuò)確實(shí)能提高訓(xùn)練的準(zhǔn)確率。由實(shí)驗(yàn)一的62.5%到實(shí)驗(yàn)三的87.5%、以及實(shí)驗(yàn)二的90%到實(shí)驗(yàn)四的94%,均可驗(yàn)證。其次,在改進(jìn)的AlexNet 模型上數(shù)據(jù)增擴(kuò)帶來(lái)的訓(xùn)練準(zhǔn)確率提高幅度沒(méi)有原始AlexNet模型下數(shù)據(jù)增擴(kuò)帶來(lái)的訓(xùn)練準(zhǔn)確率提高幅度大。實(shí)驗(yàn)一的62.5%到實(shí)驗(yàn)三的87.5%提高了40%,而實(shí)驗(yàn)二的90%到實(shí)驗(yàn)四的94%僅提高4.4%。另外,由實(shí)驗(yàn)二、實(shí)驗(yàn)四的準(zhǔn)確率分別高于實(shí)驗(yàn)一、實(shí)驗(yàn)三的準(zhǔn)確率可以得出基于改進(jìn)的AlexNet 模型訓(xùn)練結(jié)果的準(zhǔn)確率普遍高于原AlexNet 模型。據(jù)此可以發(fā)現(xiàn),結(jié)合數(shù)據(jù)增擴(kuò)和改進(jìn)的AlexNet 模型能最大程度地提高圖像分類的準(zhǔn)確率。
此外通過(guò)與文獻(xiàn)[1]~文獻(xiàn)[5]中的方法相比,本文的方法也取得了較好的分類效果。各種方法識(shí)別率比較結(jié)果如表3所示。
表3 本文方法與其他文獻(xiàn)中方法識(shí)別準(zhǔn)確率比較
將改進(jìn)的AlexNet_En網(wǎng)絡(luò)模型及數(shù)據(jù)增擴(kuò)后的數(shù)據(jù)集與原始AlexNet網(wǎng)絡(luò)模型和原始數(shù)據(jù)集作對(duì)比和分析,確實(shí)展示出了較好的分類效果。我們也關(guān)注到,從損失值角度來(lái)看,改進(jìn)后的AlexNet模型損失值普遍高于原始AlexNet模型的損失值。改進(jìn)后的AlexNet_En模型的訓(xùn)練時(shí)間也比原始AlexNet模型訓(xùn)練時(shí)間長(zhǎng)。原因在于改進(jìn)后的AlexNet模型層數(shù)過(guò)多,復(fù)雜度較高,資源消耗量較大,對(duì)硬件要求較高。此外,隨著數(shù)據(jù)集增大,AlexNet_En對(duì)分類性能的提升幅度變小,而在HERB3K的小數(shù)據(jù)集上有較大幅度的準(zhǔn)確率提升,即存在過(guò)擬合問(wèn)題。這些都是今后模型改進(jìn)和提升的方向。
安慶師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2020年3期