Инструменты разработки для Android

LiteRT предоставляет ряд инструментов для интеграции моделей в приложения Android. На этой странице описаны инструменты разработки для использования при создании приложений с использованием Kotlin, Java и C++, а также поддержка разработки LiteRT в Android Studio.

Инструменты для сборки с использованием Kotlin и Java

В следующих разделах описаны инструменты разработки для LiteRT, использующие языки Kotlin и Java.

библиотека LiteRT

Используйте библиотеку LiteRT в своем приложении для Android, добавив AAR, размещенный в MavenCentral, в свой проект разработки.

Вы можете указать это в зависимостях build.gradle следующим образом:

dependencies {
    ...
    implementation 'com.google.ai.edge.litert:+'
}

repositories {
    ...
    google()
}

Если вы используете ночные снимки, обязательно добавьте в свой проект репозиторий снимков 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.

Библиотека поддержки LiteRT

Библиотека поддержки Android LiteRT упрощает интеграцию моделей в ваше приложение. Он предоставляет API-интерфейсы высокого уровня, которые помогают преобразовывать необработанные входные данные в форму, необходимую модели, и интерпретировать выходные данные модели, сокращая объем требуемого стандартного кода.

Он поддерживает общие форматы данных для ввода и вывода, включая изображения и массивы. Он также предоставляет блоки предварительной и постобработки, которые выполняют такие задачи, как изменение размера и обрезка изображения.

Используйте библиотеку поддержки в своем приложении для Android, включив AAR библиотеки поддержки LiteRT, размещенную на MavenCentral .

Вы можете указать это в зависимостях build.gradle следующим образом:

dependencies {
    implementation 'com.google.ai.edge.litert:litert-support:+'
}

Если вы используете ночные снимки, обязательно добавьте в свой проект репозиторий снимков Sonatype .

Инструкции по началу работы см. в библиотеке поддержки LiteRT Android .

Использование Android-студии

Помимо описанных выше библиотек разработки, Android Studio также обеспечивает поддержку интеграции моделей LiteRT, как описано ниже.

Привязка модели Android Studio ML

Функция привязки модели ML в Android Studio 4.1 и более поздних версиях позволяет импортировать файлы модели .tflite в существующее приложение Android и создавать классы интерфейса, чтобы упростить интеграцию вашего кода с моделью.

Чтобы импортировать модель LiteRT:

  1. Щелкните правой кнопкой мыши модуль, в котором вы хотите использовать модель LiteRT, или выберите «Файл» > «Создать» > «Другое» > «Модель LiteRT» .

  2. Выберите расположение вашего файла LiteRT. Обратите внимание, что инструмент настраивает зависимость модуля с помощью привязки модели ML и автоматически добавляет все необходимые зависимости в файл build.gradle вашего модуля Android.

  3. Нажмите Finish , чтобы начать процесс импорта. По завершении импорта инструмент отображает экран с описанием модели, включая ее входные и выходные тензоры.

  4. Чтобы начать использовать модель, выберите Kotlin или Java, скопируйте и вставьте код в раздел «Пример кода» .

Вы можете вернуться к экрану информации о модели, дважды щелкнув модель TensorFlow Lite в каталоге ml в Android Studio. Дополнительную информацию об использовании функции привязки модулей в Android Studio см. в примечаниях к выпуску Android Studio. Обзор использования привязки модели в Android Studio см. в инструкциях примера кода.

Инструменты для сборки на C и C++.

Библиотеки C и C++ для LiteRT в первую очередь предназначены для разработчиков, использующих Android Native Development Kit (NDK) для создания своих приложений. Существует два способа использования LiteRT через C++, если вы создаете приложение с помощью NDK:

LiteRT C API

Использование этого API — рекомендуемый подход для разработчиков, использующих NDK. Загрузите файл LiteRT AAR, размещенный на MavenCentral , переименуйте его в tensorflow-lite-*.zip и разархивируйте его. Вы должны включить четыре файла заголовков в папки headers/tensorflow/lite/ и headers/tensorflow/lite/c/ , а также соответствующую динамическую библиотеку libtensorflowlite_jni.so в папку jni/ вашего проекта NDK.

Заголовочный файл c_api.h содержит базовую документацию по использованию API LiteRT C.

API LiteRT C++

Если вы хотите использовать LiteRT через C++ API, вы можете создать общие библиотеки 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 .