百度飞桨PaddleDetection威力再显,助力获得两项ECCV目标检测冠军

AI应用信息10个月前发布 XIAOT
76 0
百度飞桨PaddleDetection威力再显,助力获得两项ECCV目标检测冠军PaddleDetection是基于飞桨核心框架构建的目标检测开发套件,覆盖主流目标检测算法,并提供丰富的预训练模型,帮助开发者快速搭建出各种检测任务框架,高质量完成各类目标检测任务。PaddleDetection采用模块化设计,解耦了检测常用的组件,非常方便开发者按需组合并扩展新的算法。

百度飞桨PaddleDetection威力再显,助力获得两项ECCV目标检测冠军PaddleDetection产品结构

经过不断打磨优化,PaddleDetection的YOLO v3系列模型性能大幅增强,新增多款IoU(Intersection over Union)、损失函数、以及多种强大的目标检测模型,套件整体丰富度再次提升。下面我们一起深度探究一下冠军团队的模型优化思路。

目标检测

(Tiny Object Detection)

目标检测任务使用TinyPerson数据集,包括794张训练图片,每张图片中包括上百个小目标人物。任务的目标是评估测试图片中Tiny大小(20*20~40*40像素)的人体目标的AP(Average Precision)。

百度视觉团队的开发同学研究了几种常见的两阶段检测器:Faster R-CNN、FPN、Deformable R-CNN、Cascade R-CNN等,从而探查其对不同IoU阈值的检测标准的适合性。

算法优化方法主要分为四个部分:数据增强、训练策略改进、模型改进和模型融合。

1. 数据增强

通常无人机采集的人群数据集,如Semantic Drone Dataset、Stanford Drone Dataset ,由于数据集数量较小,很难达到快速收敛和较好的检测效果。百度视觉团队采用额外的同类数据来进行同尺度预训练,从而提高模型对同等先验知识的理解,提高模型的检测能力。通过加入数据增强策略,提升2%至3%。

2. 训练策略改进

对于无人机航拍收集的数据,不同图像的原始尺寸和目标的相对尺寸有所不同,导致检测器对有些图像的理解困难。在训练过程中,我们随机地将输入图像的大小调整为原始大小的0.5、1.5倍、1.5倍,解决尺度差异问题。在改进训练策略以后,由57.9%提升至65.38%。

3. 模型改进

对于传统的二阶段检测器,如R-CNN和FPN系列,通常使用ResNet系列网络作为骨干网络。为了改进此种系列检测器,对于FPN检测器,P3层为微小物体的检测提供了相对应尺度的特征。然而,P3层的不足在于它具有较少的语义信息。因此用PAFPN代替FPN,提高了网络的语义识别能力。与普通的FPN相比,PAFPN增加了一条自下而上的路径,从而提高了基于提议的实例分割框架中的信息流。此外,在下采样模块中,使用“carafe”下采样方法代替原来的卷积模块下采样方法,然后使用可变形卷积模块。在上采样模块中,还使用可变形卷积模块代替原来的卷积模块对特征进行上采样。改进后的PAFPN,百度飞桨PaddleDetection威力再显,助力获得两项ECCV目标检测冠军提升了1.5%。

百度飞桨PaddleDetection威力再显,助力获得两项ECCV目标检测冠军

4. 模型融合

对于难度较大的无人机航拍的小目标检测任务,单尺度单模型显然无法满足图像的复杂以及低信噪比特性,因此,百度视觉团队考虑使用多尺度多模型实现高精度检测。对于模型融合方法,采用具有不同骨干网络(Res2Net, ResNet200,ResNeXt101,SENet154等)的Cascade R-CNN检测器进行融合。对于每个模型,预测了NMS后的边界框。给每个模型一个0到1区间的标量权重。所有权重总和为1,每个模型的盒子的可信度分数乘以其权重,最后合并来自所有模型的框并运行原始的NMS,添加来自不同模型的分数而不是只保留最高的一个。依次顺序使用NMS的修改合并了不同IoU阈值的预测框。最终,模型的达到了72.23%。

百度飞桨PaddleDetection威力再显,助力获得两项ECCV目标检测冠军

通过以上的优化策略,百度视觉团队在Tiny Object Detection比赛中获得冠军,领先第二名0.8%。

COCO Object Detection

COCO是目前学术界最权威的检测和实例分割比赛。COCO数据集中包括11万条训练数据,涵盖80个类别。COCO目标检测实例分割任务中三个关键优化策略:

  1. 强大的

    目标检测分支

  2. 加强版FPN模块和加强版header
  3. Two pipeline策略
百度飞桨PaddleDetection威力再显,助力获得两项ECCV目标检测冠军

1. 强大的目标检测分支

比赛中,我们用效果优良的Cascade Mask R-CNN和HTC网络作为基础网络,在这些基础网络上,加入更多改进策略来提升检测效果。

首先,用PaddlePaddle框架下的ImageNet的蒸馏模型作为预训练模型,训练object365数据集的检测模型;并用这个训练好的object365检测模型作为预训练模型,来训练相同网络结构的COCO模型,这样可以在检测任务上获得显著提升的效果。对于具体的网络结构来说,采用Res2net200模型、CBResnet200、SE154模型作为检测模型的backbone。其中,Res2net200的检测模型在单尺度下mAP可以达到56.2%。

其次,使用加强版的FPN模块来提升网络效果,Acfpn网络来增强检测能力,该模型可以解决高分辨率输入上特征图分辨率与感受域之间的矛盾,Acfpn包括两个模块,加入Acfpn后,box mAP增加了0.8%。除了AC-FPN,我们还使用DetectoRS中的RFP网络,RFP网络将反馈连接添加到自底向上的主干层中,这个在HTC-R50上使box mAP提升4.2%。

除了加强版的FPN模块,还使用了non-local算子和数据增强策略。non-local算子用于描述距离像素之间的关联,输出特征图的每个元素都会受到所有输入特征图的影响;同时,还根据COCO数据集的特性,使用了随机擦除的数据增强策略,即在图像中随机选取一个矩形区域,在训练中对其像素进行随机擦除,这样可以降低过拟合的风险,并提高模型对于遮挡目标检测的鲁棒性。

2. 加强版FPN模块和加强版header

为了提高模型最终mask的准确率,我们使用了增强版的header模块。在增强版header模块中,使用HTC的header作为基础header。在此基础上,用增强的双网络box header来代替原有的box header。除此之外,mask header分支整合了rescoring信息、实际坐标信息和边缘信息,组合成了增强版的header。

百度飞桨PaddleDetection威力再显,助力获得两项ECCV目标检测冠军

原始的HTC的box header只有两个全卷积层用于目标框的回归和分类,而增强版的双分支box header使用两个分支,分别预测框的坐标和类别。为了提高效率, 没有用过重的head结构,只使用一个bottleblock模块代替第一个卷积层,其他的卷积层不变;而对于分割rescoring分支,为了避免计算量过大,只在最后一个阶段加入分割rescoring分支,并用rescoring分支的结果取代原有的box分值赋给mask;而边缘分割分支,是在mask header里融入了边缘信息,来提升mask mAP。

百度飞桨PaddleDetection威力再显,助力获得两项ECCV目标检测冠军

3. Two pipeline策略

为了有效利用多个检测网络的结果,将检测网络的结果当作候选框输入到分割网络的head前,最终得到实例分割网络的最终mask结果,通过这种two pipeline策略,mask mAP增长3.1%。

基于上述优化算法,百度视觉团队在COCO object detection track中一举夺魁。

    © 版权声明

    相关文章