机器视觉目标检测文献回顾及综述

为读者正确理解意思,目录用英文表示,正文为中文。更多的关于计算机视觉的综述可查阅https://github.com/senbinyu/Computer_Vision_Literatures

目录表

在这里插入图片描述

图像分类旨在识别给定图像中对象的语义类别。 对象检测不仅可以识别对象类别,还可以通过边界框预测每个对象的位置。

以下是一些综述文章的集合,以及一些有关对象检测的经典和最新研究文章。 下图显示了经典研究成果的基本时间表。
在这里插入图片描述

1. Review papers

2. Detection paradigms

大致分两类: two-stage vs one stage detectors

Two-stageone-stage
1.生成一组稀疏的proposal; 2.生成提案的特征向量由深度卷积神经网络编码,然后进行对象类别预测将图像上的所有位置都视为潜在对象,并尝试将每个感兴趣的区域分类为背景或目标对象
低推断速度更快的推断速度
精度更高相对差的精度

2.1 Two-stage detectors

Proposal 生成 + 做出推断.
在这里插入图片描述

  • R-CNN, Girshick et al. in 2014
    开拓性的两级物体检测器。 与以前的最新技术(在Pascal VOC2010上具有40.4%mAP的SegDPM)相比,R-CNN显着提高了检测性能,并获得了53.7%的mAP。
  1. Region of interest (ROI),一张图像生成1K~2K个候选区域 (采用Selective Search 方法)
  2. feature extraction, 对每个候选区域,使用深度卷积网络提取特征 (CNN)
  3. region classification,特征送入每一类的SVM 分类器,判别是否属于该类
  4. 在和3平行的另一条支路上,使用回归器精细修正候选框位置
    R-CNN的权重来自ImageNet,而R-CNN的权重否定了大量的简单的大物体,这有助于提高学习速度并减少误报。 但是,选择性搜索依赖于低阶视觉信息,因此很难在复杂的环境中生成高质量的建议。 每个提案的特征分别由深度卷积网络提取(即不共享计算),从而导致大量重复的计算,计算效率低。

Refer to paper Rich feature hierarchies for accurate object detection and semantic segmentation

  • SPP-Net, He et al., 2015
    SPPNet理论上可以改进任何CNN网络,通过空间金字塔池化,使得CNN的特征不再是单一尺度的。但是SPPNet更适用于处理目标检测问题,首先是网络可以介绍任意大小的输入,也就是说能够很方便地多尺寸训练。其次是空间金字塔池化能够对于任意大小的输入产生固定的输出,这样使得一幅图片的多个region proposal提取一次特征成为可能。虽然能比RCNN取得更好的效果,但是SPP层无法将梯度反向传播给卷积核,参数无法更新,由此也限制了其学习能力。

Refer to paper Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

  • Fast R-CNN, Girshick, 2015
    使用ROI合并层从整个图像中提取区域特征。 ROI就像SPP的特例一样,它仅需一个尺度N * N,并且可以反向传播到卷积内核。 特征提取后,将特征向量送入一系列完全连接的层,然后进行分类和回归分支。 在Fast RCNN中,特征提取,区域分类和边界框回归步骤都可以端到端进行优化,而无需额外的缓存空间来存储特征(与SPP Net不同),因此快速R-CNN的检测精度比R-CNN和SPP-net高得多,并且具有更好的训练和推断速度。

Refer to paper Fast R-CNN

  • Faster-RCNN, Ren et al. 2017
    为了避免选择性搜索中的低阶视觉信息误导,Faster-RCNN采用了一种新颖的提案生成器:区域提案网络(RPN)来生成提案。 网络使用n×n滑动窗口在特征图上滑动,并为每个位置生成特征向量。 然后将特征向量馈入两个同级输出分支,即bbox的分类和回归。 然后将这些结果输入到最终层中,以进行实际的对象分类和边界框定位。 更快的R-CNN计算输入图像的特征图和特征图上的提取区域特征,它们在不同区域之间共享特征提取计算。 但是,计算没有在区域分类步骤中共享,在该步骤中,每个特征向量仍需要经过一系列FC各层,而且这多余的FC层计算量又很大,使得速度暂时无法提高。

