韓德強(qiáng),李宗耀,楊淇善,高雪園
(北京工業(yè)大學(xué) 信息學(xué)部,北京 100124)
中醫(yī)作為中華民族原創(chuàng)的醫(yī)學(xué)科學(xué),在我國(guó)有著悠久的歷史,是我國(guó)醫(yī)藥寶庫(kù)中的重要組成部分。目前,中醫(yī)在心腦血管疾病、糖尿病等重大慢性病的防控及重大傳染性疾病的臨床研究都取得積極進(jìn)展,在此次新冠疫情的治療與防護(hù)中更是發(fā)揮了不可替代的作用[1]。而中藥則是中醫(yī)中最常見(jiàn)的治療手段。傳統(tǒng)的中藥材識(shí)別主要依靠經(jīng)驗(yàn)豐富的醫(yī)生,通過(guò)眼看、手摸、鼻聞、口嘗、水試、火試等方法來(lái)識(shí)別出每種中藥材的真?zhèn)蝺?yōu)劣。
目前,中藥材的智能識(shí)別主要依靠復(fù)雜的深度神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)。其中,吳沖等利用人工智能和機(jī)器視覺(jué)技術(shù)設(shè)計(jì)出一種檢測(cè)貝母、山楂及半夏飲片質(zhì)量方法[2]。張志光通過(guò)向YOLO4 目標(biāo)檢測(cè)算法中加入Non-local 注意力機(jī)制和RFB(Receptive Field Block,增強(qiáng)感受野)模塊來(lái)提升算法在復(fù)雜背景和不同尺度下中藥飲片的識(shí)別性能[3]。徐飛等通過(guò)強(qiáng)化特征提取改進(jìn)的AlexNet 模型對(duì)5 類中草藥葉片進(jìn)行訓(xùn)練并通過(guò)增廣數(shù)據(jù)集,提高了中草藥圖像分類的準(zhǔn)確率[4]。李鑫利用Faster-RCNN 算法對(duì)黃芪、白術(shù)、白芷、白芨、西洋參五種藥材進(jìn)行訓(xùn)練并搭建了中藥飲片圖像識(shí)別模型[5]。
由于借助神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)中藥材識(shí)別需要大量的矩陣運(yùn)算、存儲(chǔ)空間和功耗,因此大多依賴圖形處理器(Graphic Processing Unit,GPU)或服務(wù)器實(shí)現(xiàn),不但成本較高,而且在實(shí)際使用中非常不便。然而微控制器(Microcontroller Unit,MCU)卻具有體積小、功耗低、成本低以及高實(shí)時(shí)性的優(yōu)勢(shì)。并且隨著輕量級(jí)神經(jīng)網(wǎng)絡(luò)模型和擁有高性能、高主頻且包含有算力擴(kuò)展的Cortex-M7 內(nèi)核的MCU 的出現(xiàn),使得在MCU 平臺(tái)上實(shí)現(xiàn)中藥材識(shí)別變?yōu)榱丝赡堋?/p>
本文針對(duì)目前在MCU 平臺(tái)無(wú)法實(shí)現(xiàn)復(fù)雜深度神經(jīng)網(wǎng)絡(luò)的應(yīng)用和中藥材圖像數(shù)據(jù)集不足的問(wèn)題,提出了在MCU 平臺(tái)實(shí)現(xiàn)基于MobileNetV3 模型的中藥材圖像識(shí)別系統(tǒng)。借助eIQ 機(jī)器學(xué)習(xí)軟件開(kāi)發(fā)環(huán)境構(gòu)建Mobile-NetV3-Small 模型,通過(guò)采用Hard-swish 激活函數(shù)、Adam優(yōu)化器等,修改模型參數(shù)完成對(duì)中藥材數(shù)據(jù)集的訓(xùn)練與驗(yàn)證,并對(duì)模型進(jìn)行量化和壓縮操作,將最終生成的模型文件部署至i.MX RT1060 開(kāi)發(fā)板上,實(shí)現(xiàn)對(duì)中藥材的識(shí)別。
卷積神經(jīng)網(wǎng)絡(luò)發(fā)展迅速,已經(jīng)從最初的AlexNet、VGGNet,發(fā)展到GoogleNet、ResNet等,隨著性能的不斷提升,網(wǎng)絡(luò)的大小與深度也是不斷增加的。由于MCU計(jì)算資源有限,許多復(fù)雜的網(wǎng)絡(luò)模型無(wú)法直接應(yīng)用到MCU 平臺(tái)。輕量級(jí)網(wǎng)絡(luò)相對(duì)于重量級(jí)網(wǎng)絡(luò)的最大特點(diǎn)就是參數(shù)少、計(jì)算量小、推理時(shí)間短。而Google 設(shè)計(jì)提出的MobileNetV3 模型[6-8]更是其中的代表,通過(guò)結(jié)合深度可分離卷積(Depthwise Separable Convolutions,DSC)、線性瓶頸的逆殘差結(jié)構(gòu)和輕量級(jí)注意力模型,更進(jìn)一步地減少了模型的參數(shù)量和推理時(shí)間。Mobile-NetV3 模型基本網(wǎng)絡(luò)單元如圖1 所示。根據(jù)資源利用率的高低,MobileNetV3 可分為MobileNetV3-Small 和MobileNetV3-Large 兩種不同復(fù)雜度架構(gòu)的模型。
1.2.1 激活函數(shù)
卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算方式大多為線性運(yùn)算。為了增加神經(jīng)網(wǎng)絡(luò)模型的非線性,提高識(shí)別精度,減少Swish函數(shù)在MCU 平臺(tái)上消耗的計(jì)算資源,MobileNetV3 對(duì)原Swish 函數(shù)進(jìn)行了修改,使用ReLU6 函數(shù)替換其中的Sigmoid 函數(shù),并生成一個(gè)Swish 函數(shù)的近似函數(shù),稱為Swish 的硬件版本,即Hard-Swish,其函數(shù)圖像如圖2所示。
圖2 Hard-Swish 函數(shù)圖像
1.2.2 Adam 優(yōu)化器
Adam 優(yōu)化器是深度學(xué)習(xí)中最流行的優(yōu)化器之一,通過(guò)訓(xùn)練數(shù)據(jù)迭代地更新神經(jīng)網(wǎng)絡(luò)權(quán)重。通過(guò)整合自適應(yīng)梯度(Adaptive Gradient,AdaGrad)和均方根傳播(Root Mean Square prop,RMSProp)兩個(gè)傳統(tǒng)優(yōu)化算法的優(yōu)點(diǎn),利用梯度的一階矩估計(jì)(First Moment Estimation,梯度的均值)和二階矩估計(jì)(Second Moment Estimation,梯度的未中心化的方差)計(jì)算更新步長(zhǎng)。不僅可以動(dòng)態(tài)地進(jìn)行學(xué)習(xí)率的調(diào)節(jié),而且函數(shù)的改變不會(huì)受到梯度伸縮變化的干擾。
1.2.3 平均池化
MCU 的資源和計(jì)算能力十分有限,無(wú)法滿足復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型的應(yīng)用。因此,必須對(duì)模型進(jìn)行特征提煉,以減少模型的參數(shù)量和計(jì)算時(shí)間。通過(guò)平均池化(Global Average Pooling,GAP)減小三維張量的空間維度,可以有效代替全連接層實(shí)現(xiàn)降維。不但能夠防止過(guò)擬合的產(chǎn)生,最重要的就是極大地減少了模型的參數(shù)量。如圖3 所示,通過(guò)pool 2D 將尺寸為1×4×4×432 的張量減小至1×1×1×432。
圖3 Global Average Pooling2d
利用卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)中藥材的識(shí)別,需要大量的圖片才能保證測(cè)試數(shù)據(jù)具有足夠的泛化能力,同時(shí)還可以有效防止過(guò)擬合的產(chǎn)生。但目前對(duì)于中藥材識(shí)別缺少公開(kāi)的、大規(guī)模的數(shù)據(jù)集,因此本次實(shí)驗(yàn)所使用的數(shù)據(jù)集主要通過(guò)網(wǎng)絡(luò)下載和實(shí)際拍攝兩種方式獲取圖片,共收集30 個(gè)類別,11 844 張圖片,表1 是30 種中藥材的數(shù)據(jù)集樣本分布。對(duì)數(shù)據(jù)集中的所有圖片逐一處理,將背景模糊的圖片進(jìn)行替換和刪除,并將所有圖片大小統(tǒng)一為128×128。圖4 表示的是該數(shù)據(jù)集中的部分藥材圖片。
NXP 公司的eIQ 機(jī)器學(xué)習(xí)軟件開(kāi)發(fā)環(huán)境是用來(lái)簡(jiǎn)化機(jī)器學(xué)習(xí)開(kāi)發(fā)流程并將神經(jīng)網(wǎng)絡(luò)模型部署到MCU 上的軟件平臺(tái)。其主要包含了一套完整的工作流程工具、推理引擎(Inference Engines,IE)、神經(jīng)網(wǎng)絡(luò)(Neural Netwok,NN)編譯器以及硬件抽象層(Hardware Abstract Layer,HAL)等。
i.MX RT1060 是NXP 公司設(shè)計(jì)的、基于高性能ARM Cortex-M7 內(nèi)核的、運(yùn)行頻率為600 MHz 的“跨界”MCU,其可以實(shí)現(xiàn)快速響應(yīng),并通過(guò)集成的DC-DC 轉(zhuǎn)換器實(shí)現(xiàn)較低的動(dòng)態(tài)功耗。同時(shí)提供了面向圖形用戶界面(Graphical User Interface,GUI)和增強(qiáng)人機(jī)界面(Human Machine Interface,HMI)的視頻功能,主要包括:2D圖形加速引擎、并行攝像頭傳感器接口以及液晶顯示器(Liquid Crystal Display,LCD)控制器等。
在i.MX RT1060 平臺(tái)上實(shí)現(xiàn)中藥材識(shí)別的流程如圖5 所示。在eIQ 機(jī)器學(xué)習(xí)軟件開(kāi)發(fā)環(huán)境中,將導(dǎo)入的中藥材數(shù)據(jù)集以8:2 的比例劃分訓(xùn)練集和驗(yàn)證集。使用MobileNetV3 網(wǎng)絡(luò)模型作為卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)結(jié)構(gòu),并在訓(xùn)練開(kāi)始之前確定模型參數(shù),如:權(quán)重初始化、圖像輸入尺寸、學(xué)習(xí)率和Alpha 值等,如表2 所示。
表2 模型訓(xùn)練參數(shù)
圖5 i.MX RT1060 平臺(tái)上實(shí)現(xiàn)中藥材識(shí)別流程
為了提高M(jìn)obileNetV3 網(wǎng)絡(luò)訓(xùn)練的泛化能力,提高中藥材圖片的數(shù)量和多樣性。在本次實(shí)驗(yàn)的訓(xùn)練過(guò)程中,訓(xùn)練集選擇使用eIQ 機(jī)器學(xué)習(xí)軟件開(kāi)發(fā)環(huán)境提供的9 種數(shù)據(jù)增強(qiáng)的方法進(jìn)行處理,主要包括:水平/垂直翻轉(zhuǎn)、旋轉(zhuǎn)、隨機(jī)模糊,隨機(jī)亮度、隨機(jī)對(duì)比度、色調(diào)飽和度調(diào)整、高斯噪聲、隨機(jī)Gamma。
TensorFlow Lite for Microcontrollers (TFLm)[9-10]是eIQ 機(jī)器學(xué)習(xí)軟件開(kāi)發(fā)環(huán)境支持的推理引擎之一。相比于TensorFlow,TFLm 有著更高的性能和更好的內(nèi)存利用率,適合在資源有限的MCU 中使用。將訓(xùn)練好的MobileNetV3 模型量化為int 8 類型后導(dǎo)出,最終生成TFLm 推理引擎支持的.tflite 文件。
本文將30 類中藥材數(shù)據(jù)集導(dǎo)入eIQ 機(jī)器學(xué)習(xí)軟件開(kāi)發(fā)環(huán)境中,經(jīng)過(guò)27 輪的模型訓(xùn)練后,得到了Accuracy函數(shù)值最大、Loss 函數(shù)值最小的神經(jīng)網(wǎng)絡(luò)模型。將訓(xùn)練好的模型經(jīng)過(guò)量化操作后,部署在i.MXRT1060 平臺(tái)上。為方便實(shí)際應(yīng)用場(chǎng)景下,更好地顯示待識(shí)別的中藥材名稱,本文通過(guò)在i.MX RT1060 開(kāi)發(fā)板上外接OV7725 攝像頭和4.3 英寸LCD 顯示屏,分別實(shí)現(xiàn)中藥材的實(shí)物拍攝以及中藥材名稱的顯示,并對(duì)中藥材進(jìn)行了實(shí)際拍攝識(shí)別測(cè)試。
在模型訓(xùn)練階段,訓(xùn)練時(shí)間共228 s,訓(xùn)練集精度為79.8%,驗(yàn)證集精度為86.79%。訓(xùn)練過(guò)程如圖6 所示,分別為MobileNetV3 網(wǎng)絡(luò)模型在訓(xùn)練過(guò)程中Accuracy 和Loss 函數(shù)值的變化趨勢(shì)。
圖6 Accuracy 和Loss 函數(shù)值的函數(shù)變化
由圖6 可知,經(jīng)過(guò)前15 輪Epoch 的訓(xùn)練,Accuracy 函數(shù)值升高到93.4%、Loss 函數(shù)值降低至0.198,效果均比較理想。在第16 輪Epoch 訓(xùn)練開(kāi)始之前,修改Augmentation Settings 參數(shù)值,加入數(shù)據(jù)增強(qiáng),Accuracy 和Loss函數(shù)值均有明顯變化。又經(jīng)過(guò)11 輪Epoch 的訓(xùn)練,Accuracy 函數(shù)值從66.7%上升至79.8%;Loss 函數(shù)值從1.11下降至0.612 并趨于穩(wěn)定。
圖7 是30 類中藥材的驗(yàn)證集精度直方圖。由圖可知,只有當(dāng)歸、佛手、高麗參、葫蘆巴和蓮子五種藥材的的驗(yàn)證集精度不足80%,其余25 種藥材的驗(yàn)證精度均可以達(dá)到80%以上。并且,冬蟲夏草、枸杞、雞骨草和西紅花的驗(yàn)證精度可以超過(guò)95%,另外還有10 種藥材的驗(yàn)證精度超過(guò)90%。
圖7 驗(yàn)證集精度直方圖
在實(shí)際測(cè)試部分,將中藥材放置在攝像頭下,識(shí)別結(jié)果通過(guò)LCD 屏幕顯示,如圖8 所示。可以看出,進(jìn)行實(shí)際測(cè)試的藥材均能準(zhǔn)確識(shí)別。綜上可知,本文利用MobileNetV3-small 模型可以較好地實(shí)現(xiàn)在i.MX RT1060 上的中藥材圖像識(shí)別,具有較高的實(shí)際應(yīng)用價(jià)值。
圖8 實(shí)物拍攝圖
近年來(lái),人工智能在嵌入式設(shè)備上取得了快速發(fā)展,為此本文使用輕量級(jí)模型基于MCU 平臺(tái)對(duì)中藥材識(shí)別問(wèn)題進(jìn)行研究。利用eIQ 機(jī)器學(xué)習(xí)軟件開(kāi)發(fā)環(huán)境搭建了一種基于MobileNetV3 模型的中藥材圖像識(shí)別系統(tǒng)。通過(guò)調(diào)整模型參數(shù)的方式,利用Hard-Swish 激活函數(shù)以及Adam 優(yōu)化器等對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練與驗(yàn)證,并將訓(xùn)練好的模型文件部署至i.MX RT1060 開(kāi)發(fā)平臺(tái)從而實(shí)現(xiàn)對(duì)中藥材的識(shí)別。實(shí)驗(yàn)結(jié)果表明本實(shí)驗(yàn)所使用的方法在30 類中藥材中的驗(yàn)證精度可以達(dá)到86.79%,說(shuō)明了該方案具有很好的可行性。但是對(duì)于像當(dāng)歸和葫蘆巴等特征不清晰的藥材,未來(lái)還需要對(duì)實(shí)驗(yàn)做進(jìn)一步修改。