LibtorchYOLOV5在Window10的部署

Posted 私はいつも好きです樱岛麻衣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LibtorchYOLOV5在Window10的部署相关的知识,希望对你有一定的参考价值。

YOLOV5在Window10的部署(一)

前言

大家好,这是我的第一篇文章,以前都是在本站白嫖大佬们的文章,现在有机会,也分享一下自己的工作经历。本文禁止转载。

部署环境

本文是在Windows10系统下,使用Libtorch-yolov5(yolov5的C++版本),Opencv4.5.2,Libtorch1.8.0

  1. VS2019
  2. Libtorch1.8.0
  3. Opencv4.5.2
  4. Libtorch-yolov5
  5. Cmake
  6. Window10

第一步:安装和下载

前言:将以下的文件下载好后,最好统一放到一个文件夹内,方便使用。

1:下载安装VS2019

下载地址:https://visualstudio.microsoft.com/zh-hans/vs/

2:下载Libtorch1.8.0。

各种版本的libtorch下载地址:https://blog.csdn.net/weixin_43742643/article/details/115218126
:Libtorch的版本必须和你训练使用的虚拟环境中的pytorch版本一致。下载之前先去你的虚拟环境中查看Pytorch版本。
(1) 选择对应的版本
(2) 选择Release or Debug (我用的Debug)
(3) 选择CPU or CUDA(GPU) (本人笔记本太垃圾,用的CPU)

下载好的Libtorch文件夹内容

3:下载Opencv

Opencv下载地址:https://opencv.org/releases/
下载好的Opencv文件夹内容

4:下载Libtorch-Yolov5

下载地址:https://github.com/yasenh/libtorch-yolov5

下载好的Libtorch_yolov5_master

5:下载Cmake

下载地址:https://cmake.org/download/

下载安装成功后,win+r cmd进入命令窗口 输入 cmake 出现下面就是安装成功。

第二步:配置环境

主要是在VS2019上面配置Libtorch 和 Opencv

1: 配置Opencv 和 Libtorch

打开VS2019 创建一个新项目

这里选择C++ 和 空项目


项目名称是yolov5,放在和下载文件的同一个目录下

创建完成后,右键->属性

VC++目录 -> 包含目录
Opencv:
D:\\YoloV5_libtorch\\yolov501\\opencv\\build\\include
D:\\YoloV5_libtorch\\yolov501\\opencv\\build\\include\\opencv2

Libtorch:
D:\\YoloV5_libtorch\\yolov501\\libtorch\\include
D:\\YoloV5_libtorch\\yolov501\\libtorch\\include\\torch\\csrc\\api\\include

VC++目录 -> 库目录
Opencv:
D:\\YoloV5_libtorch\\yolov501\\opencv\\build\\x64\\vc15\\lib

Libtorch:
D:\\YoloV5_libtorch\\yolov501\\libtorch\\lib

链接器-> 输入-> 附加依赖项

Opencv: 将D:\\YoloV5_libtorch\\yolov501\\opencv\\build\\x64\\vc15\\lib文件中的.lib文件放入附加依赖项里面
opencv_world452d.lib(Debug)
opencv_world452.lib(Release)

Libtorch: 将D:\\YoloV5_libtorch\\yolov501\\libtorch\\lib中的.lib文件全部放入附加依赖项里面
c10.lib
c10d.lib
torch.lib
asmjit.lib
caffe2_detectron_ops.lib
caffe2_module_test_dynamic.lib
clog.lib
cpuinfo.lib
dnnl.lib
fbgemm.lib
fbjni.lib
gloo.lib
libprotobufd.lib
libprotobuf-lited.lib
libprotocd.lib
mkldnn.lib
pthreadpool.lib
pytorch_jni.lib
torch_cpu.lib
XNNPACK.lib

调试 -> 环境
D:\\yolov501\\libtorch\\lib;
D:\\yolov501\\opencv\\build\\x64\\vc15\\lib;

C/C++ -> 语言 -> 符合模式 改为否

C/C++ -> 常规 -> SDL检查 改为否

2: 测试 Opencv和 Libtorch

Opencv测试:源文件下新建main.cpp 将下面测试代码复制粘贴,运行即可。

记住你的运行环境为Debug x64

#include <opencv2/opencv.hpp>  
#include <iostream>  
using namespace cv;
using namespace std;

string name = "";

int main()
{
    VideoCapture capture;   
    capture.open(0);  

    if (!capture.isOpened()) //先判断是否打开摄像头  
    {
        cout << "can not open";
        cin.get();
        return -1;
    }

    namedWindow(name);

    while (1) {
        Mat cap;   
        capture >> cap;   
        if (!cap.empty()) //判断当前帧是否捕捉成功   
            imshow(name, cap);   
        else
            cout << "can not ";
        waitKey(30);   
    }

    return 0;
}

成功显示

Libtorch测试:同上opencv测试 直接把opencv代码删除贴上下面测试代码即可。

#include <torch/torch.h>
#include <iostream>
int main() {
	std::cout << "cuda::is_available():" << torch::cuda::is_available() << std::endl;
	torch::Tensor tensor = torch::rand({ 3, 4 });
	std::cout << tensor << std::endl;
}

出现的问题

一般都是环境配置的问题,只要重新配置你的环境,一般都能成功。当然有时候很麻烦,坚持一下就好了。

以上是关于LibtorchYOLOV5在Window10的部署的主要内容,如果未能解决你的问题,请参考以下文章

关于打印

虚拟机三种磁盘置备方式

我应该在另一个命名空间中使用实体框架 DBContext 的部分类吗

5.6模拟赛总结

块编辑器中允许内部块的部分块,WordPress 5.0.2

Draw.io导出想要的部分为图片