Video Summary and Transcription
Håkan Silvernagel presenta TensorFlow Lite, un marco de aprendizaje profundo de código abierto para implementar modelos de aprendizaje automático en dispositivos móviles e IoT. Destaca los beneficios de usar TensorFlow Lite, como la latencia reducida, la mayor privacidad y la mejor conectividad. La charla incluye una demostración de las capacidades de reconocimiento de objetos y un ejemplo del mundo real de cómo usar TensorFlow Lite para detectar una enfermedad que afecta a los agricultores en Tanzania. Se proporcionan referencias a la documentación oficial de TensorFlow, la conferencia Google IO y los cursos de TensorFlow en Coursera.
1. Introducción a TensorFlow Lite
En esta parte, Håkan Silvernagel presenta TensorFlow Lite, un marco de aprendizaje profundo de código abierto para implementar modelos de aprendizaje automático en dispositivos móviles e IoT. Explica los dos componentes principales de TensorFlow Lite, el intérprete y el convertidor, y destaca los beneficios de usar TensorFlow Lite, como la latencia reducida, la mayor privacidad y la mejor conectividad. Håkan también menciona la disponibilidad de múltiples API y la capacidad de usar modelos pre-entrenados para tareas comunes de aprendizaje automático. Concluye mencionando el uso de un modelo pre-entrenado para la detección de objetos en una Raspberry Pi dentro de un robot TJ.
Buenos días, buenas tardes y buenas noches. Mi nombre es Håkan Silvernagel, voy a hablar sobre cómo puedes hacer aprendizaje automático en el borde utilizando TensorFlow Lite. Trabajo como gerente de IA y big data en una empresa de consultoría noruega llamada Myles y también soy un Microsoft MVP. Pero el tema aquí hoy es TensorFlow Lite.
Entonces, ¿qué es TensorFlow Lite? Bueno, es un marco de aprendizaje profundo de código abierto para implementar modelos de aprendizaje automático en dispositivos móviles e IoT. Puede ser en, por ejemplo, una Raspberry Pi que mostraré un poco más tarde o en un microcontrolador pequeño. La forma en que funciona es que TensorFlow Lite tiene dos componentes principales. Hay un intérprete de TensorFlow Lite. Lo que hace es ejecutar modelos de TensorFlow optimizados en diferentes tipos de hardware. Y luego tenemos el convertidor de TensorFlow Lite. El convertidor convierte modelos regulares de TensorFlow en una forma mucho más eficiente, que ha sido optimizada tanto para mejorar el tamaño binario como el rendimiento.
Puede que te preguntes, ¿por qué debería usar TensorFlow Lite? Hay varios argumentos aquí por qué preferiríamos usar TensorFlow Lite. Uno de ellos tiene que ver con la latencia. Dado que todo lo que hacemos se realiza en el dispositivo, no es necesario un viaje de ida y vuelta entre el cliente y el servidor. Y también en términos de privacidad, los datos del usuario estarán locales. Eso significa que tienes una mayor seguridad. Y también en términos de conectividad, no se requiere una conexión a Internet. Además, muchos de estos dispositivos pequeños no tienen suficiente potencia para alimentar un transmisor de radio. Y también hay múltiples API aquí. Puedes usar Java, Swift, Objective-C, C++ o Python. Hay mucho potencial. Y lo último, que quizás sea lo más importante aquí, es que puedes usar modelos pre-entrenados para tareas comunes de aprendizaje automático. La forma en que funciona es que eliges un modelo, ya sea tu propio modelo o puedes elegir uno de estos modelos pre-entrenados. Luego puedes convertir tu modelo al formato de TensorFlow Lite. Y luego, después de eso, lo implementas en tu dispositivo. Y también puedes optimizar algunos aspectos del modelo. En esta diapositiva, podemos ver algunos de los modelos pre-entrenados que puedes usar. Usaremos un modelo para la detección de objetos en un momento. Cuando ejecutemos la detección de objetos, lo haremos en una Raspberry Pi, que está dentro de un robot TJ. Y luego podrá reconocer diferentes tipos de objetos.
2. Using a Preoptimized Mobile Net SSD for Inference
Utilizaremos una red móvil preoptimizada SSD entrenada en el conjunto de datos CocoaDat. Los cuatro pasos principales para la inferencia son inicializar el intérprete, preparar la entrada de imagen, realizar la inferencia y obtener y mapear los resultados. El proceso implica cargar el intérprete, asignar tensores, preparar la entrada de imagen desde la cámara de video, realizar la inferencia y obtener las coordenadas del cuadro delimitador, el índice de clase y el nivel de confianza de los objetos detectados. Una demostración rápida en el dispositivo Raspberry Pi muestra el reconocimiento de una persona pero enfrenta algunos problemas con el reconocimiento de objetos.
Utilizaremos una red móvil preoptimizada SSD entrenada en el conjunto de datos CocoaDat. Por lo tanto, Cocoa está entrenada en 80 categorías de objetos. Y tendremos un archivo de etiquetas que mapeará la salida de los modelos para que sepamos qué es en texto. Este es un ejemplo del enlace de GitHub que puedes ver en la diapositiva. También puedes descargar el archivo de modelo TF Lite y el archivo de etiquetas desde la URL a continuación.
Al realizar la inferencia, hay cuatro pasos principales que debemos realizar. Uno de ellos es inicializar el intérprete. El segundo es preparar la entrada de imagen. El tercero es realizar la inferencia. Y el último paso es obtener y mapear los resultados.
Cargamos el intérprete desde el tiempo de ejecución de TF Lite. Luego asignamos los tensores, el tensor de entrada y el tensor de salida. En nuestro segundo paso, debemos preparar la entrada de imagen. Ahora tomaremos una imagen de la cámara de video. Definimos una clase, clase de transmisión de video. Y luego lo que queremos hacer es leer desde la transmisión, desde la transmisión de la cámara. Iniciamos un bucle infinito aquí, donde simplemente tomamos el último fotograma de la cámara de la transmisión y luego lo devolvemos a la aplicación que llama. Luego, en nuestra aplicación, definimos un objeto de transmisión de video. Y luego simplemente adquirimos el fotograma y luego hacemos un cambio de tamaño al tamaño correcto para TensorFlow. Y luego realizamos la inferencia. Apuntamos a los datos que se utilizarán para esta prueba y luego ejecutamos el intérprete ejecutando invoke. Y finalmente, simplemente obtenemos y mapeamos los resultados.
En este caso, obtenemos el cuadro delimitador con las coordenadas de los objetos y también obtenemos el índice de clase de los objetos detectados y el nivel de confianza de los objetos. Permítanme cambiar aquí para una demostración rápida. Ahora estamos en el dispositivo Raspberry Pi. Y luego puedo sostener un objeto aquí para la Raspberry Pi. Y luego podemos ver que reconoce a la persona, que soy yo. Tiene algunos problemas aquí al reconocer mi objeto. Permítanme probar otro objeto.
3. Object Recognition and Real-World Example
En esta parte, Håkan Silvernagel demuestra las capacidades de reconocimiento de objetos de TensorFlow Lite. Muestra cómo el modelo puede identificar con precisión objetos como un plátano y un control remoto, mostrando el nivel de confianza y el cuadro delimitador. Håkan también comparte un ejemplo del mundo real de cómo se utiliza TensorFlow Lite para detectar una enfermedad que afecta a los agricultores en Tanzania. Concluye proporcionando referencias a la documentación oficial de TensorFlow, la conferencia Google IO y los cursos de TensorFlow en Coursera, y expresa su gratitud al público.
Como puedes ver, por ejemplo, aquí reconoce que es un plátano. Y puedo tomar otro objeto aquí. Aquí reconoce que es un control remoto. También puedes ver el nivel de confianza y el cuadro delimitador.
También tengo un ejemplo aquí del mundo real. Cómo puedes usar TensorFlow en un problema del mundo real. En Tanzania, los agricultores tienen un gran problema debido a una enfermedad. Y están utilizando un modelo de TensorFlow Lite para ejecutar TensorFlow en dispositivos móviles y poder detectar la enfermedad.
Con eso, creo que cambiaré rápidamente aquí a algunas referencias. Aquí puedes ver la documentación oficial de TensorFlow, y también tienes algunos enlaces a la conferencia Google IO. Y algunos cursos sobre TensorFlow en el sitio web de Coursera. Si tienes alguna pregunta o comentario al respecto, siempre puedes contactarme en Twitter o por correo electrónico. Con eso dicho, quiero agradecerte por sintonizar, y te deseo una excelente conferencia. Muchas gracias.
Comments