Selective Search for Object Recognition(理解)


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

https://github.com/AlpacaDB/selectivesearch

https://github.com/CZiFan/SelectiveSearch


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM