English | ็ฎไฝไธญๆ
Documents | 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 ๐ฅ150+ Text, Vision, Speech and Cross-modal AI models. Including image classification, object detection, image segmentation, face detection, face recognition, keypoint detection, matting, OCR, NLP, TTS and other tasks to meet developers' industrial deployment needs for multi-scenario, multi-hardware and multi-platform.
Image Classification | Object Detection | Semantic Segmentation | Potrait Segmentation |
---|---|---|---|
Image Matting | Real-Time Matting | OCR | Face Alignment |
Pose Estimation | Behavior Recognition | NLP | Speech |
input:Life was like a box |
- ๐ฅใLive Previewใ2022.11.09~2022.11.10 China Standard Time, 20:30๏ฝ21:30๏ผ Engineers@FastDeploy will show Using FastDeploy Efficiently for 3 days.
- 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.
-
๐ฅ 2022.11.8๏ผRelease FastDeploy release v0.6.0
- ๐ฅ๏ธ Server-side and Cloud Deployment: Support more backend, Support more CV models
- Optimize preprocessing and postprocessing memory creation logic on YOLO series, PaddleClas, PaddleDetection;
- Integrate visual preprocessing operations, optimize the preprocessing performance of PaddleClas and PaddleDetection, and improve end-to-end performance;
- Add Clone interface support for service-based deployment, reducing the memoryใGPU memory usage of Paddle InferenceใTensorRTใOpenVINO backend in multiple instances
- Support FSANet head pose recognition model, PFLD face alignment model, ERNIE text classification model etc.
- ๐ฑ Mobile and Edge Device Deployment: support new backend๏ผsupport more CV model
- Support RKNPU2, and provide a seamless deployment experience with other inference engines include Paddle InferenceใPaddle Inference TensorRTใPaddle LiteใTensorRTใOpenVINOใONNX Runtime๏ผ
- Support PP-HumanSegใUnetใPicoDetใSCRFD and other popular models on NPU.
- ๐ฅ๏ธ Server-side and Cloud Deployment: Support more backend, Support more CV models
-
๐ Tutorials๏ผclick to fold๏ผ
- Install
- How to Install FastDeploy Prebuilt Libraries
- How to Build and Install FastDeploy Library on GPU Platform
- How to Build and Install FastDeploy Library on CPU Platform
- How to Build and Install FastDeploy Library on IPU Platform
- How to Build and Install FastDeploy Library on Nvidia Jetson Platform
- How to Build and Install FastDeploy Library on Android Platform
- A Quick Start - Demos
- API (To be continued)
- Performance Optimization
- Frequent Q&As
- More FastDeploy Deployment Module
- Install
- ๐ฅ๏ธ Server-side and Cloud Deployment
- ๐ฑ Mobile and Edge Device Deployment
- ๐ Browser and Mini Program Deployment
- Community
- Acknowledge
- License
A Quick Start for Python SDK๏ผclick to fold๏ผ
- CUDA >= 11.2 ใcuDNN >= 8.0 ใ Python >= 3.6
- OS: Linux x86_64/macOS/Windows 10
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
pip install fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html
- 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๏ผ
- Please refer to C++ Prebuilt Libraries Download
- 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 .
Notes: โ : already supported; โ: to be supported in the future; N/A: Not Available;
Task | Model | API | Linux | Linux | Win | Win | Mac | Mac | Linux | Linux | Linux | Linux |
---|---|---|---|---|---|---|---|---|---|---|---|---|
--- | --- | --- | X86 CPU | NVIDIA GPU | Intel CPU | NVIDIA GPU | Intel CPU | Arm CPU | AArch64 CPU | NVIDIA Jetson | Graphcore IPU | Serving |
Classification | PaddleClas/ResNet50 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | TorchVison/ResNet | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | ltralytics/YOLOv5Cls | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/PP-LCNet | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/PP-LCNetv2 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/EfficientNet | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/GhostNet | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/MobileNetV1 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/MobileNetV2 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/MobileNetV3 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/ShuffleNetV2 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/SqueeezeNetV1.1 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/Inceptionv3 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/PP-HGNet | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Classification | PaddleClas/SwinTransformer | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | PaddleDetection/PP-YOLOE | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | PaddleDetection/PicoDet | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | PaddleDetection/YOLOX | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | PaddleDetection/YOLOv3 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | PaddleDetection/PP-YOLO | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | PaddleDetection/PP-YOLOv2 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | PaddleDetection/Faster-RCNN | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | PaddleDetection/Mask-RCNN | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | Megvii-BaseDetection/YOLOX | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | WongKinYiu/YOLOv7 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | WongKinYiu/YOLOv7end2end_trt | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | ||
Detection | WongKinYiu/YOLOv7end2end_ort_ | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | ||
Detection | meituan/YOLOv6 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | ultralytics/YOLOv5 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | WongKinYiu/YOLOR | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | WongKinYiu/ScaledYOLOv4 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | ppogg/YOLOv5Lite | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Detection | RangiLyu/NanoDetPlus | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
KeyPoint | PaddleDetection/TinyPose | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
KeyPoint | PaddleDetection/PicoDet + TinyPose | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
HeadPose | omasaht/headpose | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Tracking | PaddleDetection/PP-Tracking | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
OCR | PaddleOCR/PP-OCRv2 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
OCR | PaddleOCR/PP-OCRv3 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Segmentation | PaddleSeg/PP-LiteSeg | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Segmentation | PaddleSeg/PP-HumanSegLite | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Segmentation | PaddleSeg/HRNet | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Segmentation | PaddleSeg/PP-HumanSegServer | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Segmentation | PaddleSeg/Unet | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Segmentation | PaddleSeg/Deeplabv3 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
FaceDetection | biubug6/RetinaFace | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
FaceDetection | Linzaer/UltraFace | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
FaceDetection | deepcam-cn/YOLOv5Face | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
FaceDetection | insightface/SCRFD | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
FaceAlign | Hsintao/PFLD | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
FaceRecognition | insightface/ArcFace | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
FaceRecognition | insightface/CosFace | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
FaceRecognition | insightface/PartialFC | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
FaceRecognition | insightface/VPL | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Matting | ZHKKKe/MODNet | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Matting | PeterL1n/RobustVideoMatting | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Matting | PaddleSeg/PP-Matting | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Matting | PaddleSeg/PP-HumanMatting | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Matting | PaddleSeg/ModNet | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Information Extraction | PaddleNLP/UIE | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
NLP | PaddleNLP/ERNIE-3.0 | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | โ | โ |
Speech | PaddleSpeech/PP-TTS | Python/C++ | โ | โ | โ | โ | โ | โ | โ | โ | -- | โ |
Task | Model | Size (MB) | Linux | Android | iOS | Linux | Linux | Linux | Linux | TBD... |
---|---|---|---|---|---|---|---|---|---|---|
--- | --- | --- | ARM CPU | ARM CPU | ARM CPU | Rockchip-NPU RK3568/RK3588 |
Rockchip-NPU RV1109/RV1126/RK1808 |
Amlogic-NPU A311D/S905D/C308X |
NXP-NPU i.MX 8M Plus |
TBD...๏ฝ |
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 | โ | โ | โ | โ | -- | -- | -- | -- |
Classification | PaddleClas/SwinTransformer_224_win7 | 352.7 | โ | โ | โ | โ | -- | -- | -- | -- |
Detection | PaddleDetection/PP-PicoDet_s_320_coco | 4.1 | โ | โ | โ | โ | -- | -- | -- | -- |
Detection | PaddleDetection/PP-PicoDet_s_320_lcnet | 4.9 | โ | โ | โ | โ | โ | โ | โ | -- |
Detection | PaddleDetection/CenterNet | 4.8 | โ | โ | โ | โ | -- | -- | -- | -- |
Detection | PaddleDetection/YOLOv3_MobileNetV3 | 94.6 | โ | โ | โ | โ | -- | -- | -- | -- |
Detection | PaddleDetection/PP-YOLO_tiny_650e_coco | 4.4 | โ | โ | โ | โ | -- | -- | -- | -- |
Detection | PaddleDetection/SSD_MobileNetV1_300_120e_voc | 23.3 | โ | โ | โ | โ | -- | -- | -- | -- |
Detection | PaddleDetection/PP-YOLO_ResNet50vd | 188.5 | โ | โ | โ | โ | -- | -- | -- | -- |
Detection | PaddleDetection/PP-YOLOv2_ResNet50vd | 218.7 | โ | โ | โ | โ | -- | -- | -- | -- |
Detection | PaddleDetection/PP-YOLO_crn_l_300e_coco | 209.1 | โ | โ | โ | โ | -- | -- | -- | -- |
Detection | YOLOv5s | 29.3 | โ | โ | โ | โ | -- | -- | -- | -- |
Face Detection | BlazeFace | 1.5 | โ | โ | โ | โ | -- | -- | -- | -- |
Face Detection | RetinaFace | 1.7 | โ | โ | โ | โ | -- | -- | -- | -- |
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-OCRv1 | 2.3+4.4 | โ | โ | โ | โ | -- | -- | -- | -- |
OCR | PaddleOCR/PP-OCRv2 | 2.3+4.4 | โ | โ | โ | โ | -- | -- | -- | -- |
OCR | PaddleOCR/PP-OCRv3 | 2.4+10.6 | โ | โ | โ | โ | โ | โ | โ | -- |
OCR | PaddleOCR/PP-OCRv3-tiny | 2.4+10.7 | โ | โ | โ | โ | -- | -- | -- | -- |
Task | Model | web_demo |
---|---|---|
--- | --- | Paddle.js |
Detection | FaceDetection | โ |
Detection | ScrewDetection | โ |
Segmentation | PaddleSeg/HumanSeg | โ |
Object Recognition | GestureRecognition | โ |
Object Recognition | ItemIdentification | โ |
OCR | PaddleOCR/PP-OCRv3 | โ |
- If you have any question or suggestion, please give us your valuable input via GitHub Issues
- Join Us๐ฌ๏ผ
- Slack๏ผJoin our Slack community and chat with other community members about ideas
- WeChat๏ผjoin our WeChat community and chat with other community members about ideas
We sincerely appreciate the open-sourced capabilities in EasyEdge as we adopt it for the SDK generation and download in this project.
FastDeploy is provided under the Apache-2.0.