Skip to content

Paddle YOLOX, 51.8mAP on COCO val by YOLOX-x, 44.6mAP on YOLOX-s ConvNeXt

License

Notifications You must be signed in to change notification settings

nemonameless/PaddleDetection_YOLOX

Repository files navigation

简介

此repository是基于PaddleDetectionYOLOX,其upstream为PaddleDetection的develop分支,在保持与PaddleDetection同步更新的同时,也更新关于YOLOX的一些改进,并同步更新github和gitee的代码,欢迎一起使用和建设!

注意:

Updates!

  • 【2022/06/26】新增YOLOX-ConvNeXt目标检测模型,s版本COCO val2017数据集精度44.6%。
  • 【2022/03/24】新增YOLOX目标检测模型,支持nano/tiny/s/m/l/x版本,x版本COCO val2017数据集精度51.8%。

ModelZoo on COCO

网络模型 输入尺寸 mAP(pytorch) mAP(paddle) 模型推理耗时(ms)(paddle) 下载链接 配置文件
YOLOX-nano 416 25.8 26.1 2.3 model config
YOLOX-tiny 416 32.8 32.9 2.8 model config
YOLOX-s 640 40.5 40.4 3.0 model config
YOLOX-m 640 46.9 46.9 5.8 model config
YOLOX-l 640 49.7 50.1 9.3 model config
YOLOX-x 640 51.1 51.8 16.6 model config
网络网络 输入尺寸 图片数/GPU 学习率策略 模型推理耗时(ms) mAPval
0.5:0.95
mAPval
0.5
Params(M) FLOPs(G) 下载链接 配置文件
YOLOX-tiny 416 8 300e 2.8 32.9 50.4 5.06 6.45 下载链接 配置文件
YOLOX-cdn-tiny 416 8 300e 1.9 32.4 50.2 5.03 6.33 下载链接 配置文件
YOLOX-s 640 8 300e 3.0 40.4 59.6 9.0 26.8 下载链接 配置文件
YOLOX-crn-s 640 8 300e 3.0 40.4 59.6 7.7 24.69 下载链接 配置文件
网络网络 输入尺寸 图片数/GPU 学习率策略 模型推理耗时(ms) mAPval
0.5:0.95
mAPval
0.5
Params(M) FLOPs(G) 下载链接 配置文件
YOLOX-crn-s 640 8 300e 3.0 40.4 59.6 7.7 24.69 下载链接 配置文件
YOLOX-ConvNeXt-s 640 8 36e - 44.6 65.3 36.2 27.52 下载链接 配置文件

注意:

  • 具体精度和速度细节请查看yolox
  • ConvNeXt模型请查看convnext

TODO

  • 换与YOLOv5最新版相同主干网络结构--YOLOX-cdn
  • 换主干网络:CSP-ResNet(crn)
  • YOLOX-ConvNeXt
  • Transformer modules
  • 更多Data Augmentation、Attention Module、Loss
  • 精简代码只保留YOLO系列模型(YOLOv3、PP-YOLO、PP-YOLOv2、PP-YOLOE、YOLOX)
  • Objects365 pretrain

======================================================

简体中文 | English

飞桨目标检测开发套件,端到端地完成从训练到部署的全流程目标检测应用。

