Crea aplicaciones de Machine Learning con SenseCraft AI. Parte 1

SenseCraft es una plataforma desarrollada y mantenida por Seeed Studio para la creación de aplicaciones basadas en Machine Learning. Se caracteriza por su facilidad de uso y por no requerir conocimientos avanzados. En esta serie de artículos, te mostraré cómo utilizarla y sacar el máximo provecho de sus capacidades, permitiéndote desarrollar tus propias aplicaciones de Machine Learning de forma sencilla, sin necesidad de ser un experto en el tema.

Introducción

El Machine Learning (ML) es una subrama de la inteligencia artificial y una tecnología que ha demostrado excelentes resultados en diversos campos de la ingeniería.

A diferencia de los métodos tradicionales, que se basan en algoritmos predefinidos, el ML aborda los problemas desde una perspectiva completamente distinta: en lugar de seguir reglas fijas definidas por una fórmula matemática o una serie de condiciones lógicas, busca replicar, en cierta medida, los mecanismos de aprendizaje humano. De ahí su nombre, Machine Learning o, en español, Aprendizaje de Máquina.

Sin embargo, implementar una solución basada en ML puede ser un proceso complejo, ya que requiere seguir una serie de pasos específicos y utilizar diversas herramientas especializadas.

En esta serie de artículos, te mostraré todo el potencial de SenseCraft AI, una plataforma que simplifica la creación de aplicaciones de Machine Learning. Ya seas un maker, un desarrollador profesional o un docente que busca incorporar la IA en el aula, SenseCraft es una herramienta poderosa que te permitirá crear aplicaciones sin necesidad de contar con conocimientos avanzados en el tema.

Machine learning

Mira el siguiente video, en el que un pequeño robot seguidor de línea. Es muy probable que ya hayas realizado un proyecto similar por tu cuenta o en la escuela.

Este tipo de robot puede construirse de diversas maneras relativamente simples, controlando la velocidad de los motores a partir de la información proporcionada por los sensores de luz ubicados en su parte frontal. Sin embargo, para alcanzar la precisión y velocidad que demuestra el robot del video, se utiliza un algoritmo complejo llamado PID (Proporcional-Integral-Derivativo).

Un algoritmo PID no es más que una fórmula matemática que, a partir de los valores de luz obtenidos por los sensores del robot, calcula la velocidad óptima que deben tener los motores. Es un algoritmo bastante antiguo, estudiado durante más de 100 años y aplicado en diversas áreas de la ingeniería.

Este es un claro ejemplo de lo que llamaríamos una solución algorítmica: partimos de un problema y diseñamos un algoritmo que, mediante lógica y cálculos matemáticos, nos proporciona una solución.

Sin embargo, no todos los problemas pueden resolverse de esta manera. Un caso típico en el que no se puede aplicar ninguna fórmula matemática, por más compleja que sea, es el reconocimiento facial. ¿Cómo desarrollar un algoritmo que, a partir de la imagen de un rostro, identifique a la persona a la que pertenece?

Supongamos que quiero diseñar una cerradura inteligente que solo abra la puerta de mi casa cuando una cámara detecte mi rostro. Este problema no puede resolverse con simples reglas lógicas o ecuaciones matemáticas. ¿Debería medir el diámetro de los ojos o el ancho de la frente? ¿Y si llevo bufanda o gorro? ¿Qué sucede si cambia la iluminación?

Evidentemente, un enfoque algorítmico tradicional está destinado al fracaso. Sin embargo, reconocer rostros es algo que los humanos hacemos todos los días y sin esfuerzo, sin necesidad de realizar ningún tipo de cálculos o algoritmos.

La clave aquí es que las personas aprenden a reconocer rostros. Mi familia y mis amigos han visto mi cara en distintas situaciones: con el pelo largo o corto, con gorro o bufanda, de noche y de día. Con el tiempo, han aprendido a identificarme sin importar las variaciones en mi apariencia.

¿Cómo podríamos replicar este proceso en un sistema electrónico? No con algoritmos como PID, sino con Machine Learning (ML).

El ML intenta replicar este comportamiento de aprendizaje humano. No lo hace exactamente de la misma forma, porque los mecanismos de aprendizaje en las personas aún no están completamente comprendidos, pero sí logra un resultado similar: aprende a reconocer patrones a partir de la experiencia.

Modelos para ML

Un modelo de Machine Learning (ML) es, en esencia, una fórmula matemática, pero de una naturaleza completamente diferente a la de un PID. En primer lugar, es una fórmula que no proporciona un resultado exacto, sino una probabilidad. Además, esta fórmula cuenta con una serie de parámetros ajustables, que permiten modificar su comportamiento y mejorar su precisión en distintas tareas.

