传统目标检测算法流程(最新单步目标检测框架)

作者 | Tiancai Wang等

译者 | 路一直都在

出品 | AI科技大本营(传统目标检测算法流程(最新单步目标检测框架)(1)ID:rgznai100)

one-stage的目标检测方法因其具有实时性强、检测精度高等特点,近年来受到广泛传统目标检测算法流程(最新单步目标检测框架)(2)关注。目标检测包括分类和定位两个子任务,通常来说,one-stage目标检测有通用的策略:利用一个经过ImageNet预训练的backbone完成分类任务,利用一个自上而下的特征金字塔表示形式处理尺度变化问题。

与常见的策略相反,最近的工作已经证明了从零开始训练的好处,以减少分类和定位之间的任务差距,特别是在高重叠阈值的情况下。然而,与基于微调的检测模型相比,从零开始训练的检测模型需要的训练时间要长得多,不能满足实时的要求。

本文设计了一个one-stage检测框架,它传统目标检测算法流程(最新单步目标检测框架)(3)结合了微调预训练模型和从零开始训练的优点。该框架包括一个预训练过的标准backbone网络,一个轻量级的从零开始训练的辅助网络。此外,作者认为通常使用的自顶向下的金字塔表示只传统目标检测算法流程(最新单步目标检测框架)(4)关注于将高级语义从顶层传递到底层,因此在检测框架中引入了一个双向网络,它可以有效地传递中低层次和高层次的语义信息。

传统目标检测算法流程(最新单步目标检测框架)(5)

在COCO和UAVDT上的实验表明,以经典的VGG作为backbone,本文提出的方法相比baseline在AP指标上分别提高了7.4%和4.2%。在COCO测试集上,固定传统目标检测算法流程(最新单步目标检测框架)(6)300×传统目标检测算法流程(最新单步目标检测框架)(7)300输入,本文提出的以ResNet为backbone的检测器在单级推理方面超过了现有的单级检测方法,AP达到了34.3 ,在一个Titan X GPU上时间为19毫秒,同时兼顾了精度和速度。

引文

one-stage和two-stage目标检测框架

由于深度神经网络尤其是卷积神经网络在计算机视觉中的广泛应用,诸如目标识别,检测,分割,跟踪等很多视觉任务都取得了很好的发展。目标检测包括对目标的分类和定位两个任务,主流的检测框架可以大致分为两类:one-stage系列和two-stage系列。two-stage系列的代表算法有Faster R-CNN,首先选择出所有的候选区域,然后针对每个候选区域进行分类和回归,有效的提升了目标检测的正确率,但是这种先筛选后检测的策略,在速度上的表现不是很好,于是针对实时的要求,one-stage目标检测框架被提出,代表性算法YOLO,SSD等通过直接回归的策略,有效的提升了检测速度,但是准确性相比two-stage系列要略逊一筹。

小目标检测的难点

近来的one-stage探测器的目标是获得与two-stage相近的检测精度。尽管在大中型目标上效果较好,但这些探测器在小目标上的性能却低于预期。例如,当使用一个500×500的输入时,使用RetinaNet在COCO数据集上, AP为47,但在小目标上,AP只有 14。小目标检测是一个具有挑战性的问题,它既需要精确描述对象的低层/中层信息,也需要区分目标对象与背景或其他对象类别的高级语义信息。

预训练网络的利弊

主流的one-stage目标检测框架的通用策略是:利用一个经过ImageNet预训练的backbone完成分类任务。然后利用检测目标的数据集进行微调,从而达到快速收敛的效果。但是目标检测中的分类任务和定位任务之间仍然存在较大差异,尤其是在目标框重叠阈值高的情况下。在ICCV2019Kaiming He的最新论文中,也对利用ImageNet进行预训练然后fine-tune这种模式进行了思考,并且认为从零开始训练检测模型,有助于精确定位。但是另一方面,与典型的基于微调的网络相比,从零开始训练非常深的网络需要的训练时间要长得多。

本文引入一个新的检测框架,优势互补,将预训练和从零开始学习的优点传统目标检测算法流程(最新单步目标检测框架)(8)结合起来,组成了一个标准网络,该网络使用一个预训练的backbone和一个从零开始训练的辅助网络。辅助网络为标准的预训练网络提供低/中级信息的补充,有利于中小目标的检测。