Refer to paper Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

  • R-FCN, Dai et al., 2016
    为了弥补在Faster R-CNN中不能在区域分类步骤中共享计算的缺点,提出了基于区域的全卷积网络。 R-FCN生成了一个位置敏感度得分图,该图对不同类别的相对位置信息进行了编码,并使用位置敏感ROI池化层(PSROI Pooling)通过对目标区域的每个相对位置进行编码来提取空间感知区域特征。 在pooling前做卷积,由于ROI pooling会丢失位置信息,故在pooling前加入位置信息,即指定不同score map是负责检测目标的不同位置。pooling后把不同位置得到的score map进行组合就能复现原来的位置信息。

Refer to paper R-fcn: Object detection via region-based fully convolutional networks

  • Mask-RCNN, He et al., 2017
    Mask-RCNN主要用于解决分割任务,并具有目标检测能力。具体可参见:https://github.com/senbinyu/Computer_Vision_Literatures/tree/master/3_segmentation

Refer to paper Mask R-CNN

2.2 One-stage detectors

One-stage detectors 通常将图像上的所有位置都视为潜在对象,并尝试将每个感兴趣的区域分类为背景或目标对象。

  • OverFeat, Sermanet et al., 2013
  1. 物体检测可以看作是“多区域分类”问题。 最后一个FC层被替换为1 * 1 conv,以允许任意输入。
  2. 分类网络在输入的每个区域上输出预测网格,以指示对象的存在。 在识别出对象之后,基于分类器检测多尺度对象的相同DCNN特征,学习了边界框回归器来优化预测区域,将输入图像调整大小为多个尺度,并将其输入到网络中。 最后,将所有尺度的预测合并在一起。
    end-to-end学习,只需将最后的FC层改为1 * 1 conv层,即可输出想要的,预测速度非常快,将FCN、offset pooling结合了起来,提高分类任务的精度,同时也让读者看到了CNN特征提取的强大用处。

Refer to paper OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

下图显示了用于对象检测的几种经典的one-stage 模型
在这里插入图片描述

  • YOLO series, Redmon et al., 2016

  • v1, 图像分为7 * 7个网格,每个网格都有几个预测框(v1中只有2个)。 对于每个单元格,进行的预测包括以下信息:该位置是否有对象,边界框坐标和大小(宽度和高度)以及对象的类别。 使用NMS删除同一对象上的重叠bbox。 YOLO很快,但是召回率很低。

  • v2, YOLOv2 借鉴了很多其它目标检测方法的一些技巧,如 Faster R-CNN 的 anchor boxes, SSD 中的多尺度检测。YOLOv2 可以预测 13x13x5=845 个边界框,模型的召回率由原来的 81% 提升到 88%,mAP 由原来的 69.5% 降低到 69.2%. 召回率提升了 7%,准确率下降了 0.3%。除此之外,YOLOv2 在网络设计上做了很多 tricks, 使它能在保证速度的同时提高检测准确率,Multi-Scale Training 更使得同一个模型适应不同大小的输入,从而可以在速度和精度上进行自由权衡。
    在这里插入图片描述

  • v3, + darknet-53. use k-means 聚类了9 anchors,更快.
    在这里插入图片描述

  • v4 + 增强策略,将许多技巧组合在一起,并获得有效且准确的yolov4. Bag of freebies + Bag of specials + (CSPDarkNet53 + SPP + PANet(path-aggregation neck) + YOLOv3-head). Recommand

Refer to paper v1 You Only Look Once: Unified, Real-Time Object Detection
v2 YOLO9000: Better, faster, stronger
v3 YOLOv3: An Incremental Improvement
v4 Alexey Bochkovskiy et al., YOLOv4: Optimal Speed and Accuracy of Object Detection

  • SSD series, SingleShot Mulibox Detector, Liu et al., 2016
  1. With anchors, 可以克服yolov1的问题:不能准确定位,召回率低。
  2. 提取不同的图层特征图以进行预测,因为浅层具有详细的位置信息,有利于检测小物体。 在原始的主干架构中添加了一些额外的卷积特征图,以检测大物体并增加感受野。 通过合并来自不同特征图的所有检测结果来做出最终预测。
  3. 简单负样本很多,会对loss贡献很大,导致训练无法很好进行,由此要多引入难负样本。SSD采用了hard negative mining,就是对负样本进行抽样,抽样时按照置信度误差(预测背景的置信度越小,误差越大)进行降序排列,选取误差的较大的top-k作为训练的负样本,以保证正负样本比例接近1:3。

