首页 > 系统相关 >PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)

时间:2022-11-09 14:35:42浏览次数:73  
标签:dcn Windows PPYOLO 模型 C++ 编译 测试 GPU


导读

本文主要介绍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​

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_5e

【2】下载最新Paddle预测库(根据需要选择CPU或者GPU版本)

​https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html#windows​

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_paddle_02

【3】CMake编译VS2017 x64,注意Paddle、OpenCV、GPU(如果选择GPU)路径,最后Configure、Generate Done,打开PaddleObjectDetector.sln

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_5e_03

编译CPU版:


PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_paddle_04

编译GPU版:

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_5e_05

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_paddle_06

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_github_07

【4】切换Release x64模式,设置main为启动项。

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_paddle_08

设置main属性中输入--附加依赖项lib为paddle_inference.lib。

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_paddle_09

重新生成ALL_Build,报错:无法打开包括文件: “dirent.h”: No such file or directory

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_github_10

解决方法:下载Dirent,添加包含路径,重新生成

​https://github.com/tronkko/dirent​

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_5e_11

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_github_12

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_paddle_13

报错:C3861“lstat”: 找不到标识符,将lstat改成stat即可

又报错:error MSB3073: 命令“setlocal

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_5e_14

解决方法如下:

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_paddle_15

终于生成main.exe,算是成功了!

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_github_16

【5】模型转换与测试。

① 复制所需的dll到exe同目录,如OpenCV、Paddle_Inference;

② 下载模型:https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/configs/ppyolo/README_cn.md

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_5e_17


PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_github_18

下载后的模型如下:pdparams格式(不能直接使用)

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_5e_19

转换后的模型如下:一般包含四个文件(可直接使用)

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_5e_20

③ 模型转换:使用tools文件夹下的export_model.py来完成

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_paddle_21

转换指令:​

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_paddle_22

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_5e_23

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

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_paddle_24


PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_github_25

PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)_5e_26

上面以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

相关文章

  • OpenCV图像无缝融合-seamlessClone介绍与使用(Python/C++源码)
    导读本期将介绍并演示OpenCV使用seamlessClone实现图像无缝融合效果。介绍seamlessClone是OpenCV3后添加的函数,使用此函数可以轻松将一幅图像中的指定目标复制后粘贴到另一......
  • Python学习必备知识,使用conda管理python环境和包(基于Windows)
    写在前面,conda的3个安装选择​​下载Anaconda(推荐)—免费。​​​​下载Miniconda—免费。​​​​AnacondaEnterprise—收费。​​一、conda环境管理1.1获取版本号c......
  • Windows 服务器3389端口限制指南
    1.场景描述企业针对服务器安全的配置策略一方面通过操作系统的补丁和密码安全策略的要求规范基础的安全配置,但是这种方式无法解决多人使用同一账号导致的安全问题,事后也不便......
  • 拓端tecdat|windows中用命令行执行R语言命令
     在很多情况下,我们需要在外部环境中直接调用软件来执行某个脚本,而不需要进入软件的交互界面,这样被称为非交互方式,通过这种方式可以方便快捷地执行脚本语句达到输出结果的......
  • Windows和键盘的那些脑残设计
    下面细说一下Windows和键盘相关的脑残设计本文同步更新到个人博客:https://sillage.wang以及微信公众号韭菜安全insert键这第一个我要喷的就是键盘的insert键也不是说......
  • C++ 类继承时的构造函数
    这篇文章主要介绍了C++类继承时的构造函数,C++中,子类继承父类除去构造函数和析构函数以外的所有成员。因此,子类需要编写自己的构造函数和析构函数。更多相关详情需要的小伙......
  • PXE批量装windows(半自动版本)
       一、 环境说明:客户端:CPU:双核内存:4GB内存80GB  ip地址:DHCP 服务端1:CPU:双核内存:1GB内存20GB  ip地址:192.168.40.254    设备标识:Centos7X64......
  • Windows下nginx的使用
    在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动、停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍。1、启动在nginx安装路径中使用cmd进入到D:\n......
  • Part 23:Cocos2d-x开发实战-移植-从Win32到Windows Phone8-关东升-专题视频课程
    Part23:Cocos2d-x开发实战-移植-从Win32到WindowsPhone8—6652人已学习课程介绍        介绍了从Win32到WindowsPhone8平台移植工作有那些。这些工作包括了:Wind......
  • Part 1:基础语言-Cocos2d-x手机游戏开发之C++语言基础-关东升-专题视频课程
    Part1:基础语言-Cocos2d-x手机游戏开发之C++语言基础—60642人已学习课程介绍        本套Cocos2d-x视频教程采用的编程语言为C++语言,本教程为专门针对想学习Cocos......