openprosthesis-emg-protoai
https://github.com/israelhuentecura/openprosthesis-emg-protoai
Science Score: 39.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (2.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: IsraelHuentecura
- License: other
- Language: Jupyter Notebook
- Default Branch: main
- Size: 1.35 GB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Clasificacin de Gestos sEMG con Modelos Ligeros de Deep Learning
Este repositorio contiene los modelos .h5, el cdigo y las herramientas desarrolladas para clasificar 12 gestos de la mano a partir de seales de electromiografa de superficie (sEMG), como parte del proyecto de ttulo de Israel Huentecura en el contexto de ProtoAI.
El objetivo es proveer modelos de alto rendimiento y bajo costo computacional, especialmente diseados para ser desplegados en dispositivos de bajo consumo como Raspberry Pi o microcontroladores ms potentes.
Qu Modelo Deberas Usar?
La eleccin del modelo depende del hardware donde se quiera ejecutar:
Para Computadores Monoplaca (Ej. Raspberry Pi, Jetson Nano)
| Modelo | Precisin (Test) | Tamao .h5 |
| ------------------- | ----------------- | ------------ |
| HyT-Net | 99.83% 0.02 | ~10.4 MB |
| DualStream-Original | 99.82% 0.03 | ~36.6 MB |
| EMGHandNet-Original | 99.80% 0.02 | ~19.8 MB |
** Recomendado: HyT-Net**, por su precisin mxima con menor tamao que los modelos de referencia.
Para Microprocesadores (ESP32)
| Modelo | Precisin (Test) | Tamao .h5 |
| ----------------- | ----------------- | ------------ |
| EMGHandNet-2D | 99.78% 0.03 | ~4.2 MB |
| DualStream-Lite | 99.41% 0.03 | ~3.4 MB |
| CRNN-Attn | 98.55% 0.15 | ~3.6 MB |
** Recomendado: EMGHandNet-2D*, el mejor balance entre precisin, arquitectura simple (end-to-end*) y tamao reducido.
Ten en cuenta que actualmente estos modelos no estn preparados para microcontroladores sin conversin a TFLite o cuantizacin. Este repositorio se centra en desarrollo y evaluacin en entorno de entrenamiento.
Contenido del Repositorio
bash
models_h5/ # Modelos pre-entrenados en formato .h5
models_tflite/ # Modelos convertidos a TFLite
saved_datasets/ # Dataset de entrenamiento y prueba (debes descargarlo)
test_data_sample/ # Dataset de prueba (no debe ser descargado)
script_test_h5.py # Evala todos los modelos .h5 con un dataset de muestra
ejemplo_finetuning.py # Fine-tuning del modelo HyT-Net
notebook_entrenamiento.ipynb # Notebook para construir y entrenar modelos desde cero
requirements.txt # Dependencias necesarias
Cmo Empezar
0. Descarga el Dataset Procesado
Debes descargar el dataset preprocesado de elaboracin propia desde el siguiente enlace: Dataset Procesado
Descomprime el archivo y obtendrs la carpeta saved_datasets/ con los datasets de entrenamiento y prueba.
La carpeta debe estar en la raz del repositorio para que los scripts puedan acceder a ella.
1. Instala dependencias
Usa un entorno virtual y ejecuta:
bash
pip install -r requirements.txt
Este proyecto est probado en Python 3.9 y usa TensorFlow 2.10.0.
2. Descarga el Dataset Procesado
Debes tener una carpeta saved_datasets/ con los siguientes datasets:
train_ds_h/ytest_ds_h/: para entrenamiento y pruebasample_raw_ds/ysample_hybrid_ds/: para pruebas rpidas
Agrega tu link de descarga aqu para que otros puedan acceder a estos datos.
Opciones de Uso
A. Evaluar Modelos .h5 Rpidamente
bash
python script_test_h5.py
Este script evala los modelos preentrenados con un dataset pequeo y muestra un resumen de precisin por modelo.
B. Entrenar Desde Cero
Abre el notebook:
bash
jupyter lab
Edita y ejecuta notebook_entrenamiento.ipynb para construir modelos desde cero.
C. Fine-tuning Personalizado
Para adaptar un modelo preentrenado (ej. HyT-Net) a nuevos datos:
bash
python ejemplo_finetuning.py
El script:
- Carga el modelo preentrenado
- Congela las capas base
- Reentrena las ltimas capas con una tasa de aprendizaje baja (
1e-5) por 10 pocas - Evala el nuevo rendimiento
Puedes modificar
ejemplo_finetuning.pypara aplicar fine-tuning a otros modelos.
Resultados Tcnicos (Resumen)
| Modelo | Test Accuracy ( ) | Tamao .h5 | Entradas Requeridas |
| ------------------- | ------------------- | ------------ | ------------------------- |
| HyT-Net | 0.9983 0.0002 | ~10.4 MB | Seales crudas + features |
| DualStream-Original | 0.9982 0.0003 | ~36.6 MB | Seales crudas + features |
| EMGHandNet-Original | 0.9980 0.0002 | ~19.8 MB | Seales crudas |
| EMGHandNet-2D | 0.9978 0.0003 | ~4.2 MB | Seales crudas |
| DualStream-Lite | 0.9941 0.0003 | ~3.4 MB | Seales crudas + features |
| CRNN-Attn | 0.9855 0.0015 | ~3.6 MB | Seales crudas + features |
Fuente: Evaluacin sobre NinaPro DB1 - Ejercicio A, siguiendo protocolo de validacin cruzada 10-fold.
Referencias
- Trabajo asociado:
Lightweight Deep Learning Models for sEMG-based Hand Gesture Classification on Low-Resource Devices - Dataset base: NinaPro DB1
- Dataset preprocesado: Dataset Procesado
- Proyecto madre: ProtoIA
Autora
Desarrollado por Israel Huentecura Rodrguez
Licencia
Este repositorio est licenciado bajo la Licencia Creative Commons Atribucin-NoComercial 4.0 Internacional (CC BY-NC 4.0).
Esto significa que puedes usar, modificar y compartir este trabajo con fines no comerciales, siempre que cites al autor original. Para usos comerciales, por favor contacta a israel.huentecura@mayor.cl.
Owner
- Login: IsraelHuentecura
- Kind: user
- Repositories: 1
- Profile: https://github.com/IsraelHuentecura
GitHub Events
Total
- Push event: 1
Last Year
- Push event: 1