Ayuda a proteger la Gran Barrera de Coral con TensorFlow en Kaggle Únete Challenge

Inicio rápido de Android

Para comenzar con TensorFlow Lite en Android, recomendamos explorar el siguiente ejemplo.

Ejemplo de clasificación de imágenes de Android

Leer la clasificación de imágenes TensorFlow Lite Android para obtener una explicación del código fuente.

Esta aplicación ejemplo se utiliza la clasificación de imágenes de forma continua clasificar lo que ve desde la cámara que mira hacia la parte trasera del dispositivo. La aplicación se puede ejecutar en el dispositivo o en el emulador.

La inferencia se realiza utilizando la API TensorFlow Lite Java y la biblioteca de soporte Android TensorFlow Lite . La aplicación de demostración clasifica los fotogramas en tiempo real y muestra las clasificaciones más probables. Permite al usuario elegir entre un punto flotante o cuantificado modelo, seleccione el número de hilos, y decidir si se debe ejecutar en la CPU, GPU, o por medio de NNAPI .

Construir en Android Studio

Para construir el ejemplo de Android Studio, siga las instrucciones de README.md .

Crea tu propia aplicación para Android

Para empezar a escribir rápidamente su propio código de Android, se recomienda utilizar nuestro Android ejemplo la clasificación de imágenes como punto de partida.

Las siguientes secciones contienen información útil para trabajar con TensorFlow Lite en Android.

Usar el enlace de modelos de Android Studio ML

Para importar un modelo de TensorFlow Lite (TFLite):

  1. Haga clic derecho en el módulo que desea utilizar el modelo TFLite o haga clic en File , a continuación, New > Other > TensorFlow Lite Model Menús del botón derecho para acceder a la funcionalidad de importación de TensorFlow Lite

  2. Seleccione la ubicación de su archivo TFLite. Tenga en cuenta que las herramientas se configurará la dependencia del módulo en su nombre con la unión ML del modelo y de todas las dependencias inserta automáticamente en su módulo de Android build.gradle archivo.

    Opcional: Seleccione la segunda casilla de verificación para importar TensorFlow GPU si desea utilizar la aceleración de GPU .Diálogo de importación para el modelo TFLite

  3. Haga clic Finish .

  4. La siguiente pantalla aparecerá después de que la importación sea exitosa. Para empezar a utilizar el modelo, seleccione Kotlin o Java, copiar y pegar el código en el Sample Code sección. Puede volver a esta pantalla haciendo doble clic el modelo bajo el TFLite ml directorio en el Android Studio. Página de detalles del modelo en Android Studio

Usar la 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 experiencias de aprendizaje automático con TFLite. 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 en varias plataformas y es compatible con Java, C ++ y Swift (próximamente).

Para utilizar la biblioteca de tareas en su aplicación para Android, se recomienda utilizar el AAR alojado en MavenCentral para la biblioteca de la visión de tareas y la biblioteca de texto de tareas , respectivamente.

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

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'
}

Para utilizar instantáneas nocturnas, asegúrese de que ha agregado repositorio Sonatype instantánea .

Ver la introducción en el panorama TensorFlow Lite Biblioteca de tareas para más detalles.

Usar la biblioteca de compatibilidad de Android de TensorFlow Lite

La biblioteca de compatibilidad 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 la forma requerida por el modelo e interpretan la salida del modelo, reduciendo 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.

Para utilizar la biblioteca de soporte en su aplicación para Android, se recomienda utilizar el TensorFlow Lite Soporte Biblioteca AAR alojado en MavenCentral .

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

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

Para utilizar instantáneas nocturnas, asegúrese de que ha agregado repositorio Sonatype instantánea .

Para empezar, sigue las instrucciones de la biblioteca de soporte Android TensorFlow Lite .

Utilice el AAR de TensorFlow Lite de MavenCentral

Para utilizar TensorFlow Lite en su aplicación para Android, se recomienda utilizar el TensorFlow Lite AAR alojado en MavenCentral .

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

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

Para utilizar instantáneas nocturnas, asegúrese de que ha agregado repositorio Sonatype instantánea .

Esto incluye AAR binarios para toda la ITB Android . Puede reducir el tamaño del binario de su aplicación si solo incluye las ABI que necesita admitir.

Recomendamos la mayoría de los desarrolladores omiten el x86 , x86_64 , y arm32 ABIs. Esto se puede lograr con la siguiente configuración Gradle, que incluye específicamente sólo armeabi-v7a y arm64-v8a , que debe cubrir la mayoría de los dispositivos Android modernas.

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

Para obtener más información sobre abiFilters , ver NdkOptions en la documentación Android Gradle.

Cree una aplicación de Android usando C ++

Hay dos formas de usar TFLite a través de C ++ si crea su aplicación con el NDK:

Utilice la API de TFLite C

Este es el método recomendado. Descargar el TensorFlow Lite AAR alojado en MavenCentral , cambiarle el nombre a tensorflow-lite-*.zip , Y descomprimirlo. Debe incluir los cuatro archivos de cabecera en headers/tensorflow/lite/ y headers/tensorflow/lite/c/ carpeta y el correspondiente libtensorflowlite_jni.so biblioteca dinámica en jni/ carpeta en su proyecto NDK.

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

Utilice la API de TFLite C ++

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

Arm64-v8a de 64 bits:

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

Actualmente, no hay manera fácil de extraer todos los archivos de cabecera necesarios, por lo que debe incluir todos los archivos de cabecera en tensorflow/lite/ desde el repositorio TensorFlow. Además, necesitará los archivos de cabecera de FlatBuffers y rappel .

Versión mínima de SDK de TFLite

Biblioteca minSdkVersion Requisitos del dispositivo
tensorflow-lite 19 El uso de NNAPI requiere API 27+
tensorflow-lite-gpu 19 GLES 3.1 o OpenCL (normalmente solo disponible en API 21+
tensorflow-lite-hexagon 19 -
soporte tensorflow-lite 19 -
tensorflow-lite-task-vision 21 La API relacionada con android.graphics.Color requiere API 26+
tensorflow-lite-tarea-texto 21 -
tensorflow-lite-task-audio 23 -
tensorflow-lite-metadata 19 -