Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-user-avatar domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131

Warning: Cannot modify header information - headers already sent by (output started at /home/planetac/desa.planetachatbot.com/wp-includes/functions.php:6131) in /home/planetac/desa.planetachatbot.com/wp-content/plugins/all-in-one-seo-pack/app/Common/Meta/Robots.php on line 87

Warning: Cannot modify header information - headers already sent by (output started at /home/planetac/desa.planetachatbot.com/wp-includes/functions.php:6131) in /home/planetac/desa.planetachatbot.com/wp-includes/feed-rss2.php on line 8
Nicolas Bortolotti - Planeta Chatbot https://desa.planetachatbot.com Comunidad de expertos en IA Conversacional Thu, 02 Jun 2022 14:01:50 +0000 es hourly 1 https://wordpress.org/?v=6.9.4 https://desa.planetachatbot.com/wp-content/uploads/2021/05/cropped-favicon-32x32.png Nicolas Bortolotti - Planeta Chatbot https://desa.planetachatbot.com 32 32 Tutorial: TensorFlow Lite con Go API en 7 pasos https://desa.planetachatbot.com/tutorial-tensorflow-lite-con-go-api-en-7-pasos/?utm_source=rss&utm_medium=rss&utm_campaign=tutorial-tensorflow-lite-con-go-api-en-7-pasos https://desa.planetachatbot.com/tutorial-tensorflow-lite-con-go-api-en-7-pasos/#respond Wed, 17 Feb 2021 12:00:55 +0000 https://desa.planetachatbot.com/?p=6323 TensorFlow Lite es un marco de aprendizaje profundo de código abierto para la inferencia en el dispositivo. La API actual es compatible oficialmente con Python, Java y C ++. La pregunta principal aquí es, ¿Qué pasaría si quisiéramos usar Go & TensorFlow Lite? El objetivo de este artículo es brindar la oportunidad de usar Go en el poderoso mundo […]

The post Tutorial: TensorFlow Lite con Go API en 7 pasos first appeared on Planeta Chatbot.

]]>
TensorFlow Lite es un marco de aprendizaje profundo de código abierto para la inferencia en el dispositivo. La API actual es compatible oficialmente con Python, Java y C ++.

La pregunta principal aquí es, ¿Qué pasaría si quisiéramos usar Go & TensorFlow Lite?

El objetivo de este artículo es brindar la oportunidad de usar Go en el poderoso mundo de la inferencia en el dispositivo y también brindar una experiencia de uso fluida.

Hay algunas iniciativas trabajando en eso, pero sin un diseño central claro, un entorno de mantenimiento y dependencias.

Para la propuesta inicial, decidí usar la biblioteca TensorFlow Lite C y para el enlace estoy usando cgo (cgo permite la creación de paquetes Go que llaman código C) para implementar la solución.

Creé la versión inicial de la biblioteca tflitego. * Siempre damos la bienvenida a los contribuyentes, expertos y expertos en inferencia en el dispositivo, etc.

Aquí el diseño de la versión inicial :

abstracción genérica del diseño — v 0.0.2

También creé un proyecto de ejemplos inicial con la propuesta, el objetivo aquí es usar el modelo Iris TensorFlow lite y ver tflitego en acción. Básicamente, necesitamos 7 pasos para ejecutar una inferencia simple:

animación con tflitego en acción
  1. Creación de modelos
  2. Establecer opciones de intérprete
  3. Crear intérprete
  4. Asignar tensores
  5. Tensor de entrada
  6. Invocación de intérprete
  7. Salidas / Resultados

En cuanto al entorno de implementación, creé una representación en acciones de GitHub para probar la simplicidad de uso de tflitego. (linux / X86_64, 2.4.0, Ubuntu 18.04). * TensorFlow 2.4.0. La clave es un paquete para implementar correctamente la biblioteca C de TensorFlow. Puedes ver un ejemplo aquí.