Selección del modelo

Para resolver un problema con ML, como el de la cerradura inteligente, primero necesitas un modelo adecuado para la tarea. En este caso, un modelo especializado en reconocimiento de imágenes. Existen otros modelos diseñados para distintas aplicaciones, como el procesamiento de lenguaje natural (por ejemplo, ChatGPT) o el análisis de datos en áreas como la meteorología o las finanzas.

Entrenamiento

Una vez que tienes un modelo, necesitas que aprenda a realizar la tarea específica que deseas. En este caso, que reconozca tu rostro para abrir la puerta. Este proceso de aprendizaje se conoce como entrenamiento del modelo (training) y consiste en ajustar los parámetros del modelo para que pueda identificar los patrones de píxeles que caracterizan tu cara en una imagen. Para ello, la forma mas sencilla es proporcionarle múltiples imágenes de tu rostro, permitiéndole aprender sus características distintivas.

En algunas aplicaciones más generales (por ejemplo, si deseas que la cerradura se abra con cualquier rostro humano y no solo con el tuyo), puedes utilizar modelos ya entrenados (pretrained models), que han sido ajustados previamente con grandes bases de datos de imágenes de rostros de personas.

Fig. 1. El reconocimiento facial es una de las aplicaciones del Machine Learning

Implementación

Una vez finalizado el entrenamiento, el modelo debe ser descargado en una placa electrónica equipada con una cámara, que será la encargada de controlar la cerradura. A este proceso se le conoce como implementación o deployment.

En la misma placa, es necesario contar con un motor de inferencia, que es el software o biblioteca encargada de ejecutar el modelo y procesar los datos en tiempo real. Este motor toma las imágenes captadas por la cámara, se las entrega al modelo y éste determina, con un cierto grado de probabilidad, si el rostro detectado cumple con los criterios para abrir la cerradura. Este proceso de predicción del modelo se denomina inferencia (inference).

Llevar a cabo todas las etapas del proceso—selección del modelo, entrenamiento e implementación—puede requerir conocimientos avanzados y el manejo de diversas herramientas especializadas en Machine Learning.

Si tu objetivo es desarrollar un proyecto sencillo sin profundizar en estos conceptos necesitarás una plataforma que simplifique el proceso.

Existen varias de estas plataformas diseñadas para ayudarnos con estas tareas. Edge Impulse es una de las más conocidas, y MaixHub, de la empresa Sipeed, también es una alternativa. Sin embargo, SenseCraft se destaca por su sencillez de uso y por la utilización de modelos altamente optimizados, capaces de ejecutarse en placas económicas como la XIAO ESP32-S3 Sense.

SenseCraft no solo permite entrenar modelos con datos propios, sino que también ofrece una amplia selección de modelos preentrenados. Basta con seleccionar el modelo deseado, el dispositivo en el que se ejecutará y, con solo unos pocos clicks se puede probar y descargar directamente en la placa que hayas elegido.

Algunas aplicaciones sencillas pueden resolverse sin necesidad de escribir código, y si requieres funciones más avanzadas, cuentas con una serie de librerías compatibles con Arduino para desarrollar tu proyecto.

SenseCraft AI

SenseCraft te permite usar modelos de reconocimiento de imágenes en alguna de las siguientes placas: ESP32-S3 Sense, Grove Vision AI V2, Nvidia Jetson, reCamera y SenseCap 1102. Sin embargo, los ingenieros de Seeed Studio están desarrollando compatibilidad con más placas y la integración de nuevos sensores, como micrófonos y acelerómetros, para admitir modelos basados en datos de audio y movimiento, lo que ampliará enormemente sus posibilidades de aplicación.

Fig. 2. SenseCraft AI es la plataforma de desarrollo de aplicaciones ML de Seeed Studio

Para que veas cuan fácil es crear una aplicacion con SenseCraft te muestro como hacer un prototipo de la cerradura inteligente en 10 minutos.

Fig. 3. Concepto de cerradura inteligente con reconocimiento facial

Creando una aplicación

Vamos a ver ahora cómo sería el procedimiento o el flujo de trabajo para crear (de una manera simplificada) la aplicación de la cerradura inteligente. Lo puedes ver en el siguiente video o leerlo mas abajo:

Lo primero es abrir la página de SenseCraft AI. Si ya creaste un usuario, ingresa tu nombre y contraseña, sino tendrás que crearte una cuenta.

