QT+OpenCV+Tensorflow部署到windows上

由于实验室项目需要,要将深度学习模块搭载到上位机中,目前是用QT做上位机界面设计,因此这篇文章和大家分享一下如何把已训练好的Tensorflow模型通过opencv搭载得Dnn模块加载到上位机Qt中。

电脑配置以及软件配置

我的电脑配置是W10/64位,安装得Qt版本是5.9.8,opencv的版本是3.4.1(安装的opencv版本必须大于或等于这个版本)

安装过程

参考opencv安装在QT上的安装教程
在用cmake编译过程中出现了这个问题
错误1

3rdparty\protobuf\CMakeFiles\libprotobuf.dir\build.make:412: recipe for target '3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/stubs/io_win32.cc.obj' failed
mingw32-make[2]: *** [3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/stubs/io_win32.cc.obj] Error 1
CMakeFiles\Makefile2:710: recipe for target '3rdparty/protobuf/CMakeFiles/libprotobuf.dir/all' failed
mingw32-make[1]: *** [3rdparty/protobuf/CMakeFiles/libprotobuf.dir/all] Error 2
Makefile:161: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

解决方案
在 cmake-gui 编译配置中:

勾选 ENABLE_CXX11

然后重新Configure-Generate-mingw32-make

错误2

Makefile:161: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

找到opencv\sources\modules\videoio\src\cap_dshow.cpp文件,在#include "DShow.h"这行的上面加一行#define NO_DSHOW_STRSAFE

然后重新Configure-Generate-mingw32-make

解决这两个错误后,安装和编译就全部解决了

程序运行

采用的是tensorflow官方训练好的模型,在QT中pro文件中按下图配置
QT+OpenCV+Tensorflow部署到windows上_第1张图片.dll前的341是根据你安装的opencv版本载入的,我是把bin文件下所有的dll文件全部引用过来了。
QT+OpenCV+Tensorflow部署到windows上_第2张图片
QT+OpenCV+Tensorflow部署到windows上_第3张图片
QT+OpenCV+Tensorflow部署到windows上_第4张图片

输出结果

在网上选取的一张图,运行后结果如下


后续将把自己训练好的模型应用到上位机中。

你可能感兴趣的:(QT,OPENCV,TENSORFLOW,上位机,深度学习)