从锚点到关键点,最新的目标检测方法发展到哪了

从经典的 R-CNN 到今年非常受关注的 CenterNet,目标检测近几年到底有哪些发展?现在都到 2019 年了,基于关键点检测这一新范式效果到底怎么样?对于目标检测,这篇 40 页的综述论文有你想要的所有答案。

目标检测计算机视觉领域中的一个基础视觉识别问题,在近几十年得到了广泛研究。视觉目标检测即在给定图像中找出属于特定目标类别的对象及其准确位置,并为每个对象实例分配对应的类别标签。

近日,来自新加坡管理大学和 Salesforce 亚洲研究院的研究人员撰写了一篇论文,对基于深度学习的视觉目标检测的近期发展进行了全面综述,系统性地分析了现有的目标检测框架。

论文链接:https://arxiv.org/abs/1908.03673v1

该综述文章包括三个主要部分:1)检测组件;2)学习策略;3)应用与基准,并详细介绍了影响目标检测性能的多种因素,如检测器架构、特征学习、候选框生成、采样策略等。

下图 2 展示了,2012 年以来基于深度学习的目标检测技术的主要发展和里程碑。这篇论文介绍了这些关键技术的基本思想,并进行了系统性分析。

图 2:2012 年以来,基于深度卷积神经网络的目标检测技术的主要里程碑。过去一年的技术发展趋势是基于 anchor-free 的目标检测器(红色线)和 AutoML 技术(绿色线),这两项技术可能成为未来重要的研究方向。

因为该综述论文花了近 40 页篇幅综述各种解决方案与组成结构,内容覆盖了这些年主要的研究进展与突破,所以机器之心只介绍部分内容,更详细的介绍请查阅原论文。

当然,以前机器之心也曾介绍过很多目标检测方面的研究或综述文章,因此本文会侧重介绍 18 年到 19 年非常流行的基于关键点的目标检测。这一种单步检测范式不仅拥有极高的准确率,同时速度还非常快,也许目标检测未来的发展主流会聚集在这一范式下。

如果读者希望了解以前非常流行的两种目标检测方法,可以查阅以下文章:

从经典走向前沿的目标检测

在深度学习时代之前,早期的目标检测流程分为三步:候选框生成、特征向量提取和区域分类。

候选框生成阶段的目标是搜索图像中可能包含对象的位置,这些位置又叫「感兴趣区域」(ROI)。直观的思路是用滑动窗口扫描整幅图像。为了捕捉不同尺寸和不同宽高比对象的信息,输入图像被重新分割为不同的尺寸,然后用不同尺寸的窗口滑动经过输入图像。

第二阶段,在图像的每一个位置上,利用滑动窗口获取固定长度的特征向量,从而捕捉该区域的判别语义信息。该特征向量通常由低级视觉描述子编码而成,这些描述子包括 SIFT (Scale Invariant Feature Transform) 、Haar 、HOG(Histogram of Gradients) 、SURF(Speeded Up Robust Features) 等,它们对缩放、光线变化和旋转具备一定的鲁棒性。

第三阶段,学习区域分类器,为特定区域分配类别标签。

通常,这里会使用支持向量机(SVM),因为它在小规模训练数据上性能优异。此外,Bagging、级联学习(cascade learning)和 Adaboost 等分类技术也会用在区域分类阶段,帮助提高目标检测准确率

DL 时代的目标检测

在将深度卷积神经网络成功应用于图像分类后,基于深度学习技术的目标检测也取得了巨大进步。基于深度学习的新算法显著优于传统的目标检测算法。

目前,基于深度学习的目标检测框架可以分为两大类:1)二阶检测器(Two-stage),如基于区域的 CNN (R-CNN) 及其变体;2)一阶检测器(One-stage),如 YOLO 及其变体。

二阶检测器首先使用候选框生成器生成稀疏的候选框集,并从每个候选框中提取特征;然后使用区域分类器预测候选框区域的类别。一阶检测器直接对特征图上每个位置的对象进行类别预测,不经过二阶中的区域分类步骤。

通常而言,二阶检测器通常检测性能更优,在公开基准上取得了当前最优结果,而一阶检测器更省时,在实时目标检测方面具备更强的适用性。

DL 目标检测器该怎样系统学习

本文目标是全面理解基于深度学习的目标检测算法。下图 3 展示了本文涵盖主要方法的分类:根据深度学习目标检测算法的不同贡献将其分为三类:检测组件、学习策略,以及应用与基准

图 3:本文涵盖主要方法的分类。