También representé un método de implementación simple para usar en raspberry pi, por ahora probado en v3. Raspberrypi_linux / ARMv7, 2.4.0 * TensorFlow 2.4.0.

wget https://storage.googleapis.com/clitelibrary/ctflitelib_2.4.0_ARMv7.tar.gz
sudo tar -C /usr/local -xzf ctflitelib_2.4.0_ARMv7.tar.gz

metodología bastante sencilla, ambiente raspberry.

Te invito a probar esta idea:

go get github.com/nbortolotti/tflitego

Toda la información incluida en:

The post Tutorial: TensorFlow Lite con Go API en 7 pasos first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/tutorial-tensorflow-lite-con-go-api-en-7-pasos/feed/ 0
Tensor Flow Object Detection sobre Telegram Bot, mi desayuno, frutas y una conversación interactiva https://desa.planetachatbot.com/tensor-flow-object-detection-sobre-telegram-bot-desayuno-frutas-y-una-conversacion-interactiva/?utm_source=rss&utm_medium=rss&utm_campaign=tensor-flow-object-detection-sobre-telegram-bot-desayuno-frutas-y-una-conversacion-interactiva https://desa.planetachatbot.com/tensor-flow-object-detection-sobre-telegram-bot-desayuno-frutas-y-una-conversacion-interactiva/#respond Fri, 01 Dec 2017 12:06:54 +0000 https://desa.planetachatbot.com/?p=6329 En este artículo vamos a explorar un caso donde combinemos la detección de objetos en imágenes utilizando Tensor Flow (Object Detection API), y la interacción mediante una arquitectura de bots (Telegram platform). El desafío es crear un bot que pueda interactuar con imágenes en una conversación, para informar al usuario las frutas que contiene su desayuno. Utilizando […]

The post Tensor Flow Object Detection sobre Telegram Bot, mi desayuno, frutas y una conversación interactiva first appeared on Planeta Chatbot.

]]>
En este artículo vamos a explorar un caso donde combinemos la detección de objetos en imágenes utilizando Tensor Flow (Object Detection API), y la interacción mediante una arquitectura de bots (Telegram platform).

El desafío es crear un bot que pueda interactuar con imágenes en una conversación, para informar al usuario las frutas que contiene su desayuno. Utilizando esta información se pueden entregar muchas variaciones de análisis en el futuro, por el momento solo una prueba de concepto.

Vamos a proponer una integración de TensorPhotoXRay (nuestra solución para detección de etiquetas en imágenes, artículo previo) para detectar frutas en las imágenes y vamos a crear una integración con un Telegram Bot (proyecto appengine-telegram-bot).

Esta es la solución terminada y funcionando:

Vamos a describir los elementos básicos para utilizar esta arquitectura.

Creación del bot en telegram: usted puede conocer más sobre esta opción en este link oficial. *Elemento Importante de este paso, obtener el token para interactuar la plataforma de telegram.

Creación de la solución Telegram Bot: vamos a crear un bot basado en App Engine (proyecto appengine-telegram-bot). *Este es el método de análisis para los mensajes desde Telegram y la llamada al método de detección de imágenes.

Para esta implementación, nosotros utilizamos 50% de confianza en la detección de etiquetas. Aquí encontrarás el proyecto completo para desplegar.

Desplegar la solución de Telegram Bot: en este ejemplo, la solución está diseñado para Google App Engine traditional environment. Debe prestar especial atención a estos elementos.

  • Telegram Token: para obtener esta información y para crear el bot en la plataforma de telegram, debe interactuar con BotFatherAquí tiene todas las instrucciones oficiales.
  • Url de integración con TensorPhotoXRay: una vez desplegada la solución, necesitará la url para realizar el análisis. Recuerde que tiene un nuevo método con este formato:

rooturl/photobot/photourl

  • rooturl: app engine url
  • photourl: url para analizar la imagen

Configuración del Hook para Telegram: usted debe desplegar la solución en App Engine. Cuando finalice esta acción, usted tendrá este formato de urls.

