¡Confirme su asistencia a su evento local de TensorFlow Everywhere hoy!
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

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

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

Esta aplicación de ejemplo usa la clasificación de imágenes para clasificar continuamente todo lo que ve desde la cámara trasera del dispositivo. La aplicación se puede ejecutar en el dispositivo o en el emulador.

La inferencia se realiza mediante la API de Java de TensorFlow Lite y la biblioteca de compatibilidad de Android de 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 modelo de punto flotante o cuantificado , seleccionar el número de subprocesos y decidir si se ejecutará en CPU, GPU o mediante NNAPI .

Construir en Android Studio

Para compilar el ejemplo en Android Studio, siga las instrucciones en README.md .

Crea tu propia aplicación para Android

Para comenzar a escribir rápidamente su propio código de Android, le recomendamos que utilice nuestro ejemplo de clasificación de imágenes de Android 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 con el botón derecho en el módulo en el que le gustaría usar el modelo TFLite o haga clic en File , luego New > Other > TensorFlow Lite Model Menús contextuales 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 configurarán la dependencia del módulo en su nombre con el enlace del modelo ML y todas las dependencias se insertarán automáticamente en el archivo build.gradle su módulo Android.

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

  3. Haga clic en Finish .

  4. La siguiente pantalla aparecerá después de que la importación sea exitosa. Para comenzar a usar el modelo, seleccione Kotlin o Java, copie y pegue el código en la sección Sample Code . Puede volver a esta pantalla haciendo doble clic en el modelo TFLite debajo del directorio ml en 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 usar la biblioteca de soporte en su aplicación de Android, recomendamos usar el AAR alojado en JCenter para la biblioteca Task Vision y la biblioteca Task Text , respectivamente.

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

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

Consulte la introducción en la descripción general de la biblioteca de tareas de TensorFlow Lite para obtener 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 usar la biblioteca de soporte en su aplicación de Android, recomendamos usar el AAR de la biblioteca de soporte de TensorFlow Lite alojado en JCenter .

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

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

Para comenzar, siga las instrucciones de la biblioteca de compatibilidad de Android de TensorFlow Lite .

Utilice el AAR de TensorFlow Lite de JCenter

Para usar TensorFlow Lite en su aplicación de Android, recomendamos usar el AAR de TensorFlow Lite alojado en JCenter .

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

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

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

Recomendamos que la mayoría de los desarrolladores omitan las arm32 x86 , x86_64 y arm32 . Esto se puede lograr con la siguiente configuración de Gradle, que incluye específicamente solo armeabi-v7a y arm64-v8a , que deberían 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 NdkOptions en la documentación de 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 enfoque recomendado . Descargue el AAR de TensorFlow Lite alojado en JCenter , cámbiele el nombre a tensorflow-lite-*.zip y descomprímalo. Debe incluir los cuatro archivos de headers/tensorflow/lite/ en la 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 de TFLite C.

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 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 .