TensorFlow Lite en Andriod para principiantes

TensorFlow Lite

El desarrollo de Android no se limita a pequeñas aplicaciones lindas que se reparten la cuenta en los restaurantes (parece ser la “idea genial de la aplicación” de todos, ¿o solo soy yo?). Android es una plataforma poderosa con el respaldo de una de las empresas más grandes e influyentes del mundo. Una empresa que está a la vanguardia del aprendizaje automático y se considera a sí misma “primero en IA”.

El aprendizaje de TensorFlow Lite para Android permite a los desarrolladores implementar el aprendizaje automático avanzado en sus creaciones. Esto amplía enormemente las capacidades de una aplicación e introduce innumerables nuevos casos de uso potenciales. También enseña habilidades invaluables cuya demanda solo aumentará en los próximos años.

Ver también: ¿Tu trabajo es seguro? Empleos que la IA destruirá en los próximos 10 a 20 años

Esta es la introducción perfecta al aprendizaje automático, ¡así que comencemos!


¿Qué es TensorFlow?

Comencemos con lo básico: ¿qué es TensorFlow Lite? Para responder a esta pregunta, primero deberíamos mirar a TensorFlow en sí. TensorFlow es una plataforma de aprendizaje automático de código abierto “de un extremo a otro” (también conocida como todo en uno) del equipo de Google Brain. TensorFlow es una biblioteca de software de código abierto que permite actividades de aprendizaje automático.

Una actividad de aprendizaje automático es cualquier problema que requiera un reconocimiento de patrones impulsado por algoritmos y grandes cantidades de datos. Esto es IA, pero no en Hal da 2001: una odisea espacial sentido.

Ver también: Inteligencia artificial vs aprendizaje automático: ¿cuál es la diferencia?

Casos de uso

Un ejemplo de una aplicación de aprendizaje automático es la visión por computadora. Permite a las computadoras reconocer objetos en una fotografía o en una cámara en vivo. Para hacer esto, el programa primero debe ser “entrenado” mostrando miles de imágenes de ese objeto. El programa nunca comprende el objeto, pero aprende a buscar patrones de datos particulares (cambios de contraste, ángulos o curvas particulares) que probablemente coincidirán con el objeto. Con el tiempo, el programa se vuelve cada vez más preciso a la hora de localizar ese objeto.

aprendizaje automático

Como desarrollador de Android, la visión por computadora crea muchas posibilidades: ya sea que desee utilizar el reconocimiento facial como una función de seguridad, crear un programa de RA que pueda resaltar elementos en el entorno o crear la próxima aplicación “Reface”. Eso es antes de considerar los innumerables otros usos de los modelos de aprendizaje automático: reconocimiento de voz, OCR, IA enemiga y más.

Crear e implementar este tipo de plantillas desde cero sería una tarea extremadamente desalentadora para un solo desarrollador, por lo que tener acceso a bibliotecas listas para usar es tan útil.

Ver también: ¿Qué es Google Cloud?

TensorFlow es capaz de ejecutarse en una amplia gama de CPU y GPU, pero funciona particularmente bien con las TPU de Google (Unidades de procesamiento de tensor). Los desarrolladores también pueden aprovechar el poder de Google Cloud Platform subcontratando operaciones de aprendizaje automático a los servidores de Google.

¿Qué es TensorFlow Lite?

TensorFlow Lite incorpora Tensor Flow (esto significa que funciona en el dispositivo móvil) a los dispositivos móviles. Anunciado en 2017, el paquete de software TFLite está diseñado específicamente para el desarrollo móvil. TensorFlow Lite “Micro”, por otro lado, es una versión específica para microcontroladores, que recientemente se fusionó con uTensor de ARM.

Es posible que algunos desarrolladores ahora se pregunten cuál es la diferencia entre ML Kit y TensorFlow Lite. Si bien definitivamente hay algo de superposición, TensorFlow Lite es más realista y abierto. Más importante aún: TensorFlow Lite se ejecuta desde el dispositivo en sí, mientras que ML Kit requiere un registro de Firebase y una conexión activa a Internet. A pesar de la confusa nomenclatura de Google, tenga en cuenta que ML Kit todavía usa TensorFlow “bajo el capó”. Firebase también es solo otro tipo de proyecto de Google Cloud Platform.

Ver también: Cree una aplicación de detección de rostros con aprendizaje automático y el kit de Firebase ML

TensorFlow Lite está disponible en Android e iOS a través de una API C ++ y un contenedor de Java para desarrolladores de Android. En los dispositivos que lo admiten, la biblioteca también puede aprovechar la API de redes neuronales de Android para la aceleración de hardware.

¿Cuál deberías usar para tus proyectos? Realmente depende de tu objetivo. Si no le importa confiar en un servicio en la nube externo, ML Kit podría facilitarle la vida. Si desea que su código se ejecute de forma nativa o si necesita un poco más de personalización y flexibilidad, elija TensorFlow Lite.


Cómo usar TensorFlow Lite

Al resolver un problema con el aprendizaje automático, los desarrolladores se basan en “modelos”. Los modelos de AA son archivos que contienen Estadísticas Modelos. Estos archivos están entrenados para reconocer patrones específicos. El entrenamiento esencialmente significa alimentar el modelo con muestras de datos para que pueda mejorar su tasa de éxito al refinar los modelos que utiliza.

Ver también: Etiquetado de imágenes de ML Kit: determina el contenido de una imagen con aprendizaje automático

Por lo tanto, un modelo de visión por computadora podría comenzar con algunas suposiciones básicas sobre la apariencia de un objeto. A medida que le muestre más y más imágenes, se volverá cada vez más preciso, ampliando también el alcance de lo que está buscando.