Fig. 4. Pantall inicial de SenseCraft AI

SenseCraft tiene una gran cantidad de modelos preentrenados (Pretrained models) en los que se denomina el Zoo de modelos. En este caso, como la cerradura debe funcionar sólo con mi cara, tendré que entrenar uno específico, así seleccionaré en el menú principal la opción Training (Entrenamiento).

Fig. 5. Selección del tipo de modelo

Antes de continuar debemos elegir el tipo de modelo. A la izquierda puedes ver dos posibilidades: Classification (Clasificación) y Object Detection (Detección de objetos). Ya volveremos luego mas en detalle sobre qué significa cada uno, por ahora sólo vamos a elegir el primero.

Si bien las imágenes usadas para entrenar el modelo se pueden tomar con la cámara de la computadora, es conveniente capturarlas con el mismo dispositivo que se empleará luego para realizar las inferencias.

Teniendo en cuenta lo anerior, selecciono como fuente XIAO ESP32-S3:

Fig. 6. Preparando para capturar imágenes

A continuación SenseCraft intentará conectar con la placa, así que me pedirá que le confirme el puerto donde está conectada.

Fig. 7. Conectando con la placa

Entrenamiento

El modelo clasificador tiene la tarea de organizar las imágenes que recibe en categorías predefinidas. Para lograrlo, primero debemos entrenarlo para que pueda distinguir entre ellas correctamente. En este ejemplo, crearé dos clases: «Ernesto», que representará mi rostro, y «Nadie», que se usará cuando no haya ninguna persona frente a la cámara.

Para ello uso la cámara de la S3 Sense pulsando Hold To Record para capturar cada imagen. Tomo 20 imágenes para la primer clase y 10 para la segunda, no son muchas imágenes pero alcanzan para hacer una prueba rápida.

Fig. 8. Conjuntos de imágenes para entrenamiento

Una vez completada la captura de los conjuntos de imágenes, pulso el botón Start to Training para que SenseCraft realice el proceso de entrenamiento.

Implementación

El entrenamiento demora unos momentos y al finalizar tenemos el modelo listo para instalar en la placa pulsando Deploy to device.

Fig. 9. Implementación o deployment del modelo

SenseCraft copia un firmware especial y el modelo a la memoria Flash de la placa para que luego la podamos usar aunque ya no esté conectada.

Fig. 10. Grabación del firmware y modelo en la placa

Terminado el proceso podemos probar el modelo en funcionamiento.

Fig. 11. Prueba del modelo

Disparando acciones

Volviendo al proyecto de la cerradura, haremos una implementación super simplificada: Cuando detecte mi cara haré que se prenda el led incorporado en la placa XIAO. Podríamos hacer lo mismo con un pin GPIO para activar un relé que actúe sobre la traba de la puerta, pero a los fines de demostrar el funcionamiento de la plataforma es suficiente.

Para ello SenseCraft cuenta con las funciones de Trigger que pueden disparar distintas acciones cuando se cumple una condición. En este caso agregaré un trigger para que cuando el modelo detecte la clase «Ernesto» con un nivel de confianza mayor al 70% prenda el led y sino que se mantenga apagado:

Fig. 12. Agregando un trigger

Esta es una de las características sobresalientes de SenseCraft que lo diferencian de otras plataformas o aplicaciones similares y lo hacen tan sencillo de usar para aplicaciones de Machine Learning.

En este video se puede ver el funcionamiento del led, que se enciende cuando la cámara detecta mi cara y se apaga en caso contrario.

Conclusiones

SenseCraft AI es una plataforma diseñada para el desarrollo de aplicaciones de Machine Learning que facilita cada etapa del proceso, desde la selección del modelo hasta su entrenamiento, prueba e implementación. Además, ofrece una amplia variedad de modelos preentrenados, lo que permite utilizarlos directamente sin necesidad de entrenar uno propio.

Gracias a estas características, SenseCraft se convierte en una herramienta poderosa para desarrollar proyectos sin requerir conocimientos avanzados en Machine Learning.

En este artículo, exploramos sus principales funcionalidades y creamos una aplicación sencilla paso a paso para demostrar su facilidad de uso. En próximas publicaciones, profundizaremos en aspectos más específicos y exploraremos nuevas aplicaciones de la plataforma.

Como siempre, ojalá que el artículo te haya sido de utilidad. Si tienes dudas o sugerencias, puedes dejarlas mas abajo en la sección de comentarios. Hasta la próxima!

1 comentario en «Crea aplicaciones de Machine Learning con SenseCraft AI. Parte 1»

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.