Skip to content

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.

License

Notifications You must be signed in to change notification settings

tuofeilunhifi/PaddleDetection

 
 

Repository files navigation

简体中文 | English

🌈简介

PaddleDetection是一个基于PaddlePaddle的目标检测端到端开发套件,在提供丰富的模型组件和测试基准的同时,注重端到端的产业落地应用,通过打造产业级特色模型|工具、建设产业应用范例等手段,帮助开发者实现数据准备、模型选型、模型训练、模型部署的全流程打通,快速进行落地应用。

主要模型效果示例如下(点击标题可快速跳转):

通用目标检测 小目标检测 旋转框检测 3D目标物检测
人脸检测 2D关键点检测 多目标追踪 实例分割
车辆分析——车牌识别 车辆分析——车流统计 车辆分析——违章检测 车辆分析——属性分析
行人分析——闯入分析 行人分析——行为分析 行人分析——属性分析 行人分析——人流统计

同时,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更新日志,重点更新:

  • 🎗️产业特色模型|产业工具
    • 发布PP-YOLOE+,最高精度提升2.4% mAP,达到54.9% mAP,模型训练收敛速度提升3.75倍,端到端预测速度最高提升2.3倍;多个下游任务泛化性提升
    • 发布PicoDet-NPU模型,支持模型全量化部署;新增PicoDet版面分析模型
    • 发布PP-TinyPose升级版增强版,在健身、舞蹈等场景精度提升9.1% AP,支持侧身、卧躺、跳跃、高抬腿等非常规动作
    • 发布行人分析工具PP-Human v2,新增打架、打电话、抽烟、闯入四大行为识别,底层算法性能升级,覆盖行人检测、跟踪、属性三类核心算法能力,提供保姆级全流程开发及模型优化策略,支持在线视频流输入
    • 首次发布PP-Vehicle,提供车牌识别、车辆属性分析(颜色、车型)、车流量统计以及违章检测四大功能,兼容图片、在线视频流、视频输入,提供完善的二次开发文档教程
  • 📱模型库
    • 全面覆盖的YOLO家族经典与最新算法模型的代码库PaddleYOLO: 包括YOLOv3,百度飞桨自研的实时高精度目标检测模型PP-YOLOE,以及前沿检测算法YOLOv4、YOLOv5、YOLOX,YOLOv6及YOLOv7
    • 新增基于ViT骨干网络高精度检测模型,COCO数据集精度达到55.7% mAP;新增OC-SORT多目标跟踪模型;新增ConvNeXt骨干网络
  • 💡产业实践范例

🧬预览版本

位于develop分支,体验最新功能请切换到该分支,最近更新:

  • 📱模型库
  • 🎗️产业特色模型|产业工具
    • 发布旋转框检测模型PP-YOLOE-R:Anchor-free旋转框检测SOTA模型,精度速度双高、云边一体,s/m/l/x四个模型适配不用算力硬件、部署友好,避免使用特殊算子,能够轻松使用TensorRT加速;
    • 发布小目标检测模型PP-YOLOE-SOD:基于切图的端到端检测方案、基于原图的检测模型,精度达VisDrone开源最优;

👫开源社区

  • 📑项目合作: 如果您是企业开发者且有明确的目标检测垂类应用需求,请扫描如下二维码入群,并联系群管理员AI后可免费与官方团队展开不同层次的合作。
  • 🏅️社区贡献: PaddleDetection非常欢迎你加入到飞桨社区的开源建设中,参与贡献方式可以参考开源项目开发指南
  • 💻直播教程: PaddleDetection会定期在飞桨直播间(B站:飞桨PaddlePaddle微信: 飞桨PaddlePaddle),针对发新内容、以及产业范例、使用教程等进行直播分享。
  • 🎁加入社区: 微信扫描二维码并填写问卷之后,加入交流群领取20G重磅目标检测学习大礼包,包括:
    • 往期直播录播&PPT
    • 30+行人车辆等垂类高性能预训练模型
    • 七大任务开源数据集下载链接汇总
    • 40+前沿检测领域顶会算法
    • 15+从零上手目标检测理论与实践视频课程
    • 10+工业安防交通全流程项目实操(含源码)

PaddleDetection官方交流群二维码

🍱安装

参考安装说明进行安装。

🔥教程

深度学习入门教程

快速开始

数据准备

配置文件说明

模型开发

部署推理

🔑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 服务器 链接 下载地址

    传送门全部预训练模型

    产业应用代码示例(点击展开)
    行业 类别 亮点 文档说明 模型下载
    农业 农作物检测 用于葡萄栽培中基于图像的监测和现场机器人技术,提供了来自5种不同葡萄品种的实地实例 PP-YOLOE+ 下游任务 下载链接
    通用 低光场景检测 低光数据集使用ExDark,包括从极低光环境到暮光环境等10种不同光照条件下的图片。 PP-YOLOE+ 下游任务 下载链接
    工业 PCB电路板瑕疵检测 工业数据集使用PKU-Market-PCB,该数据集用于印刷电路板(PCB)的瑕疵检测,提供了6种常见的PCB缺陷 PP-YOLOE+ 下游任务 下载链接

    💎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-R旋转框检测,10分钟将脊柱数据集精度训练至95mAP 基于PP-YOLOE-R的旋转框检测 下载链接

    💎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-YOLOE-SOD的无人机航拍图像检测案例全流程实操。 基于PP-YOLOE-SOD的无人机航拍图像检测 下载链接

    💫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-Tracking之手把手玩转多目标跟踪 下载链接

    ⛷️PP-TinyPose 人体骨骼关键点识别

    简介(点击展开)

    PaddleDetection 中的关键点检测部分紧跟最先进的算法,包括 Top-Down 和 Bottom-Up 两种方法,可以满足用户的不同需求。同时,PaddleDetection 提供针对移动端设备优化的自研实时关键点检测模型 PP-TinyPose。

    传送门PP-TinyPose说明

    预训练模型(点击展开)
    模型名称 模型简介 COCO精度(AP) 速度(FPS) 推荐部署硬件 配置文件 模型下载
    PP-TinyPose 轻量级关键点算法
    输入尺寸256x192
    68.8 骁龙865 四线程: 158.7 FPS 移动端、嵌入式 链接 下载地址

    传送门全部预训练模型

    产业应用代码示例(点击展开)
    行业 类别 亮点 文档说明 模型下载
    运动 健身 提供从模型选型、数据准备、模型训练优化,到后处理逻辑和模型部署的全流程可复用方案,有效解决了复杂健身动作的高效识别,打造AI虚拟健身教练! 基于PP-TinyPose增强版的智能健身动作识别 下载链接

    🏃🏻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

    传送门完整预训练模型

    产业应用代码示例(点击展开)
    行业 类别 亮点 文档说明 模型下载
    智慧交通 交通监控车辆分析 本项目基于PP-Vehicle演示智慧交通中最刚需的车流量监控、车辆违停检测以及车辆结构化(车牌、车型、颜色)分析三大场景。 基于PP-Vehicle的交通监控分析系统 下载链接

    💡产业实践范例

    产业实践范例是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}},
    

    About

    Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.

    Resources

    License

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Languages

    • Python 81.7%
    • C++ 14.7%
    • Shell 2.4%
    • CMake 0.7%
    • Makefile 0.2%
    • Cuda 0.2%
    • C 0.1%