丁萬坤,周作建?,李紅巖,戰麗彬,王世東
(1. 南京中醫藥大學,江蘇 南京 210046;2. 遼寧中醫藥大學,遼寧 沈陽 100847;3. 北京中醫藥大學東直門醫院,北京 100700)
中醫學認為目與人體臟腑經絡緊密相連,通過目診不僅能夠了解臟腑盛衰,還可以預測將要發生的疾病,體現了中醫“治未病”的思想。具體來看,中醫目診即通過觀察患者眼睛各方面的變化診斷疾病,是中醫望診的重要組成部分,其歷史悠久,簡單易行,診斷明確。中醫目診早已用于癌癥、糖尿病、高血壓等多種疾病的診斷[1?2],而現代中醫目診則進一步融合了不斷發展的目診理論與技術,并借助多種現代化醫學設備進行眼部檢查和全身疾病診斷,如虹膜診斷法、眼底診斷法等。不僅如此,朱會明等[3]研究的中醫肝病目診系統,完成了從目像采集、目像處理到目像分類的全過程,并基于中醫“五輪”理論完成各部分的識別提取,再利用特征增強算法去除背景,最終通過設定目表血管紋理描述符完成了目部特征提取。
然而目前中醫目診研究多集中于臨床診斷方面,對目像的自動化分割研究較少,對中醫目診的智能化研究相對欠缺。在醫學其他領域,深度學習算法早已被廣泛應用于醫學圖像分割任務中[4?9]。例如王亞剛等[10]提出了一種基于改進DeeplabV3 + 的腸道息肉分割算法,編碼部分采用最優DPC 架構獲取多尺度特征,解碼部分采用3 層深度可分離卷積代替原有卷積,從而減少了上采樣中的信息丟失,有效提高了息肉分割精度。為有效實現中醫目診的標準化和智能化,針對捕獲的圖像進行精準的目像區域分割是智能目診的保障和基礎。本文提出的輕量化目像分割模型能夠快速識別并分割目像區域,且輕量化模型也可以嵌入微信小程序使用,從而保證模型在移動設備中也能快速部署和實現,為現代化中醫目診提供了有效的目像分割方法,推動了中醫目診智能化診斷的發展。
MobileNetV2 是2018年由谷歌團隊提出的輕量級網絡模型[11],核心是深度可分離卷積模塊,大大減少了模型的參數量,從而使得網絡收斂速度加快。深度可分離卷積網絡包括深度卷積和逐點卷積,計算量如公式(1)~(3)所示。
其中,DK*DK代表標準卷積,M和N分別代表輸入通道數和輸出通道數,DH代表特征圖的寬度和高度。C1代表深度卷積計算量,C2代表逐點卷積計算量,C代表深度可分離卷積計算量。
相比MobileNetV1,MobileNetV2 引入了線性瓶頸模塊和倒置殘差結構[12],線性瓶頸模塊可有效防止ReLu 函數在低維空間破壞信息,經過逐點卷積層之后直接輸出;倒置殘差結構則與ResNet 結構相反,先運用1*1 卷積進行升維,然后采用3*3 卷積進行特征提取,最后使用1*1 卷積作降維處理,保證在高維空間進行特征提取。見圖1。
DeeplabV3+是在DeeplabV3基礎上添加簡單的解碼模塊[13],構建了一個帶空洞的空間金字塔池化(ASPP)的編解碼結構[14?15],可以通過控制空洞卷積率的大小確定編碼模塊輸出特征圖分辨率的大小。DeeplabV3取消條件隨機場(CRF)結構后,DeeplabV3+利用編解碼結構增強邊緣分割效果,提高圖像分割精度。
DeeplabV3+的編碼模塊對輸入圖像進行下采樣,空間金字塔池化模塊可實現多尺度特征提取,DeeplabV3+編碼結構將空洞卷積與金字塔池化模塊相連接,并將改進后的Xception 卷積應用到解碼層,且在每次3*3卷積后加入批歸一化層(BN層)和ReLu激活函數。解碼模塊首先將底層特征進行1*1 卷積降維,與4倍雙線性插值上采樣操作的高級特征圖進行多尺度特征融合,通過3*3卷積和上采樣后輸出完整預測圖像。
精確度Dice[16?17]、平均交并比(MIoU)[18]是圖像分割中常用的評價指標。模型參數量是深度學習中衡量模型大小的常用指標。本文采用Dice、MIoU 和模型參數量作為評價指標分析目像分割結果。Dice是一種集合相似度度量函數,常用于計算兩個樣本之間的相似度,Dice取值為[0,1]。MIoU是一種語義分割的度量標準,計算預測值和真實值的交集與并集比值的平均值。
Dice和MIoU系數計算公式如下:
公式(4)代表Dice 計算過程,其中X代表預測像素,Y代表真實像素,|X∩Y|代表預測像素和真實像素的交集,|X|和|Y|分別代表預測像素和真實像素數量。
公式(5)中k代表分割類別數(不包含背景),TP代表真正例,FN代表假反例,FP代表假正例。
卷積神經網絡的模型參數量代表模型的空間復雜度,由卷積層參數量和全連接層參數量組成,池化層不含參數。模型參數量計算如公式(6)所示。
公式(6)中,kw*kh代表卷積核大小,nin代表卷積層輸入通道數,nout代表卷積層輸出通道數,kw*kh*nin*nout代表模型卷積層參數量;min代表全連接層輸入通道數,mout代表全連接層輸出通道數,min*mout代表模型全連接層參數量,二者之和即為模型參數量P。
本文提出了基于MobileNetV2優化的DeeplabV3+模型實現目像分割的方法,具體實現主要包括目像數據集準備和目像分割模型構建兩個部分。其中,目像數據集準備階段進行數據增強和目像標注等圖像預處理操作,目像分割模型構建部分則設計了模型的整體架構。
本實驗中目像數據通過MyEyeD-10 白睛無影照相機進行采集,分別采集雙目左、右、上、下和正視五個角度的目像數據,每個數據的圖像分辨率為960*640。
2.1.1 數據增強
神經網絡模型通常包括大量參數,模型訓練時需要輸入海量數據。當獲取的目像數據較少時,往往難以滿足模型訓練需要,極易產生過擬合現象。本實驗將通過縮放、旋轉、鏡像、平移以及調節亮度、色度、對比度等方法進行數據增強操作[19],將目像數據集擴充至310張,并按26∶4∶1比例分為訓練集、測試集和驗證集。
2.1.2 目像標注
Lableme是跨平臺的標注工具,可根據任務的需要進行多邊形、多線段、矩形、圓形等不同形式的標注。本文在進行訓練數據的準備工作中即采用Labelme 進行目像區域的標注,同時標注信息生成json 文件。為便于卷積神經網絡讀取標簽文件,將json 文件轉換成png 文件,包括Labelme 標注圖像和標簽可視化圖像。見圖2。
本實驗采用基于MobileNetV2 優化的DeeplabV3+網絡模型(以下簡稱DeeplabV3+_MobileNetV2),整體架構如圖3 所示。利用MobileNetV2 代替Xception 網絡作為主干特征提取網絡,優化現有的DeeplabV3 + 算法,既能大大減少模型參數量,實現模型的輕量化設計,又可以保證深度卷積在高維度完成特征提取,提升模型計算性能。
在編碼層中,通過MobileNetV2網絡和空洞率為6、12和18的ASPP模塊進行目像特征提取,對并行卷積后產生的特征信息進行特征融合(concatenate),送入1*1卷積層壓縮,輸出高級語義特征信息;在解碼層中,將編碼層產生的低級語義信息通過1*1卷積降維,與經過4倍上采樣之后的高級語義信息進行特征融合(concatenate),最終將融合后的特征圖進行3*3卷積和4倍上采樣操作,恢復圖像空間分辨率,經過SoftMax層后輸出目像分割結果圖。SoftMax分類器輸出如公式(7)所示。
公式(7)中,k代表類別個數,本實驗中將圖像分為眼球和背景兩類,因此k=2,x代表像素位置,αk(x)代表輸出像素x對應的第k個通道的值,Pk(x)代表像素x屬于第k類的概率。
模型輸入為目像數據,首先通過resize 操作將目像大小轉換成(416*416*3),對輸入數據進行np.random. shuffle 處理,模型訓練過程中批處理尺寸batch_size 設定為2,采用Adam 算法進行優化,共進行50 輪訓練(Epoch = 50)。實驗目標是將初步采集的目像分為眼球和背景兩類,為衡量預測值與真實值之間的概率分布差異,損失函數采用二值交叉熵損失函數(binary_crossentropy),如公式(8)所示。
公式(8)中,N代表樣本數,yi代表標簽0 或1,pi代表預測值。
由于原始目像數據集數量有限,難以滿足模型訓練的需求,導致模型準確率下降。針對上述問題,在小樣本數據集上采用在ImageNet 上訓練好的MobileNetV2模型預訓練權重進行遷移學習,并在此基礎上進行微調,不僅可以提高模型的泛化能力,減輕過擬合現象,還可以減少模型訓練時間,同時提高目像分割算法的精度和效率。
本文實驗硬件環境為Intel(R)Core(TM)i5-9400F CPU @ 2.90 GHz、RAM 為16 G DDR4、顯存為6 G 的NVIDIA GeForce GTX 1660,實驗軟件環境為Windows 10專業版、python3.6 版本的 Anaconda3-5.2.0、tensorflow-gpu1.13.1、keras2.2.4,基于tensorflow 和keras混合編碼搭建模型。
為評價目像分割結果,選用Dice、MIoU 和模型參數量等指標綜合評價本文方法,在測試集上計算Dice、MIoU 的平均值,DeeplabV3 + _MobileNetV2 模型的Dice 和MIoU 分別為96.31%和95.85%。為進一步驗證本文方法的有效性,實驗與DeeplabV3 + 模型和基于MobileNetV2 的PSPNet 模型(以下簡稱PSPNet_MobileNetV2)進行了對比。PSPNet核心結構是金字塔池化模塊(PPM),與ASPP 模塊有相似之處,但是PPM缺少空洞卷積和空間池化層。
幾種不同方法的結果經比較,DeeplabV3+的Dice和MIoU 分別為93.89%和93.24%,PSPNet_MobileNetV2 的Dice和MIoU分別為96.02%和95.54%,兩個模型的分割精度均低于DeeplabV3+_MobileNetV2模型。在參數量方面,DeeplabV3+_MobileNetV2優勢更加明顯,其參數量不足DeeplabV3 + 的1/15、PSPNet_MobileNetV2 的1/4。見表1。

