劉 明 王亞剛
(西安郵電大學(xué)計(jì)算機(jī)學(xué)院 西安 710121)
中醫(yī)歷史悠久,在亞洲乃至全球已經(jīng)是一種補(bǔ)充與替代西方醫(yī)學(xué)的治療手段,中醫(yī)理論認(rèn)為舌體的不同區(qū)域?qū)?yīng)著人體的不同內(nèi)臟器官,不同舌體區(qū)域的不同顏色特征對(duì)應(yīng)著人體不同的身體狀態(tài)。目前在計(jì)算機(jī)輔助診斷系統(tǒng)中需要重現(xiàn)中醫(yī)對(duì)舌體的辨別,從獲取的面部圖像中準(zhǔn)確獲取舌體圖像是前期工作中最為關(guān)鍵的一步。
目前已經(jīng)提出了許多針對(duì)舌體圖像的分割方法。姜朔,胡潔等提出了基于Otsu閾值法與形態(tài)學(xué)自適應(yīng)修正[1]的舌像分割方法。這種方法相對(duì)于傳統(tǒng)的自動(dòng)閾值選取法(Otsu)方法及灰度投影-Otsu方法,分割的準(zhǔn)確率有了很大的提升。但是,這種方法在利用形態(tài)學(xué)自適應(yīng)修正的過程中多次開啟運(yùn)算,使用了過多的時(shí)間,導(dǎo)致總體分割所使用時(shí)間較長(zhǎng),最終使得舌體分割的效率有所降低。吳佳,張白水等所提出的將分水嶺變換與主動(dòng)輪廓模型[2]結(jié)合的方法,在分割過程中分割精度得到進(jìn)一步提高,但是對(duì)于舌體上紋理較為復(fù)雜的舌頭并不能進(jìn)行有效準(zhǔn)確的分割。
綜上所述,雖然這些方法能夠在一定程度上提升分割效果,但是仍然存在著不同的問題,很難找到一個(gè)效果好并且適用性廣的方法。所以尋找一種魯棒性好,舌體分割準(zhǔn)確且運(yùn)算速度較快的方法仍是計(jì)算機(jī)輔助診斷中的一個(gè)難點(diǎn)所在。針對(duì)上述問題,本文設(shè)計(jì)一種可分離式條件生成對(duì)抗網(wǎng)絡(luò)模型用于分割舌體,該模型不僅解決了舌體分割適用性差問題,而且在分割精度與運(yùn)行速度上能達(dá)到理想效果。
近年來,深度學(xué)習(xí)發(fā)展迅猛,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在不斷地更新與優(yōu)化,其在圖像分割領(lǐng)域的應(yīng)用也不斷擴(kuò)大。圖像分割的主要任務(wù)就是將像素點(diǎn)歸類,從而實(shí)現(xiàn)圖像的分割。Shelhamer[3]等設(shè)計(jì)完成了端到端的圖像分割網(wǎng)絡(luò)FCN,它解決了傳統(tǒng)CNN網(wǎng)絡(luò)在分割時(shí)對(duì)區(qū)域多次特征提取導(dǎo)致分割速度慢的問題。Olaf Ronneberger[4]等提出的U-Net網(wǎng)絡(luò)通過使用淺層網(wǎng)絡(luò)定位目標(biāo)深層網(wǎng)絡(luò)分類目標(biāo)相組合的方式來進(jìn)行圖像分割。在國(guó)內(nèi)的學(xué)者中趙兵[5]使用卷積網(wǎng)絡(luò)對(duì)葡萄病災(zāi)害圖像進(jìn)行圖像分割,通過不斷卷積池化進(jìn)行信息提取然后使用反卷積操作獲取分割結(jié)果。鄧金成[6]將全卷機(jī)網(wǎng)絡(luò)與空洞卷積相結(jié)合提高網(wǎng)絡(luò)獲取圖像信息能力,從而實(shí)現(xiàn)放射治療中的圖像分割。
針對(duì)舌體圖像中舌體與唇部邊緣界限模糊,使用方法適用性差,分割運(yùn)行時(shí)間較長(zhǎng)等問題,本文提出一種基于條件生成對(duì)抗網(wǎng)絡(luò)的舌體圖像分割方法。目前生成對(duì)抗網(wǎng)絡(luò)[7]在許多方面已經(jīng)取得很好的應(yīng)用效果,桑亮[8]針對(duì)相機(jī)成像時(shí)圖像模糊問題,利用生成對(duì)抗網(wǎng)絡(luò)復(fù)原模糊圖像。何子慶[9]使用生成對(duì)抗網(wǎng)絡(luò)對(duì)圖像進(jìn)行識(shí)別。通過與現(xiàn)有方法對(duì)比,本文方法具有以下優(yōu)點(diǎn):1)在分割中引入分割網(wǎng)絡(luò)與判別網(wǎng)絡(luò),通過對(duì)抗訓(xùn)練能夠提升分割結(jié)果。2)在網(wǎng)絡(luò)中引入可分離卷積與殘差結(jié)構(gòu),在提升分割效果的同時(shí),提升網(wǎng)絡(luò)運(yùn)行速度。3)在模型訓(xùn)練成功后,加入形態(tài)學(xué)優(yōu)化算法提高分割圖像質(zhì)量。
生成式對(duì)抗網(wǎng)絡(luò)模型最早在2014年由Good?fellow提出,它是一種生成式模型,而條件生成對(duì)抗網(wǎng)絡(luò)則在原始的對(duì)抗模型中加入約束條件,通過附加信息來獲得更加準(zhǔn)確的完成圖像翻譯等工作,該網(wǎng)絡(luò)模型主要由生成器(G)與判別器(D)兩個(gè)子網(wǎng)絡(luò)框架構(gòu)成。
圖1 舌體分割網(wǎng)絡(luò)基本框架
生成對(duì)抗網(wǎng)絡(luò)的最終目的是生成一個(gè)能夠從隨機(jī)噪聲z到輸出圖像y之間的映射模型。而條件生成對(duì)抗網(wǎng)絡(luò)則是觀察圖像x與隨機(jī)噪聲z到輸出圖像y之間的映射模型。相比于生成對(duì)抗網(wǎng)絡(luò),條件生成對(duì)抗網(wǎng)絡(luò)加入圖片標(biāo)簽來約束兩個(gè)子網(wǎng)絡(luò)。子網(wǎng)絡(luò)中G訓(xùn)練的目的是學(xué)習(xí)樣本分布,使得生成樣本盡可能地接近于人工標(biāo)注樣本,最終讓判別器無法區(qū)分?jǐn)?shù)據(jù)是生成器生成還是人工標(biāo)注樣本。子網(wǎng)絡(luò)D訓(xùn)練的目的是對(duì)人工標(biāo)注樣本與原始圖像組成的正樣本組合D(x,y)值接近1,使生成器生成圖像與原始圖像組成的負(fù)樣本組合D(x,G(x,z))的值接近0。整個(gè)模型的優(yōu)化方向是需要最大化判別器鑒定正確的概率,同時(shí)最小化生成器生成出來的樣本數(shù)據(jù)被鑒別出來的概率。其目標(biāo)函數(shù)可以表示為
其中x為輸入的人體面部圖像,y為人工分割的標(biāo)準(zhǔn)舌體圖像,函數(shù)D(x,y)表示輸入圖像來自人工分割的概率,D(x,G(x,z))表示輸入圖像來自生成器的概率。
為了使生成器生成的舌體圖像能夠更加接近人工標(biāo)定的標(biāo)準(zhǔn)分割舌體圖像,本文在損失函數(shù)中加入L1[10]距離:
將原有的目標(biāo)函數(shù)與L1距離函數(shù)相結(jié)合得到新的目標(biāo)函數(shù)如下:
為了平衡兩個(gè)目標(biāo)函數(shù),設(shè)置λ為100。
G和D是兩個(gè)相對(duì)抗的訓(xùn)練過程。首先固定G訓(xùn)練D,然后固定D訓(xùn)練G,如此循環(huán),最終兩個(gè)子網(wǎng)絡(luò)能力都能得到提升。當(dāng)G生成的樣本圖像被D判定為人工標(biāo)注圖像時(shí)就結(jié)束訓(xùn)練,此時(shí)新輸入的圖像經(jīng)過G后,G生成的圖像就可以當(dāng)做正確的分割圖像使用。
舌體圖像的分割與普通自然圖像的分割不同:1)舌體圖像邊緣界定模糊,需要提取更多邊緣信息來進(jìn)行準(zhǔn)確分割。2)在中醫(yī)智能化階段不僅僅需要高精度也需要高效率,設(shè)計(jì)的網(wǎng)絡(luò)需要同時(shí)兼?zhèn)溥@兩種要求。而傳統(tǒng)的分割算法與現(xiàn)有的語義分割算法不能同時(shí)滿足高精度與高效率的要求,基于上述目標(biāo)與挑戰(zhàn),本文設(shè)計(jì)了一種高效的條件生成對(duì)抗網(wǎng)絡(luò)模型,稱為可分離條件生成對(duì)抗網(wǎng)絡(luò)(SC?GAN),改進(jìn)的方法主要有以下三點(diǎn):
1)可分離卷積結(jié)構(gòu)
在神經(jīng)網(wǎng)絡(luò)中,隨著網(wǎng)絡(luò)層數(shù)的加深,雖然網(wǎng)絡(luò)模型的效果越來越好,但是參數(shù)的大量增加導(dǎo)致運(yùn)行所占用的計(jì)算資源與存儲(chǔ)資源也會(huì)遞增,并且會(huì)增加訓(xùn)練所需要的時(shí)間,為了在可以減少網(wǎng)絡(luò)模型參數(shù)的情況下不影響最終的分割效果,本文使用可分離的卷積結(jié)構(gòu)[11]代替標(biāo)準(zhǔn)的卷積,通過將標(biāo)準(zhǔn)卷積分解為深度卷積與逐點(diǎn)卷積的方式如圖2(b),達(dá)到減少計(jì)算量加快網(wǎng)絡(luò)模型收斂速度的效果。
模塊A為標(biāo)準(zhǔn)卷積結(jié)構(gòu),將大小為Di×Di×N大小的特征圖作為輸入,目的為輸出一個(gè)大小為Do×Do×M大小的特征圖,其中步幅為1,填充為0。模塊B為可分離卷積結(jié)構(gòu),首先使用N個(gè)k×k×1大小的單通道卷積核對(duì)輸入特征圖進(jìn)行一對(duì)一的單獨(dú)處理,即就是每個(gè)卷積核處理一個(gè)特征,得到Do×Do×1大小的特征圖,然后將這些特征圖進(jìn)行堆疊,得到Do×Do×N大小的特征圖。第二步使用大小為1×1×N大小的卷積核進(jìn)行1×1卷積,經(jīng)過1×1×N的卷積后得到大小為Do×Do×1的特征圖,為了得到有M層通道數(shù)的特征圖,需要經(jīng)過M次1×1的卷積,最終得到大小為Do×Do×M的特征圖,模塊A的計(jì)算成本為M×K×K×K×Do×Do對(duì)于同樣的變換,使用模塊B的方式所使用的計(jì)算成本為
圖2
2)加入殘差網(wǎng)絡(luò)結(jié)構(gòu)
使用神經(jīng)網(wǎng)絡(luò)時(shí),為了能夠獲得更多的圖像特征信息,往往會(huì)使用池化操作,特征圖的尺寸大小會(huì)逐漸變小,所以邊緣特征在傳播中會(huì)逐漸消失,而傳統(tǒng)的上采樣操作僅僅只對(duì)最終映射得到的結(jié)果進(jìn)行上采樣,用來得到與輸入相同尺寸的圖像,往往忽略了圖像中的淺層信息,這種方式在舌體分割中是不利的。而且隨著網(wǎng)絡(luò)模型層數(shù)的不斷加深,往往會(huì)出現(xiàn)梯度消失的問題。所以設(shè)計(jì)的網(wǎng)絡(luò)需要既能夠準(zhǔn)確標(biāo)記舌體輪廓又能檢測(cè)舌體邊緣信息特征。這里使用殘差網(wǎng)絡(luò)[12]的結(jié)構(gòu),在可分離卷積操作中使用殘差結(jié)構(gòu),通過使用跳躍鏈接增加網(wǎng)絡(luò)權(quán)重敏感性,增加對(duì)細(xì)小特征的獲取能力,完成準(zhǔn)確分割。帶有分離殘差結(jié)構(gòu)的生成器結(jié)構(gòu)由兩個(gè)可分離卷積構(gòu)成,每個(gè)可分離卷積層是由3×3深度卷積與1×1的逐點(diǎn)卷積組成,同時(shí)加入short?cut與1×1的瓶頸層將殘差塊的輸入與輸出連接。
如圖3所示,提出的網(wǎng)絡(luò)中的生成器中將原始的卷積結(jié)構(gòu)改變?yōu)榭煞蛛x卷積結(jié)構(gòu)并加入殘差模塊,首先使用卷積池化操作,通過使用最大池化層將不同的帶有跳躍連接的可分離卷積層連接起來,池化層的目的主要是減少內(nèi)存消耗,同時(shí)提高網(wǎng)絡(luò)感受野的大小,其窗口大小設(shè)置為2×2,通過每一次的池化操作翻倍卷積核的數(shù)量,直到512停止,然后使用上采樣操作,上采樣可以認(rèn)為是卷積的逆操作,通過使用這一操作將之前獲得的特征圖恢復(fù)到原尺寸大小,在上采樣操作中同樣使用BN[13]操作ReLU[14]激活函數(shù)與帶有跳躍連接可分離卷積結(jié)構(gòu)。
圖3 生成器網(wǎng)絡(luò)結(jié)構(gòu)
判別器網(wǎng)絡(luò)如圖4所示,相較于生成器網(wǎng)絡(luò)其網(wǎng)絡(luò)結(jié)構(gòu)較為簡(jiǎn)單,其目的是區(qū)分輸入數(shù)據(jù)的真假進(jìn)行二分類判別,通過不斷地使用卷積獲得更小的特征圖譜,由于層數(shù)較少并未使用殘差結(jié)構(gòu)。判別器中包含2×2卷積層,BN層與ReLU激活函數(shù),在網(wǎng)絡(luò)的512通道層最后使用sigmod[15]函數(shù)激活,輸出0或1的判別結(jié)果。
圖4 判別器網(wǎng)絡(luò)結(jié)構(gòu)
3)基于形態(tài)學(xué)優(yōu)化
當(dāng)可分離條件生成對(duì)抗網(wǎng)絡(luò)訓(xùn)練結(jié)束后,生成器生成的樣本圖像就可以被當(dāng)做正確的舌體分割結(jié)果,這時(shí)將生成器產(chǎn)生的樣本通過使用形態(tài)學(xué)的方法進(jìn)行進(jìn)一步優(yōu)化得到最終分割結(jié)果。通過形態(tài)學(xué)的優(yōu)化可以減少舌體邊緣更加平滑,能夠去除舌體內(nèi)部的孔洞區(qū)域。操作過程如下:
Step1.首先將生成器產(chǎn)生樣本圖像進(jìn)行二值化處理,并選擇接近舌體輪廓形狀的橢圓形結(jié)構(gòu)對(duì)二值化后的圖像進(jìn)行多次腐蝕操作,然后對(duì)其使用同樣次數(shù)的膨脹操作。
Step2.需要將第一步得到的二值圖轉(zhuǎn)變?yōu)椴紶栃蛿?shù)組,首先將舌體區(qū)域作為主體部分,通過去除小的連通區(qū)域可以去除被誤分的背景噪點(diǎn),然后進(jìn)行取反操作,將舌體背景作為主體部分,通過去除小的連通區(qū)域去除舌體內(nèi)部孔洞。通過這步操作即可得到完整精確的分割結(jié)果所對(duì)應(yīng)的布爾類型數(shù)組。
Step3.將第二步得到的具有分割信息的布爾類型數(shù)組與原始圖像進(jìn)行相乘操作,這樣就可以獲得最終優(yōu)化后的精確分割圖像。
實(shí)驗(yàn)的目的是研究出一種高效準(zhǔn)確的舌體圖像分割方法。實(shí)驗(yàn)是在cpu內(nèi)存:20G;顯卡:NVID?IA DGX-1;開發(fā)環(huán)境:python3.5,神經(jīng)網(wǎng)絡(luò)訓(xùn)練使用Tensorflow深度學(xué)習(xí)框架。訓(xùn)練中使用Adam優(yōu)化器(β1=0.5,β2=0.99,ε=1e-7),學(xué)習(xí)率lr=0.001,mini-batch=1。為了提高網(wǎng)絡(luò)的泛化性能,在生成器(G)的上采樣層都加入了Dropout[16],將keep_prob設(shè)置為0.5每次刪除50%節(jié)點(diǎn),一共進(jìn)行1500次的迭代訓(xùn)練。由于目前沒有用于舌體分割的公開數(shù)據(jù)集,所以本文通過臨床采集的方法進(jìn)行數(shù)據(jù)收集整理,主要包括志愿者移動(dòng)端采集與專業(yè)舌像采集儀器進(jìn)行采集。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練需要學(xué)習(xí)大量數(shù)據(jù)樣本,在數(shù)據(jù)量不足的情況下,為了增加訓(xùn)練效果,于是本文引入圖像增強(qiáng)[17]的方法擴(kuò)充數(shù)據(jù)量。常見的數(shù)據(jù)增強(qiáng)方法包括:翻轉(zhuǎn)變換,crop變換,旋轉(zhuǎn)變換,像素顏色變換,PCA白化與ZCA白化等。為了能夠保留更多的原始圖像信息,本文并未使用多規(guī)則變換去處理數(shù)據(jù),只引入翻轉(zhuǎn)變換與平移變換。由于本文數(shù)據(jù)集中獲取的圖像大小沒有統(tǒng)一,所以首先將圖像統(tǒng)一裁剪到512×512×3大小,通過數(shù)據(jù)增強(qiáng)方法使訓(xùn)練數(shù)據(jù)從263張數(shù)據(jù)圖像增強(qiáng)到1000張數(shù)據(jù)圖像,具有一定的規(guī)模性,能夠增強(qiáng)網(wǎng)絡(luò)泛化能力[18],避免在后面訓(xùn)練時(shí)產(chǎn)生過擬合現(xiàn)象[19]。
本文使用精確度(Precision,P),召回率(Re?call,R)、F-measure(F)等針對(duì)圖像分割的指標(biāo)進(jìn)行定量評(píng)價(jià)。
其中TP為被正確分割的舌體像素?cái)?shù)目,F(xiàn)P為被錯(cuò)誤分割成舌體像素的背景像素,F(xiàn)N為被錯(cuò)誤判定為背景的舌體像素。
圖5 本文算法分割實(shí)驗(yàn)結(jié)果對(duì)比圖
選取Ostu算法、Kmeans算法兩種傳統(tǒng)算法,以及同樣基于深度學(xué)習(xí)的U-net算法、CGAN算法與本文算法進(jìn)行對(duì)比。為了證明本文算法的普適性,選取不同類型的舌體進(jìn)行試驗(yàn),由于移動(dòng)設(shè)備采集圖像受環(huán)境干擾較多,分割難度往往較大,所以下面主要展示這類分割結(jié)果。前四行舌像來自志愿者使用移動(dòng)設(shè)備采集,由于采集數(shù)據(jù)尺寸不同需要經(jīng)過人工裁剪再分割,第五行為舌像專業(yè)采集儀器采集。從圖5中可以看出,本算法分割的舌體圖像很大程度上避免了像素點(diǎn)的漏分與錯(cuò)分的情況,對(duì)不同類型的舌像都能得到較為理想的分割結(jié)果,表明了該算法具有較高魯棒性與準(zhǔn)確性,能夠滿足后續(xù)識(shí)別工作的要求。
表1 不同分割算法結(jié)果比較
P值越高代表算法對(duì)舌體區(qū)域錯(cuò)分的概率越低,R值越高代表算法對(duì)舌體區(qū)域漏分率越低,從表1中可以看出基于深度學(xué)習(xí)的U-net算法、CGAN算法以及本文算法都能夠得到較高的F值與P值,驗(yàn)證了基于深度學(xué)習(xí)的方法在舌體圖像分割領(lǐng)域的可行性。相比于原始CGAN算法,本算法在P值上提升1.03%,R值上提升1.51%,使得總的F值提升1.36%,每張圖像處理所用時(shí)間減少0.2s。在分割精度與速度上均優(yōu)于U-net算法與傳統(tǒng)算法。
本文算法是在條件生成對(duì)抗網(wǎng)絡(luò)下實(shí)現(xiàn)的,并在后續(xù)加入形態(tài)學(xué)方法進(jìn)行優(yōu)化,為了驗(yàn)證形態(tài)學(xué)方法的效果,將算法拆分成兩部分進(jìn)行實(shí)驗(yàn)結(jié)果驗(yàn)證。從表2可以看出由于加入形態(tài)學(xué)的優(yōu)化,使得舌體邊緣會(huì)有細(xì)微變化,導(dǎo)致精度略微降低,但由于實(shí)際分割過程中舌體會(huì)出現(xiàn)空洞[20]與噪點(diǎn)的情況,所以加入形態(tài)學(xué)的方法是有必要的。
表2 加入形態(tài)學(xué)優(yōu)化結(jié)果對(duì)比
本文針對(duì)舌體邊緣細(xì)節(jié)界限模糊,分割方法魯棒性差,速度慢等難點(diǎn)提出了一種應(yīng)用于舌體分割領(lǐng)域的可分離條件生成對(duì)抗網(wǎng)絡(luò)模型。所提模型在條件生成對(duì)抗網(wǎng)絡(luò)的基礎(chǔ)上使用U型網(wǎng)絡(luò)思想設(shè)計(jì)生成器網(wǎng)絡(luò),之后結(jié)合可分離卷積與殘差網(wǎng)絡(luò),使模型能更迅速、準(zhǔn)確地得到分割圖像,最后加入形態(tài)學(xué)的方法來進(jìn)一步優(yōu)化分割圖像。實(shí)驗(yàn)證明,與傳統(tǒng)分割算法以及其他神經(jīng)網(wǎng)絡(luò)分割算法相比,本文算法在不同數(shù)據(jù)中獲得了更好的效果,保留了舌體圖像更多邊緣細(xì)節(jié)。本算法能夠?yàn)檎惶字嗅t(yī)自動(dòng)化診斷提供準(zhǔn)確的前期數(shù)據(jù)處理,后期利用更多數(shù)據(jù)的訓(xùn)練,數(shù)據(jù)集的擴(kuò)充,分割的準(zhǔn)確率會(huì)逐步提高。本算法靈活性強(qiáng),另外未來會(huì)使用本文算法對(duì)更多圖像進(jìn)行有效分割,擴(kuò)展本文算法的應(yīng)用性。