Selective Search for Object Recognition论文阅读笔记2012

Selective Search for Object Recognition论文阅读笔记2012

Abstract

本文聚焦于生成可能的目标位置用在目标检测中。我们提出选择性搜索(selective search)方法,它综合了穷举搜索以及分割,与分割类似,我们使用图像结构来知道我们的采样过程;与穷举搜索类似,我们试图得到所有可能的目标位置。我们使搜索多样化,并使用各种互补的图像分区来处理尽可能多的图像状况,而不是使用一种单独的技术来生成可能的对象位置。我们的选择性搜索生成一系列数据驱动,与类别无关的高质量定位结果,在10097个位置上,达到了99%召回率以及平均最好重叠为0.879。与穷举搜索相比减少了定位结果的数量,这使得可以将更多的计算资源用在更强的ML技术以及模型上。本文我们使用选择性搜索,使得可以将强有力的Bag-of-Words模型用在目标识别任务中。

1.Introduction

长期以来,人们一直在寻找目标,然后再对其进行识别,这就使得分类任务变得热门,近些年来也取得了很大进展。但是图像实际上是分层次的,在图1a中,**沙拉和勺子在沙拉碗中,而沙拉碗又在桌子上。**而且根据context的不同,这里的“桌子”既可以指木头桌子,也可以指包括桌子上的东西的桌子,因此不止是图像,目标类别的定义也是分层次的。这就使得除了很特殊的任务外,不能对目标进行唯一的分割结果(也不能使用唯一的策略)。因此对于大部分任务中,都需要进行多尺度的分割。

可以通用的策略可能也是不存在的。在上图b中,可以使用颜色分辨出这两只猫,它们的纹理是相同的;而图c中,又需要使用纹理来进行分离,因为颜色一样;在图d中车轮与汽车一点都不一样,但是因为它属于车的一部分,因此被与车一起整体圈出。因此单独的视觉特征解决不了分割的这些模糊、冲突问题。

最后,还有一个更基础的问题,有着十分不同的特征的区域,比如毛衣上面有一张脸,只有在确认这个目标是人的时候,才会将这两个目标组合到一起成为一个目标(人)。因此没有先验的识别,就很难决定面部和毛衣是不是目标的一部分。

这就引向了与传统方法相反的方法:**在对目标进行识别的同时进行定位过程。**穷举搜索(exhaustive search)就是对图像的每个位置进行搜索,为了不错过任何可能存在目标的位置。

穷举搜索有几个缺点。首先是计算量太大,需到使用固定尺度固定长宽比的网格将图像分隔,来减少搜索空间,但是大部分情况下,这样的计算量也很大,而且固定尺寸的采样会产生许多不适合物体的box。重点就是:我们可以通过数据驱动的分析引导采样吗?

本文中,我们试图组合分割和穷举搜索的优点,提出一个数据驱动的选择性搜索。**受到自底向上分割的启发,我们试图利用图像的结构来生成目标位置的预测。受到穷举搜索的启发,我们试图提出所有可能的目标位置。因此,我们旨在使采样技术多样化,以考虑尽可能多的图像条件。**特别地,我们使用数据驱动、基于分组的策略(data-driven grouping-based strategy),我们通过使用各种互补的分组准则和具有不同的不变性的多种互补色彩空间来增加多样性。通过组合这些互补的准则得到的结果来得到最后的locations集合,我们的目标是实现一个类别独立、数据驱动、选择性搜索的策略,来生成一系列(small set)高质量目标位置。

选择性搜索 应用领域是目标识别,因此我们在这种应用最广泛的数据集上进行评估:Pascal VOC 检测数据集(包含20类目标)。数据集的尺寸约束了我们的选择性搜索;另外,使用这个数据集也意味着我们使用bbox来评价定位的结果

2.Related Work

2.1Exhaustive Search

因为目标以任意尺度在图像的任意位置存在,因此很自然的方法就是全部进行搜索。然而,由于搜索空间巨大计算量很大,这就会导致在每个位置的评价或者选择位置的数量上都会有所限制。因此**大部分的滑窗方法都是粗网格搜索,固定长宽比,使用弱分类器以及计算量较小的特征比如HOG。**这种方法通常作为分类器级联的preselection step。

