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.
Mapeamento VisionEye utilizando Ultralytics YOLO
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 True apresenta 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 None A 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:
- Extrai trajectos (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 uma etiqueta de caixa e cria uma linha de visão a partir do ponto de visão
- 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:
- Desempenho topo de gama: Proporciona uma elevada precisão na deteção de objectos em tempo real.
- Flexibilidade: Suporta várias tarefas, como a deteção, o seguimento e o cálculo de distâncias.
- Comunidade e suporte: Documentação extensa e comunidade GitHub ativa para resolução de problemas e melhorias.
- 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.