Selective Search for Object Recognition

来源:互联网 发布:早教管理软件 编辑:程序博客网 时间:2024/06/06 01:09

今天认真把Selective Search for Object Recognition这篇文章阅读完,想来写写自己的见解与想法。如果有错,希望得到大牛们的指点,谢谢!

文章一开始就提出问题:
如何判别哪些Region属于同一个物体?

这里写图片描述

对于图a,说明了物体之间可能具有的层级关系,比如碗里有个勺子;
对于图b,我们可以根据颜色来分开两只猫,但是不能根据纹理来分开;
对于图c,我们可以根据纹理来找到变色龙,但是不能根据颜色来找到;
对于图d,我们将车轮归类成车的一部分,既不是因为颜色相近,也不是因为纹理相近,因为车轮是车的一部分,且其实封闭的。

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

所以本文就开始提出使用Selective Search进行物体检测。并且物体之间存在层级关系,所以Selective Search用到了Multiscale的思想。

这里写图片描述

从上图中就能看出,Select Search在不同尺度下能够找到不同的物体。
读者注意了哦,这里说的多尺度是通过分割的方法将原始图片分成多个Region,然后用Grouping方法合并成一个大的Region,而不是我们平时说提到的缩放,窗口大小变化。在合并过程,一直重复提到的过程,直到最后成为一个最大的Region,这过程也体现了物体之间有层级关系。

文章的相关工作
Exhaustive Search,这种方法基本采用变化的窗口遍历地进行大规模的搜索,太耗时和计算损耗;
Segmentation,仅仅是简单的分类策略只能分割部分或者目标被遗漏,而且只是单一的策略,在分割过程会失去很多信息;
Other Sampling Strategies,对search的物体进行取样而不依赖它的类别。

现在我大概的介绍下Selective Search方法

其是使用Efficient GraphBased Image Segmentation中的方法来得到Region,得到所有Region之间两两的相似度,然后合并最相似的两个Region,再重新计算新合并的Region与其他Region的相似度,重复上述过程直到整张图片都聚合成一个大的Region,使用一种随机的计分方式给每个Region打分,按照分数进行排序,取出前K的子集,就Selective Search的结果

Efficient GraphBased Image Segmentation地址:
http://download.springer.com/static/pdf/434/art%253A10.1023%252FB%253AVISI.0000022288.19776.77.pdf?originUrl=http%3A%2F%2Flink.springer.com%2Farticle%2F10.1023%2FB%3AVISI.0000022288.19776.77&token2=exp=1475033679~acl=%2Fstatic%2Fpdf%2F434%2Fart%25253A10.1023%25252FB%25253AVISI.0000022288.19776.77.pdf%3ForiginUrl%3Dhttp%253A%252F%252Flink.springer.com%252Farticle%252F10.1023%252FB%253AVISI.0000022288.19776.77*~hmac=39f6d9aaf629fff93150a615c1184c2b89914d7fcdef7ad83fe4f7036ac1f7f1

Hierarchical Grouping层次分组
区域包含的信息比像素多,所以文章的特征是基于区域的。为了得到一些小的初始化的区域,用的是Efficient GraphBased Image Segmentation中区域划分的方法。
具体算法如下:
这里写图片描述

首先用Efficient GraphBased Image Segmentation得到一些初始化的区域R={r1,….rn};计算出每个相邻区域的相似性s(ri,rj);

  1. 找出两个相似性最大的区域max(S)={ri,rj};
  2. 合并rt=ri∪rj;
  3. 从S集合中,移走所有与ri,rj相关的数据;
  4. 计算新集合rt与所有与它相邻区域的相似性s(rt,r*);
  5. R=R∪rt;
  6. 直到S集合为空,重复1~5。

大致就是这个过程。

策略多样化(Diversification Strategies)
文章使用多种策略对图像处理,为了在各方面得到图像的详细信息,来提高精确度。最后,文章用了3种策略方法:Complementary Colour SpacesComplementary Similarity MeasuresComplementary Starting Regions

Complementary Colour Spaces
文章给了8种颜色空间:
(1) RGB,(2) the intensity (grey-scale image) I, (3) Lab, (4) the rg channels of normalized RGB plus intensity denoted as rgI, (5) HSV, (6)normalized RGB denoted as rgb, (7) C [14] which is an opponent
colour space where intensity is divided out, and finally (8) the Hue
channel H from HSV.

Complementary Similarity Measures
文章给了四个相似测量:

Scolor(ri,rj)用于计算ri,rj的相似性。对每个区域,我们都可以得到一个一维的颜色分布直方图。直方图一共有25个区间,区域i的颜色分布直方图为:这里写图片描述。如果有3个颜色通道,则n=75,还要用L1 norm来进行归一化:颜色直方图可以有效地传播通过层次结构:这里写图片描述最后区域大小为: size(rt) = size(ri)+size(r j).

Stexture(ri,r j)可以用到SIFT(局部特征描述子)。取8个方向,方差为1的高斯滤波器,10个空间的直方图来描述。直方图为:这里写图片描述,然后用L1 norm来进行归一化:这里写图片描述其有效传播与颜色空间相似一样。

Ssize(ri,rj)希望较小的区域尽早合并。其公式如下:
这里写图片描述 size(im) denotes the size of the image in pixels.

Sfill(ri,rj) 希望有相交或者有包含关系的区域先合并。
这里写图片描述,size(im)和Ssize(ri,rj)定义一样。

初始化Region
这里写图片描述

  1. 训练数据的产生
    在训练数据上,标注出目标区域,如上图中绿色高亮区域,将这些标注区域作为正样本。使用Selective Search产生目标假设区域。将分割区域的外接矩形和目标标注区域的重叠度在20%~50%之间的区域标注为负样本。规定负样本之间不能有超过70%的重叠。有了正样本和负样本之后,文章用的特征提取方法是:Color-SIFT descriptors+a finer spatialpyramid division,然后进行SVM训练。
    文章地址:

https://xue.glgoo.com/scholar?hl=zh-CN&q=Beyond+bags+of+features%3A+Spatial+pyramid+matching+for+recognizing+natural+scenecategories&btnG=&lr=
http://ieeexplore.ieee.org/document/5204091/?arnumber=5204091&tag=1

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

评估(Evalutation)
文章进行了四项评估,有兴趣的读者可以自己去读读文章,在这里就不详细描述了。

文章定义了两个判断标准:
这里写图片描述
这里写图片描述

最后给出文章的一点对比算法,在大多数物体上的检测有了明显的提升。
这里写图片描述

代码地址:

http://koen.me/research/selectivesearch/

谢谢你们的阅读,期待我下次的文章解析。谢谢!

1 0
原创粉丝点击