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中相似度,得到区域相似度公式:
其中,,决定是否使用对应的相似度。