国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于改進(jìn)的YOLOv5實現(xiàn)中藥飲片的檢測識別

2023-01-16 12:46董苗苗梁允泉劉羿漩齊振嶺?;劬?/span>葛廣英
現(xiàn)代計算機(jī) 2022年22期
關(guān)鍵詞:中藥飲片卷積精度

董苗苗,梁允泉,劉羿漩,2,齊振嶺,2,牛慧娟,葛廣英

(1.聊城大學(xué)物理科學(xué)與信息工程學(xué)院,聊城 252059;2.聊城大學(xué)山東省光通信科學(xué)與技術(shù)重點實驗室,聊城 252059;3.聊城大學(xué)計算機(jī)學(xué)院,聊城 252059)

0 引言

中醫(yī)藥是中華民族的偉大創(chuàng)造,我們國家高度重視中醫(yī)藥事業(yè)的發(fā)展,隨著醫(yī)療大數(shù)據(jù)和互聯(lián)網(wǎng)技術(shù)的發(fā)展,人工智能領(lǐng)域已經(jīng)逐漸深入到傳統(tǒng)的中醫(yī)藥領(lǐng)域。中藥飲片是藥材分類中的一個特殊分類,其種類繁多,某些中藥飲片外形相似,但其使用目的并不相同,因此需要對其正確識別分類。傳統(tǒng)的人工分類方式受制于人的主觀判斷,需要人腦記憶很多種類的中藥飲片及其藥效功能,因此存在工作量大、工作效率低等問題,有一定的局限性。隨著中藥市場需求的不斷擴(kuò)大,建立一種快速、高效識別中藥飲片的分類檢測方法日益迫切。作為人工智能時代的眼睛,計算機(jī)視覺被廣泛應(yīng)用于目標(biāo)分類和識別的許多領(lǐng)域,因此與中醫(yī)領(lǐng)域的結(jié)合也是未來發(fā)展的重要方向。

近年來,對于中藥飲片的分類檢測,國內(nèi)眾多學(xué)者用深度學(xué)習(xí)的方法對其開展了諸多研究。黃方亮等[1]研究了AlextNet 網(wǎng)絡(luò)模型在5 種中草藥圖像分類過程中的應(yīng)用,在實驗過程中采用CPU 訓(xùn)練,訓(xùn)練的時間較長,準(zhǔn)確率不高,僅達(dá)到87.5%。陳雁等[2]引進(jìn)沃瑟斯坦生成對抗神經(jīng)網(wǎng)絡(luò)(WGAN)模型和Wasserstein 間距的算法,在60 種中藥飲片的數(shù)據(jù)集上得到的平均精度為85.9%。呂宇琛等[3]通過對方向梯度直方圖(HOG)、局部二值模式(LBP)等特征提取及融合方式結(jié)合傳統(tǒng)的SVM 分類器的算法,在30 種中藥飲片的數(shù)據(jù)集上識別率為91.16%。張誼等[4]在12 種中藥飲片的數(shù)據(jù)集上對比了傳統(tǒng)算法與多種深度學(xué)習(xí)算法的識別差異。孫鑫等[5]在VGG16 的網(wǎng)絡(luò)模型上對50 種中藥飲片進(jìn)行識別,最終的識別精度為70%。胡繼禮等[6]基于深度遷移學(xué)習(xí)的方式,在Inception-V3模型的基礎(chǔ)上,參考了DOC 和DAN 方法在模型中加入了自適應(yīng)度量,在137種中藥飲片的數(shù)據(jù)集上,模型的識別精度為88.3%。張萬義等[7]選取了通道數(shù)較少的VGG 模型,在17 種中草藥的數(shù)據(jù)集上識別率達(dá)到了96%。王建慶等[8]基于GoogLeNet 深度學(xué)習(xí)模型在100種中藥飲片的數(shù)據(jù)集上進(jìn)行訓(xùn)練和識別,識別率為92%。本文在研究中藥飲片[9]的基礎(chǔ)上,引用目標(biāo)檢測YOLOv5 算法,并對其加以改進(jìn),以期在保持較高精度的同時,最大限度地減少網(wǎng)絡(luò)模型的計算量,從而達(dá)到最優(yōu)效果。

1 YOLOv5算法及其改進(jìn)

1.1 YOLOv5算法

