劉生富, 張鵬程, 周廣宇, 劉 祎, 桂志國(guó)
(中北大學(xué) 生物醫(yī)學(xué)成像與影像大數(shù)據(jù)山西重點(diǎn)實(shí)驗(yàn)室, 山西 太原 030051)
隨著計(jì)算機(jī)軟硬件和圖像處理技術(shù)的快速發(fā)展, 在醫(yī)學(xué)領(lǐng)域中將計(jì)算機(jī)和圖像處理結(jié)合起來(lái), 能夠?yàn)獒t(yī)務(wù)工作者提供有效的服務(wù), 為疾病的診斷提供有力的依據(jù). 傳統(tǒng)紅細(xì)胞計(jì)數(shù)人員手工進(jìn)行計(jì)數(shù), 統(tǒng)計(jì)紅細(xì)胞的數(shù)量. 但是, 手動(dòng)計(jì)數(shù)受個(gè)人主觀意識(shí)與外界環(huán)境因素的影響, 錯(cuò)檢率較高.
由于顯微圖像中細(xì)胞分布疏密程度不同、 排列狀態(tài)不一、 部分細(xì)胞相互重疊、 且圖像中混入雜質(zhì)較多, 這些因素都給紅細(xì)胞的識(shí)別帶來(lái)了很大的困擾.
現(xiàn)有的紅細(xì)胞圖像自動(dòng)分割方法主要包括: 閾值分割算法[1]、 分水嶺算法[2]和凹點(diǎn)檢測(cè)法[3]等. 其中閾值分割算法[1]是基于圖像的灰度特征來(lái)計(jì)算一個(gè)或多個(gè)灰度閾值, 并將圖像中每個(gè)像素的灰度值與閾值作比較, 最后將像素根據(jù)比較結(jié)果分到合適的類(lèi)別中. 該方法計(jì)算簡(jiǎn)單, 效率較高. 但是, 該方法只考慮像素點(diǎn)本身灰度值的特征, 不考慮空間特征, 形狀特征, 因此識(shí)別結(jié)果對(duì)噪聲比較敏感, 魯棒性較差, 無(wú)法區(qū)分重疊細(xì)胞與雜質(zhì); 分水嶺算法[2]的優(yōu)點(diǎn)是計(jì)算速度快, 能夠檢測(cè)重疊細(xì)胞. 但是該方法存在一個(gè)很大的缺陷, 即對(duì)圖像灰度變化極敏感. 當(dāng)圖像的灰度分布不均時(shí), 該方法極易造成過(guò)分割, 對(duì)于形狀類(lèi)似于細(xì)胞的雜質(zhì)無(wú)法進(jìn)行準(zhǔn)確識(shí)別. 例如, 韓懸等人[4]提出改進(jìn)的分水嶺算法在圖像分割中的應(yīng)用, 利用Otsu[5]閾值分割法和灰度調(diào)整對(duì)圖像進(jìn)行前景標(biāo)記, 通過(guò)距離變換的分水嶺來(lái)實(shí)現(xiàn)背景標(biāo)記, 對(duì)梯度幅值圖像利用相關(guān)函數(shù)進(jìn)行修改, 使其只在標(biāo)記位置有局部極小值, 隨后進(jìn)行分水嶺變換, 得出分割結(jié)果, 其結(jié)果可以將部分重疊細(xì)胞分割開(kāi). 但是對(duì)于復(fù)雜圖像即前景背景灰度值相差不大的區(qū)域難以進(jìn)行標(biāo)記, 容易造成分割混亂, 故導(dǎo)致最后細(xì)胞的計(jì)數(shù)不準(zhǔn)確; 凹點(diǎn)檢測(cè)法[3]不依賴(lài)于顯微圖像的灰度信息, 僅通過(guò)分析細(xì)胞輪廓的形狀和凹凸性來(lái)達(dá)到分離重疊細(xì)胞的目的. 同樣該方法對(duì)非細(xì)胞的雜質(zhì)難以區(qū)分開(kāi)來(lái), 并且凹點(diǎn)匹配有時(shí)會(huì)出現(xiàn)匹配錯(cuò)誤, 即非粘連細(xì)胞的凹點(diǎn)進(jìn)行了匹配. 例如廖苗等[6]提出的基于SVM[7-8]的橢圓擬合凹點(diǎn)檢測(cè)細(xì)胞分割算法, 將原始圖像進(jìn)行二值化, 提取每個(gè)連通區(qū)域的多個(gè)形狀特征并應(yīng)用SVM進(jìn)行測(cè)試, 區(qū)分單個(gè)與重疊細(xì)胞. 運(yùn)用瓶頸檢測(cè), 尋找分離點(diǎn)對(duì)重疊細(xì)胞的分割. 基于細(xì)胞的橢圓或圓形結(jié)構(gòu), 對(duì)分割后的邊緣, 應(yīng)用改進(jìn)的橢圓擬合法進(jìn)行修正, 修正后的細(xì)胞區(qū)域能夠反映重疊在一起的細(xì)胞的形狀, 該方法只對(duì)重疊細(xì)胞進(jìn)行了分離, 但是無(wú)法識(shí)別形狀類(lèi)似于細(xì)胞的雜質(zhì), 使得最后計(jì)數(shù)的結(jié)果會(huì)產(chǎn)生較大的誤差.
針對(duì)以上現(xiàn)有紅細(xì)胞識(shí)別算法存在的不足, 即重疊細(xì)胞的過(guò)分割和欠分割, 無(wú)法區(qū)分細(xì)胞與雜質(zhì), 本文提出了一種基于SVM方法和改進(jìn)分水嶺算法的紅細(xì)胞自動(dòng)識(shí)別方法. 通過(guò)提取二值化圖像中細(xì)胞連通區(qū)域的多個(gè)形狀特征[9-10], 利用SVM對(duì)該區(qū)域進(jìn)行判斷. 對(duì)于被判定為重疊的區(qū)域應(yīng)用分水嶺的方法將其分割為單個(gè)的連通區(qū)域. 將單個(gè)的連通區(qū)域映射到原始圖像之中, 提取其顏色特征[11]之后對(duì)單個(gè)的連通區(qū)域應(yīng)用另一個(gè)SVM分類(lèi)器進(jìn)行雜質(zhì)與細(xì)胞的識(shí)別, 最后統(tǒng)計(jì)單個(gè)細(xì)胞的個(gè)數(shù)[12]便得到了最后的結(jié)果.
本文算法流程如圖 1 所示, 主要包括二值化處理、 SVM識(shí)別單連通區(qū)域與重疊連通區(qū)域、 分水嶺分割重疊連通區(qū)域、 SVM識(shí)別細(xì)胞與雜質(zhì)和統(tǒng)計(jì)計(jì)數(shù)5個(gè)步驟.
圖 1 計(jì)數(shù)算法流程圖Fig.1 Counting algorithm flow chart
首先, 對(duì)圖像進(jìn)行二值化處理, 獲取細(xì)胞的黑白圖像; 然后, 通過(guò)SVM分類(lèi)器對(duì)二值化圖像中的連通區(qū)域進(jìn)行判斷, 如果是粘連區(qū)域, 通過(guò)分水嶺算法將粘連的連通區(qū)域分割為單個(gè)的連通區(qū)域, 接著使用另一個(gè)SVM分類(lèi)器單個(gè)連通區(qū)域進(jìn)行單個(gè)細(xì)胞與雜質(zhì)的識(shí)別; 最后, 統(tǒng)計(jì)單個(gè)細(xì)胞的個(gè)數(shù). 每個(gè)步驟的原理及實(shí)現(xiàn)過(guò)程見(jiàn)下文所述.
首先, 針對(duì)采集圖像光照不均勻的問(wèn)題, 對(duì)輸入圖像用基于二維Gamma函數(shù)的自適應(yīng)校正算法[13], 對(duì)輸入圖像進(jìn)行背景校正. 使用二維Gamma函數(shù)對(duì)HSV空間的V(亮度)分量進(jìn)行亮度改變, 對(duì)校正后的圖像進(jìn)行灰度轉(zhuǎn)換. 由于轉(zhuǎn)換后灰度圖中的背景與目標(biāo)前景對(duì)比度不大, 所以采用Laplacian算子的圖像邊緣增強(qiáng)算法[14]對(duì)灰度圖像進(jìn)行邊緣增強(qiáng). 由于灰度圖像存在噪聲, 所以, 對(duì)其進(jìn)行中值濾波降噪. 接著使用自適應(yīng)閾值算法對(duì)降噪后的圖像進(jìn)行二值化分割. 由于紅細(xì)胞自身特性呈凹餅狀, 故二值化處理后圖像的前景細(xì)胞存在一些空洞. 為了使前景連通區(qū)域都成為實(shí)心的閉合區(qū)域, 首先, 進(jìn)行形態(tài)學(xué)[15]膨脹操作, 使二值化圖像中每個(gè)輪廓都成為閉合的區(qū)域; 之后, 對(duì)二值化圖像進(jìn)行種子填充, 將閉合區(qū)域的內(nèi)部填充為前景色. 種子填充的原理如下: 假設(shè)二值化圖像為A, 首先A向外延展一到兩個(gè)像素, 確保下文所提到的種子點(diǎn)位于背景之內(nèi), 并將值填充為背景色像素為0, 標(biāo)記為B, 使用漫水填充將B的大背景填充, 填充值為前景色像素為255, 種子點(diǎn)為(0, 0)記為C, 將填充好的圖像裁剪為原圖像大小, 即將延展部分去掉, 此時(shí)圖像記為D, 將D取反與A相加即得填充的圖像. 至此, 輪廓都成為閉合連續(xù)的區(qū)域, 最后, 進(jìn)行形態(tài)學(xué)腐蝕, 結(jié)果如圖 2 所示.
圖 2 原圖與二值化圖像Fig.2 Original image and binarization image
本文重點(diǎn)提取連通區(qū)域的形狀特征, 細(xì)胞與雜質(zhì)的顏色特征. 重疊連通區(qū)域與單個(gè)連通區(qū)域通常在形狀上具有顯著差異, 通過(guò)連通區(qū)域的形狀特征對(duì)該區(qū)域使用SVM進(jìn)行單個(gè)連通區(qū)域與重疊區(qū)域的分類(lèi). 細(xì)胞與雜質(zhì)在顏色上也具有顯著差異, 所以, 通過(guò)SVM進(jìn)行細(xì)胞與雜質(zhì)的分類(lèi). 分類(lèi)結(jié)果的好壞很大程度上取決于定義的特征, 特征分類(lèi)的定義如下:
特征1: 計(jì)算圖像中連通區(qū)域外輪廓與其外輪廓凸包的匹配率
(1)
(2)
特征2: 計(jì)算圖像中當(dāng)前輪廓區(qū)域的矩形度
(3)
式中:area代表當(dāng)前區(qū)域輪廓的面積;H*W代表外接矩形的面積, 若R的值接近于1, 則說(shuō)明是單細(xì)胞; 若明顯小于1, 則說(shuō)明是重疊的細(xì)胞.
特征3: 計(jì)算圖像中輪廓似圓度
(4)
式中:area代表當(dāng)前輪廓區(qū)域面積;L代表當(dāng)前輪廓的周長(zhǎng);C為輪廓似圓度, 單個(gè)連通區(qū)域明顯接近圓形, 所以輪廓似圓度接近于1, 而重疊的區(qū)域明顯偏離了1的范圍.
特征4: 計(jì)算圖像中輪廓擬合出的橢圓長(zhǎng)短軸之比
(5)
式中:Rh代表當(dāng)前區(qū)域的擬合橢圓的長(zhǎng)軸;Rw代表當(dāng)前區(qū)域的擬合橢圓的短軸.若K_WH接近于1, 則為單個(gè)細(xì)胞; 若明顯大于1, 則為重疊細(xì)胞.
特征5: 計(jì)算彩色圖像中黑色分量占比, 計(jì)算原始圖像輪廓外接矩形區(qū)域的偏黑色分量, 并以此為閾值, 直接對(duì)彩色圖像進(jìn)行二值化, 輸入一個(gè)低值數(shù)組與一個(gè)高值數(shù)組, 每個(gè)通道的像素值都在規(guī)定的數(shù)組范圍內(nèi), 則令該像素為255, 否則為0, 此時(shí)計(jì)算255像素總量與其圖片區(qū)域總像素的比值.
特征6: 計(jì)算彩色圖像中綠色分量占比, 原理同特征5.
特征7: 計(jì)算彩色圖像中黃色分量占比, 原理同特征5.
有些雜質(zhì)形狀類(lèi)似單個(gè)細(xì)胞, 但顏色有明顯差別, 所以將黑白圖像映射到彩色圖像去計(jì)算3個(gè)顏色分量的占比, 從而將雜質(zhì)與單個(gè)細(xì)胞區(qū)分開(kāi)來(lái), 使得計(jì)算結(jié)果更加精確. 特征1到特征4作為識(shí)別單連通區(qū)域與重疊連通區(qū)域的特征, 特征5到特征7作為識(shí)別細(xì)胞與雜質(zhì)的特征. 單個(gè)細(xì)胞, 重疊細(xì)胞, 雜質(zhì)如圖 3 所示.
圖 3 細(xì)胞的不同形態(tài)Fig.3 Different morphology of cells
傳統(tǒng)的分水嶺算法基于拓?fù)淅碚摰臄?shù)學(xué)形態(tài)學(xué)分割方法, 基本思想是把圖像看作是測(cè)地學(xué)上的拓?fù)涞孛玻?圖像中每一點(diǎn)像素的灰度值表示該點(diǎn)的海拔高度, 每一個(gè)局部極小值及其影響區(qū)域稱(chēng)為集水盆, 而集水盆的邊界則形成分水嶺. 該算法可以模擬成洪水淹沒(méi)的過(guò)程, 圖像的最低點(diǎn)首先被淹沒(méi), 然后水淹沒(méi)整個(gè)山谷. 水位到達(dá)一定高度將會(huì)溢出, 這時(shí)在水溢出的地方修建堤壩, 直到整個(gè)圖像上的點(diǎn)全部被淹沒(méi), 這時(shí)所建立的一系列堤壩就成為分開(kāi)各個(gè)盆地的分水嶺. 由于圖像中灰度極小值點(diǎn)較多, 這就導(dǎo)致集水盆數(shù)目過(guò)多, 從而造成圖像的過(guò)分割, 因此本文對(duì)分水嶺算法進(jìn)行了一些改進(jìn), 將圖像分為前景區(qū)域、 背景區(qū)域和不確定區(qū)域3部分, 并對(duì)其進(jìn)行標(biāo)記之后進(jìn)行分水嶺變換, 可以有效防止過(guò)分割.
1) 通過(guò)SVM分類(lèi)得到重疊的連通區(qū)域, 獲取此重疊的連通區(qū)域.
2) 對(duì)獲取的區(qū)域圖像進(jìn)行距離變換, 距離變換主要是用來(lái)細(xì)化細(xì)胞的輪廓,尋找細(xì)胞的質(zhì)心,距離變換之后就得到了所需要的前景區(qū)域.
3) 通過(guò)對(duì)白色前景的深度膨脹運(yùn)算獲得一個(gè)超過(guò)前景實(shí)際大小的物體, 用反向閾值將深度膨脹后的圖像中黑色部分轉(zhuǎn)換成128像素, 即完成了對(duì)背景像素的標(biāo)記.
4) 背景區(qū)域與前景區(qū)域進(jìn)行合并, 便得到了標(biāo)記圖像, 像素為128為背景區(qū)域, 像素為255為前景區(qū)域, 像素為0則為不確定區(qū)域, 不確定區(qū)域主要含有目標(biāo)圖像與背景的邊界點(diǎn), 以及周?chē)y以鑒別的部分.
5) 對(duì)得到標(biāo)記的圖像進(jìn)行分水嶺變換, 可以將重疊的連通區(qū)域分割開(kāi), 最后將輪廓進(jìn)行橢圓擬合, 并在彩色圖像上對(duì)應(yīng)位置進(jìn)行標(biāo)注. 對(duì)圖 3(a) 與圖 3(b) 的分割擬合結(jié)果如圖 4 所示.
圖 4 分水嶺算法標(biāo)記與結(jié)果Fig.4 Watershed algorithm markers and results
本文在實(shí)驗(yàn)室自主開(kāi)發(fā)的便攜式血常規(guī)檢測(cè)儀中進(jìn)行圖像采集, 檢測(cè)卡的細(xì)胞檢測(cè)孔管底內(nèi)壁沉積有經(jīng)過(guò)處理的紅細(xì)胞溶液, 通過(guò)顯微攝像機(jī)獲取實(shí)驗(yàn)所需圖像.
SVM是實(shí)現(xiàn)自然圖像自動(dòng)分類(lèi)的方法, 是在分類(lèi)與回歸分析中分析數(shù)據(jù)的監(jiān)督式學(xué)習(xí)模型與相關(guān)的學(xué)習(xí)算法. 給定一組訓(xùn)練數(shù)據(jù), 每個(gè)訓(xùn)練數(shù)據(jù)被標(biāo)記為屬于兩個(gè)類(lèi)別中的一個(gè)或另一個(gè), SVM 訓(xùn)練算法創(chuàng)建一個(gè)將新的實(shí)例分配給兩個(gè)類(lèi)別之一的模型, 使其成為非概率二元線性分類(lèi)器. SVM模型是將實(shí)例表示為空間中的點(diǎn), 這樣映射就使得單獨(dú)類(lèi)別的實(shí)例被盡可能寬的明顯的間隔分開(kāi). 之后, 將新的實(shí)例映射到同一空間, 并基于它們落在間隔的哪一側(cè)來(lái)預(yù)測(cè)所屬類(lèi)別. 簡(jiǎn)言之, SVM 就是一種二類(lèi)分類(lèi)模型, 他的基本模型是定義在特征空間的間隔最大的線性分類(lèi)器, SVM 的學(xué)習(xí)策略就是間隔最大化. 對(duì)于本實(shí)驗(yàn), SVM分類(lèi)器的核函數(shù)選擇均為線性核. 影響SVM 分類(lèi)器性能較大的參數(shù)為懲罰系數(shù)C,C越高, 越容易過(guò)擬合;C越小, 越容易欠擬合, 這里我們經(jīng)過(guò)反復(fù)實(shí)驗(yàn)得出懲罰系數(shù)C為1的時(shí)候, 識(shí)別準(zhǔn)確率最高.
其中SVM訓(xùn)練數(shù)據(jù)集采用LabelMe制作, 包括80個(gè)單個(gè)細(xì)胞的正樣本1, 80個(gè)重疊細(xì)胞的正樣本2, 40個(gè)雜質(zhì)的負(fù)樣本. 提取正樣本1與正樣本2的形狀特征, 輸入SVM1訓(xùn)練, 提取正樣本1與負(fù)樣本的顏色特征, 輸入SVM2訓(xùn)練, 上述特征均為1, 2所定義的特征. 對(duì)于實(shí)驗(yàn)的測(cè)試圖像, 需要提取每個(gè)連通區(qū)域的形狀特征, 通過(guò)SVM1分類(lèi)器去識(shí)別單連通區(qū)域與重疊連通區(qū)域, 對(duì)于重疊連通區(qū)域, 使用改進(jìn)的分水嶺算法分割為單個(gè)連通區(qū)域. 將單個(gè)連通區(qū)域的位置映射到原始圖像的同一位置, 提取顏色特征, 通過(guò)SVM2去識(shí)別是否為細(xì)胞, 將最終識(shí)別的細(xì)胞區(qū)域進(jìn)行橢圓擬合并在原始圖像上進(jìn)行標(biāo)記.
針對(duì)圖2的a, b, c 3幅圖像的實(shí)驗(yàn)結(jié)果如圖 5 所示, 將本文使用的算法與直接使用分水嶺分割算法、 凹分割算法的準(zhǔn)確率進(jìn)行比較, 圖 5 中的a1方框標(biāo)記的部分為雜質(zhì), 本文算法將其作為雜質(zhì)識(shí)別出來(lái), 所以沒(méi)有對(duì)其進(jìn)行標(biāo)記, 而在a2, a3方框標(biāo)記的部分可以看出對(duì)雜質(zhì)進(jìn)行了標(biāo)記, 把雜質(zhì)當(dāng)做細(xì)胞進(jìn)行處理. 對(duì)于b1中方框標(biāo)記的部分有兩個(gè)雜質(zhì), 在b2與b3中錯(cuò)誤地把這兩個(gè)雜質(zhì)當(dāng)成細(xì)胞進(jìn)行處理. 同樣在c1中, 方框所標(biāo)記的部分有兩個(gè)為雜質(zhì), c2與c3中錯(cuò)誤識(shí)別. 所以通過(guò)實(shí)驗(yàn)結(jié)果可以看到, 本文的算法可以很好地將細(xì)胞與雜質(zhì)區(qū)分開(kāi). 經(jīng)過(guò)本文算法處理, 圖 5 中的重疊細(xì)胞可以很好地分割出來(lái), 從而提高計(jì)數(shù)的準(zhǔn)確率.
圖 5 紅細(xì)胞識(shí)別算法結(jié)果比較Fig.5 Comparison of red blood cell recognition algorithm results
本文使用的紅細(xì)胞識(shí)別算法可以很好地通過(guò)顏色特征將形狀相似的細(xì)胞與雜質(zhì)區(qū)分開(kāi)來(lái), 準(zhǔn)確度大幅度提升. 對(duì)100張不同血液細(xì)胞圖像進(jìn)行計(jì)數(shù)準(zhǔn)確率統(tǒng)計(jì), 發(fā)現(xiàn)血液細(xì)胞濃度越高, 計(jì)數(shù)的準(zhǔn)確率就越低, 但是對(duì)于細(xì)胞液較高濃度的血液細(xì)胞圖像, 準(zhǔn)確率也在90%以上, 如表 1 所示. 將經(jīng)本文算法處理所得紅細(xì)胞的計(jì)數(shù)結(jié)果與紅細(xì)胞的標(biāo)準(zhǔn)數(shù)目作比較, 識(shí)別準(zhǔn)確率為94.3%以上, 將本文算法與其它兩種算法進(jìn)行比較, 可以看出本文算法的識(shí)別準(zhǔn)確率明顯優(yōu)于其它算法.
表 1 本文識(shí)別算法與其它算法的比較
本文提出一種基于SVM方法[16]和改進(jìn)分水嶺算法的紅細(xì)胞圖像自動(dòng)識(shí)別方法. 首先對(duì)原始圖像進(jìn)行二值化處理, 通過(guò)提取二值化圖像中連通區(qū)域的多個(gè)形狀特征, 對(duì)連通區(qū)域進(jìn)行判斷. 對(duì)于被判定為重疊的區(qū)域, 應(yīng)用改進(jìn)分水嶺方法將其分割為單個(gè)的連通區(qū)域, 將單個(gè)的連通區(qū)域映射到原始圖像中同一位置, 提取其顏色特征之后對(duì)此連通區(qū)域應(yīng)用另一個(gè)SVM分類(lèi)器進(jìn)行雜質(zhì)與細(xì)胞的識(shí)別, 最后統(tǒng)計(jì)細(xì)胞的個(gè)數(shù)便得到了最后的結(jié)果, 采用橢圓擬合的方法在原圖上進(jìn)行標(biāo)記, 以便更好地觀察其結(jié)果. 經(jīng)本文的算法處理, 識(shí)別準(zhǔn)確率達(dá)到了94.3%. 結(jié)果表明, 本文算法可以很好地將重疊區(qū)域分開(kāi), 將細(xì)胞與雜質(zhì)區(qū)分開(kāi), 識(shí)別準(zhǔn)確率得到了很大的提升.