目标检测入门:候选区域选择

滑动窗口

       滑动窗口检测器是一种暴力检测方法,从左到右,从上到下滑动窗口,然后利用分类识别目标。这里使用不同大小的窗口,因为一张图片可能展示从不同距离观测检测出不同的目标类型
这里写图片描述

       滑动窗口目标检测算法也有很明显的缺点,就是计算成本,因为你在图片中剪切出太多小方块,卷积网络要一个个地处理。如果你选用的步幅很大,显然会减少输入卷积网络的窗口个数,但是粗糙间隔尺寸可能会影响性能。反之,如果采用小粒度或小步幅,传递给卷积网络的小窗口会特别多,这意味着超高的计算成本。

选择性搜索

思路

       对于玩过Opencv人脸检测的人来说,基本都会形成一个思维定势,那就是检测就是不同大小的滑动窗进行穷举,然后使用分类器判断哪个滑动窗是人脸。对于深度学习这样超大计算量的分类器来说,这样的方法肯定是让人觉得太过于笨重的。于是乎,有人灵光一闪,说我干嘛要穷举嘛,我用简单的方法,根据颜色,纹理之类的信息去把图片划分成不同区域,哪怕是精度不高也可以相对于穷举搜索大量减少计算量。就是这么简单的搜索剪枝思路,几乎成为了当前深度学习物体识别领域的基本原则之一了。

实现细节

       思路是关键,细节是必要条件。有了一个好的思路,作者在当时环境,提出来了一个相对比较好的selective search实现思路,虽然现在已经有了非常高端的技术,将selective search这个过程结合到神经网络之中,但是作者的这个实现思路也是非常值得学习,特别是如何利用已有的技术去实现自己提出的一个新的思路,不然就算哪天灵光一闪有了一个绝妙的思路,也实现不了。

待解决问题:

1)如何保证划分相对完全,有的object之间是纹理不一样,有的是颜色不一样,单一的判断标准肯定无法完全cover所有的候选区域,这样的话selective-search就没有了最基础的用处了。对应原始的穷举搜索,就是扫描这个过程,扫描就是保证能够划分完全。

2)hierarchical层次关系,划分不能简单只是划分小区域,简单思考下就能发现,object肯定存在层次关系。轮胎是object,车子也是obeject,车子包含了轮胎。桌子是,桌子上的东西也是,桌子在图像上包含了桌子上的东西。所以Selective Search也应该要能够将各个层次的object的区域都给出来。对应原始的穷举搜索,就是不同大小的搜索框,只有不同大小的搜索框才能保证不同层次的object都被选择出来。

3)速度,比起穷举搜索这样无脑的方法,selective search肯定在划分时有一定计算量的,如何保证计算量相对小,也是一个需要考虑的问题。

实现:

       作者的实现思路是,首先通过简单的区域划分算法,将图片划分成很多小区域,再通过相似度和区域大小(小的区域先聚合,这样是防止大的区域不断的聚合小区域,导致层次关系不完全)不断的聚合相邻小区域,类似于聚类的思路。这样就能解决object层次问题,实际上也是非常成熟的技术。

       其次,作者为了保证能够划分的完全,对于相似度,作者提出了可以多样化的思路,不但使用多样的颜色空间(RGB,Lab,HSV等等),还有很多不同的相似度计算方法。

颜色相似度:将色彩空间转为HSV,每个通道下以bins=25计算直方图,这样每个区域的颜色直方图有25*3=75个区间。 
对直方图除以区域尺寸做归一化后使用下式计算相似度 
这里写图片描述 
       可以看到,就是简单的取每个区间最小的值累加。(可以这么理解:假设两个直方图波峰和波谷高度重合,那么计算下来的值比较大;反之如果波峰和波谷错开的,那么累加的值一定比较小。因此这里提前归一化很重要)

 纹理相似度:论文采用方差为1的高斯分布在8个方向做梯度统计,然后将统计结果(尺寸与区域大小一致)以bins=10计算直方图。直方图区间数为8*3*10=240(使用RGB色彩空间)。

       

  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值