Ultralytics YOLO27:

Mapeamento de Objetos de Visão VisionEye usando Ultralytics YOLO26#

O que é o mapeamento de objetos VisionEye?#

Ultralytics YOLO26 VisionEye oferece a capacidade de os computadores identificarem e localizarem objetos, simulando a precisão do olho humano. Esta funcionalidade permite que os computadores distingam e foquem objetos específicos, tal como o olho humano observa detalhes a partir de um determinado ponto de vista.

VisionEye object mapping with YOLO tracking

Mapeia objetos com YOLO26#

VisionEye fixa um único ponto de observação no fotograma e traça um raio desse ponto até cada objeto rastreado, para que possas visualizar como uma cena é vista a partir de um determinado ponto de vista. Define vision_point como as coordenadas dos píxeis do observador e, em seguida, executa a solução no teu vídeo com a API Python ou a CLI.

Mapeamento VisionEye usando 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#

Eis uma tabela com os argumentos de VisionEye:

ArgumentoTipoPredefiniçãoDescrição
modelstrNoneCaminho para um ficheiro de modelo YOLO da Ultralytics.
vision_pointtuple[int, int](20, 20)O ponto onde a visão rastreia objetos e desenha trajetórias usando a solução VisionEye.
line_widthint2Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução.
verboseboolTrueAtiva o registo por fotograma da solução, incluindo a forma da entrada, as contagens por classe e a velocidade de processamento. A chamada de rastreamento permanece sempre silenciosa.

Também podes utilizar vários argumentos track na solução VisionEye:

ArgumentoTipoPredefiniçãoDescrição
trackerstr'botsort.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 para as deteções; valores mais baixos permitem rastrear mais objetos, mas podem incluir falsos positivos.
ioufloat0.7Define o limiar de Interseção sobre a 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 selecionar entre CPU, uma GPU específica ou outros dispositivos de computação para executar o modelo.
imgszint or tuple640Tamanho da imagem de inferência alvo: um inteiro para um quadrado ou um par (height, width). As formas são ajustadas para o passo do modelo.
max_detint300Número máximo de detecções mantidas por quadro 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/não definido (FP32) para modelos PyTorch e TorchScript; outros formatos computam na precisão que o artefato e o tempo de execução selecionam. Substitui a flag obsoleta half.

Além disso, são compatíveis alguns argumentos de visualização, conforme indicado abaixo:

ArgumentoTipoPredefiniçãoDescrição
showboolFalseSe True, apresenta as imagens ou vídeos anotados numa janela. É útil para obter feedback visual imediato durante o desenvolvimento ou os testes.
show_confboolTrueApresenta a pontuação de confiança de cada deteção junto à etiqueta. Permite compreender o grau de certeza do modelo em cada deteção.
show_labelsboolTrueApresenta etiquetas para cada deteção no resultado visual. Permite compreender imediatamente os objetos detetados.

Como funciona o VisionEye#

O VisionEye funciona estabelecendo um ponto de visão fixo no fotograma e traçando linhas desse ponto até aos objetos detetados. Isto simula a forma como a visão humana foca vários objetos a partir de um único ponto de vista. A solução utiliza o rastreamento de objetos para manter uma identificação consistente dos objetos entre fotogramas, 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 na classe VisionEye executa várias operações fundamentais:

  1. Extrai as trajetórias (caixas delimitadoras, classes e máscaras) da imagem de entrada
  2. Cria um anotador para desenhar caixas delimitadoras e etiquetas
  3. Para cada objeto detetado, desenha uma etiqueta de caixa e cria uma linha de visão a partir do ponto de visão
  4. Devolve a imagem anotada com estatísticas de rastreamento

Esta abordagem é particularmente útil para aplicações que exigem perceçã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 VisionEye tem inúmeras aplicações práticas em vários setores:

  • Segurança e vigilância: Monitoriza vários objetos de interesse a partir de uma posição fixa da câmara
  • Análise de retalho: Rastreia os padrões de movimento dos clientes em relação às exposições da loja
  • Análise desportiva: Analisa o posicionamento e o movimento dos jogadores a partir da perspetiva de um treinador
  • Veículos autónomos: Visualiza como um veículo "vê" e prioriza objetos no seu ambiente
  • Interação homem-computador: Cria interfaces mais intuitivas que respondem às relações espaciais

Ao combinar o VisionEye com outras soluções da Ultralytics, como o cálculo de distâncias ou a estimativa de velocidade, podes criar sistemas abrangentes que não só rastreiam objetos, mas também compreendem as suas relações espaciais e comportamentos.

Perguntas frequentes#

  • Para começares a utilizar o mapeamento de objetos VisionEye com Ultralytics YOLO26, primeiro tens de instalar o pacote Ultralytics YOLO através do pip. Depois, podes utilizar o código de exemplo fornecido na documentação para configurar a deteção de objetos com o VisionEye. Aqui tens um exemplo simples para começares:

    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="yolo26n.pt",  # use any model that Ultralytics supports, e.g., yolo26s.pt
        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
  • Ultralytics YOLO26 é reconhecido pela sua velocidade, precisão e facilidade de integração, o que faz dele uma excelente escolha para o mapeamento e rastreamento de objetos. As principais vantagens incluem:

    1. Desempenho de última geração: Oferece elevada precisão na deteção de objetos em tempo real.
    2. Flexibilidade: Suporta deteção, rastreamento e cálculo de distâncias num único pipeline.
    3. Comunidade e suporte: Documentação abrangente e uma comunidade ativa no GitHub para resolução de problemas e melhorias.
    4. Facilidade de utilização: A API intuitiva simplifica tarefas complexas, permitindo uma implementação e iteração rápidas.

    Para obteres mais informações sobre aplicações e vantagens, consulta a documentação do Ultralytics YOLO26.

  • Ultralytics YOLO26 pode integrar-se facilmente com várias ferramentas de aprendizagem automática, como Comet e ClearML, melhorando o acompanhamento de experiências, a colaboração e a reprodutibilidade. Consulta os guias detalhados sobre como utilizar YOLOv5 com Comet e integrar YOLO26 com ClearML para começares.

    Para explorares mais exemplos de utilização e integração, consulta o nosso Guia de integrações da Ultralytics.

Comentários