/PaddleDetection

Object detection and instance segmentation toolkit based on PaddlePaddle.

Primary LanguagePythonApache License 2.0Apache-2.0

English | 简体中文

PaddleDetection

PaddleDetection的目的是为工业界和学术界提供丰富、易用的目标检测模型。不仅性能优越、易于部署,而且能够灵活的满足算法研究的需求。

目前检测库下模型均要求使用PaddlePaddle 1.7及以上版本或适当的develop版本。

简介

特性:

  • 易部署:

    PaddleDetection的模型中使用的核心算子均通过C++或CUDA实现,同时基于PaddlePaddle的高性能推理引擎可以方便地部署在多种硬件平台上。

  • 高灵活度:

    PaddleDetection通过模块化设计来解耦各个组件,基于配置文件可以轻松地搭建各种检测模型。

  • 高性能:

    基于PaddlePaddle框架的高性能内核,在模型训练速度、显存占用上有一定的优势。例如,YOLOv3的训练速度快于其他框架,在Tesla V100 16GB环境下,Mask-RCNN(ResNet50)可以单卡Batch Size可以达到4 (甚至到5)。

支持的模型结构:

ResNet ResNet-vd 1 ResNeXt-vd SENet MobileNet HRNet Res2Net
Faster R-CNN x
Faster R-CNN + FPN
Mask R-CNN x
Mask R-CNN + FPN
Cascade Faster-RCNN
Cascade Mask-RCNN
Libra R-CNN
RetinaNet
YOLOv3
SSD
BlazeFace
Faceboxes

[1] ResNet-vd 模型提供了较大的精度提高和较少的性能损失。

更多的Backone:

  • DarkNet
  • VGG
  • GCNet
  • CBNet

扩展特性:

  • Synchronized Batch Norm: 目前在YOLOv3中使用。
  • Group Norm
  • Modulated Deformable Convolution
  • Deformable PSRoI Pooling
  • Non-local和GCNet

注意: Synchronized batch normalization 只能在多GPU环境下使用,不能在CPU环境或者单GPU环境下使用。

文档教程

最新动态: 已发布文档教程:https://paddledetection.readthedocs.io

入门教程

进阶教程

模型库

许可证书

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

版本更新

v0.2.0版本已经在02/2020发布,增加多个模型,升级数据处理模块,拆分YOLOv3的loss,修复已知诸多bug等, 详细内容请参考版本更新文档

如何贡献代码

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