Files
FastDeploy/README_CN.md
ziqi-jin 57e5841d2e [Doc] Fix dead links (#584)
* first commit for yolov7

* pybind for yolov7

* CPP README.md

* CPP README.md

* modified yolov7.cc

* README.md

* python file modify

* delete license in fastdeploy/

* repush the conflict part

* README.md modified

* README.md modified

* file path modified

* file path modified

* file path modified

* file path modified

* file path modified

* README modified

* README modified

* move some helpers to private

* add examples for yolov7

* api.md modified

* api.md modified

* api.md modified

* YOLOv7

* yolov7 release link

* yolov7 release link

* yolov7 release link

* copyright

* change some helpers to private

* change variables to const and fix documents.

* gitignore

* Transfer some funtions to private member of class

* Transfer some funtions to private member of class

* Merge from develop (#9)

* Fix compile problem in different python version (#26)

* fix some usage problem in linux

* Fix compile problem

Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>

* Add PaddleDetetion/PPYOLOE model support (#22)

* add ppdet/ppyoloe

* Add demo code and documents

* add convert processor to vision (#27)

* update .gitignore

* Added checking for cmake include dir

* fixed missing trt_backend option bug when init from trt

* remove un-need data layout and add pre-check for dtype

* changed RGB2BRG to BGR2RGB in ppcls model

* add model_zoo yolov6 c++/python demo

* fixed CMakeLists.txt typos

* update yolov6 cpp/README.md

* add yolox c++/pybind and model_zoo demo

* move some helpers to private

* fixed CMakeLists.txt typos

* add normalize with alpha and beta

* add version notes for yolov5/yolov6/yolox

* add copyright to yolov5.cc

* revert normalize

* fixed some bugs in yolox

* fixed examples/CMakeLists.txt to avoid conflicts

* add convert processor to vision

* format examples/CMakeLists summary

* Fix bug while the inference result is empty with YOLOv5 (#29)

* Add multi-label function for yolov5

* Update README.md

Update doc

* Update fastdeploy_runtime.cc

fix variable option.trt_max_shape wrong name

* Update runtime_option.md

Update resnet model dynamic shape setting name from images to x

* Fix bug when inference result boxes are empty

* Delete detection.py

Co-authored-by: Jason <jiangjiajun@baidu.com>
Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>
Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
Co-authored-by: huangjianhui <852142024@qq.com>

* first commit for yolor

* for merge

* Develop (#11)

* Fix compile problem in different python version (#26)

* fix some usage problem in linux

* Fix compile problem

Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>

* Add PaddleDetetion/PPYOLOE model support (#22)

* add ppdet/ppyoloe

* Add demo code and documents

* add convert processor to vision (#27)

* update .gitignore

* Added checking for cmake include dir

* fixed missing trt_backend option bug when init from trt

* remove un-need data layout and add pre-check for dtype

* changed RGB2BRG to BGR2RGB in ppcls model

* add model_zoo yolov6 c++/python demo

* fixed CMakeLists.txt typos

* update yolov6 cpp/README.md

* add yolox c++/pybind and model_zoo demo

* move some helpers to private

* fixed CMakeLists.txt typos

* add normalize with alpha and beta

* add version notes for yolov5/yolov6/yolox

* add copyright to yolov5.cc

* revert normalize

* fixed some bugs in yolox

* fixed examples/CMakeLists.txt to avoid conflicts

* add convert processor to vision

* format examples/CMakeLists summary

* Fix bug while the inference result is empty with YOLOv5 (#29)

* Add multi-label function for yolov5

* Update README.md

Update doc

* Update fastdeploy_runtime.cc

fix variable option.trt_max_shape wrong name

* Update runtime_option.md

Update resnet model dynamic shape setting name from images to x

* Fix bug when inference result boxes are empty

* Delete detection.py

Co-authored-by: Jason <jiangjiajun@baidu.com>
Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>
Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
Co-authored-by: huangjianhui <852142024@qq.com>

* Yolor (#16)

* Develop (#11) (#12)

* Fix compile problem in different python version (#26)

* fix some usage problem in linux

* Fix compile problem

Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>

* Add PaddleDetetion/PPYOLOE model support (#22)

* add ppdet/ppyoloe

* Add demo code and documents

* add convert processor to vision (#27)

* update .gitignore

* Added checking for cmake include dir

* fixed missing trt_backend option bug when init from trt

* remove un-need data layout and add pre-check for dtype

* changed RGB2BRG to BGR2RGB in ppcls model

* add model_zoo yolov6 c++/python demo

* fixed CMakeLists.txt typos

* update yolov6 cpp/README.md

* add yolox c++/pybind and model_zoo demo

* move some helpers to private

* fixed CMakeLists.txt typos

* add normalize with alpha and beta

* add version notes for yolov5/yolov6/yolox

* add copyright to yolov5.cc

* revert normalize

* fixed some bugs in yolox

* fixed examples/CMakeLists.txt to avoid conflicts

* add convert processor to vision

* format examples/CMakeLists summary

* Fix bug while the inference result is empty with YOLOv5 (#29)

* Add multi-label function for yolov5

* Update README.md

Update doc

* Update fastdeploy_runtime.cc

fix variable option.trt_max_shape wrong name

* Update runtime_option.md

Update resnet model dynamic shape setting name from images to x

* Fix bug when inference result boxes are empty

* Delete detection.py

Co-authored-by: Jason <jiangjiajun@baidu.com>
Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>
Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
Co-authored-by: huangjianhui <852142024@qq.com>

Co-authored-by: Jason <jiangjiajun@baidu.com>
Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>
Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
Co-authored-by: huangjianhui <852142024@qq.com>

* Develop (#13)

* Fix compile problem in different python version (#26)

* fix some usage problem in linux

* Fix compile problem

Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>

* Add PaddleDetetion/PPYOLOE model support (#22)

* add ppdet/ppyoloe

* Add demo code and documents

* add convert processor to vision (#27)

* update .gitignore

* Added checking for cmake include dir

* fixed missing trt_backend option bug when init from trt

* remove un-need data layout and add pre-check for dtype

* changed RGB2BRG to BGR2RGB in ppcls model

* add model_zoo yolov6 c++/python demo

* fixed CMakeLists.txt typos

* update yolov6 cpp/README.md

* add yolox c++/pybind and model_zoo demo

* move some helpers to private

* fixed CMakeLists.txt typos

* add normalize with alpha and beta

* add version notes for yolov5/yolov6/yolox

* add copyright to yolov5.cc

* revert normalize

* fixed some bugs in yolox

* fixed examples/CMakeLists.txt to avoid conflicts

* add convert processor to vision

* format examples/CMakeLists summary

* Fix bug while the inference result is empty with YOLOv5 (#29)

* Add multi-label function for yolov5

* Update README.md

Update doc

* Update fastdeploy_runtime.cc

fix variable option.trt_max_shape wrong name

* Update runtime_option.md

Update resnet model dynamic shape setting name from images to x

* Fix bug when inference result boxes are empty

* Delete detection.py

Co-authored-by: Jason <jiangjiajun@baidu.com>
Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>
Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
Co-authored-by: huangjianhui <852142024@qq.com>

* documents

* documents

* documents

* documents

* documents

* documents

* documents

* documents

* documents

* documents

* documents

* documents

* Develop (#14)

* Fix compile problem in different python version (#26)

* fix some usage problem in linux

* Fix compile problem

Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>

* Add PaddleDetetion/PPYOLOE model support (#22)

* add ppdet/ppyoloe

* Add demo code and documents

* add convert processor to vision (#27)

* update .gitignore

* Added checking for cmake include dir

* fixed missing trt_backend option bug when init from trt

* remove un-need data layout and add pre-check for dtype

* changed RGB2BRG to BGR2RGB in ppcls model

* add model_zoo yolov6 c++/python demo

* fixed CMakeLists.txt typos

* update yolov6 cpp/README.md

* add yolox c++/pybind and model_zoo demo

* move some helpers to private

* fixed CMakeLists.txt typos

* add normalize with alpha and beta

* add version notes for yolov5/yolov6/yolox

* add copyright to yolov5.cc

* revert normalize

* fixed some bugs in yolox

* fixed examples/CMakeLists.txt to avoid conflicts

* add convert processor to vision

* format examples/CMakeLists summary

* Fix bug while the inference result is empty with YOLOv5 (#29)

* Add multi-label function for yolov5

* Update README.md

Update doc

* Update fastdeploy_runtime.cc

fix variable option.trt_max_shape wrong name

* Update runtime_option.md

Update resnet model dynamic shape setting name from images to x

* Fix bug when inference result boxes are empty

* Delete detection.py

Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>
Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
Co-authored-by: huangjianhui <852142024@qq.com>

Co-authored-by: Jason <jiangjiajun@baidu.com>
Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>
Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
Co-authored-by: huangjianhui <852142024@qq.com>
Co-authored-by: Jason <928090362@qq.com>

* add is_dynamic for YOLO series (#22)

* modify ppmatting backend and docs

* modify ppmatting docs

* fix the PPMatting size problem

* fix LimitShort's log

* retrigger ci

* modify PPMatting docs

* modify the way  for dealing with  LimitShort

* add python comments for external models

* modify resnet c++ comments

* modify C++ comments for external models

* modify python comments and add result class comments

* fix comments compile error

* modify result.h comments

* deadlink check

* deadlink check

* deadlink check

Co-authored-by: Jason <jiangjiajun@baidu.com>
Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com>
Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
Co-authored-by: huangjianhui <852142024@qq.com>
Co-authored-by: Jason <928090362@qq.com>
2022-11-14 18:44:33 +08:00

53 KiB
Raw Blame History

English | 简体中文

⚡️FastDeploy

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:

近期更新

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

  • 社区交流

    • SlackJoin our Slack community and chat with other community members about ideas
    • 微信:扫描二维码,填写问卷加入技术社区,与社区开发者探讨部署的痛点与方案
  • 🔥 2022.11.8Release 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安装(推荐)
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开源协议