论文阅读 Sinet: A scale-insensitive convolutional neural network for fast vehicle detection

文章目录

    • Sinet: A scale-insensitive convolutional neural network for fast vehicle detection
      • Abstract
      • I. INTRODUCTION
      • II. RELATED WORKS ON VEHICLE DETECTION
      • III. WHY CURRENT CNNS ARE SCALE-SENSITIVE
        • A. Structure Distortion Caused by RoI Pooling
        • B. Intra-class Distance Caused by Scale Variations
        • C. Existing Solutions and Their Shortcomings
      • IV. SCALE-INSENSITIVE NETWORK
        • A. Overview
        • B. Context-aware RoI Pooling
        • C. Multi-branch Decision Network
        • D. Implementation Details
      • V. EXPERIMENTS
      • VI. CONCLUSION

Sinet: A scale-insensitive convolutional neural network for fast vehicle detection

Abstract

基于视觉的车辆检测方法近年来随着深度卷积神经网络(CNN)的发展取得了令人难以置信的成功。然而,现有的基于CNN的算法在目标检测任务中存在一个问题,即卷积特征对尺度敏感,而交通图像和视频中包含具有大尺度变化的车辆。在本文中,我们深入探讨了尺度敏感性的源头,并揭示了两个关键问题:1)现有的RoI池化破坏了小尺度目标的结构;2)对于大尺度变化的 intra-class distance 超出了单个网络的表示能力。基于这些发现,我们提出了一种用于快速检测具有大尺度变化车辆的尺度无关卷积神经网络(SINet)。首先,我们提出了一种上下文感知的RoI池化方法,以保持小尺度目标的上下文信息和原始结构。其次,我们提出了一个多分支决策网络,以最小化特征的intra-class距离。这些轻量级技术不会增加额外的时间复杂性,但可以显著提高检测准确性。所提出的技术可以与任何深度网络架构结合使用,并且可以进行端到端训练。我们的SINet在KITTI基准测试和一个包含大尺度变化和极小目标的新高速公路数据集上,在准确性和速度(高达37 FPS)方面均达到了最先进的性能水平。

I. INTRODUCTION

从图像或视频中自动检测车辆对于许多智能交通系统而言是一个基本前提。例如,从车内视频(图1)中检测车辆对于自动驾驶系统的发展至关重要,而从监控视频(图2)中检测车辆是智能交通管理系统的实施基础。一些具有挑战性的基准已经被提出,用于评估和比较各种检测算法。另一方面,近年来,深度卷积神经网络(CNN)在车辆检测以及其他各种目标检测任务上取得了令人难以置信的成功。然而,将CNN应用于车辆检测时,主要挑战之一是传统CNN对尺度敏感,而车内视频或交通监控视频中包含具有大尺度变化的车辆是相当常见的(见图1(a)中的车辆和图2的输入)。造成这种尺度敏感问题的潜在原因是,CNN很难对所有尺度都以最佳置信度做出响应。
论文阅读 Sinet: A scale-insensitive convolutional neural network for fast vehicle detection_第1张图片

现有的基于CNN的目标检测算法试图通过利用具有多个分辨率的输入图像或融合CNN的多尺度特征图来使网络适应不同的尺度。然而,这些方法引入了昂贵的计算开销,因此仍然无法实现快速车辆检测,而这对于自动驾驶系统、实时监控和预测系统是必要的。

与仅仅添加额外操作不同,我们研究了检测网络本身,并仔细审查了这种尺度敏感问题的根本原因。我们观察到两个主要障碍。首先,小区域的不足和/或不精确的特征会导致无法检测到小物体(例如,图1(b)中的红色框)。特别是,常用的RoI池化会扭曲小物体的原始结构,因为它只是复制特征值以适应预设的特征长度(如图1(c)左侧示例所示)。其次,不同尺度车辆之间的类内距离通常非常大。如图1(b)所示,红色和紫色框具有不同的特征响应。这使得网络难以使用同一组权重来表示不同尺寸的对象。

为了应对上述问题,我们提出了一种名为SINet的尺度无关卷积神经网络,以准确高效地检测具有大尺度变化的车辆。网络架构如图2所示。在特征图级别上使用object proposals来检查所有可能的目标区域,并将相应的特征图送到决策网络。我们提出了两种新方法来克服上述障碍。首先,我们提出了一种上下文感知的RoI池化方案,以保留小尺度物体的原始结构。这个新的池化层涉及使用 bilinear kernels进行反卷积,可以保持上下文信息,从而有助于产生与原始结构相符的特征。然后,这些汇集的特征被送到一个新的多分支决策网络。每个分支都被设计成最小化features的intra-class距离,因此网络可以比传统网络更有效地捕捉具有不同尺度的对象的判别特征。
论文阅读 Sinet: A scale-insensitive convolutional neural network for fast vehicle detection_第2张图片

