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