Faster R-CNN : end2end 和 alternative 训练


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 网络
    • 优化两个任务的特征
  • 错误后向传播至卷积层

©️2020 CSDN 皮肤主题: 像素格子 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值