Este proyecto analiza imágenes de resultados de carreras de Fórmula 1 para extraer los nombres de los pilotos y calcular sus puntos según sus posiciones en cada carrera. Utiliza Python, OpenCV y EasyOCR para el reconocimiento de texto y procesamiento de imágenes, y matplotlib para graficar los resultados de pilotos y equipos.
- Python 3.x
- OpenCV (
opencv-python) - EasyOCR (
easyocr) - NumPy (
numpy) - RapidFuzz (
rapidfuzz) - Matplotlib (
matplotlib) - mplcursors (
mplcursors)
- Clonar el repositorio
git clone https://github.com/usuario/F1-Standings-Analyzer.git
cd F1-Standings-Analyzer- Crear y activar el entorno virtual
python -m venv venvEn Windows:
.\venv\Scripts\activateEn macOS/Linux:
source venv/bin/activate- Instalar dependencias
pip install -r requirements.txt- Descargar los archivos de entrada
Coloca las imágenes de resultados de carreras en la carpeta Assets/ con el nombre del país seguido de .png. Por ejemplo:
Assets/Australia.png
Assets/China.png
Assets/Japan.png- Ejecutar el programa
python main.py- Detección de Pilotos: Identifica los nombres de los pilotos en las imágenes de resultados usando EasyOCR y filtra los nombres más probables utilizando RapidFuzz para corregir errores de reconocimiento.
- Asignación de Puntos: Calcula los puntos de cada piloto y equipo según su posición en las carreras.
- Visualización de Resultados: Genera gráficos interactivos para los standings de pilotos y constructores usando matplotlib.
- standings.py: Procesa las imágenes para extraer los nombres de los pilotos y corrige errores de OCR usando RapidFuzz.
- f1_data.py: Calcula los puntos de los pilotos y equipos y genera gráficos para visualizar los standings.
- main.py: Ejecuta el flujo completo de procesamiento de imágenes y generación de gráficos.
- Mejorar la precisión del OCR para nombres cortos y en condiciones de baja calidad.
- Implementar un sistema de clasificación de pilotos más robusto usando aprendizaje automático.
- Añadir soporte para más categorías de clasificación como vueltas rápidas y poles.