适用于 Android 的开发工具

TensorFlow Lite 提供了许多工具,用于将模型集成到 Android 应用中。本页介绍了用于使用 Kotlin、Java 和 C++ 构建应用的开发工具,以及如何在 Android Studio 中支持 TensorFlow Lite 开发。

使用 Kotlin 和 Java 进行构建的工具

以下部分介绍了使用 Kotlin 和 Java 语言的 TensorFlow Lite 开发工具。

TensorFlow Lite 库

MavenCentral 中托管的 AAR 添加到您的开发项目中,即可在 Android 应用中使用 TensorFlow Lite 库。

您可以在 build.gradle 依赖项中指定此信息,如下所示:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:+'
}

如果您使用夜间快照,请确保将 Sonatype 快照代码库添加到项目中。

此 AAR 文件包含所有 Android ABI 的二进制文件。您可以只添加需要支持的 ABI 以缩减应用的二进制文件的大小。

除非以特定硬件为目标平台,否则在大多数情况下,您应省略 x86x86_64arm32 ABI。您可以使用以下 Gradle 配置对此进行配置。具体而言,它仅包含 armeabi-v7aarm64-v8a,并且应该涵盖大多数现代 Android 设备。

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

如需详细了解 abiFilters,请参阅 Android NDK 文档中的 Android ABI

TensorFlow Lite 支持库

借助 TensorFlow Lite Android 支持库,您可以更轻松地将模型集成到您的应用中。它提供了高级 API,有助于将原始输入数据转换为模型所需的形式,并解释模型的输出,从而减少所需的样板代码量。

它支持输入和输出的常用数据格式,包括图片和数组。它还提供了一些前处理单元和后处理单元,用于执行图片大小调整和剪裁等任务。

通过添加 MavenCentral 中托管的 TensorFlow Lite 支持库 AAR,在 Android 应用中使用支持库。

您可以在 build.gradle 依赖项中指定此信息,如下所示:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-support:+'
}

如果您使用夜间快照,请确保将 Sonatype 快照代码库添加到项目中。

如需了解如何开始使用,请参阅 TensorFlow Lite Android 支持库

库的最低 Android SDK 版本

媒体库 minSdkVersion 设备要求
tensorflow-lite 21 -
tensorflow-lite-gpu 21 GLES 3.1 或 OpenCL(通常仅适用于 API 21+)
tensorflow-lite-support 21 -
tensorflow-lite-metadata 21 -

使用 Android Studio

除了上述开发库之外,Android Studio 还支持集成 TensorFlow Lite 模型,如下所述。

Android Studio 机器学习模型绑定

借助 Android Studio 4.1 及更高版本的机器学习模型绑定功能,您可以将 .tflite 模型文件导入现有 Android 应用,并生成接口类,从而更轻松地将代码与模型集成。

如需导入 TensorFlow Lite (TFLite) 模型,请执行以下操作:

  1. 右键点击您想要使用 TFLite 模型的模块,或依次点击 File > New > Other > TensorFlow Lite Model

  2. 选择 TensorFlow Lite 文件的位置。请注意,该工具会使用机器学习模型绑定来配置模块的依赖项,并自动将所有必需的依赖项添加到 Android 模块的 build.gradle 文件中。

  3. 点击 Finish 以开始导入过程。导入完成后,该工具会显示一个屏幕,其中描述了该模型,包括其输入和输出张量。

  4. 如需开始使用该模型,请选择 Kotlin 或 Java,然后复制代码并将其粘贴到示例代码部分中。

在 Android Studio 中的 ml 目录下,双击 TensorFlow Lite 模型即可返回模型信息屏幕。如需详细了解如何使用 Android Studio 的 Modle 绑定功能,请参阅 Android Studio 版本说明。 如需简要了解如何在 Android Studio 中使用模型绑定,请参阅代码示例instructions

使用 C 和 C++ 进行构建的工具

TensorFlow Lite 的 C 库和 C++ 库主要面向使用 Android 原生开发套件 (NDK) 构建应用的开发者。如果您使用 NDK 构建应用,有两种方式可通过 C++ 使用 TFLite:

TFLite C API

使用此 API 是为 NDK 开发者推荐的方法。 下载 MavenCentral 中托管的 TensorFlow Lite AAR 文件,将其重命名为 tensorflow-lite-*.zip 并解压缩。您必须在 NDK 项目的 headers/tensorflow/lite/headers/tensorflow/lite/c/ 文件夹中添加四个头文件,并将相关的 libtensorflowlite_jni.so 动态库添加到 NDK 项目的 jni/ 文件夹中。

c_api.h 头文件包含有关使用 TFLite C API 的基本文档。

TFLite C++ API

如果您想通过 C++ API 使用 TFLite,可以构建 C++ 共享库:

32 位 armeabi-v7a:

bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so

64 位 arm64-v8a:

bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so

目前,没有简单的方法能够提取所需的所有头文件,因此您必须从 TensorFlow 代码库的 tensorflow/lite/ 中包含所有头文件。此外,您还需要来自 FlatBuffersAbseil 的头文件。