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

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

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

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,提升了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

欢迎大家给我们点Star、Fork或提出宝贵建议!

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

·官网地址·

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

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

GitHub: 

https://github.com/PaddlePaddle/Paddle

Gitee: 

https://gitee.com/paddlepaddle/ Paddle

飞桨PaddlePaddle
飞桨PaddlePaddle

飞桨(PaddlePaddle)是中国首个自主研发、功能完备、开源开放的产业级深度学习平台。

https://www.paddlepaddle.org
专栏二维码
产业目标检测ECCV 2020PaddleDetection百度飞桨
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

损失函数技术

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

YOLO技术

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

准确率技术

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

先验知识技术

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

无人机技术

无人机(Uncrewed vehicle、Unmanned vehicle、Drone)或称无人载具是一种无搭载人员的载具。通常使用遥控、导引或自动驾驶来控制。可在科学研究、军事、休闲娱乐用途上使用。

上采样技术

在数字信号处理中,上采样、扩展和内插是与多速率数字信号处理系统中的重采样过程相关的术语。 上采样可以与扩展同义,也可以描述整个扩展和过滤(插值)过程。

百度机构

百度是全球最大的中文搜索引擎,是一家互联网综合信息服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

https://www.baidu.com/
实例分割技术

实例分割是检测和描绘出现在图像中的每个不同目标物体的任务。

模型优化技术

像卷积神经网络(CNN)这样的深度学习模型具有大量的参数;实际上,我们可以调用这些超参数,因为它们原本在模型中并没有被优化。你可以网格搜索这些超参数的最优值,但需要大量硬件计算和时间。改进模型的最佳方法之一是基于在你的领域进行过深入研究的专家的设计和体系结构,他们通常拥有强大的硬件可供使用。常见的简单模型优化技巧包括迁移学习、dropout、学习率调整等

目标检测技术

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

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