English | ็ฎไฝไธญๆ | เคนเคฟเคจเฅเคฆเฅ | ๆฅๆฌ่ช | ํ๊ตญ์ธ | Pัฬััะบะธะน ัะทัฬะบ
Installation | Documents | Quick Start | API Docs | Release Notes
๐ Recent updates
-
โจ โจ โจ In 2023.01.17 we released YOLOv8 for deployment on FastDeploy series hardware, which includes Paddle YOLOv8 and ultralytics YOLOv8- You can deploy Paddle YOLOv8 on Intel CPU, NVIDIA GPU, Jetson, Phytium, Kunlunxin, HUAWEI Ascend ,ARM CPU RK3588 and Sophgo TPU. Both Python deployments and C++ deployments are included.
- You can deploy ultralytics YOLOv8 on Intel CPU, NVIDIA GPU, Jetson. Both Python deployments and C++ deployments are included
- Fastdeploy supports quick deployment of multiple models, including YOLOv8, PP-YOLOE+, YOLOv5 and other models
-
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
โด๏ธ A Quick Start for Python SDKโด๏ธ A Quick Start for C++ SDK-
Installation
- How to Install Prebuilt Library
- How to Build GPU Deployment Environment
- How to Build CPU Deployment Environment
- How to Build IPU Deployment Environment
- How to Build KunlunXin XPU Deployment Environment
- How to Build RV1126 Deployment Environment
- How to Build RKNPU2 Deployment Environment
- How to Build A311D Deployment Environment
- How to build Huawei Ascend Deployment Environment
- How to Build FastDeploy Library on Nvidia Jetson Platform
- How to Build FastDeploy Android C++ SDK
- Quick Start
- Demos on Different Backends
- Serving Deployment
- API Documents
- Performance Tune-up
- FAQ
- More FastDeploy Deploy Modules
- Model list
-
๐ Developer Contributions
๐จ
Quick StartA 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
- Please refer to C++ Prebuilt Libraries Download
๐ 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:
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 |
|
|||||||||||||
Detection | ||||||||||||||
Detection | ||||||||||||||
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 | |||||||||||||
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.