rooturl/fruit_analysis

  • rooturl: app engine url

Desplegar la solución de TensorPhotoXRay: esta actividad la puede realizar siguiendo estas instrucciones. Recuerde que esta solución utiliza App Engine Flexible Environments.

He realizado una modificación sobre el proyecto original para agregar un nuevo método que devuelve solo un arreglo de etiquetas sobre la detección de la imagen.

Este es el método:

Último paso, vincular Telegram con nuestro Bot desarrollado

Ahora, que empiece la diversión…

  • Para que el bot se enlace con nuestra solución en App Engine, debemos establecer el hook. *(solo acceda a el link (rooturl/set_webhook) y valide la configuración, con este mensaje “config ok”)

rooturl/set_webhook

  • rooturl: app engine url

Ahora, podemos interactuar con un componente que permite colaborar en nuestras opciones de comida, en un futuro sugerir y aprender de una forma muy flexible.

Hay varios elementos para evolucionar y mejorar, pero esta simple solución muestra un interesante camino lleno de nuevas oportunidades en la interacción con usuarios.

The post Tensor Flow Object Detection sobre Telegram Bot, mi desayuno, frutas y una conversación interactiva first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/tensor-flow-object-detection-sobre-telegram-bot-desayuno-frutas-y-una-conversacion-interactiva/feed/ 0
Siguiendo a Messi utilizando TensorFlow y Object Detection https://desa.planetachatbot.com/siguiendo-a-messi-utilizando-tensorflow-y-object-detection/?utm_source=rss&utm_medium=rss&utm_campaign=siguiendo-a-messi-utilizando-tensorflow-y-object-detection https://desa.planetachatbot.com/siguiendo-a-messi-utilizando-tensorflow-y-object-detection/#respond Tue, 17 Oct 2017 12:15:17 +0000 https://desa.planetachatbot.com/?p=6341 En publicaciones anteriores estuvimos utilizando TensorFlow en combinación con el modelo de Object Detection, pero siempre haciendo uso de los tradicionales conjuntos de datos preestablecidos [ejemplo COCO database]. En esta oportunidad, nuestro desafío debería llevarnos a otro nivel. Les propongo analizar un segmento de un partido de fútbol e identificar sus jugadores. Al hablar de fútbol, lo primero que […]

The post Siguiendo a Messi utilizando TensorFlow y Object Detection first appeared on Planeta Chatbot.

]]>
En publicaciones anteriores estuvimos utilizando TensorFlow en combinación con el modelo de Object Detection, pero siempre haciendo uso de los tradicionales conjuntos de datos preestablecidos [ejemplo COCO database]. En esta oportunidad, nuestro desafío debería llevarnos a otro nivel. Les propongo analizar un segmento de un partido de fútbol e identificar sus jugadores. Al hablar de fútbol, lo primero que me vino a la mente es buscar el talento del astro Argentino Lionel Messi. Empecemos nuestro análisis:

  • Entrenemos un modelo personalizado que nos permita ubicar a astro Argentino.
  • Analicemos una transmisión real [en este caso seleccioné Uruguay-Argentina por eliminatorias 31 de agosto 2017] para ver qué resultados podemos obtener.
  • Pensemos si es posible mejorar o aportar algo a la táctica de este pasional deporte, utilizando esta tecnología.

*Vamos a utilizar TensorFlow y el modelo propuesto para Object Detection, todo bajo licencia Apache License 2.0.

En esta oportunidad vamos a empezar por mostrarles el resultado obtenido:

cámara lenta — fragmento del partido de fútbol

Si les parece interesante, los invito a dedicar unos minutos más y seguir el paso a paso, para comprender el procedimiento de construcción de este modelo. Debemos completar dos elementos importantes:

  1. Construir la base de datos personalizada con los objetos a detectar. [en este caso Lionel Messi en plena acción].
  2. Entrenar y evaluar el modelo utilizando TensorFlow.
  3. Utilizar el modelo creado.