Refer to paper Ssd: Single shot multibox detector

  • RetinaNet, Lin et al., 2017
  1. 为了克服一阶段检测中的类不平衡问题,提出了一种聚焦损耗为 F L ( p t ) = − ( 1 − p t ) γ l o g ( p t ) FL(pt)=-(1-pt)^ \gamma log(pt) FL(pt)=(1pt)γlog(pt)的RetinaNet。 当 γ \gamma γ大于0时,容易得到的负样本(pt接近1)的损失将呈指数下降。 RetinaNet使用聚焦损失抑制了简单的负样本的梯度,而不是简单地丢弃它们。 他们提出的焦点损失大大超过了天真的硬性负面采矿策略。 Focal loss可以将那些easy negative的loss呈指数级下降,所以对训练有影响的就是那些hard negative samples了,可以显著提高训练质量.
  2. 多尺度的FPN有助于feature融合和检测

Refer to paper Focal Loss for Dense Object Detection

前面是anchor-based方法, 下面是两个anchor-free, keypoints-based模型: CornerNet and centerNet

  • CornerNet, Law et al., 2018
  1. 其他one-stage detectors 的anchors数量巨大,其中大多数是无用的。 anchor的使用还引入了超参数。
  2. 因此,cornerNet是一个无锚anchor-free框架,其目标是预测边界框的关键点。 使用一对角(左上角和右下角)替换锚点。
  3. 新设计的corner pooling layer, 可以正确匹配属于同一对象的关键点,从而获得公共基准上的state-of-art结果。 使用要素贴图进行边角合并,不能使用整个iamge对某种feature map进行列和行的分别max pooling,不能对整张图片的整行或整列进行max pooling,会导致漏检或误检。

Refer to paper Cornernet: Detecting objects as paired keypoints

  • CenterNet, Zhou et al., 2019, University of Texas
    CenterNet在MS COCO数据集上实现了最佳的速度精度折衷,在142 FPS时AP达28.1%,在52 FPS时AP达37.4%,在1.4 FPS时进行多尺度测试时达45.1%。
  1. anchor free, 预测中心 (x, y) 和偏移(dx, dy)
  2. 下采样系数为4, 未使用FPN,相比于用了FPN的SSD下采样为16。
  3. 关键点检测后无需组合分组阶段(cornerNet需求),这会显着降低每种算法的速度。无法解决物体靠很近的情况,如果下采样后,中心点几乎重合,则无法预测。

Refer to paper Objects as points

这是一个不属于基于锚点或基于关键点的模型的网络AZNet,它会自动关注高关注区域。

  • AZNet, Lu et al., 2016
    AZnet采用了一种搜索策略,将计算资源自适应地定向到可能包含对象的子区域。 AZnet预测每个区域两个值:缩放指示器和邻接分数。 缩放指示器确定是否进一步划分此区域,该区域可能包含较小的对象,并且表示其客观性的邻接分数. 此模型不常用

Refer to paper Adaptive object detection using adjacency and zoom prediction

3. Feature representing (feature extraction and fusion)

3.1 multi-scale feature learning

在单个特征图上,检测大范围比例和宽高比的对象非常具有挑战性。 具体来说,具有丰富空间信息的浅层特征具有更高的分辨率和较小的感受野,因此更适合于检测小物体,而深层的语义丰富的特征对照明,平移更具有鲁棒性,并且具有较大的感受野分辨率,并且更适合于检测大物体。简单的说就是:浅层包含更多位置信息,更小的视野,适合小物体检测;深层包含更丰富的语义信息,更大的视野,更适合大物体检测。