Modelos de entrenamiento FFLite

Se encontrará con “modelos previamente entrenados” que ya han sido alimentados con todos estos datos para refinar sus algoritmos. Este tipo de modelo está, por tanto, “listo para funcionar”. Puede realizar automáticamente una actividad como identificar emociones basadas en expresiones faciales o mover un brazo robótico en el espacio.

En TensorFlow Lite, estos archivos se denominan “Archivos de modelo de TensorFlow Lite” y tienen la extensión “.tflite” o “.lite”. Los archivos de etiquetas incluyen las etiquetas para las que se ha entrenado el archivo (por ejemplo, “Feliz” o “triste” para los modelos de reconocimiento facial).

Modelos de entrenamiento ML

También puede encontrar otros tipos de archivos utilizados en el proceso de formación. Los archivos GraphDef (.pb o .pbtxt) describen el gráfico y pueden ser leídos por otros procesos. La versión TXT también está diseñada para ser legible por humanos. También puede crearlos con TensorFlow.

El archivo Checkpoint muestra el proceso de aprendizaje enumerando las variables serializadas, lo que le permite ver cómo cambian los valores con el tiempo. Luego, Frozen Graph Def convierte estos valores en constantes y los lee desde los puntos de control establecidos a través del gráfico. Luego se construye el modelo TFlite desde el gráfico congelado usando TOCO (Herramienta de conversión de optimización de flujo tensorial). Esto nos da un buen archivo “pre-entrenado” que luego podemos implementar en nuestras aplicaciones.

Estas bibliotecas pueden manejar todo tipo de tareas comunes, como responder preguntas, reconocer rostros y más.

Discutir cómo entrenar e importar modelos está más allá del alcance de esta publicación, aunque puede encontrar un excelente tutorial aquí.

La buena noticia es que la biblioteca de tareas de TensorFlow contiene muchas bibliotecas simples y poderosas que se basan en modelos previamente entrenados. Estos pueden manejar todo tipo de tareas comunes, como responder preguntas, reconocer rostros y más. Esto significa que aquellos que están comenzando no tienen que preocuparse por los archivos o la capacitación de Checkpoint.

Usando archivos TFLite

Hay muchas formas de obtener archivos de plantilla de TensorFlow Lite previamente entrenados para su aplicación. Recomiendo comenzar con el sitio oficial de TensorFlow.

Siga este enlace, por ejemplo, y podrá descargar una plantilla de inicio que puede categorizar imágenes básicas. La página también incluye algunos detalles sobre cómo usarlo a través de la biblioteca de actividades de TensorFlow Lite. Alternativamente, puede usar la biblioteca de soporte de TensorFlow Lite si desea agregar su propia canalización de inferencia (por ejemplo, buscar cosas nuevas).

Después de descargar el archivo, lo colocará en el directorio de recursos. Debe especificar que el archivo no debe comprimirse. Para hacer esto, agregue lo siguiente a su módulo build.gradle:








android {
    // Other settings

    // Specify tflite file should not be compressed for the app apk
    aaptOptions {
        noCompress "tflite"
    }

}

Configurar el proyecto de Android Studio

Para usar TensorFlow Lite en su aplicación, deberá agregar la siguiente dependencia a su archivo build.gradle:

compile ‘org.tensorflow:tensorflow-lite:+’

A continuación, debe importar su intérprete. Este es el código que realmente cargará el modelo y le permitirá ejecutarlo.

Dentro de su archivo Java, luego creará una instancia del intérprete y la usará para analizar los datos que necesita. Por ejemplo, puede insertar imágenes y esto devolverá resultados.

Los resultados se proporcionarán en forma de probabilidades de salida. Los modelos nunca pueden decir con certeza qué es un objeto. Entonces, una imagen de gato podría ser 0.75 perro y 0.25 gato. Tu código debe

De forma alternativa, importe la biblioteca de compatibilidad de TensorFlow y convierta la imagen al formato de tensor.

Estos modelos previamente entrenados son capaces de reconocer miles de clases de imágenes. Sin embargo, hay muchas “arquitecturas” de modelos diferentes que alteran la forma en que el modelo define las “capas” involucradas en el ciclo de aprendizaje, así como los pasos que se toman para transformar los datos sin procesar en datos de entrenamiento.

Las arquitecturas de modelos populares incluyen dispositivos como MobileNet e Inception. Su tarea es elegir la solución óptima para el trabajo. Por ejemplo, MobileNet está diseñado para favorecer los modelos ligeros y rápidos sobre los complejos y profundos. Los modelos complejos tienen una mayor precisión pero a expensas del tamaño y la velocidad.


Aprende más

Si bien este es un tema complejo para principiantes, espero que esta publicación le haya dado una idea de los conceptos básicos, para que pueda comprender mejor los tutoriales futuros. La mejor manera de aprender una nueva habilidad es elegir un proyecto y luego aprender los pasos necesarios para completar esa actividad.

Introducción a TensorFlow Lite Android

Para una comprensión más profunda, recomendamos encarecidamente el aprendizaje automático con TensorFlow. Este curso incluye 19 lecciones que le mostrarán cómo implementar soluciones comerciales comunes. Autoridad de Android Los lectores obtienen un 91% de descuento en este momento, lo que eleva el precio a $ 10 desde $ 124.

About MiReal

Compruebe también

The Android Arsenal – Vistas

Un FragmentDialog implementado con RecyclerView que puede aceptar selecciones únicas o múltiples Instalación RecyclerPickerDialog se …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *