蓝冠官网《Q374919 》在之前的一篇题为《使用Tensorflow, Qt和Felgo在桌面,iOS和Android上的机器学习》的文章中,蓝冠官网 通过一个集成了两个谷歌预训练神经网络用于图像分类和物体检测的具体例子,探讨了如何将Tensorflow与Qt和Felgo集成。
这篇文章的重点是开发相同的应用程序,但在这种情况下使用Tensorflow Lite。TensorFlow Lite是TensorFlow针对移动和嵌入式设备的轻量级解决方案,目前处于技术预览状态。TensorFlow Lite使用许多技术来实现移动应用程序的低延迟、更小更快的神经网络模型。除此之外,蓝冠注册Tensorflow Lite的编译更加简单快捷。
看看我们之前的文章,这篇文章只提到了这款应用程序和这里开发的应用程序的区别。这意味着这里给出的所有代码和解释都适用于这种情况。
图像分类和目标检测示例
其目标是开发一个应用程序,用户可以在两个谷歌预训练的神经网络模型中选择一个。以下步骤描述了如何构建这样的应用程序。
克隆存储库
要克隆这个存储库,执行下面的命令,递归地克隆它,因为TensorFlow存储库在其中。
git克隆——递归https://github.com/MechatronicsBlog/TensorFlowLiteQtVPlay.git
如何建立TensorFlow Lite Qt
我们需要为我们的目标平台:iOS和Android构建TensorFlow Lite。在本例中,make用于为iOS(和Linux)构建TensorFlow Lite,蓝冠 而bazel用于Android。以下部分中的shell命令必须在主Tensorflow文件夹中执行。
构建Linux
下载Tensorflow Lite依赖项进行编译,并按如下方式进行编译。
tensorflow / lite /工具/ / download_dependencies.sh
让- f。/ tensorflow / lite /工具/制作/ Makefile
为Android构建(在Linux上)
首先,我们需要在主Tensorflow文件夹中的工作区文件中设置Android SDK和NDK路径。我们只需要包含以下配置,设置适当的路径和api_level值。如果你需要更多关于如何下载和安装NDK的信息,请看我们之前的文章。更多关于如何下载和安装Android SDK的信息,请访问Android Studio网站。
android_sdk_repository (
name = ” androidsdk “,
路径= ” / home / user / Android sdk”
)
android_ndk_repository (
name = ” androidndk “,
路径= ” / home / user / Android / android-ndk-r14b”,
api_level = 21,
)
然后,执行以下命令,使用bazel构建系统为ARM指令编译Tensorflow。
bazel build—cxxopt=’—std=c++11′ -c opt—config=android_arm
tensorflow / lite / java: libtensorflowlite_jni
面向iOS (macOS)的构建
下载用于进行编译的Tensorflow Lite依赖项,并通过执行下一个脚本进行编译。
tensorflow / lite /工具/ / download_dependencies.sh
tensorflow / lite /工具/ / build_ios_universal_lib.sh
如何使用TensorFlow Lite在您的Qt移动应用程序
这个应用程序的源代码在GitHub存储库中。本节将重点介绍与上一个版本相比的主要区别。
链接TensorFlow Lite在您的项目
下面的代码显示了添加到我们的qmake项目文件中的行,目的是为了
包括TensorFlow Lite头文件和TensorFlow Lite库的链接
取决于目标平台。
TensorFlow Lite -全局
TENSORFLOW_PATH = $ $ PWD / tensorflow /
TFLITE_MAKE_PATH = $ $ TENSORFLOW_PATH / tensorflow / lite /工具/
include += $$TENSORFLOW_PATH \
$ $ TFLITE_MAKE_PATH /下载/ \
$ $ TFLITE_MAKE_PATH /下载/特征\