Felzenszwalb等人的方法同样使用线性SVM和HOG特征进行穷举搜索,但是它们寻找目标以及目标的一部分,将它们进行组合,取得了很好的目标检测表现。

Lampert等人提出的方法使用appearance model来指导搜索,这减少了使用固定网格的限制,同时还减少了需要visit的locations的数量。这是通过使用分支定界技术直接在图像内搜索最佳窗口来完成的,然而它们的方法对线性分类器取得很好效果,对非线性分类器反而不够好。

我们提出了选择性搜索,**我们使用图像的结构来指导生成目标位置。与上面方法相反,这种方法生成了完全class-independent的locations。而且我们没有使用固定的长宽比,我们的方法不只适用于目标,**同样可以用于“草”“沙子”这种事物。最后我们希望生成更少的locations,这样可以节省计算量用在使用更强的ML技术以及模型上。

2.2Segmentation

Carreira等人使用分割来生成一系列类独立目标假设,生成多个前景/背景分割结果,学习预测前景是一整个目标的可能性,使用可能性来对这些分割结果进行排名。但是方法依赖于一个通用的算法来找到好的区域,通过使用许多袭击初始化的前景和背景seeds来获得locations。相反,我们使用不同的分组准则和不同的表示(representations)来处理许多不同的图像条件。

2.3Other Sampling Strategies

Alexe等人为了解决穷举搜索的大搜索空间问题,提出搜索任何目标,而不管它的类别。在他们的方法中,它们在那些有着好的defined shape的目标的windows上训练分类器,然后随机sample boxes,在上面应用分类器。有着最高objectness的boxes成为一系列目标假设的集合。这个集合之后被用来减少使用class-specific目标检测器评估的窗口数。

另一个策略是使用Bag-of-Words中的视觉单词来预测目标位置,Vedaldi使用跳跃窗口,在窗口中学习单独的视觉单词个目标位置的关系,以用在新的图像上预测目标位置。Maji等人组合了许多relation来使用霍夫变换来预测目标位置。与学习相反,我们使用图像结构来生成一系列目标假设。

总结下来,我们的创新在于:相比于穷举搜索,我们使用分割来进行选择性搜索来生成一小系列类独立的目标位置;我们使用许多不同策略来处理尽可能多的图像情况;相比于在随机采样的boxes使用objectness进行评估,我们使用自底向上的聚集流程来生成好的目标位置。

3.Selctive Search

选择性搜索算法遵循以下设计想法:

  • Capture All Scales。目标可能出现在图像的任意尺度中,并且一些目标的边界可能不够清晰,因此在选择性搜索中,所有的目标尺度都应该考虑在内,如图2所示,通过使用分层算法最自然地实现的。
  • Diversification。没有一个单一的最优策略来完成区域的分组,正如图1中所示,**区域形成目标,有的仅仅因为颜色,有的只因为纹理,有的是因为目标的部分组成,而且光照条件(比如阴影,光线颜色)也会影响区域形成目标。**因此我们的方法需要使用多种策略。
  • Fast to Compute。我们的方法的计算量需要可以接受。

3.1Selective Search by Hierarchical Grouping

我们使用分层分组算法形成我们选择性搜索的基础。自底向上分组是分割中很常见的方法,因此我们将它用在算法中。因为grouping的过程是分层的,我们很自然的通过不断重复这个过程直到整张图像变成一个单独区域,来生成locations,这就抓住了所有的尺度。

因为区域比像素有着更丰富的信息,所以我们尽可能使用基于区域的特征。要获得一组理想的不跨越多个目标的小起始区域,我们使用Felzenszwalb的快速方法完成这一过程。

grouping流程如下,首先使用上述方法生成初始区域。然后使用贪心算法来迭代的将区域合并分组(首先,计算相邻区域的相似性,最相似的两个区域聚合到一起,在将新的区域与相邻区域计算相似性…),重复操作直到整个图像变成一个区域,总体方法细节如下图。

计算区域 r i r_i ri r j r_j rj的相似性时,我们使用了许多互补的、可以快速计算的测量方式。这意味着计算的相似性需要依靠可以在这些层之间传播的(不同尺度间传播)特征来计算,也就是说,合并两个区域时,合并之后的区域的特征,要能通过合并之前的两个区域的特征计算得出,而不需要考虑像素层面。

