張 楊,辛國(guó)江,王 鑫,朱 磊
(湖南中醫(yī)藥大學(xué) 信息與工程學(xué)院,湖南 長(zhǎng)沙 410208)
舌診對(duì)于中醫(yī)的望診來(lái)說(shuō)是一項(xiàng)必不可少的步驟,通過(guò)觀(guān)察舌象診斷人體病理變化[1]。傳統(tǒng)舌象分析是依靠中醫(yī)醫(yī)生的判斷分析,但是由于光照、環(huán)境、濕度等自然環(huán)境因素影響,極易造成診斷人員的視覺(jué)疲勞[2],從而導(dǎo)致誤診延誤患者病情。正確客觀(guān)的舌診可以幫助醫(yī)生更好地分析病人的身體狀況,從而更快確定患者病情。同時(shí)智能舌診分析是舌診客觀(guān)化的重要部分,舌診智能提取是舌診智能化的關(guān)鍵。
國(guó)內(nèi)眾多學(xué)者使用傳統(tǒng)機(jī)器學(xué)習(xí)的方式,如張新峰等[3]使用粒子群優(yōu)化算法對(duì)SVM模型參數(shù)進(jìn)行優(yōu)化,對(duì)舌象測(cè)試樣本具有很好的分類(lèi)效果。顏建軍等[4]使用隨機(jī)森林模型對(duì)建立的齒痕舌特征向量進(jìn)行分類(lèi),進(jìn)而完成齒痕舌的分類(lèi)。王奕然等[5]使用Adaboost算法對(duì)舌象進(jìn)行初次分類(lèi),然后結(jié)合級(jí)聯(lián)框架的方式完成舌色的分類(lèi)任務(wù)。以上傳統(tǒng)機(jī)器學(xué)習(xí)方法雖然能夠較好地分類(lèi)提取舌象,但還是存在一定不足:算法的穩(wěn)定性難以達(dá)到日常中醫(yī)望診的需求,需要人為輔助;算法的時(shí)間復(fù)雜度較高;檢測(cè)過(guò)程受自然環(huán)境影響較大,抗干擾能力較弱。
近年來(lái),隨著卷積神經(jīng)網(wǎng)絡(luò)的流行,深度學(xué)習(xí)在圖像領(lǐng)域得到快速發(fā)展[6]。國(guó)內(nèi)外學(xué)者將深度學(xué)習(xí)方法應(yīng)用到舌象檢測(cè)與分割領(lǐng)域。目前主流的目標(biāo)檢測(cè)算法主要分為雙階段檢測(cè)算法和端到端檢測(cè)算法。雙階段檢測(cè)算法主要包含:R-CNN(Region-CNN)[7],SPP-Net[8],Fast R-CNN等?;诙说蕉说臋z測(cè)算法包含YOLO系列算法 和SSD算法。Tang等[9]在一階段引入級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)檢測(cè)舌象區(qū)域,在二階段將舌象區(qū)域發(fā)送到分別以ResNet-50和VGG-16為主干的細(xì)粒度分類(lèi)網(wǎng)絡(luò)完成舌象識(shí)別。劉夢(mèng)等[10]通過(guò)遷移學(xué)習(xí)對(duì)500例舌象進(jìn)行分類(lèi)研究,圖像識(shí)別結(jié)果顯示,Faster R-CNN算法不受舌象中病例位置的影響,對(duì)舌象分類(lèi)效果具有很強(qiáng)的適應(yīng)性。劉佳麗等[11]首先在YOLOv3網(wǎng)絡(luò)上添加密集連接,使網(wǎng)絡(luò)融合底層特征信息,然后結(jié)合通道減枝,縮減模型大小,最后完成裂紋舌的分類(lèi)。雙階段檢測(cè)算法精度較高,但對(duì)候選框修正分類(lèi),需要消耗大量的時(shí)間。與其相比,端到端的網(wǎng)絡(luò)無(wú)需產(chǎn)生大量的候選框,可以預(yù)測(cè)出邊界框,無(wú)需占用大量的內(nèi)存空間,同時(shí)能保證一定的精度,適合移動(dòng)端的部署。
針對(duì)內(nèi)存空間和精度問(wèn)題,該文采用YOLOv5[12-14]檢測(cè)算法。該算法具有更快的檢測(cè)速度,更小的參數(shù)量,更適合移動(dòng)端的部署。
YOLOv5的網(wǎng)絡(luò)架構(gòu)包括:輸入端、主干網(wǎng)絡(luò)、頸部模塊和輸出端。
主干網(wǎng)絡(luò)包含F(xiàn)ocus模塊、C3模塊和空間金字塔池化模塊(SPP)。其中Focus主要是對(duì)特征圖進(jìn)行分片的操作,相當(dāng)于做池化操作,可以降低運(yùn)算的次數(shù),提高舌象檢測(cè)的速度。C3模塊控制 YOLOv5模型的寬度與深度,形成不同參數(shù)量的模型。SPP模塊可以提升舌象特征圖的感受野。
頸部模塊包含特征金字塔(FPN)模塊和路徑聚合網(wǎng)絡(luò)(PAN)模塊。特征金字塔模塊自頂向下將高層的信息與底層的信息進(jìn)行融合增強(qiáng)對(duì)小目標(biāo)的檢測(cè)能力。路徑聚合網(wǎng)絡(luò)模塊自底向上將底層的信息與高層的信息進(jìn)行融合,增強(qiáng)多個(gè)尺度的定位信息。
輸出端包括CIOU損失函數(shù)和非極大值抑制(NMS)。CIOU損失函數(shù)綜合考慮了檢測(cè)框與真實(shí)框的重疊面積,預(yù)測(cè)框之間長(zhǎng)寬比,檢測(cè)框與真實(shí)框中心點(diǎn)之間的歐氏距離。非極大值抑制作用是篩選YOLOv5檢測(cè)出的眾多框,剔除冗余預(yù)測(cè)框,篩選出符合舌象的高質(zhì)量檢測(cè)框。
YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

