江智泉,周作建,鮑劍洋,戰麗彬,郎許峰,商洪濤
(1.南京中醫藥大學人工智能與信息技術學院;2.南京中醫藥大學中醫學院·中西醫結合學院,江蘇南京 210046;3.南京中醫藥大學附屬醫院,江蘇 南京 210029)
中醫舌診是中醫辨證論治的主要依據之一,在中醫診斷學中具有重要地位[1]。其通過觀察舌質舌苔的顏色和形態變化感知患者疾病,具有診斷過程方便、診斷價值高的獨特優勢[2]。但由于醫師主觀經驗和診療客觀條件的影響,診察結果可能出現誤差。因此,中醫舌診的臨床診斷需要依靠更高的信息化和智能化提供定量的數據支撐,以實現舌圖像的自動化分析[3]。近年來,隨著中醫自動診斷和舌診客觀化進程的不斷推進,圖像處理技術和機器學習方法被廣泛運用于中醫舌象的提取、分析和研究中,有效實現了舌象特征的精準辨識和結果量化,建立了舌象量化特征和中醫病癥的映射標準,初步實現了自動化的舌象分析和智能診斷[4-6]。
舌圖像分割是舌診客觀化的重要環節,舌像分割的目的是從舌圖像中去除臉部、嘴唇等無關干擾環境,分割出可用于分析的顏色細節和真實的有效舌部位,充分保留患者的舌體信息,排除無關背景對舌體進一步分類識別的干擾,是后續分類研究的前提和基礎[7]。
目前,對舌體的有效分割方法主要有基于閾值的分割方法、基于能量泛函的分割方法和基于深度學習的方法等[8]。姜朔等[9]利用Otsu 閾值的方法,二值化處理舌圖像并結合先驗知識進行聚類,結合形態學自適應修正方法,實現舌體當量直徑自適應選取結構元素的大小,實現分割范圍的自適應修正,可以較好地實現舌圖像分割,但存在效率不高的問題;劉晨星等[10]提出一種改進的Snake 算法模型,該模型引入Perona-Malik 方法強化輪廓界限,通過梯度矢量流模型(Gradient Vector Flow,GVF)優化圖像外力場,進而提取舌體輪廓,該方法有效解決了傳統Snake 算法對不規則舌體輪廓的逼近效果欠缺問題,優化了分割效果,但存在計算量大和需要手工選取閾值的缺點。
隨著深度學習在圖像識別領域地位的不斷提高,基于像素點分類的圖像語義分割方式在多應用場景都取得了不錯的應用效果[11-13]。通過對舌體圖像進行語義分類處理,差異化圖像中的不同區域,再通過神經網絡(CNN)進行端到端的訓練,在卷積和池化過程中匯聚和增強語義信息,實現語義分割,成為新的解決方案。張新峰等[14]提出一種基于深度卷積神經網絡和條件隨機場的舌圖像分割算法,使用孔卷積的DCNN 和空間金字塔池化模型,實現多尺度特征的自動提取,有效細化了舌體邊緣,提高了分割準確性。
傳統方法仍依賴一定的人為干預及迭代運算,由此帶來了自動化程度低、時間復雜度高以及分割效果不理想等問題。深度學習方法可以有效地改進傳統方法的弊端,提高自動化程度和分割效率,但諸多方法存在邊緣細節丟失、分割精度不高等問題。針對上述問題,本文提出了一種基于VGGNet-Unet 的中醫舌圖像分割方法。
本文的創新點在于:①使用結構簡單、特征提取效果好且經過預訓練的VGGNet16 神經網絡建立主干特征提取網絡,通過多次卷積實現特征提取,并通過U-Net 網絡模型構建加強特征提取網絡實現對特征圖的上采樣和特征融合,有效保留高底層細節信息,提高分割精度;②使用遷移學習方法,設置預訓練權重并凍結特定層的參數,提高網絡學習效率。實驗證明,該模型具有較好的分割效果。
醫學圖像通常具有圖片隱私性高、保密性強、圖像語義信息簡單且固定等特點。針對這類圖像的處理分析任務,網絡模型需要兼顧圖像的高級語義信息和低級特征,在保證物體識別準確率的同時,提供精準分割定位依據,有效補充語義信息并細化分割輪廓[15]。本文方法采用了U-Net 網絡模型并對其進行改進,使用VGGNet16 替換UNet 初始主干特征提取網絡,簡化了模型結構,并通過引入遷移學習提高學習效率。
U 型語義分割網絡(U-Net)發表于跨醫學影像計算(MIC)領域頂級會議MICCAI[16]。其基本特征是完全對稱的U 型結構和跳越連接層(Skip-connection),由于其U 型編解碼結構和層次堆疊操作(跳躍連接層)可以高度保留高低層細節,在小樣本圖像處理任務上具有較好的分類效果,滿足醫學圖像樣本少、特征固定等特點,因此被廣泛應用于醫學圖像分割和任務分類。
在U-Net 網絡中,編碼層(Encoder)需要進行4 次下采樣,共下采樣16 倍,在其對稱解碼層(Decoder)中,進行了4次上采樣,將Encoder 中獲得的高級語義特征圖恢復到原始尺寸。同時,為了確保分辨率的有效還原,減少壓縮過程中的特征細節損失,U-Net 采用Skip-connection,將同一層級的特征圖進行融合堆疊,恢復上采樣中的區域分割信息,以保留底層語義信息,細化分割邊緣,從而得到更高的分割準確率。
該模型采用VGGNet16 作為特征提取網絡并使用其預訓練權重實現遷移學習,VGGNet16 的網絡結構如圖1 所示。該神經網絡主要由卷積層、ReLU 激活函數、2*2 最大池化和全卷積層組成,它通過反復堆疊3*3 的小型卷積核和2*2 的最大池化層,成功構建了16~19 層深的卷積神經網絡,具有結構簡單和性能高效的特點[17]。
VGGNet16 的預訓練權重源自大型數據庫ImageNet。ImageNet 是一個具有5 247 個類別共計320 萬張清晰標注圖像的龐大干凈圖像數據集[18],具有規模大、層級密度深、準確度高和多樣性復雜等特點。因此,該預訓練權重具有較好的泛化性和魯棒性,可以在少樣本數據的圖像處理任務中實現遷移學習效果,提高特征提取效率和精度。

