码迷,mamicode.com
首页 > 编程语言 > 详细

基于区域的二阶段算法思想和理解综述

时间:2019-12-13 09:26:42      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:高度   overflow   ssi   font   rev   导致   proposal   time   learning   

基于区域的二阶段算法思想和理解综述

待办

decription
decription

摘要:
图像目标检测是图像处理领域的基础。自从2012年CNN的崛起,深度学习在Detection的持续发力,为这个领域带来了变革式的发展。深度学习出现之前,传统的目标检测方法大概分为区域选择(滑动窗口)、特征提取(SIFT、HOG、LBP、DPM等)、分类器(SVM、Adaboost等)三个部分,其主要问题有两方面:一方面滑窗选择策略没有针对性、时间复杂度高,窗口冗余;另一方面手工设计的特征鲁棒性较差。自深度学习出现之后,目标检测取得了巨大的突破。目标检测从分开成两个方向。一方面是以RCNN为代表的基于Region Proposal的深度学习目标检测算法(RCNN,SPP-NET,Fast-RCNN,Faster-RCNN等),识别精度相对较高。另一方面是以YOLO为代表的基于回归方法的深度学习目标检测算法(YOLO,SSD等),识别效率高。本文将介绍基于区域检测的两阶段算法即RCNN及其家族。不对过多基于RCNN的繁杂分支进行说明。

引言
CNN流行之后,Szegedy做过将detection问题作为回归问题的尝试(Deep Neural Networks for Object Detection)[1],但是效果差强人意,在VOC2007上MAP只有30.5%。既然回归方法效果不好,而CNN在分类问题上效果很好,那么为什么不把detection问题转化为分类问题呢?RBG的RCNN[2]使用region proposal(具体用的是Selective Search Koen van de Sande: Segmentation as Selective Search for Object Recognition[3])来得到有可能得到是object的若干(大概10^3量级)图像局部区域,然后把这些区域分别输入到CNN中,得到区域的feature,再在feature上加上分类器,判断feature对应的区域是属于具体某类对象还是背景。当然,RBG还用了区域对应的feature做了针对boundingbox的回归,用来修正预测的boundingbox的位置。RCNN在VOC2007上的MAP是58%左右。

算法介绍
RCNN
RCNN算法主要思想是:1、分割候选区使用贪心算法递归地将相似的区域合并成较大的区域。使用生成的区域生成最终的候选区域建议。R是region的缩写,意为对图像进行局部区域的处理。 该文[2]的主要亮点在于:一、利用的region proposals对物体探测中位置信息的精确处理,二、利用监督式预训练和主域特殊化的微调方法,代替了传统的非监督式预训练和监督式微调,使得MAP(mean average precision )得到大幅提升。这里CNN的作用是作为对应的每一个区域块的特征提取,传入svm进行分类。如下:
RCNN问题:RCNN存在着重复计算的问题(proposal的region有几千个,多数都是互相重叠,重叠部分会被多次重复提取feature),于是RBG借鉴Kaiming He的SPP-NET[3]的思路单枪匹马搞出了Fast-RCNN[4],跟RCNN最大区别就是Fast-RCNN将proposal的region映射到CNN的最后一层conv layer的feature map上,这样一张图片只需要提取一次feature,大大提高了速度,也由于流程的整合以及其他原因,在VOC2007上的MAP也提高到了68%。

Fast-RCNN
首先通过选择性搜索,对待检测的图片进行搜索出2000个候选窗口。这一步和R-CNN一样。 特征提取阶段。这一步就是和R-CNN最大的区别了,这一步骤的具体操作如下:把整张待检测的图片,输入CNN中,进行一次性特征提取,得到feature maps,然后在feature maps中找到各个候选框的区域,再对各个候选框采用金字塔空间池化,提取出固定长度的特征向量。而R-CNN输入的是每个候选框,然后在进入CNN,因为SPP-Net只需要一次对整张图片进行特征提取,速度会大大提升。最后一步也是和R-CNN一样,采用SVM算法进行特征向量分类识别。

每个RoI被汇集成一个固定大小的特征图,然后由全连接层(FCs)映射到一个特征向量。该网络每个ROI有两个输出向量:软最大概率和每类包围盒回归偏移量。RoI池输出的维度实际上并不取决于输入功能图的大小,也不取决于区域建议的大小。它完全取决于我们把提案分成多少个部分。

缺陷:基于图形金字塔和滤波器提取,也会产生大量的候选框,时间性能较差。而且获取对象框的过程不是通过自学习获取的,而是通过检测或者图形处理手段获取的,所以会导致端到端问题[5],也就是学习不是从输入就开始的。消除选择性搜索算法,让网络学习区域建议的目标检测算法成为目标。

