馬龍祥,楊 浩,宋婷婷,翟鵬博,余 亢
(1.中國(guó)科學(xué)院微電子研究所,北京 100029; 2.中國(guó)科學(xué)院大學(xué),北京 100049)
舌診作為中醫(yī)望診的重要方面,在中醫(yī)現(xiàn)代化進(jìn)程中起著關(guān)鍵性作用。由于舌的形態(tài)、大小以及濕潤(rùn)程度可反映出各部位器官的狀態(tài),是人體健康狀況的客觀表征,因此舌診的標(biāo)準(zhǔn)化研究對(duì)于整個(gè)中醫(yī)現(xiàn)代化體系建設(shè)具有重要意義[1]。在當(dāng)前舌診數(shù)字化流程中,拍攝到圖像所包含臉頰、下巴、嘴唇等其他部位信息會(huì)影響舌象特征的提取,進(jìn)而對(duì)舌診造成干擾。如何從圖像中精準(zhǔn)提取舌體區(qū)域是當(dāng)前亟待解決的問題。
舌診數(shù)字化圖像處理方法主要包括傳統(tǒng)圖像處理方法和深度學(xué)習(xí)圖像處理方法。其中,最大類間方差法[2]、基于HSV空間閾值的方法[3]以及基于Snakes能量最小化原理的方法[4]等傳統(tǒng)圖像處理方法根據(jù)像素之間差異進(jìn)行區(qū)域劃分來完成舌象分割,對(duì)像素之間差異較小的部分無法進(jìn)行有效分割。深度學(xué)習(xí)方法因其具有全自動(dòng)處理、魯棒性高以及速度快等特點(diǎn),在圖像分割特別是舌象分割領(lǐng)域具有一定優(yōu)勢(shì)[5-6]。文獻(xiàn)[7]使用VGGNet[8]作為基礎(chǔ)架構(gòu)實(shí)現(xiàn)了Fsnet深度學(xué)習(xí)算法在舌象語義分割方面的應(yīng)用。文獻(xiàn)[9]對(duì)比了全卷積網(wǎng)絡(luò)(Fully Convolutional Networks,FCN)[10]、SegNet[11]、Mask-RCNN[12]、Deeplab[13]等深度學(xué)習(xí)算法在舌象分割方面的應(yīng)用。用于圖像分割的深度學(xué)習(xí)方法主要分兩種,一種是由FCN演變得到的SegNet和Unet[14]語義分割方法,另一種是改進(jìn)R-CNN[15]所得Mask-RCNN實(shí)例分割方法。FCN是一種encoder-decoder網(wǎng)絡(luò)結(jié)構(gòu),在進(jìn)行舌象區(qū)域分割時(shí),其數(shù)次下采樣和上采樣的結(jié)構(gòu)設(shè)計(jì)會(huì)使舌象區(qū)域丟失部分邊緣信息。而基于Mask-RCNN的實(shí)例分割方法是將舌體區(qū)域單獨(dú)作為實(shí)例進(jìn)行識(shí)別,在處理舌象數(shù)據(jù)時(shí),分割出的舌體區(qū)域較實(shí)際舌體區(qū)域偏小,導(dǎo)致出現(xiàn)一定的欠分割問題。
針對(duì)上述舌象邊緣信息丟失的問題,本文提出一種結(jié)合區(qū)域定位和高分辨率網(wǎng)絡(luò)[16]的舌象分割算法。使用殘差網(wǎng)絡(luò)(Residual Network,ResNet)[17]提取舌象原圖特征生成建議框,對(duì)其分類以判斷不同區(qū)域所屬類別,同時(shí)進(jìn)行回歸處理以調(diào)整檢測(cè)框位置使其接近真實(shí)舌象區(qū)域,并采用高分辨率網(wǎng)絡(luò)提取該區(qū)域特征完成舌象分割。
舌象分割全過程分為區(qū)域定位和舌象分割2個(gè)階段。圖1為區(qū)域定位階段,先檢測(cè)圖像中舌體區(qū)域,去除對(duì)舌象分割造成干擾的嘴唇、下巴等區(qū)域,再采用卷積結(jié)構(gòu)(卷積層、ReLU激活層和池化層)提取圖像特征得到特征圖,從中選取區(qū)域建議框并進(jìn)行分類回歸處理后,獲取與原圖對(duì)應(yīng)的候選區(qū)域,從而完成區(qū)域定位得到舌體區(qū)域檢測(cè)框。圖2為舌象分割階段,針對(duì)區(qū)域定位階段得到的舌體檢測(cè)區(qū)域搭建高分辨率網(wǎng)絡(luò),以最大程度保留舌象的邊緣和形狀等特征。分辨率網(wǎng)絡(luò)結(jié)構(gòu)不同于傳統(tǒng)語義分割的encoder-decoder網(wǎng)絡(luò)結(jié)構(gòu),是在原圖的4個(gè)變換尺寸上進(jìn)行網(wǎng)絡(luò)訓(xùn)練,從而實(shí)現(xiàn)舌體區(qū)域的精準(zhǔn)分割。
圖1 區(qū)域定位階段Fig.1 Regional position stage
圖2 舌象分割階段Fig.2 Tongue image segmentation stage
由于采集的舌象數(shù)據(jù)通常較集中,舌體區(qū)域在整個(gè)圖像中的占比為0.15~0.25,除舌體區(qū)域以外其他部分均可視為背景區(qū)域,因此如果直接分割原圖會(huì)形成過多的背景區(qū)域,對(duì)舌象特征提取造成干擾。采用區(qū)域定位技術(shù)可從圖像中檢測(cè)出舌體區(qū)域,去除圖像分割中的干擾,從而實(shí)現(xiàn)圖像精準(zhǔn)分割。區(qū)域定位網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 區(qū)域定位網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Regional position network structure
由于殘差網(wǎng)絡(luò)能提取豐富的圖像特征,其效果較VGGNet和ZFNet[18]更優(yōu),因此本文選擇ResNet101作為基礎(chǔ)特征提取網(wǎng)絡(luò)。具體實(shí)現(xiàn)步驟如下:對(duì)于舌象原圖,先通過ResNet101提取圖像特征,在特征圖中生成一定數(shù)量的建議區(qū)域,從中選取含有正樣本和負(fù)樣本的區(qū)域建議框(該建議框和真實(shí)舌象區(qū)域重疊度大于0.7為正樣本,重疊度小于0.3為負(fù)樣本,正樣本數(shù)量少于總數(shù)量的1/2),區(qū)域建議框圖例如圖4所示。
圖4 區(qū)域建議框圖例Fig.4 Legend of regional suggestion box
然后利用錨點(diǎn)框(Anchor)確定候選框的位置,再通過ROI池化(ROI Pooling)進(jìn)行下采樣,最后對(duì)上述建議框進(jìn)行分類(Clf)以判斷不同區(qū)域所屬類別并對(duì)其做回歸(Reg)處理,以調(diào)整檢測(cè)框的位置使其更接近真實(shí)舌象區(qū)域。
分類和回歸處理包括標(biāo)準(zhǔn)化處理、分類損失和回歸損失計(jì)算。其中分類損失計(jì)算采用交叉熵?fù)p失[19],回歸損失采用Smooth_L1損失。在計(jì)算回歸損失時(shí),只對(duì)正樣本進(jìn)行損失計(jì)算,負(fù)樣本不參與損失計(jì)算。分類損失和回歸損失計(jì)算公式如下:
(1)
(2)
對(duì)分類損失和回歸損失分別進(jìn)行優(yōu)化,再反向傳播并更新網(wǎng)絡(luò)參數(shù),最終完成網(wǎng)絡(luò)訓(xùn)練。
針對(duì)區(qū)域定位出的舌象區(qū)域搭建高分辨率網(wǎng)絡(luò),其結(jié)構(gòu)如圖5所示。使用該網(wǎng)絡(luò)提取舌象區(qū)域高分辨率特征,進(jìn)而對(duì)舌象進(jìn)行精準(zhǔn)分割。
圖5 高分辨率網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 High resolution network structure
高分辨率網(wǎng)絡(luò)采用并行方式連接高、低分辨率卷積結(jié)果,對(duì)不同分辨率的特征圖通過多尺度融合[20]增強(qiáng)高分辨率表示,從而保持舌象區(qū)域的高分辨率特征。此外,舌象邊緣信息對(duì)于病情診斷非常重要,然而在使用encoder-decoder語義分割結(jié)構(gòu)和Mask-RCNN實(shí)例分割結(jié)構(gòu)的過程中,均存在將特征圖尺寸縮小再放大的步驟,造成圖像特征衰減,進(jìn)而導(dǎo)致舌象邊緣信息丟失。本文設(shè)計(jì)的高分辨率特征網(wǎng)絡(luò)基于原圖特征而構(gòu)建,避免了上、下采樣造成的特征丟失問題[21],可實(shí)現(xiàn)舌象精準(zhǔn)分割。高分辨率特征網(wǎng)絡(luò)共有4個(gè)不同尺寸的通道,由于最終輸出的特征圖需保持原圖尺度,因此分別對(duì)3個(gè)低分辨率通道進(jìn)行雙線性上采樣,再將所得特征圖堆疊后得到最終的高分辨率特征圖。
針對(duì)預(yù)測(cè)的特征圖,計(jì)算該特征圖與真實(shí)標(biāo)簽之間的均方誤差(Mean Square Error,MSE),優(yōu)化均方誤差后完成網(wǎng)絡(luò)的權(quán)重更新。均方誤差損失函數(shù)的表達(dá)式為:
(3)
其中,zi為預(yù)測(cè)值,yi為真實(shí)值,n為樣本數(shù)量。
舌象分割具體過程如下:
1)搭建標(biāo)準(zhǔn)舌象采集環(huán)境,以保證每張圖像處于相同光強(qiáng)、亮度和拍攝距離的條件下,從而最大程度避免外部條件對(duì)圖像的干擾。
2)構(gòu)造數(shù)據(jù)集,將數(shù)據(jù)分為2個(gè)部分,分別作為訓(xùn)練集和測(cè)試集。使用LabelMe進(jìn)行標(biāo)注,得到基于原始圖像的真實(shí)標(biāo)簽(uint8單通道圖像)。標(biāo)簽中每個(gè)像素點(diǎn)表示原始圖像對(duì)應(yīng)位置所屬類別(0為背景,1為舌體區(qū)域)。
3)使用標(biāo)注好的訓(xùn)練集進(jìn)行網(wǎng)絡(luò)訓(xùn)練,并使用測(cè)試集進(jìn)行模型測(cè)試。
在舌象采集過程中,用戶距離光源遠(yuǎn)近以及光線強(qiáng)弱均會(huì)造成所采集舌象的不同。舌體表面特征受光線影響較大(如在光線較強(qiáng)情況下正常舌苔易發(fā)生表面反光而被識(shí)別為白苔),且直射光照射舌面時(shí)會(huì)出現(xiàn)光線不均的現(xiàn)象。為解決該問題,本文采集系統(tǒng)使用積分球光源。和傳統(tǒng)光源相比,積分球光源呈半封閉狀,其內(nèi)部采用漫反射材料,具有密閉空間和高顯色指數(shù),可保證光照均勻,同時(shí)球體直徑限定了相機(jī)與用戶之間的距離,保證光照強(qiáng)度的一致性,采集的圖像舌面光線均勻,無陰影和反光,采集過程不受外界光源干擾。通過本文系統(tǒng)采集到的舌象圖像避免了采集環(huán)境不穩(wěn)定造成的干擾,每張圖像均在相同環(huán)境下獲取,保證了數(shù)據(jù)集的一致性,有效減少數(shù)據(jù)集自身造成的系統(tǒng)誤差。
目前積分球光源系統(tǒng)使用工業(yè)相機(jī)進(jìn)行舌象圖像采集,圖像格式為bmp,像素為2 300×1 944。采集的舌象圖像數(shù)據(jù)集共有2 368張舌象原圖,將2 000張和368張舌象圖像分別作為訓(xùn)練集和測(cè)試集。使用LabelMe數(shù)據(jù)標(biāo)注軟件構(gòu)建舌象分割標(biāo)簽,并采用數(shù)據(jù)增強(qiáng)方法[22]對(duì)圖像進(jìn)行預(yù)處理,以增加樣本的數(shù)量和多樣性,從而提升模型的魯棒性。本文使用的數(shù)據(jù)增強(qiáng)方法主要包括:1)翻轉(zhuǎn)和旋轉(zhuǎn)圖像,以增加樣本數(shù)量;2)對(duì)圖像進(jìn)行顏色抖動(dòng),添加隨機(jī)因子,并調(diào)整圖像的飽和度、亮度以及對(duì)比度;3)為圖像添加高斯噪聲,以增加樣本多樣性。通過上述數(shù)據(jù)增強(qiáng)方法,利用原始圖像構(gòu)造出更多不同場(chǎng)景下的舌象圖像,為模型提供新的訓(xùn)練樣本,并使模型學(xué)習(xí)到更具泛化性的特征,從而克服小數(shù)據(jù)集的局限性,提升分割算法的魯棒性。
采用語義分割任務(wù)中常用的評(píng)估參數(shù)平均交并比(mean Intersection over Union,mIoU)作為本文訓(xùn)練模型分割效果的評(píng)價(jià)指標(biāo)。mIoU越大表明舌體預(yù)測(cè)區(qū)域與舌體真實(shí)區(qū)域越接近,模型分割效果越好。mIoU的計(jì)算公式如下:
(4)
其中,i表示真實(shí)值,j表示預(yù)測(cè)值,pij表示真實(shí)值為i、預(yù)測(cè)值為j的像素?cái)?shù)量,pji表示真實(shí)值為j、預(yù)測(cè)值為i的像素?cái)?shù)量,pii表示真實(shí)值和預(yù)測(cè)值都為i的像素?cái)?shù)量。
本文實(shí)驗(yàn)采用encoder-decoder網(wǎng)絡(luò)結(jié)構(gòu)的SegNet語義分割算法、Mask-RCNN實(shí)例分割算法2種深度學(xué)習(xí)經(jīng)典分割算法與本文基于區(qū)域定位和高分辨率網(wǎng)絡(luò)的分割算法進(jìn)行對(duì)比,以驗(yàn)證高分辨率網(wǎng)絡(luò)對(duì)舌象分割性能的提升效果,不同算法在舌象圖像測(cè)試集上的實(shí)驗(yàn)結(jié)果如表1所示??梢钥闯?和SegNet算法相比,Mask-RCNN算法得到分割圖像的mIoU更大,分割精度有一定幅度提升,但其所用預(yù)測(cè)時(shí)間較SegNet算法更長(zhǎng)。本文算法所得分割圖像的mIoU比Mask-RCNN算法更大,分割精度更高,但所用預(yù)測(cè)時(shí)間與Mask-RCNN算法相近。從分割精度與預(yù)測(cè)時(shí)間綜合來看,本文算法的分割效果更好。
表1 3種算法在舌象測(cè)試集上的實(shí)驗(yàn)結(jié)果Table 1 Experimental results of three algorithms on tongue image test set
圖6為不同算法在舌象測(cè)試集上的分割效果。可以看出,SegNet算法所得舌象邊緣模糊且有毛刺,Mask-RCNN算法預(yù)測(cè)的舌體區(qū)域偏小,上述算法均存在舌象邊緣分割不精準(zhǔn)的問題。而本文算法對(duì)舌象邊緣分割精準(zhǔn),完整保留了舌體邊緣信息。
圖6 3種算法在舌象測(cè)試集上的分割效果Fig.6 Segmentation effect of three algorithms on tongue image test set
針對(duì)舌象分割中舌體邊緣信息丟失的問題,本文提出一種利用高分辨率特征的舌象分割算法。通過區(qū)域定位網(wǎng)絡(luò)識(shí)別并獲取舌體所在區(qū)域,構(gòu)建高分辨率網(wǎng)絡(luò)提取該區(qū)域舌體高分辨率特征,從而完成舌體區(qū)域分割。實(shí)驗(yàn)結(jié)果表明,該算法可有效保留舌象邊緣信息,較SegNet、Mask-RCNN算法分割舌象更精準(zhǔn)。后續(xù)考慮去除本文算法中冗余的模型參數(shù)以減少運(yùn)算資源占用,同時(shí)對(duì)舌象識(shí)別算法進(jìn)行研究,將齒痕舌、裂紋舌以及紅點(diǎn)舌等不同舌體形態(tài)納入該算法,以實(shí)現(xiàn)中醫(yī)舌診的智能化診斷。