搞了两天,记录一下学习过程。
pytorch模型转为onnx:
Pytorch网络模型转Onnx格式,多种方法(opencv、onnxruntime、c++)调用Onnx_努力的袁的博客-优快云博客_c++调用onnx模型
c++使用onnxruntime或者opencv调用onnx模型进行推理:
C++使用onnxruntime/opencv对onnx模型进行推理(附代码)_努力的袁的博客-优快云博客_c++调用onnx模型
记录一下遇到的坑:
1、opencv安装
2、cmake安装
3、onnxruntime编译,参考:
ONNXRuntime C++ CMake 工程编译及安装_qq_1041357701的博客-优快云博客
onnxruntime (C++/CUDA) 编译安装及部署_白色小靴的博客-优快云博客
注意编译的时候采用:
./build.sh --skip_tests --use_cuda --config Release --build_shared_lib --parallel --cuda_home /usr/local/cuda --cudnn_home /usr/local/cuda
4、编译自己的代码
最后在ubuntu编译的时候加上链接符号(黑体字),在vs里面非常智能都给你做好了,Linux就得靠自己去加链接符号:
g++ models_dog.cpp -I/usr/local/include/opencv4 -I/usr/local/include/onnxruntime/core/session/ -L/usr/local/lib -lopencv_stitching -lopencv_objdetect -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core -lonnxruntime -lopencv_dnn