FasterRCNN
该方法使用一个独立的网络来预测区域建议,而不是在特征图上使用选择性搜索算法来识别区域建议[6]。该独立网络为一个全卷积网络,全卷积网络被用来解决语义分割问题。我们可以把语义分割看作是像素级的图像分类。例如,在一个有很多车的图像中,分割会将所有的对象标记为car对象。然而,一个单独的模型类,称为实例分割,能够标记图像中出现对象的单独实例。这种分割在计算物体数量的应用中非常有用,比如计算商场的人流量。Lonjong等发表在CVPR2015的论文提出了全卷积网络(FCN)[7]进行像素级的分类从而高效的解决了语义级别的图像分割(semantic segmentation)问题。全卷积网络(FCNss)因其架构而得名,该架构仅由局部连接层构建,如卷积、池和上采样。注意,在这种体系结构中没有使用稠密层(全连接层)
实现原理以及细节

锚的概念:
锚在Faster R-CNN [6]中扮演着重要角色。 锚是一个盒子。 在Faster R-CNN 的默认配置中,图像位置有9个锚点。 下图显示了尺寸为(600,800)图像的位置(320,320)的9个锚点,锚点选取过程是由IOU进行的,IOU 常被用于评估 HOG + Linear SVM object detectors 和 Convolutional Neural Network detectors (R-CNN, Faster R-CNN, YOLO, 等) 算法模型的检测性能. 不过,IoU 计算与得到检测结果的具体算法无关。IoU 是一种简单的评价度量,其可以用于评估任何输出为 bounding box 的模型算法的性能。

RPN 会给出多个提案,我们想要标记的锚有较高的重叠与地面真相框作为前景,与较低的重叠作为背景区分前景背景。RPN的输出为:1、前景或背景、前景暗示可能在盒子里的是一个前景对象
2、对象可能不在图像中间,因此RPN估计一个增量(x、y、宽度、高度变化的百分比)来改进锚盒以更好地适应对象。这个过程会产生一系列提案,并根据IOU函数值给提案进行排序打分。

RPN的排序过程
在这个阶段,我们会根据得分对前N个提案进行排序。在论文中使用了N=2000,但是有可能将这个数字降低到50,仍然可以得到很好的结果。仅使用RPN的优点之一是在训练和预测方面都能提高速度。由于RPN是一个非常简单的网络,只使用卷积层,所以预测时间比使用分类基网络更快。

RPN输出结果
RPN并不关心它是什么类型的对象,只关心它实际上看起来像一个对象(而不是背景)。我们将使用这个客观评分来过滤掉第二阶段的错误预测。第二个输出是边界框回归,用于调整锚点以更好地适应它所预测的对象。RPN模块告诉快速R-CNN模块去哪里看,如下图所示,经过卷积网络后得到特征图,这份特征图被rpn和后续的分类回归网络共享计算结果。RPN输出之后,经过fast-RCNN的流程最后输出结果为:给出框的回归偏移、给出框对象的标签分类。这一步是先输出给定对象框的标签预测,然后再加神经网络做回归框位置的调整。

Mask-RCNN
同样的作者通过Mask R-CNN[8] 对其前身Faster R-CNN[6]进行了扩展。Mask R-CNN通过实例分割等扩展了fasterRCNN。两阶段的过程是:第一阶段扫描图像并生成建议(可能包含对象的区域)。第二阶段对提案进行分类,生成包围框和蒙版。

主要结构:
Backbone:(standard convolutional neural network (typically, ResNet50 or ResNet101)早期层检测低层特征(边缘和角落),后期层依次检测高层特征(汽车、人、天空)。讲这些转换成feature map,为以下层提供输入,并且使用了残差网络作为全卷积神经网络的实现模型。残差网络[9]主要解决的是深度学习神经网络的深度问题。即随着网络层次的增加,准确率下降。

同时,mask-rcnn[8] 采用特征金字塔解决尺度问题。特征金字塔网络(FPN)[10]是由与Mask R-CNN相同的作者提出的一种扩展,可以更好地表示多尺度的对象。FPN通过添加第二个金字塔来改进标准的特征提取金字塔,该金字塔从第一个金字塔获取高级特征并将其传递到较低的层。通过这样做,它允许每个级别的特性同时访问较低级别和较高级别的特性。
掩码分支:
这就比以前的faster-RCNN更好点,掩码分支是一个卷积网络,它接受ROI分类器选择的正区域并为其生成掩码。生成的掩模是低分辨率的:28x28像素。但是它们是软掩码,用浮点数表示,因此它们比二进制掩码包含更多的细节、我们将预测的掩码放大到ROI边界框的大小,这样就得到了最终的掩码,每个对象一个掩码。

GRID-RCNN

传统 regression 分支一般由全连接层来预测 4 个边界框相关的调整量,[11]Grid R-CNN 中采用几个卷积层去预测几个 grid point 的 heat map,使用了像 CornerNet 这样基于角点的检测器。[12]CornerNet认为Two-stage目标检测最明显的缺点是 Region Proposal 阶段需要提取的anchor boxes。(1)、提取的anchor boxes数量较多,比如DSSD使用40k, RetinaNet使用100k,anchor boxes众多造成anchor boxes征服样本均衡。(2)、anchor boxes需要调整很多超参数,比如anchor boxes数量、尺寸、比率,影响模型的训练和推断速率。
文中舍弃传统的 anchor boxes思路,提出CornerNet模型预测目标边界框的左上角和右下角一对顶点,既使用单一卷积模型生成热点图和连接矢量:所有目标的左上角和所有目标的右下角热点图,每个顶点的连接矢量(embedding vector)。
为什么这样做对提高检索框速度是有效的?
1) 目标定位框的中心难以确定,和边界框的4条边相关,但是每个顶点只与边界框的两条边相关,所以corner 更容易提取。
2) 顶点更有效提供离散的边界空间,实用O(wh)顶点可以表示O(w2h2) anchor boxes。
Gridrcnn中特征图上每个像素都是用 logistic regression 来训练的。在测试的时候,每个 heat map 上选最高概率的点,按照比例关系映射回原图,然后每条边上有三个点,做一个这个样子的概率平均来得到四条边。
grid-RCNN-plugs

