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

计算机视觉研究院专栏

作者:Edison_G

近日,百度视觉团队借助PaddleDetection在计算机视觉顶会ECCV 2020 (European Conference on Computer Vision,欧洲计算机视觉国际会议)比赛中,斩获两个赛道冠军,分别是Tiny Object Detection和目标检测领域最权威的比赛COCO。

计算机视觉研究院

长按扫描维码

计算机视觉研究院

PaddleDetection是基于飞桨核心框架构建的目标检测开发套件,覆盖主流目标检测算法,并提供丰富的预训练模型,帮助开发者快速搭建出各种检测任务框架,高质量完成各类目标检测任务。PaddleDetection采用模块化设计,解耦了检测常用的组件,非常方便开发者按需组合并扩展新的算法。

PaddleDetection产品结构

经过不断打磨优化,PaddleDetection的 YOLO v3系列模型性能大幅增强,新增多款IoU(Interp 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,提升了1.5%。

4. 模型融合

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

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

COCO Object Detection

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

  1. 强大的

    目标检测

    分支

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

  3. Two pipeline策略

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。

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

3. Two pipeline策略

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

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

PP-YOLO

除了在学术界不断突破创新,取得好成绩外,飞桨目标检测套件PaddleDetection在工业界同样发挥着巨大的作用。工业视觉、自动驾驶、安防、新零售等我们身边熟知的各行各业都需要应用目标检测技术。由于其很好的平衡了标注成本、检测精度和速度等,成为当前智能制造产业升级浪潮中被商业化应用最为广泛的AI技术之一。

PaddleDetection在各领域的工业应用实际生产环境对检测算法的精度、速度、体积等要求往往十分苛刻。例如工业质检,生产线上往往需要毫秒级别的图片检测速度,而为了确保使用厂商收益最大化,还需要尽量平衡硬件成本和性能。因此,如何在保持高检测精度的前提下,尽量提高检测速度、减小模型体积,成为这项技术真正深入工业实际应用的关键。为了匹配工业实际应用,百度视觉团队探索出了一整套更深度的算法优化秘籍:PP-YOLO,模型精度更高,体积更小。

PP-YOLOYOLO v3的“华丽变身”,即使对检测视频中非常快速运动的目标也可以达到很好的效果。PP-YOLOYOLO v3的精度(在COCO test-dev2017数据集)从33.0%提升了12.9个绝对百分点,达到45.9%,处于业界领先行列!而在该精度下,其推理速度在V100上达到了72.9 FPS。也就是说,它在精度和预测速度都超越原生的YOLO v4,并且体积更小,实打实的成为工业应用场景最实用目标检测模型。

经过一系列算法优化,我们将训练迭代次数和学习率衰减的迭代次数调整至和原始YOLO v3模型的迭代次数一致,从25万次增加到50万次,对应学习率衰减的迭代次数调整至40万和45万,PP-YOLO模型在COCO minival数据集精度可达到45.3%,单卡V100上batch size=1时的预测速度为72.9 FPS。如果使用COCO test_dev2017数据集测试,精度将达到45.9%。

如下表所示,在不同输入尺度下PP-YOLO模型与YOLO v4模型在COCO数据集精度和V100推理速度的交手结果。

PP-YOLO所应用的的这套优化策略,也可以被尝试应用到该系列的其它模型上,产业开发者或者科研人员可借鉴这套优化算法展开进一步的探索。而这整套PP-YOLO的优化秘籍也被飞桨团队总结梳理成了论文,感兴趣的开发者可以参见下面的链接阅读原文。

PP-YOLO论文:

https://arxiv.org/abs/2007.12099

PP-YOLO文档:

https://github.com/PaddlePaddle/PaddleDetection/tree/release/0.4/configs/ppyolo

飞桨团队在AI Studio为大家创建了 PP-YOLO实战项目,以供开发者快速体验模型效果:

https://aistudio.baidu.com/aistudio/projectdetail/708923

更多PaddleDetection开源代码和参考文档,可登录如下地址获取:

https://github.com/PaddlePaddle/PaddleDetection

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

·官网地址·

https://www.paddlepaddle.org.cn/

·飞桨开源框架项目地址·

GitHub: 

https://github.com/PaddlePaddle/Paddle

Gitee: 

https://gitee.com/paddlepaddle/ Paddle

我们开创“计算机视觉协会”知识星球一年有余,也得到很多同学的认可,我们定时会推送实践型内容与大家分享,在星球里的同学可以随时提问,随时提需求,我们都会及时给予回复及给出对应的答复。

如果想加入我们“计算机视觉研究院”,请扫二维码加入我们。我们会按照你的需求将你拉入对应的学习群!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

计算机视觉研究院

长按扫描维码

EDC.CV

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值