RCNN学习笔记(3)-Fast-RCNN
2017-10-07 20:53
344 查看
Fast-RCNN
reference link:晓雷机器学习笔记
xyy19920105博客——目标检测——从RCNN到Faster RCNN 串烧
RCNN、SPP-net的流程
上图分别为RCNN和SPP-net CNN提取特征的流程,在此之后都将通过SVM分类 以及 Bbox回归
所以可以看出,RCNN和SPP-net在训练pipeline是隔离的:提取proposal->cnn提取特征->SVM分裂->Bbox回归;
Fast R-CNN的贡献
实现大部分end-to-end训练 ,提取proposal阶段除外:所有的特征都暂存在显存中,不需要额外的磁盘空间;把最后一层的Softmax换成两个,一个是对区域的分类Softmax(包括背景),另一个是对bounding box的微调。
//(对于SVM和Softmax,论文在SVM和Softmax的对比实验中说明,SVM的优势并不明显,故直接用Softmax将整个网络整合训练更好。对于联合训练: 同时利用了分类的监督信息和回归的监督信息,使得网络训练的更加鲁棒,效果更好。这两种信息是可以有效联合的。)
提出了一个RoI层(SPP的变形)SPP是pooling乘多个固定尺度,RoI只pooling到固定的尺度(6×6)
结构上的优化。
指出SPP-net训练时的不足之处,并提出新的训练方式,就是把同张图片的prososals作为一批进行学习,而proposals的坐标直接映射到conv5层上,这样相当于一个batch一张图片的所以训练样本只卷积了一次。
ROI Pooling
Region of Internet由于不是固定尺寸的输入,因此每次的pooling网格大小需要手动计算,比如某个ROI区域坐标为(x1,y1,x2,y2),那么输入的size为(y2-y1).(x2-x1)
output field size = ( input field size - kernel size + 2*padding ) / stride + 1
感受野:input field size = (output field size - 1)* stride - 2*padding + kernel size
公式:
对于Convolution/Pooling layer(博文作者忘了加上padding本文在这里补上):
对于 Neuronlayer(ReLU/Sigmoid/..) :ri = r(i+1) (显然如此)
而SPP-net中提出的是把原始ROI左上角和右下角映射到feature map上的两个对应点。如图所示:
左上角的点(x,y)映射到 feature map上的(x’,y’) : 使得 (x’,y’) 在原始图上感受野(上图绿色框)的中心点 与(x,y)尽可能接近。
左上角的点:
右下角的点:
Bounding-Box Regression
使用ROI Pooling层 其实就是 完成了最简单粗暴的对象检测,也就是先用selective search 等proposal 提取一批box坐标,然后输入的网络对每个box包含一个对象进行预测。此时,神经网络依然仅仅是一个图片分类的工具而已,只不过不是整图分类,而是ROI区域的分类,那么
能不能把输入的box坐标也放到深度神经网络里进行一些优化?
在Fast-RCNN中,有两个输出层:第一个是针对每个ROI区域的分类概率预测
第二个是针对每个ROI区域坐标的偏移优化
是多类检测的类别序号。
值得注意的是,他在回归问题上并没有用很常见的2范数作为回归,而是使用所谓的鲁棒L1范数作为损失函数
相关文章推荐
- 深度学习笔记之目标检测算法系列(包括RCNN、Fast RCNN、Faster RCNN和SSD)
- [深度学习论文笔记][CVPR 17 oral]A-Fast-RCNN: Hard Positive Generation via Adversary for Object Detection
- CNN学习笔记(三)RCNN、Fast RCNN、Faster RCNN对比学习
- 深度学习笔记之使用Faster-Rcnn进行目标检测 (原理篇)
- Opencv2系列学习笔记12(检测fast特征)
- 开源工程学习笔记之Fastjson(Part 0)
- 学习笔记:LAB Feature with Feature-centric Cascade for Fast and Accurate Face Detection
- Fast.ai: Practical Deep Learning for coders 课程学习笔记:Part1 Lesson1 (Lesson0)
- RCNN 论文学习笔记
- RCNN学习笔记
- FastSpring学习笔记二(使用工具MyGeneration生成Model和NHibernate的代码 )
- 深度学习笔记之使用Faster-Rcnn进行目标检测 (实践篇)
- A-Fast-RCNN 论文笔记
- RCNN系列学习笔记(6):SSD: Single Shot MultiBox Detector
- NLP︱高级词向量表达——FastText(简述、学习笔记)
- Fast.ai: Practical Deep Learning for coders 课程学习笔记:Part1 Lesson1 (Lesson0)
- Json学习笔记(一)-利用Fastjson将String转换成Map,List和数组
- FastSpring学习笔记二(使用工具MyGeneration生成Model和NHibernate的代码 )
- FastReport for .net 学习笔记
- CMarkup: fast simple C++ XML parser 学习笔记