TensorFlow Lite предоставляет ряд инструментов для интеграции моделей в приложения Android. На этой странице описаны инструменты разработки для использования при создании приложений с использованием Kotlin, Java и C++, а также поддержка разработки TensorFlow Lite в Android Studio.
Чтобы быстро начать писать код Android, см. Краткое руководство для Android.
Инструменты для сборки с использованием Kotlin и Java
В следующих разделах описаны инструменты разработки для TensorFlow Lite, использующие языки Kotlin и Java.
Библиотека задач TensorFlow Lite
Библиотека задач TensorFlow Lite содержит набор мощных и простых в использовании библиотек для конкретных задач, которые разработчики приложений могут создавать с помощью TensorFlow Lite. Он предоставляет оптимизированные готовые интерфейсы моделей для популярных задач машинного обучения, таких как классификация изображений, вопросы и ответы и т. д. Интерфейсы моделей специально разработаны для каждой задачи для достижения максимальной производительности и удобства использования. Библиотека задач работает кроссплатформенно и поддерживается на Java и C++.
Чтобы использовать библиотеку задач в приложении Android, используйте AAR от MavenCentral для библиотеки Task Vision , библиотеки текста задачи и библиотеки аудио задач соответственно.
Вы можете указать это в зависимостях build.gradle
следующим образом:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-task-vision:+'
implementation 'org.tensorflow:tensorflow-lite-task-text:+'
implementation 'org.tensorflow:tensorflow-lite-task-audio:+'
}
Если вы используете ночные снимки, обязательно добавьте в свой проект репозиторий снимков Sonatype .
Дополнительные сведения см. во введении в обзоре библиотеки задач TensorFlow Lite .
Библиотека TensorFlow Lite
Используйте библиотеку TensorFlow Lite в своем приложении для Android, добавив AAR, размещенный в MavenCentral, в свой проект разработки.
Вы можете указать это в зависимостях build.gradle
следующим образом:
dependencies {
implementation 'org.tensorflow:tensorflow-lite:+'
}
Если вы используете ночные снимки, обязательно добавьте в свой проект репозиторий снимков Sonatype .
Этот AAR включает двоичные файлы для всех ABI Android . Вы можете уменьшить размер двоичного файла вашего приложения, включив только те ABI, которые вам необходимо поддерживать.
Если вы не ориентируетесь на конкретное оборудование, в большинстве случаев вам следует опустить ABI x86
, x86_64
и arm32
. Вы можете настроить это с помощью следующей конфигурации Gradle. В частности, он включает только armeabi-v7a
и arm64-v8a
и должен охватывать большинство современных устройств Android.
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
}
Дополнительные сведения о abiFilters
см. в разделе Android ABI в документации Android NDK.
Библиотека поддержки TensorFlow Lite
Библиотека поддержки Android TensorFlow Lite упрощает интеграцию моделей в ваше приложение. Он предоставляет API-интерфейсы высокого уровня, которые помогают преобразовывать необработанные входные данные в форму, необходимую модели, и интерпретировать выходные данные модели, сокращая объем требуемого стандартного кода.
Он поддерживает общие форматы данных для ввода и вывода, включая изображения и массивы. Он также предоставляет блоки предварительной и постобработки, которые выполняют такие задачи, как изменение размера и обрезка изображения.
Используйте библиотеку поддержки в своем приложении для Android, включив AAR библиотеки поддержки TensorFlow Lite, размещенную на MavenCentral .
Вы можете указать это в зависимостях build.gradle
следующим образом:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-support:+'
}
Если вы используете ночные снимки, обязательно добавьте в свой проект репозиторий снимков Sonatype .
Инструкции по началу работы см. в библиотеке поддержки Android TensorFlow Lite .
Минимальные версии Android SDK для библиотек
Библиотека | minSdkVersion | Требования к устройству |
---|---|---|
тензорный поток-lite | 19 | Для использования NNAPI требуется API 27+. |
тензорный поток-lite-GPU | 19 | GLES 3.1 или OpenCL (обычно доступно только для API 21+). |
тензорный поток-lite-гексагон | 19 | - |
поддержка тензорного потока Lite | 19 | - |
tensorflow-lite-task-vision | 21 | API, связанный с android.graphics.Color, требует API 26+ |
tensorflow-lite-задача-текст | 21 | - |
tensorflow-lite-task-audio | 23 | - |
тензорный поток-lite-метаданные | 19 | - |
Использование Android-студии
В дополнение к библиотекам разработки, описанным выше, Android Studio также обеспечивает поддержку интеграции моделей TensorFlow Lite, как описано ниже.
Привязка модели Android Studio ML
Функция привязки модели ML в Android Studio 4.1 и более поздних версиях позволяет импортировать файлы модели .tflite
в существующее приложение Android и создавать классы интерфейса, чтобы упростить интеграцию вашего кода с моделью.
Чтобы импортировать модель TensorFlow Lite (TFLite):
Щелкните правой кнопкой мыши модуль, в котором вы хотите использовать модель TFLite, или выберите «Файл» > «Создать» > «Другое» > «Модель TensorFlow Lite» .
Выберите расположение вашего файла TensorFlow Lite. Обратите внимание, что инструмент настраивает зависимость модуля с помощью привязки модели ML и автоматически добавляет все необходимые зависимости в файл
build.gradle
вашего модуля Android.Нажмите
Finish
, чтобы начать процесс импорта. По завершении импорта инструмент отображает экран с описанием модели, включая ее входные и выходные тензоры.Чтобы начать использовать модель, выберите Kotlin или Java, скопируйте и вставьте код в раздел «Пример кода» .
Вы можете вернуться к экрану информации о модели, дважды щелкнув модель TensorFlow Lite в каталоге ml
в Android Studio. Дополнительную информацию об использовании функции привязки модулей в Android Studio см. в примечаниях к выпуску Android Studio. Обзор использования привязки модели в Android Studio см. в инструкциях примера кода.
Инструменты для сборки на C и C++.
Библиотеки C и C++ для TensorFlow Lite в первую очередь предназначены для разработчиков, использующих Android Native Development Kit (NDK) для создания своих приложений. Если вы создаете приложение с помощью NDK, существует два способа использования TFLite через C++:
TFLite C API
Использование этого API — рекомендуемый подход для разработчиков, использующих NDK. Загрузите файл AAR TensorFlow Lite, размещенный на MavenCentral , переименуйте его в tensorflow-lite-*.zip
и разархивируйте его. Вы должны включить четыре файла заголовков в папки headers/tensorflow/lite/
и headers/tensorflow/lite/c/
а также соответствующую динамическую библиотеку libtensorflowlite_jni.so
в папку jni/
вашего проекта NDK.
Заголовочный файл c_api.h
содержит базовую документацию по использованию API TFLite C.
API C++ TFLite
Если вы хотите использовать TFLite через API C++, вы можете создать общие библиотеки 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/lite/
из репозитория TensorFlow. Дополнительно вам понадобятся заголовочные файлы из FlatBuffers и Abseil .