您的位置:首页 > 移动开发 > Objective-C

Selective Search for Object Recognition(阅读)

2016-09-19 10:05 411 查看
文章的题目就是Selective Search for Object Recognition。

code:here.

看图说话:



1、问题:如何判别哪些region属于同一个物体?这个问题似乎没有答案:

对于图a,说明了物体之间可能具有的层级关系,比如碗里有个勺子等。

对于图b,我们可以根据颜色来分开两只猫,但是不能根据纹理来分开。

对于图c,我们可以根据纹理来找到变色龙,但是不能根据颜色来找到。

对于图d,我们将车轮归类成车的一部分,既不是因为颜色相近,也不是因为纹理相近,而是因为车轮附加在车的上面。

所以需要用多种策略结合,才有可能找到图片中的所有物体。

2、相关工作

Exhaustive Search,这种方法基本采用变化的窗口暴力地进行大规模的搜索。
Segmentation,仅仅是简单的分类策略只能分割部分或者目标被遗漏

Other Sampling Strategies,对search的物体进行取样而不依赖它的类别

3、Selective Search

需要考虑的几个问题:

适应不同尺度(Capture All Scales):彻底搜索(Exhaustive Selective)通过改变窗口大小来适应物体的不同尺度,选择搜索(Selective Search)同样无法避免这个问题。算法采用了图像分割(Image Segmentation)以及使用一种层次算法(Hierarchical Algorithm)有效地解决了这个问题。
多样化(Diversification):单一的策略无法应对多种类别的图像。使用颜色(color)、纹理(texture)、大小(size)等多种策略对分割好的区域进行合并。
速度快(Fast to Compute):选择性搜索的目标是产生一系列的实际对象识别框架中使用的可能的对象位置,因此这样速度会比较快。
Selective Search by Hierarchical Grouping(分层分组算法)

首先使用论文“Efficient Graph-Based Image Segmentation”中的方法生成一些起始的小区域,之后使用贪心算法将区域归并到一起:先计算所有临近区域间的相似度,将最相似的两个区域归并,然后重新计算临近区域间的相似度,归并相似区域直至整幅图像成为一个区域(参考TTransposition及其opencv实现),算法具体描述如下: 



输入:彩色图片(三通道)
输出:物体位置的可能结果L
使用 Efficient Graph-Based Image Segmentation的方法获取原始分割区域R={r1,r2,…,rn}
初始化相似度集合S=∅
计算两两相邻区域之间的相似度,将其添加到相似度集合S中
从相似度集合S中找出,相似度最大的两个区域 ri 和rj,将其合并成为一个区域 rt,从相似度集合中除去原先与ri和rj相邻区域之间计算的相似度,计算rt与其相邻区域(原先与ri或rj相邻的区域)的相似度,将其结果添加的到相似度集合S中。同时将新区域 rt 添加到 区域集合R中。
在集合R中从所有区域获取每个区域的Bounding Boxes,这个结果就是物体位置的可能结果L

Diversification Strategies(多元化策略)

一共给出3中策略:
首先是互补色空间,从人的视觉系统看,颜色可用色调、饱和度和亮度来描述,其中色调与光波的波长有直接关系,亮度和饱和度与光波的幅度有关,通过8种颜色空间进行对比。



其次是互补的相似性度量方法,

一,颜色相似度



使用L1范数归一化获取图像每个颜色通道的25 bins的直方图,这样每个区域都可以得到一个75维的向量(3通道的图),得到大Ci。区域之间颜色相似度通过公式(1)计算。在区域合并过程中使用公式(2)对新的区域进行计算其直方图。

二,纹理相似度



纹理采用fast SIFT-Like特征,是对每个颜色通道的8个不同方向计算方差σ=1的高斯微分(Gaussian Derivative),每个通道每个颜色获取10 bins的直方图(L1范数归一化),这样就可以获取到一个240维的向量大Ti。纹理相似度通过公式(3)计算,合并方法与颜色相似度合并方法相同。

三,尺寸相似度



大小是指区域中包含像素点的个数。使用公式(4)计算ri和rj区域大小占的比例共同决定相似度,主要是总体减去两个像素和占全图像像素比例,这样可以让小区域优先级高,避免对大区域关注度过高,或者说是避免某个大区域对周围小区域进行吞并。。

四,填充相似度



检查两个区域间重合度,如果一个区域包含另一个区域,逻辑上应该两者合并,如果两个区域相隔甚远,合并起来就会出现很奇怪的图形,作者用一个Bounding box(BB)包含两个Region,然后就可以计算了。



最终的相似度度量是以上四种相似度度量的组合如公式(6)。

最后是初始化起始区域,用"Efficient
GraphBased Image Segmentation"得到的初始化区域可以根据阈值k得到不同的结果。

Combining Locations(结合位置)



对所有的hypotheses进行Combine,作者既要避免偏向于选择大region,又要保证选择rank高的region,就在序号之前多加了一个0~1的随机数,序号从覆盖整个区域的region记为1开始,所有的hypotheses的region计算为1*n,再排序,重复元素仅去除lower
rank ones。这个打分好机智啊!!!

4、Object Recognition using Selective Search



训练数据的产生

正样本为物体的ground truth,负样本为SS产生的与正样本交叠20%~50%(分割区域的外接矩形和目标标注区域的重叠度)的proposal,同时剪除了重叠面积大于70%的负样本,这些负样本是hard样本。在训练数据上,标注出目标区域,如上图中绿色高亮区域的奶牛,将这些标注区域作为正样本。使用selective
search产生目标假设区域(也就是若干个分割区域)。有了正样本和负样本之后,用的特征提取方法是:color-SIFT descriptors+a finer spatial pyramid division然后进行SVM训练。

迭代训练

采用迭代训练方式,在每次训练完成之后,挑选出false positives样本,并将其加入到训练样本中,其实这便是增加了困难样本数。使用其进行模型训练,直到收敛。
5、Evaluation



通过算法计算得到的包含物体的Bounding Boxes与真实情况(Ground Truth)的窗口重叠越多,那么算法性能就越好。使用的指标是平均最高重叠率ABO(Average Best Overlap)。让计算得到的位置假设L中的每个值l,那么
ABO的计算公式(7)(8),公式(8)其实就是分割的IOU指标,比值越大说明重叠率越高,因为交集与并集几乎相等,说明重合了。

论文最后从四个大的部分进行了各种实验对比和分析,这一部分就省了。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: