计算机系统应用教程网站

网站首页 > 技术文章 正文

PaddleDetection v2.6发布:目标小?数据缺?PP新员逐一应对!

btikc 2024-12-05 09:54:18 技术文章 46 ℃ 0 评论

从2022年10月份开始,大家已经陆续在PaddleDetection仓库的 develop 分支下尝鲜体验了一些预发布的新算法。如今经过4个月的打磨升级,PaddleDetection v2.6正式发布,最新版本有哪些更新以及性能提升呢?快来打开这份更新解读吧!


▎更新重点


  • PP-YOLOE家族再添新员,半监督、少样本、蒸馏学习加持,旋转框、小目标、密集全场景检测覆盖;
  • PP-Human、PP-Vehicle:功能新增、推理提速、多路视频流支持;
  • 半监督检测、少样本学习、模型蒸馏算法全面开源,助力解决少样本、泛化性、标注量、冷启动问题。


点击文末阅读原文快速体验

https://github.com/PaddlePaddle/PaddleDetection


关于 PaddleDetection 的技术问题以及文末彩蛋欢迎大家入群讨论,也欢迎大家在 GitHub 点 star 支持我们的工作!




01

PP-YOLOE家族再添新员


在了解PP-YOLOE家族 v2.6升级内容前,让我们先回顾一下 PP-YOLOE+模型的特点。


PP-YOLOE+是基于飞桨云边一体高精度模型PP-YOLOE 迭代优化升级的版本,具备以下特点:


训练收敛加速


使用 Objects365预训练模型,减少训练轮数,训练收敛速度提升3.75倍。


下游任务泛化性显著提升


在农业、夜间安防、工业等不同场景数据集上验证,精度最高提升8.1%。


高性能部署能力


本次升级 PP-YOLOE+支持多种部署方式,包括 Python/C++、Serving、ONNX Runtime、ONNX-TRT、INT8量化等部署能力。


超强性能与超高泛化性使得 PP-YOLOE+助力开发者在最短时间、最少量数据上能得到最优效果


如下图是 PP-YOLOE+各个版本模型的性能情况



下图是 PP-YOLOE+与其他 YOLO主流模型的 benchmark 情况。在速度和精度上面,PP-YOLOE+均有优势。



  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/ppyoloe


v2.6更新内容中,基于 PP-YOLOE+的基础:


  • 我们补充了旋转框检测小目标检测密集检测场景专用模型
  • 同时针对端侧 GPU 场景的超高推理速度要求,进一步补充了超轻量通用目标检测模型PP-YOLOE+_t 版本
  • 同时我们提供了这些通用模型专用模型(旋转框检测、小目标检测、密集检测)的半监督学习少样本学习模型蒸馏技术方案,助力解决业务场景中少样本泛化性标注量冷启动等难题。


接下来就具体看一下吧。


▎PP-YOLOE+旋转框、小目标、密集全场景检测覆盖


PP-YOLOE-R:旋转框检测模型



PP-YOLOE-R(Rotate)是一个高效的单阶段Anchor-free旋转框检测模型,基于 PP-YOLOE+引入了一系列改进策略来提升检测精度。


根据不同的硬件对精度和速度的要求,PP-YOLOE-R 包含 s/m/l/x 四个尺寸的模型。在 DOTA 1.0数据集上,PP-YOLOE-R-l 和 PP-YOLOE-R-x 在单尺度训练和测试的情况下分别达到了78.14mAP 78.28 mAP,这在单尺度评估下超越了几乎所有的旋转框检测模型。通过多尺度训练和测试,PP-YOLOE-R-l 和 PP-YOLOE-R-x 的检测精度进一步提升至80.02mAP 和80.73 mAP,超越了所有的 Anchor-free方法并且和最先进的 Anchor-based 的两阶段模型精度几乎相当。


