目标检测之选择性搜索-Selective Search

目标检测之选择性搜索-Selective Search


selective search的策略是,既然是不知道尺度是怎样的,那我们就尽可能遍历所有的尺度好了,但是不同于暴力穷举,我们可以先利用基于图的图像分割的方法得到小尺度的区域,然后一次次合并得到大的尺寸就好了,这样也符合人类的视觉认知。既然特征很多,那就把我们知道的特征都用上,但是同时也要照顾下计算复杂度,不然和穷举法也没啥区别了。最后还要做的是能够对每个区域进行排序,这样你想要多少个候选我就产生多少个。

操作步骤:

从一张图片用图像分割算法生成2k至3k个候选区:

  • 使用一种过分割手段,将图片分割成小区域。
  • 查看现有小区域,合并可能性最高的两个区域,重复直到整张图片合并成一个区域位置。
  • 输出所有存在过的区域,所谓候选区域。
合并规则
  1. 颜色(颜色直方图)相近的
  2. 纹理(纹理直方图)相近的
  3. 合并后总面积小的
  4. 合并后,总面积在其BBOX中所占比例大的

选择性搜索算法用于为物体检测算法提供候选区域,它速度快,召回率高。

选择性搜索算法需要先使用《Efficient Graph-Based Image Segmentation》论文里的方法产生初始的分割区域,然后使用相似度计算方法合并一些小的区域。
下列两张图分别是原图和原始分割图:

image

image

我们不能使用原始分割图的区域作为候选区域,原因如下:

  1. 大部分物体在原始分割图里都被分为多个区域
  2. 原始分割图无法体现物体之间的遮挡和包含。

如果我们试图通过进一步合并相邻的区域来解决第一个问题,我们最终会得到一个包含两个对象的分段区域。

我们不要需要完美的的分割区域,我们只想要和实际物体高度重合的区域就行了。

选择性搜索算法使用《Efficient Graph-Based Image Segmentation》论文里的方法产生初始的分割区域作为输入,通过下面的步骤进行合并:

  1. 首先将所有分割区域的外框加到候选区域列表中
  2. 基于相似度合并一些区域
  3. 将合并后的分割区域作为一个整体,跳到步骤1

通过不停的迭代,候选区域列表中的区域越来越大。可以说,我们通过自底向上的方法创建了越来越大的候选区域。表示效果如下:

image

相似度

选择性搜索算法如何计算两个区域的像素度的呢?
主要是通过以下四个方面:颜色、纹理、大小和形状交叠
最终的相似度是这四个值取不同的权重相加

效果

opencv实现了选择性搜索算法,可以给出上千个根据有物体的可能性降序排列的候选区域。
下图是画出了前面200(250个候选区域的效果。一般来说。1000)1200个候选区域基本能胜任物体检测的任务了。

image

image

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务