Skip to content

FacundoMajda/tlp3-tpfinal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reconocimiento de Dígitos con CNN - Trabajo Práctico Final

Este proyecto implementa un sistema completo de reconocimiento de dígitos manuscritos utilizando una Red Neuronal Convolucional (CNN) entrenada con el dataset MNIST.

🚀 Descripción

El sistema permite a los usuarios dibujar dígitos (0-9) en una interfaz web interactiva y obtener predicciones en tiempo real utilizando un modelo de inteligencia artificial entrenado.

📁 Estructura del Proyecto

tlp3-tpfinal/
├── client/           # Frontend React + Vite
├── server/           # Backend FastAPI + TensorFlow
├── train/            # Notebook de entrenamiento del modelo

🛠️ Tecnologías Utilizadas

Frontend

  • React 19 - Biblioteca de JavaScript para la interfaz de usuario
  • Vite - Herramienta de construcción y desarrollo
  • Axios - Cliente HTTP para comunicación con el backend

Backend

  • FastAPI - Framework web moderno y rápido para Python
  • TensorFlow/Keras - Framework de machine learning
  • NumPy - Computación numérica

Machine Learning

  • CNN (Convolutional Neural Network) - Arquitectura de red neuronal
  • MNIST Dataset - Dataset de dígitos manuscritos
  • Google Colab - Plataforma de entrenamiento (recomendada)

Detalles

  • El servidor estará disponible en http://localhost:8000
  • La aplicación web estará disponible en http://localhost:5173

🧠 Entrenamiento del Modelo

El modelo CNN fue entrenado usando el notebook train/CNN.ipynb. Se recomienda encarecidamente ejecutar el entrenamiento en Google Colab para aprovechar las GPU gratuitas y el entorno optimizado.

Características del modelo

  • Arquitectura CNN con capas convolucionales y de pooling
  • Normalización por lotes (Batch Normalization)
  • Dropout para prevenir overfitting
  • Precisión de entrenamiento: ~99%
  • Precisión de validación: ~98%

🎮 Uso de la Aplicación

  1. Accede a la aplicación web en tu navegador
  2. Dibuja un dígito (0-9) en el canvas interactivo
  3. Ajusta el tamaño del pincel si es necesario
  4. Haz clic en "Predecir" para obtener el resultado
  5. Usa "Limpiar" para borrar el canvas y dibujar un nuevo dígito

📊 API Endpoints

  • GET / - Verificación de salud del servidor
  • POST /predict - Predicción de dígitos
  • GET /metrics - Métricas del modelo
  • GET /info - Información del sistema

👥 Autores

Este proyecto fue desarrollado como como Trabajo Práctico Final - TLP3 2025

  • Majda, Facundo.
  • Sanchez, Ramiro.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors