官方视频:跨平台图形化部署开发工具实战_哔哩哔哩_bilibili
开始讲部署,首先在paddlex官网,然后点击 “deploy”文件夹
然后:点击“cpp”文件夹
然后:进入后 往下拉 选择部署方式说明
然后:进来之后,往下拉,可以看到paddlex部署指南
然后,进入后 ,往下拉,选择编译指南生成exe
在这里我们可以看到 ,我们编译所需要的依赖文件
根据自身的环境来配置paddle_inference。(问题来了,我的cuda是11.3的,怎么没有对应的paddle_inference? 视频教程并没有说明)
第一步 ,第二步...等依赖文件都要下载,Cmake,opencv,paddle_inference
配置好opencv
然后下载paddlex源码
将源码,opencv,paddle_inference 尽量放在一起,方便保存
,下一步就开始 生成我们所需要的dll
开始:进入deploy==》cpp,选择c#部署示例
进入后,就出现一个文档,告诉如何编译生成exe文件
打开 Cmake
在第一行,进入paddle选择deploy ==》cpp的目录
.../deploy/cpp
第二行:输出目录,还是在deploy===》cpp文件夹下创建输出文件夹Out,这样编译后的输出文件都会放在该文件夹下。
..../deploy/cpp/out
然后 ,点击cmake下面的“configure”按钮
选择2019,x64
然后,点击finish
然后cmake会编译完之后,然后出现一个报错,这里不用管,因为依赖文件的文件夹位置还没有设置。
然后就设置cuda,tensorRT,opencv等相关依赖
开始配置文件
首先 WITH GPU 打勾,
然后,TensorRT配置
然后:配置路径。(如果你不用GPU,不用TensorRT,上面两个不用打勾)
CUDA_LIB
点击“...”选择对应的文件夹,如下
接下来 配置opencv
前提是opencv已经在系统环境变量中配置
接下来配置 paddle_inference,PADDLE_DIR
找到它所在的路径
然后 我们需要配置 tensorRT , TENSORRT_DIR
找到所在位置,要进步一层
这样就设置好了。
所有的设置好之后,就configure
这是编译就不会有那么多错误了,如下。然后点击generate
生成好之后,就可以open 如下图
open 就打开了vs2019的工程项目,其地址在刚才设置的deploy===》cpp===》out文件夹下。
选择 model_infer --->Source file--->model_infer.cpp。
双击 model_infer.cpp,这就是原始的demo,可以执行我们导出的模型。
其实我们还需要生成dll,这里重新找到这个位置
点击,双击进入model_infer.cpp
把里面的内容复制
复制到工程中的model_infer.cpp中,将原来的文件删了,
点击确定, 弹出会出现报错对话框,这里不用管点击确定 ,然后在弹出的对话框中,点击取消。
然后ctrl+S,保存一下。点击是
然后在程序最上面,添加预编译字 “__declspec(dllexport)”,这样才能导出dll。注意“__”这是两个下划线。
将预编译字 “__declspec(dllexport)”添加到每一个extern 后面,如下三个图,每一个都要加,并非只有下面三个
下面 开始修改工程中的Cmakelist,如下图
双击,进入Cmakelist,然后往下拉,找到 # engine src
将121行的复制一份,原来的add_executable注释掉,在复制的一份进行修改位add_library.如下图,在model_infer 后面添加 SHARED。此时就可以利用model_infer生成dll文件了。
把编译环境的debug 改为release。然后点击工程model_infer右击 ==》重新生成
在out文件夹在 生成了paddle_deploy文件夹
打开paddle_deploy文件夹 里面就有我们所需要的dll文件,release里面也有dll文件。后面使用的时候,需要将这些dll文件全部拿出来用。
然后,将opencv 的dll文件复制过来(release版的)
上面的这些dll,将被C#调用,来完成某些推理。
下面开始 C#移植示例
先回到之前的目录paddle_develop/deploy/cpp/docs
进入docs后,可以看到csharp_deploy文件夹
点开,里面就是C#工程
双击 启动C#工程
修改编译环境x64,配置opencvSharp4,(自己下载配置或者联网)
然后点击运行
移植dll,将out文件夹下及子文件夹下的dll全部复制
dll移植完毕。
c#界面功能的完整介绍。