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);
}
posted @ 2023-07-13 23:53  (⊃・ᴥ・)つ  阅读(317)  评论(0编辑  收藏  举报