Faster R-CNN : end2end 和 alternative 训练

简介: Faster R-CNN 实际上就是由 Fast R-CNN 和 RPN 两个网络结合的,可以使用 end2end 和 alternative 两种方式来训练,两种方法训练出来的网络准确度基本没有多大的区别,但是使用 end2end 训练,即端到端训练可以节省很多时间。这篇文章参考 Ross' Girshick 在 ICCV15 上的演讲报告,主要讲 end2end 方法。

Faster R-CNN 实际上就是由 Fast R-CNN 和 RPN 两个网络结合的,可以使用 end2end 和 alternative 两种方式来训练,两种方法训练出来的网络准确度基本没有多大的区别,但是使用 end2end 训练,即端到端训练可以节省很多时间。这篇文章参考 Ross' Girshick 在 ICCV15 上的演讲报告,主要讲 end2end 方法。


一、alternative 训练

在 Faster RCNN 中论文使用了 alternative optimization 。分为四步进行:
(1)首先训练 RPN。这个网络使用一个 ImageNet 预训练模型来初始化,然后端到端地 fine-tune,来进行区域建议。
(2)第二步,使用第一步 RPN 生成的建议通过 Fast R-CNN 训练另外一个检测网络。这个检测网络同样也使用 ImageNet 预训练模型来初始化。在这一步两个网络还没有共享卷积层。
(3)第三步,使用检测网络来初始化 RPN 训练,完成共享卷积层,且只 fine-tune RPN 特有的层。这一步两个网 络共享卷积层了。
(4)最后,保持共享卷积层, fine-tune Fast R-CNN 的全卷积层。

二、end2end 训练

在 Ross' Girshick 在 ICCV15 上的演讲报告上,介绍了一种近似联合优化,Approx. joint optimization。与论文中 的方法不一样,近似联合优化把 Fast R-CNN 和 RPN 网络写在了同一个网络中去,同时地训练两个网络。这种方法 训练的网络终 mAP 与 alternative 训练的相差无几,但是训练时间花费却大大的缩减了。

(一)训练时间花费

slow R-CNN 和 SPP-net 的训练时间:

  • Fine-tuning (backprop, SGD): 18 hours / 16 hours
  • Feature extraction: 63 hours / 5.5 hours

    • Forward pass time (SPP-net helps here)
    • Disk I/O is costly (it dominates SPP-net extraction time)
  • SVM and bounding-box regressor training: 3 hours / 4 hours
  • Total: 84 hours / 25.5 hours

slow R-CNN 训练花费了太多的时间。

Fast R-CNN 训练只有一个阶段,训练网络中所有的层。

(二)端到端训练 Fast R-CNN

  • 在一个网络中有两个 Loss 分支

    • Branch 1: softmax classifier
    • Branch 2: linear bounding-box regressors
    • 全局的 Loss 就是两个 Loss 的和
  • 使用 SGD 来联合 Fine-tune 网络

    • 优化两个任务的特征
  • 错误后向传播至卷积层

目录
相关文章
|
2月前
|
机器学习/深度学习 算法 安全
FRCNN来袭 | Faster RCNN与FCN永不遗忘,联邦学习+边缘数据既保护隐私也提升性能
FRCNN来袭 | Faster RCNN与FCN永不遗忘,联邦学习+边缘数据既保护隐私也提升性能
62 0
|
3月前
|
机器学习/深度学习 算法 TensorFlow
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
63 0
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
|
2月前
|
机器学习/深度学习 数据可视化 定位技术
PrObeD方法开源 | 主动方法助力YOLOv5/Faster RCNN/DETR在COCO/GOD涨点
PrObeD方法开源 | 主动方法助力YOLOv5/Faster RCNN/DETR在COCO/GOD涨点
39 0
|
7月前
|
机器学习/深度学习 算法 数据挖掘
m基于Faster R-CNN网络的烟雾检测系统matlab仿真,带GUI操作界面
m基于Faster R-CNN网络的烟雾检测系统matlab仿真,带GUI操作界面
91 0
|
4月前
|
机器学习/深度学习 监控 算法
【Keras计算机视觉】Faster R-CNN神经网络实现目标检测实战(附源码和数据集 超详细)
【Keras计算机视觉】Faster R-CNN神经网络实现目标检测实战(附源码和数据集 超详细)
35 0
|
4月前
|
机器学习/深度学习 算法 固态存储
【计算机视觉】目标检测中Faster R-CNN、R-FCN、YOLO、SSD等算法的讲解(图文解释 超详细必看)
【计算机视觉】目标检测中Faster R-CNN、R-FCN、YOLO、SSD等算法的讲解(图文解释 超详细必看)
120 0
|
6月前
|
机器学习/深度学习 算法 计算机视觉
m基于Faster R-CNN网络的火灾识别系统matlab仿真,带GUI界面
m基于Faster R-CNN网络的火灾识别系统matlab仿真,带GUI界面
51 0
|
7月前
|
机器学习/深度学习 数据采集 人工智能
头疼!卷积神经网络是什么?CNN结构、训练与优化一文全解
头疼!卷积神经网络是什么?CNN结构、训练与优化一文全解
61 0
|
2月前
|
机器学习/深度学习 编解码 PyTorch
Pytorch实现手写数字识别 | MNIST数据集(CNN卷积神经网络)
Pytorch实现手写数字识别 | MNIST数据集(CNN卷积神经网络)
|
1月前
|
机器学习/深度学习 算法 数据库
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱

热门文章

最新文章