Librería de visión artificial para seguimiento y conteo de repeticiones en ejercicios físicos usando MediaPipe.
Project description
🏋️ trackerfit
Librería de visión artificial para el seguimiento, análisis y conteo automático de repeticiones en ejercicios físicos usando MediaPipe y OpenCV.
✅ Requisitos
- Python >= 3.8
- pip >= 21.0
🚀 Instalación
Desde PyPI
pip install trackerfit
Desde un repositorio local
git clone https://github.com/4lverto/trackerfit.git
cd trackerfit
pip install -e .
📦 Características
- Detecta automáticamente poses humanas con MediaPipe
- Calcula ángulos articulares en tiempo real
- Cuenta repeticiones mediante lógica configurable
- Permite entrada por cámara o vídeo
- Visualización dinámica del ángulo y triángulo codificado por color
- Exportación del historial de sesión (ángulo, reps, landmarks, timestamp)
- Arquitectura modular y extensible
🧠 Ejercicios soportados
| Ejercicio | Landmarks utilizados |
|---|---|
| Curl de bíceps | Hombro – Codo – Muñeca |
| Sentadilla | Cadera – Rodilla – Tobillo |
| Flexiones | Hombro – Codo – Muñeca |
| Press militar | Cadera – Hombro – Muñeca |
| Extensión de cuádriceps | Cadera – Rodilla – Tobillo |
| Crunch abdominal | Cadera – Abdomen – Cabeza |
| Tríceps dip | Hombro – Codo – Muñeca |
| Elevación lateral | Cadera – Hombro – Muñeca |
⚙️ Uso básico
from trackerfit import SessionManager, TipoEntrada
# Crear y configurar la sesión
manager = SessionManager()
manager.iniciar_sesion(
tipo=TipoEntrada.CAMARA,
nombre_ejercicio="curl_bicep"
)
# Esperar a que el usuario finalice
while manager.sesion_activa():
pass
# Obtener repeticiones y resumen
reps = manager.obtener_repeticiones()
resumen = manager.generar_resumen(reps)
print(resumen)
🎨 Visualización en tiempo real
La librería muestra en la ventana de OpenCV:
Landmarks del cuerpo detectados
Un triángulo sobre el ángulo evaluado:
🔴 Rojo si no se ha alcanzado el rango válido
✅ Verde si el ángulo es válido para contar una repetición
Valor numérico del ángulo en grados
📁 Estructura de la librería
trackerfit/
├── ejercicios/ # Clases para cada tipo de ejercicio
├── session/ # Entrada por vídeo o cámara + gestión de sesiones
├── tracker/ # Wrapper de MediaPipe
├── utils/ # Cálculo de ángulos, enums
├── factory.py # Devuelve el ejercicio correspondiente
📂 Ejemplos
Puedes encontrar ejemplos de uso real en la carpeta /examples:
usar_camera.py: inicia una sesión desde la cámara.usar_video.py: procesa un vídeo local de ejercicio.
🧪 Tests
Usa pytest para validar funcionalidades mínimas:
pytest
📜 Licencia
Este proyecto está licenciado bajo la MIT License.
👤 Autor
Desarrollado por Alberto Ortega Vílchez Grado en Ingeniería Informática Universidad de Granada
🌐 Recursos
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file trackerfit-0.2.3.tar.gz.
File metadata
- Download URL: trackerfit-0.2.3.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
927c9c0b175c6cfc52d4568174e32eff0278a0227f772a16aba60a2375d4623f
|
|
| MD5 |
ce461311ad49efcce147090801bd4d82
|
|
| BLAKE2b-256 |
be87d776acba39d5aa28b17e75ab417a213f6a5c4e79cdcaa79108ab5d035527
|
File details
Details for the file trackerfit-0.2.3-py3-none-any.whl.
File metadata
- Download URL: trackerfit-0.2.3-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c231da2bf8ebb5c0bc0dd9f8763927fe22e4b0a067f41164e42d20bb3798a4f7
|
|
| MD5 |
711efd0bf8fe431890eca285f0564532
|
|
| BLAKE2b-256 |
7501d78344f939bb9043b7a36cb483339162a2903bed994442eb2978b0de3611
|