黎彪,刁燕
(四川大學(xué)機(jī)械工程學(xué)院,成都610065)
圖像分割是圖像處理中的一個(gè)關(guān)鍵步驟[1-3],通過合理的區(qū)域或邊緣劃分為后續(xù)的特征提取、場景識(shí)別等提供了重要信息,在機(jī)器人視覺[4]、生物醫(yī)學(xué)[5-8]、通信[9-10]、公共交通[11]等領(lǐng)域都有著廣泛的應(yīng)用。
圖像分割主要有閾值分割、區(qū)域分割、邊緣分割和直方圖方法。標(biāo)記分水嶺是一種區(qū)域分割中的區(qū)域生長方法,計(jì)算簡單,對于連通目標(biāo)具有較好的分割結(jié)果,分割獲得封閉區(qū)域?qū)τ趫D像分析有著重要意義。但標(biāo)記分水嶺對標(biāo)記和被分割圖像敏感,選擇不同的標(biāo)記和被分割圖像,往往會(huì)產(chǎn)生不同的結(jié)果[12-13]。
對此,一些學(xué)者提出了改進(jìn)標(biāo)記和被分割圖像[14-15],然后使用標(biāo)記分水嶺變換的圖像分割方法。高麗等人[16]提出對梯度低頻部分進(jìn)行極小值標(biāo)記,使用原始圖像的梯度圖作為被分割對象進(jìn)行分水嶺變換,有效抑制了過分割現(xiàn)象。Ghoshal 等人[17]提出距離變換的標(biāo)記分水嶺方法。Svenson S[18]基于距離變換和模糊距離變換提出細(xì)胞圖像的分割方法,較好分離出粘連物體。王伏增[19]提出對形態(tài)學(xué)梯度進(jìn)行開閉重建濾波[20],然后采用擴(kuò)展變換和強(qiáng)制極小值技術(shù)得到標(biāo)記,使用根據(jù)標(biāo)記修改后梯度圖像進(jìn)行分水嶺變換,對MRI 圖像有較好的分割精度。這些方法對于單一前景圖像都能獲得較好的分割結(jié)果,但對復(fù)雜圖像仍存在過分割問題。近幾年,隨著人工智能的興起,人們發(fā)現(xiàn)使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分割可以獲得非常好的效果,但復(fù)雜神經(jīng)網(wǎng)絡(luò)模型在低配置硬件上的運(yùn)行速度并不快,不能很好滿足實(shí)時(shí)性要求。
本文提出一種利用Canny 邊緣檢測算法[21]和形態(tài)學(xué)運(yùn)算獲取標(biāo)記,將原始圖像作為被分割圖像,進(jìn)行標(biāo)記分水嶺變換的圖像分割方法,能實(shí)時(shí)對復(fù)雜圖像進(jìn)行有效分割。
Canny 算法是一個(gè)經(jīng)典的多級邊緣檢測算法,在現(xiàn)在的研究和工業(yè)中仍被廣泛使用。Canny 通過變分法依據(jù)最優(yōu)邊緣準(zhǔn)則尋找最優(yōu)邊緣檢測函數(shù),獲得的邊緣檢測結(jié)果相比其他方法更為準(zhǔn)確、誤差更小[22]。用f表示原始圖像,C 表示邊緣檢測函數(shù),t1表示Canny 算法的第一個(gè)閾值,3t1表示第二個(gè)閾值,ec表示檢測結(jié)果,則有:
Canny 算法能夠準(zhǔn)確檢測到圖像中的邊緣,對于單一前景圖像檢測的邊緣正是我們需要的,但對于復(fù)雜圖像,即圖像中對象種類較多、沒有前背景區(qū)分、存在細(xì)密紋理,Canny 算法檢測到的許多邊緣并不是我們需要的。
為了描述形態(tài)學(xué)操作,先定義集合的反射和平移操作。集合B 的反射表示為[23],定義為:
集合B 平移z 表示為Bz,定義為:
用B 表示結(jié)構(gòu)元,A 表示被運(yùn)算集合,B 對A 進(jìn)行形態(tài)學(xué)膨脹定義為:
B 對A 進(jìn)行形態(tài)學(xué)腐蝕定義為:
圖像中有著細(xì)密紋理的物體時(shí),使用Canny 算法會(huì)檢測出密集的邊緣線。為了消除這種影響,先使用形態(tài)學(xué)膨脹操作將細(xì)密邊緣連接為整體,此時(shí)會(huì)將原本稀疏的邊緣線也膨脹,因此再通過形態(tài)學(xué)腐蝕操作還原原本良好的邊緣線。將處理后的邊緣圖像取反,得到非紋理標(biāo)記。用m1表示得到的標(biāo)記,則有:
~(·)表示取反操作,對于二值圖像就是0 和1 值互換,n1和n2表示使用結(jié)構(gòu)元B 連續(xù)進(jìn)行形態(tài)學(xué)運(yùn)算的次數(shù),為了避免完全腐蝕掉邊緣線,要求n1>n2,可取n2=n1-1。
非紋理標(biāo)記中不包含對細(xì)密紋理物體的標(biāo)記,若是需要更為細(xì)致的圖像分割,則需要添加相應(yīng)的標(biāo)記。通過形態(tài)學(xué)膨脹操作連接細(xì)密紋理物體,然后通過過度的形態(tài)學(xué)腐蝕操作,腐蝕掉圖像中原本良好的邊緣線,余下的便是密集邊緣所在物體的區(qū)域標(biāo)記。用m2表示得到的標(biāo)記,則有:
為了保證原本稀疏的邊緣線能夠腐蝕掉,要求n3 圖1 標(biāo)記獲取過程示例 標(biāo)記獲取的示例如圖1。圖1(a)是使用Canny 邊緣檢測算法得到的邊緣線,圖中黑色為背景,白色為邊緣線,左邊是無紋理物體檢測到的邊緣線,右邊是細(xì)密紋理物體的邊緣。圖1(b)中白色區(qū)域是得到的非紋理物體標(biāo)記,濾除了細(xì)密邊緣對象。圖1(c)中白色區(qū)域是得到的細(xì)密紋理物體標(biāo)記,圖1(d)中白色區(qū)域是最后獲得的標(biāo)記圖像,用m 表示,有: 將標(biāo)記圖像和原始圖像傳入標(biāo)記分水嶺變換函數(shù)中,就可得到分割結(jié)果。用M 表示標(biāo)記分水嶺變換,s表示分割結(jié)果,即: 如果需要進(jìn)一步減少分割區(qū)域,可以去除面積小于原始圖像0.015%的分割區(qū)域,得到最后的分割結(jié)果。可設(shè)置其余百分比。非邊緣去除的一種方法是,對分割后的邊緣圖像取反腐蝕后,對面積小于百分比的區(qū)域不標(biāo)記,其余正常標(biāo)記,再次應(yīng)用標(biāo)記分水嶺,獲得最后分割結(jié)果。非邊緣去除會(huì)增加時(shí)間成本。 所提出的分割方法在有不同對象的復(fù)雜灰度圖像上進(jìn)行測試。基于距離變換的標(biāo)記分水嶺方法是Ghoshal 等人[17]提出的一種前景和背景標(biāo)記的分水嶺分割方法,對于圖像有較好的分割效果。將本文所提出的分割方法的結(jié)果與Ghosha 方法分割結(jié)果進(jìn)行比較。在Intel Core i7-2820QM CPU@2.30GHz 主機(jī)上OpenCV 環(huán)境下進(jìn)行實(shí)驗(yàn)。 分別采用具有不同分割難度的rice、passageway 和interior 圖像進(jìn)行實(shí)驗(yàn)。rice 圖像中米粒與背景邊界分明,容易分割;passageway 圖像中對象增加,且部分邊界灰度相近,不易分割;interior 圖像中有較多不同對象,盡可能分割出不同對象具有難度。實(shí)驗(yàn)結(jié)果如圖2、3和4 所示。每個(gè)圖顯示原始圖像、文獻(xiàn)[17]算法結(jié)果以及本文提出方法產(chǎn)生的分割結(jié)果。圖中本文提出方法分割結(jié)果是沒有進(jìn)行非邊緣去除的結(jié)果,實(shí)驗(yàn)時(shí)在前面第1 和2 節(jié)參數(shù)如表1 所示,interior 圖像沒有進(jìn)行細(xì)密紋理標(biāo)記。 表1 實(shí)驗(yàn)圖像的本文方法參數(shù) 圖2(b)中文獻(xiàn)[17]方法分割結(jié)果,背景被分成了幾個(gè)區(qū)域,右下角的米粒沒有分割出來,圖2(c)中本文提出方法結(jié)果,背景是整體,每顆米粒分割邊界清晰。 圖2 rice圖像分割結(jié)果 圖3 (b)中文獻(xiàn)[17]方法分割結(jié)果,通道地面上有多余分割區(qū)域,與墻壁邊界沒有分割出來,消防柜分割不完整,圖3(c)中本文提出方法結(jié)果,墻壁與地面邊界部分分割,消防柜分割出來。 圖3 passageway圖像分割結(jié)果 圖4 (b)中文獻(xiàn)[17]方法分割結(jié)果,分割出桌子和門的大致輪廓,圖4(c)中本文提出方法分割結(jié)果,左下角的地面、椅子、上方的天花板、墻壁、門、左上方墻角、柜子都有完整輪廓。 圖4 interior圖像分割結(jié)果 圖像處理時(shí)間如表2 所示,在rice 和passageway圖像上本文方法處理時(shí)間更短,在interior 圖像上文獻(xiàn)[17]處理時(shí)間短3 毫秒。兩者處理時(shí)間在同一個(gè)數(shù)量級。 表2 處理時(shí)間比較(單位:毫秒) 圖5 是圖2(c)的分割結(jié)果按照第3 節(jié)的方法再進(jìn)行非邊緣去除后的分割結(jié)果,從圖中可以看出,圖2(c)中由噪聲造成的短小輪廓被去除,用時(shí)46 毫秒。雖然時(shí)間成本增加,但圖像分割效果也進(jìn)一步改善了。從前面的實(shí)驗(yàn)中可以看出,本文提出分割方法相比傳統(tǒng)基于距離變換的標(biāo)記分水嶺方法,運(yùn)算速度相近,分割效果更好。 圖5 rice圖像分割后進(jìn)一步處理結(jié)果 本文提出一種基于標(biāo)記分水嶺的圖像分割方法。該方法使用Canny 算法檢測邊緣,并通過數(shù)學(xué)形態(tài)學(xué)獲得非紋理標(biāo)記和細(xì)密紋理標(biāo)記,再進(jìn)行標(biāo)記分水嶺分割得到分割結(jié)果。實(shí)驗(yàn)結(jié)果表明,提出方法能夠產(chǎn)生封閉連續(xù)的邊緣,有效降低了圖像的過分割和欠分割,在單一前景圖像和擁有復(fù)雜對象圖像中都能獲得清晰的輪廓。分割時(shí),形態(tài)學(xué)運(yùn)算次數(shù)依賴于圖像大小和圖像中對象紋理密度,其自適應(yīng)取值需要進(jìn)一步的探討。3 標(biāo)記分水嶺和非邊緣去除
4 實(shí)驗(yàn)結(jié)果
5 結(jié)語