selectIve search for object recognize

在RCNN中使用到的selective search

selectIve search 主要完成的任务有点像是在多目标的图中找到特定的目标的

首先

什么是一幅图中的目标,怎样来区分提取

  • 对于图b,我们可以根据颜色来分开两只猫,但是不能根据纹理来分开。
  • 对于图c,我们可以根据纹理来找到变色龙,但是不能根据颜色来找到。
  • 对于图d,我们将车轮归类成车的一部分,既不是因为颜色相近,也不是因为纹理相近,而是因为车轮附加在车的上面(个人理解是因为车“包裹”这车轮)

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

    另外,图a说明了物体之间可能具有的层级关系,或者说一种嵌套的关系——勺子在锅里面,锅在桌子上。

  • 上面简单说明了一下在做物体识别(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):算法,速度才是在实际应用具有现实的意义。
  • Multiscale

    由于物体之间存在层级关系,所以Selective Search用到了Multiscale的思想。从上图看出,SelectSearch在不同尺度下能够找到不同的物体。

    注意,这里说的不同尺度,不是指通过对原图片进行缩放,或者改变窗口大小的意思,而是,通过分割的方法将图片分成很多个region,并且用合并(grouping)的方法将region聚合成大的region,重复该过程直到整张图片变成一个最大的region。这个过程就能够生成multiscale的region了,而且,也符合了上面“物体之间可能具有层级关系”的假设。

    Selective Search方法简介

    1. 使用Efficient
      GraphBased Image Segmentation
      中的方法来得到region
    2. 得到所有region之间两两的相似度
    3. 合并最像的两个region
    4. 重新计算新合并region与其他region的相似度
    5. 重复上述过程直到整张图片都聚合成一个大的region
    6. 使用一种随机的计分方式给每个region打分,按照分数进行ranking,取出top k的子集,就是selective search的结果

    策略多样化(Diversification Strategies)

    有两种多样化方法,一个是针对样本的颜色空间,另一个针对合并时候计算相似性的策略。

    采用了8种颜色空间,包括RGB,灰度图,Lab,等等

    采用了4种相似性:颜色相似性(对应Figure1a的情况),纹理相似性(对应Figure1b的情况),小物体先合并原则,物体之间的相容性(对应Figure1d的情况)

    如何对region打分?

    这里我不是太确定,但是按照作者描述以及个人理解,觉得确实就是随机地打分。

    对于某种合并策略j,定义rji为位置在i的region,其中i代表它在合并时候的所位于的层数(i=1表示在整个图片为一个region的那一层,往下则递增),那么定义其分数为,其中RND为[0,
    1]之间的一个随机值。

    大致流程如上图。用的是传统的“特征+SVM”方法:

    • 特征用了HoG和BoW
    • SVM用的是SVM with a histogram intersection kernel
    • 训练时候:正样本:groundtruth,负样本,seletive search出来的region中overlap在20%-50%的。
    • 迭代训练:一次训练结束后,选择分类时的false positive放入了负样本中,再次训练

    大体的过程就是这样,下面介绍一下具体的区域合并,及相似度计算等

    区域合并

    基于区域的合并,区域包含的信息比像素丰富,更能够有效地代表物体的特征首先原始区域的获取方法,区域的合并方式是有层次的(hierarchical),类似于哈夫曼树的构造过程。

    输入:彩色图片(三通道)

    输出:物体位置的可能结果L

    1. 使用 Efficient Graph-Based Image Segmentation的方法获取原始分割区域R={r1,r2,…,rn}

    2. 初始化相似度集合S=?

    3. 计算两两相邻区域之间的相似度(见第三部分),将其添加到相似度集合S中

    4. 从相似度集合S中找出,相似度最大的两个区域 ri 和rj,将其合并成为一个区域 rt,从相似度集合中除去原先与ri和rj相邻      区域之间计算的相似度,计算rt与其相邻区域(原先与ri或rj相邻的区域)的相似度,将其结果添加的到相似度集合S中。同      时将新区域 rt 添加到 区域集合R中。

    5. 获取每个区域的Bounding Boxes,这个结果就是物体位置的可能结果L

    多样化策略

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

    颜色空间多样化

    作者采用了8中不同的颜色方式,主要是为了考虑场景以及光照条件等。这个策略主要应用于图像分割算法中原始区域的生成。主要使用的颜色空间有:(1)RGB,(2)灰度I,(3)Lab,(4)rgI(归一化的rg通道加上灰度),(5)HSV,(6)rgb(归一化的RGB),(7)C(),(8)H(HSV的H通道)

    相似度计算多样化

    在区域合并的时候有说道计算区域之间的相似度,论文章介绍了四种相似度的计算方法。

    1. 颜色(color)相似度

    使用L1-norm归一化获取图像每个颜色通道的25 bins的直方图,这样每个区域都可以得到一个75维的向量,区域之间颜色相似度通过下面的公式计算:

    在区域合并过程中使用需要对新的区域进行计算其直方图,计算方法:

    2. 纹理(texture)相似度

    这里的纹理采用SIFT-Like特征。具体做法是对每个颜色通道的8个不同方向计算方差σ=1的高斯微分(Gaussian Derivative),每个通道每个颜色获取10 bins的直方图(L1-norm归一化),这样就可以获取到一个240维的向量,区域之间纹理相似度计算方式和颜色相似度计算方式类似,合并之后新区域的纹理特征计算方式和颜色特征计算相同:

    3. 大小(size)相似度

    这里的大小是指区域中包含像素点的个数。使用大小的相似度计算,主要是为了尽量让小的区域先合并:

    4. 吻合(fit)相似度

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

    最后将上述相似度计算方式组合到一起,可以写成如下,其中

    通过前面的区域合并,可以得到一些列物体的位置假设L。接下来的任务就是如何从中找出物体的真正位置并确定物体的类别。 常用的物体识别特征有HOG(Histograms oforiented gradients)和 bag-of-words 两种特征。在穷举搜索(Exhaustive Search)方法中,寻找合适的位置假设需要花费大量的时间,能选择用于物体识别的特征不能太复杂,只能使用一些耗时少的特征。由于选择搜索(Selective Search)在得到物体的位置假设这一步效率较高,其可以采用诸如SIFT等运算量大,表示能力强的特征。在分类过程中,系统采用的是SVM。

    特征生成

    系统在实现过程中,使用color-SIFT特征以及spatial pyramid divsion方法。在一个尺度下σ=1.2下抽样提取特征。使用SIFT、Extended OpponentSIFT、RGB-SIFT特征,在四层金字塔模型 1×1、2×2、3×3、4×4,提取特征,可以得到一个维的特征向量。(注:对SIFT特征以及金字塔模型还不是很了解,讲得不是很清楚)

    训练过程

    训练方法采用SVM。首先选择包含真实结果(ground truth)的物体窗口作为正样本(positive examples),选择与正样本窗口重叠20%~50%的窗口作为负样本(negative examples)。在选择样本的过程中剔除彼此重叠70%的负样本,这样可以提供一个较好的初始化结果。在重复迭代过程中加入hard
    negative examples(得分很高的负样本),由于训练模型初始化结果较好,模型只需要迭代两次就可以了。(样本的筛选很重要!!)

    性能评价

    很自然地,通过算法计算得到的包含物体的Bounding Boxes与真实情况(ground truth)的窗口重叠越多,那么算法性能就越好。这是使用的指标是平均最高重叠率ABO(Average Best Overlap)。对于每个固定的类别 c,每个真实情况(ground truth)表示为 ,令计算得到的位置假设L中的每个值l,那么
    ABO的公式表达为:

    上面结果给出的是一个类别的ABO,对于所有类别下的性能评价,很自然就是使用所有类别的ABO的平均值MABO(Mean Average Best Overlap)来评价。

  • 时间: 2024-10-11 18:16:29

    selectIve search for object recognize的相关文章

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

    Selective Search for Object Recognition [email protected] 作者: J. R. R. Uijlings, K. E. A. van de Sande, T. Gevers, A. W. M. Smeulders. 引用: Uijlings, Jasper RR, et al. "Selective search for object recognition." International journal of computer v

    Selective Search for Object Recognition

    http://blog.csdn.net/charwing/article/details/27180421 Selective Search for Object Recognition 是J.R.R. Uijlings发表在2012 IJCV上的一篇文章.主要介绍了选择性搜索(Selective Search)的方法.选择性搜索综合了蛮力搜索(exhaustive search)和分割(segmentation)的方法.选择性搜索意在找出可能的目标位置来进行物体的识别.与传统的单一策略相比,

    Selective Search for Object Recoginition

    Selective Search for Object Recoginition [email protected] http://blog.csdn.net/surgewong 在前一段时间在看论文相关的工作,没有时间整理对这篇论文的理解.在前面的一篇博客[1]中有提到Selective Search[2],其前期工作利用图像分割的方法得到一些原始区域(具体内容请查看[1]),然后使用一些合并策略将这些区域合并,得到一个层次化的区域结构,而这些结构就包含着可能需要的物体. 博客[3]已经有对这

    Selective Search for Object Recognition 论文笔记【图片目标分割】

    这篇笔记,仅仅是对选择性算法介绍一下原理性知识,不对公式进行推倒. 前言: 这篇论文介绍的是,如果快速的找到的可能是物体目标的区域,不像使用传统的滑动窗口来暴力进行区域识别.这里是使用算法从多个维度对找到图片中,可能的区域目标,减少目标碎片,提升物体检测效率. 下面是这篇文章的笔记: 介绍及引言: 图片是分层次的,比如下图中a: 沙拉和匙在沙拉碗里,而碗又在桌子上,另外桌子和木头有关或者说桌子和桌子上的所有东西有关.所以图片中的目标是有层次的. 图片分割应该按层次来,也不存在使用单个策略这样通用

    Selective Search for Object Recognition(理解)

    0 - 背景 在目标检测任务中,我们希望输入一副图像,输出目标所在的位置以及目标的类别.最常用的算法是滑动窗口方法,但滑动窗口其实相当于穷举图像中的所有子图像,其效率低且精度也受限.该论文提出一种新的生成目标检测框的方法selective search. 1 - 算法流程 step 0:生成区域集R step 1:计算区域集R中每个相邻区域的相似度S step 2:找出最相似的两个区域,将其合并成新区域添加到R中 step 3:从S中移除所有与step 2中相关的区域 step 4:计算新集与所

    论文-Selective Search

    Selective Search Selective Search for Object Recognition 本文的proposal是object detection领域中的unsupervised learning method中一种著名的方法. Selective Search: (1), Capture all scales,  保证对各种scale的object都可以capture到 (2), Diversification ,  组成object的regions可以是由颜色,曲线,

    RCNN,Fast RCNN,Faster RCNN 的前生今世:(1) Selective Search

    Selective Search for Object Recoginition 这篇论文是J.R.R. Uijlings发表在2012 IJCV上的一篇文章,主要介绍了选择性搜索(Selective Search)的方法.物体识别(Object Recognition),在图像中找到确定一个物体,并找出其为具体位置,经过长时间的发展已经有了不少成就.之前的做法主要是基于穷举搜索(Exhaustive Search),选择一个窗口(window)扫描整张图像(image),改变窗口的大小,继续扫

    第十二弹:SS(Selective Search)

    以下开始介绍基于区域选择的目标识别任务的模型.首先介绍一个选择搜索的方法,接着介绍一篇评述所有区域选择算法优劣的论文 一.论文笔记 一.摘要 本文主要介绍物体识别中的一种选择性搜索(Selective Search)方法. 物体识别,在之前的做法主要是基于穷举搜索(Exhaustive Search):选择一个窗口扫描整张图像(image),改变窗口的大小,继续扫描整张图像.这种做法是比较原始直观,改变窗口大小,扫描整张图像,非常耗时.若能过滤掉一些无用的box将会节省大量时间.这就是本文中Se

    selective search生成.mat文件

    https://github.com/sergeyk/selective_search_ijcv_with_python 里的selective_search.py是python接口 import tempfile import subprocess import shlex import os import numpy as np import scipy.io script_dirname = os.path.abspath(os.path.dirname(__file__)) def ge