飞桨-PaddleX 是飞桨全流程开发工具,集飞桨核心框架、模型库、工具及组件等深度学习开发所需全部能力于一身,打通深度学习开发全流程,并提供简明易懂的Python API,方便用户根据实际生产需求进行直接调用或二次开发,为开发者提供飞桨全流程开发的最佳实践。PaddleX_飞桨-源于产业实践的开源深度学习平台www.paddlepaddle.org.cn
之前作者针对PaddleDetection写过一个系列文章,其中最后一篇是针对PaddlDetection的C++部署方式进行一些改造。https://zhuanlan.zhihu.com/p/145446681zhuanlan.zhihu.com
这篇文章是根据PaddleX在Github官方的代码以及文档,将C++部署相关代码进行整理,并进行了如下工作:将官方C++预测代码在Visual Studio下生成解决方案(.sln)
将C++预测代码进行生成dll
使用python调用生成的dll
使用C#调用生成的dll
一、将官方的C++预测代码在Visual Studio下生成解决方案
准备工作:
使用工具Cmake vs2019社区版 Git(提前下载好git,不然在后期编译过程中会不成功)
依赖库:
Opencv:选择3.4.6版本https://sourceforge.net/projects/opencvlibrary/files/3.4.6/opencv-3.4.6-vc14_vc15.exe/downloadsourceforge.net
Paddle预测库:选择win10下的cuda10版本。安装与编译 Windows 预测库www.paddlepaddle.org.cn
一、首先将上述需要依赖的opencv和预测库,PaddleX下载好,并保存在某个文件夹中。如下图是作者存放的一个文件夹。
二、将opencv添加到环境变量里面,如下图所示。
三、利用Cmake软件进行编译。源码路径为cpp文件所在目录,应为里面有CMakeLists.txt文件,作者同时在该目录下创建了新的文件夹/out用于生成编译后的文件
四、点击config,选择vs2019 X64选项后,点击Generate
五、根据报错进行修改,主要修改cuda_lib、opencv、paddle_dir路径
六、再次点击Generate