Files
FastDeploy/examples/application/rust/yolov8/README_CN.md
wanziyu 95c977c638 [PaddlePaddle Hackathon4 No.184] Add PaddleDetection Models Deployment Rust Examples (#1717)
* [PaddlePaddle Hackathon4 No.186] Add PaddleDetection Models Deployment Go Examples

Signed-off-by: wanziyu <ziyuwan@zju.edu.cn>

* Fix YOLOv8 Deployment Go Example

Signed-off-by: wanziyu <ziyuwan@zju.edu.cn>

* [Hackathon4 No.184] Add PaddleDetection Models Deployment Rust Examples

Signed-off-by: wanziyu <ziyuwan@zju.edu.cn>

* Add main and cargo files in examples

Signed-off-by: wanziyu <ziyuwan@zju.edu.cn>

---------

Signed-off-by: wanziyu <ziyuwan@zju.edu.cn>
Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
2023-04-03 11:19:28 +08:00

2.3 KiB
Raw Blame History

English | 简体中文

PaddleDetection Rust 部署示例

本目录下提供main.rsbuild.rs, 使用Rust的bindgen库调用FastDeploy C API快速完成PaddleDetection模型YOLOv8在CPU/GPU上部署的示例

在部署前,需确认以下三个步骤

以Linux上推理为例在本目录执行如下命令即可完成编译测试支持此模型需保证FastDeploy版本1.0.4以上(x.x.x>1.0.4)或FastDeploy的Develop版本(x.x.x=0.0.0)

使用Rust和bindgen进行YOLOv8模型推理部署

在当前目录下下载FastDeploy预编译库用户可在上文提到的FastDeploy预编译库中自行选择合适的版本使用

wget https://fastdeploy.bj.bcebos.com/dev/cpp/fastdeploy-linux-x64-0.0.0.tgz
tar xvf fastdeploy-linux-x64-0.0.0.tgz

下载官方转换好的 YOLOv8 ONNX 模型文件和测试图片

wget https://bj.bcebos.com/paddlehub/fastdeploy/yolov8s.onnx
wget https://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg

配置build.rs中的cargo:rustc-link-search参数配置为FastDeploy动态库路径动态库位于预编译库的/lib目录中,cargo:rustc-link-lib参数配置为FastDeploy动态库fastdeployheaders_dir变量配置为FastDeploy C API目录的路径

println!("cargo:rustc-link-search=./fastdeploy-linux-x64-0.0.0/lib");
println!("cargo:rustc-link-lib=fastdeploy");
let headers_dir = PathBuf::from("./fastdeploy-linux-x64-0.0.0/include");

将FastDeploy的库路径添加到环境变量

source /Path/to/fastdeploy-linux-x64-0.0.0/fastdeploy_init.sh 

使用Cargo编译Rust项目

cargo build

编译完成后,使用如下命令执行可得到预测结果

# CPU推理
cargo run -- --model yolov8s.onnx --image 000000014439.jpg --device 0
# GPU推理
cargo run -- --model yolov8s.onnx --image 000000014439.jpg --device 1

可视化的检测结果图片保存在本地vis_result_yolov8.jpg