首页 > 其他 > 详细

faster rcnn学习笔记

时间:2020-05-25 09:03:47      阅读:77      评论:0      收藏:0      [点我收藏+]

基础知识

1. 感受野计算--为什么VGG模型在feature层的感受野是228 = 196+16*2

https://www.cnblogs.com/objectDetect/p/5947169.html

该链接中还给出计算感受野的python小程序。

我们接下来的分析以Faster rcnn网络中的使用的backbone网络VGG16。

首先VGG16网络参数

技术分享图片

 

 Faster rcnn论文中使用的是D型网络。

计算得到:vgg中最后一个conv5_3 得到的参数如下:

conv13:
n features: 14.0
jump: 16
receptive size: 196 start: 0.5

con5_3的感受野是196。

 

然后RPN网络的组成中有一个3*3的conv layer,因此在anchor所在的feature map层所看到的感受野=196+jmpu(16)*(kernel(3)-1) = 228 !

 

2. vgg+rpn网络的构建如何理解?

详细的请参考:https://blog.csdn.net/Mr_health/article/details/84953759

【tensorflow + Faster RCNN】构建vgg前端和RPN网络

 

3. anchors相关

关于多尺度目标检测。

可以看有三的深度学习中的多尺度模型设计!

https://zhuanlan.zhihu.com/p/74710464

那么,faster rcnn中其实提出的是一种pyramids of anchors.

关于如何理解pyramids of anchors?

https://zhuanlan.zhihu.com/p/32230004

anchor的本质是什么,本质是将相同尺寸的 conv5_3 层的输出,倒推得到不同尺寸的输入。接下来是anchor的窗口尺寸,详细说下这个尺寸的来源,最基本的anchor只有一个尺寸,是16*16的尺寸,然后设定了基本的面积scale是(8,16,32),用这三个scale乘以16就得到了三个面积尺寸(128^2,256^2,512^2),然后在每个面积尺寸下,取三种不同的长宽比例(1:1,1:2,2:1).这样一来,我们得到了一共9种面积尺寸各异的anchor。

 

4. Faster-RCnn中RPN网络中卷积核大小与AnchorBox对应不同尺度是否有关

RPN网络的3*3卷积只是一个滑窗的概念,每个点的9个anchor共享3*3窗口的感受野区域。

第一层是固定的3x3卷积,对所有的9个anchor来说是一样的。这个3x3卷积的感受野,映射到原图上,就是228x228的区域(VGG网络)。只有在第2层的2个1x1卷积,是分别针对不同anchor的,它们的输出通道串起来就是2k和4k这个数量了。所以,anchor的scale和ratio都只是跟1x1卷积的输出通道相关的,参数是学出来的,但输入的3x3卷积特征都是一样的。

 

 

5. 如何正确理解RPN网络的3*3卷积的作用?

https://www.zhihu.com/question/376333386

作者:SuperMHP
链接:https://www.zhihu.com/question/376333386/answer/1054897318
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这个其实个人觉得没有什么特别的原因。先针对你的问题进行解答:

  1. 是否有增加感受野,按照卷积计算感受野的公式来说肯定是增加了。比如vgg,在feature map上一个pixel对应原图192*192的区域,现在你把3x3的区域在聚合起来。理论确实会看见更多。但是这仅仅是理论上,根据有效感受野(ERF)的概念来看。实际上感受野绝不会那么大。所以所谓增加感受野就是RPN加入3x3卷积的目的是不太能说通的。
  2. 没有听说过此类说法。我记得最后regression出的proposal不会去用神经网络去判断是否超出

至于RPN加3x3 Conv其实给我感觉就是一种偏直觉做法。backbone的特征图拿来,其pretrain时包含的都是较强的分类特征。在此特征基础上,3x3卷积对特征进行二次变换。之后加入两个支路,这样貌似更合理,直接将两个支路加在backbone的conv5特征图上可能会使得conv5特征图分布发生巨大的变化。从增量逻辑上看不见得好。加入3x3 Conv起码给了网络另一条潜在的优化路线:即backbone分布不太剧烈变化,通过3x3 conv将分类特征迁移到两个task所需的分布上来。这样应该会更好?以上只是我自己的拙见,恳请大家批评指正

 

问题一:

1,3*3的卷积你可以理解为增加了局部上下文信息,如果用1*1的卷积代替,其实没有那么丰富的周边信息了。

2,关于感受野,可以参考一篇文章:cnn中的感受野。3*3的卷积会增加理论感受野,当网络训练好之后,有可能会增大有效感受野,但是1*1对有效感受也没有影响,但是3*3卷积增加其他参数后,对增大有效感受野也会有帮助,从而检测不同大小目标,具体可以参考另一篇文章:目标检测中的Anchor分析之再谈Anchor

问题二:

这个问题可以参考一篇文章:一文读懂RPN和ROI Align。如这篇文章所说,楼主说的问题出现在anchor target generator过程,超过图像边界的anchor会直接删除。在proposal generator过程,对于网络预测框,越过图像边界的框,会根据图像大小进行截断。这是两个过程,给你解释的人弄混了,建议仔细阅读一下推荐的文章。



作者:百思视界
链接:https://www.zhihu.com/question/376333386/answer/1059316014
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

必读好文

1. https://blog.csdn.net/mljsuc/article/details/90447800

faster rcnn具体参数。这篇文章梳理里faster rcnn中使用到的所有参数信息,十分详细。

其中描述到:

171 ZF模型在feature层的感受野
228 VGG模型在feature层的感受野

 

2. 一文读懂faster rcnn

https://zhuanlan.zhihu.com/p/31426458

知乎上关于faster rcnn的入门好文。

faster rcnn学习笔记

原文:https://www.cnblogs.com/durui0558/p/12953940.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!