本文以單階段檢測算法YOLOv5為基礎(chǔ)實現(xiàn)對中藥飲片的檢測識別。YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)包含四個部分,分別是:Input 輸入、Backbone 網(wǎng)絡(luò)、Neck網(wǎng)絡(luò)、輸出層。

YOLOv5模型如圖1所示,在輸入端YOLOv5采用了Mosaic 數(shù)據(jù)增強(qiáng),即隨機(jī)縮放、隨機(jī)裁剪、隨機(jī)排布的方式進(jìn)行拼接。在Backbone中,Conv 模塊中封裝了三個功能,包括卷積(Conv2d)、BatchNorm2d(BN)以及SiLU 激活函數(shù);Bottleneck 模塊有兩個分支,一個分支采用兩個Conv 卷積模塊,與另一分支用add 進(jìn)行特征融合,融合后的特征數(shù)保持不變;在C3 模塊中,包含有三個Conv 卷積模塊,以及N個Bottleneck 模塊,該模塊是對殘差特征進(jìn)行學(xué)習(xí)的主要模塊,其結(jié)構(gòu)共有兩個分支,一支將Conv 卷積模塊和N 個Bottleneck 模塊堆疊,另一支僅使用Conv 模塊,最后將兩個分支經(jīng)過concat 操作,再經(jīng)過一個Conv 模塊,最后輸出;SPP 是空間金字塔池化,首先經(jīng)過一個Conv 模塊將輸入通道減半,分別做kernel-size 為5,9,13 的Maxpooling,再對三次Maxpooling 的結(jié)果與沒有經(jīng)過Maxpooling 的數(shù)據(jù)進(jìn)行concat,最后再經(jīng)過一次Conv 模塊輸出,SPPF 是用5×5 的kernel-size 代替了SPP的5,9,13,目的就是減少計算量,提高速度。

圖1 YOLOv5網(wǎng)絡(luò)模型結(jié)構(gòu)

在Neck 網(wǎng)絡(luò)中,YOLOv5s采用了FPN+PAN結(jié)構(gòu)。如圖2所示,F(xiàn)PN結(jié)構(gòu)是自頂向下進(jìn)行上采樣,使得底層的特征圖包含更強(qiáng)的中藥飲片的語義信息。如圖3所示,在FPN結(jié)構(gòu)的后面添加兩個PAN 結(jié)構(gòu),PAN 結(jié)構(gòu)自底向上進(jìn)行下采樣,使頂層特征包含更多的中藥飲片的位置信息。

圖2 FPN 結(jié)構(gòu)

圖3 FPN+PAN結(jié)構(gòu)

1.2 GhostBottleneck 模塊

針對于實際的應(yīng)用場景,往往需要將深度學(xué)習(xí)的模型移植到嵌入式設(shè)備中來使用,如果硬件的算力不夠,就很大程度上限制了深度學(xué)習(xí)的應(yīng)用。因此,在YOLOv5 的Backbone 主干網(wǎng)絡(luò)中設(shè)計了GhostBottleneck 模塊[10],以此來降低主干網(wǎng)絡(luò)中C3 模塊的參數(shù)量,既能滿足模型的輕量化要求,又能加快網(wǎng)絡(luò)的推理速度。

假定輸入X∈Rh×w×c,c是輸入的通道數(shù),h是輸入數(shù)據(jù)的高度,w是輸入數(shù)據(jù)的寬度,生成n個特征圖的卷積層的計算為

其中*是卷積運(yùn)算,b是偏差項,Y∈Rh'×w'×n是n個通道的輸出特征圖,f∈Rc×k×k×n是卷積層的卷積核,h'和w'是輸出數(shù)據(jù)的高度和寬度,k×k是卷積核的大小。普通卷積的結(jié)構(gòu)如圖4所示,那么,普通卷積的計算量為

圖4 普通卷積

相對于普通卷積,GhostBottleneck 中的卷積分兩步進(jìn)行,第一步先經(jīng)過一個普通的卷積計算,生成一些少量的特征圖,再將生成的特征圖進(jìn)行cheap operation 操作,生成一些冗余的特征圖,最后將兩者結(jié)合進(jìn)行concat 操作,卷積過程如圖5所示。

圖5 GhostBottleneck中的卷積

GhostBottleneck中的卷積計算量為

