











〔摘要〕 目的 通過機器學習分析“舌邊白涎”舌象特性,對舌象進行局部特征識別研究,探討卷積神經網絡算法在舌象識別應用中的性能。方法 使用Python進行圖像預處理,搭建用于舌象識別的視覺幾何組16層(visual geometry group 16, VGG16)卷積神經網絡模型,分析其對“舌邊白涎”舌象鑒別分析的效果,并結合熱力圖分析“舌邊白涎”典型舌象表現。結果 基于PyTorch框架,進行卷積神經網絡的舌象鑒別研究,VGG16及殘差網絡50層(residual network 50, ResNet50)模型驗證準確率均較高,達到80%以上,且ResNet50模型優于VGG16模型,可為舌象識別提供一定參考。基于加權梯度類激活映射(gradient-weighted class activation mapping, Grad-CAM)技術,通過舌苔舌色差異分布的網絡可視化,有助于直觀進行模型評估分析。結論 基于卷積神經網絡模型對舌象數據庫進行分析,實現“舌邊白涎”舌象識別,有助于臨床診療的客觀化輔助分析,為舌診智能化發展提供一定借鑒。
〔關鍵詞〕 卷積神經網絡;視覺幾何組;Python;人工智能;舌邊白涎
〔中圖分類號〕R241" " " " "〔文獻標志碼〕A" " " " " 〔文章編號〕doi:10.3969/j.issn.1674-070X.2024.07.016
Tongue image recognition of \"white saliva on the tongue side\"
based on convolutional neural network
LI Qiuhua1,2, SHI Guofeng2, LI Yuebo1, REN Lu1*
1. Liaoning University of Chinese Medicine, Shenyang, Liaoning 110847, China; 2. The Second Hospital of
Liaoning University of Chinese Medicine, Shenyang, Liaoning 110034, China
〔Abstract〕 Objective To study the local feature recognition of tongue image through machine-learning analysis on the characteristics of \"white saliva on the tongue side\", and to explore the performance of convolutional neural network algorithms in identifying tongue images application. Methods Python was used for image preprocessing, and visual geometry group 16 (VGG16) convolutional neural network model was built for tongue image recognition. The effect of the model on tongue image recognition of \"white saliva on the tongue side\" was identified and analyzed, and the typical tongue image performance of \"white saliva on the tongue side\" was analyzed combined with heat map. Results Based on PyTorch framework, tongue image identification research of convolutional neural network was carried out. The verification accuracy of VGG16 and residual network 50 (ResNet50) models were high, reaching over 80%, and the ResNet50 model outperformed the VGG16 model, providing a certain reference for tongue image recognition. Based on gradient-weighted class activation mapping (Grad-CAM) technology, the network visualization of the difference distribution of tongue coating and tongue color was helpful for intuitive model evaluation and analysis. Conclusion The analysis of tongue image database based on convolutional neural network model can realize the tongue image recognition of \"white saliva on the tongue side\", which is helpful for objectified auxiliary analysis in clinical diagnosis and treatment, and provides some references for the intelligent development of tongue diagnosis.
〔Keywords〕 convolutional neural network; visual geometry group; Python; artificial intelligence; white saliva on the tongue side
望舌主要包括望舌質的神、色、形、態及舌苔的顏色、厚薄與潤燥等。但相關望舌苔的研究中,未單獨論及“舌邊白涎”現象,這類舌象主要是被歸屬于“舌苔黏膩”范疇。多數研究者認為,舌邊白涎的形成與情志刺激及情志疾病相關[1],“舌邊白涎”由朱良春先生于20世紀80年代提出,并首見于其弟子俞淦琪[2]的研究文獻中。“舌邊白涎”是指患者首次就診時,舌象可見舌兩側邊緣各現一條由白色涎沫聚凝而成的、斷續或連貫的線索狀泡沫帶[2-4]。
人工智能機器學習算法在圖像裁剪、去噪、分類、調節、分析方面,識別效果較好,可以推進舌診的客觀化、智能化發展[5-6]。本研究將圖像處理與卷積神經網絡技術相融合,選取“舌邊白涎”舌象為切入點,將圖像處理和卷積神經網絡技術應用到中醫舌象識別,實現臨床診療的客觀化輔助分析。應用Python進行圖像預處理,通過PyTorch平臺,基于視覺幾何組16層(visual geometry group 16, VGG16)卷積神經網絡模型[7-8],搭建舌象識別卷積神經網絡模型,對舌象特征進行精準識別和多維度定量分析,對比卷積神經網絡模型舌象識別的效果。同時,通過加權梯度類激活映射(gradient-weighted class activation mapping, Grad-CAM)方法[9],可視化解析卷積神經網絡模型,為舌診的智能化發展提供一定的借鑒。
1 材料與方法
1.1" 數據來源
本文舌象采集自2018年7月至2021年7月就診于遼寧中醫藥大學附屬第二醫院的患者。采集舌象保存建檔,存儲為JPG格式,共采集醫案(包含舌象)合計405例,由3名副主任中醫師以上職稱人員對舌象進行判定記錄,同時結合Grad-CAM方法,通過熱力圖進行篩選,最終結合主客觀雙重判斷,構建“舌邊白涎”的舌象組(觀察組)與非“舌邊白涎”的舌象組(對照組)的舌象數據集。其中,觀察組共計178例,對照組共計227例。舌象數據采集過程的基本要求:患者在舌象拍攝采集前1 h內,不可食用有可能導致舌苔染色的食物、飲料或者藥物,因舌體收縮、顫動、卷曲等影響舌象照片清晰的情況不予納入;拍攝舌象時,需要將患者上下嘴唇及舌體整體均攝入,女性患者需要在拍攝前清除口紅等,在拍攝舌象圖片時,避免光線過強或過暗。
1.2" 研究方法
1.2.1" 舌象采集分割方法" 為保證良好的特征識別,保留患者舌體的有效信息,分割有效的舌象細節,分類識別舌體,主要圍繞舌質、舌苔展開,聚焦于舌質的神色和形態以及舌苔的質地和顏色,將機器學習應用于圖像識別領域,進而提高識別準確度、泛化能力。
1.2.2" 圖像預處理" 標注舌部輪廓,去除干擾因素,應用Python的cv2庫,將原始圖像縮放成224×224×3像素,裁剪去噪處理、分割,提取舌象形狀、紋理和顏色特征,經過量化、對比、色彩調節,進行模糊、調亮、調暗、水平或垂直翻轉、移動、旋轉(30°、60°、90°、180°、270°)、0值填充處理,經過預處理,擴充圖像,建構訓練集及測試集舌象。
1.2.3" 模型訓練" 訓練基于VGG16、殘差網絡50層(residual network 50, ResNet50)舌象特征分類模型,卷積層主要用于提取圖像特征。數學表達式為:
Hi=f(Wi+Hi-1+bi)①
公式中:Hi代表第i層的特征圖;f指激活函數;Wi表示第i層的卷積核的權重值;Hi-1表示第i-1層輸入的特征圖;bi表示第i層的偏移量。
池化層即匯聚層,用于進行特征選擇,降低特征數量,從而減少參數數量。全連接層則是對提取的特征進行非線性組合,產生輸出結果。分類輸出時,使用Softmax函數進行分類,函數表達式為:
Softmax(zi)=②
公式中:zi為第i個節點輸出值,e為指數函數,為指數函數的zi次冪,ezc為指數函數的zc次冪,C為輸出節點個數,即分類的類別個數,通過Softmax函數可將多分類的輸出值轉換為范圍在[0, 1]和為1的概率分布。從輸入層輸入圖像,進入卷積層,通過過濾器進行卷積運算,運算結果是從數據中提取的特征。多次卷積、下采樣,行全連接,獲取特征[10],整合后得到輸出層,詳見圖1。
對模型進行訓練,將模型迭代次數作為模型最終訓練結束標志,應用驗證集進行驗證,記錄驗證準確率。具體模型訓練流程見圖2。
1.2.4" VGG16模型" VGG模型是一種深度卷積神經網絡[11]。VGGNet相當于在傳統卷積神經網絡模型基礎上的拓展,是針對較為復雜的模型結構的設計。VGG模型通過使用多個卷積層和池化層來提高網絡的深度,并通過在每個卷積層后添加ReLU激活函數來提高網絡的非線性能力。針對過擬合的問題,可以通過增加訓練數據集的樣本數量,減少模型對訓練數據的過度擬合,提高模型的泛化能力,在應用訓練圖像數據時,可采取隨機水平翻轉或隨機RGB色差的方法,來增加數據集,對經過縮放的圖片進行隨機排序,選擇尺寸為224×224像素的訓練圖像。
(1)卷積層的計算公式為:
Y[i, j]=X[i+m, j+n]·W[m, n]+b③
其中,X為輸入特征圖,Y為輸出特征圖,W為卷積核,b為偏置項,i和j分別代表卷積核的第i行和第j列,m、n為維度。
(2)最大池化層的計算公式為:
Y[i, j]=X[2i+m, 2j+n]④
其中,X為輸入特征圖,Y為輸出特征圖,m和n為維度,取0或1,用于選擇局部區域中的最大值。
(3)全連接層的計算公式為:
Y=ReLU(W·X+b)⑤
其中,ReLU為線性整流函數,Y為輸出特征圖,W為卷積核,即權重矩陣,X為輸入特征圖,b為偏置項。
VGG網絡的訓練過程使用基于隨機梯度下降的反向傳播算法,用于優化網絡參數,實現對圖像分類任務的準確預測。
1.2.5" ResNet50模型" 2015年,微軟團隊提出ResNet,在獲得分類任務、目標檢測及圖像分割方面具有積極意義[12]。ResNet由殘差學習模塊構成,在分類問題上表現出較好的性能,很多網絡模型均在ResNet基礎之上設計。在引入殘差學習模塊后,打破了神經網絡深度限制,提高了網絡的訓練效率和性能。近些年,ResNet50在ImageNet大規模視覺識別中體現出較好表現的主流算法。在給定的圖像上選擇候選區域,然后對這些區域進行特征提取,最后使用訓練分類器進行分類識別[13-14]。
(1)ResNet50網絡結構。ResNet中,每個conv層后均使用批歸一化,進行Xavier初始化。而BN層的加入,對于抑制過擬合具有一定作用。
(2)殘差網絡單元圖。ResNet網絡關鍵是結構中的殘差單元,單元中包含跨層連接,曲線可以將輸入直接跨層傳遞,進行同等映射,其后與經過卷積操作的結果相加。
假設輸入圖像:x,輸出:H(x),中間經卷積后,輸出為F(x)非線性函數,最終輸出:H(x)=F(x)+x,對輸出進行非線性變換,殘差即“差”F(x),網絡轉化為求殘差函數F(x)=H(x)-x,應用Focal Loss損失函數,調整難、易分類樣本的權重,使模型更關注難分類樣本,殘差網絡單元示意圖詳見圖3。
1.2.6" Grad-CAM" 本研究通過Grad-CAM方法,實現可視化解析卷積神經網絡模型,可讓模型最終卷積層中的目標形成比較粗略的定位,將其對模型貢獻最高的部位以熱力圖形式展示[15]。
1.2.7" 環境構建及模型參數" (1)環境構建。顯卡:NVIDIA GeForce GTX 1080Ti,CPU:Intel Core i7-9700K,32 GB內存。在Linux系統中,基于PyTorch-gpu 1.11.0、CUDA Toolkit 10.2深度學習相關軟件包,使用Python 3.9語言。(2)訓練舌象分類模型設計。訓練批次大小設為64,訓練樣本數量為64,每一個批次處理完,更新一次參數。訓練輪次epochs 200輪,學習率為0.000 1,應用PyTorch深度學習框架中的優化算法Adam模型優化器。
2 結果與分析
基于VGG16、ResNet50卷積神經網絡模型的舌象特征分類模型,訓練、保存舌象特征分類模型實驗結果,模型訓練時長:VGG16 0.2 h,ResNet50 0.6 h。相關數據集的訓練準確率和驗證準確率情況如下:VGG16訓練準確率為99.6%,驗證準確率為77.2%;ResNet50訓練準確率為99.2%,驗證準確率為77.6%。詳見圖4—5。
基于圖4—5可以看出,訓練準確率明顯高于驗證準確率,且驗證集準確率曲線波動起伏較大,模型泛化能力差,出現過擬合。進一步通過圖像預處理算法進行擴充,再次訓練。
再次訓練后,VGG16訓練準確率為99.8%,驗證準確率為81.4%;ResNet50訓練準確率為99.3%,驗證準確率為82.8%。驗證集準確率曲線的波動幅度較小,表明模型識別效果較好,能較好地識別“舌邊白涎”舌象的特征,且ResNet50模型優于VGG模型。詳見圖6—7。
與VGG16模型的結果相比,ResNet50模型曲線收斂較好,說明模型可以很好地學習到“舌邊白涎”舌象的特征。詳見圖8—9。
通過Grad-CAM可視化分析,將“舌邊白涎”舌象進行熱力圖展示,在模型最終卷積使用梯度加權類激活映射分析,捕獲高級別的圖像語義及空間信息,進行典型“舌邊白涎”舌象的熱力圖展示,直觀展示出不同苔質的局部區域差異性。應用Grad-CAM進行深度學習網絡可視化分析,有助于模型的評估,辨析舌象的類別差異性分區,提取出“舌邊白涎”舌象兩側白涎線這一重要特征,提供給研究者更加直觀的信息以輔助診斷。詳見圖10。
3 討論
PyTorch是一個擁有自動求導功能的強大的深度神經網絡[16]。近幾年來,相關醫工學科交叉融合、相關技術與醫學的融匯越來越密切[17]。人工智能技術在臨床醫學診療活動中的應用日益廣泛[18]。目前,中醫學與人工智能主要應用成果包括舌診、脈診設備以及診療系統等,舌象是中醫的主要診察手段,也是研究的熱點之一,基于各種算法以及相關理論的舌象研究在持續更新換代。
舌診屬于中醫辨證論治的重要依據,關于舌象的臟腑分區與經絡的關系,在《靈樞·經脈》中有“厥陰者肝脈也……而脈絡于舌本也”的記載,梁玉瑜在《舌鑒辨正·全舌分經圖》中指出“舌邊分主五臟六腑,舌邊左主肝,右主膽”,吳坤安在《傷寒指掌·察舌辨證法》中提出“滿舌屬胃……兩旁屬肝膽”,沈月光的《傷寒第一書·舌上三圖總論》中也指出“舌之尖屬心經……兩旁屬肝膽”,將舌象臟腑做了明確分區。從臟腑辨證來看,舌面兩側在從屬上是肝膽所主。舌診中少陽經所主部位在舌兩側,兩側見白涎屬肝膽疏泄失常,少陽經氣運行受阻。朱良春教授提出“舌邊白涎”,即舌之兩側邊緣各有一條由泡沫聚凝而成的線索狀涎沫[19]。有學者將舌之兩側泡沫狀白涎排列線稱為“舌纓線”,并且指出這種線常對稱分布[20]。“舌邊白涎”是一種病理信號,是肝郁氣滯、脾失健運之征,朱良春教授常以豁痰滲濕、調氣開郁的方法論治本病。臨床上,常見情志不遂之人舌邊有白涎,津液輸布障礙,循經脈上泛,舌邊兩側對應肝膽,故見“舌邊白涎”。有學者認為,“舌上白涎”反映機體存在復雜的病理狀態[21],非獨小柴胡湯主之,柴胡類方皆主之[22]。可見“舌邊白涎”舌象的分析研究具有一定臨床探索價值。有學者稱之為“液線”[23]。王彥暉將其稱為“肝郁線”,認為這種舌象與肝膽氣滯具有相關性[24]。也有學者指出,“舌邊白涎”屬于少陽證,主以小柴胡湯治療,故命名為“小柴胡線”[21]。
本研究中的訓練基于VGG16、ResNet50卷積神經網絡模型的舌象特征分類模型,其中VGG可以看作對Alexnet的改進,整個網絡由卷積層和全連接層疊加而成,增大了網絡的非線性能力。ResNet引入殘差學習和深度可分離卷積,解決了深度神經網絡中的梯度消失和信息丟失問題,為深度加深打下基礎。本研究發現,ResNet50模型性能相對較好,具有較為優秀的識別效果。結合熱力圖可視化分析,對不同舌象圖像區域的關注程度差異度進行區別,確定舌邊特定區域對辨識的貢獻,判斷模型的舌象特征,有助于對模型進行評估。
深度學習技術與醫學相結合,可以為醫學診療提供新的技術手段,通過自動分析舌象圖像,完成舌診的客觀化研究,減少主觀判斷診斷的偏差,保障辨識結果的可靠性[25]。本研究團隊下一步將整理大樣本的臨證醫案,包含癥狀、體征等信息,將文本識別與圖像識別聯合建模,探索“舌邊白涎”舌象與抑郁及焦慮等評分的相關性,以及與相關主要癥狀的內在關聯。
參考文獻
[1] 邱義勇, 熊永法. 情志病研究概述[J]. 江西中醫藥, 2023, 54(2): 78-80.
[2] 俞淦琪. 朱良春“舌邊白涎”診法的經驗[J]. 北京中醫, 1988, 7(6): 8-9.
[3] 陳雪蓮, 吳星星, 劉可心, 等. 舌涎芻議[J]. 江蘇中醫藥, 2021, 53(2): 72-73.
[4] 張佳元, 王天芳, 楊浩婕. “舌邊白涎”形成機理的初步探討[J]. 現代中醫臨床, 2015, 22(6): 42-43.
[5] 佘楷杰, 袁艿君, 馬慶宇, 等. 機器學習驅動中醫診斷智能化的發展現狀、問題及解決路徑[J]. 中國中醫基礎醫學雜志, 2024, 30(3): 398-406.
[6] 張曉維, 張曉雨, 趙" 晨, 等. 循證視角下數智中醫廣義望診研究及相關裝備研制思路[J/OL]. 中國實驗方劑學雜志, 1-8[2024-06-07]. https://doi.org/10.13422/j.cnki.syfjx.20240927.
[7] 沈筱梅, 張新穎, 王權泳, 等. 基于卷積神經網絡的涎腺腫瘤超聲圖像分類研究[J]. 臨床超聲醫學雜志, 2023, 25(10): 849-855.
[8] 廖清江, 劉" 婷, 張星月, 等. 基于VGGNet的人臉表情識別研究[J]. 軟件工程, 2023, 26(11): 59-62.
[9] 張明凱, 胡軍國, 劉江南, 等. 基于深度學習的可視化圖表分類方法研究[J]. 電子技術應用, 2024, 50(5): 58-65.
[10] GU J X, WANG Z H, KUEN J, et al. Recent advances in convolutional neural networks[J]. Pattern Recognition, 2018, 77(C): 354-377.
[11] 何依婷. 基于孿生網絡的肺部圖像識別[J]. 電視技術, 2023, 47(7): 24-27.
[12] 朱家群, 王東陽, 顧玉宛, 等. 基于多尺度融合CNNs特征和Transformer特征的顯著目標檢測[J]. 常州大學學報(自然科學版), 2023, 35(6): 35-44.
[13] 邵定琴, 張" 乾, 岳詩琴, 等. 基于ResNet50網絡的年齡估計[J]. 信息與電腦(理論版), 2021, 33(1): 21-24.
[14] 杜元翰, 湯" 銘, 查易藝, 等. 融合注意力機制與全局特征網絡的行人重識別算法研究[J]. 測試技術學報, 2023, 37(1): 37-42.
[15] 曾子強. 基于Grad-CAM聯合Mask R-CNN的乳腺鉬靶圖像分類可信度分析[D]. 南昌: 南昌大學, 2023.
[16] 陳昭明, 洪錦魁. PyTorch深度學習應用實戰[M]. 北京: 清華大學出版社, 2023: 23.
[17] 景城陽, 戴澤琦, 吳" 雪, 等. 中醫藥領域預測模型研究的可視化分析[J]. 中國實驗方劑學雜志, 2024, 30(14): 209-217.
[18] 陳美伊. 人工智能技術在醫療系統中的應用[J]. 電子技術, 2023, 52(9): 313-315.
[19] 李韜芝, 賈立群, 楊閃閃, 等. 賈立群對白涎線舌象的認識[J]. 中醫學報, 2023, 38(1): 83-87.
[20] 張麗寧. 原發性干燥綜合征的舌象特點及其與疾病活動度的相關性研究[D]. 北京: 北京中醫藥大學, 2022.
[21] 李" 敏, 何慶勇. 基于“舌上白胎”試論小柴胡線[J]. 中醫雜志, 2021, 62(10): 917-920.
[22] 魯穎曄. 從“舌邊白涎”淺論柴胡證[J]. 浙江中醫雜志, 2023, 58(4): 269-270.
[23] 何" 勇, 陳曉雯. 舌診“液線”分析[J]. 山東中醫雜志, 2017, 36(4): 335-336.
[24] 李鵬飛, 劉" 培, 張辰龍, 等. 王彥暉治療痰郁互結型甲狀腺功能亢進癥經驗[J]. 中醫藥通報, 2022, 21(12): 14-16.
[25] 孫忠人, 游小晴, 韓其琛, 等. 人工智能在中醫藥領域的應用進展及現狀思考[J]. 世界科學技術: 中醫藥現代化, 2021, 23(6): 1803-1811.