rcnn,sppnet,fast rcnn,ohem,faster rcnn,rfcn
https://zhuanlan.zhihu.com/p/21412911
rcnn需要固定图片的大小,fast rcnn不需要
rcnn,sppnet,fast rcnn,ohem,faster rcnn,rfcn都属于基于region proposal(候选区域)的目标检测方法,即预先找出图中目标可能出现的位置。
fast rcnn:在特征提取层的最后一层卷积后加入roi pooling layer,损失函数使用多任务损失函数(multi-task loss),将边框回归直接加入到CNN网络中训练。
1.ROI pooling layer实际上是SPP-NET的一个精简版,SPP-NET对每个proposal使用了不同大小的金字塔映射,而roi pooling layer只需要下采样到一个7x7的特征图。对于VGG16网络conv5_3有512个特征图,这样所有region proposal对应了一个7*7*512维度的特征向量作为全连接层的输入。
2.R-CNN训练过程分为了三个阶段,而Fast R-CNN直接使用softmax替代SVM分类,同时利用多任务损失函数边框回归也加入到了网络中,这样整个的训练过程是端到端的(除去region proposal提取阶段)。没有真正实现端到端训练。
fast rcnn中一个batch是两张图片,每张图片64个region proposal,即一个batch里是128个region proposal。选择16个(即1/4)作为正例,选择48个(即3/4)作为负例。正例是iou大于等于0.5的框,负例是iou大于等于0.1,小于0.5的框。
faster rcnn:之前的网络都是单独生成的region proposal,faster rcnn利用了cnn网络来生成region proposal,这样就真正实现了端到端。在region proposal + CNN分类的这种目标检测框架中,region proposal质量好坏直接影响到目标检测任务的精度。如果找到一种方法只提取几百个或者更少的高质量的预选窗口,而且召回率很高,这不但能加快目标检测速度,还能提高目标检测的性能(假阳例少)。RPN(Region Proposal Networks)网络应运而生。
RPN的核心思想是使用卷积神经网络直接产生region proposal,使用的方法本质上就是滑动窗口。RPN的设计比较巧妙,RPN只需在最后的卷积层上滑动一遍,因为anchor机制和边框回归可以得到多尺度多长宽比的region proposal。RPN机制生成的roi,跨越图像边界的都要忽略掉。
RPN网络实际上就是在特征提取层最后一层之后再加一层卷积层,并且这一层是一个3x3的卷积。之后再生成只是这一层后面加了label loss和..... 这个到底怎么训练的
faster rcnn训练的2个阶段(6个过程):1.rpn网络训练 2.利用rpn网络提取region proposal 3.利用生成的region proposal训练fast rcnn网络
4.rpn网络训练,但这个时候特征提取层的参数固定了,只训练后面的层的参数 5.利用rpn网络提取region proposal
6.特征提取层参数固定,利用新生成的region proposal去训练fast rcnn网络
在1,3中都是利用imagenet预训练模型进行参数初始化,1,3,4,6中rpn网络后面的卷积层和fast rcnn后面的全连接层都是利用高斯分布进行初始化
ohem:将所有的region proposal拿来训练,一个batch大小为2048,map高于fast rcnn原来的情况。ohem方法和fast rcnn一样,一个batch128个region proposal,但这128个是按照loss由大到小排列,并且经过nms处理后选出的前128个大的region proposal。ohem取消了正负样本在mini-batch里的ratio(原Fast-RCNN的ratio为1:3)。
训练过程:1.将原图的所有props扔到RoINet1,计算它们的loss(这里有两个loss:cls和det);
2.根据loss从高到低排序,以及利用NMS,来选出前K个props(K由论文里的N和B参数决定)
为什么要用NMS? 显然对于那些高度overlap的props经RoI的投影后,
其在feature maps上的位置和大小是差不多一样的,容易导致loss double counting问题
ohem中的nms和之前的有点不一样,ohem是按照loss大小排列,但之前的是按照这个框的概率值进行排列。
3.将选出的K个props(可以理解成hard examples)扔到RoINet2,这时的RoINet2和Fast RCNN的RoINet一样,计算K个props的loss,并回传梯度/残差给 ConvNet,来更新整个网络
rcnn,sppnet,fast rcnn,ohem,faster rcnn,rfcn的更多相关文章
- Object Detection(RCNN, SPPNet, Fast RCNN, Faster RCNN, YOLO v1)
RCNN -> SPPNet -> Fast-RCNN -> Faster-RCNN -> FPN YOLO v1-v3 Reference RCNN: Rich featur ...
- 从R-CNN到FAST-RCNN再到Faster R-CNN
(Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks) R-CNN: (1)输入测试图像: ...
- object detection技术演进:RCNN、Fast RCNN、Faster RCNN
object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.object detection要解决的问题就是物体在哪里,是什么这整个流程的问题.然而,这个问题 ...
- 基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN
object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.object detection要解决的问题就是物体在哪里,是什么这整个流程的问题.然而,这个问题 ...
- 目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN
看到一篇循序渐进讲R-CNN.Fast R-CNN.Faster R-CNN演进的博文,写得非常好,摘入于此,方便查找和阅读. object detection,就是在给定的图片中精确找到物体所在位置 ...
- RCNN,fast R-CNN,faster R-CNN
转自:https://www.cnblogs.com/skyfsm/p/6806246.html object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别. ...
- (转)基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN
object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.object detection要解决的问题就是物体在哪里,是什么这整个流程的问题.然而,这个问题 ...
- 基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN,Faster R-CNN
基于深度学习的目标检测技术演进:R-CNN.Fast R-CNN,Faster R-CNN object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.obj ...
- R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN
最近在看 Mask R-CNN, 这个分割算法是基于 Faster R-CNN 的,决定看一下这个 R-CNN 系列论文,好好理一下 R-CNN 2014 1. 论文 Rich feature hie ...
随机推荐
- JAVA编写的断点续传小程序
上了一周的课,今天终于可以休息了,太棒了,今天闲着无聊使用java语言写了一个断点续传的小程序来分享给大家, 首先要下载个用于网络请求的框架:我这里给出地址,是用的Apache的HttpClient: ...
- UVALive - 3695 Distant Galaxy
InputThere are multiple test cases in the input file. Each test case starts with one integer N, (1 ≤ ...
- HDMI和VGA接口
HDMI英文全称为:High Definition Multimedia Interface,它是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号. HDMI接口与VGA接口区别如下: ...
- Codeforces Round #529 -C- Powers Of Two(二进制拆分)
A positive integer xx is called a power of two if it can be represented as x=2yx=2y, where yy is a n ...
- Yii2.0权限系统,使用PhpManager的方式
网上搜了一大堆yii2.0权限系统,大抵都是千篇一律,而且基本上都是DbManager.看了半天官方文档之后,终于知道了PhpManager的方式下,是怎么引入权限系统.介绍下我自己的使用.首先,配置 ...
- 学习flask的网址
学习flask的网址: http://www.bjhee.com
- css文本换行的问题
今天敲代码的时候发现了一个一直都没太注意的小问题,当我在一个200px的div中写了一长串的‘f ‘时发现没有换行 但加上空格或标点符号后就能自动换行 原来浏览器把它当成了一串完整的单词,所以默认不换 ...
- CS round--36
https://csacademy.com/contest/round-36/summary/ C题是一个贪心,最坏情况是,一开始肯定是每一对袜子都抽一个,然后就需要N个袜子了.后面的情况就是相同的了 ...
- awk单引号处理
awk中使用单引号,常规字符串,'\''即可,但如果像下面在$4变量用单引号,则还需要加上双引号才行. cat 2.txt | awk '{ print $1, $2, $3, "'\''& ...
- 渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(上)
关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/11/es-code02/ 前提 上篇文章写了 ElasticSearch 源码解析 -- ...