在保持高精度的同时,PP-YOLOE-R 避免使用特殊的算子,例如 Deformable Convolution 或 Rotated RoI Align,使其能轻松地部署在多种多样的硬件上


  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/rotate/ppyoloe_r


PP-YOLOE-SOD:小目标检测模型



PP-YOLOE-SOD(Small Object Detection)针对小目标检测提出了两种检测方案,分别是基于切图拼图流程优化的小目标检测方案以及基于原图模型算法优化的小目标检测方案。


同时提供了数据集自动分析脚本,只需输入数据集标注文件,便可得到数据集统计结果,辅助判断数据集是否是小目标数据集以及是否需要采用切图策略,同时给出网络超参数参考值。


在 VisDrone-DET数据集上,单模型精度达到38.5mAP。


  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/smalldet


PP-YOLOE-DOD:密集检测模型



PP-YOLOE-DOD(Dense Object Detection)是基于 PP-YOLOE+的密集目标检测算法,针对密集检测任务,我们做了如下优化:


  • 数据预处理
    为了适应商超数据的高分辨率,我们增大了模型训练和推理的输入尺寸;
  • 标签匹配策略
  • 为了适应密集场景,我们去除了静态匹配策略,在全部的训练周期中都使用动态匹配策略。


在 SKU数据集检测精度 mAP 60.3,达到了开源最优。


  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/ppyoloe/application


PP-YOLOE+_t:超轻量通用目标检测模型


PP-YOLOE+_t 是对 PP-YOLOE+ x、l、m、s 版本通用检测模型的进一步丰富,主要针对 Jetson 等端侧 GPU 硬件对检测的帧率与速度均有极高要求的情况下提出的超轻量模型,通过优化匹配策略、增加辅助头、更小的输入尺寸等方式优化性能与速度,实现“速度起飞”!


比较了解 PaddleDetection 的开发者可能知道,我们其实还有另一个速度起飞的模型大杀器 PP-PicoDet,二者的主要区别是 PP-PicoDet 主要是针对 Arm 等端侧 CPU 场景打造的,而 PP-YOLOE+主要针对 GPU 场景打造。PP-YOLOE+_t 聚焦于 Jetson 等边缘端场景使用,大家在选型时可以做参考。


如下图是 PP-YOLOE+_t版本的性能表现:



  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/ppyoloe


▎PP-YOLOE+半监督、少样本和蒸馏学习方案,助力解决少样本、泛化性、标注量、冷启动问题


PP-YOLOE+少样本学习方案


PaddleDetection团队针对 PP-YOLOE+提供了少样本学习的方案,引入了 Compare-Contrast算法。


在预训练模型的基础上,仅通过极少的标注数据即可训练得到较好的模型效果。


下表是 PP-YOLOE+_s版本模型在工业数据集PKU-Market-PCB 上,通过引入少样本学习方案,Box AP 得到了2.4的提升。



  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/few-shot


PP-YOLOE+半监督学习方案


PaddleDetection团队结合 Dense Teacher前沿算法,针对 PP-YOLOE+提供了半监督学习方案。


半监督学习结合有标签数据和无标签数据,在大幅节省数据标注的情况下,依然达到较高的模型精度。在实际产业应用过程中,半监督学习是项目冷启动时常见的策略之一。


下表是,在仅采用5%、10%有标签数据进行监督学习,95%、90%无标签数据进行半监督学习的情况下,精度得到了1.2~2.5的提升



  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/semi_det/baseline


■ PP-YOLOE+模型蒸馏方案


PaddleDetection团队针对 PP-YOLOE+ 提供了模型蒸馏方案,结合了 logits蒸馏feature蒸馏


模型参数量、推理速度不变的情况下,可以迁移高精度大模型的学习能力,从而达到更高的精度


如下表,通过大模型的蒸馏,小模型均有了1个点的精度提升。



  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/ppyoloe/distill


02

PP-Human、PP-Vehicle

功能新增、推理提速