产品动态

  • 🔥 2022.3.24:PaddleDetection发布release/2.4版本

    • 发布高精度云边一体SOTA目标检测模型PP-YOLOE,提供s/m/l/x版本,l版本COCO test2017数据集精度51.6%,V100预测速度78.1 FPS,支持混合精度训练,训练较PP-YOLOv2加速33%,全系列多尺度模型,满足不同硬件算力需求,可适配服务器、边缘端GPU及其他服务器端AI加速卡。
    • 发布边缘端和CPU端超轻量SOTA目标检测模型PP-PicoDet增强版,精度提升2%左右,CPU预测速度提升63%,新增参数量0.7M的PicoDet-XS模型,提供模型稀疏化和量化功能,便于模型加速,各类硬件无需单独开发后处理模块,降低部署门槛。
    • 发布实时行人分析工具PP-Human,支持行人跟踪、人流量统计、人体属性识别与摔倒检测四大能力,基于真实场景数据特殊优化,精准识别各类摔倒姿势,适应不同环境背景、光线及摄像角度。
    • 新增YOLOX目标检测模型,支持nano/tiny/s/m/l/x版本,x版本COCO val2017数据集精度51.8%。
  • 2021.11.03: PaddleDetection发布release/2.3版本

    • 发布轻量级检测特色模型⚡PP-PicoDet,0.99m的参数量可实现精度30+mAP、速度150FPS。
    • 发布轻量级关键点特色模型⚡PP-TinyPose,单人场景FP16推理可达122FPS、51.8AP,具有精度高速度快、检测人数无限制、微小目标效果好的优势。
    • 发布实时跟踪系统PP-Tracking,覆盖单、多镜头下行人、车辆、多类别跟踪,对小目标、密集型特殊优化,提供人、车流量技术解决方案。
    • 新增Swin TransformerTOODGFL目标检测模型。
    • 发布Sniper小目标检测优化模型,发布针对EdgeBoard优化PP-YOLO-EB模型。
    • 新增轻量化关键点模型Lite HRNet关键点模型并支持Paddle Lite部署。
  • 更多版本发布

简介

PaddleDetection为基于飞桨PaddlePaddle的端到端目标检测套件,内置30+模型算法250+预训练模型,覆盖目标检测、实例分割、跟踪、关键点检测等方向,其中包括服务器端和移动端高精度、轻量级产业级SOTA模型、冠军方案和学术前沿算法,并提供配置化的网络模块组件、十余种数据增强策略和损失函数等高阶优化支持和多种部署方案,在打通数据处理、模型开发、训练、压缩、部署全流程的基础上,提供丰富的案例及教程,加速算法产业落地应用。

特性

  • 模型丰富: 包含目标检测实例分割人脸检测关键点检测多目标跟踪250+个预训练模型,涵盖多种全球竞赛冠军方案。
  • 使用简洁:模块化设计,解耦各个网络组件,开发者轻松搭建、试用各种检测模型及优化策略,快速得到高性能、定制化的算法。
  • 端到端打通: 从数据增强、组网、训练、压缩、部署端到端打通,并完备支持云端/边缘端多架构、多设备部署。
  • 高性能: 基于飞桨的高性能内核,模型训练速度及显存占用优势明显。支持FP16训练, 支持多机训练。

技术交流

  • 如果你发现任何PaddleDetection存在的问题或者是建议, 欢迎通过GitHub Issues给我们提issues。

  • 欢迎加入PaddleDetection QQ、微信用户群(添加并回复小助手“检测”)

套件结构概览

Architectures Backbones Components Data Augmentation
    Object Detection
    • Faster RCNN
    • FPN
    • Cascade-RCNN
    • PSS-Det
    • RetinaNet
    • YOLOv3
    • PP-YOLOv1/v2
    • PP-YOLO-Tiny
    • PP-YOLOE
    • YOLOX
    • SSD
    • CenterNet
    • FCOS
    • TTFNet
    • TOOD
    • GFL
    • PP-PicoDet
    • DETR
    • Deformable DETR
    • Swin Transformer
    • Sparse RCNN
    Instance Segmentation
    • Mask RCNN
    • Cascade Mask RCNN
    • SOLOv2
    Face Detection
    • BlazeFace
    Multi-Object-Tracking
    • JDE
    • FairMOT
    • DeepSORT
    • ByteTrack
    KeyPoint-Detection
    • HRNet
    • HigherHRNet
    • Lite-HRNet
    • PP-TinyPose
