0. 前言
当目标检测模型训练完毕之后,需要进入到部署环节。在AI应用中,常见的部署方式有本地部署,云端部署和边侧部署等。本节主要讲解下本地部署,具体是在windows平台上使用C++语言,CPU版本的paddleinference推理库,并最终生成.exe可执行文件的方式完成部署任务。
1. 前置条件
- windows10
- visual studio 2019
- CUDA10.2 和 cudnn7.6.5
- CMake 3.0+ (下载地址)
- Git(下载地址)
- opencv3.4.6(下载地址)
- paddleinference2.2.1 (CUDA版或CPU版本)
- PaddleDetection 2.4.0
使用工具Cmake vs2019社区版 Git(提前下载好git,不然在后期编译过程中会不成功)
最好按照如上文件结构将相关需要的文件保存在同一个文件夹中。
编译推理代码
- 首先将paddledetection中的deploy目录下的cpp文件夹单独拿出来,将路径添加到cmake中的源代码路径。
- 设置编译输出的文件夹。
- 点击configure,选择vs2019和x64
- 点击finish,会弹出报错,因为这里缺失了一些链接库路径,需要按照下图所示补齐。
5.再次点击config,接下来点击generate,在输出文件夹中生成sln格式的解决方案。
生成解决方案
- 打开sln解决方案,将debug模式修改为Release模式
- 在解决方案中,右键将main项目设置为启动项目。
- 打开main项目属性,将附加依赖项中第一行的
.lib
修改为paddle_inference.lib
4.点击项目右键,重新生成【此步骤可能会报错,不过没关系】。
5.右键main项目,打开属性,将生成后事件改为否。
6.再次点击重新生成,推理程序生成成功。
运行推理程序
- 找到输出目录中的main.exe,双击打开,提示缺少paddle_inference.dll。
- 将之前下载的paddle推理库中paddle\lib文件夹中的paddle_inference.dll复制到输出目录下。
- 双击main.exe,黑框一闪而过,没有报错,说明当前步骤完成。
开始推理
1.打开cmd命令窗口,切换到输出目录下。
2.将预测图像文件夹和模型文件夹放到当前目录下。
3.输入如下命令,开始运行推理程序。
main --model_dir=model --image_dir=img --output_dir=output --device=gpu
模型推理程序开始运行。
可执行文件main
即为样例的预测程序,其主要的命令行参数如下:
cpu推理
使用mkldnn可以加速推理程序,也可以增加cpu线程数提升推理速度。
main --model_dir=model --image_dir=img --output_dir=output --device=CPU --run_mode=trt_int8 --use_mkldnn=true --cpu_threads=2
视频预测
main --model_dir=model --video_file=avi.mp4 --device=CPU --run_mode=trt_fp32 --use_mkldnn=true --cpu_threads=2
摄像头开启检测
main --model_dir=model --video_file=0 --camera_id=0 --device=gpu --threshold=0.5
0表示内置摄像头,1表示其他外置摄像头。