▎PP-Human:行人分析工具箱,推理提速、多路视频流支持


PP-Human 经由真实业务场景数据深度打磨优化,拥有适应不同光线、复杂背景下的人体属性特征分析、异常行为识别、出入口人流计数与轨迹绘制、跨镜跟踪四大核心功能。不仅如此,PP-Human 还兼容单张图片、单路或多路视频等多种数据输入类型,更符合产业复杂的环境应用需求,同时考虑到产业自定义开发的需求,PP-Human 还提供了模型训练与功能新增全流程教程。


在本次 PaddleDetection v2.6更新中:


  • PP-YOLOE+_t模型的加持下,PP-Human行人分析工具箱开源边缘端实时检测模型,精度mAP 45.7,Jetson AGX Xavier端到端(包含前后处理)推理速达到80FPS
  • 同时,支持多路视频流部署能力,实现 Jetson AGX Xavier 4路视频流端到端20FPS 实时部署。


  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/deploy/pipeline


▎PP-Vehicle:车辆分析工具箱,新增逆行、压线分析、推理提速、多路视频流支持



PP-Vehicle 是一款针对车辆分析相关场景的开源工具,产品主要围绕以下几个方面进行设计开发:


  • 实用性

针对车辆分析场景共性的底层模型进行优选迭代。针对几个高频场景车牌识别、车流统计、违章分析、属性分析等进行了详细的后处理策略设计,可以满足业务的快速上线需求。同时提供丰富的二次开发教程,方便用户根据自己的业务场景进行私有化开发。

  • 泛化性

在公开数据集以及自采数据集上进行充分训练,并且提供预训练模型,覆盖车辆分析中监控视角、驾驶员视角、俯拍视角等常见相机视角。

  • 低代码

实现1行代码快速部署,支持图片、视频、单路/多路rtsp视频流输入,修改配置文件即可快速实现策略修改以及 pipeline 的组合。


在本次 PaddleDetection v2.6版本更新中:


  • PP-Vehicle车辆分析工具箱新增车辆逆行分析、压线分析功能


  • PP-YOLOE+_t模型的加持下,开源边缘端实时检测模型,精度mAP 53.5,Jetson AGX Xavier上端到端(包含前后处理)推理速度达速度80FPS


  • 同时,支持多路视频流部署能力,实现 Jetson AGX Xavier 4路视频流端到端20FPS实时部署


  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/deploy/pipeline


03

半监督检测、少样本学习、

模型蒸馏算法全面开源


除了上面的 PP-YOLOE+针对半监督、少样本学习、模型蒸馏方案外,我们还开源了更多的相关模型,大家可以基于不同的模型进行相关方案测试。


▎半监督检测


半监督目标检测是同时使用有标注数据和无标注数据进行训练的目标检测,既可以极大地节省标注成本,也可以充分利用无标注数据进一步提高检测精度。PaddleDetection团队复现了 DenseTeacher半监督检测算法,用户可以下载使用。


  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6/configs/semi_det


▎少样本学习


PaddleDetection团队联合百度研究院大数据实验室,在本次版本更新中开源两种少样本(Few-Shot)迁移学习的新算法Label Co-tuning 和 Contrastive Tuning,从不同角度应对标注不足的挑战,提升模型学习效果。


跨领域Label Co-tuning算法


该方法的主要思路是充分利用预训练模型的语义空间,挖掘其与下游任务的关联,计算出类别之间的关系作为下游任务的辅助语义标签,作为原始 one-hot类别标签的补充。


领域内Contrastive Tuning算法


对比学习是一种通用的表征学习思路,可以学习样例级的判别特征,也可视为一种有效的数据增强策略。该算法针对目标检测的任务特性,实现 patch级别的对比学习,以强化目标领域的表征学习效果。

  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.6/configs/few-shot


▎模型蒸馏


本次版本更新中,我们开源了 FGD蒸馏算法、LD蒸馏算法和 CWD蒸馏算法。