多尺度特征学习分为四类

  1. 图像金字塔:一个直观的想法是将输入图像的大小调整为多个不同的比例(图像金字塔),并训练多个检测器,每个检测器负责一定范围的比例。 辛格等人[1]认为,与学习带有图像金字塔的比例相关探测器相比,使用单个比例鲁棒检测器来处理所有比例对象要困难得多。 他们提出了一种新颖的图像金字塔尺度归一化框架(SNIP),该框架训练了多个尺度相关的探测器,并且每个探测器都负责一定的尺度对象。不同尺寸的图片喂入到模型中进行训练,以来适应检测时需要的不同尺度,Signh认为单个尺度的不如多个尺度的训练
  2. 预测金字塔:用于SSD中,预测是从多层进行的,其中每一层负责一定比例的对象。 这里的就相当于输入一张图,但在CNN过程中得到feature maps分别进行预测,最后再总结统计。
  3. 集成特征:另一种方法是通过组合多层中的特征来构建单个特征图。通过融合空间丰富的浅层特征和语义丰富的深层特征,新构造的特征包含丰富的信息,从而可以检测不同比例的物体。 贝尔等[2]提出了内外网络(ION),该网络通过ROI池[3]从不同的图层裁剪区域特征,并将这些多尺度区域特征结合起来进行最终预测。和2中不同的是,这是先融合再进行预测,正好反过来
  4. 特征金字塔:特征金字塔网络(FPN)[3]结合了集成特征和预测金字塔的优势,以自上而下的方式将不同比例的特征与横向连接集成在一起,以构建一组比例不变的特征图,以及多个比例- 在这些特征金字塔上学习了相关的分类器。 具体来说,使用深层语义丰富的功能来增强浅层空间丰富的功能。 这些自上而下的和横向的特征通过逐元素求和或串联而组合在一起,而小的卷积减小了尺寸。 FPN在原先从浅层到深层基础上,反向添加一个从深层到浅层的feature map,由此可以用深层的语义特征来加强浅层的空间特征。

[1] Singh et al., 2018, An analysis of scale invariance in object detection snip
[2] Bell et al., 2016, Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks
[3] Lin et al., 2017, Feature Pyramid Networks for Object Detection

在这里插入图片描述

3.2 Region feature encoding

先前的多尺度特征学习适用于两级和一级检测器。 区域特征编码是两阶段检测器的重要步骤。 在快速RCNN中,有一个ROI池化层,用于对区域特征进行编码。 ROI合并将每个区域划分为n×n个单元(例如默认为7×7个单元),只有前馈阶段中信号最大的神经元才会前进。 ROI合并从下采样的特征图中提取的特征,因此难以处理小对象。 在R-FCN中,为了增强下采样区域特征的空间信息,提出了保留下采样特征的相对空间信息的位置敏感ROI Pooing(PSROI Pooling)。在Fast RCNN在的ROI Pooling层就是用于region feature encoding的,R-FCN中则进一步将低层位置信息结合,产生位置敏感ROI pooling层。

3.3 Contextual reasoning

了解物体与周围环境之间的关系可以提高探测器了解场景的能力。 有些作品[4]甚至已经展示在某些情况下,上下文信息甚至可能会损害检测性能。 结合上下语境有助于推断,但有工作指出在某些情况下甚至会影响推断。

  1. 全局上下文推理是指从整个图像中的上下文中学习。 DeepIDNet [5]为每个图像学习了一个分类分数,该分数被用作与目标检测结果相联系的上下文特征。
    2.区域上下文推理对周围区域的上下文信息进行编码,并学习对象与其周围区域之间的交互。 Structure Inference Net(SIN)[6]通过考虑场景上下文信息和对象关系将对象检测公式化为图形推断问题。 在SIN中,每个对象都被视为图节点,不同对象之间的关系被视为图边。

3.4 Deformable feature learning

一个好的检测器应该对物体的非刚性变形具有鲁棒性。 DeepIDNet [5]开发了一个可感知变形的池层,以对不同对象类别之间的变形信息进行编码。

