SLIC超像素分割詳解(一)
超像素概念是2003年Xiaofeng Ren提出和發(fā)展起來的圖像分割技術(shù),是指具有相似紋理、顏色、亮度等特征的相鄰像素構(gòu)成的有一定視覺意義的不規(guī)則像素塊。它利用像素之間特征的相似性將像素分組,用少量的超像素代替大量的像素來表達(dá)圖片特征,很大程度上降低了圖像后處理的復(fù)雜度,所以通常作為分割算法的預(yù)處理步驟。已經(jīng)廣泛用于圖像分割、姿勢估計(jì)、目標(biāo)跟蹤、目標(biāo)識(shí)別等計(jì)算機(jī)視覺應(yīng)用。幾種常見的超像素分割方法及其效果對(duì)比如下:
? ?Graph-based ? ? ? ? ? NCut ? ? ? ? ? ?Turbopixel ? ? ? ? ?Quick-shift ? ? ? ?Graph-cut a ? ? ? ?Graph-cut b ? ? ? ? SLIC
這里主要介紹的是SLIC(simple linear iterativeclustering),即簡單的線性迭代聚類。它是2010年提出的一種思想簡單、實(shí)現(xiàn)方便的算法,將彩色圖像轉(zhuǎn)化為CIELAB顏色空間和XY坐標(biāo)下的5維特征向量,然后對(duì)5維特征向量構(gòu)造距離度量標(biāo)準(zhǔn),對(duì)圖像像素進(jìn)行局部聚類的過程。SLIC算法能生成緊湊、近似均勻的超像素,在運(yùn)算速度,物體輪廓保持、超像素形狀方面具有較高的綜合評(píng)價(jià),比較符合人們期望的分割效果。
SLIC主要優(yōu)點(diǎn)總結(jié)如下:1)生成的超像素如同細(xì)胞一般緊湊整齊,鄰域特征比較容易表達(dá)。這樣基于像素的方法可以比較容易的改造為基于超像素的方法。2)不僅可以分割彩色圖,也可以兼容分割灰度圖。3)需要設(shè)置的參數(shù)非常少,默認(rèn)情況下只需要設(shè)置一個(gè)預(yù)分割的超像素的數(shù)量。4)相比其他的超像素分割方法,SLIC在運(yùn)行速度、生成超像素的緊湊度、輪廓保持方面都比較理想。
在介紹SLIC之前,插播一下Lab顏色空間的介紹。Lab色彩模型是由亮度(L)和有關(guān)色彩的a, b三個(gè)要素組成。L表示亮度(Luminosity),L的值域由0(黑色)到100(白色)。a表示從洋紅色至綠色的范圍(a為負(fù)值指示綠色而正值指示品紅),b表示從黃色至藍(lán)色的范圍(b為負(fù)值指示藍(lán)色而正值指示黃色)。Lab顏色空間的優(yōu)點(diǎn):1)不像RGB和CMYK色彩空間,Lab 顏色被設(shè)計(jì)來接近人類生理視覺。它致力于感知均勻性,它的 L 分量密切匹配人類亮度感知。因此可以被用來通過修改 a 和 b 分量的輸出色階來做精確的顏色平衡,或使用 L 分量來調(diào)整亮度對(duì)比。這些變換在 RGB 或 CMYK 中是困難或不可能的。2)因?yàn)?Lab 描述的是顏色的顯示方式,而不是設(shè)備(如顯示器、打印機(jī)或數(shù)碼相機(jī))生成顏色所需的特定色料的數(shù)量,所以 Lab 被視為與設(shè)備無關(guān)的顏色模型。3)色域?qū)掗煛K粌H包含了RGB,CMYK的所有色域,還能表現(xiàn)它們不能表現(xiàn)的色彩。人的肉眼能感知的色彩,都能通過Lab模型表現(xiàn)出來。另外,Lab色彩模型的絕妙之處還在于它彌補(bǔ)了RGB色彩模型色彩分布不均的不足,因?yàn)镽GB模型在藍(lán)色到綠色之間的過渡色彩過多,而在綠色到紅色之間又缺少黃色和其他色彩。如果我們想在數(shù)字圖形的處理中保留盡量寬闊的色域和豐富的色彩,最好選擇Lab。
下面描述一下SLIC具體實(shí)現(xiàn)的步驟:
1.??初始化種子點(diǎn)(聚類中心):按照設(shè)定的超像素個(gè)數(shù),在圖像內(nèi)均勻的分配種子點(diǎn)。假設(shè)圖片總共有 N 個(gè)像素點(diǎn),預(yù)分割為 K 個(gè)相同尺寸的超像素,那么每個(gè)超像素的大小為N/ K ,則相鄰種子點(diǎn)的距離(步長)近似為S=sqrt(N/K)。
2.??在種子點(diǎn)的n*n鄰域內(nèi)重新選擇種子點(diǎn)(一般取n=3)。具體方法為:計(jì)算該鄰域內(nèi)所有像素點(diǎn)的梯度值,將種子點(diǎn)移到該鄰域內(nèi)梯度最小的地方。這樣做的目的是為了避免種子點(diǎn)落在梯度較大的輪廓邊界上,以免影響后續(xù)聚類效果。
3.??在每個(gè)種子點(diǎn)周圍的鄰域內(nèi)為每個(gè)像素點(diǎn)分配類標(biāo)簽(即屬于哪個(gè)聚類中心)。和標(biāo)準(zhǔn)的k-means在整張圖中搜索不同,SLIC的搜索范圍限制為2S*2S,可以加速算法收斂,如下圖。在此注意一點(diǎn):期望的超像素尺寸為S*S,但是搜索的范圍是2S*2S。
4.??距離度量。包括顏色距離和空間距離。對(duì)于每個(gè)搜索到的像素點(diǎn),分別計(jì)算它和該種子點(diǎn)的距離。距離計(jì)算方法如下:
其中,dc代表顏色距離,ds代表空間距離,Ns是類內(nèi)最大空間距離,定義為Ns=S=sqrt(N/K),適用于每個(gè)聚類。最大的顏色距離Nc既隨圖片不同而不同,也隨聚類不同而不同,所以我們?nèi)∫粋€(gè)固定常數(shù)m(取值范圍[1,40],一般取10)代替。最終的距離度量D'如下:
由于每個(gè)像素點(diǎn)都會(huì)被多個(gè)種子點(diǎn)搜索到,所以每個(gè)像素點(diǎn)都會(huì)有一個(gè)與周圍種子點(diǎn)的距離,取最小值對(duì)應(yīng)的種子點(diǎn)作為該像素點(diǎn)的聚類中心。
5.??迭代優(yōu)化。理論上上述步驟不斷迭代直到誤差收斂(可以理解為每個(gè)像素點(diǎn)聚類中心不再發(fā)生變化為止),實(shí)踐發(fā)現(xiàn)10次迭代對(duì)絕大部分圖片都可以得到較理想效果,所以一般迭代次數(shù)取10。
6.??增強(qiáng)連通性。經(jīng)過上述迭代優(yōu)化可能出現(xiàn)以下瑕疵:出現(xiàn)多連通情況、超像素尺寸過小,單個(gè)超像素被切割成多個(gè)不連續(xù)超像素等,這些情況可以通過增強(qiáng)連通性解決。主要思路是:新建一張標(biāo)記表,表內(nèi)元素均為-1,按照“Z”型走向(從左到右,從上到下順序)將不連續(xù)的超像素、尺寸過小超像素重新分配給鄰近的超像素,遍歷過的像素點(diǎn)分配給相應(yīng)的標(biāo)簽,直到所有點(diǎn)遍歷完畢為止。
參考文獻(xiàn):
[1] ?Achanta,Radhakrishna, et al. Slic superpixels. No. EPFL REPORT 149300. 2010.
[2] Achanta,Radhakrishna, et al. "SLIC superpixels compared to state-of-the-artsuperpixel methods." Pattern Analysis and Machine Intelligence, IEEETransactions on 34.11 (2012): 2274-2282.
原文:https://blog.csdn.net/electech6/article/details/45509779