劉加峰 高子嘯 段元民 李海云 石宏理
中藥飲片是中藥材經(jīng)過(guò)切片、曬制、烘焙等過(guò)程加工而成,其中絕大多數(shù)來(lái)自草本植物,它們?cè)陬伾?、形狀等天然屬性上具有相似的特點(diǎn),再經(jīng)過(guò)加工后更使得它們?cè)镜念伾?、形狀等特異性差異減弱,以至于對(duì)它們進(jìn)行識(shí)別和分類時(shí)易出錯(cuò),而這又直接關(guān)系到中藥治療疾病的效果,因此中藥飲片的識(shí)別與分類是一項(xiàng)繁重又極其重要的工作[1]。
目前,中藥材鑒別的傳統(tǒng)方法多是基于臨床藥劑師的經(jīng)驗(yàn)進(jìn)行人工鑒別,有著諸多缺點(diǎn),比如速度慢、準(zhǔn)確率不高等,無(wú)法實(shí)現(xiàn)自動(dòng)化操作。研究組將近些年來(lái)新興的人工智能神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)應(yīng)用于中藥材鑒別,在有多種飲片復(fù)雜場(chǎng)景下,能快速準(zhǔn)確地智能識(shí)別,提高了該技術(shù)在中藥領(lǐng)域的實(shí)用性[2-3]。
如圖1所示,目標(biāo)識(shí)別系統(tǒng)從輸入圖像開始,使用窗格掃描,進(jìn)行特征選擇和提取,之后經(jīng)過(guò)分類器進(jìn)行分類,得出最后的分類結(jié)果輸出。在獲得訓(xùn)練樣本之前,所有圖片都被歸一化處理為固定分辨率的圖片輸入至網(wǎng)絡(luò)中,然后對(duì)其進(jìn)行特征選擇和提取。在訓(xùn)練時(shí),將真實(shí)框與先驗(yàn)框配對(duì),與之匹配的邊界值將會(huì)預(yù)測(cè)對(duì)應(yīng)的真實(shí)框,從而達(dá)到預(yù)測(cè)目標(biāo)的任務(wù)[4-5]。
圖1 目標(biāo)識(shí)別系統(tǒng)圖Figure 1 Target recognition system diagram
其中訓(xùn)練樣本包括正樣本和負(fù)樣本,所謂的正樣本指包含感興趣的目標(biāo)類別的樣本(比如枸杞,甘草等),負(fù)樣本指其他不包含目標(biāo)的任意圖片(如背景等)。在訓(xùn)練樣本的過(guò)程中,通過(guò)平衡正負(fù)樣本來(lái)達(dá)到選擇和提取特征的目的,以此來(lái)提前訓(xùn)練好分類器,正負(fù)樣本的比例設(shè)定為1∶3左右。
本文采用深度學(xué)習(xí)-卷積神經(jīng)網(wǎng)絡(luò)中的SSD(single-shot multibox detector)模型,設(shè)計(jì)了一個(gè)針對(duì)中藥飲片的定位分類識(shí)別軟件,能夠識(shí)別輸入圖片中的多類藥材,并框選出其在圖片中的位置,可廣泛應(yīng)用于中藥飲片的分揀。
識(shí)別過(guò)程分為兩步。(1)圖像中物體檢測(cè)定位,即用手動(dòng)標(biāo)注出所有感興趣的目標(biāo)并定位其位置,從而得到真實(shí)框。(2)目標(biāo)識(shí)別分類,對(duì)于手動(dòng)框出的目標(biāo)可自動(dòng)判斷出它屬于何種中藥材。
SSD模型是一種one-stage目標(biāo)檢測(cè)模型,含有多層卷積層,每層卷積層都會(huì)分別輸出一次特征映射(feature map),這些特征映射具有不同的大小,會(huì)分別獨(dú)自經(jīng)過(guò)不同長(zhǎng)寬比的檢驗(yàn)框的檢驗(yàn),獲得一定的位置數(shù)據(jù)與置信度,最后進(jìn)行多層次融合,通過(guò)非極大值抑制(non maximum suppression,NMS)得出最后的目標(biāo)檢測(cè)結(jié)果。這樣做的好處是足夠快捷而且適用于不同大小的感興趣目標(biāo)的定位。
SSD的網(wǎng)絡(luò)結(jié)構(gòu),使用VGG16作為前置網(wǎng)絡(luò),將原本的VGG預(yù)訓(xùn)練網(wǎng)絡(luò)的全連接層去掉,加上后續(xù)的卷積網(wǎng)絡(luò),在每一層卷積后都輸出一遍特征映射,在最后,將每一層卷積輸出的帶有預(yù)測(cè)定位和置信度的特征映射融合,進(jìn)行檢測(cè)定位[6-7]。
設(shè)定需要單像素圖片先驗(yàn)框數(shù)量為n(n一般取值3),如果圖片規(guī)格是m×p,則生成的先驗(yàn)框數(shù)量是n×m×p個(gè),SSD網(wǎng)絡(luò)通過(guò)對(duì)每個(gè)先驗(yàn)框進(jìn)行定位回歸,并在之后通過(guò)NMS得到最終的檢測(cè)結(jié)果。
SSD模型的先驗(yàn)框與真實(shí)框的匹配遵循以下原則。(1)圖2中的真實(shí)框一定比先驗(yàn)框少很多,所以應(yīng)先找與真實(shí)框交互比(intersection over union,IoU)最大的先驗(yàn)框,先把每個(gè)真實(shí)框都匹配上一個(gè)先驗(yàn)框。(2)匹配以后,對(duì)于剩下的許多未匹配的先驗(yàn)框,找出其中與附近真實(shí)框IoU值大于一定閾值的先驗(yàn)框,把這些先驗(yàn)框也與對(duì)應(yīng)的真實(shí)框進(jìn)行匹配,這樣就有多個(gè)先驗(yàn)框與同一個(gè)真實(shí)框進(jìn)行了配對(duì)。如果某個(gè)先驗(yàn)框與多個(gè)真實(shí)框匹配,則先驗(yàn)框只會(huì)和IoU最大的真實(shí)框進(jìn)行配對(duì)。
圖2 SSD匹配策略示意圖Figure 2 SSD matching strategy diagram
第2個(gè)原則優(yōu)先于第1個(gè)原則,因?yàn)槿绻霈F(xiàn)真實(shí)框與之對(duì)應(yīng)的先驗(yàn)框最大IoU也小于閾值,但是這個(gè)小于閾值的先驗(yàn)框還與另外一個(gè)真實(shí)框相匹配了,則第1個(gè)原則不生效,這是因?yàn)橐欢ㄒWC每個(gè)真實(shí)框有一個(gè)與之匹配的先驗(yàn)框。
考慮到藥材存在形式的多樣性,在樣本量很小的數(shù)據(jù)集中,很難將草本形式與烘干焙烤之后的同種藥材歸為一類,在這里本實(shí)驗(yàn)只針對(duì)中藥飲片形式的藥材進(jìn)行分類,構(gòu)建數(shù)據(jù)集,尋找材料進(jìn)行拍攝,一張圖片包含3種中藥材(枸杞、甘草、陳皮),這之后同樣使用標(biāo)注工具手動(dòng)進(jìn)行標(biāo)注。目前沒(méi)有大規(guī)模公開的中藥飲片的數(shù)據(jù)庫(kù)或部分機(jī)構(gòu)的數(shù)據(jù)庫(kù)內(nèi)容量太少,無(wú)法找到足以支撐深度學(xué)習(xí)網(wǎng)絡(luò)要求的數(shù)據(jù)量的已有數(shù)據(jù)集,在本實(shí)驗(yàn)中數(shù)據(jù)集全為自己構(gòu)建,共采集了超過(guò)1 000張相關(guān)藥材的圖片,隨后把圖片按比例6∶2∶2分割為訓(xùn)練集、驗(yàn)證集、測(cè)試集。
使用labeling標(biāo)注圖像,見(jiàn)圖3。
圖3 標(biāo)注過(guò)程Figure 3 Labeling process
要求真實(shí)框的標(biāo)注一定要大小合適,邊緣緊湊,要一個(gè)個(gè)的分類并框出所有的目標(biāo)物體,打上標(biāo)簽,而且標(biāo)注框不能靠近圖片的邊沿。
初步考慮為VGG-16卷積識(shí)別網(wǎng)絡(luò),采用了多層卷積層與池化層的組合,進(jìn)行了隨機(jī)光影變換的數(shù)據(jù)增強(qiáng)步驟,添加了dropout層以及數(shù)千次的循環(huán),在訓(xùn)練集上進(jìn)行訓(xùn)練,在測(cè)試集上進(jìn)行測(cè)試,平均識(shí)別率可以高于80%。
本文使用的2個(gè)數(shù)據(jù)集,訓(xùn)練集測(cè)試集驗(yàn)證集都不是足夠多的情況下,應(yīng)采用預(yù)訓(xùn)練網(wǎng)絡(luò)來(lái)構(gòu)造模型。因此,對(duì)于本次實(shí)踐這種樣本數(shù)量不充分的模型來(lái)說(shuō),采用VGG16預(yù)訓(xùn)練網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練[8-11]。
選擇在Google云盤上的Colab上進(jìn)行訓(xùn)練。硬件加速器選擇GPU,然后掛載Google Drive云端硬盤。拷貝github代碼到所需的文件夾下,修改相關(guān)參數(shù)并上傳VGG16預(yù)訓(xùn)練權(quán)重文件,開始訓(xùn)練。開始loss為28左右,訓(xùn)練直至loss接近1,停止。
上述過(guò)程結(jié)束后,將數(shù)據(jù)集讀入系統(tǒng)模型得到識(shí)別框,使用驗(yàn)證集進(jìn)行驗(yàn)證,獲得各藥材的識(shí)別準(zhǔn)確度,見(jiàn)圖4。
圖4 中藥飲片識(shí)別驗(yàn)證結(jié)果Figure 4 Verification result of identification of Chinese herb slices
使用測(cè)試集測(cè)試,得到陳皮、甘草、枸杞的識(shí)別率分別為75.87%、90.79%、89.74%,總的平均識(shí)別率為86.80%。在前述運(yùn)行環(huán)境下一次處理10張圖片總共耗時(shí)小于0.05 s。測(cè)試時(shí)只需要讀入圖片就能出結(jié)果,無(wú)需考慮分辨率。
本文采用SSD目標(biāo)識(shí)別算法,通過(guò)對(duì)模型的訓(xùn)練、測(cè)試、驗(yàn)證工作,對(duì)于采集的包含多種類的中藥飲片圖像完成了檢測(cè)分類,達(dá)到了很高的識(shí)別準(zhǔn)確率,而且識(shí)別速度快,操作方便。
但是在研究中也發(fā)現(xiàn)了一些問(wèn)題,為以后能夠?qū)嶋H應(yīng)用于生產(chǎn)作業(yè)中,需要有對(duì)于一些實(shí)際應(yīng)用的考量。(1)若想要提高識(shí)別率,則提供的訓(xùn)練集一定要大量、精確;(2)對(duì)于不規(guī)則物體的判斷,例如陳皮,一面白色一面黃色,訓(xùn)練集中這兩面都要有而且數(shù)量要大,訓(xùn)練集需要包含要識(shí)別物體的所有形態(tài)的信息;(3)數(shù)據(jù)擴(kuò)增技術(shù)很重要,對(duì)于均值平均精度(mean average precision,mAP)的提升很大;(4)使用不同長(zhǎng)寬比的先驗(yàn)框可以得到更好的識(shí)別率;(5)采用多尺度的特征圖用于檢測(cè)也是至關(guān)重要的,即,提高卷積層數(shù)。