2022-08-19 10:28:56 +08:00
2022-08-19 10:24:00 +08:00
2022-08-18 16:01:46 +08:00
2022-07-05 09:30:15 +00:00
2022-07-05 09:30:15 +00:00
2022-07-05 09:30:15 +00:00
2022-07-05 09:30:15 +00:00
2022-08-17 19:40:47 +08:00
2022-07-05 09:30:15 +00:00
2022-06-27 18:23:21 +08:00
2022-08-19 10:28:56 +08:00
2022-08-18 19:31:51 +08:00

âš¡ï¸FastDeploy

âš¡ï¸FastDeployæ˜¯ä¸€æ¬¾ç®€å•æ˜“用的推ç†éƒ¨ç½²å·¥å…·ç®±ã€‚覆盖业界主æµä¼˜è´¨é¢„训练模型并æä¾›å¼€ç®±å³ç”¨çš„å¼€å‘体验,包括图åƒåˆ†ç±»ã€ç›®æ ‡æ£€æµ‹ã€å›¾åƒåˆ†å‰²ã€äººè„¸æ£€æµ‹ã€äººè„¸è¯†åˆ«ã€äººä½“å…³é”®ç‚¹è¯†åˆ«ã€æ–‡å­—识别等多任务,满足开å‘者多场景,多硬件ã€å¤šå¹³å°çš„快速部署需求。

近期更新

  • 🔥 2022.8.18:å‘布FastDeploy release/v0.2.0
    • æœåŠ¡ç«¯å…¨æ–°å‡çº§ï¼šä¸€å¥—SDKï¼Œè¦†ç›–å…¨é‡æ¨¡åž‹
      • å‘布基于x86 CPUã€NVIDIA GPU的易用ã€é«˜æ€§èƒ½æŽ¨ç†å¼•擎SDK,推ç†é€Ÿåº¦å¤§å¹…æå‡
      • 支æŒONNXRuntimeã€Paddle Inferenceã€TensorRT推ç†å¼•擎
      • 支æŒYOLOv7ã€YOLOv6ã€YOLOv5ã€PP-YOLOE等目标检测最优模型åŠDemo示例
      • 支æŒäººè„¸æ£€æµ‹ã€äººè„¸è¯†åˆ«ã€å®žæ—¶äººåƒæŠ å›¾ã€å›¾åƒåˆ†å‰²ç­‰40+é‡ç‚¹æ¨¡åž‹åŠDemo示例
      • 支æŒPython API å’Œ C++ API
      • å¼€å‘AI模型部署代ç é‡å‡å°‘~60%
    • 端侧继ARM CPUåŽï¼Œå»¶ä¼¸è‡³ç‘žèŠ¯å¾®ã€æ™¶æ™¨ã€æ©æ™ºæµ¦ç­‰NPU能力
      • å‘布轻é‡åŒ–目标检测Picodet-NPU部署Demo,æä¾›ä½Žé—¨æ§›INT8å…¨é‡åŒ–能力

内容目录

1. æœåŠ¡ç«¯å¿«é€Ÿå¼€å§‹

1.1 快速安装 FastDeploy Python/C++ 库

环境ä¾èµ–

  • Linux x64/aarch64
  • Windows 10
  • Mac OSX x86/arm64
  • cuda >= 11.2
  • cudnn >= 8.0
  • python 3.6~3.9(Windows 10 3.8~3.9)

安装 CPU Python 版本

pip install numpy opencv-python fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html

安装 GPU Python 版本

pip install numpy opencv-python fastdeploy-gpu-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html

安装 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

1.2 Python预测示例

# 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/nfer_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)

1.3 C++预测示例

// 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);
}

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

2. æœåŠ¡ç«¯æ¨¡åž‹åˆ—è¡¨ 🔥🔥🔥

符å·è¯´æ˜Ž: (1) ✅: å·²ç»æ”¯æŒ; (2) â”: æœªæ¥æ”¯æŒ; (3) âŒ: æš‚ä¸æ”¯æŒ; (4) --: æš‚ä¸è€ƒè™‘;
链接说明:「模型列ã€ä¼šè·³è½¬åˆ°æ¨¡åž‹æŽ¨ç†Demo代ç 

任务场景 模型 API Linux Linux Win Win Mac Mac Linux Linux
--- --- --- X86 CPU NVIDIA GPU Intel CPU NVIDIA GPU Intel CPU Arm CPU AArch64 CPU NVIDIA Jetson
Classification PaddleClas/ResNet50 Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Classification PaddleClas/PPLCNet Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Classification PaddleClas/PPLCNetv2 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/PPHGNet Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Classification PaddleClas/SwinTransformer Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Detection PaddleDetection/PPYOLOE Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Detection PaddleDetection/PicoDet Python/C++ ✅ ✅ ✅ ✅ �� ✅ ✅ â”
Detection PaddleDetection/YOLOX Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Detection PaddleDetection/YOLOv3 Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Detection PaddleDetection/PPYOLO Python/C++ ✅ ✅ ✅ ✅ ✅ ⌠⌠â”
Detection PaddleDetection/PPYOLOv2 Python/C++ ✅ ✅ ✅ ✅ ✅ ⌠⌠â”
Detection PaddleDetection/FasterRCNN Python/C++ ✅ ✅ ✅ ✅ ✅ ⌠⌠â”
Detection Megvii-BaseDetection/YOLOX Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Detection WongKinYiu/YOLOv7 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++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Segmentation PaddleSeg/PPLiteSeg Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Segmentation PaddleSeg/PPHumanSegLite Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Segmentation PaddleSeg/HRNet Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Segmentation PaddleSeg/PPHumanSegServer 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 deepinsight/SCRFD Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
FaceRecognition deepinsight/ArcFace Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
FaceRecognition deepinsight/CosFace Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
FaceRecognition deepinsight/PartialFC Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
FaceRecognition deepinsight/VPL Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”
Matting ZHKKKe/MODNet Python/C++ ✅ ✅ ✅ ✅ ✅ ✅ ✅ â”

