Selective Search 简介
Selective Search 算法来时论文Selective Search for Object Recognition。Selective Search 通过颜色、纹理、大小等特征的相似度把图像分成许多个不同的区域。目标检测算法可以从这些区域中检测对象,加快检测速度。经典的R-CNN算法就使用了 Selective Search 算法来选取候选区域。
下图是 Selective Search 提取图像区域的例子:
可以看到, Selective Search 能够把图像中特征相似的区域提取出来,而这些区域通常就是对象的所在位置。
算法流程
Selective Search 算法伪代码如下:
Selective Search 算法输入彩色图片,输出的是对象可能的位置。
第一步,使用 Efficient graph-based image segmentation 算法生成初始区域集R,同时设置区域相似S为空集。
第二步,对于相邻的区域
,计算它们的相似度
,并添加到相似集S中。
第三步,获取S中相似度最高的两个区域
,
第四步,合并区域
和
成
,
第五步,删除与
和
有关的相似度,
第六步,计算新区域
与相邻区域的相似度
,并把
添加到S中,
添加到区域集R中。
第七步,如果S不为空,返回第三步。
总的来说,Selective Search 算法不断合并相似的区域。
计算区域相似度
作者从颜色、纹理、大小和空间重叠度四个方面计算区域的相似度。
颜色相似度
作者尝试许多颜色空间,比如RGB,HSV等。作者使用
norm 的每个颜色通道使用25个bin的颜色直方图
计算两个区域的颜色相似度
。其中颜色通道3个,
。
合并 和 后 的直方图是
就是 和 的加权平均,这样可以避免重新计算 的直方图,提升算法效率。
纹理相似度
作者使用SIFT-Like特征作为纹理。在每个颜色通道的8个方向计算方差
的高斯导数,每个颜色通道取10个bins的直方图,进行
norm,这样得到
的向量
。纹理相似度
为:
新区域的纹理特征向量 同样使用 和 加权平均。
大小相似度
大小相似度
为:
其中 表示图片的大小。这个公式可以确保小的区域先合并。
空间重叠度
空间重叠度指区域
和
之间的交叠程度,重叠部分越多,这两个区域就越应该合并。空间重叠度
为
其中 是 和 合并后的 bounding box。
区域相似度
最后结合上述4中相似度,得到区域相似度公式:
其中, ,决定是否使用对应的相似度。