Mapeamento de Objetos com Visão VisionEye usando Ultralytics YOLO26 🚀
O que é o Mapeamento de Objetos VisionEye?
Ultralytics YOLO26 VisionEye oferece aos computadores a capacidade de identificar e localizar objetos, simulando a precisão de observação do olho humano. Essa funcionalidade permite que computadores discernam e foquem em objetos específicos, de forma muito semelhante à maneira como o olho humano observa detalhes a partir de um ponto de vista específico.
# 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 do VisionEye
Aqui está uma tabela com os argumentos do VisionEye:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
model | str | None | Caminho para um arquivo de 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 argumentos de track dentro da solução VisionEye:
| Argumento | Tipo | Predefiniçã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.1 | Define o limite de confiança para as detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos. |
iou | float | 0.7 | Define o limite de Intersection over Union (IoU) para filtrar detecções sobrepostas. |
classes | list | None | Filtra resultados pelo índice da 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 | Predefinição | Descrição |
|---|---|---|---|
show | bool | False | Se True, exibe as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste. |
line_width | int or None | None | Especifica a largura da linha das caixas delimitadoras. Se None, a largura da linha é ajustada automaticamente com base no tamanho da imagem. Oferece personalização visual para clareza. |
show_conf | bool | True | Exibe a pontuação de confiança para cada deteção ao lado do rótulo. Dá uma noção da certeza do modelo para cada deteção. |
show_labels | bool | True | Exibe rótulos para cada deteção na saída visual. Proporciona uma compreensão imediata dos objetos detetados. |
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 múltiplos objetos a partir de um único ponto de vista. A solução usa rastreamento de objetos para manter a identificação consistente dos objetos entre 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 na classe VisionEye realiza várias operações importantes:
- Extrai rastreamentos (caixas delimitadoras, classes e máscaras) da imagem de entrada
- Cria um anotador para desenhar caixas delimitadoras e rótulos
- Para cada objeto detectado, desenha um rótulo de caixa e cria uma linha de visão a partir do ponto de visão
- Retorna a imagem anotada com estatísticas de rastreamento
Essa abordagem é particularmente útil para aplicações que exigem consciência espacial e visualização de relacionamento de 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 diversos setores:
- Segurança e Vigilância: Monitore vários objetos de interesse a partir de uma posição fixa de câmera
- Análise de Varejo: Rastreie padrões de movimento de clientes em relação a displays da loja
- Análise Esportiva: Analise o posicionamento e o movimento dos jogadores da perspectiva de um treinador
- Veículos Autônomos: Visualize como um veículo "enxerga" e prioriza objetos em seu ambiente
- Interação Humano-Computador: Crie interfaces mais intuitivas que respondam a 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 construir sistemas abrangentes que não apenas rastreiam objetos, mas também entendem suas relações espaciais e comportamentos.
Nota
Para qualquer dúvida, fique à vontade para postar suas perguntas na Seção de Issues do Ultralytics ou na seção de discussão mencionada abaixo.
FAQ
Como começo a usar o Mapeamento de Objetos VisionEye com Ultralytics YOLO26?
Para começar a usar o Mapeamento de Objetos VisionEye com Ultralytics YOLO26, primeiro, você precisará instalar o pacote Ultralytics YOLO via pip. Em seguida, você pode usar o código de exemplo 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="yolo26n.pt", # use any model that Ultralytics supports, e.g., 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 windowsPor que devo usar o Ultralytics YOLO26 para mapeamento e rastreamento de objetos?
O Ultralytics YOLO26 é reconhecido por sua velocidade, precisão e facilidade de integração, tornando-o uma das melhores escolhas para mapeamento e rastreamento de objetos. As principais vantagens incluem:
- Desempenho de Ponta: Oferece alta precisão na detecção de objetos em tempo real.
- Flexibilidade: Suporta várias tarefas, como detecção, rastreamento e cálculo de distância.
- Comunidade e Suporte: Documentação extensa e uma comunidade ativa no GitHub para solução de problemas e melhorias.
- Facilidade de Uso: A API intuitiva simplifica tarefas complexas, permitindo rápida implementação e iteração.
Para mais informações sobre aplicações e benefícios, confira a documentação do Ultralytics YOLO26.
Como posso integrar o VisionEye com outras ferramentas de aprendizado de máquina como Comet ou ClearML?
O Ultralytics YOLO26 pode ser integrado perfeitamente a várias ferramentas de aprendizado de máquina, 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 Comet e integrar o YOLO26 com ClearML para começar.
Para mais explorações e exemplos de integração, confira nosso Guia de Integrações da Ultralytics.