huangjianhui eaa017fb09 Update PPYOLOE README.md (#133)
* Update README.md

* Update README.md

* Update README.md

* Create README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Add evaluation calculate time and fix some bugs

* Update classification __init__

* Move to ppseg

* Add segmentation doc

* Add PaddleClas infer.py

* Update PaddleClas infer.py

* Delete .infer.py.swp

* Add PaddleClas infer.cc

* Update README.md

* Update README.md

* Update README.md

* Update infer.py

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Add PaddleSeg doc and infer.cc demo

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Create segmentation_result.md

* Update README.md

* Update segmentation_result.md

* Update segmentation_result.md

* Update segmentation_result.md

* Update classification and detection evaluation function

* Fix python grammar bug

* Update README.md

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Jason <jiangjiajun@baidu.com>
2022-08-18 21:24:29 +08:00
2022-08-18 21:24:29 +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-18 20:04:50 +08:00
2022-08-18 19:30:36 +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能力

内容目录

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("model.pdmodel", "model.pdiparams", "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)

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("model.pdmodel", "model.pdiparams", "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开源协议

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 158 MiB
Languages
Python 45%
C++ 28.9%
Cuda 25.3%
Shell 0.5%
C 0.2%
Other 0.1%