windows系统下VS2019 2017 2015 +OpenCV+Libtorch 的C++ 部署YoloV5的环境搭建,中间查阅了一些资料,都比较零散,中间的错误问题不知道原因,故记录一下,避免后面忘记,也希望对大家有所帮助!
https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
官网地址 http://opencv.org/
这里下载发行版
项目属性设置
VC++ 包含目录添加(C/C++目录同理) 前缀修改为自己的文件目录
D:\yoloV5\opencv\build\include
D:\yoloV5\opencv\build\include\opencv2
VC++ 库目录添加 (**vc15支持Visual Studio 2015和以上版本 vc10为vs2010 **)
D:\yoloV5\opencv\build\x64\vc15\lib
链接器->输入->附加依赖项
添加:opencv_world452d.lib (根据需求添加debug只需要添加,发行版添加opencv_world452.lib )
opencv_world452d.lib
文件目录为:D:\yoloV5\opencv\build\x64\vc15\lib\opencv_world452d.lib
已添加包含和库目录,可缩写
添加调试编译环境变量(加载dll环境,无该配置会提示dll函数错误)
PATH=D:\yoloV5\opencv\build\x64\vc15\lib;%PATH%
这里也可加在系统环境变量里,这里直接在项目里添加
**设置C/C++ 语言 符合模式为否 **
using namespace cv;
int main(int argc, char** argv) {
Mat image = imread("D:\\gameImgs\\2020-10-12_23-18-3520.bmp");
if (image.empty()) {
printf("could not load image...\n");
return -1;
}
namedWindow("test_opencv_setup", 0);
imshow("test_opencv_srtup", image);
waitKey(0);
return 0;
}
官网地址 https://pytorch.org/ 根据自身需求下载:Debug版本或者Releasa以及CUDA的GPU加速(需要显卡支持,amd显卡不支持CUDA加速)
项目属性设置
VC++ 包含目录添加(C/C++目录同理) 前缀修改为自己的文件目录
D:\yoloV5\libtorch-win181cpu-debug\libtorch\include
D:\yoloV5\libtorch-win181cpu-debug\libtorch\include\torch\csrc\api\include
VC++ 库目录添加 前缀修改为自己的文件目录
D:\yoloV5\libtorch-win181cpu-debug\libtorch\lib
同时需要将该目录下的dll文件复制到工程目录下(后续发现.)
链接器->输入->附加依赖项
添加: c10.lib;torch.lib …(yolov5只添加两个该版本dll报错,可全部添加避免错误)
文件来源 D:\yoloV5\libtorch-win181cpu-debug\libtorch\lib\ 目录下
c10.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
添加调试编译环境变量(加载dll环境,无该配置会提示dll函数错误)
PATH=D:\yoloV5\libtorch-win181cpu-debug\libtorch\lib;%PATH%
设置C/C++ 常规sdl检查为否
**设置C/C++ 语言 符合模式为否 **
#include
#include
int main() {
std::cout << "cuda::is_available():" << torch::cuda::is_available() << std::endl;
torch::Tensor tensor = torch::rand({ 2, 3 });
std::cout << tensor << std::endl;
}
在Windows使用C++部署YOLOv5模型