劉子涵,魏書(shū)偉,王新嬌,趙浩天,李康寧
(青島恒星科技學(xué)院信息工程學(xué)院,山東青島 266000)
中藥作為中華民族的瑰寶,是中華民族歷經(jīng)幾千年保留下來(lái)的珍貴經(jīng)驗(yàn),在時(shí)代的長(zhǎng)河中發(fā)揮的作用是功不可沒(méi)的。但由于中草藥種類繁多,屬于同一科的中草藥具有極高的相似性,導(dǎo)致錯(cuò)用和濫用的情況發(fā)生,危害身體健康。
經(jīng)過(guò)調(diào)查發(fā)現(xiàn),因?yàn)橹胁菟庪y以分辨的特性,導(dǎo)致中草藥的識(shí)別技術(shù)和文章并不常見(jiàn)。據(jù)現(xiàn)有的資料與情況分析,目前只有對(duì)植物進(jìn)行分類,而幾乎沒(méi)有對(duì)制成的中草藥成品識(shí)別。近幾年來(lái),深度學(xué)習(xí)技術(shù)發(fā)展迅速,在人工智能方面出現(xiàn)多優(yōu)秀的深度學(xué)習(xí)算 法,如LeNet[1](1998) 、AlexNet[2](2012) 、VGGNet[3](2014)、InceptionNet[4](2014)、ResNet[5]等優(yōu)良的卷積神經(jīng)網(wǎng)絡(luò)模型,如在2020 年王艷等人[6]利用AlexNet和YOLO 網(wǎng)絡(luò)對(duì)15 種中草藥進(jìn)行識(shí)別。在2022 年張志光等人[7]用改進(jìn)的EfficientNet-b0 作為中草藥特征提取網(wǎng)絡(luò)對(duì)16種中草藥進(jìn)行優(yōu)化,由此可以得出,使用深度學(xué)習(xí)作為本次實(shí)驗(yàn)識(shí)別和分類中草藥藥材具有極大的幫助,使用深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的相關(guān)技術(shù)制作一個(gè)能夠兼容微信的H5 模型,為對(duì)藥材了解不足的醫(yī)生和廣大人民群眾給予便利。項(xiàng)目的開(kāi)發(fā)是使用百度的EasyDL 平臺(tái)發(fā),該平臺(tái)支持使用少量的數(shù)據(jù)集訓(xùn)練,使用平臺(tái)所包含的主流算法去進(jìn)行訓(xùn)練,就能很快得到一個(gè)圖像分類或者物體檢測(cè)的模型,AutoDL Transfer(高精度算法)是百度EasyDL近幾年研發(fā)的一種高精度算法,是百度研發(fā)的AutoDL 技術(shù)之一,結(jié)合模型網(wǎng)絡(luò)結(jié)構(gòu)搜索、遷移學(xué)習(xí)技術(shù)、近30層可靈活調(diào)整的神經(jīng)網(wǎng)絡(luò)、12 層卷積操作,并針對(duì)用戶數(shù)據(jù)進(jìn)行自動(dòng)優(yōu)化的模型,與通用算法相比,訓(xùn)練所耗費(fèi)的時(shí)間多,但更適用于像中草藥這種難以區(qū)分的圖像。
實(shí)驗(yàn)樣本共計(jì)89種中草藥圖像,分別為:白芍、白頭翁、白鮮皮、白芷、薄荷、百部、北豆根、百合、扁南、板藍(lán)根、蒼術(shù)、側(cè)柏葉、川木通、赤芍、川牛膝、川高、穿破石、川楝子、大黃、淡竹葉、當(dāng)歸、丁香、冬瓜子、獨(dú)活、斷續(xù)、法半夏、瓜蔞子、槐花、甘草、合歡皮、黃芩、葛根、何首烏、黃芪、瓜蔞、厚樸、藿香、絞股藍(lán)、齊子、炙甘草、炙黃芪、韭菜子、酒女貞子、決明子、苦杏仁、劉寄奴、龍膽、漏蘆、羅布麻、麥冬、木香、墨早蓮、木賊、牡丹皮、牛蒡子、門(mén)木瓜、胖大海、佩蘭、青蒿、忍冬藤、肉桂、三棱、桑白皮、山藥、山楂、伸筋草、石菖蒲、太子參、菟絲子、仙茅、薏苡仁、威靈仙、小茴香、玉竹、五倍子、薤白、月季花、五味子、業(yè)邊參、澤蘭、珍珠母、枳實(shí)、枳子、紫蘇梗、紫蘇子。本次實(shí)驗(yàn)的數(shù)據(jù)集由少部分實(shí)拍和大部分在圖片數(shù)據(jù)庫(kù)中爬蟲(chóng)獲得。
數(shù)據(jù)集的獲取前期是通過(guò)線下市場(chǎng)購(gòu)買獲取,共采集89 種中草藥,通過(guò)預(yù)處理處理成相同格式的圖片。之后發(fā)現(xiàn)數(shù)據(jù)集的數(shù)量不足,后期通過(guò)爬蟲(chóng)進(jìn)行數(shù)據(jù)集的補(bǔ)充。
1)歸一化處理[8]
歸一化處理是圖片數(shù)據(jù)預(yù)處理的重要步驟之一。歸一化能夠?qū)D片轉(zhuǎn)化為標(biāo)準(zhǔn)模式,從而不會(huì)影響后續(xù)對(duì)圖像進(jìn)行的仿射變換及其他幾何變換操作。它在加快卷積神經(jīng)網(wǎng)絡(luò)識(shí)別模型的梯度下降過(guò)程中求出最優(yōu)解的速度方面,發(fā)揮著至關(guān)重要的作用。對(duì)于中草藥數(shù)據(jù)集而言,有多種可供選擇的歸一化方法。在平常實(shí)驗(yàn)中經(jīng)常使用對(duì)數(shù)函數(shù)轉(zhuǎn)換法、線性函數(shù)轉(zhuǎn)換法、反余切函數(shù)轉(zhuǎn)換法。
①對(duì)數(shù)函數(shù)轉(zhuǎn)換的表達(dá)式為:
y= log 10(x)
②線性函數(shù)轉(zhuǎn)換的表達(dá)式為:
y=(x-Min)/(Max-Min)
這里的Max 和Min 參數(shù)分別指的是輸入樣本數(shù)據(jù)的最大值和最小值。
③反余切函數(shù)轉(zhuǎn)換的表達(dá)式為:
y= arctan(x)2/π
本次實(shí)驗(yàn)對(duì)數(shù)據(jù)集歸一化的處理方式為線性函數(shù)轉(zhuǎn)換,在遍歷數(shù)據(jù)集中的所有數(shù)據(jù),遍歷完成后,可以獲得最大值和最小值,已達(dá)到完成歸一化的目的。
2)中草藥圖像的水平移動(dòng)
假設(shè)點(diǎn)(x0,y0)為原始中草藥藥材數(shù)據(jù)集上的某一個(gè)像素點(diǎn),向某一方向移動(dòng)一段距離后到達(dá)位置(x1,y1)點(diǎn),x 軸方向移動(dòng)了△x,y 軸方向移動(dòng)了△y,圖像的水平移動(dòng)表達(dá)式為:
x1=x0+ Δx
y1=y0+ Δy
3)中草藥的圖像旋轉(zhuǎn)
選取一張圖片的中心點(diǎn)為坐標(biāo)原點(diǎn)進(jìn)行圖像旋轉(zhuǎn)操作,向某一方向旋轉(zhuǎn)一定角度,設(shè)圖像中一點(diǎn)為p0(x0,y0),旋轉(zhuǎn)后的點(diǎn)為p1(x1,y1),用表達(dá)式表示為:
x1=x0cosβ+x0sinβ
y1=y0cosβ+y0sinβ
硬件方面,采用TeslaGPU_P4_8G 顯存,單卡_12核CPU_40G 內(nèi)存了,算力為5.5 TeraFLOPS。通過(guò)云服務(wù)器中進(jìn)行訓(xùn)練,AutoDL Transfer 是基于自動(dòng)化機(jī)器學(xué)習(xí)衍生出的一種深度學(xué)習(xí)的算法。自動(dòng)化機(jī)器學(xué)習(xí)(AutoML)的熱度逐漸增長(zhǎng),是機(jī)器學(xué)習(xí)下一階段主要的趨勢(shì)。目前研究一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)要花費(fèi)大量的時(shí)間精力,并且還需要深厚的知識(shí)儲(chǔ)備,神經(jīng)網(wǎng)絡(luò)有復(fù)雜的超參數(shù),會(huì)使其搜索空間龐大。NAS即是在此巨大的搜索空間里自動(dòng)地找到最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)深度學(xué)習(xí)的自動(dòng)化。所以基于自動(dòng)化機(jī)器學(xué)習(xí)百度繼而提出自動(dòng)化深度學(xué)習(xí),AutoDL 分成三個(gè)部分,分別 是 AutoDL Design、AutoDL Transfer 和 AutoDL Edge。本次訓(xùn)練的網(wǎng)絡(luò)采用AutoDL Transfer,更適用于區(qū)分形態(tài)大小相近的中草藥。
AutoDL Transfer(高精度算法)是百度EasyDL 近幾年研發(fā)的一種高精度算法,是百度研發(fā)的AutoDL技術(shù)之一,結(jié)合模型網(wǎng)絡(luò)結(jié)構(gòu)搜索、遷移學(xué)習(xí)技術(shù)、近30層可靈活調(diào)整的神經(jīng)網(wǎng)絡(luò)、12層卷積操作,并針對(duì)用戶數(shù)據(jù)進(jìn)行自動(dòng)優(yōu)化的模型。選用AutoDL Transfer 的其中一項(xiàng)主要的原因是該算法可以基于小數(shù)據(jù)模型把訓(xùn)練好的模型遷移到預(yù)訓(xùn)練里的龐大數(shù)據(jù)模型中,并且采用該算法的動(dòng)態(tài)模型,動(dòng)態(tài)模型則會(huì)根據(jù)本次訓(xùn)練所提交的數(shù)據(jù)集在不同組件以及超參的組合中重新進(jìn)行一次搜索。和靜態(tài)模型相比,動(dòng)態(tài)模型能夠針對(duì)用戶數(shù)據(jù)進(jìn)行更加精細(xì)的優(yōu)化,每種中草藥都會(huì)去補(bǔ)充大量的數(shù)據(jù)集去支持動(dòng)態(tài)模型。
使用百度的EasyDL 平臺(tái)中的物體檢測(cè)模塊里創(chuàng)建出一個(gè)空白模型,將其模型名稱命名為中草藥識(shí)別系統(tǒng)。
在EasyData 數(shù)據(jù)服務(wù)中將本次實(shí)驗(yàn)所需的89 種中草藥分別建立89組數(shù)據(jù)集,每組數(shù)據(jù)集以每種草藥的名稱名,共計(jì)上傳圖片總量為30 340 張圖片,將每個(gè)種類分別上傳圖片,目的是使用AutoDL Transfer 數(shù)據(jù)增強(qiáng)技術(shù)將簡(jiǎn)單少量的數(shù)據(jù)擴(kuò)充為較為復(fù)雜的數(shù)據(jù)組。
將標(biāo)注完成的數(shù)據(jù)集在平臺(tái)首頁(yè)中點(diǎn)擊模型訓(xùn)練的入口進(jìn)行訓(xùn)練參數(shù)的配置,選擇算力和配置,本次訓(xùn)練采用的GPU 為百度的P4,具體配置為:TeslaGPU_P4_8G顯存,單卡_12核CPU_40G內(nèi)存。該配置可以為本次實(shí)驗(yàn)提供5.5 TeraFLOPS 的算力,但由于中草藥的部分種類之間相似度極高,且特征點(diǎn)高度吻合,因此訓(xùn)練采用算法的超高精度模式,在該模式下,能更細(xì)微辨別相似的特征點(diǎn),保證訓(xùn)練能夠正常進(jìn)行,但在該模式下訓(xùn)練時(shí)間會(huì)大幅度增加。部署方式選擇了公有云部署,并加入自動(dòng)超參搜索,該訓(xùn)練的具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 算法網(wǎng)絡(luò)結(jié)構(gòu)
本次實(shí)驗(yàn)共訓(xùn)練了48 小時(shí)10 分鐘,訓(xùn)練結(jié)果為map為80.2,該模型的精確率為88.0(精確率則是在閾值下正確預(yù)測(cè)的物體數(shù)與預(yù)測(cè)物體總數(shù)之比),該模型的召回率為76.9,實(shí)驗(yàn)數(shù)據(jù)及曲線圖如圖2所示。
圖2 實(shí)驗(yàn)數(shù)據(jù)及曲線圖
將訓(xùn)練好的模型進(jìn)行系統(tǒng)校驗(yàn),校驗(yàn)結(jié)果顯示,每個(gè)標(biāo)簽的訓(xùn)練都有較好的反饋,達(dá)到申請(qǐng)線上H5頁(yè)面發(fā)布的要求。H5 頁(yè)面發(fā)布申請(qǐng)通過(guò)以后,生成調(diào)用H5 頁(yè)面的二維碼,用戶可以通過(guò)微信掃一掃調(diào)用H5頁(yè)面。
掃描成功的后界面如圖3 所示,選擇拍照上傳和從圖庫(kù)中選擇上傳兩種方式,極大方便了使用人群,該H5頁(yè)面內(nèi)置了許多圖像處理的接口,如無(wú)損放大、對(duì)比度增強(qiáng)、旋轉(zhuǎn)剪切等功能。
圖3 H5頁(yè)面的UI界面
將需要識(shí)別的中草藥上傳到H5頁(yè)面即可獲得檢測(cè)結(jié)果,由圖4結(jié)果可以看出,該模型成功識(shí)別被測(cè)物體為胖大海,識(shí)別的預(yù)測(cè)值為96.84。
圖4 H5頁(yè)面的識(shí)別結(jié)果
卷積神經(jīng)網(wǎng)絡(luò)已發(fā)展較為成熟,從20世紀(jì)最開(kāi)始的時(shí)間延遲網(wǎng)絡(luò)和LeNet-5到如今配合著比較成熟的深度學(xué)習(xí)的輔助,使得識(shí)別物品的精準(zhǔn)度和預(yù)測(cè)值得到大幅度提升。百度提出的AutoDL Transfer 是在ResNet、DenseNet、VGG、Inception 等一些經(jīng)典網(wǎng)絡(luò)的基礎(chǔ)上,進(jìn)行了人為經(jīng)驗(yàn)的改良,并配合著超參等機(jī)器算法。
本文的創(chuàng)新點(diǎn)如下:
1)在AutoDL中,百度將其分為三個(gè)子類,這三個(gè)子類分別為AutoDL Design,AutoDL Transfer 和AutoDL Edge,每一種子類都有其獨(dú)特的特點(diǎn)。而本文選擇了AutoDL Transfer,有好幾個(gè)方面的原因,利用該算法方便訓(xùn)練,并且可以利用靜態(tài)模型使用百度預(yù)先處理好的數(shù)據(jù)遷移到H5頁(yè)面上,配合用戶使用。
2)本作品沒(méi)有采用做App應(yīng)用程序的方案,而是通過(guò)H5 頁(yè)面來(lái)實(shí)現(xiàn)功能,從而達(dá)到輕量化和便利。這種方法大大減輕了前端開(kāi)發(fā)的工作量,使得該系統(tǒng)能夠更快速地部署到手機(jī)端,并且為后續(xù)的更新工作省去了大量的時(shí)間成本,縮短了開(kāi)發(fā)周期。用戶可以通過(guò)將圖片上傳到H5 頁(yè)面,利用已有的數(shù)據(jù)集進(jìn)行測(cè)試,選擇最佳的優(yōu)良模型,然后利用其自身的數(shù)據(jù)進(jìn)行精細(xì)調(diào)整以獲得最佳的模型參數(shù)效果。