目录:
第一章 R-cnn
第二章 fast rcnn
第三章 faster rcnn
第四章 参考文献
撰稿人:朱秀红
第一章 R-cnn
一、R-cnn框架流程
1.输入图像
2.运用selective search算法提取2k左右的region proposals
3.将每个region proposal通过warp(扭曲)为227x227pixel作为CNN的输入,计算CNN的特征
4.将每个region proposal在CNN中提取到的特征输入到SVM进行分类
二、R-cnn应用
1.图像分类(imageclassification)
2.目标检测(object detection)
三、R-cnn总结
1.缺点:
(1)训练是多阶段进行的。
(2)训练在时间和空间上花费较大。对于SVMs和bb-box regression训练,要从每张图片的每个中objectproposal中提取特征,这既费时又费力。
(3)目标检测很慢。在测试时,要从每张测试图片的每个object proposal中提取特征,很耗时。R-CNN很慢的原因在于它对于每个object proposal都进行了ConvNet的前向传播,而没有共享计算。
2.分析:(来自知乎:https://www.zhihu.com/question/35887527)
(1)RCNN框架内的方法精度提升的瓶颈是将dectection问题转化成了对图片局部区域的分类问题后,不能充分利用图片局部object在整个图片中的context信息
(2)很多传统特征可以用图片经过CNN后得到的feature map表示。并且,由于卷积操作具有平移不变形,feature map里不仅包含了物体的what信息,还包含着物体的where信息。因此可以利用CNN特征来代替传统特征,对特征用SVM得到分类结果,同时可以对特征作回归得到更精确的位置。
(3)rcnn是经典的物体检测方法:
proposals->features->claasifiers(SVM)
因为每个region proposal都要过一遍cnn,即重复计算,所以速度慢
第二章 fast rcnn
一、fast rcnn框架流程
1.输入:图像+RoIs(region of interest)到完全卷积网络(ConvNet) 输出:feature map
2.经过RoI pooling layer,每个RoI被池化到固定大小的feature map
3经过FCs(fully connected,fc)映射为一个feature vector
4.每个RoI在网络有两个输出向量:softmax probabilitie+per-class bbox regression(bboxregression是用来对窗口进行微调)
二、总结
优点:
(1)更高的检测质量(mAP)
(2)通过使用多任务损失(Multi-task loss),使得训练是单阶段的
(3)训练可以更新所有网络层
(4)对于特征缓存不需要磁盘存储
(5)提供了在caffe的框架下,如何定义自己的层/参数/结构的范例
training and testing end-to-end,ROIPooling层,使得训练效果提升不少速度上的提升
第二章 faster rcnn
一、faster cnn框架流程
1.在特征图上使用3*3的卷积核(滑动窗口)与特征图进行卷积,那么这个3*3的区域卷积后可以获得一个256维的特征向量。因为这个3*3的域上,每一个特征图上得到一个1维向量,256个特性图即可得到256维特征向量。3*3滑窗中心点位置,对应预测输入图像3种尺度(128,256,512),3种长宽比(1:1,1:2,2:1)的region proposal,这种映射的机制称为anchor,产生了k=9个anchor。
2.后边接入两个全连接层,即cls layer和reg layer分别用于分类和边框回归。cls layer包含2个元素,用于判别目标和非目标的估计概率。reg layer包含4个坐标元素(x,y,w,h),用于确定目标位置。cls:正样本,与真实区域重叠大于0.7,负样本,与真实区域重叠小于0.3。reg:返回区域位置
3.最后根据region proposal得分高低,选取前300个region proposal,作为Fast R-CNN的输入进行目标检测
二、faster cnn总结
1.优点:
RPN的核心思想是使用卷积神经网络直接产生region proposal,使用的方法本质上就是滑动窗口
2.分析:
(1)faster rcnn把region proposal也放在网络里完成(RPN),这样整个框架都可以在一个网络里运行。
faster rcnn主要认为selectivesearch只能跑在cpu,不能跑在gpu上,所以提出了rpn来得到proposal。一般selectivesearch会产生2000个proposal,但rpn就几百个。
(2)4步训练算法,通过交替优化来学习共享的特征:
a.使用在ImageNet上预训练的模型初始化RPN网络参数,微调RPN网络;
b.使用(a)中RPN网络提取region proposal训练Fast R-CNN网络,也用ImageNet上预训练的模型初始化该网络参数;(现在看来两个网络相对独立)
c. 使用(b)的Fast R-CNN网络重新初始化RPN, 固定卷积层进行微调,微调RPN网络;
d.固定(b)中Fast R-CNN的卷积层,使用(c)中RPN提取的region proposal对Fast R-CNN网络进行微调
第四章 参考文献
Rcnn:《Rich feature hierarchies for accurate objectdetection andsemantic segmentation》
Fast rcnn:《Fast R-CNN》
Faster rcnn:《Faster R-CNN Towards Real-Time ObjectDetection with RegionProposal Networks 》