Conteo de objetos con Ultralytics YOLO26#
¿Qué es el conteo de objetos?#
El conteo de objetos con Ultralytics YOLO26 consiste en identificar y contar con precisión objetos específicos en vídeos y transmisiones de cámaras. YOLO26 destaca en aplicaciones en tiempo real, ya que proporciona un conteo de objetos eficiente y preciso en diversos escenarios, como el análisis de multitudes y la videovigilancia, gracias a sus algoritmos de última generación y sus capacidades de aprendizaje profundo.
Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀
Ventajas del conteo de objetos#
- Optimización de recursos: El conteo de objetos facilita una gestión eficiente de los recursos al proporcionar recuentos precisos y optimizar la asignación de recursos en aplicaciones como la gestión de inventario.
- Mayor seguridad: El conteo de objetos mejora la seguridad y la videovigilancia al realizar un seguimiento y un recuento precisos de las entidades, lo que ayuda a la detección proactiva de amenazas.
- Toma de decisiones informada: El conteo de objetos ofrece información valiosa para la toma de decisiones y optimiza los procesos en el comercio minorista, la gestión del tráfico y otros ámbitos.
Aplicaciones en el mundo real#
| Logística | Acuicultura |
|---|---|
![]() | ![]() |
| Conteo de paquetes en una cinta transportadora con Ultralytics YOLO26 | Conteo de peces en el mar con Ultralytics YOLO26 |
Cuenta objetos con YOLO26#
Define una region — dos puntos para una línea o tres o más para un polígono — y pásala a la solución ObjectCounter. El contador realiza un seguimiento de cada objeto entre fotogramas y contabiliza las entradas y salidas cuando los objetos seguidos cruzan la línea o atraviesan la región, devolviendo un fotograma anotado que puedes escribir en un vídeo de salida.
# Run a counting example
yolo solutions count show=True
# Pass a source video
yolo solutions count source="path/to/video.mp4"
# Pass region coordinates
yolo solutions count region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"El argumento region acepta dos puntos (para una línea) o un polígono con tres o más puntos. Define las coordenadas en el orden en que deben conectarse para que el contador sepa exactamente dónde se producen las entradas y salidas.
Argumentos de ObjectCounter#
Aquí tienes una tabla con los argumentos de ObjectCounter:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta al archivo del modelo YOLO de Ultralytics. |
show_in | bool | True | Indicador que controla si se muestran los recuentos de entradas en la secuencia de vídeo. |
show_out | bool | True | Indicador que controla si se muestran los recuentos de salidas en la secuencia de vídeo. |
region | list o dict | None | Puntos que definen la región de interés, ya sea una lista de tuplas (x, y) o un diccionario que asigne nombres de región a listas de puntos para varias regiones (solo RegionCounter). Cuando None, las soluciones que requieren una región recurren a una región predeterminada. |
line_width | int | 2 | Grosor de línea de las cajas, los puntos clave y los recuentos que dibuja la solución. |
verbose | bool | True | Activa el registro por fotograma de la solución, que incluye la forma de entrada, los recuentos de clases y la velocidad de procesamiento. La llamada de seguimiento en sí siempre es silenciosa. |
La solución ObjectCounter permite utilizar varios argumentos track:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica el algoritmo de seguimiento que se utilizará. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Establece el umbral de confianza para las detecciones; los valores más bajos permiten seguir más objetos, pero pueden incluir falsos positivos. |
iou | float | 0.7 | Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones superpuestas. |
classes | list | None | Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas. |
device | str | None | Especifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite seleccionar entre la CPU, una GPU específica u otros dispositivos de cálculo para ejecutar el modelo. |
imgsz | int or tuple | 640 | Tamaño de imagen de inferencia objetivo: un número entero para una imagen cuadrada o un par (height, width). Las formas se ajustan al paso del modelo. |
max_det | int | 300 | Número máximo de detecciones conservadas por fotograma antes del seguimiento, lo que limita los objetos que procesa una solución en escenas densas. |
quantize | int or str | None | Precisión de inferencia: 16 (FP16) o 32/sin definir (FP32) para los modelos de PyTorch y TorchScript; otros formatos calculan a la precisión que seleccionan su artefacto y su motor de ejecución. Sustituye al indicador obsoleto half. |
Además, se admiten los argumentos de visualización que se indican a continuación:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener información visual inmediata durante el desarrollo o las pruebas. |
show_conf | bool | True | Muestra la puntuación de confianza de cada detección junto a su etiqueta. Permite conocer el grado de certeza del modelo para cada detección. |
show_labels | bool | True | Muestra las etiquetas de cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados. |
Preguntas frecuentes#
Para contar objetos en un vídeo con Ultralytics YOLO26, puedes seguir estos pasos:
- Importa las bibliotecas necesarias (
cv2,ultralytics). - Define la región de conteo (por ejemplo, un polígono, una línea, etc.).
- Configura la captura de vídeo e inicializa el contador de objetos.
- Procesa cada fotograma para seguir los objetos y contarlos dentro de la región definida.
Este es un ejemplo sencillo de conteo en una región:
import cv2 from ultralytics import solutions def count_objects_in_region(video_path, output_video_path, model_path): """Count objects in a specific region within a video.""" cap = cv2.VideoCapture(video_path) assert cap.isOpened(), "Error reading video file" w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)] counter = solutions.ObjectCounter(show=True, region=region_points, model=model_path) while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = counter(im0) video_writer.write(results.plot_im) cap.release() video_writer.release() cv2.destroyAllWindows() count_objects_in_region("path/to/video.mp4", "output_video.avi", "yolo26n.pt")Para configuraciones y opciones más avanzadas, consulta la solución RegionCounter para contar objetos en varias regiones simultáneamente.
- Importa las bibliotecas necesarias (
Utilizar Ultralytics YOLO26 para el conteo de objetos ofrece varias ventajas:
- Optimización de recursos: Facilita una gestión eficiente de los recursos al proporcionar recuentos precisos, lo que ayuda a optimizar la asignación de recursos en sectores como la gestión de inventario.
- Mayor seguridad: Mejora la seguridad y la videovigilancia al realizar un seguimiento y un recuento precisos de las entidades, lo que ayuda a detectar amenazas de forma proactiva y a mejorar los sistemas de seguridad.
- Toma de decisiones informada: Ofrece información valiosa para la toma de decisiones y optimiza los procesos en ámbitos como el comercio minorista, la gestión del tráfico y otros.
- Procesamiento en tiempo real: La arquitectura de YOLO26 permite la inferencia en tiempo real, por lo que resulta adecuada para transmisiones de vídeo en directo y aplicaciones sensibles al tiempo.
Para consultar ejemplos de implementación y aplicaciones prácticas, explora la solución TrackZone para seguir objetos en zonas específicas.
Para contar clases específicas de objetos con Ultralytics YOLO26, debes especificar las clases que te interesan durante la fase de seguimiento. A continuación se muestra un ejemplo en Python:
import cv2 from ultralytics import solutions def count_specific_classes(video_path, output_video_path, model_path, classes_to_count): """Count specific classes of objects in a video.""" cap = cv2.VideoCapture(video_path) assert cap.isOpened(), "Error reading video file" w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) line_points = [(20, 400), (1080, 400)] counter = solutions.ObjectCounter(show=True, region=line_points, model=model_path, classes=classes_to_count) while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = counter(im0) video_writer.write(results.plot_im) cap.release() video_writer.release() cv2.destroyAllWindows() count_specific_classes("path/to/video.mp4", "output_specific_classes.avi", "yolo26n.pt", [0, 2])En este ejemplo,
classes_to_count=[0, 2]significa que cuenta objetos de las clases0y2(por ejemplo, persona y coche en el conjunto de datos COCO). Encontrarás más información sobre los índices de clase en la documentación del conjunto de datos COCO.Ultralytics YOLO26 ofrece varias ventajas frente a otros modelos de detección de objetos, como Faster R-CNN, SSD y versiones anteriores de YOLO:
- Velocidad y eficiencia: YOLO26 ofrece capacidades de procesamiento en tiempo real, por lo que es ideal para aplicaciones que requieren inferencia de alta velocidad, como la videovigilancia y la conducción autónoma.
- Precisión: Proporciona una precisión de detección y seguimiento de última generación, reduciendo los falsos positivos y mejorando la fiabilidad general del sistema.
- Facilidad de integración: YOLO26 ofrece una integración fluida con diversas plataformas y dispositivos, incluidos dispositivos móviles y dispositivos periféricos, algo crucial para las aplicaciones modernas de IA.
- Flexibilidad: Admite tareas de detección y segmentación, con el modo de seguimiento incorporado, además de modelos configurables para satisfacer los requisitos de casos de uso específicos.
Consulta la documentación de YOLO26 de Ultralytics para profundizar en sus funciones y comparar su rendimiento.
Sí, Ultralytics YOLO26 es perfectamente adecuado para aplicaciones avanzadas, como el análisis de multitudes y la gestión del tráfico, gracias a sus capacidades de detección en tiempo real, escalabilidad y flexibilidad de integración. Sus funciones avanzadas permiten realizar un seguimiento, conteo y clasificación de objetos con gran precisión en entornos dinámicos. Algunos casos de uso son:
- Análisis de multitudes: Supervisa y gestiona grandes concentraciones de personas, garantizando la seguridad y optimizando el flujo de la multitud mediante el conteo basado en regiones.
- Gestión del tráfico: Sigue y cuenta vehículos, analiza los patrones de tráfico y gestiona la congestión en tiempo real mediante capacidades de estimación de velocidad.
- Análisis minorista: Analiza los patrones de movimiento de los clientes y sus interacciones con los productos para optimizar la distribución de las tiendas y mejorar la experiencia del cliente.
- Automatización industrial: Cuenta productos en cintas transportadoras y supervisa líneas de producción para mejorar el control de calidad y la eficiencia.
Para aplicaciones más especializadas, explora las soluciones de Ultralytics, un conjunto completo de herramientas diseñado para abordar retos reales de la visión por ordenador.