所提出的网络在KITTI基准测试上检测准确性和速度方面都达到了最先进的性能。这种方法还在检测低分辨率输入图像中显示出有希望的性能,并使得在低分辨率视频监控中检测车辆成为可能。由于轻量级的架构,可以在256×846的图像上实现实时检测(高达37 FPS)。为了在更实际的场景中展示所提出的方法,我们构建了一个新的高速公路数据集,其中包含具有广泛尺度变化的车辆。据我们所知,这是第一个专注于高速公路场景的数据集。它包含在不同道路、时间、天气和交通状态下标记良好的14388张图像。

总结起来,我们的贡献包括:

  • 我们提出了一种上下文感知的RoI池化层,可以在不增加额外空间和时间负担的情况下为小尺度车辆生成准确的特征图。所提出的新型池化层可以广泛应用于现有架构。
  • 我们提出了一个多分支决策网络用于车辆检测。它可以在不引入额外计算成本的情况下准确分类具有大尺度变化的车辆。
  • 我们构建了第一个大尺度变化的高速公路数据集,为评估各种处理具有大尺度变化的目标对象的车辆检测算法在实际场景中的表现提供了平台。

II. RELATED WORKS ON VEHICLE DETECTION

略过

III. WHY CURRENT CNNS ARE SCALE-SENSITIVE

众所周知,在检测任务中,卷积神经网络(CNN)对尺度变化非常敏感。在本节中,我们首先仔细分析其潜在原因,然后讨论现有解决方案如何解决这个问题。

A. Structure Distortion Caused by RoI Pooling

基于CNN的目标检测算法可以分为两类。第一类建立在两阶段的流程上,其中第一阶段提取proposals,第二阶段预测它们的类别。第二类旨在训练端到端的目标检测器,它跳过了目标proposals检测,因此具有相对较快的计算速度。这种检测器首先将图像隐式划分为一个网格,然后同时对网格中的每个方块或矩形进行预测,最终根据方块或矩形的预测结果确定目标对象的边界框。然而,这种基于网格的范式无法获得与两阶段检测流程相媲美的准确性,因为这些网格对于预测以groups形式出现的小物体有很强的spatial constraints。因此,大多数现有方法采用了两阶段的检测流程。

为了满足分类网络的输入要求,大多数两阶段目标检测算法,如SPP、Fast RCNN和Faster RCNN ,通过RoI池化将每个proposals表示为固定大小的特征向量。如图1(c)所示,RoI池化将每个proposal分成H×W个子窗口,并使用最大池化提取每个子窗口的一个值,以便输出可以具有大小为H×W的固定大小。如果一个proposal小于H×W,它会通过简单地复制一些proposal的部分来填充额外的空间,将其放大为H×W。不幸的是,这种方案不太适用,因为它可能会破坏小物体的原始结构(见图3(c))。在网络训练过程中,使用复制的值进行填充不仅会导致前向传播中的不准确表示,还会在反向传播中积累错误。inaccurate representations和累积的错误会误导训练,并阻止网络正确检测小尺度的车辆。在我们的实验中,我们发现这个问题对于小车辆的低检测准确率是一个关键问题。
论文阅读 Sinet: A scale-insensitive convolutional neural network for fast vehicle detection_第3张图片

B. Intra-class Distance Caused by Scale Variations

导致尺度敏感性的另一个重要问题是大尺度和小尺度对象之间的large intra-class distance。一旦提取了每个proposal的特征,它们就被送到一个决策网络进行分类。现有方法平等地对待同一类别中的对象,而不考虑它们的尺度。我们认为,这可能导致不准确的检测,因为大尺度和小尺度对象之间的intra-class distance可能与它们的feature representations上的类内距离一样显著。

C. Existing Solutions and Their Shortcomings

已经有很多努力致力于解决尺度敏感性问题。正如前面提到的,大多数现有的解决方案都是基于两种类型的金字塔表示。第一种应用了图像金字塔的概念(如图4(a)所示),利用多尺度输入图像使网络适应所有尺度。然而,这种表示的主要缺点是计算成本较高,不适用于实时检测任务。
论文阅读 Sinet: A scale-insensitive convolutional neural network for fast vehicle detection_第4张图片

另一种表示是特征金字塔,它利用从多层特征映射中提取的信息。第一种直接的尝试是使用高分辨率的浅层特征图来检测小物体,同时使用低分辨率的深层特征图来检测大物体(如图4(b)所示)。这种策略已被SSD 、MSCNN 、FCN 和SDP 采用。然而,由于浅层特征图缺乏语义信息,它们通常无法准确区分小物体。

