Object Detection (RCNN,The Way to Endtoend)
本文主要简单介绍了RCNN如何一步步改进到支持端到端训练的Faster-RCNN。
一、Object Detection From RCNN to Faster RCNN
1.1 RCNN
1)几个重要的创新
- selection search提取候选区域
- 利用cnn 提取重要的特征(需要将特征保存到硬盘中,用于svm的训练)
- 利用svm对不同的候选框进行分类
- 利用回归来获取更加准确的位置
2)存在的不足
- 训练需要分成多个阶段完成
- 训练和存储代价大
- 检测速度缓慢
1.2 SPP-Net
1) 几个重要的贡献
- rcnn速度缓慢的原因是它需要分别对每个proposal提取特征,而没有共享计算
- 输入整张图片,然后利用spp层提取不同尺度大小的featuremap,最后将它们级联起来,最后输出一个特定维度的特征向量。
- spp-net使得rcnn在检测的时候提升了10到100倍。训练速度提升了3倍。
2) 存在的不足
- 训练仍然需要多个阶段。仍然需要提取特征训练svm; 最后仍然需要利用回归模型来获取更加精确的定位。
- 需要将特征保存到硬盘中。
- 网络训练的时候梯度没法穿过spp层。
1.3 Fast RCNN
1) 几个重要的贡献
- 利用ROIPooling层解决需要将同张图的每个候选区域分别输入网络提取特征的问题,提升了训练以及检测的速度。
ROIpooling层可以说是单尺度的SPP层,它可以输出特定大小的特征向量,类似于根据情况调整Pooling层的kenal size。 - 有了ROIPooling层后可以直接输入原图,并利用CNN以及ROIpooling来提取每个ROI区域的特征,然后利用CNN对每个ROI区域进行分类以及定位
- 有了ROIPooling层后,训练只需要单个阶段就可以完成。最后使用了多任务的loss(softmax层以及bounding box 回归)。
- 可以调整网络的所有层。
- 不需要将特征保存到硬盘中
2) 存在的不足:
- 仍然需要利用selection search提取proposals
1.4 Faster RCNN
1) 几个重要的贡献
- 提出了利用PRN来提取候选区域,并让PRN与Fast Rcnn共享网络。使得目标检测成为真正的一种endtoend的方式,并将速度进一步提升到可以进行实时检测的目的。
2) 存在的不足:
- 到此两阶段的目标检测方法就基本定型了,更多是在此基础上如何做到更加准确,更加快
二、目标检测数据集
1) PASCAL VOC
2) COCO
- mAP(mean average precision)
- precision:检测出相关的内容占检测出的内容的比例。
- average precision:举个例子,比如说当前文档相关的主题有5个,检测出了3个,其中3个相关的主题rank分别为2,3,4,则这个文档的average precision就是(1/2+2/3+3/4+0+0)/5 。
- mAP:则是每个文档的average precision的平均值。
这里的文档对应于目标检测的每张图片,而相关主题则对应到图片中目标的个数
- IoU(交并比)
- 两个区域的交集比上两个区域的并集
- non maxinum supression
- 与得分最高的区域的IOU高于某个阈值时,将其排除掉
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 524813168@qq.com
文章标题:Object Detection (RCNN,The Way to Endtoend)
文章字数:842
本文作者:xieweihao
发布时间:2016-12-04, 11:43:01
最后更新:2020-04-13, 22:58:57
原始链接:http://weihaoxie.com/post/4ec81054.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。