最新更新请前往PaddleYOLO使用。
- 全面覆盖的YOLO家族经典与最新模型: 包括YOLOv3,百度飞桨自研的实时高精度目标检测检测模型PP-YOLOE,以及前沿检测算法YOLOv4、YOLOv5、YOLOX,MT-YOLOv6及YOLOv7
- 更强的模型性能:基于各家前沿YOLO算法进行创新并升级,缩短训练周期5~8倍,精度普遍提升1%~5% mAP;使用模型压缩策略实现精度无损的同时速度提升30%以上
- 完备的端到端开发支持:支持从模型训练、评估、预测到模型量化压缩,部署多种硬件的端到端开发全流程。同时支持不同模型算法灵活切换,一键实现算法二次开发
=================================================================
此repository是基于PaddleDetection的YOLOv5
,其upstream为PaddleDetection的develop分支,在保持与PaddleDetection同步更新的同时,也更新关于YOLOv5的一些改进,并同步更新github和gitee的代码,欢迎一起使用和建设!
注意:
- github链接为:https://github.com/nemonameless/PaddleDetection_YOLOv5
- gitee链接为:https://gitee.com/nemonameless/PaddleDetection_YOLOv5
- 【2022/08/09】YOLO家族全系列模型PaddleDetection_YOLOSeries发布,支持PP-YOLOE、YOLOv5、YOLOX,MT-YOLOv6以及YOLOv7。
- 【2022/05/15】新增YOLOv5目标检测模型,支持n/s/m/l/x版本。
ModelZoo on COCO
网络网络 | 输入尺寸 | 图片数/GPU | 学习率策略 | 模型推理耗时(ms) | mAPval 0.5:0.95 |
mAPval 0.5 |
Params(M) | FLOPs(G) | 下载链接 | 配置文件 |
---|---|---|---|---|---|---|---|---|---|---|
YOLOv5-n | 640 | 16 | 300e | 2.6 | 28.0 | 45.7 | 1.87 | 4.52 | 下载链接 | 配置文件 |
YOLOv5-s | 640 | 8 | 300e | 3.2 | 37.0 | 55.9 | 7.24 | 16.54 | 下载链接 | 配置文件 |
YOLOv5-m | 640 | 8 | 300e | 5.2 | 45.3 | 63.8 | 21.19 | 49.08 | 下载链接 | 配置文件 |
YOLOv5-l | 640 | 8 | 300e | 7.9 | 48.6 | 66.9 | 46.56 | 109.32 | 下载链接 | 配置文件 |
YOLOv5-x | 640 | 8 | 300e | 13.7 | 50.6 | 68.7 | 86.75 | 205.92 | 下载链接 | 配置文件 |
YOLOv5-s ConvNeXt | 640 | 8 | 36e | - | 42.4 | 65.3 | 34.54 | 17.96 | 下载链接 | 配置文件 |
注意: |
- 具体精度和速度细节请查看yolov5
- YOLOv5-P6、YOLOv5-P2
- 换主干网络:CSP-ResNet
- YOLOv7,MT-YOLOv6以及YOLO模型集合--PaddleDetection_YOLOSeries
- Transformer modules
- 更多Data Augmentation、Attention Module、Loss
- 精简代码只保留YOLO系列模型(YOLOv3、PP-YOLO、PP-YOLOv2、PP-YOLOE、YOLOX、YOLOv5)
- Objects365 pretrain
======================================================
简体中文 | English
- 🔥 2022.7.14:行人分析工具PP-Human v2发布
- 四大产业特色功能:高性能易扩展的五大复杂行为识别、闪电级人体属性识别、一行代码即可实现的人流检测与轨迹留存以及高精度跨镜跟踪
- 底层核心算法性能强劲:覆盖行人检测、跟踪、属性三类核心算法能力,对目标人数、光线、背景均无限制
- 极低使用门槛:提供保姆级全流程开发及模型优化策略、一行命令完成推理、兼容各类数据输入格式
活动预告 7月19日晚20点,PaddleDetection举办PP-Human v2线上私享交流会,欢迎大家扫码进群,获取线上会议链接!名额有限,抓紧报名!
-
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 Transformer,TOOD,GFL目标检测模型。
- 发布Sniper小目标检测优化模型,发布针对EdgeBoard优化PP-YOLO-EB模型。
- 新增轻量化关键点模型Lite HRNet关键点模型并支持Paddle Lite部署。
-
2021.08.10: PaddleDetection发布release/2.2版本
- 发布Transformer检测系列模型,包括DETR, Deformable DETR, Sparse RCNN。
- 新增Dark HRNet关键点模型和MPII数据集关键点模型
- 新增人头、车辆跟踪垂类模型。
-
2021.05.20: PaddleDetection发布release/2.1版本
- 新增关键点检测,模型包括HigherHRNet,HRNet。
- 新增多目标跟踪能力,模型包括DeepSORT,JDE,FairMOT。
- 发布PPYOLO系列模型压缩模型,新增ONNX模型导出教程。
PaddleDetection为基于飞桨PaddlePaddle的端到端目标检测套件,内置30+模型算法及250+预训练模型,覆盖目标检测、实例分割、跟踪、关键点检测等方向,其中包括服务器端和移动端高精度、轻量级产业级SOTA模型、冠军方案和学术前沿算法,并提供配置化的网络模块组件、十余种数据增强策略和损失函数等高阶优化支持和多种部署方案,在打通数据处理、模型开发、训练、压缩、部署全流程的基础上,提供丰富的案例及教程,加速算法产业落地应用。
- 模型丰富: 包含目标检测、实例分割、人脸检测、关键点检测、多目标跟踪等250+个预训练模型,涵盖多种全球竞赛冠军方案。
- 使用简洁:模块化设计,解耦各个网络组件,开发者轻松搭建、试用各种检测模型及优化策略,快速得到高性能、定制化的算法。
- 端到端打通: 从数据增强、组网、训练、压缩、部署端到端打通,并完备支持云端/边缘端多架构、多设备部署。
- 高性能: 基于飞桨的高性能内核,模型训练速度及显存占用优势明显。支持FP16训练, 支持多机训练。
-
如果你发现任何PaddleDetection存在的问题或者是建议, 欢迎通过GitHub Issues给我们提issues。
-
欢迎加入PaddleDetection QQ、微信用户群(添加并回复小助手“检测”)
Architectures | Backbones | Components | Data Augmentation |
Object DetectionInstance SegmentationFace DetectionMulti-Object-TrackingKeyPoint-Detection |
Details
|
Common
KeyPoint
FPN
Loss
Post-processing
Speed
|
Details
|
云端模型性能对比
各模型结构和骨干网络的代表模型在COCO数据集上精度mAP和单卡Tesla V100上预测速度(FPS)对比图。
说明:
CBResNet
为Cascade-Faster-RCNN-CBResNet200vd-FPN
模型,COCO数据集mAP高达53.3%Cascade-Faster-RCNN
为Cascade-Faster-RCNN-ResNet50vd-DCN
,PaddleDetection将其优化到COCO数据mAP为47.8%时推理速度为20FPSPP-YOLO
在COCO数据集精度45.9%,Tesla V100预测速度72.9FPS,精度速度均优于YOLOv4PP-YOLO v2
是对PP-YOLO
模型的进一步优化,在COCO数据集精度49.5%,Tesla V100预测速度68.9FPSPP-YOLOE
是对PP-YOLO v2
模型的进一步优化,在COCO数据集精度51.6%,Tesla V100预测速度78.1FPSYOLOX
和YOLOv5
均为基于PaddleDetection复现算法- 图中模型均可在模型库中获取
移动端模型性能对比
各移动端模型在COCO数据集上精度mAP和高通骁龙865处理器上预测速度(FPS)对比图。
说明:
- 测试数据均使用高通骁龙865(4*A77 + 4*A55)处理器batch size为1, 开启4线程测试,测试使用NCNN预测库,测试脚本见MobileDetBenchmark
- PP-PicoDet及PP-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. 产业级实时行人分析工具
任务 | 端到端速度(ms) | 模型方案 | 模型体积 |
---|---|---|---|
行人检测(高精度) | 25.1ms | 目标检测 | 182M |
行人检测(轻量级) | 16.2ms | 目标检测 | 27M |
行人跟踪(高精度) | 31.8ms | 多目标跟踪 | 182M |
行人跟踪(轻量级) | 21.0ms | 多目标跟踪 | 27M |
属性识别(高精度) | 单人8.5ms | 目标检测 属性识别 |
目标检测:182M 属性识别:86M |
属性识别(轻量级) | 单人7.1ms | 目标检测 属性识别 |
目标检测:182M 属性识别:86M |
摔倒识别 | 单人10ms | 多目标跟踪 关键点检测 基于关键点行为识别 |
多目标跟踪:182M 关键点检测:101M 基于关键点行为识别:21.8M |
闯入识别 | 31.8ms | 多目标跟踪 | 182M |
打架识别 | 19.7ms | 视频分类 | 90M |
抽烟识别 | 单人15.1ms | 目标检测 基于人体id的目标检测 |
目标检测:182M 基于人体id的目标检测:27M |
打电话识别 | 单人ms | 目标检测 基于人体id的图像分类 |
目标检测:182M 基于人体id的图像分类:45M |
点击模型方案中的模型即可下载指定模型
详细信息参考文档
-
参数配置
-
模型压缩(基于PaddleSlim)
-
进阶开发
-
【理论基础】目标检测7日打卡营: 目标检测任务综述、RCNN系列目标检测算法详解、YOLO系列目标检测算法详解、PP-YOLO优化策略与案例分享、AnchorFree系列算法介绍和实践
-
【产业实践】AI快车道产业级目标检测技术与应用: 目标检测超强目标检测算法矩阵、实时行人分析系统PP-Human、目标检测产业应用全流程拆解与实践
-
【行业特色】2022.3.26 智慧城市行业七日课: 城市规划、城市治理、智慧政务、交通管理、社区治理
- PaddleDetection在Windows下的部署(一)
- PaddleDetection在Windows下的部署(二)
- Jetson Nano上部署PaddleDetection经验分享
- 安全帽检测YOLOv3模型在树莓派上的部署
- 使用SSD-MobileNetv1完成一个项目--准备数据集到完成树莓派部署
版本更新内容请参考版本更新文档
本项目的发布受Apache 2.0 license许可认证。
我们非常欢迎你可以为PaddleDetection提供代码,也十分感谢你的反馈。
- 感谢Mandroide清理代码并且统一部分函数接口。
- 感谢FL77N贡献
Sparse-RCNN
模型。 - 感谢Chen-Song贡献
Swin Faster-RCNN
模型。 - 感谢yangyudong, hchhtc123 开发PP-Tracking GUI界面
- 感谢Shigure19 开发PP-TinyPose健身APP
- 感谢manangoel99贡献Wandb可视化方式
@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}
}