Contagem de objetos usando Ultralytics YOLO26

O que é contagem de objetos?

Open Object Counting In Colab

A contagem de objetos com Ultralytics YOLO26 envolve a identificação e contagem precisa de objetos específicos em vídeos e fluxos de câmera. O YOLO26 destaca-se em aplicações em tempo real, fornecendo uma contagem de objetos eficiente e precisa para diversos cenários, como análise de multidões e vigilância, graças aos seus algoritmos de última geração e capacidades de deep learning.



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

Vantagens da contagem de objetos

  • Otimização de recursos: A contagem de objetos facilita a gestão eficiente de recursos ao fornecer contagens precisas, otimizando a alocação de recursos em aplicações como gestão de inventário.
  • Segurança aprimorada: A contagem de objetos aumenta a segurança e a vigilância ao rastrear e contar entidades com precisão, ajudando na detecção de ameaças proativa.
  • Tomada de decisão informada: A contagem de objetos oferece percepções valiosas para a tomada de decisão, otimizando processos no varejo, gestão de tráfego e em diversos outros domínios.

Aplicações no Mundo Real

LogísticaAquicultura
Contagem de pacotes em esteira usando Ultralytics YOLO26Contagem de peixes no mar usando Ultralytics YOLO26
Contagem de pacotes em esteira usando Ultralytics YOLO26Contagem de peixes no mar usando Ultralytics YOLO26
Contagem de objetos usando 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)]"

O argumento region aceita dois pontos (para uma linha) ou um polígono com três ou mais pontos. Defina as coordenadas na ordem em que devem ser conectadas para que o contador saiba exatamente onde ocorrem as entradas e saídas.

Argumentos do ObjectCounter

Aqui está uma tabela com os argumentos do ObjectCounter:

ArgumentoTipoPredefiniçãoDescrição
modelstrNoneCaminho para um arquivo de modelo Ultralytics YOLO.
show_inboolTrueSinalizador para controlar se as contagens de entrada devem ser exibidas no fluxo de vídeo.
show_outboolTrueSinalizador para controlar se as contagens de saída devem ser exibidas no fluxo de vídeo.
regionlist'[(20, 400), (1260, 400)]'Lista de pontos definindo a região de contagem.

A solução ObjectCounter permite o uso de vários argumentos track:

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

Além disso, os argumentos de visualização listados abaixo são suportados:

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. Oferece personalização visual para clareza.
show_confboolTrueExibe a pontuação de confiança para cada deteção ao lado do rótulo. Dá uma noção da certeza do modelo para cada deteção.
show_labelsboolTrueExibe rótulos para cada deteção na saída visual. Proporciona uma compreensão imediata dos objetos detetados.

FAQ

Como conto objetos em um vídeo usando Ultralytics YOLO26?

Para contar objetos em um vídeo usando Ultralytics YOLO26, podes seguir estes passos:

  1. Importa as bibliotecas necessárias (cv2, ultralytics).
  2. Define a região de contagem (por exemplo, um polígono, linha, etc.).
  3. Configura a captura de vídeo e inicializa o contador de objetos.
  4. Processa cada quadro para rastrear objetos e contá-los dentro da região definida.

Aqui está um exemplo simples para contagem em uma região:

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 configurações e opções mais avançadas, confere a solução RegionCounter para contar objetos em múltiplas regiões simultaneamente.

Quais são as vantagens de usar Ultralytics YOLO26 para contagem de objetos?

Usar Ultralytics YOLO26 para contagem de objetos oferece várias vantagens:

  1. Otimização de recursos: Facilita a gestão eficiente de recursos ao fornecer contagens precisas, ajudando a otimizar a alocação de recursos em setores como gestão de inventário.
  2. Segurança aprimorada: Aumenta a segurança e a vigilância ao rastrear e contar entidades com precisão, ajudando na detecção proativa de ameaças e sistemas de segurança.
  3. Tomada de decisão informada: Oferece percepções valiosas para a tomada de decisão, otimizando processos em domínios como varejo, gestão de tráfego e muito mais.
  4. Processamento em tempo real: A arquitetura do YOLO26 permite inferência em tempo real, tornando-o adequado para fluxos de vídeo ao vivo e aplicações sensíveis ao tempo.

Para exemplos de implementação e aplicações práticas, explora a solução TrackZone para rastrear objetos em zonas específicas.

Como posso contar classes específicas de objetos usando Ultralytics YOLO26?

Para contar classes específicas de objetos usando Ultralytics YOLO26, precisas de especificar as classes em que estás interessado durante a fase de rastreamento. Abaixo está um exemplo em 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])

Neste exemplo, classes_to_count=[0, 2] significa que conta objetos das classes 0 e 2 (por exemplo, pessoa e carro no conjunto de dados COCO). Podes encontrar mais informações sobre índices de classes na documentação do conjunto de dados COCO.

Por que devo usar o YOLO26 em vez de outros modelos de detecção de objetos para aplicações em tempo real?

O Ultralytics YOLO26 oferece várias vantagens sobre outros modelos de detecção de objetos como Faster R-CNN, SSD e versões anteriores do YOLO:

  1. Velocidade e eficiência: O YOLO26 oferece capacidades de processamento em tempo real, tornando-o ideal para aplicações que exigem inferência de alta velocidade, como vigilância e condução autónoma.
  2. Precisão: Fornece uma precisão de última geração para tarefas de detecção e rastreamento de objetos, reduzindo o número de falsos positivos e melhorando a fiabilidade geral do sistema.
  3. Facilidade de integração: O YOLO26 oferece integração perfeita com diversas plataformas e dispositivos, incluindo dispositivos móveis e dispositivos de edge, o que é crucial para aplicações de IA modernas.
  4. Flexibilidade: Suporta diversas tarefas como detecção de objetos, segmentação e rastreamento com modelos configuráveis para atender a requisitos específicos de casos de uso.

Confere a Documentação do YOLO26 da Ultralytics para um mergulho mais profundo nas suas funcionalidades e comparações de desempenho.

Posso usar o YOLO26 para aplicações avançadas como análise de multidões e gestão de tráfego?

Sim, o Ultralytics YOLO26 é perfeitamente adequado para aplicações avançadas como análise de multidões e gestão de tráfego devido às suas capacidades de detecção em tempo real, escalabilidade e flexibilidade de integração. As suas funcionalidades avançadas permitem rastreamento, contagem e classificação de objetos com alta precisão em ambientes dinâmicos. Exemplos de casos de uso incluem:

  • Análise de multidões: Monitoriza e gere grandes aglomerações, garantindo a segurança e otimizando o fluxo de pessoas com contagem baseada em região.
  • Gestão de tráfego: Rastreia e conta veículos, analisa padrões de tráfego e gere congestionamentos em tempo real com capacidades de estimativa de velocidade.
  • Análise de varejo: Analisa padrões de movimento dos clientes e interações com produtos para otimizar o layout da loja e melhorar a experiência do cliente.
  • Automação industrial: Conta produtos em esteiras e monitoriza linhas de produção para controlo de qualidade e melhorias de eficiência.

Para aplicações mais especializadas, explora as Soluções Ultralytics para um conjunto abrangente de ferramentas concebidas para desafios de visão computacional do mundo real.

Comentários