Skip to content

Latest commit

 

History

History
379 lines (303 loc) · 53.7 KB

README_CN.md

File metadata and controls

379 lines (303 loc) · 53.7 KB

English | 简体中文

⚡️FastDeploy

使用文档 | API文档 | 更新日志

⚡️FastDeploy是一款全场景易用灵活极致高效的AI推理部署套件。提供📦开箱即用云边端部署体验, 支持超过 🔥150+ Text, Vision, Speech跨模态模型,并实现🔚端到端的推理性能优化。包括图像分类、物体检测、图像分割、人脸检测、人脸识别、关键点检测、抠图、OCR、NLP、TTS等任务,满足开发者多场景、多硬件、多平台的产业部署需求。

Image Classification Object Detection Semantic Segmentation Potrait Segmentation
Image Matting Real-Time Matting OCR Face Alignment
Pose Estimation Behavior Recognition NLP Speech

input :早上好今天是2020
/10/29,最低温度是-3°C。

output:

近期更新

  • 🔥 【三日部署直播课回放】

  • 社区交流

    • Slack:Join our Slack community and chat with other community members about ideas
    • 微信:扫描二维码,填写问卷加入技术社区,与社区开发者探讨部署的痛点与方案
  • 🔥 2022.11.8:Release FastDeploy release v0.6.0

    • 🖥️ 服务端部署:支持推理速度更快的后端,支持更多的模型
      • 优化 YOLO系列、PaddleClas、PaddleDetection 前后处理内存创建逻辑;
      • 融合视觉预处理操作,优化PaddleClas、PaddleDetection预处理性能,提升端到端推理性能;
      • 服务化部署新增Clone接口支持,降低Paddle Inference/TensorRT/OpenVINO后端在多实例下内存/显存的使用;
      • 增加FSANet头部姿态识别PFLD人脸对齐ERNIE文本分类等模型。
    • 📲 移动端和端侧部署:移动端后端能力升级,支持更多的CV模型
      • 集成 RKNPU2 后端,并提供与 Paddle Inference、Paddle Inference TensorRT、TensorRT、OpenVINO、ONNX Runtime、Paddle Lite 等推理后端一致的开发体验;
      • 支持 PP-HumanSegUnetPicoDetSCRFD 等在NPU高需求的特色模型。
  • more releases information

目录

🖥️ 服务端部署

Python SDK快速开始(点击可收缩)

快速安装

前置依赖
  • CUDA >= 11.2、cuDNN >= 8.0、Python >= 3.6
  • OS: Linux x86_64/macOS/Windows 10
安装GPU版本
pip install numpy opencv-python 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
安装CPU版本
pip install numpy opencv-python fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html

Python 推理示例

  • 准备模型和图片
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
  • 测试推理结果
# GPU/TensorRT部署参考 examples/vision/detection/paddledetection/python
import cv2
import fastdeploy.vision as vision

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")
im = cv2.imread("000000014439.jpg")
result = model.predict(im.copy())
print(result)

vis_im = vision.vis_detection(im, result, score_threshold=0.5)
cv2.imwrite("vis_image.jpg", vis_im)
C++ SDK快速开始(点开查看详情)

安装

C++ 推理示例

  • 准备模型和图片
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
  • 测试推理结果
// GPU/TensorRT部署参考 examples/vision/detection/paddledetection/cpp
#include "fastdeploy/vision.h"

int main(int argc, char* argv[]) {
  namespace vision = fastdeploy::vision;
  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");
  auto im = cv::imread("000000014439.jpg");

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

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

更多部署案例请参考视觉模型部署示例 .

服务端模型支持列表 🔥🔥🔥🔥🔥

符号说明: (1) ✅: 已经支持; (2) ❔: 正在进行中; (3) N/A: 暂不支持;
链接说明:「模型列」会跳转到模型推理Demo代码

任务场景 模型 API Linux Linux Win Win Mac Mac Linux Linux Linux Linux
--- --- --- X86 CPU NVIDIA GPU X86 CPU NVIDIA GPU X86 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++ --

📲 移动端和端侧部署 🔥🔥🔥🔥

Paddle Lite NPU部署

📲 端侧模型支持列表

任务场景 模型 大小(MB) Linux Android iOS Linux Linux Linux Linux 更新中...
--- --- --- ARM CPU ARM CPU ARM CPU 瑞芯微NPU
RK3568/RK3588
瑞芯微NPU
RV1109/RV1126/RK1808
晶晨NPU
A311D/S905D/C308X
恩智浦NPU
i.MX 8M Plus
更新中...|
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 -- -- -- --

🌐 Web和小程序部署

任务场景 模型 web_demo
--- --- Paddle.js
Detection FaceDetection
Detection ScrewDetection
Segmentation PaddleSeg/HumanSeg
Object Recognition GestureRecognition
Object Recognition ItemIdentification
OCR PaddleOCR/PP-OCRv3

社区交流

  • 加入社区👬: 微信扫描二维码,进入FastDeploy技术交流群

Acknowledge

本项目中SDK生成和下载使用了EasyEdge中的免费开放能力,在此表示感谢。

License

FastDeploy遵循Apache-2.0开源协议