Recuento de objetos con Ultralytics YOLO26
¿Qué es el recuento de objetos?
El recuento de objetos con Ultralytics YOLO26 implica la identificación y el recuento precisos de objetos específicos en vídeos y flujos de cámara. YOLO26 destaca en aplicaciones en tiempo real, proporcionando un recuento de objetos eficiente y preciso para diversos escenarios, como el análisis de multitudes y la vigilancia, gracias a sus algoritmos de vanguardia y capacidades de deep learning.
Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀
Ventajas del recuento de objetos
- Optimización de recursos: El recuento de objetos facilita la gestión eficiente de los recursos al proporcionar recuentos precisos, lo que optimiza la asignación de recursos en aplicaciones como la gestión de inventario.
- Seguridad mejorada: El recuento de objetos mejora la seguridad y la vigilancia mediante el seguimiento y recuento precisos de entidades, ayudando en la detección de amenazas proactiva.
- Toma de decisiones informada: El recuento de objetos ofrece información valiosa para la toma de decisiones, optimizando procesos en el comercio minorista, la gestión del tráfico y muchos otros ámbitos.
Aplicaciones en el mundo real
| Logística | Acuicultura |
|---|---|
![]() | ![]() |
| Recuento de paquetes en cinta transportadora mediante Ultralytics YOLO26 | Recuento de peces en el mar mediante Ultralytics YOLO26 |
# 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 ocurren 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 a un archivo de modelo Ultralytics YOLO. |
show_in | bool | True | Indicador para controlar si se deben mostrar los recuentos de entrada en la transmisión de video. |
show_out | bool | True | Indicador para controlar si se deben mostrar los recuentos de salida en la transmisión de video. |
region | list | '[(20, 400), (1260, 400)]' | Lista de puntos que definen la región de conteo. |
La solución ObjectCounter permite el uso de varios argumentos de track:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica el algoritmo de seguimiento a utilizar, p. ej., bytetrack.yaml o botsort.yaml. |
conf | float | 0.1 | Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos pero pueden incluir falsos positivos. |
iou | float | 0.7 | Establece el umbral de Intersection over Union (IoU) para filtrar detecciones solapadas. |
classes | list | None | Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas. |
verbose | bool | True | Controla la visualización de los resultados de seguimiento, proporcionando una salida visual de los objetos seguidos. |
device | str | None | Especifica el dispositivo para la inferencia (p. ej., cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de computación para la ejecución del modelo. |
Además, se admiten los argumentos de visualización enumerados a continuación:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si es True, muestra las imágenes o vídeos anotados en una ventana. Útil para obtener información visual inmediata durante el desarrollo o las pruebas. |
line_width | int or None | None | Especifica el ancho de línea de las cajas delimitadoras. Si es None, el ancho de línea se ajusta automáticamente según el tamaño de la imagen. Proporciona personalización visual para mayor claridad. |
show_conf | bool | True | Muestra la puntuación de confianza para cada detección junto a la etiqueta. Ofrece información sobre la certeza del modelo para cada detección. |
show_labels | bool | True | Muestra etiquetas para cada detección en el resultado visual. Proporciona una comprensión inmediata de los objetos detectados. |
Preguntas frecuentes
¿Cómo cuento objetos en un vídeo usando Ultralytics YOLO26?
Para contar objetos en un vídeo utilizando Ultralytics YOLO26, puedes seguir estos pasos:
- Importa las librerías necesarias (
cv2,ultralytics). - Define la región de recuento (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 realizar el seguimiento de los objetos y contarlos dentro de la región definida.
Aquí tienes un ejemplo sencillo para contar 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, echa un vistazo a la solución RegionCounter para contar objetos en múltiples regiones simultáneamente.
¿Cuáles son las ventajas de usar Ultralytics YOLO26 para el recuento de objetos?
Usar Ultralytics YOLO26 para el recuento de objetos ofrece varias ventajas:
- Optimización de recursos: Facilita la 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.
- Seguridad mejorada: Mejora la seguridad y la vigilancia mediante el seguimiento y recuento precisos de entidades, ayudando en la detección de amenazas proactiva y en sistemas de seguridad.
- Toma de decisiones informada: Ofrece información valiosa para la toma de decisiones, optimizando procesos en ámbitos como el comercio minorista, la gestión del tráfico y más.
- Procesamiento en tiempo real: La arquitectura de YOLO26 permite la inferencia en tiempo real, por lo que es adecuada para flujos de vídeo en directo y aplicaciones sensibles al tiempo.
Para ver ejemplos de implementación y aplicaciones prácticas, explora la solución TrackZone para el seguimiento de objetos en zonas específicas.
¿Cómo puedo contar clases específicas de objetos usando Ultralytics YOLO26?
Para contar clases específicas de objetos utilizando Ultralytics YOLO26, debes especificar las clases que te interesan durante la fase de seguimiento. A continuación, 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 la clase 0 y 2 (por ejemplo, persona y coche en el conjunto de datos COCO). Puedes encontrar más información sobre los índices de las clases en la documentación del conjunto de datos COCO.
¿Por qué debería usar YOLO26 en lugar de otros modelos de detección de objetos para aplicaciones en tiempo real?
Ultralytics YOLO26 ofrece varias ventajas sobre 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, lo que lo hace ideal para aplicaciones que requieren inferencia de alta velocidad, como la vigilancia y la conducción autónoma.
- Precisión: Ofrece una precisión de vanguardia en tareas de detección y seguimiento de objetos, reduciendo el número de falsos positivos y mejorando la fiabilidad general del sistema.
- Facilidad de integración: YOLO26 ofrece una integración perfecta con diversas plataformas y dispositivos, incluidos dispositivos móviles y dispositivos de borde, lo cual es crucial para las aplicaciones de IA modernas.
- Flexibilidad: Admite diversas tareas como la detección, segmentación y seguimiento de objetos con modelos configurables para satisfacer los requisitos de casos de uso específicos.
Echa un vistazo a la documentación de YOLO26 de Ultralytics para profundizar en sus funciones y comparaciones de rendimiento.
¿Puedo usar YOLO26 para aplicaciones avanzadas como el análisis de multitudes y la gestión del tráfico?
Sí, Ultralytics YOLO26 es perfectamente adecuado para aplicaciones avanzadas como el análisis de multitudes y la gestión del tráfico debido a sus capacidades de detección en tiempo real, escalabilidad y flexibilidad de integración. Sus funciones avanzadas permiten el seguimiento, recuento 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, garantizando la seguridad y optimizando el flujo de personas con el recuento basado en regiones.
- Gestión del tráfico: Realiza el seguimiento y recuento de vehículos, analiza los patrones de tráfico y gestiona la congestión en tiempo real con capacidades de estimación de velocidad.
- Análisis minorista: Analiza los patrones de movimiento de los clientes y las interacciones con los productos para optimizar la disposición de la tienda y mejorar la experiencia del cliente.
- Automatización industrial: Cuenta los productos en las cintas transportadoras y supervisa las líneas de producción para el control de calidad y las mejoras de eficiencia.
Para aplicaciones más especializadas, explora las soluciones de Ultralytics para obtener un conjunto completo de herramientas diseñadas para los desafíos del mundo real en visión artificial.

