Saltar para o conteúdo

Contagem de objectos em diferentes regiões utilizando Ultralytics YOLO 🚀

O que é a contagem de objectos nas regiões?

A contagem de objectos em regiões com Ultralytics YOLO11 envolve a determinação precisa do número de objectos em áreas especificadas utilizando visão computacional avançada. Esta abordagem é valiosa para otimizar processos, aumentar a segurança e melhorar a eficiência em várias aplicações.



Ver: Contagem de objectos em diferentes regiões utilizando Ultralytics YOLO11 | Ultralytics Soluções 🚀

Vantagens da contagem de objectos nas regiões?

  • Precisão e exatidão: A contagem de objectos em regiões com visão computacional avançada assegura contagens precisas e exatas, minimizando os erros frequentemente associados à contagem manual.
  • Melhoria da eficiência: A contagem automatizada de objectos aumenta a eficiência operacional, fornecendo resultados em tempo real e simplificando os processos em diferentes aplicações.
  • Versatilidade e aplicação: A versatilidade da contagem de objectos nas regiões torna-a aplicável em vários domínios, desde a produção e vigilância até à monitorização do tráfego, contribuindo para a sua utilidade e eficácia generalizadas.

Aplicações no mundo real

Retalho Ruas do mercado
Contagem de pessoas em diferentes regiões utilizando Ultralytics YOLO11 Contagem de multidões em diferentes regiões utilizando Ultralytics YOLO11
Contagem de pessoas em diferentes regiões utilizando Ultralytics YOLO11 Contagem de multidões em diferentes regiões utilizando Ultralytics YOLO11

Contagem de regiões utilizando o Ultralytics YOLO

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Pass region as list
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

# Pass region as dictionary
region_points = {
    "region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
    "region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
}

# Video writer
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("region_counting.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize region counter object
regioncounter = solutions.RegionCounter(
    show=True,  # display the frame
    region=region_points,  # pass region points
    model="yolo11n.pt",  # model for counting in regions i.e yolo11s.pt
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = regioncounter(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

Ultralytics Exemplo de código

O módulo de contagem de regiões Ultralytics está disponível na nossa secção de exemplos. Pode explorar este exemplo para personalização do código e modificá-lo para se adequar ao seu caso de utilização específico.

RegionCounter Argumentos

Aqui está uma tabela com os RegionCounter argumentos:

Argumento Tipo Predefinição Descrição
model str None Caminho para o ficheiro do modelo Ultralytics YOLO .
region list [(20, 400), (1260, 400)] Lista de pontos que definem a região de contagem.

O RegionCounter permite a utilização de parâmetros de seguimento de objectos:

Argumento Tipo Predefinição Descrição
tracker str 'botsort.yaml' Especifica o algoritmo de seguimento a utilizar, por exemplo, bytetrack.yaml ou botsort.yaml.
conf float 0.3 Define o limiar de confiança para as detecções; valores mais baixos permitem o seguimento de mais objectos, mas podem incluir falsos positivos.
iou float 0.5 Define o limiar de Intersecção sobre União (IoU) para filtrar detecções sobrepostas.
classes list None Filtra os resultados por índice de classe. Por exemplo, classes=[0, 2, 3] só rastreia as classes especificadas.
verbose bool True Controla a apresentação dos resultados do seguimento, fornecendo uma saída visual dos objectos seguidos.
device str None Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite aos utilizadores selecionar entre CPU, um GPU específico, ou outros dispositivos de computação para a execução do modelo.

Além disso, são suportadas as seguintes definições de visualização:

Argumento Tipo Predefinição Descrição
show bool False Se Trueapresenta as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
line_width None or int None Especifica a largura da linha das caixas delimitadoras. Se NoneA largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza.

FAQ

O que é a contagem de objectos em regiões específicas utilizando Ultralytics YOLO11 ?

A contagem de objectos em regiões específicas com Ultralytics YOLO11 envolve a deteção e contagem do número de objectos em áreas definidas utilizando visão computacional avançada. Este método preciso aumenta a eficiência e a precisão em várias aplicações, como fabrico, vigilância e monitorização do tráfego.

Como é que executo o script de contagem de objectos baseado na região com Ultralytics YOLO11 ?

Siga estes passos para executar a contagem de objectos em Ultralytics YOLO11 :

  1. Clone o repositório Ultralytics e navegue até ao diretório:

    git clone https://github.com/ultralytics/ultralytics
    cd ultralytics/examples/YOLOv8-Region-Counter
    
  2. Executar o script de contagem de regiões:

    python yolov8_region_counter.py --source "path/to/video.mp4" --save-img
    

Para mais opções, visite a secção Contagem de regiões de execução.

Por que razão devo utilizar Ultralytics YOLO11 para a contagem de objectos em regiões?

A utilização de Ultralytics YOLO11 para a contagem de objectos em regiões oferece várias vantagens:

  1. Processamento em tempo real: A arquitetura do YOLO11 permite uma inferência rápida, tornando-o ideal para aplicações que requerem resultados de contagem imediatos.
  2. Definição flexível de regiões: A solução permite-lhe definir várias regiões personalizadas como polígonos, rectângulos ou linhas para se adequar às suas necessidades específicas de monitorização.
  3. Suporte multi-classe: Conte diferentes tipos de objectos simultaneamente nas mesmas regiões, fornecendo análises abrangentes.
  4. Capacidades de integração: Integre-se facilmente com os sistemas existentes através da APIPython Ultralytics ou da interface de linha de comando.

Explore mais benefícios na secção Vantagens.

Quais são algumas das aplicações reais da contagem de objectos em regiões?

A contagem de objectos com Ultralytics YOLO11 pode ser aplicada a inúmeros cenários do mundo real:

  • Análise de retalho: Contar os clientes em diferentes secções da loja para otimizar a disposição e o pessoal.
  • Gestão do tráfego: Monitorizar o fluxo de veículos em segmentos rodoviários ou intersecções específicas.
  • Fabrico: Monitorizar os produtos que passam por diferentes zonas de produção.
  • Operações de armazém: Contar artigos de inventário em áreas de armazenamento designadas.
  • Segurança pública: Monitorizar a densidade da multidão em zonas específicas durante os eventos.

Explore mais exemplos na secção Aplicações do mundo real e a solução TrackZone para capacidades adicionais de monitorização baseada em zonas.

📅C riado há 1 ano ✏️ Atualizado há 6 dias

Comentários