Details
  • ResNet(&vd)
  • Res2Net(&vd)
  • CSPResNet
  • SENet
  • Res2Net
  • HRNet
  • Lite-HRNet
  • DarkNet
  • CSPDarkNet
  • MobileNetv1/v3
  • ShuffleNet
  • GhostNet
  • BlazeNet
  • DLA
  • HardNet
  • LCNet
  • ESNet
  • Swin-Transformer
Common
  • Sync-BN
  • Group Norm
  • DCNv2
  • EMA
KeyPoint
  • DarkPose
FPN
  • BiFPN
  • CSP-PAN
  • Custom-PAN
  • ES-PAN
  • HRFPN
Loss
  • Smooth-L1
  • GIoU/DIoU/CIoU
  • IoUAware
  • Focal Loss
  • CT Focal Loss
  • VariFocal Loss
Post-processing
  • SoftNMS
  • MatrixNMS
Speed
  • FP16 training
  • Multi-machine training
Details
  • Resize
  • Lighting
  • Flipping
  • Expand
  • Crop
  • Color Distort
  • Random Erasing
  • Mixup
  • AugmentHSV
  • Mosaic
  • Cutmix
  • Grid Mask
  • Auto Augment
  • Random Perspective

模型性能概览

云端模型性能对比

各模型结构和骨干网络的代表模型在COCO数据集上精度mAP和单卡Tesla V100上预测速度(FPS)对比图。

说明:

  • CBResNetCascade-Faster-RCNN-CBResNet200vd-FPN模型,COCO数据集mAP高达53.3%
  • Cascade-Faster-RCNNCascade-Faster-RCNN-ResNet50vd-DCN,PaddleDetection将其优化到COCO数据mAP为47.8%时推理速度为20FPS
  • PP-YOLO在COCO数据集精度45.9%,Tesla V100预测速度72.9FPS,精度速度均优于YOLOv4
  • PP-YOLO v2是对PP-YOLO模型的进一步优化,在COCO数据集精度49.5%,Tesla V100预测速度68.9FPS
  • PP-YOLOE是对PP-YOLO v2模型的进一步优化,在COCO数据集精度51.6%,Tesla V100预测速度78.1FPS
  • YOLOXYOLOv5均为基于PaddleDetection复现算法
  • 图中模型均可在模型库中获取
移动端模型性能对比

各移动端模型在COCO数据集上精度mAP和高通骁龙865处理器上预测速度(FPS)对比图。

说明:

  • 测试数据均使用高通骁龙865(4*A77 + 4*A55)处理器batch size为1, 开启4线程测试,测试使用NCNN预测库,测试脚本见MobileDetBenchmark
  • PP-PicoDetPP-YOLO-Tiny为PaddleDetection自研模型,其余模型PaddleDetection暂未提供

模型库

1. 通用检测

PP-YOLOE系列 推荐场景:Nvidia V100, T4等云端GPU和Jetson系列等边缘端设备

模型名称 COCO精度(mAP) V100 TensorRT FP16速度(FPS) 配置文件 模型下载
PP-YOLOE-s 42.7 333.3 链接 下载地址
PP-YOLOE-m 48.6 208.3 链接 下载地址
PP-YOLOE-l 50.9 149.2 链接 下载地址
PP-YOLOE-x 51.9 95.2 链接 下载地址

PP-PicoDet系列 推荐场景:ARM CPU(RK3399, 树莓派等) 和NPU(比特大陆,晶晨等)移动端芯片和x86 CPU设备

模型名称 COCO精度(mAP) 骁龙865 四线程速度(ms) 配置文件 模型下载
PicoDet-XS 23.5 7.81 链接 下载地址
PicoDet-S 29.1 9.56 链接 下载地址
PicoDet-M 34.4 17.68 链接 下载地址
PicoDet-L 36.1 25.21 链接 下载地址

前沿检测算法

模型名称 COCO精度(mAP) V100 TensorRT FP16速度(FPS) 配置文件 模型下载
YOLOX-l 50.1 107.5 链接 下载地址
YOLOv5-l 48.6 136.0 链接 下载地址

