PaddlePaddle / FastDeploy

โšก๏ธAn Easy-to-use and Fast Deep Learning Model Deployment Toolkit for โ˜๏ธCloud ๐Ÿ“ฑMobile and ๐Ÿ“นEdge. Including Image, Video, Text and Audio 20+ main stream scenarios and 150+ SOTA models with end-to-end optimization, multi-platform and multi-framework support.

Home Page:https://www.paddlepaddle.org.cn/fastdeploy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

English | ็ฎ€ไฝ“ไธญๆ–‡ | เคนเคฟเคจเฅเคฆเฅ€ | ๆ—ฅๆœฌ่ชž | ํ•œ๊ตญ์ธ | Pัƒฬััะบะธะน ัะทั‹ฬะบ

โšก๏ธFastDeploy

Installation | Documents | Quick Start | API Docs | Release Notes


โšก๏ธFastDeploy is an Easy-to-use and High Performance AI model deployment toolkit for Cloud, Mobile and Edge with ๐Ÿ“ฆout-of-the-box and unified experience, ๐Ÿ”šend-to-end optimization for over ๐Ÿ”ฅ160+ Text, Vision, Speech and Cross-modal AI models. Including image classification, object detection, OCR, face detection, matting, pp-tracking, NLP, stable diffusion, TTS and other tasks to meet developers' industrial deployment needs for multi-scenario, multi-hardware and multi-platform.

๐ŸŒ  Recent updates

  • โœจโœจโœจ In 2023.01.17 we released YOLOv8 for deployment on FastDeploy series hardware, which includes Paddle YOLOv8 and ultralytics YOLOv8

  • Serving deployment combined with VisualDL supports visual deployment. After the VDL service is started in the FastDeploy container, you can modify the model configuration, start/manage the model service, view performance data, and send requests on the VDL interface. For details, see related documents

  • โœจ๐Ÿ‘ฅโœจ Community

    • Slack๏ผšJoin our Slack community and chat with other community members about ideas
    • Wechat๏ผšScan the QR code below using WeChat, follow the PaddlePaddle official account and fill out the questionnaire to join the WeChat group, and share the deployment industry implementation pain points with the community developers

๐ŸŒŒ Inference Backend and Abilities

X86_64 CPU       





NVDIA GPU




Phytium CPU
KunlunXin XPU
Huawei Ascend NPU
Graphcore IPU
Sophgo
Intel graphics card
Jetson




ARM CPU

RK3588 etc.
RV1126 etc.
Amlogic
NXP

๐Ÿ”ฎ Contents

Quick Start๐Ÿ’จ

A Quick Start for Python SDK(click to fold)

๐ŸŽ† Installation

๐Ÿ”ธ Prerequisites
  • CUDA >= 11.2 ใ€cuDNN >= 8.0 ใ€ Python >= 3.6
  • OS: Linux x86_64/macOS/Windows 10
๐Ÿ”ธ Install FastDeploy SDK with both CPU and GPU support
pip install fastdeploy-gpu-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html
๐Ÿ”ธ Conda Installation (Recommendedโœจ)
conda config --add channels conda-forge && conda install cudatoolkit=11.2 cudnn=8.2
๐Ÿ”ธ Install FastDeploy SDK with only CPU support
pip install fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html

๐ŸŽ‡ Python Inference Example

  • Prepare model and picture
wget https://bj.bcebos.com/paddlehub/fastdeploy/ppyoloe_crn_l_300e_coco.tgz
tar xvf ppyoloe_crn_l_300e_coco.tgz
wget https://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg
  • Test inference results
# For deployment of GPU/TensorRT, please refer to examples/vision/detection/paddledetection/python
import cv2
import fastdeploy.vision as vision

im = cv2.imread("000000014439.jpg")
model = vision.detection.PPYOLOE("ppyoloe_crn_l_300e_coco/model.pdmodel",
                                 "ppyoloe_crn_l_300e_coco/model.pdiparams",
                                 "ppyoloe_crn_l_300e_coco/infer_cfg.yml")

result = model.predict(im)
print(result)

vis_im = vision.vis_detection(im, result, score_threshold=0.5)
cv2.imwrite("vis_image.jpg", vis_im)
A Quick Start for C++ SDK(click to expand)

๐ŸŽ† Installation

๐ŸŽ‡ C++ Inference Example

  • Prepare models and pictures
wget https://bj.bcebos.com/paddlehub/fastdeploy/ppyoloe_crn_l_300e_coco.tgz
tar xvf ppyoloe_crn_l_300e_coco.tgz
wget https://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg
  • Test inference results
// For GPU/TensorRT deployment, please refer to examples/vision/detection/paddledetection/cpp
#include "fastdeploy/vision.h"

int main(int argc, char* argv[]) {
  namespace vision = fastdeploy::vision;
  auto im = cv::imread("000000014439.jpg");
  auto model = vision::detection::PPYOLOE("ppyoloe_crn_l_300e_coco/model.pdmodel",
                                          "ppyoloe_crn_l_300e_coco/model.pdiparams",
                                          "ppyoloe_crn_l_300e_coco/infer_cfg.yml");

  vision::DetectionResult res;
  model.Predict(&im, &res);

  auto vis_im = vision::VisDetection(im, res, 0.5);
  cv::imwrite("vis_image.jpg", vis_im);
  return 0;
 }

For more deployment models, please refer to Vision Model Deployment Examples .

โœด๏ธ โœด๏ธ Server-side and Cloud Model List โœด๏ธ โœด๏ธ

Notes: โœ…: already supported; โ”: to be supported in the future; N/A: Not Available;

Server-side and cloud model list(click to fold)
Task Model Linux Linux Win Win Mac Mac Linux Linux Linux Linux Linux Linux Linux
--- --- X86 CPU NVIDIA GPU X86 CPU NVIDIA GPU X86 CPU Arm CPU AArch64 CPU Phytium D2000 aarch64 NVIDIA Jetson Graphcore IPU kunlunxin XPU Huawei Ascend Serving
Classification PaddleClas/ResNet50 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Classification TorchVison/ResNet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โ”
Classification ltralytics/YOLOv5Cls โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ”
Classification PaddleClas/PP-LCNet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Classification PaddleClas/PP-LCNetv2 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Classification PaddleClas/EfficientNet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Classification PaddleClas/GhostNet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Classification PaddleClas/MobileNetV1 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Classification PaddleClas/MobileNetV2 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Classification PaddleClas/MobileNetV3 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Classification PaddleClas/ShuffleNetV2 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Classification PaddleClas/SqueeezeNetV1.1 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Classification PaddleClas/Inceptionv3 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โœ…
Classification PaddleClas/PP-HGNet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ…
Detection ๐Ÿ”ฅ๐Ÿ”ฅPaddleDetection/PP-YOLOE+ โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โœ…
Detection ๐Ÿ”ฅPaddleDetection/YOLOv8 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โ”
Detection ๐Ÿ”ฅultralytics/YOLOv8 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ” โ”
Detection PaddleDetection/PicoDet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โœ…
Detection PaddleDetection/YOLOX โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โœ…
Detection PaddleDetection/YOLOv3 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โœ…
Detection PaddleDetection/PP-YOLO โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โœ…
Detection PaddleDetection/PP-YOLOv2 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โœ…
Detection PaddleDetection/Faster-RCNN โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โœ…
Detection PaddleDetection/Mask-RCNN โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โœ…
Detection Megvii-BaseDetection/YOLOX โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โ”
Detection WongKinYiu/YOLOv7 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โ”
Detection WongKinYiu/YOLOv7end2end_trt โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ” โ”
Detection WongKinYiu/YOLOv7end2end_ort โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
Detection meituan/YOLOv6 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ”
Detection ultralytics/YOLOv5 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โœ…
Detection WongKinYiu/YOLOR โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โœ… โ”
Detection WongKinYiu/ScaledYOLOv4 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
Detection ppogg/YOLOv5Lite โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… ? โ” โ” โ”
Detection RangiLyu/NanoDetPlus โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
Perception Paddle3D/Smoke โ” โœ… โ” โœ… โ” โ” โ” โ” โ” โ” โ” โ” โœ…
KeyPoint PaddleDetection/TinyPose โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ”
KeyPoint PaddleDetection/PicoDet + TinyPose โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ”
HeadPose omasaht/headpose โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ” โ”
Tracking PaddleDetection/PP-Tracking โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
OCR PaddleOCR/PP-OCRv2 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โœ… โœ… โ”
OCR PaddleOCR/PP-OCRv3 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โœ…
Segmentation PaddleSeg/PP-LiteSeg โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โœ… โ” โ”
Segmentation PaddleSeg/PP-HumanSegLite โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โœ… โœ… โ”
Segmentation PaddleSeg/HRNet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โœ… โœ… โ”
Segmentation PaddleSeg/PP-HumanSegServer โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โœ… โœ… โ”
Segmentation PaddleSeg/Unet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โœ… โœ… โ”
Segmentation PaddleSeg/Deeplabv3 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โœ… โœ… โ”
FaceDetection biubug6/RetinaFace โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
FaceDetection Linzaer/UltraFace โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
FaceDetection deepcam-cn/YOLOv5Face โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
FaceDetection insightface/SCRFD โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
FaceAlign Hsintao/PFLD โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
FaceAlign Single430/FaceLandmark1000 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ” โ”
FaceAlign jhb86253817/PIPNet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ” โ”
FaceRecognition insightface/ArcFace โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
FaceRecognition insightface/CosFace โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
FaceRecognition insightface/PartialFC โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
FaceRecognition insightface/VPL โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
Matting ZHKKKe/MODNet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ” โ”
Matting PeterL1n/RobustVideoMatting โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ” โ”
Matting PaddleSeg/PP-Matting โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โ”
Matting PaddleSeg/PP-HumanMatting โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โœ… โ”
Matting PaddleSeg/ModNet โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โ”
Video Super-Resolution PaddleGAN/BasicVSR โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ” โ”
Video Super-Resolution PaddleGAN/EDVR โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ” โ”
Video Super-Resolution PaddleGAN/PP-MSVSR โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ” โ”
Information Extraction PaddleNLP/UIE โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โœ… โ” โ” โ”
NLP PaddleNLP/ERNIE-3.0 โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” โ” โœ… โ” โœ…
Speech PaddleSpeech/PP-TTS โœ… โœ… โœ… โœ… โœ… โœ… โœ… โ” โ” -- โ” โ” โœ…