其中s是每個通道產(chǎn)生的總映射(1 個特征圖有s-1 個冗余特征圖),s?c。d·d是線性操作的平均核大小,和k·k相似。將GhostBottleneck中的卷積層命名為GhostConv,并仿照原YOLOv5的Bottleneck 中的結(jié)構(gòu)順序進(jìn)行堆疊,新的GhostBottleneck結(jié)構(gòu)如圖6所示。

圖6 GhostBottleneck 模塊

通過公式(1)、公式(2)和公式(3)可知,GhostBottleneck 模塊可以降低卷積層的計算成本。在YOLOv5s 模型的網(wǎng)絡(luò)結(jié)構(gòu)中,將C3 模塊中原有的Conv 層替換為GhostConv 層,Bottleneck 替換為GhostBottleneck 組成新的C3Ghost 模塊,大大降低了網(wǎng)絡(luò)的參數(shù)計算量。

1.3 網(wǎng)絡(luò)層中加入注意力機(jī)制

針對YOLOv5 算法容易丟失中藥飲片的小目標(biāo)信息的問題,在模型的網(wǎng)絡(luò)結(jié)構(gòu)中加入了Coordinate Attention[11](以下簡稱CA)來增強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)特征的能力。CA 注意力機(jī)制是將位置信息嵌入到通道注意力中,使輕量級的網(wǎng)絡(luò)能夠在更大的區(qū)域上進(jìn)行注意力。CA 注意力機(jī)制分為Coordinate 信息嵌入和Coordinate Attention 生成兩步,結(jié)構(gòu)如圖7所示。

圖7 CA注意力機(jī)制

Coordinate 信息嵌入是將通道注意力在輸入特征圖的寬度和高度兩個方向分別進(jìn)行全局平均池化,分別獲得兩個方向上的特征圖。假設(shè),輸入為X∈RH×W×C,使用尺寸(H,1)和(1,W)的池化核分別沿水平坐標(biāo)方向和垂直坐標(biāo)方向?qū)γ總€通道進(jìn)行編碼,那么第C個通道在高度h處的輸出可以表示為

在寬度w處的輸出可以表示為

將這兩個變換沿著兩個空間方向進(jìn)行特征聚合。Coordinate Attention 生成是將信息嵌入中的變換進(jìn)行concat 操作,再使用卷積變換函數(shù)對其進(jìn)行變換操作:

后沿著空間維數(shù)分解為兩個單獨的張量和。再利用兩個卷積變換和sigmoid 激活函數(shù)得到兩個具有相同通道數(shù)的張量,分別為

最后對輸出的和進(jìn)行擴(kuò)展作為attention weights,CA注意力機(jī)制模塊的輸出可以寫成

CA注意力機(jī)制很簡單,可以靈活地插入到網(wǎng)絡(luò)結(jié)構(gòu)中。在YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)中,本文在新設(shè)計的C3Ghost模塊后加入CA注意力機(jī)制,以此來提高對中藥飲片中存在的小目標(biāo)的檢測能力。

1.4 改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)

同時為了減少加入注意力機(jī)制后對網(wǎng)絡(luò)參數(shù)產(chǎn)生的影響,在YOLOv5 算法的Backbone 中使用了深度可分離卷積。深度可分離卷積是將一個完整的卷積運(yùn)算分解成Depthwise Convolution(逐深度卷積)和Pointwise Convolution(逐點1*1)卷積兩步來進(jìn)行。深度可分離卷積的卷積方式可以減少網(wǎng)絡(luò)參數(shù)數(shù)量,同時還可以減少參數(shù)占用的內(nèi)存。

如圖8所示,逐深度卷積是每一個通道都只被一個卷積核卷積,這個卷積過程產(chǎn)生的特征圖的通道數(shù)和輸入的通道數(shù)是一樣的。

圖8 逐深度卷積

如圖9所示,逐點卷積是用1*1 的卷積來組合不同深度卷積的輸出,并將上一步產(chǎn)生的特征圖在深度方向上進(jìn)行加權(quán)融合,又生成新的特征圖,即有幾個卷積核就有幾個輸出的特征圖。

圖9 逐點卷積

假設(shè)輸入的特征圖大小為Dk×Dk×M,卷積核大小為DF×DF×M,數(shù)量為N,對于標(biāo)準(zhǔn)卷積的計算量為

