Este repositorio contiene una herramienta para capturar y analizar movimientos utilizando la cámara del equipo o un dispositivo móvil. El seguimiento se realiza con Mediapipe y OpenCV y está orientado a estudiantes e investigadores de Ingeniería Biomédica. Los datos pueden procesarse en tiempo real o de forma posterior a partir de archivos guardados.
- Seguimiento en tiempo real usando Mediapipe y OpenCV.
- Captura de video desde la cámara del equipo o de un teléfono móvil.
- Extracción de puntos clave (tobillos, rodillas, caderas, hombros, codos, muñecas y centro de gravedad).
- Guardado de datos en archivos CSV para análisis posterior.
- Análisis de movimientos con herramientas de correlación y visualización.
- Matriz de correlaciones y mapas de calor del esqueleto.
- Interfaz gráfica opcional mediante Dash.
- Múltiples modos de operación:
- track: captura y seguimiento en tiempo real.
- analyze: análisis de datos previamente guardados.
- corr: cálculo y visualización de correlaciones entre movimientos.
biomedical_workshops/
├── main.py # interfaz por consola
├── dash_app.py # interfaz gráfica con Dash
├── README.md
├── requirements.txt
├── tests/ # pruebas automatizadas
└── src/
├── tracking.py
├── corr.py
└── analysis.py
-
Clona el repositorio:
git clone https://github.com/manuelmariscal/biomedical_workshops.git cd biomedical_workshops
-
Crea un entorno virtual y actívalo:
python -m venv bioworkshops # En Windows: bioworkshops\Scripts\activate # En Unix o macOS: source bioworkshops/bin/activate
-
Instala las dependencias:
pip install -r requirements.txt
La herramienta funciona en tres modos: track
, analyze
y corr
. Puedes elegir el modo con el argumento --mode
.
Para ejecutar el seguimiento en tiempo real:
python main.py --mode track --source 0
Donde 0
es la cámara por defecto del equipo. También puedes indicar una URL o el índice de otra cámara.
Para analizar datos almacenados:
python main.py --mode analyze --data_folder data
Este modo procesa los archivos CSV de la carpeta indicada y genera gráficos y métricas.
Para calcular y visualizar correlaciones entre movimientos:
python main.py --mode corr --data_folder data
El programa calcula matrices de correlación y muestra mapas de calor del esqueleto utilizando los archivos CSV encontrados en data_folder
.
--mode
: modo de operación (track
,analyze
ocorr
).--source
: fuente de video (por ejemplo0
para la cámara local). Sólo en el modotrack
.--data_folder
: carpeta donde se guardan o leen los archivos CSV. Se usa enanalyze
ycorr
.
La aplicación guarda las coordenadas de los puntos clave en archivos CSV dentro de data_folder
. A partir de ellos se generan distintas visualizaciones según el modo elegido:
-
Modo
track
:- Muestra el esqueleto en tiempo real.
- Guarda las coordenadas para revisarlas más adelante.
-
Modo
analyze
:- Grafica los movimientos registrados.
- Genera animaciones para comparar ejecuciones válidas e inválidas.
- Calcula correlaciones entre movimientos.
-
Modo
corr
:- Muestra matrices de correlación entre pares de movimientos.
- Dibuja un mapa de calor del esqueleto con las correlaciones promedio.
- Las gráficas se muestran juntas para facilitar la interpretación.
Para ejecutar el modo corr
analizando los archivos dentro de data
:
python main.py --mode corr --data_folder data
Puedes lanzar una pequeña aplicación web para elegir el modo de ejecución sin utilizar la consola:
python dash_app.py
El servidor se inicia en http://127.0.0.1:8050/
y desde allí podrás seleccionar el modo, la carpeta de datos y el número máximo de frames.
El repositorio incluye pruebas con pytest
. Para ejecutarlas:
pytest
¡Se agradecen las contribuciones! Abre un issue o un pull request y procura incluir pruebas cuando sea posible.
Este proyecto está disponible bajo la licencia MIT.
Este proyecto utiliza las siguientes bibliotecas:
Para más información visita el repositorio del proyecto.