Proyecto: Reconocimiento de Dibujos (Pictionary AI)

  1. Contexto y Motivación La génesis de este proyecto nace de una curiosidad fundamental sobre la percepción humana frente a la artificial: ¿cómo es posible que un ser humano reconozca instantáneamente que tres líneas mal trazadas representan un "gato", mientras que para una computadora esto es solo una matriz de píxeles desordenada? La motivación principal es cerrar esa brecha semántica, explorando la intersección entre la creatividad humana —expresada a través del bosquejo rápido o "doodle"— y la capacidad de visión por computadora. El problema que se aborda no es solo técnico, sino de traducción: enseñar a una máquina a interpretar la abstracción y la imperfección inherente al dibujo a mano alzada, similar a como lo hacemos en una partida del juego Pictionary.
  2. Antecedentes e Investigación Para fundamentar este desarrollo, se realizó una investigación sobre el estado del arte en el reconocimiento de bocetos (sketch recognition). El referente más importante encontrado fue el experimento "Quick, Draw!" de Google, que ha generado el conjunto de datos de dibujos más grande del mundo. Se analizaron papers académicos sobre el uso de Redes Neuronales Convolucionales (CNN) para la clasificación de imágenes, notando que, a diferencia de las fotografías realistas (como en ImageNet), los dibujos carecen de textura y color, dependiendo casi exclusivamente de la forma y la topología. Tecnologías similares suelen utilizarse en interfaces de diseño asistido y reconocimiento de escritura a mano, pero este proyecto se centra específicamente en la naturaleza lúdica y ambigua de los dibujos rápidos.
  3. Propuesta y Objetivos La propuesta central consiste en entrenar un modelo de Deep Learning capaz de clasificar dibujos realizados por usuarios en tiempo real dentro de un conjunto limitado de categorías (por ejemplo: reloj, manzana, avión, etc.). A diferencia de los modelos genéricos masivos, el objetivo aquí es optimizar la red para un entorno de recursos limitados, buscando un equilibrio entre precisión y velocidad de inferencia. Se busca demostrar que una arquitectura eficiente puede distinguir entre formas visualmente similares (como una "rueda" y una "dona") entendiendo las características espaciales del trazo, proporcionando una base sólida para futuras aplicaciones de gamificación.
  4. Metodología El proyecto fue construido utilizando Python como lenguaje base, aprovechando el ecosistema de TensorFlow y Keras para la arquitectura de la red neuronal. Datos: Se utilizó un subconjunto del dataset Quick Draw de Google (formato .npy), seleccionando clases específicas para el entrenamiento. Preprocesamiento: Las imágenes se normalizaron a una escala de grises de 28x28 píxeles (similar al dataset MNIST) para reducir la carga computacional sin perder información estructural crítica. Arquitectura: Se diseñó una Red Neuronal Convolucional (CNN) secuencial con capas de convolución para la extracción de características, Max Pooling para la reducción de dimensionalidad y capas densas con activación Softmax para la clasificación final.
  5. Proceso de Desarrollo El desarrollo siguió un enfoque iterativo. Inicialmente, el modelo sufría de overfitting (sobreajuste), memorizando los dibujos de entrenamiento pero fallando con trazos nuevos. Para solucionar esto, se tomaron decisiones clave como la implementación de capas de Dropout y la técnica de Data Augmentation, rotando y desplazando ligeramente los dibujos de entrenamiento para obligar a la red a generalizar mejor. Uno de los mayores desafíos fue la limpieza de datos, ya que el dataset original contiene "ruido" (dibujos que no corresponden a la etiqueta o están incompletos), lo que obligó a realizar una etapa de filtrado manual y estadístico para asegurar la calidad de la entrada.
  6. Resultados y Análisis Tras el entrenamiento, el modelo alcanzó una precisión (accuracy) satisfactoria en el conjunto de validación, demostrando ser capaz de distinguir correctamente entre las categorías seleccionadas la mayor parte del tiempo. Las pruebas de inferencia muestran que el modelo es robusto ante variaciones en el grosor del trazo, aunque todavía presenta dificultades con dibujos que rotan significativamente el objeto o con categorías que comparten formas geométricas básicas (como confundir un "balón de fútbol" con una "pizza"). La evidencia recopilada a través de la matriz de confusión indica que el modelo ha aprendido exitosamente a abstraer las características principales de cada objeto, validando la hipótesis inicial.
  7. Reflexión Crítica Este proyecto permitió consolidar el aprendizaje sobre cómo las redes convolucionales "ven" el mundo simplificado de los trazos. Una lección crítica fue entender que la calidad de los datos supera a la complejidad del modelo; un modelo simple con datos limpios funciona mejor que uno complejo con datos sucios. Si tuviera que empezar de nuevo, implementaría una red neuronal recurrente (RNN) para analizar no solo la imagen final, sino la secuencia de los trazos (el orden en que se dibuja), lo cual añadiría una capa temporal de información. Next Steps: Los siguientes pasos incluyen desplegar el modelo en una aplicación web interactiva usando TensorFlow.js para permitir que los usuarios dibujen en el navegador y reciban predicciones en tiempo real.

