Herramientas de desarrollo para Android

TensorFlow Lite proporciona una serie de herramientas para integrar modelos en aplicaciones de Android. Esta página describe las herramientas de desarrollo para usar en la creación de aplicaciones con Kotlin, Java y C++, así como la compatibilidad con el desarrollo de TensorFlow Lite en Android Studio.

Para comenzar rápidamente a escribir código de Android, consulte el Inicio rápido para Android

Herramientas para construir con Kotlin y Java

Las siguientes secciones describen las herramientas de desarrollo para TensorFlow Lite que usan los lenguajes Kotlin y Java.

Biblioteca de tareas de TensorFlow Lite

La biblioteca de tareas de TensorFlow Lite contiene un conjunto de bibliotecas específicas de tareas potentes y fáciles de usar para que los desarrolladores de aplicaciones creen con TensorFlow Lite. Proporciona interfaces de modelo listas para usar optimizadas para tareas populares de aprendizaje automático, como clasificación de imágenes, preguntas y respuestas, etc. Las interfaces de modelo están diseñadas específicamente para cada tarea a fin de lograr el mejor rendimiento y facilidad de uso. Task Library funciona multiplataforma y es compatible con Java y C++.

Para usar la biblioteca de tareas en su aplicación de Android, use el AAR de MavenCentral para la biblioteca Task Vision, la biblioteca Task Text y la biblioteca Task Audio , respectivamente.

Puede especificar esto en sus dependencias build.gradle de la siguiente manera:

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

Si usa instantáneas nocturnas, asegúrese de agregar el repositorio de instantáneas de Sonatype a su proyecto.

Consulte la introducción en la descripción general de la biblioteca de tareas de TensorFlow Lite para obtener más detalles.

Biblioteca TensorFlow Lite

Use la biblioteca TensorFlow Lite en su aplicación de Android agregando el AAR alojado en MavenCentral a su proyecto de desarrollo.

Puede especificar esto en sus dependencias build.gradle de la siguiente manera:

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

Si usa instantáneas nocturnas, asegúrese de agregar el repositorio de instantáneas de Sonatype a su proyecto.

Este AAR incluye archivos binarios para todas las ABI de Android . Puede reducir el tamaño del binario de su aplicación al incluir solo las ABI que necesita admitir.

A menos que tenga como objetivo un hardware específico, debe omitir las ABI x86 , x86_64 y arm32 en la mayoría de los casos. Puede configurar esto con la siguiente configuración de Gradle. Incluye específicamente solo armeabi-v7a y arm64-v8a , y debería cubrir la mayoría de los dispositivos Android modernos.

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

Para obtener más información sobre abiFilters , consulte ABI de Android en la documentación del NDK de Android.

Biblioteca de soporte de TensorFlow Lite

La biblioteca de soporte de TensorFlow Lite para Android facilita la integración de modelos en su aplicación. Proporciona API de alto nivel que ayudan a transformar los datos de entrada sin procesar en la forma requerida por el modelo e interpretar la salida del modelo, lo que reduce la cantidad de código repetitivo requerido.

Admite formatos de datos comunes para entradas y salidas, incluidas imágenes y matrices. También proporciona unidades de procesamiento previo y posterior que realizan tareas como el cambio de tamaño y el recorte de imágenes.

Use la biblioteca de soporte en su aplicación de Android al incluir el AAR de la biblioteca de soporte de TensorFlow Lite alojado en MavenCentral .

Puede especificar esto en sus dependencias build.gradle de la siguiente manera:

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

Si usa instantáneas nocturnas, asegúrese de agregar el repositorio de instantáneas de Sonatype a su proyecto.

Para obtener instrucciones sobre cómo comenzar, consulte la Biblioteca de soporte de TensorFlow Lite para Android .

Versiones mínimas de Android SDK para bibliotecas

Biblioteca minSdkVersion Requisitos del dispositivo
tensorflow-lite 19 El uso de NNAPI requiere API 27+
tensorflow-lite-gpu 19 GLES 3.1 u OpenCL (generalmente solo disponible en API 21+
tensorflow-lite-hexágono 19 -
tensorflow-lite-soporte 19 -
tensorflow-lite-task-visión 21 La API relacionada con android.graphics.Color requiere API 26+
tensorflow-lite-tarea-texto 21 -
tensorflow-lite-task-audio 23 -
tensorflow-lite-metadatos 19 -

Uso de Android Studio

Además de las bibliotecas de desarrollo descritas anteriormente, Android Studio también brinda compatibilidad para integrar modelos de TensorFlow Lite, como se describe a continuación.

Enlace de modelo de Android Studio ML

La función ML Model Binding de Android Studio 4.1 y versiones posteriores le permite importar archivos de modelo .tflite en su aplicación de Android existente y generar clases de interfaz para facilitar la integración de su código con un modelo.

Para importar un modelo de TensorFlow Lite (TFLite):

  1. Haga clic con el botón derecho en el módulo en el que le gustaría usar el modelo TFLite o haga clic en Archivo > Nuevo > Otro > Modelo TensorFlow Lite .

  2. Seleccione la ubicación de su archivo TensorFlow Lite. Tenga en cuenta que las herramientas configuran la dependencia del módulo con el enlace del modelo ML y agregan automáticamente todas las dependencias requeridas al archivo build.gradle de su módulo de Android.

  3. Haga clic en Finish para comenzar el proceso de importación. Cuando finaliza la importación, la herramienta muestra una pantalla que describe el modelo, incluidos sus tensores de entrada y salida.

  4. Para comenzar a usar el modelo, seleccione Kotlin o Java, copie y pegue el código en la sección Código de muestra .

Puede volver a la pantalla de información del modelo haciendo doble clic en el modelo TensorFlow Lite en el directorio ml en Android Studio. Para obtener más información sobre el uso de la función Modle Binding de Android Studio, consulte las notas de la versión de Android Studio. Para obtener una descripción general del uso del enlace de modelos en Android Studio, consulte las instrucciones de ejemplo de código.

Herramientas para construir con C y C++

Las bibliotecas C y C++ para TensorFlow Lite están pensadas principalmente para desarrolladores que utilizan el Kit de desarrollo nativo (NDK) de Android para crear sus aplicaciones. Hay dos formas de usar TFLite a través de C++ si crea su aplicación con el NDK:

API TFLite C

El uso de esta API es el enfoque recomendado para los desarrolladores que utilizan el NDK. Descargue el AAR de TensorFlow Lite alojado en el archivo MavenCentral , cambie el nombre a tensorflow-lite-*.zip y descomprímalo. Debe incluir los cuatro archivos de encabezado en las carpetas headers/tensorflow/lite/ y headers/tensorflow/lite/c/ y la biblioteca dinámica libtensorflowlite_jni.so relevante en la carpeta jni/ en su proyecto NDK.

El archivo de encabezado c_api.h contiene documentación básica sobre el uso de la API TFLite C.

API C++ de TFLite

Si desea utilizar TFLite a través de la API de C++, puede crear las bibliotecas compartidas de C++:

armeabi-v7a de 32 bits:

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

brazo de 64 bits64-v8a:

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

Actualmente, no existe una forma sencilla de extraer todos los archivos de encabezado necesarios, por lo que debe incluir todos los archivos de encabezado en tensorflow/lite/ del repositorio de TensorFlow. Además, necesitará archivos de encabezado de FlatBuffers y Abseil .