zoukankan      html  css  js  c++  java
  • Fast R-CNN学习总结

      Fast R-CNN是R-CNN的改良版,同时也吸取了SPP-net中的方法。在此做一下总结。

      论文中讲到在训练阶段,训练一个深度目标检测网络(VGG16),训练速度要比R-CNN快9倍左右,比SPP-net快3倍左右。在测试阶段,处理一张图片需要0.3s。在PASCAL VOC 2012数据库上的mAP也达到了66%,比R-CNN高两个百分点。

      

      提出背景

      这个方法提出的背景是,R-CNN和SPP-net在目标检测方面还有一些不足。不足表现在一下几点:

      1、训练分为多个阶段,首先要微调ConvNet,用来提取特征,然后处理proposal,计算得到的ConvNet特征,使用线性SVM进行分类,最后用bounding box进行回归;

      2、训练时间和空间开销大。每一张图像上有大量proposal,还要对每个proposal提取特征,并存到磁盘中;

      3、测试阶段速度太慢。要对每张图片上的大量proposal提取特征,然后根据提取的特征进行检测。

      创新点

      Fast R-CNN的创新点在于:

      1、相较于R-CNN和SPP-net,检测结果精确度更高;

      2、训练只有一个阶段,将多任务的loss结合在一起;

      3、在训练时,可更新所有的层;

      4、不需要在硬盘中存储特征。

      Fast R-CNN的框架

      1、我们还是需要使用selective search算法在图像中提取2k个左右的候选框;

      2、然后将图像和候选框(即RoIs)信息输入网络中,并在最后的卷积层上对每个RoI求映射关系,并使用RoI pooling layer来将对应的特征统一到相同的大小;

      3、最终网络有两个输出,也对应两个loss,一个使用softmax进行分类,另一个进行bounding box回归。

      

      其中的RoI pooling layer是借鉴了SPP-net的方法,只是只有一级“金字塔”,将特征划分为H×W的网格,对每个网格进行max-pooling,提取特征。论文中H=W=7。

      

      Fast R-CNN的训练

      我们要对网络进行修改,使用RoI pooling layer替换最后的pooling层(即全连接层之前的pooling层),使用 两个姊妹层替代最后的全连接层和softmax层。两个姊妹层,其中一个是全连接+softmax,用作分类任务;另一个是用于bounding box回归的任务。

      在训练阶段,每一个mini-batch中首先加入N张完整图片,而后加入从N张图片中选取的R个候选框。这R个候选框可以复用N张图片前5个阶段的网络特征。实际选择N=2, R=128。N张完整的图像以50%的概率进行水平翻转,R个候选框的构成如下: 

    类别比例方式
    前景 25% 与某个真值重叠在[0.5,1]的候选框
    背景 75% 与真值重叠的最大值在[0.1,0.5)的候选框

      

      多任务loss

      每个RoI都对应着一个ground-truth class 和一个ground-truth bounding box regression target 

      表示K+1个类别各自对应的概率,p由softmax层计算得到。我们将分类任务的loss定义为:

      ground-truth bounding box regression target ,bounding box任务的预测结果对应正确的类别。因为我们进行bounding box回归时,不考虑背景,所以时,bounding box回归没有对应的loss,而当时,对应的loss为:

    其中

     所以,最终的loss为:

      RoI pooling层的反向传播

      是RoI pooling层输入中的一个节点(可以理解为一个像素),是对应第r个RoI的第j个输出(也可以理解为一个像素),那么RoI pooling层所做的操作为
    ,其中是池化得到的小网格区域,由于不同的RoI会可能会包含同样的像素,所以一个可能对应多个最终loss关于 的偏导数为:

  • 相关阅读:
    我也设计模式——5.Prototype
    宋史目录
    ASP.NET 2.0 读书笔记 圣殿 之 HtmlHead & HtmlMeta
    SQL2005 读书笔记
    AJax调试
    WEB前端开发规范文档(转)
    ASP.NET的错误处理机制(转)
    asp.net面试集合
    Power Designer的使用
    运行常用命令
  • 原文地址:https://www.cnblogs.com/Peyton-Li/p/8528651.html
Copyright © 2011-2022 走看看