C++版本fastdeploy 在linux环境下的安装与配置
1. 预编译安装下载
参考github中的文档 进行选择下载: https://github.com/PaddlePaddle/FastDeploy/blob/develop/README_CN.md#fastdeploy-quick-start-cpp
我选择的是c++ cpu版本。
下载下来后解压,将解压文件放在任意文件夹下,文件夹名最好不要包含中文,防止发生某种未知的错误。
2. 环境配置
由于我的项目是通过cmake进行编译的,所以需要将fastdeploy的include和lib导入到CMakeLists.txt中去。由于我cmake也是初学,所以很多部分也不是很懂,但是按照以下内容去设置是可以运行的。
set(FASTDEPLOY_INSTALL_DIR "/home/yuxian/study/cccc/c++pro/fastdeploy-linux-x64-1.0.7") set(FASTDEPLOY_INCS "/home/yuxian/study/cccc/c++pro/fastdeploy-linux-x64-1.0.7/include") set(FASTDEPLOY_LIBS "/home/yuxian/study/cccc/c++pro/fastdeploy-linux-x64-1.0.7/lib") include(${FASTDEPLOY_INSTALL_DIR}/FastDeploy.cmake) INCLUDE_DIRECTORIES(${FASTDEPLOY_INCS}) LINK_DIRECTORIES(${FASTDEPLOY_LIBS}) target_link_libraries(pro1 ${FASTDEPLOY_LIBS})
这些命令也许有几行是多余的,但也懒得去管了,等待后面系统学习过cmake后再说。
此时,进行cmake就可以编译通过,但在运行过程中会报错误。
主要错误就是fastdeploy所需要的几个第三方库没有找到。我们打开fastdeploy所在的文件夹,可以看到一个third_libs文件夹,这个文件夹下就存放了一些所依赖的第三方库文件,只需要将这些库放入到系统变量中去就可以了。
最好是将所有库文件都放到同一个文件夹下:LIBS
vim ~/.bashrc
在最某位加上
export LD_LIBRARY_PATH=/home/yuxian/study/cccc/c++pro/fastdeploy-linux-x64-1.0.7/third_libs/LIBS
保存后
source ~/.bashrc
如此就可以啦!!!贴上测试代码
#include "fastdeploy/vision.h" int main() { uchar *mem_pic = nullptr; FILE *file; mem_pic = new uchar[6268932 / sizeof(uchar)]; file = popen("adb -s cdc3f475 shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1920x1080@1920x1080/0 -s", "r"); long size = 0; fread(mem_pic, sizeof(uchar), 6268932 / sizeof(uchar), file); pclose(file); cv::_InputArray pic_arr(mem_pic, 6268932 / sizeof(uchar)); cv::Mat src_mat = cv::imdecode(pic_arr, 1); namespace vision = fastdeploy::vision; auto model = vision::detection::YOLOv5("/home/yuxian/coc/fastdepoly/army.onnx"); vision::DetectionResult res; model.Predict(src_mat, &res); auto vis_im = vision::VisDetection(src_mat, res, 0.9); cv::imwrite("/home/yuxian/study/cccc/c++pro/pro1/vis_image.jpg", vis_im); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律