Meet YOLO26: next-gen vision AI.

Link to this sectionRecuento de objetos en regiones con Ultralytics YOLO26#

La solución RegionCounter de Ultralytics YOLO26 rastrea objetos a través de fotogramas de vídeo y, en cada fotograma, cuenta los objetos cuyo centro de BBox cae dentro de cada región que definas. Cada región se dibuja en el fotograma con su propio contador en tiempo real, por lo que puedes supervisar varias zonas, como pasillos de tiendas, carriles de carretera o áreas de producción, con una sola llamada de Python o comando CLI.



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

Link to this section¿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.
  • Rastreo integrado: La solución ejecuta la detección de YOLO26 y el rastreo de objetos internamente, por lo que no hay que configurar ninguna canalización de rastreo por separado.
  • 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.

Link to this sectionAplicaciones en el mundo real#

Comercio minoristaCalles comerciales
Ultralytics YOLO contando personas dentro de regiones poligonales dibujadas en una tienda minoristaRecuentos de regiones de Ultralytics YOLO superpuestos en una calle de mercado concurrida
Recuento de personas en regiones con Ultralytics YOLORecuento de multitudes en regiones con Ultralytics YOLO

Link to this sectionCó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)]"

Link to this sectionArgumentos 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 asocia nombres de regiones con listas de puntos para múltiples regiones (solo RegionCounter). Cuando es None, las soluciones que requieren una región recurren a un valor predeterminado.

La solución RegionCounter permite el uso de parámetros de seguimiento de objetos:

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento a utilizar. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.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 siguientes ajustes de visualizació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 sectionCómo funciona el recuento por regiones#

La solución RegionCounter 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 sola zona llamada Region#01, mientras que un diccionario conserva tus propios nombres de zona; cada zona se dibuja con su propio color de la paleta de Ultralytics. Cada fotograma se procesa entonces 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

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

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

Link to this sectionConclusión#

La solución RegionCounter de Ultralytics YOLO26 supervisa los 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 recuento de objetos, rastrea objetos dentro de una sola zona con TrackZone o explora las otras Soluciones de Ultralytics.

Link to this sectionFAQ#

Link to this section¿Cómo funciona el recuento de objetos en regiones en Ultralytics YOLO26?#

Ultralytics YOLO26 cuenta objetos en regiones rastreando cada objeto en el fotograma y probando si el centro de su BBox se encuentra dentro de cada polígono definido por el usuario. El recuento que se muestra 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 de Argumentos de RegionCounter().

Link to this section¿Cómo cuento objetos en múltiples regiones a la vez?#

Pasa el argumento region como un diccionario que asocie nombres de zona con listas de puntos, como en el ejemplo principal:

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.

Link to this section¿Cómo obtengo los recuentos de regiones mediante programación?#

El objeto devuelto por cada llamada a regioncounter(im0) contiene un diccionario region_counts que asocia los nombres de las regiones con sus recuentos, además de 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.

Link to this section¿Puedo contar solo clases de objetos específicas en una región?#

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

Link to this section¿Cuál es la diferencia entre RegionCounter y ObjectCounter?#

RegionCounter muestra cuántos objetos hay dentro de cada zona poligonal en el fotograma actual, mientras que ObjectCounter cuenta objetos de forma acumulativa a medida que cruzan una línea o límite de 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