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

圖1 算法網(wǎng)絡(luò)結(jié)構(gòu)
本次實驗共訓(xùn)練了48 小時10 分鐘,訓(xùn)練結(jié)果為map為80.2,該模型的精確率為88.0(精確率則是在閾值下正確預(yù)測的物體數(shù)與預(yù)測物體總數(shù)之比),該模型的召回率為76.9,實驗數(shù)據(jù)及曲線圖如圖2所示。

圖2 實驗數(shù)據(jù)及曲線圖
將訓(xùn)練好的模型進行系統(tǒng)校驗,校驗結(jié)果顯示,每個標簽的訓(xùn)練都有較好的反饋,達到申請線上H5頁面發(fā)布的要求。H5 頁面發(fā)布申請通過以后,生成調(diào)用H5 頁面的二維碼,用戶可以通過微信掃一掃調(diào)用H5頁面。
掃描成功的后界面如圖3 所示,選擇拍照上傳和從圖庫中選擇上傳兩種方式,極大方便了使用人群,該H5頁面內(nèi)置了許多圖像處理的接口,如無損放大、對比度增強、旋轉(zhuǎn)剪切等功能。

圖3 H5頁面的UI界面
將需要識別的中草藥上傳到H5頁面即可獲得檢測結(jié)果,由圖4結(jié)果可以看出,該模型成功識別被測物體為胖大海,識別的預(yù)測值為96.84。

圖4 H5頁面的識別結(jié)果
卷積神經(jīng)網(wǎng)絡(luò)已發(fā)展較為成熟,從20世紀最開始的時間延遲網(wǎng)絡(luò)和LeNet-5到如今配合著比較成熟的深度學(xué)習(xí)的輔助,使得識別物品的精準度和預(yù)測值得到大幅度提升。百度提出的AutoDL Transfer 是在ResNet、DenseNet、VGG、Inception 等一些經(jīng)典網(wǎng)絡(luò)的基礎(chǔ)上,進行了人為經(jīng)驗的改良,并配合著超參等機器算法。
本文的創(chuàng)新點如下:
1)在AutoDL中,百度將其分為三個子類,這三個子類分別為AutoDL Design,AutoDL Transfer 和AutoDL Edge,每一種子類都有其獨特的特點。而本文選擇了AutoDL Transfer,有好幾個方面的原因,利用該算法方便訓(xùn)練,并且可以利用靜態(tài)模型使用百度預(yù)先處理好的數(shù)據(jù)遷移到H5頁面上,配合用戶使用。
2)本作品沒有采用做App應(yīng)用程序的方案,而是通過H5 頁面來實現(xiàn)功能,從而達到輕量化和便利。這種方法大大減輕了前端開發(fā)的工作量,使得該系統(tǒng)能夠更快速地部署到手機端,并且為后續(xù)的更新工作省去了大量的時間成本,縮短了開發(fā)周期。用戶可以通過將圖片上傳到H5 頁面,利用已有的數(shù)據(jù)集進行測試,選擇最佳的優(yōu)良模型,然后利用其自身的數(shù)據(jù)進行精細調(diào)整以獲得最佳的模型參數(shù)效果。