3.2 Diversification Strategies

选择性搜索的第二步设计准则是多样化采样,创建一系列互补的策略,通过这些策略得到的locations可以在之后进行组合。我们多样化使用:

  • 使用各种有着不同不变性的色彩空间。
  • 使用不同的相似度计算方法。
  • 多种初始区域

**使用互补的颜色空间。**我们想要把不同场景和光照条件都考虑在内,因此我们在多个颜色空间使用了我们的算法,这些空间有着不同的不变性。我们使用了:

  1. RGB
  2. 灰度空间 I I I
  3. Lab
  4. 归一化RGB通道的rg通道加上强度intensity,表示为 r g I rgI rgI
  5. HSV
  6. 归一化RGB,表示为rgb
  7. C,这是一个移除了intensity的opponent彩色空间
  8. HSV的H通道

具体的不变性由表1给出。

当然,对于黑白图像,对颜色空间的改变会对算法输出的结果有一点影响。对于这些图像,我们依赖于其他的方法(除了颜色之外)来获得好的结果。

**补充的相似度计算方法。**我们一共定义了四种可快速计算的相似度计算方式,结果都在[0,1]之内,有利于将结果进行组合。

  • S c o l o u r ( r i , r j ) S_{colour}(r_i,r_j) Scolour(ri,rj),表示颜色相似度。**对于每个区域,我们获得了一个一维的颜色直方图,对每个颜色通道使用25个bins。最后对于每个区域 r i r_i ri,它的颜色直方图是 C i = { c i 1 , . . . , c i n } C_i=\{c_i^1,...,c_i^n\} Ci={ci1,...,cin}。因为有三个通道,每个通道25bin,所以n=75,最后使用L1归一化对直方图进行归一化。**相似度由两个区域的直方图计算获得:

    S c o l o u r ( r i , r j ) = ∑ k = 1 n m i n ( c i k , c j k ) S_{colour}(r_i,r_j) =\sum^n_{k=1}min(c_i^k,c_j^k) Scolour(ri,rj)=k=1nmin(cik,cjk)
    颜色直方图可以通过下面的公式跨尺度传播:

    最后合并的区域的尺寸就是i和j的尺寸相加。

  • S t e x t u r e ( r i , r j ) S_{texture}(r_i,r_j) Stexture(ri,rj)表示纹理相似度,我们使用快速地SIFT-like的方式来代表纹理(因为SIFT在材料的识别上表现很好)。对于每个通道,我们在8个方向使用高斯差分,每个方向使用10个bin生成直方图,最后生成的纹理直方图为 T i = { t i 1 , . . . , t i n } T_i=\{t_i^1,...,t_i^n\} Ti={ti1,...,tin},对于每个区域,n=240(三个通道,8个方向,每个方向10bin)。使用L1归一化进行归一化,两个区域的相似度计算公式为:

    跨尺度计算合并之后的直方图 T t T_t Tt与上面颜色的公式一致。

  • S s i z e ( r i , r j ) S_{size}(r_i,r_j) Ssize(ri,rj)鼓励小区域早期就进行合并,这使得还没有被合并的区域在整个算法中有着相似的尺寸。这是很好的,因为这使得图像中所有地方的所有尺度的locations都被创建。举例来说,这防止了一个区域不断地一个一个吞噬了其他区域,导致所有的尺度只存在在这个逐渐生长的区域,而在其他地方不存在**。 S s i z e ( r i , r j ) S_{size}(r_i,r_j) Ssize(ri,rj)表示i和j两个区域的占据的部分占整张图像的比例。**

    size(im)表示图像的尺寸。

  • S f i l l ( r i , r j ) S_{fill}(r_i,r_j) Sfill(ri,rj)表示两个区域互相匹配的程度。想法是填充gaps:**如果 i 包含在 j 中,为了避免出现洞,逻辑上应该先合并它们;相反,如果i 和 j几乎不怎么接触,那么它们不应该合并(因为合并之后形状很奇怪)。**我们定义 B B i j BB_{ij} BBij为包括区域i和j的tight bbox。 S f i l l ( r i , r j ) S_{fill}(r_i,r_j) Sfill(ri,rj)表示图像包含在 B B i j BB_{ij} BBij之中,但是不在区域i和j的部分:

