Помогают защитить Большой Барьерный Риф с TensorFlow на Kaggle Присоединяйтесь вызов

Краткое руководство по Android

Чтобы начать работу с TensorFlow Lite на Android, мы рекомендуем изучить следующий пример.

Пример классификации изображений Android

Читайте классификации изображения TensorFlow Lite Android для объяснения исходного кода.

В этом примере приложение использует классификацию изображения непрерывно классифицировать все , что он видит от задней панели камеры устройства. Приложение может работать как на устройстве, так и на эмуляторе.

Выведение осуществляется с использованием API TensorFlow Lite Java и TensorFlow Lite Library Поддержка Android . Демонстрационное приложение классифицирует кадры в режиме реального времени, отображая наиболее вероятные классификации. Это позволяет пользователю выбрать между плавающей точкой или квантованной моделью, выбрать количество потоков, и решить , следует ли работать на CPU, GPU, или с помощью NNAPI .

Сборка в Android Studio

Чтобы построить пример в Android Studio, следуйте инструкциям в README.md .

Создайте свое собственное приложение для Android

Для того, чтобы начать быстро писать свой собственный Android код, мы рекомендуем использовать наш Android пример классификации изображения в качестве отправной точки.

В следующих разделах содержится полезная информация по работе с TensorFlow Lite на Android.

Использовать привязку модели Android Studio ML

Чтобы импортировать модель TensorFlow Lite (TFLite):

  1. Щелкните правой кнопкой мыши на модуле вы хотели бы использовать модель TFLite или нажмите на File , а затем New > Other > TensorFlow Lite Model Щелкните меню правой кнопкой мыши, чтобы получить доступ к функции импорта TensorFlow Lite.

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

    Необязательно: Выберите второй флажок для импорта TensorFlow GPU , если вы хотите использовать ускорение GPU . Диалог импорта для модели TFLite

  3. Нажмите кнопку Finish .

  4. После успешного импорта появится следующий экран. Для того, чтобы начать использовать модели, выберите Котлин или Java, копировать и вставить код под Sample Code раздела. Вы можете вернуться к этому экрану, дважды щелкнув модель TFLite под ml каталога в Android Studio. Страница сведений о модели в Android Studio

Используйте библиотеку задач TensorFlow Lite

Библиотека задач TensorFlow Lite содержит набор мощных и простых в использовании библиотек для конкретных задач, позволяющих разработчикам приложений создавать возможности машинного обучения с TFLite. Он предоставляет оптимизированные готовые интерфейсы моделей для популярных задач машинного обучения, таких как классификация изображений, вопросы и ответы и т. Д. Интерфейсы моделей специально разработаны для каждой задачи для достижения максимальной производительности и удобства использования. Библиотека задач работает на разных платформах и поддерживается на Java, C ++ и Swift (скоро).

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

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

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-task-vision:0.3.0'
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.3.0'
    implementation 'org.tensorflow:tensorflow-lite-task-audio:0.3.0'
}

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

Смотрите введение в обзоре TensorFlow Lite Library Task для более подробной информации.

Используйте библиотеку поддержки Android TensorFlow Lite

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

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

Для того, чтобы использовать библиотеку поддержки в вашем Android приложение, мы рекомендуем использовать TensorFlow Lite Поддержка Библиотека AAR прошла в MavenCentral .

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

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

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

Для того, чтобы начать работу, следуйте инструкциям в TensorFlow Lite Android библиотеки поддержки .

Используйте TensorFlow Lite AAR от MavenCentral

Чтобы использовать TensorFlow Lite в вашем Android приложение, мы рекомендуем использовать TensorFlow Lite AAR размещен на MavenCentral .

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

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly-SNAPSHOT'
}

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

Это AAR включает в себя исполняемые файлы для всех Android АБИС . Вы можете уменьшить размер двоичного файла приложения, включив только те ABI, которые вам необходимо поддерживать.

Мы рекомендуем большинство разработчиков опускаем x86 , x86_64 и arm32 АБИС. Это может быть достигнуто с помощью следующей Gradle конфигурации, которая включает в себя только специально armeabi-v7a и arm64-v8a , которые должны охватывать большинство современных устройств Android.

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

Чтобы узнать больше о abiFilters см NdkOptions в документации Android Gradle.

Создайте приложение для Android с помощью C ++

Есть два способа использовать TFLite через C ++, если вы создаете свое приложение с помощью NDK:

Использовать TFLite C API

Это рекомендованное подход. Скачать TensorFlow Lite AAR размещен на MavenCentral , переименовать его в tensorflow-lite-*.zip - tensorflow-lite-*.zip , И распаковать его. Вы должны включать в себя четыре файла заголовка в headers/tensorflow/lite/ и headers/tensorflow/lite/c/ папки и соответствующие libtensorflowlite_jni.so динамической библиотеки в jni/ папку в вашем проекте НДК.

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

Использовать TFLite C ++ API

Если вы хотите использовать TFLite через 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 и завяжите .

Минимальная версия SDK TFLite

Библиотека minSdkVersion Требования к устройству
tenorflow-lite 19 Для использования NNAPI требуется API 27+
tenorflow-lite-gpu 19 GLES 3.1 или OpenCL (обычно доступно только в API 21+
tenorflow-lite-шестиугольник 19 -
tenorflow-lite-поддержка 19 -
Tenorflow-Lite-задача-видение 21 год API, связанный с android.graphics.Color, требует API 26+
tenorflow-lite-текст задачи 21 год -
Tenorflow-Lite-задача-аудио 23 -
tenorflow-lite-метаданные 19 -