简体中文 | English
🌈简介
PaddleDetection是一个基于PaddlePaddle的目标检测端到端开发套件,在提供丰富的模型组件和测试基准的同时,注重端到端的产业落地应用,通过打造产业级特色模型|工具、建设产业应用范例等手段,帮助开发者实现数据准备、模型选型、模型训练、模型部署的全流程打通,快速进行落地应用。
主要模型效果示例如下(点击标题可快速跳转):
同时,PaddleDetection提供了模型的在线体验功能,用户可以选择自己的数据进行在线推理。
说明
:考虑到服务器负载压力,在线推理均为CPU推理,完整的模型开发实例以及产业部署实践代码示例请前往🎗️产业特色模型|产业工具。
传送门
:模型在线体验
✨主要特性
🧩模块化设计
PaddleDetection将检测模型解耦成不同的模块组件,通过自定义模块组件组合,用户可以便捷高效地完成检测模型的搭建。传送门
:🧩模块组件。
📱丰富的模型库
PaddleDetection支持大量的最新主流的算法基准以及预训练模型,涵盖2D/3D目标检测、实例分割、人脸检测、关键点检测、多目标跟踪、半监督学习等方向。传送门
:📱模型库、⚖️模型性能对比。
🎗️产业特色模型|产业工具
PaddleDetection打造产业级特色模型以及分析工具:PP-YOLOE+、PP-PicoDet、PP-TinyPose、PP-HumanV2、PP-Vehicle等,针对通用、高频垂类应用场景提供深度优化解决方案以及高度集成的分析工具,降低开发者的试错、选择成本,针对业务场景快速应用落地。传送门
:🎗️产业特色模型|产业工具。
💡🏆产业级部署实践
PaddleDetection整理工业、农业、林业、交通、医疗、金融、能源电力等AI应用范例,打通数据标注-模型训练-模型调优-预测部署全流程,持续降低目标检测技术产业落地门槛。传送门
:💡产业实践范例、🏆企业应用案例。
📣最新进展
💎稳定版本
位于release/2.5
分支,最新的v2.5版本已经在 2022.09.13 发布,版本发新详细内容请参考v2.5.0更新日志,重点更新:
🧬预览版本
位于develop
分支,体验最新功能请切换到该分支,最近更新:
👫开源社区
- 📑项目合作: 如果您是企业开发者且有明确的目标检测垂类应用需求,请扫描如下二维码入群,并联系
群管理员AI
后可免费与官方团队展开不同层次的合作。
- 🏅️社区贡献: PaddleDetection非常欢迎你加入到飞桨社区的开源建设中,参与贡献方式可以参考开源项目开发指南。
- 💻直播教程: PaddleDetection会定期在飞桨直播间(B站:飞桨PaddlePaddle、微信: 飞桨PaddlePaddle),针对发新内容、以及产业范例、使用教程等进行直播分享。
- 🎁加入社区: 微信扫描二维码并填写问卷之后,可以及时获取如下信息,包括:
- 社区最新文章、直播课等活动预告
- 往期直播录播&PPT
- 30+行人车辆等垂类高性能预训练模型
- 七大任务开源数据集下载链接汇总
- 40+前沿检测领域顶会算法
- 15+从零上手目标检测理论与实践视频课程
- 10+工业安防交通全流程项目实操(含源码)
PaddleDetection官方交流群二维码
-
🎈社区近期活动
-
👀YOLO系列专题
-
🎯少目标迁移学习专题
-
⚽️2022卡塔尔世界杯专题
-
🔍旋转框小目标检测专题
-
🎊YOLO Vision世界学术交流大会
- PaddleDetection受邀参与首个以YOLO为主题的YOLO-VISION世界大会,与全球AI领先开发者学习交流。
活动链接传送门
:YOLO-VISION
-
🏅️社区贡献
🍱安装
参考安装说明进行安装。
🔥教程
深度学习入门教程
快速开始
数据准备
配置文件说明
模型开发
部署推理
🔑FAQ
🧩模块组件
Backbones
|
Necks
|
Loss
|
Common
|
Data Augmentation
|
|
|
|
Post-processing
Training
Common
|
|
📱模型库
2D Detection
|
Multi Object Tracking
|
KeyPoint Detection
|
Others
|
|
|
|
Instance Segmentation
Face Detection
Semi-Supervised Detection
3D Detection
Vehicle Analysis Toolbox
Human Analysis Toolbox
Sport Analysis Toolbox
|
⚖️模型性能对比
🖥️服务器端模型性能对比
各模型结构和骨干网络的代表模型在COCO数据集上精度mAP和单卡Tesla V100上预测速度(FPS)对比图。
测试说明(点击展开)
- ViT为ViT-Cascade-Faster-RCNN模型,COCO数据集mAP高达55.7%
- Cascade-Faster-RCNN为Cascade-Faster-RCNN-ResNet50vd-DCN,PaddleDetection将其优化到COCO数据mAP为47.8%时推理速度为20FPS
- PP-YOLOE是对PP-YOLO v2模型的进一步优化,L版本在COCO数据集mAP为51.6%,Tesla V100预测速度78.1FPS
- PP-YOLOE+是对PPOLOE模型的进一步优化,L版本在COCO数据集mAP为53.3%,Tesla V100预测速度78.1FPS
- YOLOX和YOLOv5均为基于PaddleDetection复现算法,YOLOv5代码在PaddleYOLO中,参照PaddleYOLO_MODEL
- 图中模型均可在📱模型库中获取
⌚️移动端模型性能对比
各移动端模型在COCO数据集上精度mAP和高通骁龙865处理器上预测速度(FPS)对比图。
测试说明(点击展开)
- 测试数据均使用高通骁龙865(4xA77+4xA55)处理器,batch size为1, 开启4线程测试,测试使用NCNN预测库,测试脚本见MobileDetBenchmark
- PP-PicoDet及PP-YOLO-Tiny为PaddleDetection自研模型,可在📱模型库中获取,其余模型PaddleDetection暂未提供
🎗️产业特色模型|产业工具
产业特色模型|产业工具是PaddleDetection针对产业高频应用场景打造的兼顾精度和速度的模型以及工具箱,注重从数据处理-模型训练-模型调优-模型部署的端到端打通,且提供了实际生产环境中的实践范例代码,帮助拥有类似需求的开发者高效的完成产品开发落地应用。
该系列模型|工具均已PP前缀命名,具体介绍、预训练模型以及产业实践范例代码如下。
💎PP-YOLOE 高精度目标检测模型
简介(点击展开)
PP-YOLOE是基于PP-YOLOv2的卓越的单阶段Anchor-free模型,超越了多种流行的YOLO模型。PP-YOLOE避免了使用诸如Deformable Convolution或者Matrix NMS之类的特殊算子,以使其能轻松地部署在多种多样的硬件上。其使用大规模数据集obj365预训练模型进行预训练,可以在不同场景数据集上快速调优收敛。
传送门
:PP-YOLOE说明。
传送门
:arXiv论文。
预训练模型(点击展开)
模型名称 |
COCO精度(mAP) |
V100 TensorRT FP16速度(FPS) |
推荐部署硬件 |
配置文件 |
模型下载 |
PP-YOLOE+_l |
53.3 |
149.2 |
服务器 |
链接 |
下载地址 |
传送门
:全部预训练模型。
产业应用代码示例(点击展开)
💎PP-YOLOE-R 高性能旋转框检测模型
简介(点击展开)
PP-YOLOE-R是一个高效的单阶段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,使其能轻松地部署在多种多样的硬件上。
传送门
:PP-YOLOE-R说明。
传送门
:arXiv论文。
预训练模型(点击展开)
模型 |
Backbone |
mAP |
V100 TRT FP16 (FPS) |
RTX 2080 Ti TRT FP16 (FPS) |
Params (M) |
FLOPs (G) |
学习率策略 |
角度表示 |
数据增广 |
GPU数目 |
每GPU图片数目 |
模型下载 |
配置文件 |
PP-YOLOE-R-l |
CRN-l |
80.02 |
69.7 |
48.3 |
53.29 |
281.65 |
3x |
oc |
MS+RR |
4 |
2 |
model |
config |
传送门
:全部预训练模型。
产业应用代码示例(点击展开)
💎PP-YOLOE-SOD 高精度小目标检测模型
简介(点击展开)
PP-YOLOE-SOD(Small Object Detection)是PaddleDetection团队针对小目标检测提出的检测方案,在VisDrone-DET数据集上单模型精度达到38.5mAP,达到了SOTA性能。其分别基于切图拼图流程优化的小目标检测方案以及基于原图模型算法优化的小目标检测方案。同时提供了数据集自动分析脚本,只需输入数据集标注文件,便可得到数据集统计结果,辅助判断数据集是否是小目标数据集以及是否需要采用切图策略,同时给出网络超参数参考值。
传送门
:PP-YOLOE-SOD 小目标检测模型。
预训练模型(点击展开)
- VisDrone数据集预训练模型
模型 |
COCOAPI mAPval 0.5:0.95 |
COCOAPI mAPval 0.5 |
COCOAPI mAPtest_dev 0.5:0.95 |
COCOAPI mAPtest_dev 0.5 |
MatlabAPI mAPtest_dev 0.5:0.95 |
MatlabAPI mAPtest_dev 0.5 |
下载 |
配置文件 |
PP-YOLOE+_SOD-l |
31.9 |
52.1 |
25.6 |
43.5 |
30.25 |
51.18 |
下载链接 |
配置文件 |
传送门
:全部预训练模型。
产业应用代码示例(点击展开)
💫PP-PicoDet 超轻量实时目标检测模型
简介(点击展开)
全新的轻量级系列模型PP-PicoDet,在移动端具有卓越的性能,成为全新SOTA轻量级模型。
传送门
:PP-PicoDet说明。
传送门
:arXiv论文。
预训练模型(点击展开)
模型名称 |
COCO精度(mAP) |
骁龙865 四线程速度(FPS) |
推荐部署硬件 |
配置文件 |
模型下载 |
PicoDet-L |
36.1 |
39.7 |
移动端、嵌入式 |
链接 |
下载地址 |
传送门
:全部预训练模型。
产业应用代码示例(点击展开)
行业 |
类别 |
亮点 |
文档说明 |
模型下载 |
智慧城市 |
道路垃圾检测 |
通过在市政环卫车辆上安装摄像头对路面垃圾检测并分析,实现对路面遗撒的垃圾进行监控,记录并通知环卫人员清理,大大提升了环卫人效。 |
基于PP-PicoDet的路面垃圾检测 |
下载链接 |
📡PP-Tracking 实时多目标跟踪系统
简介(点击展开)
PaddleDetection团队提供了实时多目标跟踪系统PP-Tracking,是基于PaddlePaddle深度学习框架的业界首个开源的实时多目标跟踪系统,具有模型丰富、应用广泛和部署高效三大优势。 PP-Tracking支持单镜头跟踪(MOT)和跨镜头跟踪(MTMCT)两种模式,针对实际业务的难点和痛点,提供了行人跟踪、车辆跟踪、多类别跟踪、小目标跟踪、流量统计以及跨镜头跟踪等各种多目标跟踪功能和应用,部署方式支持API调用和GUI可视化界面,部署语言支持Python和C++,部署平台环境支持Linux、NVIDIA Jetson等。
传送门
:PP-Tracking说明。
预训练模型(点击展开)
模型名称 |
模型简介 |
精度 |
速度(FPS) |
推荐部署硬件 |
配置文件 |
模型下载 |
ByteTrack |
SDE多目标跟踪算法 仅包含检测模型 |
MOT-17 test: 78.4 |
- |
服务器、移动端、嵌入式 |
链接 |
下载地址 |
FairMOT |
JDE多目标跟踪算法 多任务联合学习方法 |
MOT-16 test: 75.0 |
- |
服务器、移动端、嵌入式 |
链接 |
下载地址 |
OC-SORT |
SDE多目标跟踪算法 仅包含检测模型 |
MOT-17 half val: 75.5 |
- |
服务器、移动端、嵌入式 |
链接 |
下载地址 |
产业应用代码示例(点击展开)
⛷️PP-TinyPose 人体骨骼关键点识别
简介(点击展开)
PaddleDetection 中的关键点检测部分紧跟最先进的算法,包括 Top-Down 和 Bottom-Up 两种方法,可以满足用户的不同需求。同时,PaddleDetection 提供针对移动端设备优化的自研实时关键点检测模型 PP-TinyPose。
传送门
:PP-TinyPose说明。
预训练模型(点击展开)
模型名称 |
模型简介 |
COCO精度(AP) |
速度(FPS) |
推荐部署硬件 |
配置文件 |
模型下载 |
PP-TinyPose |
轻量级关键点算法 输入尺寸256x192 |
68.8 |
骁龙865 四线程: 158.7 FPS |
移动端、嵌入式 |
链接 |
下载地址 |
传送门
:全部预训练模型。
产业应用代码示例(点击展开)
🏃🏻PP-Human 实时行人分析工具
简介(点击展开)
PaddleDetection深入探索核心行业的高频场景,提供了行人开箱即用分析工具,支持图片/单镜头视频/多镜头视频/在线视频流多种输入方式,广泛应用于智慧交通、智慧城市、工业巡检等领域。支持服务器端部署及TensorRT加速,T4服务器上可达到实时。
PP-Human支持四大产业级功能:五大异常行为识别、26种人体属性分析、实时人流计数、跨镜头(ReID)跟踪。
传送门
:PP-Human行人分析工具使用指南。
预训练模型(点击展开)
任务 |
T4 TensorRT FP16: 速度(FPS) |
推荐部署硬件 |
模型下载 |
模型体积 |
行人检测(高精度) |
39.8 |
服务器 |
目标检测 |
182M |
行人跟踪(高精度) |
31.4 |
服务器 |
多目标跟踪 |
182M |
属性识别(高精度) |
单人 117.6 |
服务器 |
目标检测 属性识别 |
目标检测:182M 属性识别:86M |
摔倒识别 |
单人 100 |
服务器 |
多目标跟踪 关键点检测 基于关键点行为识别 |
多目标跟踪:182M 关键点检测:101M 基于关键点行为识别:21.8M |
闯入识别 |
31.4 |
服务器 |
多目标跟踪 |
182M |
打架识别 |
50.8 |
服务器 |
视频分类 |
90M |
抽烟识别 |
340.1 |
服务器 |
目标检测 基于人体id的目标检测 |
目标检测:182M 基于人体id的目标检测:27M |
打电话识别 |
166.7 |
服务器 |
目标检测 基于人体id的图像分类 |
目标检测:182M 基于人体id的图像分类:45M |
传送门
:完整预训练模型。
产业应用代码示例(点击展开)
行业 |
类别 |
亮点 |
文档说明 |
模型下载 |
智能安防 |
摔倒检测 |
飞桨行人分析PP-Human中提供的摔倒识别算法,采用了关键点+时空图卷积网络的技术,对摔倒姿势无限制、背景环境无要求。 |
基于PP-Human v2的摔倒检测 |
下载链接 |
智能安防 |
打架识别 |
本项目基于PaddleVideo视频开发套件训练打架识别模型,然后将训练好的模型集成到PaddleDetection的PP-Human中,助力行人行为分析。 |
基于PP-Human的打架识别 |
下载链接 |
智能安防 |
摔倒检测 |
基于PP-Human完成来客分析整体流程。使用PP-Human完成来客分析中非常常见的场景: 1. 来客属性识别(单镜和跨境可视化);2. 来客行为识别(摔倒识别)。 |
基于PP-Human的来客分析案例教程 |
下载链接 |
🏎️PP-Vehicle 实时车辆分析工具
简介(点击展开)
PaddleDetection深入探索核心行业的高频场景,提供了车辆开箱即用分析工具,支持图片/单镜头视频/多镜头视频/在线视频流多种输入方式,广泛应用于智慧交通、智慧城市、工业巡检等领域。支持服务器端部署及TensorRT加速,T4服务器上可达到实时。
PP-Vehicle囊括四大交通场景核心功能:车牌识别、属性识别、车流量统计、违章检测。
传送门
:PP-Vehicle车辆分析工具指南。
预训练模型(点击展开)
任务 |
T4 TensorRT FP16: 速度(FPS) |
推荐部署硬件 |
模型方案 |
模型体积 |
车辆检测(高精度) |
38.9 |
服务器 |
目标检测 |
182M |
车辆跟踪(高精度) |
25 |
服务器 |
多目标跟踪 |
182M |
车牌识别 |
213.7 |
服务器 |
车牌检测 车牌识别 |
车牌检测:3.9M 车牌字符识别: 12M |
车辆属性 |
136.8 |
服务器 |
属性识别 |
7.2M |
传送门
:完整预训练模型。
产业应用代码示例(点击展开)
💡产业实践范例
产业实践范例是PaddleDetection针对高频目标检测应用场景,提供的端到端开发示例,帮助开发者打通数据标注-模型训练-模型调优-预测部署全流程。
针对每个范例我们都通过AI-Studio提供了项目代码以及说明,用户可以同步运行体验。
传送门
:产业实践范例完整列表
🏆企业应用案例
企业应用案例是企业在实生产环境下落地应用PaddleDetection的方案思路,相比产业实践范例其更多强调整体方案设计思路,可供开发者在项目方案设计中做参考。
传送门
:企业应用案例完整列表
📝许可证书
本项目的发布受Apache 2.0 license许可认证。
📌引用
@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}
}