Ir para o conteúdo

Mapeamento de Objetos com Visão VisionEye usando Ultralytics YOLO11 🚀

O que é o VisionEye Object Mapping?

O Ultralytics YOLO11 VisionEye oferece a capacidade de os computadores identificarem e localizarem objetos, simulando a precisão observacional do olho humano. Essa funcionalidade permite que os computadores discernam e se concentrem em objetos específicos, da mesma forma que o olho humano observa detalhes de um ponto de vista específico.

Mapeamento de Objetos com Visão VisionEye e Rastreamento de Objetos usando Ultralytics YOLO11

Mapeamento VisionEye usando YOLO Ultralytics

# Monitor objects position with visioneye
yolo solutions visioneye show=True

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

# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"
import cv2

from ultralytics import solutions

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

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

# Initialize vision eye object
visioneye = solutions.VisionEye(
    show=True,  # display the output
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e, YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
    vision_point=(50, 50),  # the point, where vision will view objects and draw tracks
)

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

    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = visioneye(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

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

VisionEye Argumentos

Aqui está uma tabela com o VisionEye argumentos:

Argumento Tipo Padrão Descrição
model str None Caminho para o arquivo do modelo Ultralytics YOLO.
vision_point tuple[int, int] (20, 20) O ponto onde a visão rastreará objetos e desenhará caminhos usando a Solução VisionEye.

Você também pode utilizar vários track argumentos dentro do VisionEye solução:

Argumento Tipo Padrão Descrição
tracker str 'botsort.yaml' Especifica o algoritmo de rastreamento a ser usado, por exemplo, bytetrack.yaml ou botsort.yaml.
conf float 0.3 Define o limite de confiança para detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos.
iou float 0.5 Define o limite 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] rastreia apenas as classes especificadas.
verbose bool True Controla a exibição dos resultados de rastreamento, fornecendo uma saída visual dos objetos rastreados.
device str None Especifica 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, alguns argumentos de visualização são suportados, conforme listado abaixo:

Argumento Tipo Padrão Descrição
show bool False Se True, exibe as imagens ou vídeos anotados em uma 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 None, a largura da linha é ajustada automaticamente com base no tamanho da imagem. Fornece personalização visual para clareza.
show_conf bool True Exibe o score de confiança para cada detecção junto com o rótulo. Dá uma ideia da certeza do modelo para cada detecção.
show_labels bool True Exibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados.

Como o VisionEye Funciona

O VisionEye funciona estabelecendo um ponto de visão fixo no frame e traçando linhas deste ponto até os objetos detectados. Isso simula como a visão humana se concentra em vários objetos a partir de um único ponto de vista. A solução usa rastreamento de objetos para manter a identificação consistente de objetos em todos os frames, criando uma representação visual da relação espacial entre o observador (ponto de visão) e os objetos na cena.

O process O método na classe VisionEye executa várias operações importantes:

  1. Extrai rastreamentos (bounding boxes, classes e máscaras) da imagem de entrada
  2. Cria um anotador para desenhar caixas delimitadoras e rótulos
  3. Para cada objeto detectado, desenha um rótulo de caixa e cria uma linha de visão a partir do ponto de visão
  4. Retorna a imagem anotada com estatísticas de rastreamento

Esta abordagem é particularmente útil para aplicações que exigem reconhecimento espacial e visualização de relacionamento de objetos, como sistemas de vigilância, navegação autônoma e instalações interativas.

Aplicações de VisionEye

O mapeamento de objetos VisionEye tem inúmeras aplicações práticas em vários setores:

  • Segurança e Vigilância: Monitore vários objetos de interesse a partir de uma posição de câmera fixa
  • Análise de Varejo: Rastreie os padrões de movimento dos clientes em relação às exposições da loja
  • Análise Desportiva: Analise o posicionamento e o movimento dos jogadores da perspetiva de um treinador.
  • Veículos Autônomos: Visualize como um veículo "vê" e prioriza objetos em seu ambiente
  • Interação Humano-Computador: Crie interfaces mais intuitivas que respondam às relações espaciais

Ao combinar o VisionEye com outras soluções Ultralytics, como cálculo de distância ou estimativa de velocidade, você pode construir sistemas abrangentes que não apenas rastreiam objetos, mas também entendem suas relações espaciais e comportamentos.

Nota

Para qualquer dúvida, sinta-se à vontade para colocar as suas questões na Seção de Problemas do Ultralytics ou na seção de discussão mencionada abaixo.

FAQ

Como começar a usar o VisionEye Object Mapping com Ultralytics YOLO11?

Para começar a usar o VisionEye Object Mapping com o Ultralytics YOLO11, primeiro, você precisará instalar o pacote Ultralytics YOLO via pip. Em seguida, você pode usar o código de amostra fornecido na documentação para configurar a detecção de objetos com o VisionEye. Aqui está um exemplo simples para você começar:

import cv2

from ultralytics import solutions

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

# 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("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init vision eye object
visioneye = solutions.VisionEye(
    show=True,  # display the output
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e, YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
)

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

    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = visioneye(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

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

Por que devo usar Ultralytics YOLO11 para mapeamento e rastreamento de objetos?

O Ultralytics YOLO11 é conhecido por sua velocidade, precisão e facilidade de integração, tornando-o uma excelente escolha para mapeamento e rastreamento de objetos. As principais vantagens incluem:

  1. Desempenho de Última Geração: Oferece alta precisão na detecção de objetos em tempo real.
  2. Flexibilidade: Suporta várias tarefas, como detecção, rastreamento e cálculo de distância.
  3. Comunidade e Suporte: Documentação extensa e comunidade ativa no GitHub para solução de problemas e melhorias.
  4. Facilidade de Uso: A API intuitiva simplifica tarefas complexas, permitindo rápida implantação e iteração.

Para obter mais informações sobre aplicações e benefícios, consulte a documentação do Ultralytics YOLO11.

Como posso integrar o VisionEye com outras ferramentas de aprendizado de máquina, como Comet ou ClearML?

O Ultralytics YOLO11 pode ser integrado perfeitamente com várias ferramentas de machine learning, como Comet e ClearML, aprimorando o rastreamento de experimentos, a colaboração e a reprodutibilidade. Siga os guias detalhados sobre como usar o YOLOv5 com o Comet e integrar o YOLO11 com o ClearML para começar.

Para mais exemplos de exploração e integração, consulte o nosso Guia de Integrações Ultralytics.



📅 Criado há 1 ano ✏️ Atualizado há 2 meses

Comentários