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 a escribir código de Android rápidamente, consulte Inicio rápido para Android.

Herramientas para construir con Kotlin y Java

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

Biblioteca de tareas de TensorFlow Lite

La biblioteca de tareas de TensorFlow Lite contiene un conjunto de bibliotecas de tareas específicas potentes y fáciles de usar para que los desarrolladores de aplicaciones las creen con TensorFlow Lite. Proporciona interfaces de modelo optimizadas listas para usar 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 para lograr el mejor rendimiento y usabilidad. La biblioteca de tareas 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 utiliza 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

Utilice 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 utiliza 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 incluyendo solo las ABI que necesita admitir.

A menos que esté apuntando a 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 Android de TensorFlow Lite 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 el formato requerido 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 pre y posprocesamiento que realizan tareas como cambiar el tamaño y recortar la imagen.

Utilice la biblioteca de soporte en su aplicación de Android incluyendo 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 utiliza 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 Android de TensorFlow Lite .

Versiones mínimas del SDK de Android 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 (normalmente solo disponible en API 21+)
tensorflow-lite-hexágono 19 -
soporte-tensorflow-lite 19 -
tensorflow-lite-tarea-vision 21 La API relacionada con android.graphics.Color requiere API 26+
texto-de-tarea-tensorflow-lite 21 -
tensorflow-lite-tarea-audio 23 -
tensorflow-lite-metadatos 19 -

Usando Android Estudio

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

Enlace del modelo Android Studio ML

La función ML Model Binding de Android Studio 4.1 y versiones posteriores le permite importar archivos de modelo .tflite a 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 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 necesarias 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 regresar a la pantalla de información del modelo haciendo doble clic en el modelo de 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 destinadas principalmente a 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 creas tu 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 archivo AAR de TensorFlow Lite alojado en MavenCentral , cambie el nombre a tensorflow-lite-*.zip y descomprímalo. Debes 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/ de tu proyecto NDK.

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

API TFLite C++

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

Armabi-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 manera sencilla de extraer todos los archivos de encabezado necesarios, por lo que debes incluir todos los archivos de encabezado en tensorflow/lite/ desde el repositorio de TensorFlow. Además, necesitará archivos de encabezado de FlatBuffers y Abseil .