综上所述,在检测不同尺度的目标(尤其是小目标)时,需要低级/中级信息和高级语义信息。当前探测器通常使用自顶向下的金字塔特征表示,其中来自顶层或后一层的高层信息被融合到底层或前一层语义上较弱的高分辨率特征。尽管这种自顶向下的特征金字塔表示可以提高性能,但它只向前面的层注入了高级语义信息。此外,这种金字塔代表是由许多层以一层一层的方式融合而成。在本文中,作者认为高层信息与前一层,低层/中层信息与后一层的融合是多尺度目标检测的关键。

方法

网络结构

整体的网络结构如下图所示,由三部分组成:(1)标准的SSD网络结构作为backbone(2)从零开始训练的轻量级网络(LSN)(3)双向网络

传统目标检测算法流程(最新单步目标检测框架)(9)

1)标准SSD网络

将预训练的SSD网络作为backbone,SSD网络的结构如下图所示,在本文中,选取conv4_3,F C_7, conv8_2, conv9 _2, conv10 _2, and conv11 _2作为骨干网特征,使用不同分辨率的层来执行独立的预测。

传统目标检测算法流程(最新单步目标检测框架)(10)

2)轻量级辅助网络(LSN)

LSN网络与SSD特征层紧密相连,用于构造低层/中层特征表示,称为LSN特征。

如下图所示,现有的特征提取策略是:从主干网络中提取特征,在多个卷积块和最大池化层的重复堆叠中提取特征,以此产生语义信息丰富的特征。这种特征提取方式有利于图像分类任务,因为分类任务要求的是平移不变性的即目标位置发生变化,最后输出的类别信息也应该一致。但是在目标检测任务中,由于不仅仅有分类的要求,还需要进行目标的定位,因此更需要准确的轮廓信息,而特征中的低层,中层特征正是包含这种轮廓边缘信息,对于目标检测十分重要。

传统目标检测算法流程(最新单步目标检测框架)(11)

为了弥补主干网络在提取特征过程中的损失,本文提出了LSN特征提取方案。如下图所示,首先经过一个较大的下采样率进行池化操作,将输入图片的size调整到SSD中第一层的输入size,然后被送入到一个轻量级的连续操作LSO(Light-weight-serial operations)中去,LSO包括卷积层,BN层,ReLU层等结构。

传统目标检测算法流程(最新单步目标检测框架)(12)

需要注意的是,LSN是参数是随机初始化的。它遵循类似于标准SSD的金字塔特征层次结构

传统目标检测算法流程(最新单步目标检测框架)(13)

其中,n是特征金字塔的层数。

下图是LSN的具体结构,输入图片I首先经过一个降采样(DS)操作,得到与标准SSD网络第一层相同的尺寸,然后,利用降采样后的图片It生成初始的LSN特征 :

传统目标检测算法流程(最新单步目标检测框架)(14)

其中, φint(0)表示连续操作,包括1个3x3卷积,1个1x1卷积。然后,初始的卷积用来生成中间卷积 Sint,第K层的特征由第K-1层特征作为输入:

传统目标检测算法流程(最新单步目标检测框架)(15)

其中,k=(1,...,n),φint(k)表示一个3x3卷积。当k=1时,(k-1)层的特征就是上文的初始特征。最后,在第K层的中间特征上加入1x1卷积,产生LSN网络在第k层上在最终特征

传统目标检测算法流程(最新单步目标检测框架)(16)

其中 φtrans(k)表示1x1卷积,用来进行升降维,使得特征维度跟SSD中的特征维度匹配。下图是LSN网络的整体结构图

传统目标检测算法流程(最新单步目标检测框架)(17)

3)双向网络

与传统的FPN结构相比,有几个不同点:

1)双向网络中的自底向上方案以级联的方式将前一层的特征传播到后一层

2)FPN中的top-down通路通过级联操作逐层融合了许多CNN层。在双向网络的top-down通路,预测层通过独立的并行连接进行融合,而不是逐层逐层的级联/顺序融合。

双向网络,顾名思义,由两个方向(自底向上,自上而下)的网络构成。通过两个方向的通路,双向网络在检测网络中同时传递低层和高层语义信息。

自底向上的网络

