mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2026-05-08 00:14:27 +08:00
ddd93fe4bdda1006ab173f8b83231317f963e66d
âš¡ï¸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å…¨é‡åŒ–能力
- æœåŠ¡ç«¯å…¨æ–°å‡çº§ï¼šä¸€å¥—SDKï¼Œè¦†ç›–å…¨é‡æ¨¡åž‹
内容目录
- æœåŠ¡ç«¯
- 端侧
- 社区交æµ
- Acknowledge
- License
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++ 版本
- å‚考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 端侧部署
- ARM Linux 系统
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å¼€æºå议。
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.
androidgraphcoreinteljetsonkunlunobject-detectiononnxonnxruntimeopenvinopicodetrockchipservingstable-diffusiontensorrtuieyolov5yolov8
Readme
Apache-2.0
354 MiB
Languages
Python
61%
C++
19.3%
Cuda
17.8%
Go
1%
Shell
0.7%
Other
0.1%