記為A1,深度可分離卷積的計算量為

記為A2,那么深度可分離卷積與標(biāo)準(zhǔn)卷積的計算量之比為

通過公式(12)的計算,本文網(wǎng)絡(luò)模型中的深度可分離卷積的計算量占使用標(biāo)準(zhǔn)卷積計算量的11.5%。

綜上所述,將改進(jìn)后的YOLOv5算法命名為YOLOv5-Ghost-CA,其結(jié)構(gòu)如圖10所示。

圖10 YOLOv5-Ghost-CA結(jié)構(gòu)

2 數(shù)據(jù)集處理

2.1 中藥飲片數(shù)據(jù)集的建立

由于目前沒有公開的中藥飲片的數(shù)據(jù)集,本文參考文獻(xiàn)[1]至文獻(xiàn)[8]中的數(shù)據(jù)集構(gòu)建了107種中藥飲片,對收集到的中藥飲片進(jìn)行圖像采集,每種中藥飲片采集到的圖片有幾十張,再運(yùn)用圖像處理的方式,包括平移、旋轉(zhuǎn)、反轉(zhuǎn)、圖像增強(qiáng)等方式,達(dá)到擴(kuò)充數(shù)據(jù)集的目的。經(jīng)過數(shù)據(jù)處理后中藥飲片的數(shù)據(jù)集一共有22380張圖像,數(shù)據(jù)集中的中藥飲片種類共計107 種,最后將數(shù)據(jù)集的22380 張圖片利用labelimg 工具進(jìn)行標(biāo)注。數(shù)據(jù)集的訓(xùn)練集、驗證集、測試集按照7∶2∶1的比例進(jìn)行劃分。

2.2 實驗平臺環(huán)境

本次模型訓(xùn)練基于Pytorch 深度學(xué)習(xí)框架,實驗環(huán)境為Windows Server 2019操作系統(tǒng),GPU為Quadro RTX 4000,內(nèi)存64 G,torch 版本為1.10.1+cua102,實驗參數(shù)設(shè)定見表1。

表1 實驗參數(shù)設(shè)定

2.3 重新計算先驗框

為了獲取更好的模型效果,將原YOLOv5算法中預(yù)先設(shè)定的先驗框利用K-means 算法重新獲取,先驗框獲取前后對比見表2。

表2 先驗框?qū)Ρ?/p>

3 模型分析

3.1 模型評價指標(biāo)

常用的模型評價指標(biāo)有查全率(Recall,R),查準(zhǔn)率(Precision,P),F(xiàn)1-score,平均精度AP,平均精度均值mAP,計算量FLOPs,模型參數(shù)parameters 等。其解析式表達(dá)如公式(13)—公式(17)所示。

其中,TP指中藥飲片中的正樣本被預(yù)測為正樣本的數(shù)量,F(xiàn)N指中藥飲片中正樣本被預(yù)測為負(fù)樣本的數(shù)量,F(xiàn)P指中藥飲片中負(fù)樣本被預(yù)測為正樣本的數(shù)量。AP是指PR曲線下的面積(一般來講,PR曲線下的面積越大,模型越好),mAP指各類AP的平均值。N指數(shù)據(jù)集中的總類別數(shù)。YOLOv5 算法與YOLOv5-Ghost-CA 算法訓(xùn)練后的mAP@0.5值對比如圖11所示。

表3給出了中藥飲片數(shù)據(jù)集在兩種模型上的具體指標(biāo)值結(jié)果。根據(jù)圖11可知,YOLOv5-Ghost-CA 算法比YOLOv5 算法模型mAP@0.5高,在第20 個epoch 時YOLOv5-Ghost-CA 模型的平均精度達(dá)到97.07%,并逐漸趨近于穩(wěn)定,YOLOv5 算法模型在第39 個epoch 時模型的平均精度為93.59%,之后逐漸趨于穩(wěn)定。結(jié)合表3分析可知,YOLOv5-Ghost-CA 算法模型大小僅6.61 MB,比YOLOv5 算法模型減少了53.45%,參數(shù)量減少了50%以上,計算量減少了57.14%,YOLOv5-Ghost-CA 算法在大幅度降低計算量的同時,模型的精度一直保持在較高的水平,mAP@0.5 的值比YOLOv5 算法提高了2.93%,mAP@0.5:0.95 的值YOLOv5 提高了2.9%。實驗結(jié)果表明,改進(jìn)后的模型對檢測中藥飲片有較高的精度,在此基礎(chǔ)上,改進(jìn)后的模型更小,更有利于部署到嵌入式設(shè)備上,滿足實際應(yīng)用場景的需求。