为了充分利用深层信息来应对尺度变化,一些研究人员提出了将多层特征图组合在一起训练网络的方法(例如MultiPath 和HyperNet ,见图4(c))。然而,由于网络中使用了下采样操作,小物体无法在深层保持足够的空间信息,因此仍然难以检测。为了更好地保持小物体的深层特征映射,提出了另一种解决方案,即将高分辨率的特征图和上采样的深层特征图一起用于预测小物体,如(见图4(d))。这种解决方案的主要问题是上采样操作是在整个特征图上执行的,需要更多的内存资源和额外的计算成本。虽然额外的信息会导致更好的准确性,但高计算成本是不可避免的,这在我们的实时车辆检测任务中是不可接受的。

因此,我们不是引入额外的步骤来解决尺度敏感性问题,而是通过引入两个简单的解决方案来从内部解决这个问题:一种上下文感知池化和一个多分支决策网络,这两种方法在实时和准确的车辆检测中有效地处理尺度敏感性问题,同时不会增加额外的计算成本。

IV. SCALE-INSENSITIVE NETWORK

A. Overview

所提出的尺度无关网络(SINet)的架构如图2所示。我们的SINet以整个图像作为输入,并以端到端的方式输出检测结果。它首先生成一组卷积特征图,并使用区域提案网络(RPN)基于这些特征图获取一组proposal。RPN预测具有包含对象可能性的边界框,这些预测的边界框称为proposal。然后,我们采用了提出的上下文感知RoI池化(CARoI池化)来为每个proposal提取特征。CARoI池化采用双线性核进行反卷积,以扩大小proposal的特征区域,避免使用复制的值来表示小物体。CARoI池化应用于CNN的多个层次,不同层次的这些池化特征被连接在一起,以融合低级别的详细信息和高级别的语义信息来检测对象。之后,我们根据proposal的大小将SINet分成多个分支,减轻了具有不同尺度的对象的 large intra-class variation的训练负担。在这种情况下,我们可以提高大物体和小物体的检测精度。最后,我们将多个分支的所有预测结果融合为最终的检测结果。双线性核反卷积和多分支决策网络不会增加处理时间,因为前者只处理小proposal而不会放大整个特征图,后者处理与传统检测方法相同数量的proposal。

B. Context-aware RoI Pooling

上下文感知的RoI池化(CARoI池化)可以调整proposals的尺寸,而不会牺牲重要的上下文信息(如图3(d)所示)。

在CARoI池化中,我们有三种情况需要处理。首先,如果一个proposal的尺寸大于指定的尺寸,我们将在每个子窗口中提取最大值,如原始的RoI池化策略(如第III-A节所述)。其次,如果一个proposal的尺寸小于指定的尺寸,我们将应用带有双线性核的反卷积操作来放大proposal,同时保持环境不受损害,以便我们仍然可以从小proposal中提取discriminative features 。反卷积核的大小由proposal的大小和预定义的池化大小动态确定。具体来说,核的大小等于池化特征图的指定大小与每个proposal的大小之间的比率。第三,当一个proposal的宽度大于池化长度,并且这个proposal的高度小于池化长度时,我们的CARoI池化将应用反卷积操作来放大这个proposal的高度,将这个proposal的宽度分割成几个子窗口(子窗口的数量等于池化长度),并将每个子窗口的最大值作为最具判别力的特征值。

在数学上,我们可以将上述三种情况用以下方程式来表示。假设 yjk 是来自第 k 个proposal的第 j 个CARoI池化层的输出。CARoI池化计算 yjk= xi∗,其中:
论文阅读 Sinet: A scale-insensitive convolutional neural network for fast vehicle detection_第5张图片
在上述方程中,R(k, j)表示输出单元 yjk 选择最大特征值的子窗口的索引集合。xi ∈ R 是特征图上的第 i 个特征值。我们使用Xk来表示第 k 个proposal的一组输入特征。⊗表示反卷积操作,σk是反卷积操作的核,由proposal的尺度决定。如果proposal的尺寸小于池化特征图的大小,则这个反卷积核等于池化特征图的指定大小与每个proposal的大小之间的比率;否则,这个反卷积核等于1,这意味着这个反卷积操作不会影响大proposal。在获得判别特征之后,每个子窗口中这些特征的最大值被用来表示这个proposal。

Back-propagation 通过反向传播,导数会通过CARoI池化进行传递,以训练网络。损失函数L对于输入变量xi的偏导数为:
论文阅读 Sinet: A scale-insensitive convolutional neural network for fast vehicle detection_第6张图片
其中i 是Equation 1中描述的索引,表示在进行反卷积后每个子窗口中最大值的位置。∇σk(∂L / ∂yjk) 表示反卷积对于损失∂L / ∂yjk的导数。这个损失会从与CARoI池化相连的后续层传播过来。

