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 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:
- Extrai rastreamentos (bounding boxes, 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
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:
- Desempenho de Última Geração: 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 comunidade ativa no GitHub para solução de problemas e melhorias.
- 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.