anchor free 目标检测_基于关键点的Anchor Free目标检测模型综述

本文综述了基于关键点的Anchor Free目标检测方法,包括CornerNet、CenterNet和FCOS模型。这些方法旨在消除传统锚框带来的问题,提高检测速度和精度。CornerNet通过角点定位目标,CenterNet则结合中心点和角点,而FCOS采用全卷积网络,直接预测边界框。各模型有其独特优势和局限性,如CornerNet-Saccade关注速度优化,CenterNet平衡精度和速度,FCOS强调简单高效。文章还讨论了未来的研究趋势,包括精度与速度的结合、小规模数据训练的有效性及未知类别检测的挑战。
摘要由CSDN通过智能技术生成

引言

目标检测是计算机视觉应用的基础, 在图像处理中任务中发挥着至关重要的作用. 目标检测是一种利用算法在图像中搜索感兴趣区域的技术, 结合了目标分类和定位两个任务. 在人脸检测、人体姿势估计、实例分割等领域的到了广泛的使用.

传统的目标检测模型主要包括Haar特征+Adaboost+Cascade、HOG特征+SVM、HOG特征+Cascade、DPM特征+Latent SVM等, 这些算法虽然推动了目标检测的发展, 但仍然存在以下两点问题: 一是基于滑窗的区域选择没有针对性, 耗时较长, 窗口冗余; 二是手动标记的特征对于多变的情况具有较差的鲁棒性. 随着卷积神经网络的发展, 这些问题已经得到了解决.

