Introducción al Experimento
En este experimento de laboratorio, exploramos el rendimiento de modelos YOLO (You Only Look Once) para detección de objetos en visión por computadora. YOLO es una familia de algoritmos de deep learning conocidos por su velocidad y precisión en tiempo real. Probamos YOLOv5 y YOLOv8 en un dataset simulado de 1000 imágenes de objetos cotidianos (personas, coches, animales), midiendo métricas clave como precisión (mAP), velocidad de inferencia y uso de memoria.
El objetivo es determinar cuál modelo es más adecuado para aplicaciones móviles vs. de servidor, y documentar hallazgos para futuras iteraciones.
Metodología
Configuración del Entorno
- Hardware: CPU Intel i7, GPU NVIDIA RTX 3060 (8GB VRAM).
- Software: Python 3.9, PyTorch 1.12, Ultralytics YOLO library.
- Dataset: COCO-like simulado con anotaciones bounding boxes.
- Modelos Probados:
- YOLOv5s (versión pequeña, optimizada para velocidad).
- YOLOv8n (nano, ultra-ligera para dispositivos edge).
Proceso de Prueba
- Entrenamiento: 50 epochs con learning rate 0.01, batch size 16.
- Validación: Métricas en conjunto de test (20% del dataset).
- Inferencia: Pruebas en tiempo real con webcam simulada.
Resultados
Métricas de Rendimiento
| Modelo | mAP@0.5 | FPS (GPU) | FPS (CPU) | Memoria GPU (MB) | Tamaño Modelo (MB) |
|---|---|---|---|---|---|
| YOLOv5s | 0.85 | 45 | 8 | 1200 | 27 |
| YOLOv8n | 0.82 | 52 | 12 | 800 | 6 |
- Precisión: YOLOv5s supera ligeramente a YOLOv8n en mAP (85% vs. 82%), pero ambos son competitivos.
- Velocidad: YOLOv8n es más rápido en GPU (52 FPS vs. 45), y significativamente mejor en CPU (12 FPS vs. 8), ideal para dispositivos móviles.
- Recursos: YOLOv8n usa menos memoria y es más pequeño, facilitando despliegue en edge computing.
Observaciones Cualitativas
- YOLOv5s detecta mejor objetos pequeños en escenas complejas, pero consume más energía.
- YOLOv8n tiene falsos positivos en iluminación baja, pero es más eficiente para aplicaciones en tiempo real como drones o cámaras de seguridad.
- Tiempo de entrenamiento: YOLOv8n converge más rápido (30 min vs. 45 min para YOLOv5s).
Conclusiones y Recomendaciones
Este experimento demuestra que YOLOv8n es superior para escenarios con restricciones de recursos, mientras que YOLOv5s ofrece mejor precisión para tareas críticas. Recomendaciones:
- Usar YOLOv8n para apps móviles o IoT.
- Explorar YOLOv9 en futuras pruebas para comparar con versiones más nuevas.
- Optimizar hiperparámetros para datasets específicos.
Código fuente y dataset simulado disponibles en el repositorio del LAB. ¡Experimenta y comparte tus resultados!
Referencias:
- Ultralytics YOLO: https://github.com/ultralytics/ultralytics
- Paper YOLOv8: https://arxiv.org/abs/2207.02696