Skip to content

⚡️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.

License

PaddlePaddle/FastDeploy

Repository files navigation

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 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.