对于检测组件,这篇论文首先介绍了两种检测设置:边界框级(bbox-level)定位和像素掩码级(mask-level)定位。bbox-level 算法需要按照矩形边界框进行目标定位,而 mask-level 算法则按照更准确的像素级掩码进行目标分割。

接下来,论文总结了二阶检测和一阶检测的代表性框架。然后对每个检测组件进行了详细论述,包括主干架构、候选框生成和特征学习。

对于学习策略,论文首先强调了学习策略的重要性(因为训练检测器是很艰难的过程),然后详细介绍了训练和测试阶段中的优化技术。最后,论文概览了一些基于目标检测的现实应用,并展示了近年来通用目标检测技术在公开基准上的当前最优结果。

这些虽然是这篇综述论文的写作思路,但是对于希望系统了解该领域的读者而言,也是非常好的学习路径:先了解整体类别与研究现状,再了解具体的组件与策略。

检测范式

当前最优的深度学习目标检测器可以分为两大类:二阶检测器和一阶检测器。二阶检测器首先生成稀疏的候选框集合,然后使用深度卷积神经网络编码生成候选框的特征向量,并执行类别预测。一阶检测器没有候选框生成这一单独步骤,它们通常将图像的所有位置都看作潜在对象,然后尝试将每个感兴趣区域分类为背景或目标对象。

二阶检测器

二阶检测器将检测任务分成两个阶段:候选框生成和对候选框执行预测。在第一阶段,检测器尝试识别图像中可能存在对象的区域。其基本思想是以高召回率提出候选区域,使得图像中的所有对象属于至少一个候选区域。第二阶段中,使用基于深度学习的模型为这些候选区域分配正确的类别标签。每个区域可能是背景,也可能是属于某个预定义类别标签的对象。

图 4:不同二阶目标检测框架概览。红色虚线矩形表示输出(该输出定义损失函数)。

一阶检测器

与把检测流程分成两部分的二阶检测器不同,一阶检测器没有单独的候选框生成步骤。它们通常将图像上的所有位置都看作潜在对象,然后再把每个感兴趣区域分类为背景或目标对象。

图 5:不同一阶目标检测框架概览。红色虚线矩形表示输出(输出定义目标函数)。

Redmon 等人提出了一种叫做 YOLO(You Only Look Once)的实时检测器。YOLO目标检测看作回归问题,将整个图像分割为固定数量的网格单元(如使用 7 × 7 网格)。每个单元被看作一个候选框,然后网络检测候选框中是否存在一或多个对象。

基于精细设计的轻量级架构,YOLO 可以 45 FPS 的速度执行预测,使用更简化的骨干网络后速度可达 155 FPS。但是,YOLO 面临以下挑战:

对于给定位置,它至多只能检测出两个对象,这使得它很难检测出较小的对象和拥挤的对象。

只有最后一个特征图可用于预测,这不适合预测多种尺寸和宽高比的对象。

2016 年,Liu 等人提出另一个一阶检测器 Single-Shot Mulibox Detector (SSD),解决了 YOLO 的缺陷。SSD 也将图像分割为网格单元,但是在每一个网格单元中,可以生成一组不同尺寸和宽高比的锚点框,从而离散化边界框的输出空间。

SSD 在多个特征图上预测对象,且每一个特征图基于其感受野来检测特定尺寸的对象。整个网络通过端到端训练机制,使用位置损失和分类损失的加权和作为损失函数进行优化。最后网络合并来自不同特征图的全部检测结果,得到最终的预测。

没有候选框生成步骤来帮助筛选容易正确分类的负样本,导致前景背景类别不均衡成为一阶检测器中的严重问题。Lin 等人提出一阶检测器 RetinaNet,用更灵活的方式解决了类别不均衡的问题。

RetinaNet 使用 focal loss 抑制易分负样本的梯度,而不是简单地摒弃它们。然后使用特征金字塔网络,在不同级别的特征图上检测多尺寸对象。

Redmon 等人提出 YOLO 改进版本——YOLOv2,它显著提升了检测性能,且仍然维持实时推断速度。YOLOv2 通过对训练数据执行 k 折聚类(而不是手动设置)来定义更好的锚点先验,这有助于降低定位中的优化难度。

以前的方法在训练检测器时需要手动设计锚点框,后来一批 anchor-free 目标检测器出现,其目标是预测边界框的关键点,而不是将对象与锚点框做匹配。