Fig.1 Network structure of VGGNet16圖1 VGGNet16 網絡結構
為了滿足小樣本分割任務需要,本文整體網絡結構如圖2 所示,由主干特征提取網絡、加強特征提取網絡及預測部分組成。其中,主干特征提取網絡是卷積和池化的堆疊,加強特征提取部分包含連續上采樣(UpSampling2D)、堆疊(Concatenate)和卷積(Conv2D)操作,預測部分使用了1*1 卷積,實現對每一個像素點的分類。

Fig.2 Overall network structure圖2 整體網絡結構
主干特征提取網絡由卷積和最大池化組成,使用VGG?Net16 的3*3 卷積核和2*2 池化核替換原始網絡,包含5 個卷積模塊和4 次池化操作。通過13 次卷積操作提取圖像特征和4 次最大池化降低特征維度,不斷壓縮特征圖的尺寸并增大通道數,獲得5 個初步有效的特征層。
加強特征提取部分對原始U-net 網絡解碼部分進行改進,主要改進特征融合方法,在上采樣過程中去除剪切(Crop)操作,直接進行2 倍上采樣和堆疊操作(Concate?nate),保證輸入圖像和輸出圖像的尺寸一致性。通過對主干網獲得的5 個有效特征層進行上采樣和特征融合,獲得一個融合所有特征的可用于最終像素點分類的最終特征層。
最后利用1*1 的卷積操作對最終特征層的每一個特征點進行分類操作,區分背景和舌體,完成精準的語義分割。
2.1.1 實驗數據
本文數據由江蘇省中醫院體檢科提供,數據采集設備是DS01-A 型舌面脈信息采集系統。由于原始數據集包含人臉等信息,前期對數據進行脫敏處理,去除患者面部等有效身份信息,實驗數據來源有效且符合倫理審查規范,保證了實驗的合理性。數據集包含320 張分辨率為365 像素×365 像素的標準舌圖像,其中300 張按照8∶2 的比例劃分為訓練集和驗證集,剩余20 張作為測試集進行模型驗證,各數據集之間無重復數據。
在深度學習圖像分割領域,仍采用監督學習方法,準確有效的標準舌體掩膜圖像是模型訓練的關鍵,因此需要對數據集進行人工標注,在標注結果中,圖像顏色深度為8位bit(像素值范圍0~255),僅保留0 和1 這兩個像素點,舌體部分表示為1 像素點,無關背景表示為0 像素點。使用LabelMe圖像標注工具對舌像中的舌體輪廓進行舌體標注,得到圖像有效分割標簽(GroundTruth)。數據集標注過程如圖3 所示。