[4] Cheng et al., 2018, Revisiting rcnn: On awakening the classification power of faster rcnn
[5] Ouyang et al., 2015, Deepid-net: Deformable deep convolutional neural networks for object detection
[6] Liu et al., 2018, Structure inference net: Object detection using scene-level context and instance-level relationships

4 Applications

4.1 Face detection

人脸检测是人类的真实应用程序,例如人脸验证,人脸对齐和人脸识别。 人脸检测与通用检测之间存在一些差异:人脸检测中对象的缩放范围要大得多; 面部对象包含强大的结构信息,并且在面部检测中只有一种目标类别。

在深度学习时代之前,具有Haar功能的AdaBoost可以进行人脸检测,并以较高的实时预测速度获得了出色的性能。(OpenCV具有该教程。import haarcascade_frontalface_default.xml)

当前基于深度学习的面部检测算法主要从通用检测框架(例如Fast R-CNN和SSD)扩展而来。

  1. 多尺度特征处理:为了处理极端尺度变化,先前讨论的多尺度特征学习方法已广泛用于面部检测。 Sun等。 [7]提出了一种基于快速R-CNN的框架,该框架集成了用于预测的多尺度特征,并将所得到的检测边界框转换为椭圆形,因为人脸的区域比矩形更椭圆。 张等。 文献[8]提出了一种单阶段的S3FD,它可以在不同的特征图上找到人脸,从而在较大范围内检测人脸。 他们对较大的特征图进行了预测,以捕获小规模的面部信息。 值得注意的是,根据经验接受领域精心设计了一组锚,因此可以更好地匹配面部。 单阶段多阶段的均利用了多尺度融合的方法进行人脸检测,以减轻人脸检测中尺度跨越大的问题。
  2. 上下文信息:Zhang等[9]提出了基于ResNet的FDNet,它具有较大的可变形卷积核来捕获图像上下文。 Zhu等 [10]提出了一种基于上下文的多尺度区域卷积神经网络(CMS-RCNN),其中在区域提议和ROI检测中将多尺度信息进行分组,以处理各种尺度范围的人脸。 另外,训练检测器中还考虑了面部周围的上下文信息。语义信息获取,通过deformable的卷积核,和使用CMS-RCNN

[7] Sun et al., 2018, Face detection using deep learning: An improved faster RCNN approach
[8] Zhang et al., 2017, S3fd: Single shot scale-invariant face detector
[9] Zhang et al., 2018, Face detection using improved faster rcnn
[10] Zhu et al., 2017, Cms-rcnn: contextual multi-scale region-based cnn for unconstrained face detection

4.2 Pedestrain detection

行人检测的某些属性与普通对象检测不同:(i)行人对象是结构良好的对象,其纵横比几乎固定(约为1.5),但它们也存在很大的比例范围; (ii)行人检测是现实世界中的应用,因此通常会出现诸如拥挤,遮挡和模糊等挑战; (iii)由于以下原因,行人检测中有更多坚硬的阴性样本(例如交通信号灯,邮箱等)复杂的环境。行人检测有长宽比较为固定,但也存在很多难点,像遮挡,密集,模糊等,同时有很多难负例存在于其复杂语义环境中

在深度学习时代,Angelova等人[11]提出了一种使用级联的深度卷积网络的实时行人检测框架。在他们的工作中,一个小模型拒绝了许多容易被否定的proposal,然后通过一个大型的深层网络对其余的难proposal进行了分类。此外,Yang等。 [12]在快速RCNN中插入了Scale Dependent Pooling (SDP) and Cascaded Rejection Classifiers (CRC),以处理不同比例的行人。根据身高,在这种情况下,SDP会从合适的比例尺特征图中提取区域特征,而CRC则拒绝浅层中的简单负样本。 Wang等[13]提出了一种新颖的Repulsion Loss 来检测人群中的行人。他们认为,在人群中检测到行人会使其对NMS门槛非常敏感,导致更多的假阴性和遗失object。提议的Repulsion Loss 将proposal归入其目标对象,但也将其从其他对象及其目标proposal中区分开。所提出的模型都是为了解决上述提到的尺度跨越大,密集,难负例多这些问题。

