《SLIC Superpixels》閱讀筆記

SLIC 超像素(SLICSuperpixels)

Radhakrishna Achanta, Appu Shaji, KevinSmith, Aurelien Lucchi,

Pascal Fua, and Sabine Susstrunk

摘要:

超像素在計算機視覺領域越來越流行。但是,低計算量的算法卻很少。我們發明了一種原創的算法,使像素聚類爲五維顏色和圖像層,用來生成簡潔整齊的超像素。我們的研究結果非常簡單易用,效率很高,具備很好的實用價值。實驗證明我們的算法計算消耗低,但是卻達到或者超過了其他4種最新的(state-of-art)方法。這種結論是通過比較boundary recall和under-segmentation error得出的。

1.介紹:

超像素提供了一種便捷的方式來計算local features。他們通過獲得圖像中的redundancy來大幅度地減輕後續圖像處理的複雜度。已經證明在深度估算(depth estimation),圖像分割(image segmentation),骨架提取(skeletonization),人體模型估計(body modelestimation),目標定位(object localization)等等領域十分有效。

超像素要想實際應用必須要運算速度快,簡單易用,並且生成高質量的分割。不幸的是,現在最新的超像素生成方法都不能同時滿足上述的要求。有的方法計算量大,有的算法分割質量差,有的算法包含多重難調的參數。

我們在本文中提出的方法,簡單的同時達到了高質量整齊的超像素分割,並且比最新的方法都要效率高。我們提出的算法叫simple linear iterative clustering(SLIC),採用的是當地像素聚類(local clustering),該像素是5維的(5-D space), 是通過定義CIELAB顏色空間(就是Lab顏色空間)中的L,a,b數值以及x,y像素座標。提出的一種全新的距離計算方法加強了超像素形狀的整齊性,可以同時用於彩色圖像和灰度圖像。SLIC很簡單就能實現---唯一需要的參數就是設定超像素的個數。在伯克利標準數據庫(Berkeley benchmark dataset)中實驗表明,SLIC在產生相似或更好的分割時,效率大幅度提高。該結論通過standard boundary recall和under-segmentationmeasures得到的。

對於很多視覺任務來說,緊湊整齊的超像素,就像SLIC生成的那樣,是非常需要的。例如,基於圖的模型條件隨機場(ConditionalRandom Fields (CRF)),當從像素圖到超像素圖的時候,可以看到巨大的速度提升,但是鬆散的無關的超像素會使表現變差。如果超像素分割的鬆散的話,從超像素提取的本地特徵SIFT會變得失去意義,沒有區分度。這種現象可以通過比較兩種視覺任務顯現出來:物體分類識別和醫學圖像分割。兩個例子中,我們的結果都比現有的方法表現要好並且計算量低。

2.研究背景

這個部分簡要回顧現有的圖像分割方法,重點放在生成超像素的適應性上。當然,並不是所有的算法都是用於這個目的,所以有的分割出來可能不夠緊湊。但是我們依然討論他們。

我們大體上將超像素算法分爲兩大類:基於圖的和基於梯度上升的。我們的調查結果見Table 1,考慮的因素是分割質量,能不能控制分割數目和大小。

2.1基於圖的分割算法

基於圖的分割算法中,每個像素被認爲是一個節點,兩個節點間的邊界權重取決於像素間的差值。超像素的分割是通過最小化一個定義在圖上的cost funcation來得到的。Normalized cuts algorithm[9]是一個典型的算法,用的是形狀(contour)和紋理(texture)。這是NC05的基本原理,NC05的算法複雜度爲O(N3/2),N是像素的總個數。有方法可以提高運算效率,但是對大圖像來說它仍然計算量大。NC05多用於骨架提取(skeletonization),人體模型估計(body modelestimation)。

Fezenszwalb和Huttenlocher[GS04]提出了一種採用最短生成樹的算法,效率提高,但是不能控制超像素的數目和緊湊。算法的複雜度爲O(NlogN)。

一種超像素網格的生成算法[SL08],是通過尋找最佳垂直或水平路徑來切分圖像,採用基於圖像條的圖割方法(Asuperpixel lattice is generated by [14] (SL08) by finding optimalvertical(horizontal) seams/paths that cut the image, within vertical(horizontal) strips of pixels, using graph cuts on strips of the image.)。SL08算法允許設定超像素的大小、數量,但分割質量和分割速度嚴重依賴於pre-computedboundary maps。

基於梯度上升的分割算法:從一個初始的粗糙聚類開始,每次迭代得到一個更好的分割,直到收斂爲止。接下來講了Mean-shift,Quick-shift,以及Watersheds和Turbopixels的優缺點。

