Selección e Instalación de Modelos YOLO para Detección de Objetos
Clase 7 de 16 • Curso de Visión Artificial con Python
Resumen
La detección de objetos es una tecnología fundamental en el campo de la visión por computadora, permitiendo a las máquinas identificar y localizar elementos específicos dentro de imágenes o videos. En el contexto de negocios minoristas, esta capacidad resulta invaluable para analizar el comportamiento de los clientes y optimizar operaciones. Veamos cómo implementar un sistema de conteo de personas utilizando modelos de detección de objetos de Ultralytics.
¿Cómo seleccionar el modelo adecuado para detección de objetos?
Ultralytics ofrece cinco modelos diferentes para la detección de objetos, cada uno con características específicas que los hacen más o menos adecuados según el caso de uso. Estos modelos varían en tamaño y complejidad:
- YOLOv11n (nano): El más pequeño y menos complejo
- YOLOv11s (small): Tamaño pequeño
- YOLOv11m (medium): Tamaño mediano
- YOLOv11l (large): Tamaño grande
- YOLOv11xl (extra large): El más grande y complejo
Todos estos modelos comparten el mismo tamaño de imagen de entrada (640x640 píxeles), pero difieren significativamente en otros aspectos:
- MAP (Mean Average Precision): Aumenta con la complejidad del modelo
- Latencia: Tanto en CPU como en GPU T4, incrementa conforme crece la complejidad
- Parámetros: Desde 2.6 millones en el modelo nano hasta 56.9 millones en el XL
- FLOPS (operaciones de punto flotante): Medida de rendimiento que indica cuántas operaciones se necesitan para procesar una imagen
Para entornos con hardware limitado donde se puede tolerar cierta latencia, el modelo YOLOv11n resulta la opción más adecuada por su menor complejidad y requisitos de recursos.
¿Cómo implementar la detección de objetos con Ultralytics?
Para implementar la detección de objetos utilizando Ultralytics, necesitamos seguir estos pasos:
Instalación de dependencias
Lo primero es instalar la librería Ultralytics en nuestro entorno:
# Instalación de la librería
!pip install ultralytics
Descarga del modelo pre-entrenado
Existen dos formas principales de descargar el modelo YOLOv11n:
- Método directo usando la librería:
from ultralytics import YOLO
# Descarga del modelo YOLOv11n
model = YOLO('yolov11n')
Es importante notar que "YOLO" se escribe con mayúsculas, mientras que "yolov11n" va en minúsculas.
- Método alternativo usando wget (Plan B):
Si el método anterior falla, podemos descargar el modelo directamente desde su URL:
!wget https://github.com/ultralytics/assets/releases/download/v8.1.0/yolov11n.pt
Una vez descargado el modelo, podemos cargarlo directamente desde el archivo local:
model = YOLO('yolov11n.pt')
Esto evita tener que descargar el modelo nuevamente cada vez que ejecutemos nuestro código.
Características del modelo pre-entrenado
El modelo YOLOv11n viene pre-entrenado con el dataset COCO, lo que le permite detectar 80 tipos de objetos comunes, incluyendo:
- Personas
- Animales (gatos, perros, etc.)
- Vehículos
- Diferentes tipos de comida
- Objetos cotidianos
Esta capacidad de detección previa hace que el modelo sea inmediatamente útil para muchas aplicaciones, incluido el conteo de personas en un establecimiento comercial.
¿Cómo aplicar la detección de objetos al conteo de personas?
Para el caso específico de nuestro cliente en SecurityVision AI, que ya conoce cómo se desplazan las personas en su local pero ahora necesita contarlas, la implementación del modelo YOLOv11n resulta ideal.
Beneficios de esta solución:
- Bajo consumo de recursos: Al utilizar el modelo más pequeño, podemos implementarlo incluso en hardware con limitaciones.
- Precisión adecuada: Aunque no es el modelo más preciso, ofrece un balance adecuado entre rendimiento y recursos.
- Facilidad de implementación: Con pocos pasos podemos tener un sistema funcional.
Una vez implementado el modelo, podemos procesar el video de las cámaras de seguridad para detectar y contar personas en tiempo real, proporcionando información valiosa para la toma de decisiones comerciales.
La detección de objetos con Ultralytics representa una solución potente y accesible para el conteo de personas en entornos comerciales. ¿Has implementado alguna vez sistemas de visión por computadora en tus proyectos? Comparte tu experiencia en los comentarios.