导读
本文主要介绍PaddleDetection在Windows C++的编译和使用步骤。包括笔者的各种爬坑记录以及对PPYOLO v2、PPYOLO tiny模型的测试。
背景介绍
撰写本文的兴趣也是来自于前段时间各博客和公众号纷纷吹爆的PPYolo v2(介绍看下面链接),所以抽空来使用测试一下,让新手少迷路。
PP-YOLOv2开源,你的目标检测器又该升级了!性能超越YOLOv5且推理耗时保持不变
编译使用步骤
本文使用环境:Win10 + VS2017 + CMake3.16 + OpenCV4.4
编译详细步骤:
【1】下载PaddleDetection源码,最新分支2.1.0版本
https://github.com/paddlepaddle/paddledetection/tree/release/2.1
【2】下载最新Paddle预测库(根据需要选择CPU或者GPU版本)
https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html#windows
【3】CMake编译VS2017 x64,注意Paddle、OpenCV、GPU(如果选择GPU)路径,最后Configure、Generate Done,打开PaddleObjectDetector.sln
编译CPU版:
编译GPU版:
【4】切换Release x64模式,设置main为启动项。
设置main属性中输入--附加依赖项lib为paddle_inference.lib。
重新生成ALL_Build,报错:无法打开包括文件: “dirent.h”: No such file or directory
解决方法:下载Dirent,添加包含路径,重新生成
https://github.com/tronkko/dirent
报错:C3861“lstat”: 找不到标识符,将lstat改成stat即可
又报错:error MSB3073: 命令“setlocal
解决方法如下:
终于生成main.exe,算是成功了!
【5】模型转换与测试。
① 复制所需的dll到exe同目录,如OpenCV、Paddle_Inference;
② 下载模型:https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/configs/ppyolo/README_cn.md
下载后的模型如下:pdparams格式(不能直接使用)
转换后的模型如下:一般包含四个文件(可直接使用)
③ 模型转换:使用tools文件夹下的export_model.py来完成
转换指令:
python tools/export_model.py -c configs/ppyolo/ppyolov2_r50vd_dcn_voc.yml -o weights=C:\Users\35415\.cache\paddle\weights\ppyolov2_r50vd_dcn_365e_coco.pdparams
④ 模型测试:
main.exe --model_dir=./model/ppyolov2_r50vd_dcn_365e_coco --image_file=cars.jpg
上面以ppyolov2_r50vd_dcn_365e_coco模型为例,演示了模型转换和测试,如果使用PPYOLO tiny,方法和步骤一致,大家可以自行尝试!
结尾语
【1】 PPYolo v2准确率与速度与官方介绍类似,有兴趣的同学可以训练自己的数据集做测试;
【2】PPYolo tiny速度确实很快,但准确率下降,实际使用还需斟酌。
更多视觉图像处理相关内容,请长按关注:OpenCV与AI深度学习。
标签:dcn,Windows,PPYOLO,模型,C++,编译,测试,GPU From: https://blog.51cto.com/stq054188/5836308