2.2 基於梯度上升的算法

從一個初始的粗糙聚類開始,每次迭代得到一個更好的分割,直到收斂爲止。接下來,作者討論了一下Mean-shift,Quick-shift,以及Watersheds和Watersheds。簡單介紹了一下,然後分析了一下它的缺點。

Mean-shift不能控制超像素的大小和數目,因爲Mean-shift依賴於輸入的核參數。

Quick-shift要比Mean-shift快一點,跟Mean-shift一樣也不能控制超像素的大小和數目。

接下來還講了一下Watersheds和Watersheds,但沒講這兩種方法的缺點,只是簡單的介紹了一下這方面的工作。

3.SLIC分割算法

我們生成超像素是通過基於顏色相似度和臨近度的像素聚類。這是在5維中進行的,[labxy]。[lab]是指CIELAB顏色空間中的像素顏色向量。CIELAB顏色空間就是指HSV空間,亮度空間,xy指像素的位置。兩種顏色的最大的空間是有限的,空間距離依賴於圖片大小。不可能簡單地採用歐式距離在這5維空間中,如果不對空間距離歸一化的話。爲了使5維空間中的像素聚類,我們因此引入了一種新的距離測量方法。通過這種新的測量方法,我們把顏色相似度和像素位置融合了起來。

3.1距離測量方法

輸入一個超像素數目的參數K。那麼對於一張N個像素的圖像來說,每個超像素大小約爲N/K個像素。那麼,每兩個相鄰的超像素塊之間的距離爲s=sqrt(N/K)。算法開始時,我們選擇聚類的中心Ck =[lk,ak,bk,xk,yk],k屬於[1,K]。每個超像素的面積大約爲S的平方(近似於超像素的面積)。我們可以安全地假設:像素在聚類中心的2S*2S範圍內。這個範圍就是每個聚類中心的搜尋範圍。

歐式距離在亮度空間內小距離是很有意義的。如果空間像素距離超過了顏色距離,那麼圖像上的邊界不再有效(文章的意思是這樣是不對的)。因此,在5D空間中取代簡單的歐式距離,我們採用Ds如下:

其中Ds是lab距離和歸一化後的xy距離之和。其中變量m用來控制超像素的緊密度。m的值在[1,20]之間。在接下來的文章中,我們統一選擇m=10。這個數值既能在感官經驗上滿足顏色距離最大化,又能很好的在顏色相似度和空間相似度的平衡。

3.2算法

我們開始採樣K個空間聚類中心,並且移動到3X3的最低梯度位置。這樣做的好處是避免把他們放到邊界,也避免選擇了噪點像素。圖像梯度的計算公式是:

其中I(x,y)是lab向量在位置(x,y)上的值。||.||是用的L2 norm。這同時考慮了顏色和強度信息。

每個像素與最近的聚類中心聯繫起來,並且被該聚類中心的search area覆蓋。所有的像素與聚類中心聯繫起來後,一個新的中心被計算出來了。這個新中心是所有屬於該聚類的labxy向量的平均值。我們重複該過程直到收斂爲止。

最後,可能存在一些迷失的labels,那是因爲附近一個大一些的分割有同樣的label但並沒有包含它。但是很少見,這種情況可能增加,因爲我們的聚類沒有明確地加強連通性。不管怎樣,我們在最後一步加強連通性,重新標記不相交的分割塊,通過最大附近聚類的標籤。這一步是O(N)複雜度,時間消耗小於整體分割的10%。

 

3.3 複雜度計算

很容易就會注意到,在我們的算法中,本地聚類和聚類中心是k均值算法的特殊的例子,應用於生成超像素算法中。有趣的是,憑藉距離公式1,我們能夠定位圖像plane上像素尋找區域,該區域與超像素的個數K成反比。實際上,一個像素落在當地不超過8個聚類中心的範圍內。我們也注意到本算法的收斂誤差在某幾次迭代中急劇下降。我們實驗表明運行本算法4到10次就足夠了。本文章中,我們採用10次迭代的方法。

經典的k均值算法的時間複雜度是O(NKI),N是數據量(像素點數),K是聚類數(seeds),I是迭代次數。我們的方法達到了O(N)級別的複雜度,因爲計算距離(不超過8個聚類中心)和迭代次數都是常量。因此SLIC是專門用來處理超像素分割的而不像k均值,並且避免了一些多餘的距離計算。

有一些算法已經改進了k均值的收斂速度[18,19,20,21]。但是除了[21]以外,對於一個給定的K,都沒有達到線性複雜度。但是SLIC是關於K線性的。注意,像[21]一樣,對於距離計算,SLIC隱性地設置了邊界,但是卻不需要在接下來的迭代中重新計算邊界。不類似大多數的分割算法,SLIC是專門用來超像素聚類的,並且更加簡單。

