使用C++ fastdeploy库部署yolov5lite模型
Mar 24, 2024
使用python的fastdeploy库部署yolov5lite模型非常简单,只需要pip命令安装即可,但其运行速度慢,不适合在生产环境中使用,因此本文使用C++ fastdeploy库部署yolov5lite模型。
运行官方demo
clone官方源码
1 | git clone https://github.com/PaddlePaddle/FastDeploy.git |
进入yolov5lite example目录
1 | cd ./FastDeploy/examples/vison/detection/yolov5lite |
下载预编译Fastdeploy库,需要在根据自己的硬件平台下载相应版本
1 | mkdir build |
编译demo程序
1 | cmake .. -DFASTDEPLOY_INSTALL_DIR=${PWD}/fastdeploy-linux-aarch64-1.0.0.tgz |
下载官方提供的模型与文件(也可以自己准备)
1 | wget https://bj.bcebos.com/paddlehub/fastdeploy/v5Lite-g-sim-640.onnx |
运行程序
1 | ./infer_demo v5Lite-g-sim-640.onnx 000000014439.jpg 0 |
如果运行程序后出现了这个错误:
1 | ./infer_demo: error while loading shared libraries: libonnxruntime.so.1.12.0: cannot open shared object file: No such file or directory |
通过执行如下命令,将FastDeploy的库路径添加到环境变量之后,重新执行二进制程序。
1 | source /home/user/FastDeploy/build/compiled_fastdeploy_sdk/fastdeploy_init.sh |
编译Fastdeploy
官方提供的Fastdeploy库自带的opencv库无法支持Video的读取,以及imshow等可视化界面功能。若要使用这些功能,则需要自行编译,编译时通过-DOPENCV_DIRECTORY
来指定环境中的OpenCV。
使用包管理器下载Opencv库,opencv库的地址一般在/usr/lib/aarch64-linux-gnu/cmake/opencv4下,需要根据自己的硬件平台切换。
1 | sudo apt install libopencv-dev |
开始编译,本文只需要实现视觉功能,更多编译参数参考官方文档。
1 | cmake .. -DENABLE_ORT_BACKEND=ON \ |
根据编译出的sdk位置编译demo程序
1 | cmake .. -DFASTDEPLOY_INSTALL_DIR=/home/user/FastDeploy/build/compiled_fastdeploy_sdk/ |
踩坑点
官方提供的demo程序只支持以640结尾的模型,即只支持640输入,因为model类的默认size为640,若要改用320模型,需要在代码模型对象中进行修改:
1 | auto model = fastdeploy::vision::detection::YOLOv5Lite(model_file); |