Ultralytics YOLO27:
Get Started

Mapeamento de objetos com VisionEye View usando Ultralytics YOLO26#

O que é o mapeamento de objetos do VisionEye?#

Ultralytics YOLO26 VisionEye permite que computadores identifiquem e localizem objetos, simulando a precisão da visão humana. Essa funcionalidade permite que os computadores reconheçam e foquem em objetos específicos, assim como o olho humano observa detalhes de um determinado ponto de vista.

VisionEye object mapping with YOLO tracking

Mapeie objetos com YOLO26#

O VisionEye fixa um único ponto de observação no quadro e traça um raio desse ponto até cada objeto rastreado, permitindo visualizar como a cena parece a partir de um ponto de vista. Defina vision_point com as coordenadas em pixels do observador e execute a solução no vídeo usando a API do Python ou a CLI.

Mapeamento VisionEye com Ultralytics YOLO
# 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]"

Argumentos de VisionEye#

Aqui está uma tabela com os argumentos de VisionEye:

ArgumentoTipoPadrãoDescrição
modelstrNoneCaminho para um arquivo de modelo Ultralytics YOLO.
vision_pointtuple[int, int](20, 20)O ponto onde a visão irá acompanhar objetos e desenhar trajetórias com a solução VisionEye.
line_widthint2Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução.
verboseboolTrueAtiva o registro por quadro da solução, com o formato da entrada, as contagens por classe e a velocidade de processamento. A chamada de rastreamento em si é sempre silenciosa.

Você também pode usar vários argumentos track na solução VisionEye:

ArgumentoTipoPadrãoDescrição
trackerstr'tracktrack.yaml'Especifica o algoritmo de rastreamento a utilizar. Opções integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Define o limiar de confiança das deteções; valores mais baixos permitem rastrear mais objetos, mas podem incluir falsos positivos.
ioufloat0.7Define o limiar de interseção sobre união (IoU) para filtrar deteções sobrepostas.
classeslistNoneFiltra os resultados pelo índice da classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas.
devicestrNoneEspecifica o dispositivo para a inferência (por exemplo, cpu, cuda:0 ou 0). Permite escolher entre CPU, uma GPU específica ou outros dispositivos de computação para executar o modelo.
imgszint or tuple640Tamanho da imagem de destino para a inferência: um número inteiro para uma imagem quadrada ou um par (height, width). As dimensões são ajustadas ao stride do modelo.
max_detint300Número máximo de deteções mantidas por fotograma antes do rastreamento, limitando os objetos que uma solução processa em cenas densas.
quantizeint or strNonePrecisão de inferência: 16 (FP16) ou 32/unset (FP32) para modelos PyTorch e TorchScript fora da CPU; os outros formatos usam a precisão selecionada pelo artefato e pelo ambiente de execução. Substitui o argumento obsoleto half.

Além disso, há suporte para alguns argumentos de visualização, listados abaixo:

ArgumentoTipoPadrãoDescrição
showboolFalseSe True, exibe as imagens ou os vídeos anotados em uma janela. Útil para obter feedback visual imediato durante o desenvolvimento ou os testes.
show_confboolTrueExibe a pontuação de confiança de cada detecção junto ao rótulo. Mostra o grau de certeza do modelo em cada detecção.
show_labelsboolTrueExibe os rótulos de cada detecção na saída visual. Permite identificar imediatamente os objetos detectados.

Como o VisionEye funciona#

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

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

  1. Extrai rastros (caixas delimitadoras, classes e IDs de rastreamento) 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

Essa abordagem é especialmente útil em aplicações que exigem percepção espacial e visualização das relações entre objetos, como sistemas de vigilância, navegação autônoma e instalações interativas.

Aplicações do VisionEye#

O mapeamento de objetos do 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 fixa da câmera
  • Análise do varejo: rastreie padrões de movimentação dos clientes em relação às exposições da loja
  • Análise esportiva: analise o posicionamento e a movimentação dos jogadores da perspectiva do treinador
  • Veículos autônomos: visualize como um veículo "vê" e prioriza os objetos ao seu redor
  • Interação humano-computador: crie interfaces mais intuitivas que respondam às relações espaciais

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

Perguntas frequentes#

  • Para começar a usar o mapeamento de objetos do VisionEye com Ultralytics YOLO26, primeiro você precisa instalar o pacote Ultralytics YOLO via pip. Em seguida, pode usar o código de exemplo fornecido na documentação para configurar a detecção de objetos com o VisionEye. Veja um exemplo simples para começar:

    import cv2
    
    from ultralytics import solutions
    
    cap = cv2.VideoCapture("path/to/video.mp4")
    assert cap.isOpened(), "Error reading video file"
    
    # Gravador de vídeo
    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))
    
    # Inicializa o objeto vision eye
    visioneye = solutions.VisionEye(
        show=True,  # # Apresenta o resultado
        model="yolo26n.pt",  # usa qualquer modelo compatível com a Ultralytics, por exemplo, yolo26s.pt
        classes=[0, 2],  # gera a visualização visioneye para classes específicas
    )
    
    # Processa o vídeo
    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)  # acessa a saída
    
        video_writer.write(results.plot_im)  # grava o arquivo de vídeo
    
    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()  # fecha todas as janelas abertas
  • Ultralytics YOLO26 é conhecido por sua velocidade, precisão e facilidade de integração, o que o torna uma excelente opção para mapeamento e rastreamento de objetos. Entre as principais vantagens estão:

    1. Desempenho de ponta: oferece alta precisão na detecção de objetos em tempo real.
    2. Flexibilidade: oferece suporte à detecção, ao rastreamento e ao cálculo de distância em um único pipeline.
    3. Comunidade e suporte: documentação abrangente e comunidade ativa no GitHub para solução de problemas e aprimoramentos.
    4. Facilidade de uso: a API intuitiva simplifica tarefas complexas, permitindo implantação e iteração rápidas.

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

  • Ultralytics YOLO26 pode se integrar perfeitamente a várias ferramentas de aprendizado de máquina, como Comet e ClearML, aprimorando o acompanhamento de experimentos, a colaboração e a reprodutibilidade. Siga os guias detalhados sobre como integrar YOLO26 com Comet e como integrar YOLO26 com ClearML para começar.

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

Comentários