C. Multi-branch Decision Network

正如在第III-B节中分析的,对于基于CNN的目标检测,另一个关键问题是目标的大尺度变化,这在车辆检测中很常见。为了减少物体的尺度差异,我们提出将不同尺寸的proposals分成不同的分支,每个分支用于检测具有相似尺寸的一组物体。每个分支包括一个卷积层和一个全连接层,后面跟着两个分类器:一个用于分类,另一个用于边界框回归(详见)。尽管我们将proposals分成多个分支,但这些proposals共享由一些卷积层提取的特征(如图2中所示的蓝色框)。

分支的数量是根据数据集的尺度分布和计算资源进行经验性确定的,这在第V-D节中有所讨论。这里我们以双分支决策网络为例,但这种技术可以很容易地扩展到多分支决策网络。在双分支决策网络中,我们主要使用训练集中所有物体尺度的中值作为参考阈值,将proposals分成大分支或小分支。在训练过程中,为了使两个分支在中值尺度上共享一部分样本,并增加每个分支的训练样本的数量,分割proposals的阈值在每次训练迭代中动态改变。我们通过一个高斯模型来模拟阈值的变化,所有物体尺度的中值是高斯模型的均值。通过这种方式,那些尺度接近所有物体尺度中值的proposals在整个训练过程中有机会被归类到大分支和小分支中。在测试中,我们简单地使用中值来分割proposals。

D. Implementation Details

Network architecture 原则上,我们的上下文感知RoI池化和多分支决策网络是通用的,可以构建在任何CNN架构上。在本文中,我们基于PVA网络和VGG网络来测试我们的算法。CARoI池化的核大小在PVA网络中设置为6×6,在VGG网络中设置为7×7。

我们使用MS-CNN提出的proposal提取网络(RPN)从CNN的不同层中提取高质量的proposal。然后,我们将多分支决策网络连接到RPN的末尾,以构建如图2所示的SINet。整个网络以端到端的方式进行训练。

Training strategies 我们使用随机梯度下降(SGD)来优化SINet。为了使训练过程稳定,我们首先使用较小的学习率来训练RPN,然后使用较大的学习率来对整个网络进行端到端的训练。我们首先将学习率设置为0.0001,进行10k次迭代,权重衰减为0.0005,以训练RPN。然后,为了训练整个网络,我们将学习率设置为0.0005,在第40k和70k次迭代时将其减小0.1倍,并在第75k次迭代后停止学习。如果使用VGG网络,我们将初始学习率分别调整为0.00005和0.0001。为了加速训练和减少过拟合,在ImageNet上训练的VGG的卷积层权重或在Pascal VOC上训练的PVA的权重用于初始化RPN。然后,我们使用VGG和PVA中全连接层的经过训练的权重来初始化新添加的多分支决策网络的全连接层。其他层使用随机噪声进行初始化。每个批次中有四张图像。此外,我们还使用数据增强方法和hard example mining strategies,就像在MS-CNN中一样。

Inference 在测试中,对于每个输入图像,网络会在多个分支中产生小物体和大物体的输出。然后我们将它们合并在一起,并使用非极大值抑制(NMS)来优化结果。与仅从高度重叠的检测框中选择具有最大置信度的边界框不同,我们选择一些相对高置信度的边界框,并对它们的坐标进行平均。我们将这种策略称为soft-NMS,这有助于提高遮挡车辆的定位准确性。

V. EXPERIMENTS

为了评估所提出的SINet的有效性,我们在两个代表性的车辆数据集上进行了实验:KITTI数据集和一个新构建的large scale variance高速公路数据集(LSVH)。实验在Ubuntu 14.04上使用单个GPU(NVIDIA TITAN X)和8个CPU(Inter® Xeon® E5-1620 v3 @ 3.50GHz)进行实现。

论文阅读 Sinet: A scale-insensitive convolutional neural network for fast vehicle detection_第7张图片
论文阅读 Sinet: A scale-insensitive convolutional neural network for fast vehicle detection_第8张图片

VI. CONCLUSION

In this paper, we present a scale-insensitive network, denoted as SINet, for fast detecting vehicles with a large variance of scales. Two new techniques, context-aware RoI pooling and multi-branch decision network, are presented to maintain the original structures of small objects and minimize the intra-class distances among objects with a large variance of scales. Both of the techniques require zero extra computational effort. Furthermore, we construct a new highway dataset which contains vehicles with large scale variance. To our knowledge, it is the first large scale dataset focuses on the highway scene. Our SINet achieves state-of-the-art performance on both accuracy and speed on KITTI benchmark and our LSVH dataset. Further investigations include evaluating the SINet on more challenging datasets and integrating it into some intelligent transportation systems.

你可能感兴趣的:(论文阅读)