圖11 mAP@0.5對比

表3 兩種模型的評價指標(biāo)對比

3.2 推理速度對比

為了證明YOLOv5-Ghost-CA 算法的有效性,本文選取了107種中藥飲片的圖片作為實際檢測,根據(jù)表4分析,YOLOv5-Ghost-CA 算法比YOLOv5算法在推理速度方面提升了15.23%。

表4 推理速度對比

綜上所述,YOLOv5-Ghost-CA 算法不僅在推理速度方面比YOLOv5算法有很大提升,而且在實際檢測效果方面也優(yōu)于YOLOv5算法。

3.3 消融實驗對比

為了再次驗證YOLOv5-Ghost-CA 算法的有效性,在YOLOv5算法的網(wǎng)絡(luò)模型結(jié)構(gòu)中,在不同的位置上做了改進(jìn),具體結(jié)果如表5所示。

根據(jù)表5中的結(jié)果可知,YOLOv5+CA 是在YOLOv5 算法的基礎(chǔ)上只加入CA 注意力機(jī)制,模型平均精度提升了2.4%,但模型的參數(shù)量和計算量都有所增加,模型大小也比原模型大;YOLOv5+C3Ghost 是在YOLOv5 算法的基礎(chǔ)上只加入C3Ghost 模塊,模型的平均精度比YOLOv5算法提升2.82%,同時模型的參數(shù)量、計算量、模型的大小也大幅度降低;YOLOv5+C3Ghost+CA1 是融合了前兩種的添加方式,在YOLOv5算法的基礎(chǔ)上加入CA 注意力機(jī)制和C3Ghost 模塊,模型的平均精度比原模型提升了2.88%;YOLOv5+C3Ghost+CA2 是在YOLOv5+C3Ghost+CA1 添加方式的基礎(chǔ)上又在不同位置進(jìn)行添加,模型的平均精度提升了2.91%。本文的YOLOv5-Ghost-CA 算法與前面的算法相比,在模型的平均精度、參數(shù)量、計算量、模型的大小都達(dá)到了最優(yōu),訓(xùn)練所獲得的模型也更小,進(jìn)一步驗證了YOLOv5-Ghost-CA算法的有效性。

表5 不同位置改進(jìn)的模型對比結(jié)果

4 結(jié)語

綜上所述,本文首先建立一個符合實驗的中藥飲片的數(shù)據(jù)集,基于YOLOv5算法訓(xùn)練得到一個檢測中藥飲片的模型,針對YOLOv5算法的不足提出了一種輕量化的YOLOv5-Ghost-CA 算法,經(jīng)過訓(xùn)練該算法模型的mAP@0.5 可以達(dá)到98.37%,能夠準(zhǔn)確檢測中藥飲片,同時YOLOv5-Ghost-CA 算法也將參數(shù)量和計算量降到最低,可以很好地應(yīng)用于嵌入式設(shè)備當(dāng)中。接下來的工作,將嘗試通過基于Python 語言的Streamlit構(gòu)建識別中藥飲片的Web APP,可以在網(wǎng)頁端對中藥飲片進(jìn)行檢測識別,同時也可以部署到Streamlit 提供的Streamlit cloud 云端,供其他人訪問;同時YOLOv5-Ghost-CA 算法在平均精度方面還有提升的空間,今后也將繼續(xù)在此方面進(jìn)行研究,以期望達(dá)到更好的模型精度。

猜你喜歡
中藥飲片卷積精度
熱連軋機(jī)組粗軋機(jī)精度控制
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
卷積神經(jīng)網(wǎng)絡(luò)的分析與設(shè)計
超高精度計時器——原子鐘
從濾波器理解卷積
分析誤差提精度
基于DSPIC33F微處理器的采集精度的提高
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
中藥飲片市場監(jiān)管乏力
中藥飲片調(diào)劑中審方作用及改進(jìn)策略分析