4.比較

本章節,我們拿本算法和4種最先進的分割算法作比較,該四種方法爲GS04,NC05,TP09,QS09,用的是公開的源代碼。GS04和NC05是基於圖分割的,TP09,QS09是基於梯度分割的。NC05和TP09被設計用來輸出確定數量的超像素,而GS04和QS09需要參數調節才能得到指定的超像素數量。這4中算法應該很好地代表了當前最新的研究成果。總之一句話,作者的意思是:我採用的比較算法是很全面,很具有代表性的。

圖2 視覺化地呈現了比較結果。爲了提供有質量的比較,我們採用了under-segmentation error和boundary recall作爲比較參數,計算用的是Berkeley segmentation ground truth。

4.1 本算法的參數

正如簡介中提到的那樣,超像素分割的易用性也是十分重要的。難以設置的參數會導致時間的浪費和表現的不佳。表1給出了每種算法需要設置的參數。SLIC,NC05和TP09都只需要一個參數。更應該注意到的是:CS04和QS09不允許用戶控制超像素的數目。爲了公平的比較,我們不得不手動得到。

4.2 Under-segmentation error

Under-segmentationerror該誤差是用來測量算法在分割圖像的時候產生的錯誤,與算法比較的是已知的準確分割出的結果(ground truth,是通過手工分割出來的)。這誤差是用“bleeding”得出的。(這句不懂!)該方法懲罰超像素跟真實分割不重合的情況。如果真實分割是g1,g2,...,gM,超像素是s1,s2,...,sL,那麼Under-segmentation error的計算公式就是:

4.3 Boundary recall

我們採用標準的Boundaryrecall方法來計算落入超像素邊界的比例。我們用的是每個超像素的內部邊界。

4.4 計算和內存效率

對於480X320的圖像,SLIC的速度比TP09快10倍,比NC05快500倍。令人振奮的是,對於半個百萬像素圖片來說,比CS04還要快。這是因爲我們的算法是O(N),而GS04是O(NlogN)。這很有意義,因爲即使低像素的攝像機產生的圖片也能超過3百萬像素。另外,GS04需要5xN的內存來存儲邊界權值和閾值,SLIC只需要1xN的內存(來存儲每個像素到最近聚類的距離)。

4.5 討論

一個好的超像素分割應該具有低的under-segmentation error和高的Boundary recall。作爲有用的預處理算法的一種,分割算法應該得到大小相同的超像素並且能控制超像素的數量。同樣的原因,應該具備低計算量,少的輸入參數。實驗表明:最高的Boundary recall是GS04。這是因爲它的分割靠近目標邊界。但是,GS04的under-segmentation error比本算法高。我們的算法under-segmentation error最低,並且Boundary recall也很高。GS04不能指定超像素的數目,並且每個超像素的大小也不一樣,所以很多基於超像素的算法不適用GS04[5,6,7]。另外,我們的算法最快,產生的超像素大小相同緊湊。

5.超像素的應用

操作超像素比直接操作像素可以大大提高計算速度,有時候甚至可以得到更好的結果[7]。例如,一些基於圖的分割可以提高2-3倍。當然,超像素算法本身應該快到符合實際應用的需求。接下來,我們考慮兩種典型的視覺應用:物體分類識別(object class recognition)和醫學圖像分割(medical image segmentation)。在這兩個例子中,超像素可以大幅度地提升效果並能夠減少計算量。我們得出SLIC比其他的算法優秀,計算量少。

5.1 物體分類識別

用的測試庫是STAIRvision library。效果好!

5.2醫學圖像分割

分析了很多,這塊不翻譯了。文中給出了很多比較圖。

6. 結論

對於視覺任務,如物體分類識別,醫學圖像分割,超像素分割作爲預處理步驟是非常有用的。但是要想實際應用必須能夠得到高質量的超像素,大小也相同,計算量也要小。現在極少算法能夠符合所有條件。我們提出一種新的,複雜度爲O(N)的超像素分割算法。該算法方便部署,得到高質量的分割結果,計算量很小。僅僅需要1個參數(就是超像素的個數)作爲輸入參數。它僅僅需要線性的計算量和內存量。我們還證明了在物體分割識別和醫學圖像處理上的優越性。與最新的算法對比,得到的結果質量更好,能耗更低。

 

7.引用文獻(reference)

這塊不翻譯了,見原文。

 

本文由 JKhere 翻譯於2013年11月19日,僅供學習研究。

 提供word版本。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章