韓 勇,蘭 杰,郭瑞瑤,邢聰穎,黃新杰,霍迎秋
(西北農(nóng)林科技大學(xué) 信息工程學(xué)院,陜西楊凌 712100)
中藥飲片是中藥材經(jīng)過切制、炮制后可直接用于臨床的中藥。中國(guó)中藥資源豐富、品種繁多。藥材識(shí)別是中藥配方及飲片研究的關(guān)鍵技術(shù)之一,可用于中藥鑒定、分類識(shí)別、質(zhì)量品質(zhì)統(tǒng)計(jì)等領(lǐng)域,對(duì)臨床應(yīng)用研究起重要作用,也能夠加快推動(dòng)智能醫(yī)療建設(shè),具有重要社會(huì)意義。很多中藥形態(tài)相似,導(dǎo)致鑒定和研究很困難。傳統(tǒng)的中草藥分類與質(zhì)量評(píng)估涉及到性狀鑒別和顯微鑒別,鑒別方式過于主觀,且鑒別效率偏低,無法滿足中醫(yī)中藥產(chǎn)業(yè)化發(fā)展的客觀需求[1-3]。
目前基于圖像處理與模式識(shí)別技術(shù)在中藥檢測(cè)中的應(yīng)用主要是從形狀、顏色和紋理中提取底層圖像特征[4-6]等分類方法進(jìn)行識(shí)別鑒定,陶歐等[5]采用了樸素貝葉斯和十折交叉驗(yàn)證方法,在中藥飲片的紋理特征基礎(chǔ)上進(jìn)行飲片辨識(shí)模型的構(gòu)建,具有一定的參考價(jià)值,但要先對(duì)每張圖像提取角二階矩、對(duì)比度、相關(guān)等紋理參數(shù);也有學(xué)者構(gòu)建綜合顏色特征向量用以進(jìn)行圖像識(shí)別[6-10],獲得了較好的識(shí)別結(jié)果,但是淺層特征易受環(huán)境因素影響,準(zhǔn)確度不高且存在偶然性。為了解決上述問題,可基于深度學(xué)習(xí)進(jìn)行圖像識(shí)別[11-14],以深度學(xué)習(xí)為手段,研究建立深度卷積神經(jīng)網(wǎng)絡(luò)模型來實(shí)現(xiàn)定位檢測(cè)、品種識(shí)別等功能;孫鑫等[15]利用卷積神經(jīng)網(wǎng)絡(luò)CNN對(duì)50種中藥共計(jì)2554張圖進(jìn)行訓(xùn)練和測(cè)試,達(dá)到了70%的平均識(shí)別精度,但是識(shí)別精度過低,無法投入實(shí)際使用。綜上所述,目前利用深度學(xué)習(xí)對(duì)中藥材飲片進(jìn)行識(shí)別的工作還仍在初級(jí)階段,僅有的研究中存在著識(shí)別精度不高、中藥種類數(shù)過少等問題,而對(duì)大量中藥飲片的精準(zhǔn)識(shí)別鮮有實(shí)現(xiàn);另外,圖像的識(shí)別環(huán)境過于簡(jiǎn)單,與現(xiàn)實(shí)場(chǎng)景中多個(gè)飲片相互重疊的圖像不符,因此缺乏實(shí)際應(yīng)用意義。
為了彌補(bǔ)上述不足,本試驗(yàn)建立對(duì)多種中藥直接進(jìn)行圖像識(shí)別的深度學(xué)習(xí)模型,提高識(shí)別率和實(shí)際可用性,可供藥檢部門、藥材公司和個(gè)人方便快捷地鑒別中藥,具有潛在的社會(huì)意義和經(jīng)濟(jì)意義。試驗(yàn)采集50種中藥飲片,共計(jì)15622張,構(gòu)建圖像數(shù)據(jù)集,以稠密網(wǎng)絡(luò)模型為基礎(chǔ)建立深度學(xué)習(xí)識(shí)別模型,以期實(shí)現(xiàn)中藥飲片圖像的有效識(shí)別。
在中醫(yī)飲片圖像識(shí)別的研究領(lǐng)域中,目前還尚未見到相關(guān)用于試驗(yàn)的數(shù)據(jù)集,因此很難在同一個(gè)標(biāo)準(zhǔn)下評(píng)估不同方法,為了解決上述問題,本次試驗(yàn)的數(shù)據(jù)集均由筆者所在團(tuán)隊(duì)在陜西省楊凌大寨衛(wèi)生院的中藥部進(jìn)行拍攝得到,共采集中藥類別50種。
拍攝均在白天正常日光下進(jìn)行,每一種的數(shù)目達(dá)到300 張以上,一共獲得圖像15 622張。圖像均在白色背景板下用2 400萬像素的手機(jī)相機(jī)拍攝,每張圖片包含的飲片數(shù)量、分辨率、大小、復(fù)雜程度、色彩不限。50種常見中藥材名稱及其圖像數(shù)量如表1所示。
其中,將數(shù)據(jù)集按照7∶1.5∶1.5的比例劃分成訓(xùn)練集、驗(yàn)證集和測(cè)試集,其中2 340張用來測(cè)試,其余圖像用來訓(xùn)練。在性能評(píng)估中使用所有的類別。對(duì)于飲片圖像的識(shí)別問題,將給出每一類的識(shí)別精度和所有類別的平均識(shí)別精度。圖1為部分?jǐn)?shù)據(jù)集的展示。
圖1 部分中藥圖像Fig.1 Some slices of traditional Chinese herbal medicine
1.2.1 DenseNet-BC模型 選取傳統(tǒng)稠密神經(jīng)網(wǎng)絡(luò)DenseNet為試驗(yàn)?zāi)P?。DenseNet由密集連接塊、過渡層、池化層、卷積層以及全連接層組成,具有網(wǎng)絡(luò)窄,參數(shù)少的特點(diǎn),從而使得特征和梯度的傳遞更加有效。
DenseNet根據(jù)是否包含瓶頸層和壓縮層又分為以下三類:DenseNet-B(包含瓶頸層)、DenseNet-C(包含壓縮層)以及DenseNet-BC(既包含瓶頸層又包含壓縮層)。表2是DenseNet和DenseNet-BC在3 個(gè)數(shù)據(jù)集(C10,C100,SVHN)上的對(duì)比結(jié)果,由表中數(shù)據(jù)可知DenseNet-BC的網(wǎng)絡(luò)參數(shù)和相同深度的DenseNet相比減少很多,既可節(jié)省內(nèi)存,還能減少過擬合。
表2 在CIFAR和SVHN數(shù)據(jù)集上的錯(cuò)誤率Table 2 Error rate on CIFAR and SVHN datasets %
利用Keras框架選擇其中的DenseNet-201網(wǎng)絡(luò)進(jìn)行復(fù)現(xiàn)。數(shù)據(jù)經(jīng)過預(yù)處理后進(jìn)入卷積網(wǎng)絡(luò),網(wǎng)絡(luò)中包括1個(gè)初始卷積層,卷積核寬度為7,步長(zhǎng)為2;初始卷積層后是一個(gè)最大池化層,連接4個(gè)密集連接塊,塊與塊之間使用過渡層連接,共3層;數(shù)據(jù)在經(jīng)過最后一個(gè)密集連接塊后通過一個(gè)全局平均池化層將特征向量化,連接一個(gè)線性分類層完成分類。
表3為網(wǎng)絡(luò)模型結(jié)構(gòu)。網(wǎng)絡(luò)中的卷積層定義為3個(gè)連續(xù)操作的復(fù)合函數(shù):批量規(guī)范化處理,修正線性單元和核大小為1×1的卷積操作。稠密模塊是數(shù)個(gè)核大小1×1卷積層的卷積核組,這樣的卷積核組在4個(gè)稠密模塊中的數(shù)目分別為6,12,48和32,并且設(shè)置特征映射網(wǎng)絡(luò)的增長(zhǎng)速率k為32。每個(gè)稠密模塊中特征映射網(wǎng)絡(luò)的大小是不變的,只有數(shù)量上的變化,因此需要用過渡層來連接不同的塊。過渡層是由一個(gè)核大小為1×1的卷積層連接一個(gè)步長(zhǎng)為2×2的平均池化層組 成的。
表3 模型結(jié)構(gòu)Table 3 Model structure
1.2.2 丟棄法 由于全連接層參數(shù)過多會(huì)產(chǎn)生過擬合,為避免網(wǎng)絡(luò)的過擬合,結(jié)合本文數(shù)據(jù)集,在傳統(tǒng)網(wǎng)絡(luò)模型基礎(chǔ)上引入丟棄法,隨機(jī)將50%的元素置零,這樣每次被學(xué)習(xí)的特征有所不同,每個(gè)特征都可以對(duì)模型的預(yù)測(cè)有所貢獻(xiàn),同時(shí)也在訓(xùn)練時(shí)起到正則化的作用。在多層感知機(jī)中,假設(shè)其輸入層節(jié)點(diǎn)數(shù)為n,那么隱藏層節(jié)點(diǎn)數(shù)為n+1,故而隱藏層節(jié)點(diǎn)hi(i=1,2,……,n)的輸出值計(jì)算方法為:
hi=φ(x1w1i+…+xnwni+bi)
(1)
(2)
由于期望值E(εi)=1-p,因此:
(3)
即丟棄法不改變其輸入的期望值。
根據(jù)Keras框架建立卷積快、稠密塊和過渡層等模塊,在卷積模塊中主要進(jìn)行批量標(biāo)準(zhǔn)化層、利用ReLu()激活函數(shù)將一個(gè)節(jié)點(diǎn)的輸入信號(hào)轉(zhuǎn)換成一個(gè)輸出信號(hào)和卷積等操作;稠密模塊是卷積層的疊加,每一個(gè)卷積層都與其之上的同一個(gè)稠密模塊中的卷積層有相互鏈接;過渡層連接每個(gè)稠密模塊,并使用平均池化層進(jìn)行降維、特征壓縮和減少網(wǎng)絡(luò)復(fù)雜度。利用構(gòu)建的DenseNet-201模型分別在中藥材圖像測(cè)試數(shù)據(jù)集上進(jìn)行測(cè)試,并統(tǒng)計(jì)分析試驗(yàn)結(jié)果。模型的訓(xùn)練和測(cè)試流程如圖2所示。
圖2 模型訓(xùn)練和測(cè)試流程Fig.2 Model training and testing process
其中對(duì)數(shù)據(jù)集的預(yù)處理操作如下:首先把像素點(diǎn)的值除以255,使之為0~1,將圖片進(jìn)行歸一化處理,接著進(jìn)行水平或垂直投影變換,同時(shí)在長(zhǎng)寬兩個(gè)方向進(jìn)行50%的放縮操作,并在[0,30]度范圍內(nèi)進(jìn)行隨機(jī)角度旋轉(zhuǎn),隨機(jī)對(duì)圖片執(zhí)行水平翻轉(zhuǎn)操作,擴(kuò)充訓(xùn)練集。對(duì)測(cè)試集只進(jìn)行歸一化操作。
采用批量訓(xùn)練的方法將訓(xùn)練集與測(cè)試集分為多個(gè)批次,初始學(xué)習(xí)率設(shè)為0.000 5,采用Adam優(yōu)化器,當(dāng)驗(yàn)證集上的準(zhǔn)確率停止提升3個(gè)迭代次數(shù)時(shí),降低學(xué)習(xí)速率,其中Adam方法能夠在訓(xùn)練過程中自適應(yīng)調(diào)整學(xué)習(xí)率,很適合高維度和大數(shù)據(jù)集得到非凸優(yōu)化,一共迭代50個(gè)周期。由于GPU的特性,批量大小(batch size)最好選用8、16、32、64等,batch size太小會(huì)導(dǎo)致網(wǎng)絡(luò)收斂不穩(wěn)定,收斂慢,過大會(huì)增加花費(fèi)的時(shí)間,對(duì)參數(shù)的修正也就顯得更加緩慢,同時(shí)后期訓(xùn)練效果不顯著。綜上,本試驗(yàn)將batch size分別設(shè)為8、16、32,依次進(jìn)行試驗(yàn),找出與本數(shù)據(jù)集適宜的批量 大小。
不同批量大小的模型在驗(yàn)證集上的準(zhǔn)確率與迭代次數(shù)的關(guān)系如圖3所示。雖然穩(wěn)定后的模型準(zhǔn)確率均在97%左右,但收斂時(shí)間大有差別??梢钥吹絙atch size為16時(shí),模型在第20個(gè)迭代之后就達(dá)到收斂,模型穩(wěn)定性最好,準(zhǔn)確率穩(wěn)定在在90%以上;其次是batch size為8時(shí),模型迭代30次之后達(dá)到穩(wěn)定;而當(dāng)batch size為32時(shí),模型驗(yàn)證率起伏較大,收斂相對(duì)比較慢,迭代40個(gè)周期才逐步收斂。
圖3 不同批量大小下的識(shí)別率與迭代次數(shù)Fig.3 Accurate rate and iteration times under different batch sizes
采用交叉驗(yàn)證算法驗(yàn)證魯棒性,模型在驗(yàn)證集上的損失函數(shù)變化如圖4所示。從3個(gè)曲線可以看出,在迭代的前20次內(nèi)損失值都處于振蕩狀態(tài),但當(dāng)批量為16時(shí),損失值在第20次迭代后開始迅速下降,并維持在很低水平,在0.1左右震蕩,而其余兩個(gè)模型先后在第25次迭代和第30次迭代后逐步到達(dá)穩(wěn)定狀態(tài)。從這里也可得出批量設(shè)為16時(shí),模型擁有較強(qiáng)的魯棒性。
圖4 不同批量下?lián)p失值和迭代次數(shù)Fig.4 Loss and iteration times under different batch sizes
利用這3 種模型分別對(duì)50種中藥測(cè)試集進(jìn)行測(cè)試分類,測(cè)試結(jié)果如圖5所示,可見只改變批量時(shí),模型的分類性能很接近,只是在某些中藥材上的識(shí)別率略有差別。對(duì)于每一種模型,識(shí)別率在85%以上的藥材均占到45種,占到類別總數(shù)的90%,最高識(shí)別率可達(dá)100%。
圖5 不同批量大小下50種中藥的測(cè)試結(jié)果Fig.5 Test results of 50 kinds of Chinese herbal medicine slices under different batch sizes
由表4可見,批量大小對(duì)試驗(yàn)結(jié)果有一定的影響。對(duì)于數(shù)據(jù)集數(shù)目龐大的試驗(yàn),一次性加載所有數(shù)據(jù)是不可行的,但如果批量大小設(shè)置的太小,模型又很難達(dá)到收斂。在合理的范圍內(nèi),增加批量大小既可以增加內(nèi)存利用率又可以加快數(shù)據(jù)處理速度,但增大到一定程度時(shí),其確定的下降方向已經(jīng)基本不再變化,且對(duì)參數(shù)的修正也就顯得更加緩慢。batch size為16時(shí)的平均識(shí)別準(zhǔn)確率達(dá)到95.21%,表現(xiàn)出最優(yōu)秀的識(shí)別效果,而增大到32時(shí),識(shí)別率與之相差無幾,但卻占用大量的內(nèi)存空間。
表4 不同批量下的識(shí)別率Table 4 Recognition rate under different batch sizes
為了進(jìn)一步探索試驗(yàn)結(jié)果,在識(shí)別率最高的試驗(yàn)2的基礎(chǔ)上進(jìn)行深入研究,以最佳模型(即批量大小設(shè)置為16,初始學(xué)習(xí)率為0.001,迭代次數(shù)為50)對(duì)50種中藥進(jìn)行識(shí)別分類,每個(gè)類別上的識(shí)別率如表5所示,結(jié)果表明此模型在23種藥材上的識(shí)別精度均達(dá)到100%,其中識(shí)別率在90%以上的種類達(dá)到43種,占總類數(shù)的86%;平均識(shí)別率達(dá)到95.21%,表現(xiàn)出優(yōu)異的性能,可以精準(zhǔn)識(shí)別絕大多數(shù)的中藥飲片。因此,手動(dòng)搭建的稠密神經(jīng)網(wǎng)絡(luò)在加入丟棄法防止過擬合的情況下,不僅在識(shí)別精度上保持著較好的準(zhǔn)確性,而且在多個(gè)藥片環(huán)境下也具有良好的魯棒性。
表5 每種藥材的識(shí)別率Table 5 Recognition rate of eachmedicinal material
盡管模型取得不錯(cuò)的效果,但是試驗(yàn)中也出現(xiàn)一些低質(zhì)量的識(shí)別結(jié)果。其中在類別21雞血藤上和類別36的識(shí)別率很低,只有44.4%和70%,如圖6、圖7所示。具體原因可能是該類中藥片拍攝問題,導(dǎo)致圖像模糊,紋理細(xì)節(jié)不清晰,另外選擇的白色背景板在陽光下呈透明狀態(tài),板上的劃痕增加了背景復(fù)雜度,影響了識(shí)別率。另一個(gè)重要原因是類別中同類型的樣本紋理特征差異較大,紋理特征和顏色不同。
圖7 檳榔片F(xiàn)ig.7 Pictures of betel nut
為了驗(yàn)證該模型和次數(shù)據(jù)集的擬合度,將同樣的數(shù)據(jù)集置于ResNet網(wǎng)絡(luò)、Wide_resnet101_2網(wǎng)絡(luò)和Densenet121網(wǎng)絡(luò)上分別進(jìn)行對(duì)比試驗(yàn),試驗(yàn)條件完全相同的情況下,試驗(yàn)結(jié)果如表6 所示。
表6 模型驗(yàn)證結(jié)果Table 6 Validation results of model
由表6可知,該數(shù)據(jù)集在殘差網(wǎng)絡(luò)模型下的擬合度并不優(yōu)秀,識(shí)別準(zhǔn)確率也比稠密網(wǎng)絡(luò)低 3.81%至10.05%。同時(shí)從該模型在驗(yàn)證集上的識(shí)別率和損失值皆在20個(gè)迭代左右就穩(wěn)定在97%和0.1左右,綜上可得出該模型與預(yù)測(cè)值更加接近,有較好的泛化能力。
為解決中藥飲片識(shí)別困難、效率低的問題,本試驗(yàn)組織研究人員經(jīng)過多次、長(zhǎng)時(shí)間的工作,構(gòu)建了包含常見的50種中藥片的數(shù)據(jù)集,每種藥材均包含300張以上圖像,其中既有單個(gè)飲片圖像也有多個(gè)飲片重疊圖像,模擬了真實(shí)的實(shí)際應(yīng)用環(huán)境?;谏疃葘W(xué)習(xí)技術(shù)建立DenseNet-201中藥飲片識(shí)別模型,并引入“丟棄法”、“控制變量法”優(yōu)化模型,防止模型過擬合,提高模型識(shí)別效果。試驗(yàn)結(jié)果表明該模型能夠?qū)ΤR姷?0種中藥材進(jìn)行有效分類和識(shí)別,其中有43種中藥識(shí)別率90%以上,最高識(shí)別率為95.21%,因此基于深度學(xué)習(xí)的中藥飲片識(shí)別方法能夠快速、高效進(jìn)行中藥飲片識(shí)別,具有較好的實(shí)際應(yīng)用價(jià)值。