felzenszwalb算法_学习图像场景解析的理论和应用(二)场景解析的经典算法分析之SLIC...
2003 年,任曉峰教授在圖像分割技術層面上提出了超像素分割的這一概念,是指具有相似紋理、顏色、亮度等特征的相鄰像素構成的有一定視覺意義的不規(guī)則像素塊。它利用像素之間特征的相似性將像素分組,用少量的超像素代替大量的像素來表達圖片特征,很大程度上降低了圖像后處理的復雜度,所以通常作為分割算法的預處理步驟。已經證明在深度估算(depth estimation),圖像分割(image segmentation),骨架提取(skeletonization),人體模型估計(body modelestimation),目標定位(object localization)等等領域十分有效。常見的超像素分割方法包括: Graph-based、NCut、Turbopixel、Quick-shift、 Graph-cut a、Graph-cut b以及SLIC。
其中SLIC(simple linear iterativeclustering,簡單線性迭代聚類)算法是2012年提出,是業(yè)內使用最多的一種超像素圖像分割算法,下面是它的偽代碼:
開源代碼有c++/python版本,也有matlab接口,還有gpu加速版本
算法基于是k-means思路,將圖像從RGB顏色空間轉換到CIE-Lab顏色空間,對應每個像素的(L,a,b)顏色值和(x,y)坐標組成一個5維向量V[L,a,b,x,y], 然后對5維特征向量構造距離度量標準,對圖像像素進行局部聚類的過程。兩個像素的相似性即可由它們的向量距離來度量,距離越大,相似性越小。
算法首先生成K個種子點,然后在每個種子點的周圍空間里搜索距離該種子點最近的若干像素,將他們歸為與該種子點一類,直到所有像素點都歸類完畢。然后計算這K個超像素里所有像素點的平均向量值,重新得到K個聚類中心,然后再以這K個中心去搜索其周圍與其最為相似的若干像素,所有像素都歸類完后重新得到K個超像素,更新聚類中心,再次迭代,如此反復直到收斂。怎么樣,是不是感覺很像K-means聚類算法。 該算法接受一個參數K,用于指定生成的超像素數目。設原圖有N個像素,則分割后每塊超像素大致有N/K個像素,每塊超像素的邊長大致為S=[N/K]^0.5,開始我們每隔S個像素取一個聚類中心,然后以這個聚類中心的周圍2S*2S為其搜索空間,與其最為相似的若干點即在此空間中搜尋。這里有一個問題,為了避免所選的聚類中心是邊緣和噪聲這樣的不合理點,算法做了改進, 在3*3的窗口中將聚類中心移動到梯度最小的區(qū)域,梯度定義為:
G(x,y)=[V(x+1,y)-V(x-1,y)]^2+[V(x,y+1)-V(x,y-1)]^2這樣就可以避免上面所說的情況。 因為L,a,b在CIE-Lab顏色空間,L,a,b的大小有限制,而圖像尺寸則沒有限制,如果圖片的尺寸比較大,會造成衡量向量距離時空間距離(x,y)的影響過大,所以需要調制空間距離(x,y)的影響,所以需要對x,y進行normalize。改進向量距離的度量如下:
d_lab=[(Lk-Li)^2+(ak-ai)^2+(bk-bi)^2]^0.5d_xy=[(Xi-Xk)^2+(Yk-Yi)^2]^0.5
Ds=d_lab+(m/S)*d_xy
m用來調整d_xy的權值,一般為1-20,在算法中設置為10。 最后可能出現一些小的區(qū)域d被標記為歸屬某一塊超像素但卻與這塊超像素沒有連接,這就需要把這塊小區(qū)域d重新歸類為與這塊小區(qū)域d連接的最大的超像素中去,以保證每塊超像素的完整。 SLIC優(yōu)點如下:
與超像素slic算法類似的解決方案:
- graphsegment(gs04)圖分割:
- 論文:《Efficient Graph-Based Image Segmentation》
- 作者:P. Felzenszwalb, D. Huttenlocher
- 發(fā)布:International Journal of Computer Vision, Vol. 59, No. 2, September 2004
- 介紹:Graph-Based Segmentation是經典的圖像分割算法,其作者Felzenszwalb也是提出DPM(Deformable Parts Model)算法的大牛。Graph-Based Segmentation算法是基于圖的貪心聚類算法,實現簡單,速度比較快,精度也還行。不過,目前直接用它做分割的應該比較少,很多算法用它作墊腳石,比如Object Propose的開山之作《Segmentation as Selective Search for Object Recognition》就用它來產生過分割(over segmentation)。
- 評價:圖分割從原理,從規(guī)整性,從結果來看都不能算作超元素。
- Ncut(nc05)
- 論文:Spectral segmentation with multiscale graph decomposition * 作者:T. Cour, F. Benezit, and J. Shi..
- 發(fā)布:IEEE Computer Vision and Pattern Recognition (CVPR) 2005, 2005.
- Turbopixel(tp09)
- 論文:《Turbopixels: Fast superpixels using geometric ?ows》
- 作者:A.Levinshtein, A.Stere, K.Kutulakos, D.Fleet, S.Dickinson, and K.Siddiqi.
- 發(fā)布:IEEETransactions on Pattern Analysis and Machine Intelligence (PAMI),2009.
- Quickshift(qs09)
- 論文:Quick shift and kernel methods for mode seeking
- 作者:A. Vedaldi and S. Soatto.
- 發(fā)布:European Conference on Computer Vision (ECCV), 2008.
- 介紹:Quickshift算法是一種類似于mean shift算法的快速模式搜索算法,通過將初始數據向量移動到具有更高能級的最近領域模態(tài)實現模式搜索。
請看前文:
飄哥:學習圖像場景解析的理論和應用(二)場景解析的經典算法分析之gPb-OWT-UCM?zhuanlan.zhihu.com飄哥:學習圖像場景解析的理論和應用(一)場景解析研究方向的分類?zhuanlan.zhihu.com總結
以上是生活随笔為你收集整理的felzenszwalb算法_学习图像场景解析的理论和应用(二)场景解析的经典算法分析之SLIC...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vs debug 模式生成的exe 另一
- 下一篇: 大华股份和华为的关系 华为入局安防行业与