Paso a paso

Momento de construir la base de datos personalizada

  1. Si exploramos la documentación oficial, encontraremos una sección exclusiva para construir nuestro dataset personalizado. Aquí lo pueden ver.
  2. Necesitamos las fotografías de los objetos que queremos detectar y el etiquetado de las mismas.
  • Para este caso como herramient utilicé RectLabel, una buena opción para MacOS. [hay otra alternativas que podrían evaluar como LabelImg]
  • Luego para las primeras pruebas he recolectado unas 119 fotografías[muy poco cantidad, solo con fines de prueba] de un partido de fútbol.
  • He etiquetado unas 100 unidades seleccionando al astro Argentino.

3. El siguiente paso, es convertir esas fotografías y etiquetas en archivos con TFFormatAquí pueden ver el script utilizado [utilicé un paso intermedio convirtiendo el marcado xml a csv para las anotaciones de las fotografías, esto da mucha más flexibilidad para los siguientes paso y si hay que repetir parte de esta actividad aquí el script].

4. Recuerden que lo ideal es construir el conjunto de entrenamiento y el conjunto de evaluación.

Momento de entrenar/evaluar el modelo personalizado

  1. Con estos archivos completos, pasaremos a entrenar el modelo.
  • Para este paso he utilizado ML Engine ya que no contaba con la infraestructura local para realizar el proceso en 1 hora promedio. [aquí está la descripción oficial del procedimiento]
  • 5 workers utilizando standard gpu.
  • También es muy recomendable asociar TensorBoard para visualizar el proceso de entrenamiento y evaluación.
  • Recuerde que debe utilizar una interacción directa con Google Cloud Storage. Es decir todos los archivos deben estar en este tipo de repositorio para poder interactuar con el motor de entrenamiento.

2. Luego de una 21.77 unidades utilizadas, 1 hora 9 mins y unos 20k iteraciones tenemos varios checkpoints y un modelo aceptable.

3. Utilizando el checkpoint más avanzado, procedemos a convertir el modelo entrenado para inferencia. [aquí pueden ver la documentación oficial]

Utilizar el modelo personalizado

  1. Terminado este procedimiento vamos a utilizado el modelo desde estas opciones:
  • script que utiliza el modelo y genera un video con el resultado de las detecciones. Aquí el ejemplo de implementación.
  • script que puede evaluar el vídeo en realtime y decodificar las etiquetas para calcular las apariciones del astro argentino. Aquí el ejemplo de implementación.

Mismo video en slow-motion aquí.

Quizás es el inicio de una línea de investigación interesante, tratar de mejorar la táctica deportiva, incorporando más jugadores y validando asociaciones.

Es real que estamos utilizando solo la transmisión que entrega la TV tradicional, pero qué ocurriría si tuviéramos la opción de cámaras con más detalles o una visión completa del campo de juego?. Se podrían calcular las posiciones de todos los jugadores, de hecho probamos que se pueden identificar fácilmente, entonces… podríamos encontrar mejores tácticas basadas en la posición de los jugadores y sus conocidas habilidades?

Espero que se hayan divertido con este procedimiento, y esperemos ver cada vez más este tipo de implementaciones en disciplinas deportivas, no solo en el fútbol sino en los demás deportes.

The post Siguiendo a Messi utilizando TensorFlow y Object Detection first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/siguiendo-a-messi-utilizando-tensorflow-y-object-detection/feed/ 0
TensorFlow Object Detection API, cena con amigos https://desa.planetachatbot.com/tensorflow-object-detection-api-cena-con-amigos/?utm_source=rss&utm_medium=rss&utm_campaign=tensorflow-object-detection-api-cena-con-amigos https://desa.planetachatbot.com/tensorflow-object-detection-api-cena-con-amigos/#respond Mon, 17 Jul 2017 12:11:36 +0000 https://desa.planetachatbot.com/?p=6335 Día a día se registran avances en gran cantidad de sectores aplicando inteligencia artificial, y desde luego no es la excepción el sector de aprendizaje en visión por computador. Hace unos días, el equipo de Google Research publicó un artículo con la propuesta de #Tensorflow API para detección de objetos. Por este motivo, me gustaría dejar un […]

