榮亞琪,張麗娟,崔金利,蘇 偉,蓋夢野
(1.吉林農(nóng)業(yè)大學(xué) 信息技術(shù)學(xué)院,吉林 長春 130118;2.長春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,吉林 長春 130012;3.長春中醫(yī)藥大學(xué)附屬醫(yī)院 醫(yī)藥影像科,吉林 長春 130000;4.長春中醫(yī)藥大學(xué) 醫(yī)藥信息學(xué)院,吉林 長春 130117)
紅細(xì)胞是血液中最豐富的血細(xì)胞,其主要作用是運(yùn)輸氧氣和一部分二氧化碳[1]。紅細(xì)胞圖像領(lǐng)域的研究大多集中在紅細(xì)胞計(jì)數(shù),通過檢查紅細(xì)胞的數(shù)量、形態(tài)來鑒別和診斷某些疾病。然而,由于圖像中的紅細(xì)胞通常會出現(xiàn)重疊和粘連等現(xiàn)象,因此很難對后續(xù)紅細(xì)胞進(jìn)行計(jì)數(shù)和識別。以往血液學(xué)家通常會避免選擇重疊紅細(xì)胞的區(qū)域,但在自動分割情況下,很難避免這種現(xiàn)象。自動分割方法必須處理重疊、粘連紅細(xì)胞以產(chǎn)生真實(shí)的分割情形。為了更好地處理重疊、粘連細(xì)胞,近幾十年來,國內(nèi)外研究學(xué)者提出了許多細(xì)胞圖像分割算法,這些算法主要分為傳統(tǒng)算法和深度學(xué)習(xí)算法兩大類。傳統(tǒng)分割算法主要包括圖論分割法[2-4]、水平集算法[5]、分水嶺算法[6]、區(qū)域生長法等,深度學(xué)習(xí)算法主要有卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[7]、全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN)[8]、U-Net神經(jīng)網(wǎng)絡(luò)[9]、U-Net++神經(jīng)網(wǎng)絡(luò)[10-11]等。
在傳統(tǒng)細(xì)胞圖像分割中,王衛(wèi)星等人[12]利用圖論與數(shù)學(xué)形態(tài)學(xué)結(jié)合的方法分割粘連細(xì)胞。該算法雖然簡單,易于實(shí)現(xiàn),但對于形狀不規(guī)則、大小不均勻的細(xì)胞而言,誤差率較高,分割效果不理想。Wei等人[13]結(jié)合區(qū)域生長算法和顏色空間變換分割重疊細(xì)胞。該算法分割平均準(zhǔn)確率較高,但是當(dāng)紅細(xì)胞中沒有明顯的內(nèi)部邊緣時(shí),準(zhǔn)確率會降低。Miao等人[14]提出一種標(biāo)記控制的分水嶺算法用于分割紅細(xì)胞,首先提取細(xì)胞的二值圖像,然后獲得前景、背景標(biāo)記,最后對重建的梯度圖像應(yīng)用分水嶺算法獲得分割結(jié)果。該算法操作簡單,計(jì)算時(shí)間少,但中等的圖像質(zhì)量會對分割算法準(zhǔn)確度產(chǎn)生影響。由于噪聲、圖像質(zhì)量等問題,一些傳統(tǒng)分割算法不能表現(xiàn)出很好的魯棒性,而深度學(xué)習(xí)算法利用大量的樣本數(shù)據(jù)學(xué)習(xí)細(xì)胞圖像特征,其分割準(zhǔn)確率高于傳統(tǒng)圖像分割算法,因此可將傳統(tǒng)算法與深度學(xué)習(xí)算法相結(jié)合實(shí)現(xiàn)語義分割[15-18]。Huang等人[19]提出將全卷積神經(jīng)網(wǎng)絡(luò)U-Net與改進(jìn)的水平集方法相結(jié)合分割重疊細(xì)胞,該算法首先采用U-Net檢測細(xì)胞核和細(xì)胞質(zhì),再利用改進(jìn)的水平集能量函數(shù)結(jié)合距離圖和新的形狀先驗(yàn)項(xiàng)提取細(xì)胞輪廓以提高算法分割精度。Kowal等人[20]提出一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和種子分水嶺算法來分割細(xì)胞圖像,使用CNN分類器預(yù)分割細(xì)胞核,種子分水嶺處理重疊核。該算法優(yōu)于經(jīng)典的分水嶺算法,分割結(jié)果較好,但計(jì)算時(shí)間復(fù)雜度較大。
本文綜合U-Net++網(wǎng)絡(luò)和神經(jīng)常微分方程(Neural Ordinary Differential Equations,NODE)[21]各自的優(yōu)點(diǎn),提出了一種新的深度學(xué)習(xí)網(wǎng)絡(luò)用于紅細(xì)胞的初步分割,再利用標(biāo)記分水嶺(Marker Watershed,MW)算法提高血液涂片圖像中紅細(xì)胞的分割精度。本文主要貢獻(xiàn)如下:
(1)結(jié)合U-Net++和NODE提出了一種新的語義分割體系結(jié)構(gòu),我們將它稱之為NODEUNet++,它使用改進(jìn)的編碼器-解碼器結(jié)構(gòu)對紅細(xì)胞初步分割。
(2)初步分割得到的概率灰度圖輸入到MW算法中得到紅細(xì)胞最終分割圖像。
實(shí)驗(yàn)結(jié)果表明,本文算法在分割精度方面比其他幾種算法取得了較好的效果。
實(shí)驗(yàn)所采用的數(shù)據(jù)庫由醫(yī)學(xué)圖像和信號處理研究中心以及伊斯法罕醫(yī)學(xué)科學(xué)大學(xué)病理系提供[22]。數(shù)據(jù)集中包含148張清晰的血涂片圖像,圖像中含有少量的白細(xì)胞和大量紅細(xì)胞。由于原始圖像尺寸較大,圖像分辨率為775×519,因此選擇256×256像素大小的圖像作為訓(xùn)練樣本,將其中48張圖像作為測試集,100張作為訓(xùn)練集和驗(yàn)證集。
LabelMe是麻省理工學(xué)院的計(jì)算機(jī)科學(xué)和人工智能實(shí)驗(yàn)室研發(fā)的在線注釋工具,可用于執(zhí)行圖像標(biāo)注[23]。我們將原始圖像中的細(xì)胞經(jīng)過LabelMe標(biāo)注之后生成json文件,在標(biāo)注時(shí),將細(xì)胞與數(shù)字一一對應(yīng),紅細(xì)胞對應(yīng)數(shù)字1,背景為0。對json文件進(jìn)行解析并轉(zhuǎn)換分別得到它的mask圖像和標(biāo)簽圖像。圖1是標(biāo)注和解析的實(shí)例。
圖1 圖像標(biāo)注和解析。(a)原始圖像;(b)Mask圖像;(c)標(biāo)簽圖像。Fig.1 Image annotation and analysis.(a)Original image;(b)Mask image;(c)Label image.
由于訓(xùn)練樣本較少,需要對紅細(xì)胞圖像執(zhí)行數(shù)據(jù)增強(qiáng)以擴(kuò)大樣本集,主要是運(yùn)用隨機(jī)旋轉(zhuǎn)、水平和豎直翻轉(zhuǎn)等操作對100張訓(xùn)練樣本進(jìn)行變換,擴(kuò)充為500張,在增加訓(xùn)練數(shù)據(jù)的同時(shí)也提高了模型泛化能力,防止網(wǎng)絡(luò)模型過擬合。對擴(kuò)充后的圖像按照8∶2的比例分成訓(xùn)練樣本和驗(yàn)證樣本用于訓(xùn)練和驗(yàn)證NODE-UNet++網(wǎng)絡(luò)模型,48張測試集圖像用于評估訓(xùn)練好的網(wǎng)絡(luò)模型。圖2是數(shù)據(jù)增強(qiáng)的實(shí)例。
圖2 數(shù)據(jù)增強(qiáng)實(shí)例Fig.2 Data enhancement
為了提高紅細(xì)胞分割準(zhǔn)確度,我們提出了一種NODE-UNet++和MW算法相結(jié)合的紅細(xì)胞分割模型。算法主要分為以下3個(gè)部分:(1)對血液涂片圖像進(jìn)行預(yù)處理、圖像裁剪、標(biāo)注數(shù)據(jù)集、數(shù)據(jù)增強(qiáng);(2)利用深度卷積網(wǎng)絡(luò)NODEUNet++對紅細(xì)胞圖像進(jìn)行初步分割,使用標(biāo)注好的訓(xùn)練集對模型進(jìn)行訓(xùn)練,用訓(xùn)練好的模型對圖像分割,得到概率灰度圖;(3)采用MW算法進(jìn)一步優(yōu)化初步分割結(jié)果,得到紅細(xì)胞的最終分割結(jié)果圖。整個(gè)算法流程如圖3所示。
圖3 算法流程圖Fig.3 Flow chart of our method for red blood cell image segmentation
常微分方程(Ordinary Differential Equations,ODE)是包含一個(gè)自變量t,未知函數(shù)h(t)和未知函數(shù)導(dǎo)數(shù)的等式,可表示為:
在數(shù)學(xué)中,我們通常的做法是解出未知函數(shù)h(t),然而在工程應(yīng)用中更常用數(shù)值解,即不需要解出未知函數(shù)的通解,只需根據(jù)已知值逐漸趨近未知值即可。歐拉法是一種古老的求解微分方程數(shù)值的方法,即
但Δt每走一步都會產(chǎn)生誤差,并且誤差會不斷積累。因此現(xiàn)在工程中針對求解微分方程提出一種適應(yīng)性工具——ODE solver求解器,它不像歐拉法移動固定步長,相反它根據(jù)給定的誤差容忍度選擇合適的步長逼近未知值。
殘差網(wǎng)絡(luò)[24]是神經(jīng)常微分方程的一個(gè)特殊形式,一個(gè)殘差塊包括直接映射部分和殘差部分(圖4),可表示為
圖4 殘差塊結(jié)構(gòu)圖Fig.4 Structure of residual block
其中ht是t層的輸出向量;Wt是t層的網(wǎng)絡(luò)參數(shù),F(xiàn)是Wt參數(shù)化后的神經(jīng)網(wǎng)絡(luò),在殘差網(wǎng)絡(luò)中,F(xiàn)一般是由卷積操作構(gòu)成。若Δt=1,那么殘差網(wǎng)絡(luò)可看作離散化的歐拉法。當(dāng)Δt→0時(shí),相當(dāng)于用更多的層以更小的步驟一步步趨近,在這種極限狀態(tài)下就變成了由神經(jīng)網(wǎng)絡(luò)指定的常微分方程,即神經(jīng)常微分方程網(wǎng)絡(luò),ODE塊結(jié)構(gòu)如圖5所示。
圖5 ODE結(jié)構(gòu)圖Fig.5 Structure of ODE block
NODE是一個(gè)連續(xù)的神經(jīng)網(wǎng)絡(luò),其可以用常微分方程求解器ODE solver求解。訓(xùn)練連續(xù)神經(jīng)網(wǎng)絡(luò)時(shí),正向傳遞操作相對簡單,難點(diǎn)在于ODE solver反向傳播,其具體操作可在文獻(xiàn)[21]中找到。
所提出的初步分割網(wǎng)絡(luò)模型是在U-Net++的基礎(chǔ)上使用神經(jīng)常微分方程,該網(wǎng)絡(luò)架構(gòu)如圖6所示。該架構(gòu)與U-Net++的區(qū)別主要有以下兩點(diǎn):(1)在編碼器階段,使用卷積塊和ODE塊一同來提取淺層特征圖。(2)U-Net++在編碼器和解碼器之間加入了一系列的卷積層,并在各個(gè)卷積層之間加入了短連接。在U-Net網(wǎng)絡(luò)特征提取過程中,使用長連接來組合編碼器模塊生成的淺層特征圖和解碼器模塊生成的深層特征圖,然而U-Net很難融合淺層和深層特征圖,因此U-Net++使用跳躍連接來降低淺層特征圖和深層特征圖的語義差別。受U-Net++網(wǎng)絡(luò)的影響,NODE-UNet++使用密集卷積塊的跳躍連接來彌合編碼器和解碼器特征圖之間的語義嫌隙。
圖6 NODE-UNet++網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Architecture of NODE-UNet++
NODE-UNet++與U-Net++一樣使用了深度監(jiān)督,其在每個(gè)輸出節(jié)點(diǎn)(X0,1,X0,2,X0,3,,X0,4)加入了1×1的卷積層和sigmoid函數(shù)。sigmoid函數(shù)取值范圍為[0,1],它將輸出值z映射到[0,1]區(qū)間,如式(5)所示:
損失函數(shù)用來評估模型的預(yù)測值和真實(shí)值不一致的程度。在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,函數(shù)損失值越小,說明模型預(yù)測值越接近真實(shí)值,模型的魯棒性越好。紅細(xì)胞圖像分割是二分類問題,因此,NODE-UNet++網(wǎng)絡(luò)損失函數(shù)采用二元交叉熵?fù)p失,定義為:
其中,N表示圖像像素總數(shù);y代表訓(xùn)練標(biāo)簽,當(dāng)y為1或0時(shí),表示像素i屬于紅細(xì)胞或非紅細(xì)胞;p(y)代表輸出y標(biāo)簽的概率。
分水嶺經(jīng)典算法是Vincent等人于1991年提出,它是一種分割圖像區(qū)域的方法,基本思想是將圖像視為拓?fù)涞匦巍D像中像素灰度值為0的點(diǎn)代表地面,像素灰度值最大的點(diǎn)代表地形的最高點(diǎn),其中灰度值較大的點(diǎn)連接的線構(gòu)成分水嶺。由于紅細(xì)胞圖像存在不止一個(gè)極值點(diǎn),直接對紅細(xì)胞圖像應(yīng)用分水嶺算法往往會導(dǎo)致過分割[25-26]。MW算法是在傳統(tǒng)分水嶺算法的基礎(chǔ)上做出了改進(jìn),通過尋找一些前景標(biāo)記和背景標(biāo)記來更好地分割細(xì)胞圖像,因此我們采用MW算法來分割紅細(xì)胞。先提取紅細(xì)胞梯度圖像,對梯度圖像進(jìn)行處理,做好前景標(biāo)記和背景標(biāo)記之后,對梯度圖像進(jìn)行修正,最后應(yīng)用分水嶺算法分割紅細(xì)胞。
首 先 使 用Sobel邊 緣 算 子[27]來 獲 得 紅 細(xì)胞的梯度圖像,然后運(yùn)用形態(tài)學(xué)重建對紅細(xì)胞梯度圖像進(jìn)行處理。通過Matlab中的strel函數(shù)創(chuàng)建一個(gè)半徑為3的平面圓盤形的結(jié)構(gòu)元素,在相同的結(jié)構(gòu)元素下,利用imerode函數(shù)和imreconstruct函數(shù)得到基于開的重建圖像。在此基礎(chǔ)上,對重建的開閉圖像利用imregionalmax函數(shù)計(jì)算局部極大值,腐蝕后獲得前景標(biāo)記。之后,對二值圖像計(jì)算距離變換后再進(jìn)行分水嶺變換,得到的分水嶺脊線圖即為背景標(biāo)記。利用imimposemin函數(shù)對紅細(xì)胞梯度圖像進(jìn)行修正,則局部極小值只存在于標(biāo)記位置。前景標(biāo)記對應(yīng)一個(gè)細(xì)胞,背景標(biāo)記分布在圖像背景上,形成一對一的關(guān)系,可以有效抑制過分割現(xiàn)象。最后對修正圖像執(zhí)行標(biāo)記分水嶺算法以獲得紅細(xì)胞最終的分割結(jié)果。
實(shí)驗(yàn)利用大量256×256像素的圖像測試和驗(yàn)證了所提方法的有效性和魯棒性。將紅細(xì)胞分割算法分為兩個(gè)步驟。初步分割實(shí)驗(yàn)環(huán)境是Ubuntu16.04 LTS 64位操作系統(tǒng),使用Keras庫搭建神經(jīng)網(wǎng)絡(luò),后端采用Tensorflow,調(diào)用Adam優(yōu)化器對網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化,學(xué)習(xí)率為1e-4,將訓(xùn)練集和驗(yàn)證集輸入網(wǎng)絡(luò)中訓(xùn)練100次,訓(xùn)練過程中每輪(epoch)的訓(xùn)練損失函數(shù)值和精度值、驗(yàn)證損失函數(shù)值和精度值如圖7所示。圖8是使用NODE-UNet++進(jìn)行紅細(xì)胞初步分割的3個(gè)案例。再次分割實(shí)驗(yàn)采用Matlab實(shí)現(xiàn)。圖9是使用MW算法對紅細(xì)胞再次分割的實(shí)驗(yàn)結(jié)果。
圖7 NODE-UNet++訓(xùn)練過程中的損失函數(shù)值和精度Fig.7 Loss values and accuracy in the training process of NODE-UNet++
圖8 NODE-UNet++分割效果圖。(a)原始圖像;(b)標(biāo)簽圖像;(c)初始分割圖像。Fig.8 Segmentation images of NODE-UNet++.(a)Original images;(b)Label images;(c)Presegmentation images.
圖9 MW算法分割效果圖。(a)前景標(biāo)記圖;(b)背景標(biāo)記圖;(c)最終結(jié)果圖;(d)修正后的梯度圖像;(e)分割的紅細(xì)胞。Fig.9 Segmentation images of MW algorithm.(a)Foreground marker image;(b)Background marker image;(c)Final image;(d)Reconstruction map of gradient topographic;(e)Segmented RBCs.
為了進(jìn)一步驗(yàn)證本文算法,將文獻(xiàn)[14]、U-Net++和MW算法相結(jié)合(MW-UNet++)的算法與本文算法進(jìn)行比較分析。文獻(xiàn)[14]是采用標(biāo)記控制分水嶺算法來分割紅細(xì)胞,MWUNet++是先使用UNet++對紅細(xì)胞進(jìn)行初步分割,再采用標(biāo)記分水嶺算法分割粘連紅細(xì)胞。實(shí)驗(yàn)結(jié)果如圖10所示。由圖10可知,NODEUNet++模型算法能較好地提取紅細(xì)胞輪廓,但對于紅細(xì)胞粘連、重疊等區(qū)域存在嚴(yán)重的欠分割現(xiàn)象;MW算法能很好地解決紅細(xì)胞這一問題,但是它對微弱邊緣等其他干擾因素過于敏感,往往會產(chǎn)生漏提取。綜合兩種方法的優(yōu)點(diǎn),NODE-UNet++與MW算法相結(jié)合能夠提取出大部分大小不同、粘連、重疊的紅細(xì)胞。
圖10 3種算法分割效果圖。(a)原始圖像;(b)標(biāo)簽圖像;(c)文獻(xiàn)[14]算法;(d)MW-UNet++算法;(e)本文算法。Fig.10 Red blood cell segmentation results from three different algorithms.(a)Original image;(b)Label image;(c)Results using the algorithm in[14];(d)Results using MW-UNet++algorithm;(e)Results using our algorithm.
為了更好地評估本文算法的分割效果,對實(shí)驗(yàn)結(jié)果進(jìn)行定性定量分析。目前,圖像分割中通常使用一些評估方法來衡量算法的精度,本文使用Dice系數(shù)(Dice Similarly Coefficient,DSC)、平均像素準(zhǔn)確率(Mean Pixel Accuracy,MPA)和平均交并比(Mean Intersection over Union,MIoU)3個(gè)指標(biāo)來評估算法分割結(jié)果,其計(jì)算都是建立在混淆矩陣的基礎(chǔ)上,混淆矩陣如表1所示。
表1 混淆矩陣Tab.1 Confusion matrix
Dice系數(shù)是一種集合相似度度量指標(biāo),通常用于計(jì)算兩個(gè)樣本的相似度,取值范圍為0~1,越接近1說明分割結(jié)果越好。Dice系數(shù)公式如式(7)所示:
像素準(zhǔn)確率表示所有預(yù)測正確的像素?cái)?shù)占像素總數(shù)的比例,在本文中是指被正確預(yù)測為紅細(xì)胞的像素?cái)?shù)和被正確預(yù)測為非紅細(xì)胞的像素?cái)?shù)相對于像素總數(shù)的百分比,定義為:
平均像素準(zhǔn)確率是針對每一類別的像素準(zhǔn)確率取均值,在本文中指紅細(xì)胞像素準(zhǔn)確率和非紅細(xì)胞像素準(zhǔn)確率的平均值,定義為:
交并比是語義分割中常用的指標(biāo)之一,含義是模型對某一類別的預(yù)測值和真實(shí)值之間交集和并集的比值,定義為:
平均交并比針對每一類別的交并比取均值,在本文中指紅細(xì)胞和非紅細(xì)胞交并比的平均值,定義為:
表2顯示了3種算法對測試集48張圖片的定量定性結(jié)果,圖11為實(shí)驗(yàn)結(jié)果DSC、MPA、MIoU指標(biāo)的箱型圖。觀察表2和圖11,使用本文算法分割效果顯著提升,Dice系數(shù)比文獻(xiàn)[14]算法和MW-UNet++算法分別提高1.12%、0.46%;MPA比文獻(xiàn)[14]算法和MW-UNet++算法分別提高2.82%、0.84%;MIoU比文獻(xiàn)[14]算法和MWUNet++算法分別提高2.1%、0.79%。實(shí)驗(yàn)結(jié)果表明,使用本文算法分割紅細(xì)胞效果更精確。
表2 3種方法的定量結(jié)果Tab.2 Quantitative results of three methods
圖11 實(shí)驗(yàn)結(jié)果指標(biāo)圖Fig.11 Box-plots of three algorithms
針對紅細(xì)胞粘連、重疊等問題,本文提出了一種基于NODE-UNet++和MW算法的單個(gè)紅細(xì)胞提取方法。具體來說,NODE-UNet++網(wǎng)絡(luò)設(shè)計(jì)了一個(gè)具有卷積塊和ODE塊的編碼器,用來提取圖像特征,使用跳躍連接來減少淺層和深層特征圖的語義差距。實(shí)驗(yàn)結(jié)果表明,NODE-UNet++算法能夠精確地提取出單個(gè)紅細(xì)胞,Dice系數(shù)達(dá)96.89%,平均像素精確率達(dá)98.97%,平均交并比達(dá)96.33%,明顯優(yōu)于單獨(dú)使用MW算法或者M(jìn)W-UNet++算法提取的結(jié)果。本文算法還需要進(jìn)一步改進(jìn),接下來將對NODE-UNet++網(wǎng)絡(luò)模型進(jìn)行改進(jìn),在不增加網(wǎng)絡(luò)規(guī)模的前提下,提高網(wǎng)絡(luò)的預(yù)測精度,改善紅細(xì)胞分割算法的性能。