自2013年Girshick等[提出R-CNN框架后, 在此基础上的一系列框架不断被提出, 如Faster R-CNN、Mask R-CNN等的two stage框架和YOLO、SSD、RetinaNet等的one stage框架, 二者都是基于锚框的目标检测. 相比传统的目标检测方法, 基于卷积神经网络的锚框的方法能够进行更为精细的检测. 但使用锚框仍存在以下两方面的问题: 一是通常需要一组非常大的锚框, 例如: DSSD[超过4万, RetinaNet[超过10万. 这是因为检测器被训练用以分类每个锚框是否与真实框尽可能的重叠, 所以需要大量的框以确保与大多数的真实框最大程度的重叠. 最终只有一小部分框与真实框重合, 这会导致正负样本的不平衡, 并减慢了训练的速度. 二是使用锚框会引入许多超参数的组合问题, 即已有方法把目标在哪和目标有多大绑在一个框里, 通过局部分类器一次性判断各种不同大小、不同比例的框是否为目标, 这会造成超参数的组合问题. 同时, 超参数通常与检测任务和数据集相关, 难以调优和通用.

而anchor free的目标检测可以消除框, 改善锚框带来的各种问题, 进行更快、更精细的检测. 所谓基于关键点的anchor free的目标检测, 其实质就是使用one stage网络将目标边界检测为一对关键点. 通过将目标检测为成对关键点, 就可消除现有的one stage检测网络中对一组anchor的需要. 为进一步了解近期anchor free的目标检测关键技术的发展进程, 本文首先综述了基于CornerNet模型、CenterNet模型、FCOS模型3个不同方向的anchor free目标检测的主要思想和网络架构, 其次对不同模型的优点和不足进行了详细的说明和分析, 最后对anchor free目标检测的现有问题和未来发展趋势进行展望.

1 基于角点的anchor free目标检测

基于角点的目标检测方法通过组合从特征图中学习到的角点对, 来预测边框. 这种方法不需要设计锚框, 减少了对锚框的各种计算, 从而成为生成高质量边框的更有效的方法. 基于角点的anchor free目标检测模型主要有CornerNet和CornerNet的优化CornerNet-Lite.

1.1 CornerNet

Law等[提出了一个基于配对关键点(左上角和右下角)的目标检测方法, 算法步骤: (1)使用单个卷积神经网络Hourglass-104[预测这两个位置的热图集合来表示不同目标种类的角点位置. 在角点热图上使用非极大值抑制, 选择前k个左上角点和前k个右下角点. 该方法中还引入了角点池化, 这是一种新型的池化层, 其可以帮助网络更好的定位角点; (2)预测一个嵌入向量[, 对每一个检测到的角点, 让属于同一类物体的对应角点之间的嵌入向量距离最小; (3)为了产生更紧凑的目标框, 预测一个偏置L1损失[来微调角点的位置. 该方法的流程图如

图 1

Fig. 1

图 1 CornerNet流程图[

依据文献[[, 其重点学习难样本和平衡正负样本以帮助更好的训练网络.

但是在其他方面还有许多不足, 例如: 在速度上, 每张图像的处理时间为1.147 s, 这对于需要实时或交互速率的视频来说很慢; 在精度上, 尽管可以通过减少处理的像素数量来加快处理时间, 但是这样会导致精度的大幅度下降; 在全局性上, CornerNet缺乏对物体全局信息的考虑, 即因为每个目标物都有两个角点, 算法对识别目标物的边界框很敏感, 同时又无法确定哪两个角点属于同一个物体, 所以会产生一些错误的边框. 因此, 对于这些问题, Law等[提出CornerNet-Lite的高效目标检测和Duan等[提出CenterNet的关键点三元组进行解决.

1.2 CornerNet-Lite

CornerNet-Lite的高效目标检测是在CornerNet的基础上进行的优化, 是Cornernet的两个高效变体的组合, 优化包括两点: (1) CornerNet-Saccade使用类似于人眼的注意力机制消除了对图像的所有像素进行处理的需要, 通过减少像素个数来提高检测速度. CornerNet-Saccade可以用于线下处理, 不用牺牲精度也可提升速度. CornerNet-Saccade是第一个在基于关键点的目标检测方法中使用Saccade的; (2)引入了新的紧凑骨干架构CornerNet-Squeeze, 通过减少每个像素的处理量来加速图像处理. 它融合了SqueezeNet[和MobileNet[的思想, 并引入了一种新的紧凑型沙漏骨干(54层, CornerNet的沙漏骨干104层), 广泛使用1×1卷积, 瓶颈层和深度可分离卷积[. CornerNet-Squeeze可用于实时处理, 提升精确度而无需牺牲速度, 是第一篇把Squeeze和沙漏网络组合用于目标检测的文章.

CornerNet-Saccade的算法步骤: 第一步是获取图像中可能的目标位置. (1)先把原图进行缩小和裁剪; (2)将缩小的完整图像输入到骨架网络(沙漏网络: 卷积、下采样和卷积、上采样)中预测attention maps和检测缩小后的图像中的目标并生成粗边框(两者都提出可能的对象位置). 通过使用不同尺度的特征图来预测3个attention maps, 用于小、中、大物体; (3)从预测的attention maps和粗边框中得到可能的目标位置. 第二步是检测目标. (1)对第一步(3)的可能位置中选取前k个位置, 把这k个位置与对原图裁剪得到的图片进行对应, 得到在可能的位置处检测到目标; (2)对检测的结果基于soft-NMS进行处理, 处理方式与CornerNet[一样, 从而得到目标物的边界框; (3)利用得到的边界框的尺寸来确定目标所在图像的缩放大小, 进行目标的合并且大小与原图一致. 在训练时, 采用与CornerNet相似的训练损失来训练网络以预测角点热图、嵌入和偏置. CornerNet-Saccade的流程图如

图 2

Fig. 2

图 2 CornerNet-Saccade的流程图[

CornerNet-Squeeze是CornerNet-Lite研究的另一个方案, 降低每个像素点上处理成本. 在CornerNet中, 大多数的计算都耗费在Hourglass-104[上, 非常耗时. 为了降低Hourglass-104网络的复杂度, 引入Squeeze和MobileNet的思想

Squeeze提出了3种降低网络复杂策略: (1)用1×1卷积替换3×3卷积, 减少输入通道的数量; (2)减少3×3卷积的输入通道; (3)下采样后延(此文没用到), 沙漏网络是对称的, 延迟下采样会在上采样期间产生更高分辨率的特征图, 再执行卷积, 会增加计算量.

由文献[

2 基于中心点的anchor free目标检测算法

基于中心点的目标检测方法是对特征图的每个位置预测它是目标中心点的概率, 并且在没有锚框先验的情况下进行边框的预测. 基于中心点的Anchor free目标检测模型主要有CenterNet (中心点和角点)和CenterNet (中心点).

2.1 CenterNet (使用中心点和角点)

由于CornerNet缺乏对物体全局信息的考虑, 通常会遭受大量不正确的目标边框的困扰, 为解决该问题, Duan等[提出了CenterNet的用于目标检测的关键点三元组方法, 即在CornerNet的基础上加入一个中心关键点的热图, 并预测了中心点的偏置. 相较于CornerNet, CenterNet关键点三元组方法进行了如下优化: (1)确定中心区域的大小, 能更准确的定位目标; (2)为了增强中心点和角点信息, 提出了中心池化和级联角点池化(丰富了边界和内部信息, 而CornerNet的角点池化只有边界信息). 该方法提高了准确性和查全率. 在COCO数据集上, CenterNet的AP达到了47.0%, 比现有的一级检测器至少好4.9%.

算法步骤: 该方法的检测步骤与CornerNet[的步骤类似, (1)在CornerNet的步骤(1)中再预测一个中心热图, 在热图上采用非极大值抑制, 选择前k个中心点. 该方法中引入的是级联角点池化和中心点池化; (2)在CornerNet的步骤(2)中添加一个中心偏置; (3)两个角点用来检测潜在的目标框, 然后用中心区域判断中心点是否在中心区域内, 最后确定最终的边界框的位置. CenterNet的流程图如

图 3

Fig. 3

图 3 CenterNet的流程图[

由文献[[, 即将目标当作中心点来检测不需要这些步骤, 极大提高了检测速度. 虽然不需要进行非极大抑制等操作, 但CornerNet在完成关键点检测后, 还需要将左下角关键点和右上角关键点进行两两匹配, 导致检测速度有所下降.

2.2 CenterNet (只使用中心点)

Zhou等[提出的基于CenterNet的将目标作为点的方法规避了低效和额外的后处理等缺点. 该方法通过其边界框中心的单个点来表示所检测的目标, 然后可以直接从中心位置的图像特征回归其他属性, 如目标大小、尺寸、3D位置、方向甚至姿势. 因此, 基于中心点的方法相对于其他基于边界框的目标检测器来说, 其具有更简单、速度更快和准确度更高的特点.

图 4

Fig. 4

图 4 几种方法比较[

该算法的流程如下: 首先, 将图像输入完全卷积网络生成热图, 该热图中的峰值对应于目标中心. 其次, 将输出的热图中每个类别的峰值点单独提取出来, 即热图上的所有点与其相连的8的临近点比较, 若该点的值不小于其8个临近点, 则该点保留, 最后保留满足所有要求的前100个峰值点. 最后, 对每个峰值处的图像特征预测得到目标框的高度和宽度信息(根据不同的任务预测不同的属性, 如对于3D边框估计, 需要预测目标绝对深度、边框尺寸和方向[). 该训练网络是单个网络前向传递的, 因为每个目标仅有一个中心点, 所以没有非极大值抑制等后处理.

将目标作为点的方法对于上述几个基于关键点估计[的目标检测器来说, 不同之处在于: (1)该方法不需要在关键点检测之后进行组合分组, 这明显提高了算法的计算速度; (2)该方法仅仅需要为每个目标预测单个中心点, 而不需要进行非极大值抑制后处理; (3)损失函数中不仅有关键点损失(焦点损失[)和偏置损失, 还加入了目标大小损失, 这样可以提高算法的准确度.

由文献[[数据集上实现了速度与准确度的权衡, 其中AP为28.1%的模型处理速度达到了142 FPS, AP为37.4%的的模型处理速度达到了52 FPS, AP为45.1%的模型处理速度达到了1.4 FPS. 该方法通过预测一个中心点解决了2D和3D目标检测, 以及姿态估计, 把这3个任务很完美的统一到了一起(在这里主要综述了2D目标检测). 虽然该方法简单、快速、准确, 但是在训练过程中, 如果两个不同的目标重叠了, 共享同一个中心点, 在这种情况下, CenterNet会把这两个目标当成一个目标来训练, 只会检测其中一个, 这样就会存在大量的误检, 这是该方法的一个不足.

3 基于全卷积的anchor free目标检测

Tian等[提出的FCOS是一种基于全卷积的单级目标检测器, 是像素级别的目标检测, 其主要思想类似于语义分割. 该方法不需要锚框, 因此其完全避开了锚框的缺点. FOCS仅凭借后处理非极大值抑制, 该方法优于之前的基于锚框的一级探测器, 其优势在于更简单、灵活, 可以提高检测的精度. 算法步骤如下: 首先, 对输入的原始图像进行预处理操作; 然后将预处理之后的数据送入主干网络中获取输入数据的feature map, 对获得的feature map上的每一像素点进行回归操作, 对网络进行训练以获得网络模型; 再将得到的模型用于测试, 利用特征金字塔网络进行多级预测, 从而得到多个head, 从多个head中可以获得预测的结果; 最后使用非极大值抑制后处理获得最终的检测结果. FCOS的流程图如

图 5

Fig. 5

图 5 FCOS的流程图[

FCOS的新颖之处: (1)在远离目标中心的位置上会产生一些不好的框, FCOS中为了降低这些不好的结果, 引入了Center-ness分支, 即利用中心分支来抑制低质量预测边界框; (2)在网络中, 除了最后的预测层, 在卷积层中加入了组标准化GN, 使得训练更加稳定; (3) FCOS中, 特征金字塔网络中利用P5生成P6和P7, 而不是用骨干网络的C5, 这使得网络的性能得到略微的提高.

根据文献[[, FCOS[在mAP上有0.5%的提高. 虽然FCOS性能有略微的提高, 但是相对于CornerNet来说是有优势的, 如其主干网络是ResNet-101而不是Hourglass-104[, 该网络更快更简单; 除了非极大值抑制, 不需要其他的后处理, 而CornerNet还需要将具有嵌入向量的角点分组等. 实验也表明了, FCOS可以检测到各种各样的物体, 包括拥挤、遮挡、高度重叠、极小和极大的物体.

4 算法性能比较

基于深度学习的目标检测算法可分为两大类: 基于锚框的目标检测和基于Anchor free的目标检测. 目标检测中非常重要的两个性能: 精度和速度. 本文在VOC2007和COCO数据集上, 分别对这两类目标检测算法进行了性能上的比较和分析.

4.1 基于锚框的目标检测算法比较

基于锚框的目标检测算法分为两种: two stage检测算法和one stage检测算法. two stage检测算法中典型的目标检测算法有: R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN等. 从R-CNN算法到Mask R-CNN算法, 它们依次不断地在检测的准确度和速度上进行改进. 但是, 这些算法的实时性很差, 难以满足实际的需求.

表 1(Table 1)

表 1 Two stage的目标检测算法性能比较

网络结构

VOC2007 mAP (%)

COCO mAP (%)

检测速度(FPS)

R-CNN

58.5

SPP-Net

59.2

2

Fast R-CNN

70.0

19.7

3

Faster R-CNN

73.2

21.9

5

R-FCN

79.5

29.9

6

Mask R-CNN

37.1

5

表 1 Two stage的目标检测算法性能比较

One stage检测算法中典型的算法有YOLO系列、SSD及RetinaNet等. 该类算法虽然在实际中的应用成为可能, 但是实时性和准确度还有待提高.

表 2(Table 2)

表 2 One stage的目标检测算法性能比较

网络结构

VOC2007 mAP (%)

COCO mAP (%)

检测速度 (FPS)

YOLOv1

66.4

45

SSD

76.8

31.2

19

YOLOv2

78.6

21.6

40

YOLOv3

33.0

45.4

RetinaNet

39.1

5

表 2 One stage的目标检测算法性能比较

4.2 基于关键点的anchor free目标检测算法比较

第1~3节介绍的算法是基于关键点的anchor free的目标检测算法, 其基本思路是输入图像、提取关键点、尺度预测及位置回归的所有过程在一个卷积神经网络中实现, 不需要提前设置锚框, 极大地改善了检测的实时性, 在很大程度上满足实际应用的需求.

表 3(Table 3)

表 3 各类目标检测模型总结

模型

机制

优点

缺点

适用范围

实现成本

CornerNet

一对角点(左上角点和右下角点)表示一个目标

角点池化、嵌入向量等提高了精确度.

(1)角点分组增加计算难度; (2)对边缘敏感, 忽略内部信息, 误检率高.

多目标检测

网络层数多, 导致推理速度不高

CornerNet-Lite

一对角点(左上角点和右下角点)表示一个目标

相比于CornerNet精确度和实时性有所提高.

小物体的误检率高.

多目标检测

网络层少, 内存消耗低, 运算速度快

CenterNet

(中心点和角点)

中心点、左上角点和右下角点3个关键点表示一个目标

(1)级联角点池化增强了点的表征能力; (2)中心点池化表示了更多的内部信息, 消除误检.

(1)级联角点池化虽增强了点的表征能力, 但内部信息表义不明; (2)使用到的内部信息仍然不够, 特别是回归框的内部信息.

小目标检测

网络层数多, 推理时间略慢

CenterNet

(只有中心点)

一个中心点+长宽值表示一个目标

简单、快速、高效、没有NMS后处理.

只使用中心点进行回归, 可获得的信息过少.

可用于2D、3D目标检测及人体姿态识别

推理仅需单个前向传播网络, 没有后处理

FCOS

点+点到框的4个距离表示一个目标

仅凭唯一后处理极大值抑制达到了更高的检测性能.

(1)召回率较低; (2) centerness虽然提高了准确率, 但是缺乏理论可解释性.

可用于实力分割、关键点检测

设计复杂度低, 内存占用少

表 3 各类目标检测模型总结

表 4(Table 4)

表 4 基于关键点的anchor free目标检测性能比较

网络结构

COCO mAP(%)

检测速度(FPS)

CornerNet

42.1

1

CornerNet-Squeeze

34.4

33

CornerNet-Saccade

43.1

6

CenterNet(中心点和角点)

47.0

3

CenterNet(中心点)

45.1

1.4

FCOS

44.7

表 4 基于关键点的anchor free目标检测性能比较

5 总结与展望

近年来, 卷积神经网络正在不断的被运用到计算机视觉领域, 尤其是在目标检测方向已经有很多基于卷积神经的目标检测模型, 极大地提高了检测的精度和运算时间. 本文主要对基于关键点的anchor free目标检测方法进行了综述, 根据检测关键点个数的不同, 将基于关键点的anchor free目标检测模型进一步分为基于角点的目标检测模型、基于中心点的目标检测模型以及基于全卷积神经网络的目标检测模型. 对每类模型的方法进行了研究、分析和对比, 总结了每类模型的思路及其优缺点, 并对基于关键点的anchor free目标检测算法与基于锚框的检测算法性能做了对比, 由此可以看出anchor free目标检测算法不论是在速度还是精度上都有非常大的改善.

目前, 在交通等各领域的发展中, 目标检测是一大研究课题, 速度和精度检测仍是重中之重, 在现有研究的基础上, 我认为该领域中研究热点及发展趋势如下:

(1)从专注精度的CornerNet、CenterNet、FCOS和专注速度的CornerNet-Squeeze, anchor free目标检测未来的方向更加专注于精度和速度的结合. 同时为了提高目标的检测精度, 目前大多算法只是对单一时间、单一空间的信息进行融合, 研究者可以从多维度, 对多层级的信息进行融合以提升算法的准确度与鲁棒性.

(2)目标检测依赖大量的训练样本, 在数据标注上消费很大成本, anchor free目标检测在精度上已经有所提升, 那么如何对小规模数据的监督学习进行更有效的训练, 使其检测精度大幅度提高将会促进目标检测检测领域的进一步发展.

(3) Anchor free目标检测对已知类的检测已日趋成熟, 如何实现未知目标类的检测, 即从已知类别迁移到对未知类别的目标进行检测也将成为未来研究的热点.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值