其中比较受关注的是基于关键点的检测架构,它会预测左上角和右下角的热图,并用特征嵌入将其合在一起,CornerNet 就是基于关键点检测中非常经典的架构。当然还有后续结合中心点和角点的 CenterNet,它具有更好的性能。

候选框生成

候选框生成在目标检测框架中起着非常重要的作用。候选框生成器生成一组矩形边界框,它们有可能包含对象。然后使用这些候选框进行分类和定位精炼(localization refinement)。

基于锚点的方法

监督式候选框生成器的一个大类是基于锚点的方法。它们基于预定义锚点生成候选框。Ren 等人提出区域候选网络 (Region Proposal Network,RPN),基于深度卷积特征图以监督方式生成候选框。

该网络使用 3 × 3 卷积核在整个特征图上滑动。对于每个位置,网络都考虑 k 个 不同大小和宽高比的锚点(或边界框的初始估计)。这些不同的尺寸和宽高比允许网络匹配图像中不同尺寸的对象。

基于真值边界框,将对象的位置与最合适的锚点进行匹配,从而为锚点估计获得监督信号。

图 6:RPN 图示。

基于关键点的方法

另一种候选框生成方法基于关键点检测,它分为两类:基于角点(corner)的方法和基于中心(center)的方法。

基于角点的方法通过合并从特征图中学得的角点对,来预测边界框。这种算法无需设计锚点,从而成为生成高质量候选框的更高效方法。

Law 和 Deng 提出 CornerNet,直接基于角点建模类别信息。CornerNet 使用新型特征嵌入方法和角点池化层(corner pooling layer)建模左上角点和右下角点的信息,从而准确匹配属于同一对象的关键点。该方法在公开基准上获得了当前最优结果。

基于中心的方法在特征图的每个位置上预测它成为对象中心的概率,且在没有锚点先验的情况下直接恢复宽度和高度。

Duan 等人 提出了 CenterNet,它结合了基于中心的方法和基于角点的方法。CenterNet 首先通过角点对预测边界框,然后预测初始预测的中心概率,来筛除易分负样本。相比基线,CenterNet 的性能获得了显著提升。

anchor-free 方法是未来很有前途的研究方向。

目标检测公开基准

当然除了整体范式与候选框的生成,目标检测还有更多的组件与细节,例如主体架构怎么选、数据增强/采样怎么做、模型压缩/加速怎么处理等等,本文就不一一介绍了。最后,让我们看看当前目标检测公开基准上的模型效果都怎么样。

目标检测基准其实有挺多的,它们主要可以分为通用型、人脸检测型、公共区域型,它们加起来差不多有 16 个基准

几个通用型目标检测基准,及其数据集的样本。

在下面表 2 和表 3 中,论文展示了近几年各种目标检测方法在 VOC2007、VOC2012 和 MSCOCO 基准上的效果。

表 2:各种方法在 PASCAL VOC 数据集上的检测效果。

表 3: MS COCO 数据集上的检测效果。

理论锚点计算机视觉目标检测综述论文
7
相关数据
图像分割技术

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像索赋予相同的编号。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

SSD技术

一种计算机视觉模型。论文发表于 2015 年(Wei Liu et al.)

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

点估计技术

点估计也称定值估计,它是以抽样得到的样本指标作为总体指标的估计量,并以样本指标的实际值直接作为总体未知参数的估计值的一种推断方法

YOLO技术

YOLO 模型最早是由 Joseph Redmon 等人在 2015 年发布的,并在随后的两篇论文中进行了修订。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

目标定位技术

目标定位任务不仅要识别出图像中是什么,还要给出目标在图像中的位置信息。简单的说,就是用一个矩形框把识别的目标框出来(有时候也有多个固定数量的目标)。一般基本思路是多任务学习,网络带有两个输出分支。一个分支用于做图像分类,即全连接+softmax判断目标类别,和单纯图像分类区别在于这里还另外需要一个“背景”类。另一个分支用于判断目标位置,即完成回归任务输出四个数字标记包围盒位置(例如中心点横纵坐标和包围盒长宽),该分支输出结果只有在分类分支判断不为“背景”时才使用。

机器之心机构

机器之心,成立于2014年,是国内最具影响力、最专业、唯一用于国际品牌的人工智能信息服务与产业服务平台。目前机器之心已经建立起涵盖媒体、数据、活动、研究及咨询、线下物理空间于一体的业务体系,为各类人工智能从业者提供综合信息服务和产业服务。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

感受野技术

一个感觉神经元的感受野是指这个位置里适当的刺激能够引起该神经元反应的区域。感受野一词主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质。

推荐文章
暂无评论
暂无评论~