Fig.3 Dataset annotation圖3 數據集標注
2.1.2 實驗環境
本文實驗硬件環境:CPUInter Core i7-9750H@2.60GHZ、GPU NVIDIAGeForceGTX1660Ti、顯存6GB、內存16GBDDR4;軟件環境:Window10、Keras2.2.4 深度學習框架、TensorFlow 1.14.0、tensorflow-gpu1.13.2 及CUDAV10.0。
2.2.1 遷移學習與凍結訓練
為了提高模型在少樣本數據集上的學習效率,使用VGGNet16 的預訓練權重進行遷移學習。使用微調(finetune)的訓練方法,在載入模型權重并凍結特征提取層的網絡參數后,使用合適的學習率對未凍結層進行參數訓練,完成解碼層的參數訓練后,解凍所有參數進行訓練,該方法可以很好地提高模型訓練效率和任務分割精度[19]。
在該模型中,設置100 個學習時期(Epoch),在前50 個Epoch 中,對模型的前18 層特征提取網絡(Block1~Block5)進行參數凍結,主要訓練Block5 后Unet 模型中未訓練過的網絡參數,從而提取出與當前數據集更加相關的高級特征。在后50 個Epoch 中,對全部網絡結構進行一個解凍操作并在當前數據集進行參數微調,從而獲取更高精度的分割模型,有效地均衡網絡訓練時間,提高特征提取準確性。
2.2.2 訓練參數設置
在該模型的網絡中,首先對輸入圖像進行一個resize操作,輸入圖像的維度統一轉換成(512,512,3),使得網絡可以兼容不同尺寸的輸入圖像。在模型訓練中,Epoch 設為100,批尺寸(BatchSize)根據顯卡性能選擇為2,初始學習率為0.000 1,優化算法選擇內存占用更小、計算更高效的Adam 算法,Adam 參數配置中除學習率外均采用默認參數,損失函數采用Dice 相似系數(LossDice)和交叉熵函數平均值(LossCE)作為組合損失函數Loss,計算公式如式(1)—式(3)所示。

使用早停機制尋找合適的迭代次數,實驗訓練過程中訓練集loss、驗證集loss 與Epoch 的關系如圖4 所示。可以看出,隨著訓練次數的增加,網絡損失逐漸收斂并趨于穩定。

Fig.4 Change of loss function圖4 損失函數變化
2.2.3 實驗評價指標
實驗中,采用平均像素精度(MPA)和平均交并比(MIOU)兩個指標獲取模型分割效果的量化結果[20]。該指標是語義分割任務中的標準評判指標,MPA 表示每個語義類別被準確預測的像素點比例,MIOU 表示計算真實值和預測值兩個集合的交集和并集之比,計算公式如式(4)、式(5)所示。

其中,N 表示分割過程中需要分割出的類別,實驗中為1 類(舌體部分)、nii表示第i類語義類別的真實像素數量、nij表示第i類語義被模型誤判為j類像素點數量。
為了驗證本文模型在中醫舌圖像上方法的有效性和實際分割性能,采用對比實驗方法,選取傳統U-Net 網絡、Mobile-Unet 方法以及本文網絡在相同實驗數據集下進行模型分割效果評估。采用平均像素精度和平均交并比以及訓練時間作為評價指標,結果如表1 所示。由于傳統UNet 網絡的特征提取層無法精確獲取舌像邊緣,特征融合后帶來了精度損失問題,使得分割結果較為粗糙。Mobile-Unet 方法在一定程度上減少了模型的參數量,但在準確率上低于本文方法。本文方法在模型參數量、訓練時間、準確率及可視化分割效果等方面均優于對比網絡,證明了實驗的有效性。

Table 1 Evaluation index of the model表1 模型評價指標
為了直觀展示不同模型方法的分割效果,選取測試集中的部分圖片進行分割,可視化結果如圖5 所示。由圖可見,傳統U-Net 對舌體邊緣細節識別度低,仍保留了大量無關細節,分割效果較差。Mobile-Unet 方法通過深層次的卷積雖然可以有效切割舌體邊緣,但仍損失了部分舌體信息。本文方法可精確識別舌體邊緣和舌像細節,還原出完整的最接近真實標簽的舌體,具有良好的分割效果。
舌圖像精準分割是后期舌像分類識別的重要前提,對舌圖像自動化識別研究具有重要意義。本文針對傳統舌圖像分割方法自動化程度低、舌圖像輪廓細節模糊等問題,結合深度卷積神經網絡和U-Net 網絡模型等方法,提出了一種針對中醫舌圖像的改進U-Net 分割方法。本文使用VGGNet16 網絡的卷積模塊替代原始特征提取模塊,使用遷移學習方法提高了學習效率,通過U-Net 的堆疊和特征融合有效保留了低層次的細節信息。通過對比實驗證明,本文網絡方法在中醫舌圖像數據集上具有良好的分割效果,分割精度達97.91%,在分割準確率和效率上優于傳統方法。但該算法在特殊舌圖像上存在一些問題,在對齒痕舌、蜷曲舌等不規則舌體的處理中,存在細節和邊緣誤判情況。因此,對多形態非標準舌體分割進行研究,提高算法識別率仍是未來研究方向。