Meet YOLO26: next-gen vision AI.

Link to this sectionContagem de objetos em regiões com Ultralytics YOLO26#

A solução RegionCounter no Ultralytics YOLO26 rastreia objetos em quadros de vídeo e, em cada quadro, conta os objetos cujo centro da bbox cai dentro de cada região definida por você. Cada região é desenhada no quadro com sua própria contagem ao vivo, permitindo monitorar várias zonas, como corredores de lojas, faixas de rodovias ou áreas de produção, com uma única chamada Python ou comando CLI.



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

Link to this sectionPor que usar a contagem de regiões?#

  • Várias zonas de uma só vez: Passe um dicionário de polígonos nomeados e cada zona receberá uma contagem independente desenhada no quadro, para que um fluxo de vídeo cubra todas as áreas que lhe interessam.
  • Rastreamento integrado: A solução executa a detecção do YOLO26 e o rastreamento de objetos internamente, portanto, não há um pipeline de rastreamento separado para configurar.
  • Contagens que você pode ler programaticamente: Cada quadro processado retorna um objeto de resultados com um dicionário de contagens de regiões, pronto para painéis, alertas ou registro de logs.

Link to this sectionAplicações no mundo real#

VarejoRuas comerciais
Ultralytics YOLO contando pessoas dentro de regiões poligonais desenhadas em uma loja de varejoContagens de regiões do Ultralytics YOLO sobrepostas em uma rua de mercado lotada
Contagem de pessoas em regiões com Ultralytics YOLOContagem de multidões em regiões com Ultralytics YOLO

Link to this sectionComo contar objetos em regiões com Ultralytics YOLO#

Execute a solução RegionCounter em uma fonte de vídeo via CLI ou Python. Uma região pode ser uma lista de pontos (uma única zona) ou um dicionário que mapeia nomes de zonas para listas de pontos. O exemplo Python abaixo conta objetos em duas regiões nomeadas e grava os quadros processados em um arquivo de vídeo de saída:

Contagem de regiões usando 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 do RegionCounter()#

Aqui tens uma tabela com os argumentos do RegionCounter:

ArgumentoTipoPredefiniçãoDescrição
modelstrNoneCaminho para um ficheiro de modelo YOLO da Ultralytics.
regionlist ou dictNonePontos que definem a região de interesse, seja uma lista de tuplas (x, y) ou um dicionário que mapeia nomes de regiões para listas de pontos para múltiplas regiões (apenas RegionCounter). Quando None, soluções que exigem uma região retornam a um padrão predefinido.

A solução RegionCounter permite a utilização de parâmetros de rastreamento de objetos:

ArgumentoTipoPredefiniçãoDescrição
trackerstr'botsort.yaml'Especifica o algoritmo de rastreamento a ser usado. As opções integradas são: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Define o limiar de confiança para as deteções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos.
ioufloat0.7Define o limiar de Intersection over Union (IoU) para filtrar deteções sobrepostas.
classeslistNoneFiltra resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas.
verboseboolTrueControla a exibição dos resultados de rastreio, fornecendo uma saída visual dos objetos rastreados.
devicestrNoneEspecifica o dispositivo para inferência (p. ex., cpu, cuda:0 ou 0). Permite aos utilizadores selecionar entre CPU, uma GPU específica ou outros dispositivos de computação para a execução do modelo.

Adicionalmente, as seguintes definições de visualização são suportadas:

ArgumentoTipoPredefiniçãoDescrição
showboolFalseSe True, exibe as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
line_widthint or NoneNoneEspecifica a largura da linha das caixas delimitadoras. Se None, a largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona personalização visual para maior clareza.
show_confboolTrueExibe a pontuação de confiança para cada detecção ao lado do rótulo. Fornece uma visão sobre a certeza do modelo para cada detecção.
show_labelsboolTrueExibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados.

Link to this sectionComo a contagem de regiões funciona#

A solução RegionCounter transforma cada região fornecida em um polígono, com pelo menos três pontos por região. Uma lista simples de pontos torna-se uma zona única chamada Region#01, enquanto um dicionário mantém seus próprios nomes de zonas; cada zona é desenhada com sua própria cor da paleta Ultralytics. Cada quadro é então processado em três etapas:

  1. O rastreamento YOLO26 detecta e segue cada objeto no quadro
  2. Para cada objeto rastreado, a solução calcula o centro da bbox e verifica quais polígonos de região o contêm
  3. A contagem de cada região é desenhada em seu centro, e as contagens são reiniciadas antes do próximo quadro

Como as contagens reiniciam a cada quadro, o número mostrado em uma região representa sua ocupação atual, ou seja, quantos objetos estão dentro dela naquele momento, e não um total acumulado. Para contar objetos cruzando uma fronteira de forma cumulativa, use a solução ObjectCounter em vez disso.

Cada chamada também retorna um objeto de resultados cujo atributo plot_im contém o quadro anotado e cujo dicionário region_counts mapeia nomes de regiões para suas contagens, para que você possa alimentar esses números na sua própria lógica de aplicação.

Link to this sectionConclusão#

A solução RegionCounter do Ultralytics YOLO26 monitora contagens de objetos ao vivo em quantas zonas nomeadas você precisar com apenas algumas linhas de código. Para ir além, conte cruzamentos de fronteiras com a contagem de objetos, rastreie objetos dentro de uma única zona com o TrackZone ou explore as outras Soluções Ultralytics.

Link to this sectionFAQ#

Link to this sectionComo a contagem de objetos em regiões funciona no Ultralytics YOLO26?#

O Ultralytics YOLO26 conta objetos em regiões rastreando cada objeto no quadro e testando se o centro da bbox do objeto está dentro de cada polígono definido pelo usuário. A contagem exibida em uma região é sua ocupação atual para aquele quadro, não um total acumulado. As opções de configuração estão listadas na seção Argumentos do RegionCounter().

Link to this sectionComo posso contar objetos em várias regiões de uma só vez?#

Passe o argumento region como um dicionário que mapeia nomes de zonas para listas de pontos, como no exemplo 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 nomeada é desenhada com sua própria cor com uma contagem independente.

Link to this sectionComo obtenho as contagens de regiões programaticamente?#

O objeto retornado por cada chamada regioncounter(im0) contém um dicionário region_counts que mapeia nomes de regiões para suas contagens, juntamente com plot_im (o quadro anotado) e total_tracks (o número de objetos rastreados). Imprima o objeto de resultados para inspecionar todos os campos disponíveis.

Link to this sectionPosso contar apenas classes de objetos específicas em uma região?#

Sim. Passe o argumento classes com os índices das classes que deseja manter, por exemplo classes=[0] para contar apenas pessoas com um modelo pré-treinado no COCO. A lista completa de argumentos relacionados ao rastreamento está na seção Argumentos do RegionCounter().

Link to this sectionQual é a diferença entre RegionCounter e ObjectCounter?#

O RegionCounter mostra quantos objetos estão dentro de cada zona poligonal no quadro atual, enquanto o ObjectCounter conta objetos cumulativamente à medida que cruzam uma linha ou limite de região, rastreando totais de entrada e saída. Use o RegionCounter para ocupação ao vivo de uma ou mais zonas e o ObjectCounter para contagem de entrada e saída; regiões em formato de linha são suportadas apenas pelo ObjectCounter.

Comentários