Saltar para o conteúdo

Mapeamento de objectos VisionEye View utilizando Ultralytics YOLO11 🚀

O que é o mapeamento de objectos VisionEye?

Ultralytics YOLO11 O VisionEye oferece a capacidade de os computadores identificarem e localizarem objectos, simulando a precisão de observação do olho humano. Esta funcionalidade permite aos computadores discernir e focar objectos específicos, de forma muito semelhante à forma como o olho humano observa os detalhes de um determinado ponto de vista.

VisionEye View Mapeamento de objectos com seguimento de objectos utilizando Ultralytics YOLO11

Mapeamento VisionEye utilizando 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]"
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 os VisionEye argumentos:

Argumento Tipo Predefinição Descrição
model str None Caminho para o ficheiro do modelo Ultralytics YOLO .
vision_point tuple[int, int] (50, 50) O ponto em que a visão irá rastrear objectos e desenhar caminhos utilizando a solução VisionEye.

Também é possível utilizar vários track argumentos dentro do VisionEye solução:

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.

Para além disso, são apoiados alguns argumentos de visualização, como se indica a seguir:

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.

Como funciona o VisionEye

O VisionEye funciona estabelecendo um ponto de visão fixo na moldura e desenhando linhas a partir desse ponto até aos objectos detectados. Isto simula a forma como a visão humana se concentra em vários objectos a partir de um único ponto de vista. A solução utiliza o seguimento de objectos para manter uma identificação consistente dos objectos em todos os fotogramas, criando uma representação visual da relação espacial entre o observador (ponto de visão) e os objectos na cena.

O process da classe VisionEye efectua várias operações importantes:

  1. Extrai trajectos (caixas delimitadoras, 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 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 seguimento

Esta abordagem é particularmente útil para aplicações que requerem consciência espacial e visualização de relações entre objectos, tais como sistemas de vigilância, navegação autónoma e instalações interactivas.

Aplicações do VisionEye

O mapeamento de objectos VisionEye tem inúmeras aplicações práticas em várias indústrias:

  • Segurança e vigilância: Monitorizar vários objectos de interesse a partir de uma posição fixa da câmara
  • Análise de retalho: Acompanhar os padrões de movimento dos clientes em relação aos expositores da loja
  • Análise desportiva: Analisar o posicionamento e o movimento dos jogadores na perspetiva de um treinador
  • Veículos autónomos: Visualizar como um veículo "vê" e dá prioridade aos objectos no seu ambiente
  • Interação Homem-Computador: Criar interfaces mais intuitivas que respondam às relações espaciais

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

Nota

Para quaisquer questões, não hesite em colocar as suas perguntas na secção de questõesUltralytics ou na secção de discussão mencionada abaixo.

FAQ

Como é que começo a utilizar o mapeamento de objectos do VisionEye com Ultralytics YOLO11 ?

Para começar a usar o mapeamento de objetos do VisionEye com Ultralytics YOLO11 , primeiro, é necessário instalar o pacote Ultralytics YOLO via pip. Em seguida, pode utilizar o código de exemplo fornecido na documentação para configurar a deteção de objectos com o VisionEye. Aqui está 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"

# 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 razão devo utilizar Ultralytics YOLO11 para mapeamento e localização de objectos?

Ultralytics YOLO11 é conhecido pela sua velocidade, precisão e facilidade de integração, tornando-o uma escolha de topo para mapeamento e localização de objectos. As principais vantagens incluem:

  1. Desempenho topo de gama: Proporciona uma elevada precisão na deteção de objectos em tempo real.
  2. Flexibilidade: Suporta várias tarefas, como a deteção, o seguimento e o cálculo de distâncias.
  3. Comunidade e suporte: Documentação extensa e comunidade GitHub ativa para resolução de problemas e melhorias.
  4. Facilidade de utilização: A API intuitiva simplifica tarefas complexas, permitindo uma rápida implementação e iteração.

Para mais informações sobre aplicações e benefícios, consulte a documentaçãoUltralytics YOLO11 .

Como é que posso integrar o VisionEye com outras ferramentas de aprendizagem automática, como Comet ou ClearML?

Ultralytics YOLO11 pode integrar-se perfeitamente com várias ferramentas de aprendizagem automática, como Comet e ClearML, melhorando o acompanhamento, a colaboração e a reprodutibilidade das experiências. Siga os guias detalhados sobre como utilizar YOLOv5 com Comet e integrar YOLO11 com ClearML para começar.

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

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

Comentários