Efficient Graph-Based Image Segmentation
有關(guān)博客:
https://juejin.im/post/5ba8defd6fb9a05d28734ad7
https://blog.csdn.net/ttransposition/article/details/38024557
https://blog.csdn.net/ttransposition/article/details/38024605
?
Efficient Graph-Based Image Segmentation?是2004年由Felzenszwalb發(fā)表在IJCV上的一篇文章。主要介紹了基于圖表示的圖像分割。并且提出了一種基于貪心選擇的圖像分割方法,此方法能夠考慮到全局特征。根據(jù)距離度量方式的不同,此算法有兩種具體的實現(xiàn)形式。結(jié)果表明算法的運行時間接近于線性(相對于圖中邊的個數(shù)來說)。此算法的更重要的特性在于,在特征變化較小的情況下,對細節(jié)的重視性大于特征變化較大時的情況。
?
論文開頭提到了一個分割算法要想達到廣泛應(yīng)用(broad utility),應(yīng)該具備的兩個性質(zhì):
1.應(yīng)該能提取在感知上重要的區(qū)域(perceptually important regions)
2.高效的,即最好能以線性于圖像像素數(shù)的時間運行
?
就像Urquhart 1982?所用的方法類似,文章的算法基于用圖表示圖像:圖像中的每個像素表示圖上的一個節(jié)點,每一條連接節(jié)點的無向邊都具有一個權(quán)重(weights),以衡量其連接的兩個節(jié)點之間的不相似度(dissimilarity)。與傳統(tǒng)方法不同的是,本文會根據(jù)相鄰區(qū)域在特征值上變化速度的大小動態(tài)調(diào)整分割閾值(adaptively adjusts the segmentation criterion based on the degree of variability in neighboring regions of the image)。
上圖這個例子說明,圖像分割算法既不能單一的使用像素強度值的變化作為分割依據(jù),也不能使用單一的分割閾值來決定分割與否。所以文章中提到的算法基于兩個特征來判斷兩個區(qū)域是否應(yīng)該合并:區(qū)域間間距和區(qū)域內(nèi)間距。如果兩個區(qū)域的區(qū)域間間距明顯大于其中任意一個區(qū)域的區(qū)域內(nèi)間距,那么就認為這兩個區(qū)域之間存在明顯的界限(即不可以merge兩個區(qū)域)。
?
區(qū)域?qū)Ρ容^斷言(pairwise region comparison predicate)
定義區(qū)域內(nèi)間距如下:即區(qū)域?qū)?yīng)MST(minimum spanning treee最小生成樹)中權(quán)重最大的邊的權(quán)重值。
定義區(qū)域間間距如下:即在所有分別屬于兩個區(qū)域且有邊連接的點對中,尋找權(quán)重最小的那對(若兩個區(qū)域內(nèi)的點沒有邊相連,則定義間距為正無窮大)。
(在此提到如果利用最大和最小這兩個極端的度量方式,可能對有些結(jié)果造成誤差,為了更好的魯棒性,建議選擇使用quantile點的方式。但實際實驗中,使用最值方式效果相當好(works quite well),而且復(fù)雜度明顯要比使用qualtile點方式小很多(Appendix中有關(guān)于quantile點方式復(fù)雜度的證明))。
?
有了區(qū)域內(nèi)間距和區(qū)域間間距的定義之后,通過比較兩者之間的關(guān)系,就可以得出斷言函數(shù)的形式:,其中,。注意,此處的τ是一個閾值函數(shù),用來控制兩個區(qū)域的區(qū)域間間距要在多大程度上大于他們的區(qū)域內(nèi)間距才能被認定為兩個區(qū)域間有明顯的分割界限。舉個例子來說,當其中一個區(qū)域很小時,Int(C)并不能很好的反應(yīng)其區(qū)域內(nèi)間距(極端的情況是當C只含一個節(jié)點時,Int(C)=0)。本文在此處對τ的定義為|C|的負相關(guān)函數(shù):,其中k是一個常數(shù)。k要根據(jù)實驗的具體情況來確定其值,但當k越大時,我們界定的可以區(qū)分兩個區(qū)域的界限就越明顯。
?
更重要的是,只要不與實驗?zāi)康南嚆?#xff0c;任何非負函數(shù)都可以用來表示τ。比如:如果我們需要將圖像分割成為特定形狀的區(qū)域,則可以將τ定義為與復(fù)合這個特定形狀正相關(guān)的函數(shù)。而且τ對特定形狀的傾向性可強可弱。這確保了開頭提到的第一條性質(zhì)的實現(xiàn)。
?
分割算法
?
輸入是一個有n個節(jié)點和m條邊的圖G,輸出是一系列區(qū)域。步驟如下:
0.將邊按照權(quán)重值以非遞減方式排序
1.最初的分割記為S(0),即每一個節(jié)點屬于一個區(qū)域
2.按照以下的方式由S(q-1)構(gòu)造S(q):記第q條邊連接的兩個節(jié)點為vi和vj,如果在S(q-1)中vi和vj是分別屬于兩個區(qū)域并且第q條邊的權(quán)重小于兩個區(qū)域的區(qū)域內(nèi)間距,則合并兩個區(qū)域。否則令S(q) = S(q-1)。
3.從q=1到q=m,重復(fù)步驟2
4.返回S(m)即為所求分割區(qū)域集合
算法過程保證了開頭提到的第二條性質(zhì)。
接下來論文具體實現(xiàn)了兩種算法:基于Grid Graphs的和基于Nearest Neighber Graphs的方法。
兩者的區(qū)別在于graph中節(jié)點和邊的選取方式的不同:GG方法將圖像中的每個元素視為一個節(jié)點,只要兩個像素相鄰,則認為其對應(yīng)的節(jié)點之間有邊連接(一般來說,每個節(jié)點有8條邊)。邊的權(quán)重值為對應(yīng)兩個節(jié)點的像素值差值的絕對值。(細節(jié)方面,1預(yù)處理過程使用σ=0.8的高斯函數(shù)來對圖像進行平滑以減少噪聲。2當圖像為三通道圖像時,將算法應(yīng)用于全部三個通道,只有當三個通道全部給出合并區(qū)域的建議時才合并區(qū)域。3文章中使用的k值,當圖片是128*128時k=150,當圖片是320*240時k=300,即k值大概與圖片尺寸成正比)。NNG方法先將圖像的每個像素映射到特征空間形成圖的節(jié)點,然后利用特征空間中的距離選取與其距離最近的點作為他們的鄰居(有多種方法來選擇鄰居節(jié)點,即可以選擇與其最近的k個鄰居點,也可以選擇與其距離不超過d的所有點作為鄰居點),連接鄰居點的邊權(quán)重為兩個對應(yīng)節(jié)點在特征空間內(nèi)的距離。
?
結(jié)果說明,NNG算法比GG算法在保證算法第一條性質(zhì)的效果上要更好一些。
?
論文中還有涉及到related works和一些定理的證明,以及results部分,在此暫不做討論。
總結(jié)
以上是生活随笔為你收集整理的Efficient Graph-Based Image Segmentation的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文笔记 《Selective Sear
- 下一篇: Rich featurehierarch