原版的Grid R-CNN对Faster RCNN做了很多精度上的优化,但是速度却慢于Faster RCNN,于是作者就其进行改进并进行了开源,开源地址见开头!Res50+FPN作为主干网络的Grid R-CNN Plus[13]达到了40.4%的AP,相比Faster RCNN,精度增长了3.0%,速度却几乎相同。

结论总结:
基于区域的目标检测算法,虽然是对于边框检测精度上有较大提高,但是在运行效率上和单阶段的算法还是有差距,这也是RCCN及其家族一直的方向所在,从解决候选框问题到端到端的训练再到解决网络深度和精度问题引入残差神经网络、和为了解决提高精度对于全卷积神经网络的加入,在进行目标检测RCNN发展过程中不断引人别的领域研究方法的过程。不断发展。目标检测一直是计算机视觉的主题之一,随着科技发展硬件设施、和各种领域研究突破方法的引入。基于二阶段的目标检测算法势必成为目标检测的趋势。因为可以引入模块,进行阶段训练,所以基于二阶段的目标检测提供的研究落脚点很宽泛。也更有价值。未来通过分布式方法,进行目标检测算法的优化,也有了根本

[1] C. Szegedy, A. Toshev, en D. Erhan, “Deep Neural Networks for Object Detection”, in Advances in Neural Information Processing Systems 26, C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani, en K. Q. Weinberger, Reds Curran Associates, Inc., 2013, bll 2553–2561.
[2] R. Girshick, J. Donahue, T. Darrell, en J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation”, ArXiv13112524 Cs, Okt 2014.
[3] K. H. et al, “Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition | Kopernio”. [Online]. Available at: https://kopernio.com/viewer?doi=10.1007/978-3-319-10578-9_23&token=WzExMjA1NDIsIjEwLjEwMDcvOTc4LTMtMzE5LTEwNTc4LTlfMjMiXQ.8yC6rRcI4qMA6NZUs_D3O-cMZew. [Toegang verkry: 09-Des-2019].
[4] R. Girshick, “Fast R-CNN”, ArXiv150408083 Cs, Sep 2015.
[5] M. Bojarski et al., “End to End Learning for Self-Driving Cars”, ArXiv160407316 Cs, Apr 2016.
[6] S. Ren, K. He, R. Girshick, en J. Sun, “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks”, ArXiv150601497 Cs, Jan 2016.
[7] J. Long, E. Shelhamer, en T. Darrell, “Fully Convolutional Networks for Semantic Segmentation”, bl 10.
[8] K. He, G. Gkioxari, P. Dollár, en R. Girshick, “Mask R-CNN”, ArXiv170306870 Cs, Jan 2018.
[9] K. He, X. Zhang, S. Ren, en J. Sun, “Deep Residual Learning for Image Recognition”, in 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, NV, USA, 2016, bll 770–778.
[10] T.-Y. Lin, P. Dollar, R. Girshick, K. He, B. Hariharan, en S. Belongie, “Feature Pyramid Networks for Object Detection”, in 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, HI, 2017, bll 936–944.
[11] X. Lu, B. Li, Y. Yue, Q. Li, en J. Yan, “Grid R-CNN”, ArXiv181112030 Cs, Nov 2018.
[12] H. Law en J. Deng, “CornerNet: Detecting Objects as Paired Keypoints”, bl 17.
[13] X. Lu, B. Li, Y. Yue, Q. Li, en J. Yan, “Grid R-CNN Plus: Faster and Better”, ArXiv190605688 Cs, Jun 2019.

基于区域的二阶段算法思想和理解综述

标签:高度   overflow   ssi   font   rev   导致   proposal   time   learning   

原文地址:https://www.cnblogs.com/lishikai/p/12032976.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!