zoukankan      html  css  js  c++  java
  • RCNN 和SPPnet的对比

    一。RCNN:

    1、首先通过选择性搜索,对待检测的图片进行搜索出2000个候选窗口。

    2、把这2k个候选窗口的图片都缩放到227*227,然后分别输入CNN中,每个候选窗台提取出一个特征向量,也就是说利用CNN进行提取特征向量。

    3、把上面每个候选窗口的对应特征向量,利用SVM算法进行分类识别。

    可以看到R-CNN计算量肯定很大,因为2k个候选窗口都要输入到CNN中,分别进行特征提取,计算量肯定不是一般的大。

    二。SPPnet:

    1、首先通过选择性搜索,对待检测的图片进行搜索出2000个候选窗口。这一步和R-CNN一样。

    2、特征提取阶段。这一步就是和R-CNN最大的区别了,同样是用卷积神经网络进行特征提取,但是SPP-Net用的是金字塔池化。这一步骤的具体操作如下:把整张待检测的图片,输入CNN中,进行一次性特征提取,得到feature maps,然后在feature maps中找到各个候选框的区域,再对各个候选框采用金字塔空间池化,提取出固定长度的特征向量。而R-CNN输入的是每个候选框,然后在进入CNN,因为SPP-Net只需要一次对整张图片进行特征提取,速度是大大地快啊。江湖传说可一个提高100倍的速度,因为R-CNN就相当于遍历一个CNN两千次,而SPP-Net只需要遍历1次。

    3、最后一步也是和R-CNN一样,采用SVM算法进行特征向量分类识别。

    三。一个问题:

    如何在feature maps中找到原始图片中候选框的对应区域?

    因为候选框是通过一整张原图片进行检测得到的,而feature maps的大小和原始图片的大小是不同的,feature maps是经过原始图片卷积、下采样等一系列操作后得到的。那么我们要如何在feature maps中找到对应的区域呢?Mapping a Window to Feature Maps。作者直接给出了一个很方便我们计算的公式:假设(x’,y’)表示特征图上的坐标点,坐标点(x,y)表示原输入图片上的点,那么它们之间有如下转换关系:

    (x,y)=(S*x’,S*y’)

    其中S的就是CNN中所有的strides的乘积。比如paper所用的ZF-5:

    S=2*2*2*2=16

    而对于Overfeat-5/7就是S=12,这个可以看一下下面的表格:

     

    需要注意的是Strides包含了池化、卷积的stride。自己计算一下Overfeat-5/7(前5层)是不是等于12。

    反过来,我们希望通过(x,y)坐标求解(x’,y’),那么计算公式如下:

     

    因此我们输入原图片检测到的windows,可以得到每个矩形候选框的四个角点,然后我们再根据公式:

    Left、Top:

     

    Right、Bottom:

     

  • 相关阅读:
    [转] RISC-V架构介绍
    SiP封装成超越摩尔定律的要塞,日月光/安靠/长电科技谁将赢取IC封装的未来
    OLED中的Demura
    第四次工业革命:人工智能(AI)入门
    星座图的原理与应用
    示波器基本原理之七:示波器的基本测量
    示波器基本原理之六:示波器的基本控制
    示波器基本原理之五:采集模式
    示波器基本原理之四:波形捕获率
    png的故事:隔行扫描算法
  • 原文地址:https://www.cnblogs.com/soulmate1023/p/5582313.html
Copyright © 2011-2022 走看看