張志光 張永健 宋衛(wèi)虎



摘要:為了實現(xiàn)種類繁多的中草藥識別,提升中草藥識別效率,朝著快速、便捷、高效的方向發(fā)展,提出了改進(jìn)Efficientnet卷積神經(jīng)網(wǎng)絡(luò)的中草藥識別技術(shù)。首先選用EfficientNet-b0作為中草藥特征提取網(wǎng)絡(luò),刪減網(wǎng)絡(luò)結(jié)構(gòu),并加入RFB模塊和CBAM注意力機(jī)制,最后結(jié)合微信小程序,實現(xiàn)中草藥在線識別技術(shù)。改進(jìn)后的EfficientNet-b0相比于原網(wǎng)絡(luò),準(zhǔn)確率從96.83%提升至97.31%。研究結(jié)果表明,該方法有助于中草藥識別朝著更快、更準(zhǔn)確的方法發(fā)展,并且結(jié)合微信小程序,實現(xiàn)了隨走隨用,方便檢測。
關(guān)鍵詞: EfficientNet;中草藥;卷積神經(jīng)網(wǎng)絡(luò);圖像識別
中圖分類號:TP391? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2022)16-0068-04
中草藥歷經(jīng)幾千年的傳承,其獨特的養(yǎng)生保健優(yōu)勢備受世界矚目。但中草藥種類繁多,對非專業(yè)人士來說難以識別,在使用時,也會因為不了解其主治功能等,造成錯誤食用。因此實現(xiàn)一種能在線中草藥識別技術(shù),并包括相關(guān)介紹說明,具有重大的應(yīng)用價值和研究意義。
傳統(tǒng)的中草藥識別方法多憑借專業(yè)人士的主觀感覺進(jìn)行識別[1],此類方法不僅消耗人力、財力,而且識別效率低,受主觀影響極大。近些年,基于圖像識別的中草藥鑒別方法可分為兩大類。一類是基于物理或化學(xué)特征的識別方法。如2002年,Yibo Li等采用監(jiān)督模糊ART神經(jīng)網(wǎng)絡(luò)實現(xiàn)了基于高效液相色譜的中草藥識別[2]。2009年,陳艷江等將支持向量機(jī)理論應(yīng)用于中草藥太赫茲光譜識別[3],通過傅里葉變換得到吸收系數(shù)數(shù)據(jù),最后使用支持向量機(jī)方法進(jìn)行分類識別。此類中草藥識別方法,過程復(fù)雜,識別效率低,難以應(yīng)用于實際。另一類是基于中草藥圖像特征的識別方法。隨著人工智能的快速發(fā)展,AlexNet[4]、VGG[5]、GoogLeNet[6]、ResNet[7]、ShffuleNet[8]、Senet[9]等優(yōu)秀網(wǎng)絡(luò)模型相繼問世,此類深度學(xué)習(xí)方法在中草藥識別方面大放異彩。如2017年,孫鑫等人基于VGG16網(wǎng)絡(luò)對中草藥飲片圖像進(jìn)行識別,測試了50種中草藥[10]。2020年,黃方亮等人基于AlexNet深度學(xué)習(xí)模型對5類中草藥植物進(jìn)行分類[11]。相比基于物理或化學(xué)的檢測方法,深度學(xué)習(xí)中草藥圖像識別方法更加高效。據(jù)文獻(xiàn)統(tǒng)計可知,目前中草藥在線識別技術(shù)還在發(fā)展階段,對實現(xiàn)不同復(fù)雜背景和光照下的準(zhǔn)確識別,仍是當(dāng)前研究的難題。卷積神經(jīng)網(wǎng)絡(luò)是近幾年興起的圖像識別技術(shù),相比于傳統(tǒng)的識別技術(shù),更加高效、準(zhǔn)確,能解決不同復(fù)雜背景的圖像識別問題。其中EfficientNet[12]系列網(wǎng)絡(luò)于2019年提出,并在當(dāng)年ImageNet競賽上遠(yuǎn)超第二名,因此本文以EfficientNet網(wǎng)絡(luò)為中草藥識別的研究對象,主要貢獻(xiàn)如下:
1)刪減原EfficientNet-b0中部分網(wǎng)絡(luò)模塊,減少卷積神經(jīng)網(wǎng)絡(luò)的運算量,縮短模型訓(xùn)練時間。
2)加入RFB模塊和CBAM注意力機(jī)制模塊,提升卷積神經(jīng)網(wǎng)絡(luò)模型對不同尺度中草藥的識別。
3)基于改進(jìn)的EfficientNet-b0網(wǎng)絡(luò),開發(fā)一款中草藥在線識別檢測小程序,實現(xiàn)隨走隨用,幫助用戶查看各中草藥相關(guān)介紹。
1 材料
計算機(jī)硬件環(huán)境為Inter Core i7-9700F型中央處理器(CPU)和NVIDIA GeForce RTX 2080Ti型顯卡,在Linux操作系統(tǒng)上進(jìn)行訓(xùn)練,采用Pytorch1.7.1框架搭建計算環(huán)境,CUDA的版本為10.1。
實驗樣本為16種中草藥圖像,包括人參、黨參、白豆蔻、肉豆蔻、太子參、丹參、當(dāng)歸、冬蟲夏草、赤小豆、西洋參、黃芪、枸杞、甘草、麥冬、五味子、鹿茸等,以上中草藥圖像均由網(wǎng)絡(luò)爬蟲獲得。
2 方法
2.1 圖像數(shù)據(jù)集制作
爬蟲獲得的16種中草藥常見且常用,具有代表性。以各自的中草藥名稱作為關(guān)鍵詞,通過爬蟲依次對以上各中草藥圖像進(jìn)行搜索,各篩選出1000張圖像作為實驗樣本。這些實驗樣本均是互聯(lián)網(wǎng)上真實存在的圖像,圖像的背景各異兼具隨機(jī)性和復(fù)雜性,中草藥背景的復(fù)雜,更加符合現(xiàn)實生活中的實際情況。網(wǎng)絡(luò)爬蟲獲得的圖像樣本尺寸不一,為了提高圖像的有效識別區(qū)域,筆者首先進(jìn)行圖像樣本預(yù)處理,將圖像裁剪為正方形,調(diào)整圖像的尺寸為224×224。預(yù)處理后中草藥圖像數(shù)據(jù)集中的部分圖像如圖1所示。
本實驗中每類中草藥有1000張圖像,共16000張,劃分訓(xùn)練集與測試集比例為7:3,訓(xùn)練集總數(shù)共11200張,測試集總數(shù)共4800張,在訓(xùn)練過程中,為了方便實驗樣本輸入卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,創(chuàng)建了train.txt文本,如圖2所示。其中,train.txt文本用于保存每張訓(xùn)練集圖像樣本的存放路徑和標(biāo)簽,測試集文本的制作相同。
2.2 基于Pytorch框架改進(jìn)的EfficientNet
2.2.1 EfficientNet網(wǎng)絡(luò)結(jié)構(gòu)分析
本文采用EfficientNet作為特征提取的網(wǎng)絡(luò)模型,該模型高效、輕量。在識別準(zhǔn)確率上,它擊敗了當(dāng)時識別準(zhǔn)確率最高的Gpipe模型,在ImageNet數(shù)據(jù)集上獲得84.3%的Top1精度。并且在參數(shù)量上,相比Gpipe模型縮小了8.4倍[13]。
EfficientNet網(wǎng)絡(luò)的核心是提出了一種復(fù)合縮放方法,使用一個復(fù)合系數(shù)φ統(tǒng)一縮放網(wǎng)絡(luò)的深度、寬度和分辨率:
[depth:d=αφ]
[width : w = βφ]
[resolution : r = γφ]? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
[α ·β2 ·γ2≈2]
[α≥1,β≥1,γ≥1]
其中(α,β,γ)是需要求解的一組參數(shù),分別表示深度、寬度和分別率。深度為卷積神經(jīng)網(wǎng)絡(luò)的layer(層數(shù)),寬度為網(wǎng)絡(luò)在訓(xùn)練過程中的channel(通道數(shù)),分辨率為網(wǎng)絡(luò)訓(xùn)練過程中的feature map(圖像特征)。φ值是一個指定的系數(shù),控制有多少資源用于模型縮放,而α、β、γ指定如何將這些額外的資源分配給網(wǎng)絡(luò)的深度、寬度和分別率。當(dāng)φ值為1,可用資源增加2倍時,通過網(wǎng)格搜索計算出最優(yōu)的α、β、γ,從而得到了EfficientNet-b0。在固定α、β、γ值后,增大φ值,得到了EfficientNet-b1,EfficientNet-b2,…,EfficientNet-b7。
EfficientNet網(wǎng)絡(luò)共有8個模型,分別對應(yīng)不同的輸入圖像尺寸,根據(jù)中草藥圖像的尺寸選擇EfficientNet-b0作為提取特征網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如圖3(a)所示。
EfficientNet-b0主要由16個大結(jié)構(gòu)塊(MBConv)組成。如圖3(b)所示,MBConv的結(jié)構(gòu)首先是1×1的卷積(Conv),用作升維,然后再通過標(biāo)準(zhǔn)化(BN)和激活函數(shù)(Swish)。接著是深度可分離卷積進(jìn)行提取特征操作,輸出結(jié)果同樣需要經(jīng)過BN和Swish。然后經(jīng)過SENet注意力機(jī)制后,再經(jīng)過一個1×1的卷積,這里1×1卷積的作用是降維,接著經(jīng)過BN和Dropout。最后輸出的特征與輸入MBConv的特征進(jìn)行融合,將較深層的特征信息,通過短接邊,與較淺層的圖像特征相融合,達(dá)到更好的中草藥圖像特征提取。
2.2.2 改進(jìn)的EfficientNet-b0網(wǎng)絡(luò)模型設(shè)計
針對EffcientNet-b0的網(wǎng)絡(luò)特點,本文對其進(jìn)行了以下改進(jìn):
1)簡化原有EfficientNet-b0網(wǎng)絡(luò)
原EfficientNet-b0由16個大結(jié)構(gòu)塊組成,運算量大,運算速度較慢。本文對EfficientNet-b0中影響較小的第13,14個大結(jié)構(gòu)塊進(jìn)行刪除,減少運算量,縮短訓(xùn)練速度。
2)添加注意力機(jī)制(CBAM)
如圖4所示是CBAM(Convolutional Block Attention Module)注意力機(jī)制示意圖,它將注意力過程分為兩個獨立部分,通道注意力機(jī)制模塊CAM (Channel Attention Module)和空間注意力機(jī)制模塊SAM (Spatial Attention Module)。這不僅節(jié)約了參數(shù)和計算力,而且保證了即插即用的模塊集成到現(xiàn)成的網(wǎng)絡(luò)中去。相比于EfficientNet網(wǎng)絡(luò)中只有通道注意力機(jī)制的SeNet,具有更好的效果[14]。
3)添加RFB模塊
如圖5所示,是RFB模塊的結(jié)構(gòu)示意圖,該結(jié)構(gòu)借鑒了Inception結(jié)構(gòu),都采用了1×1的卷積,用于減少計算量和跨通道的信息融合。RFB主要不同點在于引入了空洞卷積,擴(kuò)張率dilation可增大感受野,相比普通卷積,可捕獲多尺度上下文信息,最后通過特征融合輸出。
結(jié)合以上3點,改進(jìn)后的EfficientNet-B0網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖6所示。
3 實驗
3.1 基于改進(jìn)EfficientNet-b0的中草藥識別實驗
3.1.1 改進(jìn)的EfficientNet-b0與其他網(wǎng)絡(luò)模型對比
本實驗輸入卷積神經(jīng)網(wǎng)絡(luò)測試的中草藥圖像尺寸為224×224,通過改進(jìn)前后的EfficientNet-b0網(wǎng)絡(luò)模型,與其他遷移學(xué)習(xí)網(wǎng)絡(luò)模型結(jié)果進(jìn)行了對比,設(shè)置初始學(xué)習(xí)率lr為0.0003和0.00003,batch_size為64的情況下,訓(xùn)練epoch為50輪,各網(wǎng)絡(luò)模型的超參數(shù)設(shè)置及識別結(jié)果如表1所示:
測得改進(jìn)后的EfficientNet-b0網(wǎng)絡(luò)在初始學(xué)習(xí)率lr為0.0003,batch_size為64時,識別效果最好,相比于原EfficientNet-b0識別精確度從96.83%提升至97.31%。為了評估模型的識別結(jié)果可信度,采用AUC作為評估模型好壞的指標(biāo)。
準(zhǔn)確率和AUC值的計算都可以使用混淆矩陣,如圖7所示是混淆矩陣示意圖。
根據(jù)混淆矩陣可得到用于評價指標(biāo)的計算公式如下:
[TPR=TPTP+FN]
[FPR=FPFP+TN]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
[Accuracy=TP+TNTP+FN+FP+TN]
TPR是指所有正樣本中預(yù)測為正的比例,F(xiàn)PR是指所有負(fù)樣本中預(yù)測為負(fù)的比例,準(zhǔn)確率Accuracy是由總的預(yù)測中預(yù)測為正的比例計算得到。以FPR為橫坐標(biāo),TPR為縱坐標(biāo)繪制得到的曲線稱為ROC曲線,該曲線與坐標(biāo)軸圍成的面積即為AUC值,AUC值越接近于1表明模型越可靠。改進(jìn)后的網(wǎng)絡(luò)模型與原網(wǎng)絡(luò)模型的AUC值均在0.95以上,因此識別結(jié)果可信度極高。
3.1.2 改進(jìn)算法在不同光照背景條件下實驗
為了驗證改進(jìn)后的算法性能,同時模擬真實應(yīng)用場景不同光照下的中草藥識別。對中草藥圖像進(jìn)行調(diào)節(jié)亮度,分別進(jìn)行增暗50%和增亮50%,來模擬在真實環(huán)境下的中草藥識別,由于真實環(huán)境中,光線的強(qiáng)弱并不是一成不變的,設(shè)置明暗與原始圖像的對比,更利于驗證改進(jìn)后的算法性能。如圖8所示,是不同亮度的中草藥圖像。
對亮度變換后的中草藥圖像數(shù)據(jù)集,分別在原EfficientNet-b0和改進(jìn)后的EfficientNet-b0測試,lr為0.0003,batch_size為64,訓(xùn)練50個epoch,測試結(jié)果如圖9所示。
改進(jìn)后的EfficientNet-b0,在亮度變暗50%和變亮50%后,識別準(zhǔn)確率仍高于原EfficientNet-b0。且識別準(zhǔn)確率處于較高的水平,有利于在不同亮度下的中草藥識別應(yīng)用。
3.2 中草藥在線識別系統(tǒng)設(shè)計
為了方便中草藥識別技術(shù)應(yīng)用于實際,給更多的人帶來快捷、方便、高效的體驗,同時了解中草藥的相關(guān)信息,防止錯誤食用。本文設(shè)計了一款中草藥在線識別系統(tǒng)。該系統(tǒng)部署在微信小程序端,做到不占內(nèi)存,隨用隨走。
中草藥在線識別具體應(yīng)用流程如圖10(a)所示。微信小程序調(diào)用攝像頭功能,將拍攝到的中草藥圖像數(shù)據(jù)發(fā)送給服務(wù)器,服務(wù)器利用Pytorch搭建本文改進(jìn)后的EfficientNet-b0網(wǎng)絡(luò)模型,將圖像分類進(jìn)行識別,識別結(jié)果再返回到微信小程序,完成中草藥在線識別檢測。
圖10(b)是微信小程序的識別頁面展示,需要用到的開發(fā)微信小程序開發(fā)語言包括WXML(WeiXin Mark Language微信標(biāo)記語言)、WXSS(WeiXin Style Sheet微信樣式表)、JS(JavaScript用戶交互語言)。該頁面上半部分,由微信小程序調(diào)用攝像頭組件組成。下半部分為接收服務(wù)器返回識別結(jié)果的文本信息。識別結(jié)果包括中藥的種類和中草藥的簡介,該功能在幫助識別中藥品種的同時,又對中草藥的各方面信息做了說明,有助于使用者更深入地了解中草藥知識,防止錯誤食用。
4 討論
本文利用人工智能和計算機(jī)視覺技術(shù),實現(xiàn)了對不同中草藥的識別。在實驗中,通過網(wǎng)絡(luò)收集了16種中草藥圖像,每類中草藥圖像各1000張,這些中草藥在日常生活中常見且常用,具有代表性。改進(jìn)后的EfficientNet-b0模型,對比未改進(jìn)的網(wǎng)絡(luò)模型和傳統(tǒng)的遷移學(xué)習(xí)模型,識別準(zhǔn)確率從96.83%提升至97.31%,并且在不同亮度環(huán)境下,仍能保持算法性能的高效性。另外,開發(fā)了一款中草藥在線識別小程序,將中草藥識別技術(shù)應(yīng)用于實際生活。該系統(tǒng)在識別中草藥品種的同時,又對識別出的中草藥信息進(jìn)行擴(kuò)充,能夠幫助用戶更加方便、高效地了解中草藥相關(guān)知識,防止錯誤食用。
綜上所述,本文的研究方便人們對中草藥進(jìn)行識別,又有助于加強(qiáng)人們對中草藥的認(rèn)知,為中草藥快速無損檢測提供了新的有效途徑。
參考文獻(xiàn):
[1] 吳沖,譚超群,黃永亮,等.基于深度學(xué)習(xí)算法的川貝母、山楂及半夏飲片的智能鑒別[J].中國實驗方劑學(xué)雜志,2020,26(21):195-201.
[2] Li Y B,Huang X Y.Traditional Chinese medicine recognition based on FNN[C]// Beijing,China:Proceedings of International Conference on Machine Learning and Cybernetics. IEEE,2002:298-302.
[4] Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[J].Communications of the ACM,2017,60(6):84-90.
[5] Simonyan K,Zisserman A.Very deep convolutional networks for large-scale image recognition[EB/OL].[2021-05-10].[cs.CV].https://arxiv.org/abs/1409.1556
[6] Szegedy C,Liu W,Jia Y Q,et al.Going deeper with convolutions[C]// Boston,MA:2015 IEEE Conference on Computer Vision and Pattern Recognition.IEEE,2015:1-9.
[7] He K M,Zhang X Y,Ren S Q,et al.Deep residual learning for image recognition[C]// Las Vegas,NV,USA:2016 IEEE Conference on Computer Vision and Pattern Recognition.IEEE,2016:770-778.
[8] Zhang X Y,Zhou X Y,Lin M X,et al.ShuffleNet:an extremely efficient convolutional neural network for mobile devices[C]// Salt Lake City,UT,USA:2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. IEEE,2018:6848-6856.
[9] Hu J,Shen L,Sun G.Squeeze-and-excitation networks[C]// Salt Lake City,UT,USA:2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. IEEE,2018:7132-7141.
[10] 孫鑫,錢會南.基于深度卷積網(wǎng)絡(luò)的中藥飲片圖像識別[J].世界科學(xué)技術(shù)-中醫(yī)藥現(xiàn)代化,2017,19(2):218-222.
[11] 黃方亮,俞磊,沈同平,等.基于AlexNet深度學(xué)習(xí)模型的中草藥植物圖像分類研究與實現(xiàn)[J].齊魯工業(yè)大學(xué)學(xué)報,2020,34(2):44-49.
[12] Tan M X,Le Q V.EfficientNet:rethinking model scaling for convolutional neural networks[C]//International Conference on Machine Learning,2019:6105-6114.
[13] 孫旭豪,傅中添,嚴(yán)玲,等.EfficientNet在陰虛證眼象識別中的應(yīng)用研究[J].中醫(yī)藥信息,2020,37(3):29-34.
[14] Woo S,Park J,Lee J Y,et al.CBAM:convolutional block attention module[C]//Computer Vision – ECCV 2018,2018:1-17.
【通聯(lián)編輯:唐一東】