下图是bottom-up网络的结构示意,传统目标检测算法流程(最新单步目标检测框架)(18)结合backbone和来自LSN特征,将不同层次的特征以前级联的方式进行前向传播,得到前向特征。将此任务称为自底向上的特征传播,用B表示。

传统目标检测算法流程(最新单步目标检测框架)(19)

第K层前向特征可以通过下式计算得到:

传统目标检测算法流程(最新单步目标检测框架)(20)

其中,Sk是LSN在第K层得到的特征,Ok代表主干网络得到的特征,Wk-1表示一个3x3卷积块,包括卷积层和BN层,fk-1是前一层输出特征,在本层作为一个输入, φk表示一组连续操作,包括ReLu,3x3卷积。⊗和⊕分别表示元素相乘和元素相加。

最后,自底向上网络各层次的前向传播特征表示为一个前向特征金字塔:

传统目标检测算法流程(最新单步目标检测框架)(21)

自上而下的网络

为了进一步将高级语义信息从后一层注入到前一层,引入了自上而下的网络。如下图所示,该网络将所有后续层的所有特性连接到当前层,它通过网络中独立的并行连接来传递高级语义。

传统目标检测算法流程(最新单步目标检测框架)(22)

最后,自上而下网络各层次的后向传播特征表示为一个后向特征金字塔:

传统目标检测算法流程(最新单步目标检测框架)(23)

具体操作上,首先引入几个1x1卷积块来降低前向传播金字塔Fp中的特征维度。以第K层为例,降维后的所有高层特征叠加,获得最终预测需要的特征bk

传统目标检测算法流程(最新单步目标检测框架)(24)

其中,Wi是一个1x1卷积块,用来降维;Wmk是一个1x1卷积块,用来融合所有来自高层的特征;µk是上采样操作;γk是一个3x3卷积块,用来融合所有前向特征;∑表示特征维度叠加。

这里需要注意一点,在自上而下的网络中,如果本身处于特征中的最高层,就不需要融合任何底层特征。这意味着最高层的前向特征被直接用作预测。

实验

1)数据集

MS COCO:80类别,共包含160K图像数据

UAVDT dataset:车辆类别包括轿车、卡车和公共汽车。数据集包含从100个视频序列中选择的80k带注释的帧

2)实验结果

如下表所示,在COCO测试集上,SSD在大目标检测上的AP有43.3,但是在小目标的检测上,SSD的AP骤减到6.2,而本文提出的方法,在使用相同的VGG情况下,AP相比SSD总体提升了6.7%。更重要的是,与SSD框架相比,本文的检测器在小目标上实现了两倍以上的检测性能提升。

传统目标检测算法流程(最新单步目标检测框架)(25)

虽然基于two-stage的网络可以获得更高的精度,但是它们的计算开销很大,通常需要较大的输入分辨率,并且处理图像的时间通常超过100毫秒。例如,Cascade R-CNN的AP达到42.8,但是处理图像需要141ms。本文的检测器具有速度和精度的良好平衡。

3)消融实验

分别实验检测网络中SSD,LSN,bi-directional对性能的影响。结果如下所示,可以看到,LSN,bi-directional都对性能有提升,当组合在一起时,提升最大。

传统目标检测算法流程(最新单步目标检测框架)(26)

4)检测效果

下图是本文检测器在COCO和UAVDT数据集上的检测结果,可以看到,本文的方法对小目标的检测性能提升十分明显。

传统目标检测算法流程(最新单步目标检测框架)(27)

结论

本文提出了一种one-stage的目标检测方法,该方法由标准SSD网络、轻量级随机初始化网络(LSN)和双向网络三部分组成。

LSN是从零开始训练的,产生的特征用来补充主干网络得到的特征。双向网络的设计目的是在检测网络中同时传递中低层次和高层次的语义信息。在COCO和UAVDT数据集上的实验结果表明,本文提出的方法达到了精度和速度的良好均衡。

论文链接:

传统目标检测算法流程(最新单步目标检测框架)(28)http://openaccess.thecvf传统目标检测算法流程(最新单步目标检测框架)(29).com/content_ICCV_2019/html/Wang_Learning_Rich_Features_at_High-Speed_for_Single-Shot_Object_Detection_ICCV_2019_paper.html

代码链接:

https://github传统目标检测算法流程(最新单步目标检测框架)(30).com/vaesl/LRF-Net

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页