其他通用检测模型 文档链接

2. 实例分割
模型名称 模型简介 推荐场景 COCO精度(mAP) 配置文件 模型下载
Mask RCNN 两阶段实例分割算法 云边端 box AP: 41.4
mask AP: 37.5
链接 下载地址
Cascade Mask RCNN 两阶段实例分割算法 云边端 box AP: 45.7
mask AP: 39.7
链接 下载地址
SOLOv2 轻量级单阶段实例分割算法 云边端 mask AP: 38.0 链接 下载地址
3. 关键点检测
模型名称 模型简介 推荐场景 COCO精度(AP) 速度 配置文件 模型下载
HRNet-w32 + DarkPose
top-down 关键点检测算法
输入尺寸384x288
云边端
78.3 T4 TensorRT FP16 2.96ms 链接 下载地址
HRNet-w32 + DarkPose top-down 关键点检测算法
输入尺寸256x192
云边端 78.0 T4 TensorRT FP16 1.75ms 链接 下载地址
PP-TinyPose 轻量级关键点算法
输入尺寸256x192
移动端 68.8 骁龙865 四线程 6.30ms 链接 下载地址
PP-TinyPose 轻量级关键点算法
输入尺寸128x96
移动端 58.1 骁龙865 四线程 2.37ms 链接 下载地址

其他关键点检测模型 文档链接

4. 多目标跟踪PP-Tracking
模型名称 模型简介 推荐场景 精度 配置文件 模型下载
DeepSORT SDE多目标跟踪算法 检测、ReID模型相互独立
云边端
MOT-17 half val: 66.9 链接 下载地址
ByteTrack SDE多目标跟踪算法 仅包含检测模型 云边端 MOT-17 half val: 77.3 链接 下载地址
JDE JDE多目标跟踪算法 多任务联合学习方法 云边端 MOT-16 test: 64.6 链接 下载地址
FairMOT JDE多目标跟踪算法 多任务联合学习方法 云边端 MOT-16 test: 75.0 链接 下载地址

其他多目标跟踪模型 文档链接

5. 产业级实时行人分析工具
功能\模型 目标检测 多目标跟踪 属性识别 关键点检测 行为识别 ReID
行人检测
行人跟踪
属性识别(图片)
属性识别(视频)
摔倒检测
跨镜跟踪
模型精度 mAP 56.3 MOTA 72.0 mA 94.86 AP 87.1 AP 96.43 mAP 98.8
T4 TensorRT FP16 预测速度 28.0ms 33.1ms 单人2ms 单人2.9ms 单人2.7ms 单人1.5ms

点击“ ✅ ”即可下载对应模型

详细信息参考文档

文档教程

入门教程

进阶教程

课程专栏

  • 【理论基础】目标检测7日打卡营 目标检测任务综述、RCNN系列目标检测算法详解、YOLO系列目标检测算法详解、PP-YOLO优化策略与案例分享、AnchorFree系列算法介绍和实践

  • 【产业实践】AI快车道产业级目标检测技术与应用 目标检测超强目标检测算法矩阵、实时行人分析系统PP-Human、目标检测产业应用全流程拆解与实践

  • 【行业特色】2022.3.26 智慧城市行业七日课 城市规划、城市治理、智慧政务、交通管理、社区治理

应用案例

第三方教程推荐

版本更新

版本更新内容请参考版本更新文档

许可证书

本项目的发布受Apache 2.0 license许可认证。

贡献代码

我们非常欢迎你可以为PaddleDetection提供代码,也十分感谢你的反馈。

引用

@misc{ppdet2019,
title={PaddleDetection, Object detection and instance segmentation toolkit based on PaddlePaddle.},
author={PaddlePaddle Authors},
howpublished = {\url{https://github.com/PaddlePaddle/PaddleDetection}},
year={2019}
}