faster rcnn end2end 训练与测试

687人阅读 评论(0) 收藏 举报
分类:

除了前面讲过的rpn与fast rcnn交替训练外,faster rcnn还提供了一种近乎联合的训练,姑且称为end2end训练。

根据论文所讲,end2end的训练一气呵成,对于前向传播,rpn可以作为预设的网络提供proposal.而在后向传播中,rpn,与fast rcnn分别传导,而汇聚到shared layer.,但是没有考虑掉roi pooling层对于predicted bounding box的导数。如下图:



我们这里截取Ross'Girshick 在ICCV15上的ppt<Training'R-CNNs'  of  'various  'velocities   Slow, fast, and faster>  



对于roi pooling层,显然依赖于图像本身,和roi区域。对于fast rcnn来讲,roi是固定的,而对于faster rcnn来说,roi是通过rpn产生的,rpn不定,所以roi的生成依赖于

图像。



但是由于最大池化的作用,所以没有办法对roi的四个位置求导。




所以忽略掉对于roi的导数,当然了如果改变max pooling的方式,比如如下所说采取双线性插值,这样输出既有roi的坐标也有图像像素值,则可以关于roi求导。





根据github上py-faster-rcnn描述

  • For training smaller networks (ZF, VGG_CNN_M_1024) a good GPU (e.g., Titan, K20, K40, ...) with at least 3G of memory suffices
  • For training Fast R-CNN with VGG16, you'll need a K40 (~11G of memory)
  • For training the end-to-end version of Faster R-CNN with VGG16, 3G of GPU memory is sufficient (using CUDNN)

使用end2end的训练方式,显存也减少了,从原先的11g减少到3g.我觉得主要的原因是在原先的交替训练中,rpn训练结束后,会有一个rpn生成的过程,这时会生成所有训练图片的proposals,而这是个巨大的负担。而使用end2end的方式训练,一次训练一张图片,rpn阶段产生一张图片的proposal,然后送入fast rcnn训练。显然这种方法很省时也很省内存。


对于end2end的测试,从网络配置上基本与交替训练的相同。在一些小的细节,比如end2end测试时仍然保留了drop层,而对于交替训练的方式,在训练阶段有,测试时去掉了。

下面给出了个人画的end2end的训练网络图。

请访问:链接


查看评论

py-faster-rcnn配置运行faster_rcnn_end2end—VGG_CNN_M_1024(Ubuntu14.04)

在我的上个博客中已经对py-faster-rcnn配置运行demo.py做出了相应说明,在本博客中我将对py-faster-rcnn配置运行faster_rcnn_end2end—VGG_CNN_M_...
  • samylee
  • samylee
  • 2016-04-08 20:48:14
  • 11908

caffe学习(七):使用py-faster-rcnn来训练voc2007数据集(Ubuntu)

准备数据集1、下载数据集: 输入指令:wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar ...
  • hongbin_xu
  • hongbin_xu
  • 2017-08-16 21:54:20
  • 4196

faster rcnn end2end 训练与测试

除了前面讲过的rpn与fast rcnn交替训练外,faster rcnn还提供了一种近乎联合的训练,姑且称为end2end训练。 根据论文所讲,end2end的训练一气呵成,对于前向传播,rpn可以...
  • xiamentingtao
  • xiamentingtao
  • 2017-11-14 22:58:14
  • 687

py-faster-rcnn训练脚本faster_rcnn_end2end.sh分析

py-faster-rcnn训练脚本faster_rcnn_end2end.sh分析
  • zchang81
  • zchang81
  • 2017-06-13 17:35:00
  • 2009

用自己的数据训练Faster-RCNN

本文简要介绍了如何用自己的数据训练Faster-RCNN。
  • happyxieqiang
  • happyxieqiang
  • 2016-05-17 21:59:42
  • 11030

Py-faster-rcnn实现自己的数据train和demo

在我的上两个博客中已经对py-faster-rcnn配置运行demo.py和py-faster-rcnn配置运行faster_rcnn_end2end—VGG_CNN_M_1024做出了相应说明,在本...
  • samylee
  • samylee
  • 2016-04-20 16:14:30
  • 27965

Caffe学习系列——Faster-RCNN训练自己的数据集

2016-10-23 Deep Learning►Caffe Caffe学习系列——6使用Faster-RCNN进行目标检测 Contents 1. 配置与运行De...
  • CV_adventurer
  • CV_adventurer
  • 2017-05-29 23:38:09
  • 9782

py-faster-rcnn在Windows下的end2end训练

py-faster-rcnn 训练 end2end windows caffe 汉字识别
  • zhangzm0128
  • zhangzm0128
  • 2017-05-21 07:26:56
  • 2988

py-faster-rcnn end2end训练记录

一、train.prototxt解读 1. vgg16网络conv3_1之间的卷积层固定,不参与微调学习。 2. RPN部分不在预训练模型内,卷积层的weigh和bias需要初始化。...
  • qq_35497808
  • qq_35497808
  • 2017-09-10 15:52:12
  • 130

使用caffe框架利用faster-rcnn来训练自己的数据集

最近在研究caffe,前前后后差不多快一周了,论文看得比较少,直接上手来做的,期间遇到无数问题,大大小小的无数问题,不过通过上网,看别人的博客,几乎踩了很多大坑,这里给大家总结一下,希望后续同样做深度...
  • u013738531
  • u013738531
  • 2016-12-20 21:40:51
  • 7615
    个人资料
    持之以恒
    等级:
    访问量: 34万+
    积分: 4749
    排名: 7682
    个人网站
    最新评论