圖1 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)
由于自然環(huán)境存在光照弱、有遮擋等復(fù)雜場(chǎng)景,針對(duì)YOLOv5s模型在自然環(huán)境下存在誤檢、漏檢的問(wèn)題,該文提出ReLu激活函數(shù)解決模型在識(shí)別舌象過(guò)程中存在指數(shù)運(yùn)算和網(wǎng)絡(luò)過(guò)擬合等問(wèn)題,Ghost輕量化模塊減少卷積次數(shù),使模型規(guī)模減小,SimAm注意力機(jī)制解決模型特征融合能力差的問(wèn)題,在YOLOv5s舌象檢測(cè)網(wǎng)絡(luò)的基礎(chǔ)上實(shí)現(xiàn)上述改進(jìn),提出了適應(yīng)復(fù)雜自然環(huán)境的YOLO-RGS舌象檢測(cè)網(wǎng)絡(luò)。
YOLO-RGS結(jié)構(gòu)如圖2所示。

圖2 YOLO-RGS結(jié)構(gòu)
ReLu激活函數(shù)的函數(shù)圖像與SiLU激活函數(shù)的函數(shù)圖像如圖3所示,x表示神經(jīng)網(wǎng)絡(luò)的特征輸入。ReLu激活函數(shù)中當(dāng)神經(jīng)網(wǎng)絡(luò)輸入是負(fù)值時(shí),神經(jīng)元將會(huì)被滅活,使舌象檢測(cè)網(wǎng)絡(luò)具有稀疏性特征。當(dāng)舌象檢測(cè)網(wǎng)絡(luò)具有稀疏性特征時(shí),可以更好挖掘自然狀態(tài)下的舌象特征,擬合訓(xùn)練模型網(wǎng)絡(luò)。

圖3 ReLu激活函數(shù)和SiLU激活函數(shù)
由于部分舌象圖像是在自然環(huán)境中選取的,圖像中對(duì)于舌象的檢測(cè)主要區(qū)分舌象與背景。ReLu激活函數(shù)將神經(jīng)元輸入是負(fù)值時(shí),把神經(jīng)元滅活,降低復(fù)雜自然環(huán)境對(duì)舌象檢測(cè)的影響,同時(shí)去除SiLU激活函數(shù)中的指數(shù)運(yùn)算,達(dá)到減少運(yùn)算量的目的。該文將YOLOv5s的CBS結(jié)構(gòu)的SiLU激活函數(shù)替換為ReLu激活函數(shù),替換后的CBR結(jié)構(gòu)如圖4所示。