The post TensorFlow Object Detection API, cena con amigos first appeared on Planeta Chatbot.

]]>
Día a día se registran avances en gran cantidad de sectores aplicando inteligencia artificial, y desde luego no es la excepción el sector de aprendizaje en visión por computador. Hace unos días, el equipo de Google Research publicó un artículo con la propuesta de #Tensorflow API para detección de objetos. Por este motivo, me gustaría dejar un desafío. Podríamos detectar de forma automática los elementos en una cena con amigos? Para este objetivo, lo ideal sería, utilizar un modelo pre entrenado. Siguiendo este concepto tenemos algunas opciones listas para utilizar:

  • ssd_mobilenet_v1_coco_11_06_2017
  • ssd_inception_v2_coco_11_06_2017
  • rfcn_resnet101_coco_11_06_2017
  • faster_rcnn_resnet101_coco_11_06_2017
  • faster_rcnn_inception_resnet_v2_atrous_coco_11_06_2017

Todos los modelos utilizan COCO, (common objects in context) pueden ver los detalles aquí.

Veamos nuestra imagen original, que hipotéticamente se acaba de capturar por uno de los participantes de la cena:

Image reference COCO database

Y veamos nuestro rápido procesamiento con #TensorFlow, para este análisis, la mejor respuesta que obtuve fué utilizando faster_rcnn_inception_resnet_v2_atrous_coco_11_06_2017. [faster_rcnn y inception_resnet]

De esta forma tenemos las clases detectadas, el número de ocurrencias, las etiquetas y desde luego podemos pintar sobre la foto para hacerlo más gráfico. Por ahora este modelo es limitado ya que utiliza COCO, pero sin duda, esperamos que más modelos se sumen a este y se encuentren nuevas utilidades.

*Por cierto, muy rápidamente podemos contar la cantidad de botellas que propone la foto…

Aquí les dejo el segmento de implementación que hace esta operaciones en #TensorFlow. Pueden ver toda la implementación en la documentación oficial.

The post TensorFlow Object Detection API, cena con amigos first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/tensorflow-object-detection-api-cena-con-amigos/feed/ 0
Regresión lineal simple en #TensorFlow, aprendizaje automático para mayor exactitud https://desa.planetachatbot.com/regresion-lineal-simple-en-tensorflow-aprendizaje-automatico-para-mayor-exactitud/?utm_source=rss&utm_medium=rss&utm_campaign=regresion-lineal-simple-en-tensorflow-aprendizaje-automatico-para-mayor-exactitud https://desa.planetachatbot.com/regresion-lineal-simple-en-tensorflow-aprendizaje-automatico-para-mayor-exactitud/#respond Mon, 17 Apr 2017 12:20:19 +0000 https://desa.planetachatbot.com/?p=6346 En estadística tradicional un modelo muy utilizado para predicciones, es el modelo de regresión lineal (siempre y cuando los valores permitan aplicar este modelo). En este artículo vamos a tratar de responder una pregunta simple. ¿Un modelo de aprendizaje automático nos puede ayudar a mejorar nuestro estudio de variables? Si necesitas más información sobre el […]

The post Regresión lineal simple en #TensorFlow, aprendizaje automático para mayor exactitud first appeared on Planeta Chatbot.

]]>
En estadística tradicional un modelo muy utilizado para predicciones, es el modelo de regresión lineal (siempre y cuando los valores permitan aplicar este modelo). En este artículo vamos a tratar de responder una pregunta simple. ¿Un modelo de aprendizaje automático nos puede ayudar a mejorar nuestro estudio de variables? Si necesitas más información sobre el concepto de #RegresionLineal puede utilizar este link.

