qt调用libtorch

环境:

树莓派4B 2G raspbian系统

qt 5.11.0

opencv  4.3

pytorch 1.8.0a0

zbar 0.1.0

项目需求:

图像识别 + 可操作界面,所以要用到opencv和pytorch,编译过程略过,训练过程也略过,只记录调用过程,界面使用的是qt5,可能需要跨平台。

前期准备:

编译安装opencv,记得一定要加上WITH_QT=ON和WITH_OPENGL=ON,要不然qt无法调用opencv的动态库。

编译安装pytorch,非常麻烦,花了我七个小时,中间还出错。

下载编译安装zbar源码,或apt安装。

apt安装qt5-default和qtcreator。

qt工程配置:

pytorch安装完成之后,将lib,include两个文件夹拷到qt的个工程目录下的libtorch文件夹内。

libtorch需要C++14,要不然会报错。

配置pro文件部分配置信息

CONFIG += c++14
CONFIG -= app_bundle

#win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lib/ -lopencv_world430
#else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lib/ -lopencv_world430d

# opencv libs
unix:CONFIG(release, debug|release):  LIBS += -L/usr/local/lib \
    -lopencv_calib3d \
    -lopencv_core \
    -lopencv_dnn \
    -lopencv_features2d \
    -lopencv_flann \
    -lopencv_gapi \
    -lopencv_highgui \
    -lopencv_imgcodecs \
    -lopencv_imgproc \
    -lopencv_ml \
    -lopencv_objdetect \
    -lopencv_photo \
    -lopencv_stitching \
    -lopencv_video \
    -lopencv_videoio

# torch libs
LIBS += -L$$PWD/libtorch/lib -lc10 \
    -lcaffe2_detectron_ops \
    -lcaffe2_module_test_dynamic \
    -ltorch -ltorch_cpu

# zbar libs
unix:LIBS += -L/usr/local/lib -lzbar

INCLUDEPATH += $$PWD/include \
    $$PWD/libtorch/include \
    $$PWD/libtorch/include/torch/csrc/api/include

unix:INCLUDEPATH += /usr/local/include/opencv4 \
    /usr/local/include

DEPENDPATH += $$PWD/include \
    $$PWD/libtorch/include \
    $$PWD/libtorch/include/torch/csrc/api/include

unix:DEPENDPATH += /usr/local/include/opencv4 \
    /usr/local/include

torch的slots和qt的slots重复定义了会报错,所以调用的时候加上宏。

#ifdef QT_CORE_LIB
    #undef slots
#endif
#include <torch/script.h>
#ifdef QT_CORE_LIB
    #define QT_CORE_LIB slots
#endif

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值