๐Ÿ“ณ Mobile and Edge Device Deployment

Mobile and Edge Model List๏ผˆclick to fold๏ผ‰
Task Model Size(MB) Linux Android Linux Linux Linux Linux Linux TBD ...
--- --- --- ARM CPU ARM CPU Rockchip NPU
RK3588/RK3568/RK3566
Rockchip NPU
RV1109/RV1126/RK1808
Amlogic NPU
A311D/S905D/C308X
NXP NPU
i.MX 8M Plus
TBD...
Classification PaddleClas/ResNet50 98 โœ… โœ… โœ… โœ…
Classification PaddleClas/PP-LCNet 11.9 โœ… โœ… โ” โœ… -- -- --
Classification PaddleClas/PP-LCNetv2 26.6 โœ… โœ… โ” โœ… -- -- --
Classification PaddleClas/EfficientNet 31.4 โœ… โœ… โ” โœ… -- -- --
Classification PaddleClas/GhostNet 20.8 โœ… โœ… โ” โœ… -- -- --
Classification PaddleClas/MobileNetV1 17 โœ… โœ… โ” โœ… -- -- --
Classification PaddleClas/MobileNetV2 14.2 โœ… โœ… โ” โœ… -- -- --
Classification PaddleClas/MobileNetV3 22 โœ… โœ… โ” โœ… โ” โ” --
Classification PaddleClas/ShuffleNetV2 9.2 โœ… โœ… โ” โœ… -- -- --
Classification PaddleClas/SqueezeNetV1.1 5 โœ… โœ… โ” โœ… -- -- --
Classification PaddleClas/Inceptionv3 95.5 โœ… โœ… โ” โœ… -- -- --
Classification PaddleClas/PP-HGNet 59 โœ… โœ… โ” โœ… -- -- --
Detection PaddleDetection/PicoDet_s 4.9 โœ… โœ… โœ… โœ… โœ… โœ… --
Detection YOLOv5 โ” โ” โœ… โ” โ” โ” --
Face Detection deepinsight/SCRFD 2.5 โœ… โœ… โœ… -- -- -- --
Keypoint Detection PaddleDetection/PP-TinyPose 5.5 โœ… โœ… โ” โ” โ” โ” --
Segmentation PaddleSeg/PP-LiteSeg(STDC1) 32.2 โœ… โœ… โœ… -- -- -- --
Segmentation PaddleSeg/PP-HumanSeg-Lite 0.556 โœ… โœ… โœ… -- -- -- --
Segmentation PaddleSeg/HRNet-w18 38.7 โœ… โœ… โœ… -- -- -- --
Segmentation PaddleSeg/PP-HumanSeg 107.2 โœ… โœ… โœ… -- -- -- --
Segmentation PaddleSeg/Unet 53.7 โœ… โœ… โœ… -- -- -- --
Segmentation PaddleSeg/Deeplabv3 150 โ” โœ… โœ…
OCR PaddleOCR/PP-OCRv2 2.3+4.4 โœ… โœ… โ” -- -- -- --
OCR PaddleOCR/PP-OCRv3 2.4+10.6 โœ… โ” โ” โ” โ” โ” --

โš›๏ธ Web and Mini Program Model List

Web and mini program model list(click to fold)
Task Model web_demo
--- --- Paddle.js
Detection FaceDetection โœ…
Detection ScrewDetection โœ…
Segmentation PaddleSeg/HumanSeg โœ…
Object Recognition GestureRecognition โœ…
Object Recognition ItemIdentification โœ…
OCR PaddleOCR/PP-OCRv3 โœ…

๐Ÿ’ Acknowledge

We sincerely appreciate the open-sourced capabilities in EasyEdge as we adopt it for the SDK generation and download in this project.

ยฉ๏ธ License

FastDeploy is provided under the Apache-2.0.

About

โšก๏ธAn Easy-to-use and Fast Deep Learning Model Deployment Toolkit for โ˜๏ธCloud ๐Ÿ“ฑMobile and ๐Ÿ“นEdge. Including Image, Video, Text and Audio 20+ main stream scenarios and 150+ SOTA models with end-to-end optimization, multi-platform and multi-framework support.

https://www.paddlepaddle.org.cn/fastdeploy

License:Apache License 2.0


Languages

Language:C++ 68.7%Language:Python 15.7%Language:Java 4.5%Language:CMake 2.9%Language:C# 2.8%Language:Shell 2.5%Language:C 1.5%Language:Cuda 1.1%Language:Batchfile 0.2%Language:Dockerfile 0.0%