【論文信息】
《Superparsing: Scalable Nonparametric Image Parsing with Superpixels》
IJCV 2013
superpixel-level,fully supervised,non parametric method
這篇文章是CVPR 2013的《Finding Things: Image Parsing with Regions and Per-Exemplar Detectors》和CVPR 2014的《Scene Parsing with Object Instances and Occlusion Ordering》的主要參考文章,而現有的代碼是這兩篇文章的。這篇也是Nonparametric的代表性工作之一,在很多其他論文中都有提到。爲了熟悉現有代碼框架,瞭解Nonparametric這類方法的主要思路,所以精讀了這篇文章。
【方法簡介】
這裏Nonparametric方法主要是lazy learning的思想(僅僅保存training set,當test image 到達時,才進行決策,並不是事先就有決策模型的。)
我們現在有一個training set,要得到一幅query(test image)的分割結果,主要步驟如下:
Step 1:在training set中爲這個query找相似的圖,得到一個retrieval set。是通過對這些圖片提取global feature(Spatial pyramid,Gist,Color histogram),然後計算特徵相似度來實現的。這裏的特徵是需要大體反應圖片內容和結構的。
Step 2:把query和retrieval set中的圖都分割成superpixel級別,併爲每一個superpixel計算特徵,這裏的特徵要從各個方面(color,texture,shape…)來挖掘該superpixel的特性,因爲本文方法的分割就是基於superpixel這些特徵做的。接下來的目標就是對這些superpixel進行分類。
Step 3:爲query中的每個superpixel根據每個特徵在retrieval set的superpixels中尋找相似的superpixels,也就是在該特徵空間上的nearest neighbor,然後根據這些neighbor計算該query superpixel屬於每個label的likelihood score(這個likelihood score的計算方法是在文章中定義的),屬於哪個label的score值最大,那麼該query superpixel就可以標爲屬於這個label。到了這一步,可以得到一個分割結果,是local superpixel labeling。
Step 4:對local labeling做優化:在一個query image中,當前superpixel的label和相鄰的superpixels的label存在一定的關聯關係,用MRF對這樣的關係建模,得到global superpixel labeling結果。
Step 5:讓semantic分割結果和geometric分割結果互相修正,得到更加準確的分割結果。
【細節記錄】
1, local superpixel labeling
主要思想是根據一些特徵,在retrival set中找到和query中當前我們要預測的superpixel相似的superpixels,看這些superpixels都屬於什麼label,然後得到prediction。
論文中對每個superpixel計算它屬於某個類別c的log likelihood ratio,定義如下:
fik是superpixel si的第k個特徵;
Nik是在feature k的標準下,在retrieval set中和si相似的superpixels;
D是training set中所有的superpixels;
這個L反映了query中的superpixel si 屬於label c的可能性,主要是通過統計和si相似的那些superpixels的label數據得出的,si對哪個c的L值大,si的label就是這個c。
2, global superpixel labeling(MRF smooth)
前面local superpixel labeling的方法是對query中每個單獨的superpixel計算per-class likelihood ratio然後判斷該superpixel的label。而我們會發現,一個superpixel的label會受到鄰近的其他superpixel的label的約束,比如,如果當前superpixel周圍的label都是“sky”,那麼這個superpixel的類別不太可能是“water”,所以利用這樣的信息是有利於提高精度的。
論文中選擇MRF來編碼這樣的約束,將這個問題建模爲對J(c)的最小化問題,然後通過inference的方法求解:
A是指在query image中和superpixel si相鄰的superpixel set;
wi是si的權重,是si在圖片中佔的面積百分比;
這個J是一個MRF能量函數,最小化這個J就能得到當前query image的最優分割結果。
公式(4)中,L外面這一層是sigmod函數,是爲了讓ratio最大的那個值最後能脫穎而出,對能量函數產生較大的影響。
公式(5)中的E是“produce very intuitive penalties”,下圖中,(d)列中的分割邊緣較雜亂,總體能量較高,經過這一步的MRF smooth,對高能量的分割邊緣做了處理(懲罰),得到總體能量較低的分割結果。
這裏所說的“能量”是指來自graph cut的,用來衡量cut結果的好壞,分割邊緣的能量值越低越好。細節暫未了解。
下圖中從藍色到紅色的顏色條代表能量值從低到高,在(d)(f)列的圖中,紅色邊緣能量值高。
3, join semantic and geometric
geometric類別是固定的3個:sky,horizontal, vertical
假設一個semantic類別能對應一個geometric類別,那麼對於一幅圖,用這兩種類別標準下的分割結果互相修正,可以互相促進提升精度,所謂“雙管齊下”。效果圖如下:
Joint的分割,目標函數如下:
要得到最優的分割結果,就是要最小化這個H(c,g),論文使用“alpha/beta-swap algorithm”做inference。
J(c)是semantic的結果,J(g)是geometric的結果,J(g)沒有像J(c)那樣用nearest-neighbor classifies的思想,去定義log likelihood ratio,由於geometric的類別只有3個,類別數量少且是確定的,所以使用boosted decision tree(BDT)即可得到一個likelihood ratio score,MRF smooth的過程和J(c)是一樣的。
phi(ci,gi)的值是0或1,ci在gi中則爲0,否則爲1。所以(6)式的第三項可以看作是一個懲罰,對於一個superpixel si,我們期望它的ci在gi中,比如building在horizontal中,這樣就可以更確定這個si屬於building且屬於horizontal;如果它的ci不在gi中,比如si的ci=building而gi=sky,那說明ci和gi至少有一個是錯誤的分類結果,所以要對目標函數加上懲罰。
【實驗設計】
1,在SIFT Flow和LMSun兩個數據集上,證實本文所做的改進是合理的:從local labeling到MRF(就是加上MRF smooth,global labeling)到Joint(綜合考慮semantic和geometric);用這個結果也和3種start-of-the-art的方法比較
2,選擇用來做retrieval set的global feature
3,找合適的retrieval set size,因爲這裏在實驗性能和程序計算量之間是有trade off的
4,對比nearest neighbor和boosted decision tree,在semantic和geometric的類別上
【總結】
優點
1,scalable,訓練集可擴展,不用訓練model,方法靈活;
2,利用了semantic類別和geometric類別之間的聯繫,提高精度;
3,用retrieval set限制了該query image中可能出現的label的範圍,有利於提高精度。
4,考慮把數據集分爲indoor和outdoor,分別做實驗看分割結果,並認爲indoor場景更復雜,分割難度更大,並提供了一個baseline
5,考慮把semantic類別分爲兩種,“stuff”(sky,road,trees), “things”(people,cars),前者往往沒有固定的形狀,一般是一個region;後者會有大致的形狀信息可以利用,也常常是object detection的目標。本文方法在stuff的類別上表現較差。
缺點
1,對於大數據集,每次要得到retrieval set都耗費大量時間去檢索;
2,retrieval set的大小在performance和accuracy之間是trade off的;
3,一定程度上簡化了superpixel和superpixel之間複雜的關係,會影響精度;
4,MRF smooth會有over-smoothing的問題,反而降低精度。