Proyecto: Reconocimiento de Dibujos (Pictionary AI) – En desarrollo

1. Contexto y Motivación El proyecto nace de una curiosidad esencial: ¿cómo logra un humano reconocer instantáneamente que tres líneas torpes representan un “gato”, mientras que para una máquina eso es solo ruido de píxeles? La motivación es explorar la brecha entre la creatividad humana expresada en dibujos rápidos y la capacidad de una inteligencia artificial para interpretar esa abstracción e imperfección, tal como ocurre en una partida de Pictionary.

2. Antecedentes e Investigación Se estudió el estado del arte en reconocimiento de bocetos, destacando el proyecto “Quick, Draw!” de Google como principal referencia y fuente del mayor dataset público de dibujos a mano alzada. Se revisaron trabajos académicos sobre CNN aplicadas a clasificación de imágenes y se constató que los dibujos, al carecer de color y textura, dependen casi exclusivamente de la forma y la topología del trazo.

3. Propuesta y Objetivos El objetivo final es desarrollar un modelo de Deep Learning capaz de clasificar en tiempo real dibujos a mano alzada dentro de un conjunto limitado de categorías (reloj, manzana, avión, etc.), optimizado para funcionar en dispositivos con recursos limitados y con alta velocidad de inferencia. Se busca crear una base sólida para futuras aplicaciones interactivas y gamificadas.

4. Metodología (en curso)

5. Proceso de Desarrollo (estado actual) El proyecto se encuentra en fase activa de desarrollo. Hasta el momento se ha avanzado en la preparación inicial del dataset y en pruebas preliminares de arquitecturas simples. Sin embargo, el entrenamiento completo del modelo, la optimización contra overfitting (Dropout, Data Augmentation) y la limpieza exhaustiva de datos no han podido completarse aún debido a falta de conocimiento avanzado en ciertas técnicas, tiempo suficiente y recursos materiales (principalmente capacidad computacional).

6. Resultados y Análisis Por el momento no se dispone de resultados definitivos ni métricas de precisión, ya que el modelo aún no ha sido entrenado completamente. Las pruebas exploratorias realizadas muestran potencial, pero también las limitaciones esperadas al trabajar con dibujos muy ambiguos o rotados.

7. Reflexión Crítica Este proyecto, aunque incompleto, ha sido una valiosa experiencia de aprendizaje sobre visión por computadora y las dificultades reales de trabajar con datos de dibujos a mano alzada. Se ha confirmado que la calidad y limpieza de los datos son críticas, y que un modelo eficiente requiere tanto buen diseño como suficientes recursos para entrenarlo adecuadamente —aspectos que, por limitaciones de conocimiento, tiempo y hardware, no han podido abordarse completamente en esta etapa.

Next Steps (planificados)

El proyecto sigue vivo y en desarrollo activo; se retomará tan pronto se disponga del tiempo, conocimiento y recursos necesarios para llevarlo a su versión final.