3. 端侧文档

3.1 端侧部署

3.2 移动端部署

3.3 自定义模型部署

3.4 NPU部署

4. 端侧模型列表

任务场景 模型 大å°(MB) Linux Android iOS Linux Linux Linux 更新中...
--- --- --- ARM CPU ARM CPU ARM CPU 瑞芯微NPU
RV1109
RV1126
RK1808
晶晨NPU
A311D
S905D
C308X
æ©æ™ºæµ¦NPU
i.MX 8M Plus
更新中...|
Classification PP-LCNet 11.9 ✅ ✅ ✅ -- -- -- --
Classification PP-LCNetv2 26.6 ✅ ✅ ✅ -- -- -- --
Classification EfficientNet 31.4 ✅ ✅ ✅ -- -- -- --
Classification GhostNet 20.8 ✅ ✅ ✅ -- -- -- --
Classification MobileNetV1 17 ✅ ✅ ✅ -- -- -- --
Classification MobileNetV2 14.2 ✅ ✅ ✅ -- -- -- --
Classification MobileNetV3 22 ✅ ✅ ✅ â” â” â” â”
Classification ShuffleNetV2 9.2 ✅ ✅ ✅ -- -- -- --
Classification SqueezeNetV1.1 5 ✅ ✅ ✅
Classification Inceptionv3 95.5 ✅ ✅ ✅ -- -- -- --
Classification PP-HGNet 59 ✅ ✅ ✅ -- -- -- --
Classification SwinTransformer_224_win7 352.7 ✅ ✅ ✅ -- -- -- --
Detection PP-PicoDet_s_320_coco 4.1 ✅ ✅ ✅ -- -- -- --
Detection PP-PicoDet_s_320_lcnet 4.9 ✅ ✅ ✅ ✅ ✅ ✅ â”
Detection CenterNet 4.8 ✅ ✅ ✅ -- -- -- --
Detection YOLOv3_MobileNetV3 94.6 ✅ ✅ ✅ -- -- -- --
Detection PP-YOLO_tiny_650e_coco 4.4 ✅ ✅ ✅ -- -- -- --
Detection SSD_MobileNetV1_300_120e_voc 23.3 ✅ ✅ ✅ -- -- -- --
Detection PP-YOLO_ResNet50vd 188.5 ✅ ✅ ✅ -- -- -- --
Detection PP-YOLOv2_ResNet50vd 218.7 ✅ ✅ ✅ -- -- -- --
Detection PP-YOLO_crn_l_300e_coco 209.1 ✅ ✅ ✅ -- -- -- --
Detection YOLOv5s 29.3 ✅ ✅ ✅ -- -- -- --
FaceDetection BlazeFace 1.5 ✅ ✅ ✅ -- -- -- --
FaceDetection RetinaFace 1.7 ✅ ⌠⌠-- -- -- --
KeypointsDetection PP-TinyPose 5.5 ✅ ✅ ✅ â” â” â” â”
Segmentation PP-LiteSeg(STDC1) 32.2 ✅ ✅ ✅ -- -- -- --
Segmentation PP-HumanSeg-Lite 0.556 ✅ ✅ ✅ -- -- -- --
Segmentation HRNet-w18 38.7 ✅ ✅ ✅ -- -- -- --
Segmentation PP-HumanSeg-Server 107.2 ✅ ✅ ✅ -- -- -- --
Segmentation Unet 53.7 ⌠✅ ⌠-- -- -- --
OCR PP-OCRv1 2.3+4.4 ✅ ✅ ✅ -- -- -- --
OCR PP-OCRv2 2.3+4.4 ✅ ✅ ✅ -- -- -- --
OCR PP-OCRv3 2.4+10.6 ✅ ✅ ✅ â” â” â” â”
OCR PP-OCRv3-tiny 2.4+10.7 ✅ ✅ ✅ -- -- -- --

5. 社区交æµ

  • 加入社区👬: 微信扫æäºŒç»´ç åŽï¼Œå¡«å†™é—®å·åŠ å…¥äº¤æµç¾¤ï¼Œä¸Žå¼€å‘者共åŒè®¨è®ºæŽ¨ç†éƒ¨ç½²ç—›ç‚¹é—®é¢˜

6. Acknowledge

本项目中SDK生æˆå’Œä¸‹è½½ä½¿ç”¨äº†EasyEdge中的å…è´¹å¼€æ”¾èƒ½åŠ›ï¼Œå†æ¬¡è¡¨ç¤ºæ„Ÿè°¢ã€‚

7. License

FastDeployéµå¾ªApache-2.0å¼€æºå议。

S
Description
âš¡ï¸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.
Readme Apache-2.0 354 MiB
Languages
Python 61%
C++ 19.3%
Cuda 17.8%
Go 1%
Shell 0.7%
Other 0.1%