圖4 CBR結(jié)構(gòu)
ReLu激活函數(shù)的公式為:
ReLu(x)=max{0,x}
日本提出裝配式結(jié)構(gòu)的理念是在20世紀(jì)60年代。在裝配式發(fā)展的基礎(chǔ)上推出部件化、構(gòu)件化、工業(yè)化的生產(chǎn)方式。中高層住宅生產(chǎn)體系可高效率生產(chǎn),其內(nèi)部住宅結(jié)構(gòu)可變。在推動(dòng)產(chǎn)業(yè)結(jié)構(gòu)和規(guī)?;恼{(diào)整過(guò)程中,建筑結(jié)構(gòu)形式經(jīng)歷了四個(gè)過(guò)程,分別是多樣化、標(biāo)準(zhǔn)化、工業(yè)化、信息化。
(1)
SiLU激活函數(shù)的公式為:
(2)
Ghost[15]結(jié)構(gòu)如圖5所示。圖6中GhostConv模塊為改進(jìn)的Ghost模塊。Ghost模塊步驟:首先,使用標(biāo)準(zhǔn)Conv操作生成眾多冗余的特征圖;然后,對(duì)生成的冗余特征圖采用線(xiàn)性變化得到另外部分卷積特征圖;最后,將生成的冗余特征圖與線(xiàn)性變化的特征圖拼接得到Output的輸出。Ghost模塊通過(guò)線(xiàn)性變化生成的部分特征圖,減少大量卷積操作。

圖6 改進(jìn)的BottleNeck結(jié)構(gòu)
舌象檢測(cè)網(wǎng)絡(luò)進(jìn)行卷積操作時(shí)會(huì)產(chǎn)生大量計(jì)算,經(jīng)過(guò)卷積操作后得到眾多的冗余特征圖,同時(shí)舌象檢測(cè)網(wǎng)絡(luò)應(yīng)用于移動(dòng)端的設(shè)備,存在內(nèi)存限制、存儲(chǔ)空間和算力限制等問(wèn)題。針對(duì)這一類(lèi)問(wèn)題,該文將對(duì)YOLOv5s網(wǎng)絡(luò)進(jìn)行輕量化處理,利用改進(jìn)的BottleNeck模塊替換原有的BottleNeck。GhostConv模塊通過(guò)線(xiàn)性變化生成的部分卷積特征圖代替原有卷積生成的部分冗余特征圖,減小模型的大小,以達(dá)到移動(dòng)端設(shè)備對(duì)存儲(chǔ)空間的要求。改進(jìn)的BottleNeck結(jié)構(gòu)如圖6所示。
SimAm注意力機(jī)制不同于通道注意力只關(guān)注于通道特征,也不同于空間注意力機(jī)制關(guān)注于不同位置特征,它是一種3-D注意力機(jī)制。SimAm注意力機(jī)制是基于神經(jīng)科學(xué)理論,利用具有更多信息的神經(jīng)元與其相鄰神經(jīng)元相比更加重要的特性,通過(guò)定義線(xiàn)性可分性的能量函數(shù)在保證運(yùn)算高效的同時(shí)對(duì)每個(gè)神經(jīng)元進(jìn)行重要度評(píng)估。SimAm結(jié)構(gòu)如圖7所示。

圖7 SimAm結(jié)構(gòu)
由于舌象檢測(cè)網(wǎng)絡(luò)受到小目標(biāo)的遮擋與弧形相似物體干擾等問(wèn)題干擾,該文在舌象檢測(cè)網(wǎng)絡(luò)中添加SimAm[16]注意力機(jī)制,通過(guò)對(duì)舌象特征權(quán)重進(jìn)行全面高效的評(píng)估,多維度融合舌象信息,進(jìn)而強(qiáng)化舌象的目標(biāo)信息,弱化自然背景信息,實(shí)現(xiàn)對(duì)舌象的關(guān)注。
實(shí)驗(yàn)環(huán)境使用Pytorch搭建,操作系統(tǒng)為Windows10,GPU型號(hào)為NVIDIA GeForce RTX 3080,運(yùn)行內(nèi)存為10 GB,編程語(yǔ)言為Python,編譯器為Pycharm,CUDA為11.0。參數(shù)設(shè)置如表1所示。

表1 參數(shù)設(shè)置

圖8 舌象數(shù)據(jù)集
評(píng)價(jià)指標(biāo)采用查準(zhǔn)率(Precision)、查全率(Recall)、平均精度均值(mean Average Precision,mAP)。
查準(zhǔn)率:將預(yù)測(cè)正樣本真實(shí)情況是正樣本的比例。查準(zhǔn)率如式3所示:
(3)
查全率:將預(yù)測(cè)正樣本真實(shí)情況是正樣本,占全部真實(shí)情況是正樣本的比例。查全率如式4所示:
(4)
平均精度:繪圖將計(jì)算的舌象Recall為橫軸,計(jì)算的舌象Precision為縱軸圍成的面積是平均精度(AP)。平均精度如式5所示:
(5)
平均精度均值:YOLOv5在所有類(lèi)別的平均精度的均值,其中,N表示被檢測(cè)目標(biāo)的類(lèi)別數(shù),AP為單類(lèi)別目標(biāo)的平均精度。平均精度均值如式6所示:
(6)
3.4.1 與其它方法對(duì)比
YOLOv7算法模型參數(shù)量達(dá)到了72.1 MB,遠(yuǎn)高于YOLOv5s模型的參數(shù)量,由于模型參數(shù)量越小部署越容易,所以選擇YOLOv5s為改進(jìn)的基準(zhǔn)算法。YOLO-RGS在自然狀態(tài)下舌象的檢測(cè),與目前常用的目標(biāo)檢測(cè)的算法進(jìn)行了對(duì)比實(shí)驗(yàn),算法是Faster R-CNN[17],SSD[18],YOLOv4-tiny[19-23],YOLOv5s[24-26]和YOLOv5m[27],以上算法的對(duì)比實(shí)驗(yàn)均在IOU=0.5下完成,如表2所示。

表2 常用檢測(cè)網(wǎng)絡(luò)對(duì)比
YOLO-RGS與兩階段的Faster R-CNN檢測(cè)算法相比在查全率上低5.3百分點(diǎn),但是在查準(zhǔn)率和平均精度均值上遠(yuǎn)遠(yuǎn)優(yōu)于Faster R-CNN。YOLO-RGS與SSD檢測(cè)算法相比在查全率上低2.1百分點(diǎn),其它各指標(biāo)均優(yōu)于SSD模型。YOLO-RGS在查準(zhǔn)率、查全率、平均精度均值和Speed上均遠(yuǎn)遠(yuǎn)高于YOLOv4-tiny和YOLOv5m的模型指標(biāo)。YOLO-RGS 98.2百分點(diǎn)的查準(zhǔn)率、91.8百分點(diǎn)的查全率和96.6百分點(diǎn)的平均精度均值均遠(yuǎn)勝于YOLOv5s 94.8百分點(diǎn)的查準(zhǔn)率、87.4百分點(diǎn)的查全率和93.6百分點(diǎn)的平均精度均值,但在檢測(cè)速度上略低于97幀/s的YOLOv5s。從表2中可以看出YOLO-RGS算法與其他對(duì)比算法在查準(zhǔn)率、查全率以及平均精度均值等方面,具有較明顯的優(yōu)勢(shì)。
在實(shí)際應(yīng)用上物體的檢測(cè)速度應(yīng)當(dāng)至少達(dá)到30幀/s,識(shí)別速度越高,檢測(cè)物體的速度越快,在實(shí)際應(yīng)用中實(shí)時(shí)檢測(cè)效果越好。常用檢測(cè)網(wǎng)絡(luò)的識(shí)別速度只有YOLO系列算法達(dá)到30幀/s的檢測(cè)速度。文中的檢測(cè)速度達(dá)到了86幀/s,雖然略低于YOLOv5s的97幀/s,但遠(yuǎn)遠(yuǎn)高于實(shí)際應(yīng)用的檢測(cè)速度。
在舌象檢測(cè)設(shè)備的部署上,模型參數(shù)量越小,在舌象檢測(cè)設(shè)備上部署越容易。文中改進(jìn)模型參數(shù)量為7.8 MB,相比兩階段的Faster R-CNN和端到端的SSD有大幅度縮減。YOLO-RGS算法網(wǎng)絡(luò)模型參數(shù)量減小到Y(jié)OLOv5s模型的55百分點(diǎn),更適合移動(dòng)端的部署且改進(jìn)的算法在自然狀態(tài)下舌象檢測(cè)精度更高。
3.4.2 消融實(shí)驗(yàn)
消融對(duì)比實(shí)驗(yàn)的目的是為驗(yàn)證添加各個(gè)模塊對(duì)網(wǎng)絡(luò)的優(yōu)化作用,實(shí)驗(yàn)結(jié)果如表3所示。YOLO-R表示ReLu激活函數(shù)替換原有激活函數(shù)SiLU;YOLO-RG表示在YOLO-R的基礎(chǔ)上把BottleNeck替換為輕量化的Ghost-BottleNeck;YOLO-RGS表示在YOLO-RG的基礎(chǔ)上添加SimAm注意力機(jī)制。從表3中的數(shù)據(jù)可以看出:引入ReLu激活函數(shù)替換激活函數(shù)SiLU后,在識(shí)別速度和參數(shù)量不變的情況下,YOLO-R相比于YOLOv5s mAP提升了2.3百分點(diǎn),說(shuō)明ReLu激活函數(shù)可以更好地?cái)M合舌象檢測(cè)網(wǎng)絡(luò),大幅提高舌象檢測(cè)的精度;引入輕量化模型Ghost,代替YOLO-R網(wǎng)絡(luò)的BottleNeck,雖然mAP有所降低,但是參數(shù)量大幅下降,同時(shí)檢測(cè)速度由97幀/s下降到88幀/s,是由于DWConv卷積對(duì)流水線(xiàn)CPU適用,在專(zhuān)用GPU下沒(méi)有效率,導(dǎo)致檢測(cè)幀數(shù)下降;引入SimAm注意力機(jī)制的舌象檢測(cè)網(wǎng)絡(luò),在不增加參數(shù)量的情況下,相比于YOLO-RG 的mAP提升了1.2百分點(diǎn)。YOLO-RGS模型相較于YOLOv5s模型雖然檢測(cè)速度有所下降,但是網(wǎng)絡(luò)的精度獲得較大提升,并且網(wǎng)絡(luò)的復(fù)雜度降低,更加適合移動(dòng)端的部署。

