Meet YOLO26: next-gen vision AI.

Link to this sectionRecuento de objetos con Ultralytics YOLO26#

Link to this section¿Qué es el recuento de objetos?#

Abrir recuento de objetos en Colab

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 última generación y sus capacidades de deep learning.



Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀

Link to this sectionVentajas del recuento de objetos#

  • Optimización de recursos: El recuento de objetos facilita una gestión eficiente de los recursos al proporcionar recuentos precisos, optimizando 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 al rastrear y contar entidades con precisión, lo que ayuda 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.

Link to this sectionAplicaciones en el mundo real#

LogísticaAcuicultura
Recuento de paquetes en cinta transportadora con Ultralytics YOLO26Recuento de peces en el mar con Ultralytics YOLO26
Recuento de paquetes en cinta transportadora con Ultralytics YOLO26Recuento de peces en el mar con Ultralytics YOLO26
Recuento de objetos con Ultralytics YOLO
# 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.

Link to this sectionArgumentos de ObjectCounter#

Aquí tienes una tabla con los argumentos de ObjectCounter:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo YOLO de Ultralytics.
show_inboolTrueFlag para controlar si se muestran los conteos de entrada en la transmisión de vídeo.
show_outboolTrueFlag para controlar si se muestran los conteos de salida en la transmisión de vídeo.
regionlist'[(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:

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento a utilizar, p. ej., bytetrack.yaml o botsort.yaml.
conffloat0.1Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de Intersection over Union (IoU) para filtrar detecciones superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo rastrea las clases especificadas.
verboseboolTrueControla la visualización de los resultados de seguimiento, proporcionando una salida visual de los objetos rastreados.
devicestrNoneEspecifica 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:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi es True, muestra las imágenes o vídeos anotados en una ventana. Útil para una retroalimentación visual inmediata durante el desarrollo o las pruebas.
line_widthint or NoneNoneEspecifica el ancho de línea de los cuadros delimitadores. 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_confboolTrueMuestra la puntuación de confianza para cada detección junto a la etiqueta. Proporciona información sobre la certeza del modelo para cada detección.
show_labelsboolTrueMuestra las etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados.

Link to this sectionFAQ#

Link to this section¿Cómo cuento objetos en un vídeo usando Ultralytics YOLO26?#

Para contar objetos en un vídeo usando Ultralytics YOLO26, puedes seguir estos pasos:

  1. Importa las bibliotecas necesarias (cv2, ultralytics).
  2. Define la región de recuento (por ejemplo, un polígono, una línea, etc.).
  3. Configura la captura de vídeo e inicializa el contador de objetos.
  4. Procesa cada fotograma para rastrear 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, consulta la solución RegionCounter para contar objetos en múltiples regiones simultáneamente.

Link to this section¿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:

  1. Optimización de recursos: Facilita una gestión eficiente de los recursos al proporcionar recuentos precisos, ayudando a optimizar la asignación de recursos en sectores como la gestión de inventario.
  2. Seguridad mejorada: Mejora la seguridad y la vigilancia al rastrear y contar entidades con precisión, lo que ayuda en la detección proactiva de amenazas y en sistemas de seguridad.
  3. 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.
  4. Procesamiento en tiempo real: La arquitectura de YOLO26 permite la inferencia en tiempo real, lo que la hace adecuada para flujos de vídeo en directo y aplicaciones sensibles al tiempo.

Para ejemplos de implementación y aplicaciones prácticas, explora la solución TrackZone para rastrear objetos en zonas específicas.

Link to this section¿Cómo puedo contar clases específicas de objetos usando Ultralytics YOLO26?#

Para contar clases específicas de objetos usando Ultralytics YOLO26, necesitas 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 los objetos de las clases 0 y 2 (por ejemplo, persona y coche en el dataset COCO). Puedes encontrar más información sobre los índices de clase en la documentación del dataset COCO.

Link to this section¿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:

  1. 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.
  2. Precisión: Proporciona una precisión de vanguardia para las tareas de detección y seguimiento de objetos, reduciendo el número de falsos positivos y mejorando la fiabilidad general del sistema.
  3. Facilidad de integración: YOLO26 ofrece una integración perfecta con diversas plataformas y dispositivos, incluidos dispositivos móviles y de edge computing, lo cual es crucial para las aplicaciones modernas de IA.
  4. Flexibilidad: Admite diversas tareas como la detección de objetos, la segmentación y el seguimiento con modelos configurables para cumplir con los requisitos de casos de uso específicos.

Consulta la Documentación de YOLO26 de Ultralytics para profundizar en sus funciones y comparaciones de rendimiento.

Link to this section¿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, su escalabilidad y su flexibilidad de integración. Sus funciones avanzadas permiten el seguimiento, el recuento y la clasificación de objetos con alta precisión en entornos dinámicos. Ejemplos de casos de uso incluyen:

  • Análisis de multitudes: Monitorea y gestiona grandes reuniones, garantizando la seguridad y optimizando el flujo de personas con el recuento basado en regiones.
  • Gestión del tráfico: Rastrea y cuenta vehículos, analiza 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 distribución de la tienda y mejorar la experiencia del cliente.
  • Automatización industrial: Cuenta los productos en las cintas transportadoras y monitorea las 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 integral de herramientas diseñadas para los desafíos de la visión artificial en el mundo real.

Comentarios