Selective Search理解

概述

碰见“Selective Search”算法(ss算法、选择性搜索算法)是在理解R-CNN网络的时候,因此这篇笔记算是理解R-CNN的准备。

Selective Search 算法首次出现在著名的物体检测论文《Rich feature hierarchies for accurate object detection
and semantic segmentation》中。下面只介绍 Selective Search 的思想和算法过程,论文其余部分不叙述。

Selective Search,说的简单点,就是从图片中找出物体可能存在的候选区域。下面这幅宇航员的图片中,那些红色的框就是 Selective Search 找出来的可能存在物体的区域。

在这里插入图片描述

在进一步探讨Selective Search的原理之前,我们分析一下,如何判别哪些 region 属于同一个物体?

在这里插入图片描述

在论文中用以上四幅图,分别描述了四种可能的情况:图 a :物体之间可能存在层级关系,比如:碗里有个勺;图 b:我们可以用颜色来分开两只猫,却没法用纹理来区分;图 c:我们可以用纹理来区分变色龙,却没法用颜色来区分;图 d:轮胎是车的一部分,不是因为它们颜色相近、纹理相近,而是因为轮胎包含在车上。所以,我们没法用单一的特征来定位物体,需要综合考虑多种策略,这一点是 Selective Search 精要所在。

算法步骤

在这里插入图片描述

输入:彩色图片。

输出:物体可能的位置,实际上是很多的矩形坐标。

1.使用基于图的图像分割方法,将图片分割为很多小区域R,就是进行过分割(我理解的其中会有重合)。

  1. 初始化一个相似集合为空集:S

  2. 计算所有相邻区域(挨着或者有重合都算是相邻)之间的相似度(相似度函数之后会重点分析),放入集合 S 中,集合S保存的其实是一个区域对以及它们之间的相似度。

  3. 找出 S 中相似度最高的区域对,将它们合并,并将这个新合并的区域放入集合 R 中(每次迭代过程中对这些合并的子区域做bounding
    boxes(外切矩形),这些子区域外切矩形就是通常所说的候选框),并从 S 中删除与它们相关的所有相似度和区域对。

  4. 重新计算这个新区域与周围区域的相似度,放入集合 S 中。

  5. 重复第3、4、5步骤直到 S 为空。

 7. 从 R 中找出所有区域的 bounding box(外切矩形),这些 box 就是物体可能的候选区域。

最后通过上述步骤得到区域集合R,对集合R中的区域进行打分、排序,选取我们所需要的区域个数。这篇文章做法是:给予最先合并的图片块较大的权重,比如最后一块完整图像权重为1,倒数第二次合并的区域权重为2以此类推;然后给他们乘以一个随机数;最后,对于相同的区域多次出现的叠加权重,这样我就得到了所有区域的目标分数,也就可以根据自己的需要选择需要多少个区域。

优点

Selective Search算法,首先通过不断聚合相似的相邻小区域,解决了物体的层次问题(例如可以找到碗中的勺子);其次通过融合不同标准的相似度,解决了“图像划分的是否完全”这个问题;最后,在速度方面,相对于穷举法有所提升。

相似度计算方法

主要综合四种信息进行判断:

  1. 颜色相似度

  2. 纹理相似度

  3. 尺寸相似度(保证合并的区域尺寸相对均匀,合并之后总面积较小的)

  4. 空间交叠相似度(让重叠区域大的先合并,且保证合并之后形状规则)

将上述四个子式相似度值归一化到区间[0,1],赋予权值,得到综合的相似度值。该方法称为互补相似度测量。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值