表1 目像分割評價指標
DeeplabV3 + _MobileNetV2 模型訓練準確率和損失曲線見圖4。訓練集和驗證集準確率隨Epoch 增加而升高,Loss 隨Epoch 增加逐漸下降,最終趨于0 且穩定,訓練集Loss 趨近于0.008,驗證集Loss 趨近于0.018,訓練集和驗證集Loss 均將低于0.1,表明DeeplabV3+_MobileNetV2模型最終收斂。
此外,筆者還對目像分割結果進行了定性分析。為使其可視化,隨機展示一張測試集圖片分割結果,同時,為更好地顯示邊緣分割效果,圖中將放大局部區域進行展示,見圖5。 結果顯示,DeeplabV3 + _MobileNetV2 模型分割結果最好,邊緣分割最為平滑;其次是PSPNet_MobileNetV2模型,邊緣分割不平滑,呈現鋸齒狀;分割結果最差的是DeeplabV3+模型,邊緣分割不夠準確。
中醫目診作為望診的組成部分之一,在中醫診病和疾病預測中起到了重要作用,然而目前中醫目診智能化發展仍處于起步階段,依然存在很多問題。本文提出了基于MobileNetV2與DeeplabV3+相結合的目像智能化分割算法,實現了輕量化的目像分割模型設計。將MobileNetV2作為目像特征提取網絡,大大減少了模型參數量;通過DeeplabV3+解碼層實現特征融合,有效提升特征利用率,實現目像區域精準分割,模型分割精度可達96.31%。表明實驗提出的基于MobileNetV2 優化的DeeplabV3+模型能夠實現中醫目像的自動化、智能化分割,從而為中醫目診智能化發展提供了新方法和新思路。