为了解决遮挡问题,提出了基于部件的模型,该模型学习了一系列零件检测器并整合了部件检测器的结果以对对象进行定位和分类。 田等[14]提出了由多个基于零件的检测器组成的DeepParts。 在训练过程中,重要的行人部位会自动从组成人体部分(不同比例)的部位池中选择出来,并且对于每个选定的部位,都学会了检测器来处理遮挡物。 为了整合基于部件的模型的不准确分数,Ouyang和Wang [15]提出了一个框架,该框架在训练模型时将可见零件建模为隐藏变量。 在他们的工作中,重叠部分的可见关系是通过区分性深层模型学习的,而不是手动定义甚至是独立的。

[11] Angelova et al., 2015, Real-time pedestrian detection with deep network cascades
[12] Yang et al., 2016, Exploit all the layers: Fast and accurate cnn object detector with scale dependent pooling and cascaded rejection classifiers
[13] Wang et al., 2018, Face detection using improved faster rcnn
[14] Tian et al., 2015, Deep learning strong parts for pedestrian detection
[15] Ouyang and Wang, 2012, A discriminative deep model for pedestrian detection with occlusion handling

4.3 Text detection

文本检测面临一些挑战:不同的字体和语言,文本旋转和透视变形,密集的文本定位,残破和模糊的字符。

近年来,研究人员更加关注文本定位问题,而不是识别问题。 最近提出了两组方法。 第一组方法将文本检测作为通用对象检测的特例[16]。 这些方法具有统一的检测框架,但是对于检测具有方向或高宽比的文本效果不佳。 第二组方法将文本检测框架化为图像分割问题[17,18]。 这些方法的优点是对文本的形状和方向没有特殊限制,但是缺点是基于分割结果很难区分密集排列的文本行。

对于文本旋转和透视图更改:解决此问题的最常见方法是在锚框和RoI池层中引入与旋转和透视图更改关联的其他参数[19]。

改善密集排列的文本检测:基于分段的方法在检测密集排列的文本方面显示出更多优势。 区分相邻文本行中,最近提出了两组解决方案。 第一个是“段和链接”,其中“段”是指角色热图,而“链接”是指两个相邻段之间的连接,指示它们属于同一词或同一行文本[16]。 第二组是引入额外的角/边界检测任务,以帮助分离密集排列的文本,其中一组角或封闭边界对应于单个文本行[17]。

改善残破和模糊文本的检测:处理残破和模糊文本的最新想法是使用单词级别[20]识别和句子级别识别[21]。 为了处理具有不同字体的文本,最有效的方法是使用合成样本进行训练[20]。

[16] He et al., 2017, Single shot text detector with regional attention
[17] Liu et al., 2017, Deep matching prior network: Toward tighter multi-oriented text detection
[18] Wu et al., 2017, Self-organized text detection with minimal post-processing via border learning
[19] Ma et al., 2018, Arbitrary-oriented scene text detection via rotation proposals
[20] Jaderberg et al., 2014, Synthetic data and artificial neural networks for natural scene text recognition
[21] Wojna et al., 2017, Attention-based extraction of structured information from street view imagery

4.4 Traffic light detection (autonomous driving)

交通信号灯检测与普通物体检测有所不同:目标,即交通信号灯通常很小。 Lu等[22]提出了一种基于注意力模型的检测框架,以解决在高分辨率图像中检测小物体的问题。 它们的框架比基线RCNN的性能更快,特别是在检测面积小于322像素的小目标时。 对抗训练已被用来改善复杂交通环境下对小物体的探测[23]。 感知GAN通过利用反复更新的生成器网络和鉴别器网络来生成小对象的超分辨表示,以提高检测性能。 在Faster-RCNN基础上,加入attention机制用于提取特别小的交通灯(有时候只有几个像素),同样也有用对抗的形式去加强检测能力

[22] Traffic signal detection and classification in street views using an attention model
[23] Perceptual generative adversarial networks for small object detection

更多的关于计算机视觉的综述概览可查阅https://github.com/senbinyu/Computer_Vision_Literatures

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值