没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
目录
1 Conv layers
2 Region Proposal Networks(RPN)
- 2.1 多通道图像卷积基础知识介绍
- 2.2 anchors
- 2.3 softmax判定positive与negative
- 2.4 bounding box regression原理
- 2.5 对proposals进行bounding box regression
- 2.6 Proposal Layer
3 RoI pooling
- 3.1 为何需要RoI Pooling
- 3.2 RoI Pooling原理
4 Classification
5 Faster RCNN训练
- 5.1 训练RPN网络
- 5.2 通过训练好的RPN网络收集proposals
- 5.3 训练Faster RCNN网络
Questions and Answer
图1 Faster RCNN基本结构(来自原论文)
依作者看来,如图1,Faster RCNN其实可以分为4个主要内容:
1. Conv layers。作为一种CNN网络目标检测方法,Faster RCNN首先使用一组基础的
conv+relu+pooling层提取image的feature maps。该feature maps被共享用于后续RPN层和
全连接层。
2. Region Proposal Networks。RPN网络用于生成region proposals。该层通过softmax判断
anchors属于positive或者negative,再利用bounding box regression修正anchors获得精确
的proposals。
3. Roi Pooling。该层收集输入的feature maps和proposals,综合这些信息后提取proposal
feature maps,送入后续全连接层判定目标类别。
4. Classification。利用proposal feature maps计算proposal的类别,同时再次bounding box
regression获得检测框最终的精确位置。
所以本文以上述4个内容作为切入点介绍Faster R-CNN网络。
图2展示了python版本中的VGG16模型中的faster_rcnn_test.pt的网络结构,可以清晰的看到该网
络对于一副任意大小PxQ的图像:
• 首先缩放至固定大小MxN,然后将MxN图像送入网络;
• 而Conv layers中包含了13个conv层+13个relu层+4个pooling层;
• RPN网络首先经过3x3卷积,再分别生成positive anchors和对应bounding box regression偏
移量,然后计算出proposals;
• 而Roi Pooling层则利用proposals从feature maps中提取proposal feature送入后续全连接和
softmax网络作classification(即分类proposal到底是什么object)。
图2 faster_rcnn_test.pt网络结构 (pascal_voc/VGG16/faster_rcnn_alt_opt/faster_rcnn_test.pt)
本文不会讨论任何关于R-CNN家族的历史,分析清楚最新的Faster R-CNN就够了,并不需要追溯
到那么久。实话说我也不了解R-CNN,更不关心。有空不如看看新算法。
新出炉的pytorch官方Faster RCNN代码导读:
1 Conv layers
Conv layers包含了conv,pooling,relu三种层。以python版本中的VGG16模型中的
faster_rcnn_test.pt的网络结构为例,如图2,Conv layers部分共有13个conv层,13个relu层,4
个pooling层。这里有一个非常容易被忽略但是又无比重要的信息,在Conv layers中:
1. 所有的conv层都是:kernel_size=3,pad=1,stride=1
2. 所有的pooling层都是:kernel_size=2,pad=0,stride=2
为何重要?在Faster RCNN Conv layers中对所有的卷积都做了扩边处理( pad=1,即填充一圈
0),导致原图变为 (M+2)x(N+2)大小,再做3x3卷积后输出MxN 。正是这种设置,导致Conv
layers中的conv层不改变输入和输出矩阵大小。如图3:
图3 卷积示意图
类似的是,Conv layers中的pooling层kernel_size=2,stride=2。这样每个经过pooling层的
MxN矩阵,都会变为(M/2)x(N/2)大小。综上所述,在整个Conv layers中,conv和relu层不改变
输入输出大小,只有pooling层使输出长宽都变为输入的1/2。
那么,一个MxN大小的矩阵经过Conv layers固定变为(M/16)x(N/16)!这样Conv layers生成的
feature map中都可以和原图对应起来。
2 Region Proposal Networks(RPN)
经典的检测方法生成检测框都非常耗时,如OpenCV adaboost使用滑动窗口+图像金字塔生成检
测框;或如R-CNN使用SS(Selective Search)方法生成检测框。而Faster RCNN则抛弃了传统的滑
捋一捋pytorch官方FasterRCNN代码
1097 赞同 · 14 评论 文章
剩余22页未读,继续阅读
数据猴赛雷
- 粉丝: 848
- 资源: 47
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页