Skip to content

Repository files navigation

SMAMS - Show Me A Mexican Sign

Reconocimiento de Lenguaje de Señas Mexicanas (LSM) en tiempo real, desde la cámara web, con una red neuronal convolucional entrenada sobre un conjunto de datos que capturamos nosotros mismos.

27 clases: los dígitos y el alfabeto dactilológico (0, az).


Cómo funciona

1. Captura y preprocesamientoTrainingDataCollection.py / TestingDataCollection.py

La cámara muestra la imagen en espejo con una región de interés marcada. El usuario coloca la mano dentro del recuadro y presiona la tecla de la seña que está haciendo. Cada captura pasa por:

BGR → escala de grises → desenfoque gaussiano (5×5)
    → umbral adaptativo gaussiano → binarización invertida con Otsu
    → redimensionado a 300×300 → JPEG

El resultado es una silueta binaria de la mano, independiente de la iluminación y del color de piel — que es justo lo que hace que el modelo generalice.

2. EntrenamientoModels/

CNN en TensorFlow/Keras sobre imágenes de 128×128 en escala de grises:

Conv2D(32, 3×3, ReLU) → MaxPool(2×2)
Conv2D(32, 3×3, ReLU) → MaxPool(2×2)
Flatten
Dense(128, ReLU) → Dropout(0.4)
Dense(96,  ReLU) → Dropout(0.4)
Dense(64,  ReLU)
Dense(27,  Softmax)

Optimizador Adam, entropía cruzada categórica, ~4.2M parámetros.


Iteración del modelo

Lo interesante del repositorio no es el modelo final, sino el camino. Models/ conserva las nueve versiones:

Modelo Imágenes de entrenamiento Épocas Exactitud (validación)
1 2,203 5 28%
9 7,003 10 82%

La mayor parte de la ganancia vino de triplicar el conjunto de datos, no de complicar la arquitectura. Los ajustes al modelo (padding same, más épocas, regularización con dropout) aportaron; los datos aportaron más.


Estructura

FoldersCreation.py          Crea el árbol de carpetas del dataset (27 clases)
TrainingDataCollection.py   Captura y preprocesa imágenes de entrenamiento
TestingDataCollection.py    Lo mismo, para el conjunto de prueba
Models/                     Los 9 notebooks y sus modelos entrenados (.h5 / .json)
dataSet/                    Imágenes de entrenamiento y prueba

Requisitos

pip install opencv-python numpy tensorflow

Uso

python FoldersCreation.py          # crear el árbol de carpetas
python TrainingDataCollection.py   # capturar datos: presiona 0, a–z sobre cada seña

Después, abre cualquier notebook de Models/ para entrenar.


Equipo

Proyecto del curso Visión para Robots, Tecnológico de Monterrey, semestre FJ 2023.

About

Reconocimiento de Lenguaje de Señas Mexicanas en tiempo real. CNN en TensorFlow/Keras sobre 27 clases, 82% de exactitud en validación.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages