通过Faster R-CNN梳理两阶段目标检测算法框架

举报
hao540137644 发表于 2020/03/19 15:00:51 2020/03/19
【摘要】 Faster CNN是一个具有里程碑意义的,也是目前用得非常多的两阶段目标检测算法,完全搞懂Faster R-CNN的算法原理对理解两阶段目标检测算法框架非常有帮助。之前下功夫学过一次Faster R-CNN,但当时没有自己整理,现在发现很多细节都不是很清楚。现在决定亲自整理一遍,顺便做一次分享,有错误的地方希望读者指正。

Faster CNN是一个具有里程碑意义的,也是目前用得非常多的两阶段目标检测算法,完全搞懂Faster R-CNN的算法原理对理解两阶段目标检测算法框架非常有帮助。之前下功夫学过一次Faster R-CNN,但当时没有自己整理,现在发现很多细节都不是很清楚。现在决定亲自整理一遍,顺便做一次分享,有错误的地方希望读者指正。


  • 缘起

首先要知道,为什么要提出Faster R-CNN,也就是Faster R-CNN要解决的是什么问题。根据名字我们知道Faster R-CNN是Fast R-CNN的改进版,效果上应该比后者更快。为了不局限于这一种算法,而是深入理解两阶段算法的框架,我们还要回去再看看Fast R-CNN,甚至更早的R-CNN做了些什么。


  • R-CNN

R-CNN是第一个用深度学习解决目标检测问题的算法,也是两阶段法的奠基者。对于两阶段法,我最初的理解是将目标检测的两个任务——定位和分类——分两步独立完成,但这么理解越到后来越觉得有问题:算法的很多细节解释不通。后来看了一些博客才明白,所谓两阶段不是按任务类别分的,而是按算法解决问题的过程分的。


在用深度学习解决目标检测问题以前,传统目标检测也可以理解为两阶段的,第一阶段是区域选择(滑框)和提取手工设计特征(如HOG等),第二阶段是根据选择的区域和提取的特征进行分类(例如SVM等)和边框回归。深度学习在计算机视觉的分类任务上取得了优异表现后,用深度卷积神经网络取代手工设计对图像提取特征,这就是R-CNN。同时R-CNN还将区域选择的方式由滑框换成选择性搜索(Selective Search,SS),这一过程被称作区域提名(region proposal)。


R-CNN流程:

区域提名(SS)  --> CNN提取特征 --> SVM分类 --> 边框回归

image.png


R-CNN存在的问题:

  1. 由于全连接层的存在,对图片的提名区域需要固定的尺寸,这就需要对不同大小的图片进行剪裁或变形,这对图片特征是很严重的破坏;

  2. 虽然将滑框换成了选择性搜索,在一定程度上减少了冗余,但生成的候选区域依然存在重叠,这就使卷积依然存在算力冗余。


  • SPPNet

SPPNet的命名来源是空间金字塔池化(Spatial Pyramid Pooling,SPP),根据名字我们可以知道,SPPNet最大的特点是在全连接层前引入的金字塔池化层,以此来将输入的任意尺度特征图(feature map)处理成特定维度的输出,以适应全连接层的输入需要。SPPNet还将区域选择和特征提取调换了顺序,先卷积提取特征再进行区域选择,这对缓解卷积算力冗余有很大帮助。


SPPNet流程:

CNN提取特征 --> 区域提名(SS) --> SVM分类 --> 边框回归

image.png


  • Fast R-CNN

Fast R-CNN完全吸取了SPPNet的优点,但将空间金字塔池化层精简为RoI(Region of Interest)池化层。Fast R-CNN最重要的改变是将分类和回归作为并行任务一同放进了神经网络中,两个任务共享CNN提取的特征,并将SVM分类器替换成了softmax函数,实验证明,两项任务并行可以相互促进。


Fast R-CNN流程:

CNN提取特征 --> 区域提名(SS) --> 分类(softmax)+边框回归

image.png


  • Faster R-CNN

回顾Fast R-CNN发现,区域提名部分还是显得过于粗暴,存在大量冗余,如果这一部分也能像CNN学习图像特征一样学习边框特征就好了。Faster R-CNN就对这一环节设计了RPN(Region Proposal Network)来完成区域提名的工作,也就是在CNN网络之后直接接一个RPN网络(如下图),对CNN提取的特征学习生成提名区域。这一过程同样是通过在CNN生成的特征图上滑框来完成的,但需要对生成的大量原始框进行一个是否包含目标物体的简单预分类,并从中按一定比例选取正负样本框送到后面的网络训练,在送之前还要对选取的正样本框进行一次回归。这一阶段就是两阶段法中的第一阶段。

image.png


RPN生成的样本框再经过RoI pooling进入后续的分类和回归网络进行训练,此后与Fast R-CNN相同,这是两阶段法的第二阶段。


Faster R-CNN流程:

CNN提取特征 --> 区域提名(RPN) --> 分类(softmax)+边框回归


参考文章

1. Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems. 2015: 91-99.

文章链接:http://papers.nips.cc/paper/5638-faster-r-cnn-towards-real-time-object-detection-with-region-proposal-networks.pdf

2. Girshick R. Fast r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1440-1448.

文章链接:http://openaccess.thecvf.com/content_iccv_2015/html/Girshick_Fast_R-CNN_ICCV_2015_paper.html

3. Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2014: 580-587.

文章链接:http://openaccess.thecvf.com/content_cvpr_2014/html/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.html

4.He K, Zhang X, Ren S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(9): 1904-1916.

文章链接:http://tinman.cs.gsu.edu/~bhashithe/qualifiers/papers/region/spp-net.pdf

5.https://blog.csdn.net/v_JULY_v/article/details/80170182

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。