張瑞華
(江漢大學 物理與信息工程學院,武漢 430000)
閾值法[1-5]由于其計算量小、簡單有效而成為圖像分割中使用較廣泛的一種方法.何國生等[1]通過分析細胞灰度圖像的分布特性,應用新的自適應鑒別特征方法來分割干細胞,該方法對橢圓類含噪細胞圖像的效果較好,但對其他形狀細胞的分割結(jié)果不太理想.夏欣等[6]利用最大類間方差法進行迭代處理,自適應地搜尋最佳分割閾值,該算法對帶噪、對比度低的粘連細胞圖像的分割效果一般.楊輝華等[7]提出一種基于水平集和凹點區(qū)域檢測的細胞分割算法,與傳統(tǒng)水平集相比,該方法在準確度上有所提高,但在實時性上有待加強.
傳統(tǒng)水平集方法為C-V模型[6]和Shi快速水平集法[7].前者由于不采用目標邊界的梯度算子,而是基于區(qū)域灰度信息,因而對弱噪聲圖像的分割效果較好,但由于計算量大,在實時性上難以保證[8];后者為采用雙鏈表方式的窄帶模型,該算法實現(xiàn)簡單,但速度函數(shù)中的閾值無法自適應調(diào)整[9].本文將Bayes分類器和KNN分類器引入到水平集外部速度函數(shù)的設計中,兩種分類器輪流作用,無需設定閾值便能產(chǎn)生水平集驅(qū)動力.同時,算法將Shi模型的雙鏈表和C-V模型的全局分割相結(jié)合,以加快曲線演化.
本文方法分為2個步驟,首先通過優(yōu)化水平集算法對細胞圖像進行邊緣檢測,然后將目標與背景的類內(nèi)平均距離引入到OTSU閾值法的閾值選擇函數(shù)中,對細胞邊緣圖像進行分割.試驗結(jié)果表明,本文算法相較與傳統(tǒng)水平集和閾值法,能更準確的實現(xiàn)對帶噪、對比度低的復雜粘連細胞圖像的分割.
在Shi快速水平集算法中背景Ωb和目標Ω0是基于邊緣C的不斷演化而分割的,其本質(zhì)是曲線C對圖像像素點x的二分類,即若x∈Lout/Lin,判斷x∈Ω0/Ωb.其中Lin、Lout分別為Shi算法的內(nèi)部鏈表和外部鏈表.基于此,將Bayes分類器和KNN分類器引入到水平集外部速度函數(shù)的設計中.其中驅(qū)動力h(x)為:
(1)
式中,I(x),ε,cb,c0分別是像素x灰度值,某正數(shù),背景灰度均值和目標灰度均值.p(Ω0)和p(I(x)|Ω0)為目標區(qū)域的先驗概率和條件概率密度;p(Ωb)和p(I(x)|Ωb)為背景區(qū)域的先驗概率和條件概率密度.
(2)
(3)
式中:Num[φ(x)<0]為目標類像素點總數(shù),Num[φ(x)>0]為背景類像素點總數(shù).但當l0(x)=lb(x),即|I(x)-c0|=|I(x)-cb|時分類失敗.因此,將Bayes分類器g(x)引入到h(x)的設計中.
如上所述,q0(x)=qb(x)時Bayes分類器失效,l0(x)=lb(x)時KNN分類器失效,而本文將Bayes分類器和KNN分類器同時引入到水平集外部速度函數(shù)的設計中,兩種分類器輪流作用,當一種分類器失效時,另一種分類器將產(chǎn)生水平集驅(qū)動力以促進曲線繼續(xù)演化.只有當?x∈Lout(或?x∈Lin)且q0(x)=qb(x),l0(x)=lb(x)成立時,演化終止.
為了簡化計算,這里以Ω0和Ωb內(nèi)像素點的個數(shù)來近似等效先驗概率p(Ω0)和p(Ωb),即p(Ω0)=∑(φ(x)<0)/Num(x∈Ω),p(Ωb)=∑(φ(x)>0)/Num(x∈Ω);用Ω0和Ωb內(nèi)像素點個數(shù)的統(tǒng)計直方圖來近似等效類條件概率密度p(I(x)|Ω0)和p(I(x)|Ωb),即p(I(x)|Ω0)=Num(I(x))/∑φ(x)<0,p(I(x)|Ωb)=Num(I(x))/∑φ(x)>0.同時采用加權均值濾波器G(x)以提高h(x)的抗噪性能.
h′(x)=G(x)?h(x).
(4)
綜上所述,F(xiàn)ext(x)設計如下:
(5)
其中h′(x)=G(x)?h(x),
(6)
綜上所述,本文將Bayes分類器和KNN分類器引入到水平集外部速度函數(shù)的設計中,兩種分類器輪流作用,無需設定閾值便能產(chǎn)生水平集驅(qū)動力.算法將Shi模型的雙鏈表和C-V模型的全局分割相結(jié)合,以加快曲線演化.
本文提出的的優(yōu)化水平集算法可按以下步驟進行.
1)初始化.設置Shi快速水平集中雙鏈表Lin、Lout和水平集函數(shù)φ(x),根據(jù)φ(x)初始化p(Ω0),p(Ωb),p(I(x)|Ω0),p(I(x)|Ωb),設置曲線演化的最大迭代次數(shù)Nmax.
2)Fori=1:Nmaxdo
第1步 (第一個循環(huán),在外部速度函數(shù)Fext(x)的作用下曲線的演化過程)
Fori=1:Noutdo
向外演化:根據(jù)式(5)計算鏈表Lout中每點的驅(qū)動力h′(x),進而得到Fext(x)的符號,若Fext(x)>0,設置φ(x)=-1,如果?y∈N4(x)滿足φ(y)=3,則令φ(y)=1.
清除Lin冗余點:檢查鏈表Lin上的每個點x,若滿足?y∈N4(x),且φ(y)<0,則將點x作為冗余點刪除,同時設置φ(x)=-3.
更新驅(qū)動力h′(x):根據(jù)φ(x)符號,更新p(Ω0),p(Ωb),p(I(x)|Ω0),p(I(x)|Ωb)和平均灰度值c0,cb.
向內(nèi)演化:根據(jù)式(5)計算鏈表Lin中每點的驅(qū)動力h′(x),進而得到Fext(x)的符號,若Fext(x)<0,設置φ(x)=1,如果?y∈N4(x)滿足φ(y)=-3,則令φ(y)=-1.
清除Lout冗余點:檢查鏈表Lout上的每個點x,若滿足?y∈N4(x),且φ(y)>0,則將點x作為冗余點刪除,同時設置φ(x)=3.
更新驅(qū)動力h′(x):更新p(Ω0),p(Ωb),p(I(x)|Ω0),p(I(x)|Ωb)和平均灰度值c0,cb.
終止條件判斷:?x∈Lout或?x∈Lin若滿足q0(x)=qb(x)和l0(x)=lb(x),則跳轉(zhuǎn)至第2步;否則,返回第1步.
第2步 (第二個循環(huán),在內(nèi)部速度函數(shù)Fin(x)的作用下曲線的演化過程)
Fori=1:Nindo
循環(huán)過程與第1步的基本一致,只需將其中的Fext(x)用Fin(x)代替,并去掉其中的終止條件判斷步驟,F(xiàn)in(x)中的G(x)采用加權均值濾波器.
第3步 迭代停止條件.
?x∈Lout或?x∈Lin滿足q0(x)=qb(x)且l0(x)=lb(x)或者達到最大迭代次數(shù)Nmax,則曲線演化停止,退出主循環(huán),否則返回第1步.
神經(jīng)元干細胞(neural stem cells,NSC)圖像具有邊緣模糊、對比度低的特點,對其分別采用本文算法及三種經(jīng)典水平集算法:Shi算法、C-V算法、Li算法進行邊緣檢測,結(jié)果如圖1所示.本文算法的初始輪廓為位于圖像中心的30×42像素矩形曲線,參數(shù)設置如下:λ0=λb=1,Nmax=80,Nout=20,Nin=3;C-V算法的參數(shù)設置為u=0.01×2552,λ0=λb=1;v=0,ε=1,Δt=0.1,Li算法的參數(shù)設置為:u=0.04,v=1.5,λ=5,Δt=0.1.
(a) 迭代次數(shù)為0 (b) 迭代次數(shù)為30 (c) 迭代次數(shù)為50 (d) 迭代次數(shù)為76
(e) Shi算法 (f) 本文算法 (g) C-V算法 (h) Li算法圖1 NSC圖像的邊緣檢測結(jié)果Fig.1 Edge detection results of NSC cell image
本文算法的檢測過程如圖1(a)~(d),可見當?shù)螖?shù)為76時已收斂到邊緣了.Shi算法中閾值I1、I2設置為[175,252],由圖可知,本文算法和Shi算法結(jié)果幾乎一致,都準確地檢測到邊緣.C-V算法的檢測結(jié)果如圖1(g),雖收斂到邊緣但伴隨著一些冗余輪廓.Li算法的檢測結(jié)果如圖1(h),未能收斂到邊緣便已停止演化了.
對白細胞(white blood cells,WBC)圖像加入(0.05,0.2)高斯噪聲,如圖2所示.可見,Li算法對噪聲較敏感未能收斂到邊緣便已停止演化,這是由于該算法是以圖像邊緣梯度信息作為驅(qū)動力.當圖像的噪聲干擾較大時,基于區(qū)域灰度信息的C-V算法會將很多噪聲點誤判為邊緣點,如圖2(b)所示.Shi算法實現(xiàn)簡單,但速度函數(shù)中的閾值無法隨噪聲自動調(diào)整,因而將部分噪聲誤判為邊緣,如圖2(c)所示.本文算法在強噪聲干擾下仍能準確演化到邊緣,如圖2(d)所示.
(a) Li算法 (b) C-V算法 (c) Shi算法 (d) 本文算法圖2 添加(0.05,0.2)高斯噪聲的WBC圖像邊緣檢測結(jié)果Fig.2 Edge detection results of the WBC image with (0.05,0.2) Gaussian noise
經(jīng)典OTSU 算法[10]和局部遞歸OTSU 算法[11-12]都是基于灰度統(tǒng)計的分割算法,它們將背景與目標的類間方差最大值作為閾值選擇的依據(jù),而忽略了類內(nèi)平均距離.基于此,本文在閾值函數(shù)的設計中引入目標與背景的類內(nèi)平均距離:
(7)
其中:w0,w1分別為目標點和背景點占整幅圖片的像素點比例,u0、σ0、u1、σ1分別為目標點和背景點的平均灰度和類間方差.
采用優(yōu)化水平集獲得細胞輪廓,如圖3(b)所示,用改進OTSU法分割,結(jié)果如圖3(c)所示,最后通過開、閉[13]獲得細胞分割結(jié)果,如圖3(d)所示.
(a)原始圖像閾值法分割結(jié)果圖3 優(yōu)化水平集的OTSU 閾值分割過程Fig.3 The OTSU threshold segmentation process based on optimized level set
圖4(a)按從左到右的順序為隨機抽取某個NSC細胞圖像序列中第2、25、55、85、110、130、140幀圖像,圖4(b)~(d)給出了三種算法的分割結(jié)果.文獻[1]對OTSU閾值法進行了改進,引入預測因子k和松弛因子s,參數(shù)k,s初始值設置為:k=120,s=10.文獻[6]的參數(shù)設置為:u=0.03,v=1.4,λ=4.5,Δt=0.1.本文算法的參數(shù)設置為:λ0=λb=1,Nmax=80,Nout=20,Nin=3.
圖4(b)顯示了文獻[1]對序列的分割結(jié)果,出現(xiàn)了多個粘連處未分割且有丟失細胞的情況.這是由于該算法通過分析細胞灰度圖像的分布特性,應用新的自適應鑒別特征方法來分割細胞,該方法對低噪細胞圖像的分割效果較好,但對細胞邊緣模糊、對比度低的粘連細胞圖像的分割結(jié)果不太理想.文獻[6]的分割結(jié)果如圖4(c)所示,該算法對圓形細胞的分割較好,但對不規(guī)則形狀粘連細胞的分割結(jié)果差強人意,這是由于該算法是基于圓型先驗模型來檢測細胞邊緣.本文算法的分割結(jié)果見圖4(d),除丟失了極個別細胞,所有粘連處均得到正確分割.
(a) 原始圖像
(b) 文獻[1]閾值法分割結(jié)果
(c) 文獻[6]水平集算法分割結(jié)果
(d) 本文算法分割結(jié)果圖4 3種算法對NSC序列部分圖像的分割對比Fig.4 The results of segmentation and comparison of three algorithms for NSC sequence images
本文提出了一種基于優(yōu)化水平集的細胞圖像閾值分割法,可在跟蹤細胞邊緣的基礎上實現(xiàn)對粘連處的分割.多個細胞圖像序列的分割實驗表明:本文算法相較與傳統(tǒng)水平集和閾值法,能更準確的實現(xiàn)對帶噪、對比度低的粘連細胞圖像的分割.