1. 程式人生 > >選擇性搜索(SS)算法

選擇性搜索(SS)算法

分布 art bracket 方式 得到 設有 方向 輸入 高斯分布

一、目標檢測和目標識別

目標識別(object recognition)是要指明一張圖像中包含哪類目標。輸入是圖像,輸出是圖像中的目標屬於的類別(class probability)。目標檢測是識別出圖像中的類別外,還要框出目標的具體位置(bounding boxes).

在目標檢測時,為定位到目標的具體位置,通常將圖像分成許多子塊(subregions/patchs),然後把子塊作為輸入,送入到目標識別模型中。分子塊的最直接的方法是滑動窗口法(sliding window approach),滑動窗口的方法是按子塊的大小在整幅圖像上窮舉所有的子圖像塊,算法數據量非常大。和滑動窗口相對的是另一類基於區域(region proposal)的方法。候選區域算法用分割不同區域的辦法來識別潛在的物體。在分割的時候,我們要合並那些在某些方面(如顏色、紋理)類似的小區域。相比滑窗法在不同位置和大小的窮舉,候選區域算法將像素分配到少數的分割區域中。所以最終候選區域算法產生的數量比滑窗法少的多,從而大大減少運行物體識別算法的次數。同時候選區域算法所選定的範圍天然兼顧了不同的大小和長寬比。

二、selective search算法

1、區域合並算法流程

總體思路:假設現在圖像上有n個預分割的區域,表示為R={R1, R2, ..., Rn}, 計算每個region與它相鄰region(註意是相鄰的區域)的相似度,這樣會得到一個n*n的相似度矩陣(同一個區域之間和一個區域與不相鄰區域之間的相似度可設為NaN),從矩陣中找出最大相似度值對應的兩個區域,將這兩個區域合二為一,這時候圖像上還剩下n-1個區域; 重復上面的過程(只需要計算新的區域與它相鄰區域的新相似度,其他的不用重復計算),重復一次,區域的總數目就少1,知道最後所有的區域都合並稱為了同一個區域(即此過程進行了n-1次,區域總數目最後變成了1).算法的流程圖如下圖所示:

技術分享圖片

技術分享圖片

通過不斷的叠代,區域合並效果如下圖所示:

技術分享圖片

2、相似度計算

原文"3.2 Diversification Strategies"這一節提供了調參的一些思路,分析了不同顏色空間各通道的特點,這有利於我們在面對自己的實際任務時明白要嘗試的方向.還有就是給出了SS算法裏面相似度度量的幾種方法,比如顏色相似度,紋理相似度,尺寸相似度,填充相似度,作者肯定沒有對所有的相似度進行窮舉,也沒有說哪種相似度適合哪種任務,我覺得更重要的還是一種思路的借鑒,提供了一種思路和思考方向,我覺得這篇論文的價值就達到了.

技術分享圖片

選擇性搜索怎麽計算兩個區域之間的相似度呢,主要是通過區域之間在顏色/紋理/大小和形狀交疊四個方面的加權和進行衡量的。

2.1、顏色相似度(color similarity)
將色彩空間轉為HSV,每個通道下以bins=25計算直方圖,這樣每個區域的顏色直方圖有25*3=75個區間。 對直方圖除以區域尺寸做歸一化後使用下式計算相似度:

技術分享圖片

2.2、紋理相似度(texture similarity)

論文采用方差為1的高斯分布在8個方向做梯度統計,然後將統計結果(尺寸與區域大小一致)以bins=10計算直方圖。直方圖區間數為8*3*10=240(使用RGB色彩空間)。

技術分享圖片

其中,技術分享圖片是直方圖中第技術分享圖片個bin的值。

2.3、尺寸相似度(size similarity)

技術分享圖片

保證合並操作的尺度較為均勻,避免一個大區域陸續“吃掉”其他小區域。

例:設有區域a-b-c-d-e-f-g-h。較好的合並方式是:ab-cd-ef-gh -> abcd-efgh -> abcdefgh。 不好的合並方法是:ab-c-d-e-f-g-h ->abcd-e-f-g-h ->abcdef-gh -> abcdefgh。

2.4、交疊相似度(shape compatibility measure)

技術分享圖片

技術分享圖片
2.5、最終的相似度

技術分享圖片

三、SS的典型應用

技術分享圖片

這就是典型的一個應用了,我們得到了區域的很多建議,提取區域的空間金字塔的多樣特征,組合成一個特征向量,然後訓練SVM就可以分類出哪個區域是真正我們想要的目標啦。當然也可以用以目標檢測,我們接下來要說的RCNN就是這樣幹的。

選擇性搜索(SS)算法