r-cnn/fast r-cnn/ faster-rcnn/ r-fcn/mask-rcnn比较阅读

匿名 (未验证) 提交于 2019-12-02 23:32:01

该系列核心思想为候选区域,即先找出候选区域, 再在候选区域上进行目标检测

1.R-CNN

基于候选区域的目标检测

  • 通过选择性搜索算法, 对输入图像选取2000个候选区域
  • 在每一个候选区域上进行卷积提取特征
  • 对提取的特征分别做(1)svm分类, (2)线性回归bbox

因为对每一个候选区域做重复的事情, 切选择性搜索, 所以速度很慢

2.Fast RCNN

相对RCNN主要做了两个改进, 使的速度加快了.

  • 直接对输入图片深层卷积提取特征, 在特征上进行选择性搜索获取ROI, 这样只用提取一次特征, 原来需要2000次.即一次提取特征+多任务学习.
  • 使用softmax分类器替换svm, 结果没有降低, 加快了速度

ROI pooling 用于将不同尺寸的POI通过池化后, 变成一样的尺寸.如

未解决的问题, ROI搜索算法

问题:多个roi池化后多任务学习怎么进行的?

3.Faster-RCNN

主要提出了RPN网络,用深度学习生成ROI, 取代选择搜索算法.可以理解为Faster-RCNN = rpn + fast-rcnn

  • 原文这个conv feature map的维度是13*13*256的;
  • 作者在文章中指出,sliding window的大小是3*3的,那么如何得到这个256-d的向量呢? 这个很简单了,我们只需要一个3*3*256*256这样的一个4维的卷积核,就可以将每一个3*3的sliding window 卷积成一个256维的向量;
  • 作者这里画的示意图 仅仅是 针对一个sliding window的;在实际实现中,我们有很多个sliding window,所以得到的并不是一维的256-d向量,实际上还是一个3维的矩阵数据结构;可能写成for循环做sliding window大家会比较清楚,当用矩阵运算的时候,会稍微绕些;
  • 然后就是k=9,所以cls layer就是18个输出节点了,那么在256-d和cls layer之间使用一个1*1*256*18的卷积核,就可以得到cls layer,当然这个1*1*256*18的卷积核就是大家平常理解的全连接;所以全连接只是卷积操作的一种特殊情况(当卷积核的大小与图片大小相同的时候,其实所谓的卷积就是全连接了);
  • reg layer也是一样了,reg layer的输出是36个,所以对应的卷积核是1*1*256*36,这样就可以得到reg layer的输出了;
  • 然后cls layer 和reg layer后面都会接到自己的损失函数上,给出损失函数的值,同时会根据求导的结果,给出反向传播的数据,这个过程读者还是参考上面给的文档,写的挺清楚的

参考:

https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650730940&idx=1&sn=2a6a8520176368d467ca87fbc2e04c66&chksm=871b35c2b06cbcd41593cf07aa5b7a7d0913f5d07de708fd554059b9f20f1b332190dd934025&scene=21#wechat_redirect

https://www.jiqizhixin.com/articles/2018-04-27

https://imlogm.github.io/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/rcnn/

文章来源: https://blog.csdn.net/yang_daxia/article/details/90235818
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!