本發(fā)明將深度學(xué)習(xí)技術(shù)引入到中醫(yī)舌診客觀化研究中,提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的中醫(yī)舌圖像自動(dòng)分割方法,該方法可以同時(shí)適用于封閉式和開(kāi)放式的舌象采集環(huán)境,可以有效提高中醫(yī)舌圖像自動(dòng)分割的精確度和魯棒性。本發(fā)明屬于計(jì)算機(jī)視覺(jué)領(lǐng)域和中醫(yī)舌診領(lǐng)域,具體涉及深度學(xué)習(xí)、語(yǔ)義分割、圖像處理等技術(shù)。
背景技術(shù):
中醫(yī)舌診通過(guò)觀察舌象的變化,了解人體的生理功能和病理變化,是中醫(yī)學(xué)中望診的重要組成部分。20世紀(jì)80年代以來(lái),隨著計(jì)算機(jī)技術(shù)的發(fā)展,研究者們開(kāi)始將數(shù)字圖像處理技術(shù)應(yīng)用于中醫(yī)舌診客觀化研究,其主要流程包括舌圖像采集、預(yù)處理、舌體分割以及舌象特征分析等,其中,舌體分割是中醫(yī)舌診客觀化的重要環(huán)節(jié)。由于舌象特征分析的目標(biāo)區(qū)域是舌體,而采集到的中醫(yī)舌圖像除了包含舌體以外,往往還包含唇部、臉部等背景區(qū)域。為了避免這些背景區(qū)域?qū)罄m(xù)舌象特征分析的影響,需先分割出舌體區(qū)域,分割的精確性將直接影響舌象特征分析的準(zhǔn)確性。
盡管舌圖像自動(dòng)分割方面的研究工作取得了一定的進(jìn)展,但受到圖像質(zhì)量、病人舌圖像的差異性、舌體顏色與嘴唇顏色相近以及光照變化等一系列客觀因素的影響,至今仍沒(méi)有一種舌圖像自動(dòng)分割方法可以對(duì)各類(lèi)舌圖像都能取得理想的分割效果。此外,現(xiàn)有的自動(dòng)分割算法大多適用于封閉式采集環(huán)境,往往不能滿(mǎn)足開(kāi)放式采集環(huán)境的舌圖像分割需求。為此,需要引入新的信息處理技術(shù)以提高舌圖像分割的自動(dòng)化程度、魯棒性以及分割精度。
近年來(lái),深度學(xué)習(xí)成為計(jì)算機(jī)視覺(jué)領(lǐng)域的研究熱點(diǎn)。其中,卷積神經(jīng)網(wǎng)絡(luò)(cnn)憑借其強(qiáng)大的特征學(xué)習(xí)與表達(dá)能力被廣泛應(yīng)用于在圖像分類(lèi)、目標(biāo)檢測(cè)以及語(yǔ)義分割等任務(wù)。
因此,本發(fā)明針對(duì)現(xiàn)有舌圖像自動(dòng)分割方法存在的不足,提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的中醫(yī)舌圖像自動(dòng)分割方法,該方法可同時(shí)適用于封閉式和開(kāi)放式的舌象采集環(huán)境,為中醫(yī)舌診客觀化研究提供了一種重要的手段,對(duì)推動(dòng)中醫(yī)客觀化研究的發(fā)展具有重要的意義,并在臨床診療、養(yǎng)生保健、中醫(yī)傳承等方面具有重要的應(yīng)用價(jià)值。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明主要解決的技術(shù)問(wèn)題是如何提供一種具有準(zhǔn)確率高、魯棒性強(qiáng)和全自動(dòng)化等優(yōu)點(diǎn),且可以同時(shí)適用于封閉式和開(kāi)放式舌象采集環(huán)境的舌圖像分割方法。
為解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:設(shè)計(jì)了一種卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),利用采集到的樣本數(shù)據(jù)對(duì)該網(wǎng)絡(luò)的訓(xùn)練,得到網(wǎng)絡(luò)模型,采用該模型可以對(duì)中醫(yī)舌圖像進(jìn)行自動(dòng)分割。該方法包含離線訓(xùn)練階段和在線分割階段,具體包括以下步驟:
步驟1:構(gòu)建數(shù)據(jù)集。根據(jù)實(shí)際應(yīng)用需求,針對(duì)封閉式和開(kāi)放式的舌象采集環(huán)境,本發(fā)明分別構(gòu)建了舌圖像分割數(shù)據(jù)集tonsegdataset1和tonsegdataset2。其中,tonsegdataset1具有光照統(tǒng)一和舌圖像位置相對(duì)一致的特點(diǎn);tonsegdataset2具有尺寸大小不一,光照復(fù)雜多變,舌體的大小形狀各異和位置不固定等特點(diǎn)。
步驟2:手工標(biāo)注語(yǔ)義分割標(biāo)簽。即分別對(duì)圖像上的舌體區(qū)域和背景區(qū)域的像素點(diǎn)進(jìn)行手工標(biāo)注。
步驟3:卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)和網(wǎng)絡(luò)訓(xùn)練。本發(fā)明設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)包括編碼網(wǎng)絡(luò)和解碼網(wǎng)絡(luò),其中,編碼網(wǎng)絡(luò)由卷積層、batchnormalization層、激活層和池化層堆疊而成,解碼網(wǎng)絡(luò)則由反池化層、反卷積層、batchnormalization層和激活層堆疊而成,并采用跳躍連接結(jié)構(gòu)將池化層的輸出特征圖與反池化層的輸出特征圖進(jìn)行融合,利用融合后的特征圖對(duì)圖像信息進(jìn)行復(fù)原。解碼網(wǎng)絡(luò)的輸出連接sigmoid層,該層可以實(shí)現(xiàn)像素的二分類(lèi),得到語(yǔ)義分割結(jié)果。本發(fā)明將舌圖像的像素分為2類(lèi),即舌體區(qū)域和背景區(qū)域。
訓(xùn)練網(wǎng)絡(luò)時(shí),為避免網(wǎng)絡(luò)模型過(guò)擬合,首先利用imagenet2012數(shù)據(jù)集對(duì)編碼網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,然后對(duì)數(shù)據(jù)集進(jìn)行樣本擴(kuò)充,最后利用擴(kuò)充后的數(shù)據(jù)集對(duì)該卷積神經(jīng)網(wǎng)絡(luò)的全部參數(shù)進(jìn)行訓(xùn)練。
步驟4:利用訓(xùn)練好的網(wǎng)絡(luò)模型對(duì)圖像進(jìn)行舌體區(qū)域分割。首先對(duì)待分割舌圖像的光照情況進(jìn)行預(yù)判,如果圖像過(guò)亮或者過(guò)暗,則不對(duì)其進(jìn)行分割;否則,對(duì)該圖像的嘴區(qū)進(jìn)行失焦檢測(cè),如果嘴區(qū)失焦,則不進(jìn)行分割;否則,利用步驟3中訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)對(duì)該圖像進(jìn)行舌體分割。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下明顯的優(yōu)勢(shì)和有益效果:
1.分割的精確度高。與傳統(tǒng)的舌圖像分割方法相比,本發(fā)明提出的舌圖像分割方法采用深度學(xué)習(xí)技術(shù)從數(shù)據(jù)中自動(dòng)學(xué)習(xí)到有效的特征和表達(dá),避免了復(fù)雜的手工特征選取過(guò)程,在分割精度上具有明顯優(yōu)勢(shì),可以滿(mǎn)足實(shí)際應(yīng)用需求。
2.具有魯棒性。針對(duì)尺寸大小不一,光照復(fù)雜多變,舌體的大小形狀各異和位置不固定的舌圖像,本發(fā)明提出的舌圖像分割方法依然能取得較高的分割準(zhǔn)確率。
附圖說(shuō)明
圖1基于深度卷積神經(jīng)網(wǎng)絡(luò)的舌圖像自動(dòng)分割方法流程圖;
圖2tonsegdataset1數(shù)據(jù)集中部分舌圖像的分割示意圖;
圖3tonsegdataset2數(shù)據(jù)集中部分舌圖像的分割示意圖。
具體實(shí)施方式
以下結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
步驟1:構(gòu)建數(shù)據(jù)集。
使用sipl型中醫(yī)舌象儀采集1000幅舌圖像,組成數(shù)據(jù)集tonsegdataset1,sipl型中醫(yī)舌象儀采集可以提供穩(wěn)定的光照環(huán)境,并且避免外界的雜散光進(jìn)入。利用含有舌圖像的互聯(lián)網(wǎng)圖片和通過(guò)手機(jī)、相機(jī)等不同圖像采集設(shè)備在不同的環(huán)境下拍攝得到的舌圖像構(gòu)成數(shù)據(jù)集tonsegdataset2,共包含共5000幅舌圖像,且這些舌圖像通常在自然環(huán)境下采集得到,其光照等參數(shù)變化較大。
步驟2:手工標(biāo)注語(yǔ)義分割標(biāo)簽。即手工標(biāo)注圖像上的舌體區(qū)域和背景區(qū)域的像素點(diǎn)類(lèi)別,標(biāo)注好的數(shù)據(jù)用于訓(xùn)練網(wǎng)絡(luò)模型。
步驟3:設(shè)計(jì)和訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)。本發(fā)明針對(duì)舌圖像自動(dòng)分割設(shè)計(jì)了一種深度卷積神經(jīng)網(wǎng)絡(luò),并對(duì)該網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到可以用于舌圖像分割的網(wǎng)絡(luò)模型。
步驟3.1:卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)。本發(fā)明設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)簡(jiǎn)稱(chēng)為tonsegnet,包括輸入層、編碼網(wǎng)絡(luò)、解碼網(wǎng)絡(luò)和輸出層。其中,輸入層為含有舌體的圖像,圖像尺寸為512×512。編碼網(wǎng)絡(luò)包含15個(gè)卷積層,卷積核的大小均為3×3,每個(gè)卷積層后面均連接著batchnormalization層和激活層。將編碼網(wǎng)絡(luò)分為5組,每組包含3個(gè)卷積層,每組輸出的特征圖個(gè)數(shù)分別為32,64,128,256,512,且每組中的卷積層輸出特征圖個(gè)數(shù)相同。此外,每組后面連接一個(gè)池化層,因此編碼網(wǎng)絡(luò)共包含5個(gè)池化層,本發(fā)明采用核尺寸為2×2大小的最大池化層。解碼網(wǎng)絡(luò)與編碼網(wǎng)絡(luò)對(duì)稱(chēng),由反池化層、卷積層、batchnormalization層和激活層堆疊而成,其中,采用跳躍連接結(jié)構(gòu)將反池化層的輸出特征圖與池化層的輸出特征圖進(jìn)行融合,利用融合后的特征圖對(duì)圖像信息進(jìn)行復(fù)原。解碼網(wǎng)絡(luò)的輸出連接sigmoid層,通過(guò)該層可以得到每個(gè)像素的類(lèi)別概率,實(shí)現(xiàn)語(yǔ)義分割。本發(fā)明將舌圖像的像素分為2類(lèi),即舌體區(qū)域和背景區(qū)域。tonsegnet中各網(wǎng)絡(luò)層的相關(guān)描述如下:
(a)卷積層
卷積層是cnn網(wǎng)絡(luò)中非常重要的一層,通過(guò)卷積運(yùn)算可以使原信號(hào)特征增強(qiáng)并且使噪音降低。卷積層與輸入層由特征圖進(jìn)行連接,而特征圖是由卷積核與輸入層相乘然后將得到的值加上偏置值輸入到激發(fā)函數(shù)中得到的。
(b)標(biāo)準(zhǔn)化和激活函數(shù)
本發(fā)明采用批標(biāo)準(zhǔn)化(batchnormalization,bn),批標(biāo)準(zhǔn)化有助于防止梯度消失并加快收斂速度,用于激活函數(shù)前,tonsegnet中每個(gè)卷積層后均連接一個(gè)bn層。
本發(fā)明采用的激活函數(shù)是rectifiedlinearunits(relu)。與sigmoid和tanh函數(shù)相比,relu的隨機(jī)梯度下降收斂速度較快,不用進(jìn)行大量復(fù)雜運(yùn)算。
(c)池化層和反池化層
池化層對(duì)圖像進(jìn)行子抽樣,可以減少數(shù)據(jù)處理量同時(shí)保留有用信息。池化層首先把輸入分塊,然后把分塊做下采樣處理,將得到的值加上偏置值輸入到激活函數(shù)中。
本發(fā)明采用max-pooling進(jìn)行下采樣,使用尺寸為2x2的濾波器,取出4個(gè)權(quán)值中最大的一個(gè),并將該權(quán)值在2x2濾波器中的相對(duì)位置進(jìn)行保存。反池化是池化的逆過(guò)程,先對(duì)輸入的特征圖放大兩倍,再將輸入特征圖的數(shù)據(jù)根據(jù)保存的相對(duì)位置放入相應(yīng)的位置。
步驟3.2:訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)。
(1)預(yù)訓(xùn)練。為避免過(guò)擬合,利用imagenet2012數(shù)據(jù)集對(duì)tonsegnet的編碼網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練。預(yù)訓(xùn)練時(shí),將編碼網(wǎng)絡(luò)與一個(gè)全連接層連接,全連接層的神經(jīng)元個(gè)數(shù)為1000,損失函數(shù)選擇softmaxloss函數(shù),使用誤差反向傳播算法和隨機(jī)梯度下降算法更新模型參數(shù),直至損失函數(shù)達(dá)到最小,此時(shí)得到的模型即為最優(yōu)。
(2)對(duì)數(shù)據(jù)集進(jìn)行樣本擴(kuò)充。為了防止深度模型過(guò)擬合,提高網(wǎng)絡(luò)的分割性能,本發(fā)明采用了旋轉(zhuǎn)、平移和水平鏡像三種方法對(duì)樣本數(shù)據(jù)量進(jìn)行擴(kuò)充,其中,旋轉(zhuǎn)采用在-90°到+90°范圍內(nèi)隨機(jī)產(chǎn)生10個(gè)不同角度的變化,平移采用了上、下、左、右四個(gè)方向的移動(dòng)。采用以上數(shù)據(jù)擴(kuò)充方法,將數(shù)據(jù)集擴(kuò)充為原來(lái)的28倍。
(3)tonsegnet的編碼網(wǎng)絡(luò)使用預(yù)訓(xùn)練得到的網(wǎng)絡(luò)參數(shù)進(jìn)行初始化,解碼網(wǎng)絡(luò)則采用隨機(jī)初始化;進(jìn)而利用擴(kuò)充后的數(shù)據(jù)集對(duì)初始化后的tonsegnet的全部參數(shù)進(jìn)行訓(xùn)練。訓(xùn)練時(shí),將數(shù)據(jù)集按照3:2分為訓(xùn)練集和測(cè)試集,訓(xùn)練集用于訓(xùn)練網(wǎng)絡(luò)參數(shù),測(cè)試集用于測(cè)試訓(xùn)練得到的網(wǎng)絡(luò)參數(shù)的分割精度。將訓(xùn)練該網(wǎng)絡(luò)的目標(biāo)函數(shù)設(shè)為交叉熵?fù)p失函數(shù)cout,如公式(1)所示,采用隨機(jī)梯度下降算法訓(xùn)練網(wǎng)絡(luò)模型參數(shù)。
其中,n為計(jì)算交叉熵?fù)p失函數(shù)時(shí)使用樣本的個(gè)數(shù),t為期望輸出,z為實(shí)際輸出。
步驟4:利用tonsegnet對(duì)圖像進(jìn)行舌體分割。
由于受到采集環(huán)境中光照條件的影響,采集到的舌圖像亮度變化范圍較大。亮度過(guò)低或者過(guò)高的舌圖像質(zhì)量較差,不能用于后續(xù)的舌象特征(如舌色、苔色、腐膩等)自動(dòng)分析,在分割操作之前需要對(duì)此類(lèi)舌圖像進(jìn)行預(yù)判。對(duì)滿(mǎn)足分割光照條件的舌圖像的嘴區(qū)進(jìn)行失焦檢測(cè),嘴區(qū)失焦將導(dǎo)致舌體區(qū)域過(guò)于模糊,無(wú)法進(jìn)行后續(xù)的舌象特征分析,因此,需要對(duì)此類(lèi)舌圖像進(jìn)行預(yù)判。
步驟4.1:舌圖像的光照條件判別。
本發(fā)明采用基于亮度統(tǒng)計(jì)信息的圖像質(zhì)量評(píng)價(jià)方法,對(duì)待分割舌圖像的亮度進(jìn)行判別。具體步驟如下:
(1)在hsv彩色空間對(duì)圖像的v分量進(jìn)行直方圖統(tǒng)計(jì)。
(2)根據(jù)公式(2)和(3)分別計(jì)算亮度值在亮度兩端范圍內(nèi)的像素點(diǎn)占所有像素點(diǎn)的比例q1和q2,
其中,
式中,x與y代表圖像的長(zhǎng)和寬,numd和numl表示亮度值在亮度兩端范圍內(nèi)的像素點(diǎn)個(gè)數(shù),n為對(duì)v分量進(jìn)行直方圖統(tǒng)計(jì)時(shí)所劃分bin的個(gè)數(shù),pi表示處于第i個(gè)bin內(nèi)的像素點(diǎn)個(gè)數(shù),m用于劃分亮度兩端區(qū)域的大小,m越大所定義的兩端亮度范圍越小。本發(fā)明中n設(shè)置為256,m設(shè)置為3,q1>0.7表示圖像亮度過(guò)低,q2>0.6表示圖像亮度過(guò)高。
步驟4.2:如果圖像亮度過(guò)高或過(guò)低,則不對(duì)其進(jìn)行分割;否則,對(duì)舌圖像的嘴區(qū)進(jìn)行失焦檢。本發(fā)明首先采用基于ycbcr彩色空間的膚色檢測(cè)算法選定并裁剪出面部和頸部區(qū)域,如公式(6)所示。
式中,“1”表示該像素屬于膚色區(qū)域,否則不屬于膚色區(qū)域。
然后,將裁剪得到的圖像轉(zhuǎn)換到his顏色空間,對(duì)h分量進(jìn)行直方圖統(tǒng)計(jì),嘴區(qū)和非嘴區(qū)的h分量直方圖有兩個(gè)較為顯著的峰,以這兩個(gè)峰值之間的谷點(diǎn)h=24為閾值,可以分割出包含唇部和舌體的嘴區(qū),進(jìn)而可以確定嘴區(qū)的坐標(biāo)范圍,即嘴部外接矩形4個(gè)邊框的位置。
最后,利用tenengrad梯度函數(shù)進(jìn)行嘴區(qū)的失焦檢測(cè)。tenengrad梯度函數(shù)采用sobel算子分別提取水平和垂直方向的梯度值,具體過(guò)程如公式(7)(8)所示:
式中,gx,gy為sobel算子的卷積核,i(x,y)為圖像i在點(diǎn)(x,y)處的像素值。s(x,y)為圖像i在點(diǎn)(x,y)處的梯度,t為用于判斷是否失焦的tenengrad梯度函數(shù)值,當(dāng)0<t<1000時(shí)判定嘴區(qū)失焦,n為圖像i的像素總數(shù)。
步驟4.3:如果嘴區(qū)未失焦,則利用步驟3中訓(xùn)練好的tonsegnet對(duì)圖像進(jìn)行舌體分割,實(shí)現(xiàn)舌體與背景分離的效果。
本發(fā)明采用全部像素的分類(lèi)正確率(g),所有類(lèi)別的平均正確率(c)和平均交疊率(miou)作為舌體分割準(zhǔn)確率的評(píng)價(jià)指標(biāo),定義分別如公式(9)(10)(11)所示。
其中,ti表示第i類(lèi)像素的總數(shù),如公式(12)所示:
ti=∑jmij(12)
式中,mii表示被分為i類(lèi)的第i類(lèi)像素的個(gè)數(shù),∑imii表示所有像素中正確分類(lèi)的像素個(gè)數(shù)總和,∑iti表示全部類(lèi)別像素個(gè)數(shù)的總和,
本發(fā)明將深度學(xué)習(xí)技術(shù)應(yīng)用到舌圖像分割中,提出了一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的的中醫(yī)舌圖像自動(dòng)分割方法,該方法同時(shí)適用于封閉式和開(kāi)放式采集環(huán)境,在多場(chǎng)景下獲得舌圖像分割魯棒性的大幅提升。本文發(fā)明的方法在tonsegdataset1和tonsegdataset2的測(cè)試集上均可獲得較高的分割準(zhǔn)確率,其中,在tonsegdataset1測(cè)試集上的g為93.12%,c為91.56%,miou為87.98%;在tonsegdataset2測(cè)試集上的g為90.12%,c為89.56%,miou為83.34%。與傳統(tǒng)的舌圖像分割方法相比,該方法避免了復(fù)雜的手工選取特征過(guò)程,在分割精度上具有明顯優(yōu)勢(shì)。