0 - 背景
在目標檢測任務中,我們希望輸入一副圖像,輸出目標所在的位置以及目標的類別。最常用的算法是滑動窗口方法,但滑動窗口其實相當於窮舉圖像中的所有子圖像,其效率低且精度也受限。該論文提出一種新的生成目標檢測框的方法selective search。
1 - 算法流程
- step 0:生成區域集R
- step 1:計算區域集R中每個相鄰區域的相似度S
- step 2:找出最相似的兩個區域,將其合並成新區域添加到R中
- step 3:從S中移除所有與step 2中相關的區域
- step 4:計算新集與所有子集的相似度
- step 5:跳轉到step 2,直到S集為空
1.1 - 相似度計算
1.1.1 - 顏色相似度(colour similarity)
將顏色空間轉換成HSV,每個通道下以bins=25計算直方圖,這樣每個區域的顏色直方圖有$25 \times 3=75$個區間。對直方圖除以區域尺度做歸一化后采用下式計算相似度:
$$s_{colour}(r_i,r_j)=\sum_{k=1}^{n}min(c_i^k,c_j^k)$$
(注:我的理解是,對於波峰波谷出現在相同區間,也即是直方圖有相似趨勢的兩個區域相似度高,否則低)
1.1.2 - 紋理相似度(texture similarity)
采用方差為1的高斯分布在8個方向做梯度統計,然后將統計結果(尺寸與區域大小一致)以bins=10計算直方圖,直方圖區間數為$8 \times 3 \times 10=240$(使用RGB顏色區間):
$$s_{texture}(r_i,r_j)=\sum_{k=1}^{n}min(t_i^k,t_j^k)$$
1.1.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。尺度相似度計算公式如下:
$$s_{size}(r_i,r_j)=1-\frac{size(r_i)+size(r_j)}{size(im)}$$
1.1.4 - 交疊相似度(shape compatibility measure)
$$s_{fill}(r_i,r_j)=1-\frac{size(BB_{ij})-size(r_i)-size(r_j)}{size(im)}$$
1.1.5 - 最終相似度
$$s(r_i,r_j)=a_1s_{colour}(r_i,r_j)+a_2s_{texture}(r_i,r_j)+a_3s_{size}(r_i,r_j)+a_4s_{fill}(r_i,r_j)$$
2 - 實現
3 - 參考資料
https://blog.csdn.net/guoyunfei20/article/details/78723646