论文阅读Faster RCNN
来源:互联网 发布:php __set 破坏封装 编辑:程序博客网 时间:2024/06/05 21:53
- 准备
- 0 AlexNetAlex Krizhevsky et al2012
- 1 ZFNetZeiler and Fergus2013
- 2 Overfeat还没看论文不知道具体原理
- 思想
- RPNRegion Proposal Network结构
- 1 思想
- 2 RPN结构
- 3 训练
- 31 样本
- 32 损失函数
- Faster RCNN
- 1 结构
- 2 训练
- 21 multi-stage训练
- 22 联合训练
- 结果分析
- 1 mAP平均准确度
- 2 PASCAL VOC 2007测试结果
- 3 时间
- 4 召回率分析
- 5 阶段训练单阶段还是多阶段
- 结论
0 准备
0.0 AlexNet[Alex Krizhevsky et al.2012]
输入:227x277x3
卷积层输出(池化层之前):13x13x256
最后一层池化层:6x6x256
全连接层:4096-4096-1000
0.1 ZFNet[Zeiler and Fergus,2013]
输入:227x227x3
卷积层输出(池化层之前):13x13x512
最后一层池化层:6x6x512
全连接层:4096-4096-1000
0.2 Overfeat(还没看论文,不知道具体原理)
1 思想
从RCNN到fast RCNN,再到本文的faster RCNN,目标检测的四个基本步骤(候选区域生成,特征提取,分类,位置精修)终于被统一到一个深度网络框架之内。所有计算没有重复,完全在GPU中完成,大大提高了运行速度。
三个要解决的问题:
1. 如何设计区域生成网络
2. 如何训练区域生成网络
3. 如何让区域生成网络和fast RCNN网络共享特征提取网络
2 RPN(Region Proposal Network)结构
2.1 思想
- 根据特征得到区域(而不是重新设计一种网络)
- 原来是用RP的方法得到ROI,再映射到conv feature map上,现在可以直接在feature map上对所有候选框进行识别
- 后续位置还有精修,不需要特别准确
2.2 RPN结构
- 在卷积特征图上滑动一个nxn的窗口(代表了输入图像上的候选区域)
- 卷积得到一个低维的向量(256-d for ZF and 512-d
for VGG) - 连接两个全连接层(box-regression layer && box-classification layer)
Translation-Invariant Anchor
因为每一个位置候选区域的大小和形状都是未知的,所以在每个滑窗位置预测k个region proposals(k=9)叫作anchor。那么对于每一个位置reg layer 有4k个输出对应BBox的坐标,cls layer有2k个scores输出对应是否有目标的概率。
2.3 训练
2.3.1 样本
Anchor:
一般设置短边s=600
anchor考虑三个尺度(128^2,256^2,512^2)和三个宽高比(1:1,1:2,2:1)
对于600x1000的图像,得到的特征大小为60x40,那么anchor大约有20k(~60*40*9)个;忽略掉超出边界的,大约有6k个
用于训练的anchor
a. 对每个标定的真值候选区域,与其重叠比例最大的anchor记为前景样本
b. 对a剩余的anchor,如果其与某个标定重叠比例大于0.7,记为前景样本;如果其与任意一个标定的重叠比例都小于0.3,记为背景样本
c. 对a,b剩余的anchor,弃去不用。
d. 跨越图像边界的anchor弃去不用
2.3.2 损失函数
RPN是不针对具体的类,而只是检测出物体
i表示anchor;
前一项是分类的Softmax损失,后一类是回归损失(前面那个N是归一化系数)
与其他框回归方法的不同
- Fast RCNN是对特征图上不等的区域池化,所有区域共享权重
- Faster RCNN是对特征图上相等的区域池化,不同的anchor权重不同(训练了k个anchor)
3 Faster RCNN
3.1 结构
RPN用来产生候选区域(不针对具体类别,只是框出可能含有目标的区域)
Fast-RCNN用来对候选区域进行分类和定位
3.2 训练
3.2.1 multi-stage训练
- 训练RPN
- 利用RPN得到的候选区域训练Fast-RCNN
- 用Fast-RCNN来初始化RPN的训练,固定卷积层微调RPN特有的层(共享了卷积层特征)
- 保持共享的卷积层固定微调Fast RCNN的全连接层
3.2.2 联合训练
4 结果分析
4.1 mAP(平均准确度)
- 可以看到,利用RPN来提取候选区域相较于用SS和EB的方法要高出1%左右
- 不使用共享权值的情况下,也可以达到一个比较高的mAP
- 只看RPN的结果,要略差于SS
- 只使用类损失或者回归损失,结果都会有不同程度的下降
4.2 PASCAL VOC 2007测试结果
在07测试集上,SS的最好结果是66.9%,而RPN的最好结果是69.9%
4.3 时间
使用VGG的话,可以达到5fps,即每秒处理5张图片
而使用ZF的话,可以达到17fps
4.4 召回率分析
如果对IOU的要求更高的话,SS的优势会逐渐显现(毕竟SS提取的区域准确性相对RPN更高)
4.5 阶段训练(单阶段还是多阶段?)
Faster-RCNN相比于Overfeat的单阶段训练结果高出5%左右
5 结论
- 提出了RPN用来有效地产生候选区域
- 共享卷积特征
- 一体化的监测系统5-17fps
- 学习的RPN可以改善候选区域质量和准确度
- 论文阅读Faster RCNN
- 论文笔记:Faster RCNN
- 论文笔记《Faster RCNN》
- Faster Rcnn论文总结
- faster-RCNN 论文笔记
- faster rcnn 论文理解
- faster rcnn论文
- 代码阅读:Faster RCNN
- faster rcnn代码阅读
- faster rcnn 源码阅读
- 【深度学习论文】Faster-RCNN
- Mask RCNN 论文阅读
- 论文阅读RCNN
- Faster RCNN-阅读理解-笔记
- RCNN + SPP + FAST RCNN + FASTER RCNN+ YOLO 论文总结
- faster R-CNN 论文阅读
- 论文阅读之Fast RCNN
- Mask-RCNN论文阅读笔记
- 第四章Python对象
- mybatis配置MySQL的批量查询
- 5、opencv的Mat介绍
- Android 自定义搜索框
- 玩家任务表(每个玩家应该有14条任务记录,需要根据"任务配置表"补全"玩家任务表",原有记录不能修改把每人缺失的任务记录补上)
- 论文阅读Faster RCNN
- 嵌入式学习4(Linux其他常识)
- 人工智能是人类最后一次革命
- Selenium Webdriver (学习笔记)
- 【Eternallyc】实现两个数交换
- java中Date的表示详解
- List<Map<String, Object>>直接取出每个对象中固定的key值
- 在VMware虚拟机中安装Kali Linux 17.1
- 树莓派温湿度发布到百度云MQTT