mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-07 01:22:59 +08:00

* 第一次提交 * 补充一处漏翻译 * deleted: docs/en/quantize.md * Update one translation * Update en version * Update one translation in code * Standardize one writing * Standardize one writing * Update some en version * Fix a grammer problem * Update en version for api/vision result * Merge branch 'develop' of https://github.com/charl-u/FastDeploy into develop * Checkout the link in README in vision_results/ to the en documents * Modify a title * Add link to serving/docs/ * Finish translation of demo.md * Update english version of serving/docs/ * Update title of readme * Update some links * Modify a title * Update some links * Update en version of java android README * Modify some titles * Modify some titles * Modify some titles * modify article to document * update some english version of documents in examples * Add english version of documents in examples/visions * Sync to current branch * Add english version of documents in examples * Add english version of documents in examples * Add english version of documents in examples * Update some documents in examples * Update some documents in examples * Update some documents in examples * Update some documents in examples * Update some documents in examples * Update some documents in examples * Update some documents in examples * Update some documents in examples * Update some documents in examples
61 lines
3.8 KiB
Markdown
Executable File
61 lines
3.8 KiB
Markdown
Executable File
English | [简体中文](README_CN.md)
|
|
# PP-YOLOE Quantitative Model C++ Deployment Example
|
|
|
|
`infer.cc` in this directory can help you quickly complete the inference acceleration of PP-YOLOE quantization model deployment on A311D.
|
|
|
|
## Deployment Preparations
|
|
### FastDeploy Cross-compile Environment Preparations
|
|
1. For the software and hardware environment, and the cross-compile environment, please refer to [FastDeploy Cross-compile environment](../../../../../../docs/en/build_and_install/a311d.md#Cross-compilation-environment-construction)
|
|
|
|
### Model Preparations
|
|
1. You can directly use the quantized model provided by FastDeploy for deployment.
|
|
2. You can use PaddleDetection to export Float32 models, note that you need to set the parameter when exporting model: use_shared_conv=False. For more information: [PP-YOLOE](https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.4/configs/ppyoloe).
|
|
3. You can use [one-click automatical compression tool](../../../../../../tools/common_tools/auto_compression/) provided by FastDeploy to quantize model by yourself, and use the generated quantized model for deployment.(Note: The quantized classification model still needs the infer_cfg.yml file in the FP32 model folder. Self-quantized model folder does not contain this yaml file, you can copy it from the FP32 model folder to the quantized model folder.)
|
|
4. The model requires heterogeneous computation. Please refer to: [Heterogeneous Computation](./../../../../../../docs/en/faq/heterogeneous_computing_on_timvx_npu.md). Since the model is already provided, you can test the heterogeneous file we provide first to verify whether the accuracy meets the requirements.
|
|
|
|
For more information, please refer to [Model Quantization](../../quantize/README.md)
|
|
|
|
## Deploying the Quantized PP-YOLOE Detection model on A311D
|
|
Please follow these steps to complete the deployment of the PP-YOLOE quantization model on A311D.
|
|
1. Cross-compile the FastDeploy library as described in [Cross-compile FastDeploy](../../../../../../docs/en/build_and_install/a311d.md#FastDeploy-cross-compilation-library-compilation-based-on-Paddle-Lite)
|
|
|
|
2. Copy the compiled library to the current directory. You can run this line:
|
|
```bash
|
|
cp -r FastDeploy/build/fastdeploy-timvx/ FastDeploy/examples/vision/detection/paddledetection/a311d/cpp
|
|
```
|
|
|
|
3. Download the model and example images required for deployment in current path.
|
|
```bash
|
|
cd FastDeploy/examples/vision/detection/paddledetection/a311d/cpp
|
|
mkdir models && mkdir images
|
|
wget https://bj.bcebos.com/fastdeploy/models/ppyoloe_noshare_qat.tar.gz
|
|
tar -xvf ppyoloe_noshare_qat.tar.gz
|
|
cp -r ppyoloe_noshare_qat models
|
|
wget https://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg
|
|
cp -r 000000014439.jpg images
|
|
```
|
|
|
|
4. Compile the deployment example. You can run the following lines:
|
|
```bash
|
|
cd FastDeploy/examples/vision/detection/paddledetection/a311d/cpp
|
|
mkdir build && cd build
|
|
cmake -DCMAKE_TOOLCHAIN_FILE=${PWD}/../fastdeploy-timvx/toolchain.cmake -DFASTDEPLOY_INSTALL_DIR=${PWD}/../fastdeploy-timvx -DTARGET_ABI=arm64 ..
|
|
make -j8
|
|
make install
|
|
# After success, an install folder will be created with a running demo and libraries required for deployment.
|
|
```
|
|
|
|
5. Deploy the PP-YOLOE detection model to A311D based on adb.
|
|
```bash
|
|
# Go to the install directory.
|
|
cd FastDeploy/examples/vision/detection/paddledetection/a311d/cpp/build/install/
|
|
# The following line represents: bash run_with_adb.sh, demo needed to run, model path, image path, DEVICE ID.
|
|
bash run_with_adb.sh infer_demo ppyoloe_noshare_qat 000000014439.jpg $DEVICE_ID
|
|
```
|
|
|
|
The output is:
|
|
|
|
<img width="640" src="https://user-images.githubusercontent.com/30516196/203708564-43c49485-9b48-4eb2-8fe7-0fa517979fff.png">
|
|
|
|
Please note that the model deployed on A311D needs to be quantized. You can refer to [Model Quantization](../../../../../../docs/en/quantize.md)
|