表3 消融實(shí)驗(yàn)
3.4.3 可視化分析
為了體現(xiàn)YOLO-RGS算法的性能,將以下3種算法進(jìn)行定性分析。從實(shí)驗(yàn)中隨機(jī)抽取圖像,在同一測(cè)試環(huán)境下,3種檢測(cè)網(wǎng)絡(luò)的檢測(cè)結(jié)果示例如圖9所示。
由Image1所示,Image1舌診儀下采集,YOLOv5s,YOLO-RGS和YOLOv5m都對(duì)舌象的檢測(cè)效果較好;Image2和Image3中存在遮擋物體和弧形形狀物體,且干擾物體與舌象正面弧形相似,YOLOv5s均不能對(duì)存在干擾物體的舌象做出較好檢測(cè),YOLOv5m對(duì)干擾物體做出部分檢測(cè),但YOLO-RGS均可以較好檢測(cè);Image4中存在弧形形狀干擾并且圖中背景顏色相似,YOLOv5s和YOLO-RGS均能做出檢測(cè),但YOLOv5m存在誤檢;Image5中存在灰度背景,可以模擬昏暗環(huán)境下舌象采集,導(dǎo)致YOLOv5s和YOLOv5m存在漏檢;Image6中存在舌象不完全吐露,3種算法均有較好檢測(cè)效果;Image7中對(duì)于多舌象檢測(cè),均有較好檢測(cè)效果。對(duì)于存在相似物體遮擋的、多舌象以及小目標(biāo)舌象,YOLO-RGS均能做出檢測(cè),不但檢測(cè)精度高,還能適應(yīng)復(fù)雜的自然環(huán)境變化,具有很強(qiáng)的魯棒性。
在自然環(huán)境中獲取舌象時(shí)受到自然光線(xiàn)強(qiáng)度和物體形態(tài)的影響,導(dǎo)致模型存在精度低和計(jì)算量大等問(wèn)題。該文將Ghost輕量化和YOLOv5結(jié)合運(yùn)用在自然環(huán)境舌象檢測(cè)場(chǎng)景,通過(guò)施加SimAm注意力機(jī)制來(lái)加強(qiáng)舌象信息的融合,并調(diào)整激活函數(shù)為ReLu來(lái)提升檢測(cè)舌象的精度。實(shí)驗(yàn)結(jié)果表明,YOLO-RGS算法在自然環(huán)境舌象檢測(cè)中具有一定的實(shí)時(shí)性和可靠性,能夠判斷采集圖像是否存在舌象,為后續(xù)舌象采集工作提供實(shí)際應(yīng)用參考。