陳鑫 王薇 朱銀東
關鍵詞:舌體分割;PSPNet;輕量化模型;注意力機制;遷移學習;卷積神經網絡
0 引言
望診是中醫四大治療手法之一,主要通過觀察患者面部、舌部進行初步診斷。而舌診作為中醫辨證論治的主要依據之一[1],在中醫望診中發揮著重要作用。它通過觀察舌苔的顏色和形態變化對患者的疾病有初步的感知及判斷,具有診斷便利、參考價值高的特殊優勢[2]。但是,由于醫生的主觀經驗不同且診療的客觀條件參差不齊,導致診療結果在一定程度上存在誤差,“人工智能+中醫舌診”因此應運而生。人工智能的本質是通過大量計算分析輔助決策,所以舌診的智能化臨床診斷離不開持續且規模龐大的數據支持,以達到計算機輔助分析舌象的效果[3]。近年來,隨著中醫計算機輔助診斷和舌診客觀化的加速發展,在中醫舌象的提取、分析和研究方面圖像處理技術和深度學習理論已廣泛應用,有效地實現了舌象特征的準確識別與分析和量化結果,建立簡單的舌象量化特征與中醫癥狀的映射標準,初步實現了舌象特征分析與智能診斷[4-6]。
作為舌診辯證化的重要環節,舌圖像分割想達到的效果是將舌體與背景分離,使其不受面部、嘴唇的干擾,只保留可用于分析舌體細節和有效的舌體部位,使患者的舌體信息不受外界環境影響,準確將干擾舌體特征分析的背景分割出去是后續所有研究分析的基礎[7]。
舌體分割方法主要包括:基于閾值的分割、基于能量泛函的分割以及深度學習方法等[8]。張靈等[9]采用Ostu法,確定舌體區域后自動選取閾值再進行分割,但準確率較低;陳宇等[10]提出改進Snake模型的舌體分割算法,引入了信息熵和Kapur的概念對經典的細菌覓食優化算法(BFOA) 進行優化,利用計算得出的最佳閾值將舌體圖像二值化,在舌體對稱的基礎上對二值化圖像的邊緣輪廓進行關鍵點提取,最后將關鍵點的集合差值形成的B-樣條曲線確定為Snake模型的初始輪廓,進一步計算出舌體輪廓,但不足之處在于計算量大,處理效率較低。
隨著深度學習在圖像識別領域被廣泛應用,為特征圖像中每個像素點打標簽分類的基本思想貫穿于許多場景解析過程中,并取得了不錯的效果[11]-[13]。深度學習與舌體分割結合本質上是基于舌體圖像的語義分類,將舌體圖像中不同的區域差異化處理,在利用卷積神經網絡(CNN) 進行模型訓練,實現在卷積和池化過程中集合并進一步增強語義特征,實現語義分割。顏建軍等提出基于CNN的Mask-R-CNN的舌體圖像分割方法。在邊緣點識別過程中添加一個分模塊,用來預測目標掩碼,再分別對每個類別預測對應的二元掩碼,并引入RoIAlign層,較少計算量,提高準確率。
目前來看,傳統的分割方法仍然需要人為監督,進行干預以及控制迭代運算,從而導致自動化效果差、計算過程冗余性高、分割效果差等。而機器學習及深度學習的出現雖說在一定程度上彌補了傳統方法的不足,但相關研究方法均存在邊緣分割粗糙、分割準確度低、模型可解釋性差等問題。針對以上問題,本文提出一種基于MobilNet的改進PSPNet的舌體圖像分割方法。
本文工作的創新之處在于:
使用輕量化且經過預訓練的MoblieNet神經網絡建立模型主干網絡,并引入改進后的注意力機制,保證準確度的條件下減少計算量,然后進行多次疊加的卷積操作后得到特征層;再通過PSPNet的金字塔模塊搭建加強特征提取網絡,對輸入的特征圖進行分層級的特征提取,得到不同尺寸的特征圖后進行融合,充分保留圖像有效信息特征。
利用遷移學習的理論特征,為模型設置預訓練的權重參數,并對特定層參數進行凍結,極大減少了所需的計算資源,減少訓練時間。經過實驗驗證,該模型在相對較少的訓練時間的情況下分割效果仍然有保證。
1 網絡模型概述
1.1 PSPNet
語義分割的本質是為圖像中每一個像素點分類,目前主流的場景解析分析框架主要是基于全卷積網絡(FCN) ,但由于場景的多樣性以及信息特征連貫性,語義分割的應用目前仍存在許多不足。基于空洞卷積的金字塔場景解析網絡(PSPNet) 發表于計算機視覺領域頂級會議(CVPR 2017) [14]。為有效解決銜接上下文信息特征的問題,該網絡提出了融合不同尺度特征的金字塔池化模塊,如圖1所示。
該模塊主要分為4個層級:第一層處理過程較為粗略,將輸入的特征層全局平均池化,生成單個數據流輸出;之后的第二、三層分別將特征層劃分為2×2、3×3個子區域,再對每個子區域平均池化(Avgpool) ;第四層的處理過程最為細化,將特征層劃分為6×6個子區域,再對每個子區域池化。而由于模塊中層級不同輸出的特征圖尺度也不同,為了保證全局特征的權重,在每個層級的最后都使用一次1×1卷積核,即降維處理計算。最后再將低維的特征圖上采樣(upsample) ,使其與原始的特征圖尺度相同。最后將不同的層級的特征圖拼接成為模塊的全局特征。
1.2 MobileNet
本文模型基于MoblieNet輕量級網絡作為特征提取網絡并保留其預訓練權重參數實現遷移學習,MoblieNet網絡如圖2所示。
該神經網絡主要由卷積層、批量歸一化、relu激活函數組成的瓶頸模塊與引入注意力機制的相同結構模塊交替堆疊組成,因所需計算資源少且性能較高被稱為輕量化模型。
MobileNet 的預訓練數據來自開源的VOC 數據集。數據集(訓練集和測試集)中包括21個類別的共21504張標注清晰,分割標簽完整有效的圖像。因此,得到的預訓練權重具備較強的泛化性,在小樣本數據圖像處理任務方面可以達到遷移學習效果,從而提高特征提取的效率和精準率。
1.3 注意力機制
在認知領域,人類注意力會下意識地關注想要關注的部分,同時忽略掉其他部分,而這也為合理利用信息處理資源提供的理論基礎。目前注意力機制需重點解決兩個問題:確定需要關注的部分、如何將有限的資源分配到需要處理的重要部分。如圖3所示,注意力機制主要可以分為Soft Attention與Hard Atten?tion,進一步可以繼續分為基于通道、多模態、聚類等多個角度的模塊。
本文將討論基于通道的幾種模塊類型:SE注意力模塊通過全連接網絡根據損失函數計算值(loss) 學習每個特征通道的重要程度(特征權重),并對特征進行提升且一直當前進程任務中不重要的特征;由于獲取SE模塊獲取所有通道效率較低,ECA注意力模塊完成了跨通道間信息交互且只需少量的參數,性能依然有明顯提升;CBAM注意力模塊在通道注意力機制的基礎上引入了空間注意力機制(spatial) ,可以使神經網絡更加關注圖像中對分類起決定作用的部分,進一步提升了模型性能。
1.4 本文網絡結構
受現實因素影響,醫療圖像樣本有限,因此在小樣本分割任務的基礎上,本文網絡結構如圖4所示,整體網絡由主干網絡(結構如圖5所示)、加強特征提取及基于特征進行預測共三個部分來實現。在本文提出的網絡結構s-PSPNet中,主干網絡在卷積和池化簡單堆疊的基礎上融入逆殘差思想,引入改進的注意力機制使得模型輕量化,并使用h-swishj函數代替swish 函數提高模型性能;加強特征提取采用PSP模塊,實現將不同的區域的上下文信息特征聚合,提高獲取全局信息特征的能力;最后對每一個像素點進行分類預測。
主干網絡在卷積基礎上使用具備線性瓶頸的逆殘差結構(bneck) ,先利用1×1卷積進行維度提升,再進行3×3與5×5的深度分離可卷積,使主干網絡具備殘差邊,通過卷積、批歸一化、激活函數減少梯度消失的可能,加速網絡收斂,模塊交替進行特征融合。再通過對注意力機制進行改進來降低通道數,減少計算量;加強特征提取網絡中將輸入進的特征層劃分為6×6、3×3、2×2、1×1 的區域,然后每個區域進行平均池化;最后先通過3×3的卷積核對特征進行整合,再利用1×1的卷積操作調整通道數匹配數據集,最后調整大小(resize) 進行上采樣使最后的輸出層的寬、高保持與數據集圖像一致,再對最后一個特征層的每一個特征點進行分類,將背景和舌體區分開來,精準完成舌圖像的分割。
2 實驗及結果分析
2.1 實驗準備
2.1.1 實驗數據
本文實驗數據集為Github網站的開源數據集,均使用標準舌象采集設備,數據完整且有效。數據集共300張舌象圖片,分辨率為768×576,且包含相對應的掩膜圖像。為提升模型的泛化效率,本文在原數據集基礎上隨機進行旋轉、縮放等圖像增強操作,最后得到400張圖像,其中380張以8∶2分為訓練集和驗證集,而其余20張作為測試集驗證模型,各數據集之間不存在重復數據。
圖像分割方面,模型訓練效果取決于舌體掩膜圖像是否有效且符合醫學規范,因此采用深度學習領域使用廣泛的監督學習方法,對數據集進行人工標注。具體包括:將圖像顏色深度統一為8位bit(像素值范圍為0~255) ,僅僅保留0和1兩個像素點,舌體部分為1像素點,其他無關背景由0像素點表示。本文使用LabelMe圖像標注工具對數據集中舌體部分輪廓進行標注,從而得到圖像的有效分割標簽(GroudTruth) ,標記過程如圖6所示。
2.1.2 實驗環境
本文實驗硬件環境:CPUIntel(R)Core(TM)i5-10200HCPU @ 2.40GHz、GPU NVIDIA GeForce GTX1650 Ti、顯存8GB、內存16GB;軟件環境:Windows10、Keras2.8.0 深度學習框架、TensorFlow 2.4.0、CUDA10.0。
2.2 實驗設置
2.2.1 遷移學習
由于醫療數據集在數量規模小,影響模型訓練效果,為了提高小樣本模型學習效率,本文將在VOC 數據集上的預訓練權重進行遷移學習。同時使用微調(fine-tune) 的訓練方法,預訓練權重參數載入之后對神經網絡特征提取層的網絡參數采取凍結操作,在根據效果不斷調整學習率訓練未凍結層的參數,完成加碼層訓練后,將所有參數解凍訓練,遷移學習可使得模型訓練效率以及圖像分割精度都有顯著提升。
在本文提出的模型中,將學習時期個數設置為100(Epoch) ,在前50個Epoch中,將模型的前3個小模塊(bneck1-3) 的參數凍結,將主要的訓練資源集中到bneck3后的s-Mobilenet模型未訓練的神經網絡參數,提取出與當前數據集相關度更高的特征。而在后50 個Epoch中解凍所有神經網絡參數,且當前數據集中進行一個微調操作,已達到提升分割精度的效果,以重新分配計算資源的方式平衡了網絡訓練時間,并提高了特征提取準確度。
2.2.2 訓練參數設置
在本文模型中,首先將圖像尺寸大小調整(resize) 為(224,224,3) ,以免造成網絡對圖像尺寸不兼容。模型訓練的過程中,Epoch設置為100,由于計算機顯卡計算性能有限,批尺寸(BatchSize) 設為2,初始學習率為0.0001,根據內存需求,選擇呢Adam優化算法,除初始學習率外均使用默認參數。本文使用的損失函數(Loss) 包含兩部分:交叉熵損失(Cross Entropy Loss) 與集合相似度度量函數(Dice Loss) ,計算方式如下:
可以看出,網絡損失與訓練次數呈正相關并逐漸趨于穩定。
2.2.3 實驗評價指標
本文實驗選取平均像素精度(MPA) 和平均交并比比(MIOU) 兩個指標作為分割模型的評價指標[15]。兩個指標是語義分割任務的經典評價指標,其中MPA 表示每個類別中得到準確預測像素點的比例,MIOU 在混淆矩陣的基礎上提出,指真實值與預測值兩個集合的交集和并集的比例,計算公式如下:
其中,N為分割過程中需要被分割部分的類別,本文中1(舌體)、nii為第i 類語義類別的真實像素點的數量、nij 為第i 類被模型錯誤預測為j 類的像素點的數量。
2.3 結果分析
為驗證本文提出的模型在舌象上方法的有效性以及分割表現,采取進行多次實驗進行對比,選擇傳統的PSPNet網絡、MobileV3-Net網絡與本文提出的神經網絡在相同數據集下進行分割效果評估的對比實驗。采用MPA、MIOU 作為評估指標,結果如表1 所示。由于傳統PSPNet網絡的特征提取層無法準確地勾勒出舌體外廓,丟失了很多邊緣信息,導致精度下降,分割效果較差;MobileNetV3由于其輕量級的特點模型參數顯著減少,但準確率與本文方法相比較低。本文的實驗模型從模型參數規模、模型訓練時間、分割精準率方面經過對比均有提升,客觀證明實驗有效可行。
可以看出,本文方法在保證分割精度不受較大影響的情況下,顯著降低了訓練時間。
3 結束語
舌象分割是否精準對后期識別分析有決定性作用,是進行舌象自動化研究與輔助中醫診療的基本條件。本文針對傳統舌象分割自動化程度低,將背景與舌體分割開后舌體邊緣細節嚴重丟失等問題,在深度學習和經典語義分割模型(PSPNet) 的基礎上提出了針對舌象的改進PSPNet 分割模型。本文使用Mo?bileNet網絡的輕量化特征提取結構代替原有的卷積模塊,并使用了遷移學習提高模型學習效率,再通過注意力機制的改進,降低了特征提取過程中的通道數及參數量,融入金字塔模塊有效保留了特征提取全過程的特征層信息。經過實驗對比證明,本文提出的網絡模型在中醫舌象數據集分割具有良好表現,在保證了精度的前提下,訓練時間降低了23%。但是該模型在處理特殊舌象,例如舌體齒痕嚴重,強曝光等,存在邊緣細節處理不當的情況。因此,未來將從多個角度對非標準舌體的分割進行研究,有效提高識別率是重中之重。