Selective Search for Object Recognition【论文笔记】

Contents

    • 0 摘要
    • 1 Intorduction
    • 2 选择性搜索
      • 2.1 Selective Search by Hierarchical Grouping(分层分组算法)
      • 2.2 多样化策略
    • 3 使用选择搜索(Selective Search)进行物体识别
    • 4 利用OpenCV实现选择性搜索

0 摘要

     这篇论文主要介绍了选择性搜索(Selective Search)的方法,该方法结合了穷举搜索(Exhausticve Search)和分割(Segmentation)的优势,实现了低数据量、与类别无关且高定位质量的特点。

     穷举搜索(Exhaustive Search):选择一个窗口扫描整张图像,改变窗口的大小,继续扫描整张图像。这种做法是比较原始直观,但是改变窗口大小扫描整张图像,非常耗时。 若能过滤掉一些无用的box将会节省大量时间。这就是本文中Selective Search(选择性搜索)的优点。在10,097个定位中,该方法的平均最好重合率为0.879

1 Intorduction

     在做物体识别(Object Recognition)过程中,不能通过单一的策略来区分不同的物体,需要充分考虑图像物体的多样性(diversity)。另外,在图像中物体的布局有一定的层次(hierarchical)关系,考虑这种关系才能够更好地对物体的类别(category)进行区分。
在深入介绍Selective Search之前,先说说其需要考虑的几个问题:
1. 适应不同尺度(Capture All Scales):穷举搜索(Exhaustive Selective)通过改变窗口大小来适应物体的不同尺度,选择搜索(Selective Search)同样无法避免这个问题。算法采用了图像分割(Image Segmentation)以及使用一种层次算法(Hierarchical Algorithm)有效地解决了这个问题;
2. 多样化(Diversification):单一的策略无法应对多种类别的图像。使用颜色(color)、纹理(texture)、大小(size)等多种策略对区域(region)进行合并;
3. 速度快(Fast to Compute):选择性搜索的目标是产生一系列的实际对象识别框架中使用的可能的对象位置,因此这样速度会比较快。

2 选择性搜索

2.1 Selective Search by Hierarchical Grouping(分层分组算法)

     这里是基于区域的合并,区域包含的信息比像素丰富,更能够有效地代表物体的特征。
     首先使用论文Efficient Graph-Based Image Segmentation中的方法生成一些起始的小区域,之后使用贪心算法将区域归并到一起:先计算所有临近区域间的相似度,将最相似的两个区域归并,然后重新计算归并后的区域与临近区域间的相似度,归并相似区域直至整幅图像成为一个区域。
Selective Search for Object Recognition【论文笔记】_第1张图片
输入:彩色图片(三通道)
输出:物体位置的可能结果L

  1. 使用论文 Efficient Graph-Based Image Segmentation 中的方法获取原始分割区域R={r1,r2,…,rn}
  2. 初始化相似度集合`S=∅     
  3. 计算两两相邻区域之间的相似度,将其添加到相似度集合S
  4. 从相似度集合S中找出相似度最大的两个区域rirj,将其合并成为一个区域 rt;从相似度集合中除去原先与rirj相邻区域之间计算的相似度;计算rt与其相邻区域的相似度,将其结果添加的到相似度集合S中。同时将新区域rt添加到区域集合R中。
  5. 获取每个区域的Bounding Boxes,这个结果就是物体位置的可能结果L

2.2 多样化策略

      论文作者给出了两个方面的多样化策略:颜色空间多样化、相似多样化

颜色空间多样化: 作者想要解释图片的不同场景和不同的光照情况。从人的视觉系统看,颜色可用色调、饱和度和亮度来描述,其中色调与光波的波长有直接关系,亮度和饱和度与光波的幅度有关,通过8种颜色空间进行对比。
Selective Search for Object Recognition【论文笔记】_第2张图片

相似多样化: 在区域合并的时候提到计算区域之间的相似度,论文介绍了四种相似度的计算方法。

  1. 颜色(color)相似度
    使用L1-norm归一化获取图像每个颜色通道的25 bins的直方图,这样每个区域都可以得到一个75维的向量,区域之间颜色相似度通过下面的公式计算:
    Selective Search for Object Recognition【论文笔记】_第3张图片
    在区域合并过程中使用需要对新的区域进行计算其直方图,计算方法:
    在这里插入图片描述
    合并后的区域尺寸仅仅为两者的求和:
    在这里插入图片描述

  2. 纹理(texture)相似度
    对每个颜色通道的8个不同方向计算方差σ=1的高斯微分(Gaussian Derivative),每个通道每个颜色获取10 bins的直方图(L1-norm归一化),这样就可以获取到一个240维的向量,纹理相似度计算公式为:
    Selective Search for Object Recognition【论文笔记】_第4张图片
    合并之后新区域的纹理特征计算方式和颜色特征计算相同。

  3. 大小(size)相似度
    这里的大小是指区域中包含像素点的个数。使用大小的相似度计算,主要是为了尽量让小的区域先合并:
    Selective Search for Object Recognition【论文笔记】_第5张图片

  4. 吻合(fit)相似度
    这里主要是为了衡量两个区域是否更加“吻合”,其指标是合并后的区域的Bounding Box(能够框住区域的最小矩形(没有旋转))越小,其吻合度越高。其计算方式:

在这里插入图片描述

最后将上述相似度计算方式组合到一起,可以写成如下,其中:
Selective Search for Object Recognition【论文笔记】_第6张图片

3 使用选择搜索(Selective Search)进行物体识别

     利用Selective Search对图像进行处理后,形成了可能的目标区域集L。下一步集合SITF或者CNN或者bag-of–words等一些特征提取方法,对每一个可能的目标区域进行特征处理,形成该区域的特征向量V,然后将V送入训练好的SVM多分类器进行判别。(图片来源)
Selective Search for Object Recognition【论文笔记】_第7张图片

4 利用OpenCV实现选择性搜索

     实现参考这篇博客,自己忘记OpenCV怎么搞了,之后补上= =。
     感觉之后的对于学习该方法没什么实质性作用,剩下的全部为通过数据阐述该方法的优越性,就不浪费时间了。

参考博客1
参考博客2

欢迎关注【OAOA

你可能感兴趣的:(目标检测paper,计算机视觉,python,机器学习,算法)