前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >论文阅读学习 - Fast R-CNN

论文阅读学习 - Fast R-CNN

作者头像
AIHGF
修改2020-06-12 11:31:27
4390
修改2020-06-12 11:31:27
举报
文章被收录于专栏:AIUAI

Fast R-CNN

Fast R-CNN - Fast Regin-based Convolutional Network for Objection Detection

[Paper]

[Code-Caffe]

1. R-CNN

R-CNN 采用深度网络来对 object proposals 分类以进行目标检测,其缺点如下:

  • 训练是 multi-stage 的.
    • a). R-CNN 首先采用 log loss 对 object proposals 微调 ConvNet;
    • b). 然后将 ConvNet 特征送入 SVMs 分类器. 将 SVMs 作为目标检测器,取代微调的 softmax 分类器;
    • c). 学习 bounding-box 回归器.
  • 训练的空间和时间代价较高. 训练 SVM 和 bounding-box 回归器时,需要对每张图像的每个 object proposal 进行特征提取,并写入磁盘. 采用深度网络,比如 VGG16,对 VOC07 trainval 数据集的 5K 张图片,这个过程需要 2.5 GPU-days;且提取的特征需要大量的存储空间.
  • 目标检测速度慢. 测试时,对每张测试图片的每个 object proposal 进行特征提取. 基于 VGG16 的检测,单张 GPU 卡,每张图片需要 47s.

2. SPPNet

由于 R-CNN 需要对每个 object proposal 进行 ConvNet 前向计算,且没有共享计算,造成其速度较慢.

SPPNets,Spatial Pyramid Pooling Networks,通过共享计算来提高 R-CNN 的速度.

SPPNets 对整张输入图片计算一个卷积 feature map,采用从共享特征图(feature map)提取的特征向量来对每个 object proposal 进行分类.

每个 proposal 的特征提取,是采用 max-pooling 将 proposal 的特征图的一部分转换成固定尺寸的输出(fixed-size output, e.g. 6*6) 得到的. 多个输出尺寸采用 pool 操作,并连接为空间金字塔池化(spatial pyramid pooling).

SPPNet 的测试效率,是 R-CNN 的 10 - 100 倍. 由于较快的特征提取速度,训练时间也降低了 3 倍.

但,SPPNet 的明显缺点在于:

  • 类似于 R-CNN,其训练也是 multi-stage 的,包括,特征提取,利用 log loss 微调网络,训练 SVMs 分类器,以及拟合 bounding-box 回归器.
  • 特征也需要写入磁盘.
  • 与 R-CNN 不同在于,SPPNets 的微调算法不能对 spatial pyramid pooling 的卷积层进行更新,这也就限制了其在深度网络中的精度.

3. Fast R-CNN

相对于 R-CNN 和 SPPNet, Fast R-CNN 解决了以上它们的不足,并提升了速度和精度. 其优势在于,

  • 较高的检测质量(mAP)
  • 训练是 single-stage 的,采用了 multi-task loss
  • 训练可以对整个网络层进行更新
  • 不需要磁盘空间来缓存特征.

Fast R-CNN 网络结构为:

这里写图片描述
这里写图片描述

Figure 1. Fast R-CNN 结构. 一张输入图片和多个 RoIs 作为全卷积网络的输入,每个 RoI 被池化到一个固定尺寸的特征图,并采用全连接层映射为一个特征向量. 对于每个 RoI,网络有两个输出向量:softmax 概率和 per-class bounding-box 回归偏移值. 网络是采用 multi-task loss 进行 end-to-end 训练的.

Fast R-CNN 采用整张图片和 object proposals 集作为网络输入.

网络首先几个卷积层和 max-pooling 层对整张图片处理,得到一个 conv feature map.

然后,对每一个 object proposal,采用 RoI pooling 层从 feature map 中提取一个固定长度的特征向量;

每个特征向量被送入一系列的全连接层,最终有两个分支:一个分支得到 softmax 概率值,共 K 个 object 类和一个 background 类;另一个分支针对 K 个 object 类输出四个实值,分别表示了每类 object 的 bounding-box 位置.

RoI 层可以简单的看成 SPPNet 中的 spatial pyramid pooling 层的一种特例.

RoI 是从原图RoI区域映射到卷积区域,最后pooling到固定大小的功能,通过池化把该区域的尺寸归一化成卷积网络输入的尺寸.

3.2 网络的初始化

基于在 ImageNet 预训练的网络来初始化 Fast R-CNN 网络.

基于 VGG16 的训练网络输出部分如图:

这里写图片描述
这里写图片描述

3.3 Fast R-CNN 训练

Fast R-CNN 训练过程中,SGD 先采样 N 张图像,再对每张图片采样 R/NR/NR/N 个 RoIs,以分层采样 mini-batches.

相同图片的 RoIs 在前向和反向传播过程中,共享计算和内存.

Fast R-CNN 联合训练 softmax 分类器和 bounding-box 回归起,而分别训练 softmax 分类器,SVMs,回归器.

如图:

这里写图片描述
这里写图片描述

Reference

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年10月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Fast R-CNN
    • 1. R-CNN
      • 2. SPPNet
        • 3. Fast R-CNN
          • 3.2 网络的初始化
          • 3.3 Fast R-CNN 训练
          • Reference
      相关产品与服务
      图片处理
      图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档