YOLO Vision 2026:

Recuento de objetos en regiones con Ultralytics YOLO26#

La RegionCounter solution en Ultralytics YOLO26 rastrea objetos a través de los fotogramas de vídeo y, en cada fotograma, cuenta los objetos cuyo centro de cuadro delimitador se encuentra dentro de cada región que defines. Cada región se dibuja en el fotograma con su propio recuento en directo, por lo que puedes supervisar varias zonas, como pasillos de tiendas, carriles de carreteras o áreas de producción, con una sola llamada de Python o comando de CLI.



Watch: Object Counting in Different Regions using Ultralytics YOLO | Ultralytics Solutions

¿Por qué utilizar el recuento por regiones?#

  • Varias zonas en una sola pasada: Pasa un diccionario de polígonos con nombre y cada zona obtendrá un recuento independiente dibujado en el fotograma, por lo que una única secuencia de vídeo cubre todas las áreas que te interesen.
  • Seguimiento integrado: La solución ejecuta la detección de YOLO26 y el object tracking internamente, por lo que no hay ninguna tubería de seguimiento separada que configurar.
  • Recuentos que puedes leer mediante programación: Cada fotograma procesado devuelve un objeto de resultados con un diccionario de recuentos de regiones, listo para paneles de control, alertas o registro de datos.

Aplicaciones en el mundo real#

Comercio minoristaCalles comerciales
Ultralytics YOLO counting people inside drawn polygon regions in a retail storeUltralytics YOLO region counts overlaid on a crowded market street
Recuento de personas en regiones con Ultralytics YOLORecuento de multitudes en regiones con Ultralytics YOLO

Cómo contar objetos en regiones con Ultralytics YOLO#

Ejecuta la solución RegionCounter en una fuente de vídeo desde la CLI o Python. Una región puede ser una lista de puntos (una sola zona) o un diccionario que asocie nombres de zonas con listas de puntos. El ejemplo de Python a continuación cuenta objetos en dos regiones con nombre y escribe los fotogramas procesados en un archivo de vídeo de salida:

Recuento de regiones utilizando Ultralytics YOLO
# Run a region counting example
yolo solutions region show=True

# Pass a source video
yolo solutions region source="path/to/video.mp4"

# Pass a custom region
yolo solutions region region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"

Argumentos de RegionCounter()#

Aquí tienes una tabla con los argumentos de RegionCounter:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo YOLO de Ultralytics.
regionlist o dictNonePuntos que definen la región de interés, ya sea una lista de tuplas (x, y) o un diccionario que mapea nombres de regiones a listas de puntos para múltiples regiones (solo RegionCounter). Cuando es None, las soluciones que requieren una región recurren a un valor predeterminado.
line_widthint2Grosor de línea para las cajas, puntos clave y recuentos que dibuja la solución.
verboseboolTrueHabilita el registro por fotograma de la solución sobre 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 RegionCounter permite el uso de parámetros de seguimiento de objetos:

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento que se va a utilizar. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Establece 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 realiza el seguimiento de las clases especificadas.
devicestrNoneEspecifica el dispositivo para la inferencia (por ejemplo, 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 siguientes ajustes de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi es True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener retroalimentación visual inmediata durante el desarrollo o las pruebas.
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.

Cómo funciona el recuento por regiones#

La RegionCounter solution convierte cada región que pasas en un polígono, con al menos tres puntos por región. Una lista simple de puntos se convierte en una única zona llamada Region#01, mientras que un diccionario mantiene tus propios nombres de zona; cada zona se dibuja en su propio color de la paleta de Ultralytics. A continuación, cada fotograma se procesa en tres pasos:

  1. El seguimiento de YOLO26 detecta y sigue a cada objeto en el fotograma
  2. Para cada objeto rastreado, la solución calcula el centro del BBox y comprueba qué polígonos de región lo contienen
  3. El recuento de cada región se dibuja en su centro, y los recuentos se reinician antes del siguiente fotograma

Dado que los recuentos se reinician en cada fotograma, el número mostrado en una región es su ocupación actual, lo que significa cuántos objetos hay dentro de ella en este momento, no un total acumulado. Para contar objetos que cruzan un límite de forma acumulativa, utiliza la ObjectCounter solution en su lugar.

Cada llamada también devuelve un objeto de resultados cuyo atributo plot_im contiene el fotograma anotado y cuyo diccionario region_counts mapea los nombres de las regiones a sus recuentos, para que puedas introducir los números en la lógica de tu propia aplicación.

Conclusión#

La solución Ultralytics YOLO26 RegionCounter supervisa recuentos de objetos en directo en tantas zonas con nombre como necesites con unas pocas líneas de código. Para ir más allá, cuenta los cruces de límites con object counting, sigue objetos dentro de una sola zona con TrackZone, o explora las otras Ultralytics Solutions.

FAQ#

  • Ultralytics YOLO26 cuenta objetos en regiones rastreando cada objeto en el fotograma y comprobando si el centro de su cuadro delimitador se encuentra dentro de cada polígono definido por el usuario. El recuento mostrado en una región es su ocupación actual para ese fotograma, no un total acumulado. Las opciones de configuración se enumeran en la sección RegionCounter() Arguments.

  • Pasa el argumento region como un diccionario que relacione los nombres de las zonas con listas de puntos, como en el main example:

    from ultralytics import solutions
    
    region_points = {
        "region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
        "region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
    }
    regioncounter = solutions.RegionCounter(region=region_points, model="yolo26n.pt", show=True)

    Cada zona con nombre se dibuja con su propio color y un recuento independiente.

  • El objeto devuelto por cada llamada a regioncounter(im0) lleva un diccionario region_counts que mapea los nombres de las regiones a sus recuentos, junto con plot_im (el fotograma anotado) y total_tracks (el número de objetos rastreados). Imprime el objeto de resultados para inspeccionar todos los campos disponibles.

  • Sí. Pasa el argumento classes con los índices de clase a conservar, por ejemplo classes=[0] para contar únicamente personas con un modelo preentrenado en COCO. La lista completa de argumentos relacionados con el seguimiento se encuentra en la sección RegionCounter() Arguments.

  • RegionCounter muestra cuántos objetos hay dentro de cada zona poligonal en el fotograma actual, mientras que ObjectCounter cuenta los objetos de forma acumulativa a medida que cruzan una línea o el límite de una región, rastreando los totales de entrada y salida. Utiliza RegionCounter para la ocupación en directo de una o más zonas y ObjectCounter para el recuento de entradas y salidas; las regiones en forma de línea solo son compatibles con ObjectCounter.

Comentarios