Para nuestro estudio, vamos a analizar la edad de niños en el eje “x” y la altura de los mismos en el eje “y”. Intentaremos predecir la altura de los niños basada en su edad, aplicando regresión lineal simple. Fuente académica de este ejemplo link.

Vamos a utilizar una planilla de cálculo para explorar la situación de manera tradicional:

Ahora bien, ¿Qué buscamos con el modelo de aprendizaje automático?. Recordando nuestra función lineal nos enfocaremos en W y b.

y = Wx +b

Buscamos aprender para encontrar los mejores W y b. En la siguiente figura se muestra la representación simple de una regresión lineal.

Los mejores W y b reducen el costo. Como muestra la siguiente figura, este será el objetivo del modelo de aprendizaje automático.

Con el menor costo, mejoramos radicalmente la predicción, representado en la siguiente figura:

Nuestro pregunta central: “Vamos a preguntar por la edad y buscamos la respuesta de la altura mejor ajustada”

Llegó la hora de crear el modelo en #TensorFlow:

Valores de ingreso:

X = tf.placeholder(tf.float32, [m, n])
Y = tf.placeholder(tf.float32, [m, 1])

Peso y la perturbación aleatoria:

W = tf.Variable(tf.zeros([n, 1], dtype=np.float32), name=”weight”)
b = tf.Variable(tf.zeros([1], dtype=np.float32), name=”bias”)

Modelo Lineal:

with tf.name_scope(“linear_Wx_b”) as scope:
activation = tf.add(tf.matmul(X, W), b)

Costo:

with tf.name_scope(“cost”) as scope:

cost = tf.reduce_sum(tf.square(activation — Y)) / (2 * m)

tf.summary.scalar(“cost”, cost)

Entrenamiento:

with tf.name_scope(“train”) as scope:

optimizer = tf.train.GradientDescentOptimizer(0.07).minimize(cost)

Luego generamos la sesión en #TensorFlow:

with tf.Session() as sess:

merged = tf.summary.merge_all()

writer = tf.summary.FileWriter(log_file, sess.graph)

init = tf.global_variables_initializer()

sess.run(init)

for step in range(1500):

result, _ = sess.run([merged, optimizer], feed_dict={X: np.asarray(train_X), Y: np.asarray(train_Y)})

writer.add_summary(result, step)

Vamos a iterar 1500 veces el modelo, luego pueden evaluar diferentes configuraciones y desde luego variar el ratio de aprendizaje que por el momento está fijado en 0.07.

print “Prediction for 3.5 years”

predict_X = np.array([3.5], dtype=np.float32).reshape([1, 1])

predict_X = (predict_X — mean) / std

predict_Y = tf.add(tf.matmul(predict_X, W), b)

print “Child height(Y) =”, sess.run(predict_Y)

Esto nos entrega un valor de 0.9737 (expresa la altura en metros) Pueden validar académicamente la solución del ejercicio en este link.

Aquí la implementación de la solución

Además incluí #TensorBoard en nuestro estudio para poder analizar:el modelo con más detalles:

El trazado de la función de costo:

Nota: he seleccionado muchos valores y configuraciones estándares, con el objetivo de simplificar la explicación, luego el lector puede modificar a gusto los elementos de estudio.

Si comparamos nuestro estudio inicial utilizando una planilla tradicional y nuestro modelo automático, es evidente que tenemos mucha mayor exactitud con nuestro modelo automático y además toda la escala para ingerir un volumen mayor de datos y crear mejores predicciones. Están listos para más magia?

Regresión lineal simple en #TensorFlow, aprendizaje automático para mayor exactitud por Nicolas Bortolotti se distribuye bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.

The post Regresión lineal simple en #TensorFlow, aprendizaje automático para mayor exactitud first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/regresion-lineal-simple-en-tensorflow-aprendizaje-automatico-para-mayor-exactitud/feed/ 0