我们最后的相似度公式为:

其中, a i a_i ai取值为0或者1,代表这种相似度是否使用。

**补充的初始区域。**第三种策略就是使用不同的初始区域进行补充。Felzenszwalb的方法是最快的生成高质量初始位置的算法,我们使用了这种方法。注意到我们使用不同的颜色空间时就生成了不同的初始区域,另外我们也采用了不同的阈值参数K(在Felzenszwalb方法中)。

3.3 Combining Locations

我们对几个由不同的分层grouping算法得到的目标假设进行组合。理想情况下,我们希望将目标假设按照可能是目标的可能性由高到低顺序排序。这就需要在这些假设的质量和数量之间找到良好的平衡,同样依赖于后续的特征提取以及分类方法。

我们选择根据每个单独的分组策略中生成假设的顺序来对组合目标假设集进行排序。但是,当我们结合多达80种不同策略的结果时,这种顺序将过于强调大区域。为了防止这种情况,我们引入了下面的一些randomness。对于分组的策略j, r i j r_i^j rij表示在位置i层次的区域,i=1时,代表分层的最上层,即代表整个图像。我们现在计算位置value, v i j = R N D ∗ i v_i^j = RND*i vij=RNDi。其中RND是[0,1]之间的随机数,最后的排序结果是对这些策略的位置value进行排序得到的。

当我们使用边界框来表示位置时,我们首先对所有位置用上述方法进行排序。之后,我们才会过滤掉排名较低的重复项。 这样可以确保重复的框有较高的机会获得较高的排名(先排名,再去重)。这是可取的,因为如果多种分组策略生成了同一个box location,那么这个框很可能来自图像的视觉连贯部分,即目标。

4.Object Recognition Using Selective Search

我们使用SS算法生成的位置用来目标识别,这部分具体讲解我们框架。

在目标识别领域,两种特征占据主导:HOG以及bag-of-words。HOG取得了很大成功,但是因为它们使用穷举搜索,由于计算量限制只能使用线性分类器。相反,我们的SS算法是的我们可以使用更好的更有力的特征。因此我们使用bag-of-words用于目标识别,然而我们还部署了不同的颜色-SIFT描述子以及更好的空间金字塔划分。

特别地,**我们在每个像素使用单一尺度( σ = 1.2 \sigma=1.2 σ=1.2)来采样描述子,我们提取SITF、两个colour-SIFT(对于检测图像结构更敏感)、Extended OpponentSIFT、以及RGB-SIFT。我们使用大小为4,000的视觉编码本和4个级别的空间金字塔,总的特征向量长度为360000。**由于空间金字塔比构成HOG描述符的单元格导致的空间细分更粗糙,因此我们的特征包含的关于对象特定空间布局的信息较少。因此,HOG更适合rigid目标,我们的特征更适合可变形的目标。

我们使用Shogun Toolbox,使用带有直方图相交核的支持向量机作为分类器。

我们的训练流程如图3所示,初始的正例子含有所有的ground truth窗口;初始的负例子,我们从我们SS算法生成的所有目标位置预测中选择重叠20%-50%并且包含一个正例子的,作为负例子。为了避免邻近的重复的负例子,如果两个负例子重叠超过70%,那么就移除一个。为了保证每一类的初始负例子少于20000,对一些类的负例子,随机丢弃一半。**直观来看,这样的例子可以看做是困难的负例子,因为它们与正例子十分相像。这意味着它们接近决策边界,因此即使考虑完整的负例子集合,它们也有可能成为支持向量,而被判定为正。**我们发现这种对训练例子的选择,对于分类模型的初始化非常好。

然后我们进入retraining阶段,迭代增加困难的负例子,我们将学习到的模型应用在训练集上(训练集使用SS算法生成的位置),对于每个负样本,我们增加最高的分数location。因为我们初始化地很好,我们模型只迭代了两次就收敛了。

对于测试集,最终的模型应用到我们SS生成的所有locations上,使用分类器分数对窗口进行排序,重叠超过30%,保留分数较高的窗口。

5.

在接下来的几部分都是对文中算法的评价以及比较,因为文中并没有使用深度学习以及卷积神经网络用于目标识别,下面的部分略过。下一篇阅读SS算法在CNN的应用——R-CNN论文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值