FGD蒸馏算法


FGD 全称为 Focal and Global Knowledge Distillation for Detectors,是目标检测任务的一种蒸馏方法。FGD蒸馏分为两个部分 Focal 和 Global。Focal蒸馏分离图像的前景和背景,让学生模型分别关注教师模型的前景和背景部分特征的关键像素。Global蒸馏部分重建不同像素之间的关系并将其从教师转移到学生,以补偿 Focal蒸馏中丢失的全局信息。实验结果表明,FGD蒸馏算法在基于 anchor 和 anchor free 的方法上能有效提升模型精度。在 PaddleDetection 中,我们实现了 FGD算法,并基于 RetinaNet算法进行了验证。


CWD蒸馏算法


CWD 全称为 Channel-wise Knowledge Distillation for Dense Prediction*,通过最小化教师网络与学生网络的通道概率图之间的 Kullback-Leibler (KL) 散度,使得在蒸馏过程更加关注每个通道的最显著的区域,进而提升文本检测与图像分割任务的精度。在 PaddleDetection 中,我们实现了 CWD算法,并基于 GFL(Generalized Focal Loss) 和 RetinaNet模型进行了验证。


LD蒸馏算法


LD 全称为 Localization Distillation for Dense Object Detection,将回归框表示为概率分布,把分类任务的 KD 用在定位任务上,并且使用因地制宜、分而治之的策略,在不同的区域分别学习分类知识与定位知识。在 PaddleDetection 中,我们实现了 LD算法,并基于 GFL模型进行了验证。


  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.6/configs/slim/distill


04

前沿算法量大管饱


PaddleDetection 持续跟踪深度学习视觉前沿算法,并评估挑选价值比较高的算法进行优化开源。在本次版本发新中新增如下方向算法:


  • YOLO家族新增 YOLOv8、YOLOv6-3.0
  • 目标检测算法新增 DINO, YOLOF
  • 新增 ViTDet系列检测模型,PP-YOLOE+ViT_base、Mask RCNN + ViT_base、Mask RCNN + ViT_large
  • 新增多目标跟踪算法 CenterTrack
  • 新增旋转框检测算法 FCOSR
  • 新增实例分割算法 QueryInst
  • 新增3D关键点检测算法 Metro3d


  • 了解更多

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.6


05

基础能力提升


在本次更新中,PaddleDetection 支持 Python3.10版本、EMA 支持过滤不更新参数、AdamW 适配飞桨框架2.4.1版本。


新增检测热力图可视化能力,适配 FasterRCNN/MaskRCNN系列、PP-YOLOE系列、BlazeFace、SSD、 RetinaNet。



06

Roadmap of PaddleDetection


我们已经在 PaddleDetection Issue区开辟了 Roadmap专区,欢迎您在此留下宝贵的建议、新特性需求或者任何想对 PaddleDetection团队说的话,我们会积极融入到后续的版本更新中,同时也欢迎大家参与到 PaddleDetection 的开源建设中。


  • Roadmap专区

https://github.com/PaddlePaddle/PaddleDetection/issues/7892


▎One More Thing


2023飞桨黑客马拉松PaddlePaddle Hackathon第四期现已正式启动,本次活动由深度学习技术及应用国家工程研究中心主办,飞桨承办,英特尔作为顶级赞助方,OpenVINO、Arm、Hugging Face、Jina、TVM、瑞芯微、算能、地平线等共同出品,旨在鼓励开发者了解与参与深度学习开源项目的共建。



本次活动上线200+个开发任务,从框架开发、模型套件开发、模型复现、硬件项目开发到产业落地方案应有尽有,根据开发难度分为基础任务和进阶任务。同时提供高达100w 的现金奖池以及飞桨黑客松证书,欢迎大家来 PaddleDetection专区领取任务:


https://github.com/PaddlePaddle/Paddle/issues/51281#detection

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表