Saltar para o conteĂşdo

Cálculo da distância utilizando Ultralytics YOLO11

O que é o cálculo da distância?

A medição da distância entre dois objectos é conhecida como cálculo de distância dentro de um determinado espaço. No caso do Ultralytics YOLO11o centróide da caixa delimitadora é utilizado para calcular a distância das caixas delimitadoras destacadas pelo utilizador.



Ver: Cálculo da distância utilizando Ultralytics YOLO11

Visuais

Cálculo da distância utilizando Ultralytics YOLO11
Ultralytics YOLO11 Cálculo da distância

Vantagens do cálculo da distância?

  • PrecisĂŁo de localização: Melhora o posicionamento espacial exato em tarefas de visĂŁo por computador.
  • Estimativa de tamanho: Permite estimar o tamanho do objeto para uma melhor compreensĂŁo contextual.
Cálculo da distância
  • Clique em quaisquer duas caixas delimitadoras com o botĂŁo esquerdo do rato para calcular a distância

Cálculo da distância utilizando YOLO11 Exemplo

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
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
video_writer = cv2.VideoWriter("distance_calculation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init distance-calculation obj
distance = solutions.DistanceCalculation(model="yolo11n.pt", show=True)

# 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
    im0 = distance.calculate(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
Nota
  • O clique com o botĂŁo direito do rato elimina todos os pontos desenhados
  • O clique esquerdo do rato pode ser utilizado para desenhar pontos
A distância é estimada
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data, which lacks information about the object's depth.

Argumentos DistanceCalculation()

Name Type Default Descrição
model str None Caminho para Ultralytics YOLO Modelo de ficheiro
line_width int 2 Espessura da linha para caixas delimitadoras.
show bool False Sinalizador para controlar se o fluxo de vĂ­deo deve ser apresentado.

Argumentos model.track

Argumento Tipo Predefinição Descrição
source str None Especifica o diretĂłrio de origem para imagens ou vĂ­deos. Suporta caminhos de ficheiros e URLs.
persist bool False Permite o rastreio persistente de objectos entre fotogramas, mantendo as IDs nas sequĂŞncias de vĂ­deo.
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.

FAQ

Como calcular as distâncias entre objectos utilizando Ultralytics YOLO11 ?

Para calcular distâncias entre objectos utilizando Ultralytics YOLO11Para identificar os centróides da caixa delimitadora dos objectos detectados. Este processo envolve a inicialização do DistanceCalculation classe de Ultralytics' solutions e utilizando as saídas de rastreio do modelo para calcular as distâncias. Pode consultar a implementação na secção exemplo de cálculo de distância.

Quais são as vantagens de utilizar o cálculo de distâncias com Ultralytics YOLO11 ?

A utilização do cálculo da distância com Ultralytics YOLO11 oferece várias vantagens:

  • PrecisĂŁo de localização: Fornece um posicionamento espacial preciso para os objectos.
  • Estimativa de tamanho: Ajuda a estimar tamanhos fĂ­sicos, contribuindo para uma melhor compreensĂŁo do contexto.
  • CompreensĂŁo de cenas: Melhora a compreensĂŁo de cenas 3D, ajudando a melhorar a tomada de decisões em aplicações como a condução autĂłnoma e a vigilância.

Posso efetuar o cálculo da distância em fluxos de vídeo em tempo real com Ultralytics YOLO11 ?

Sim, pode efetuar o cálculo da distância em fluxos de vídeo em tempo real com Ultralytics YOLO11 . O processo envolve a captura de fotogramas de vídeo utilizando OpenCV, a correr YOLO11 deteção de objectose utilizando o DistanceCalculation para calcular as distâncias entre objectos em fotogramas sucessivos. Para uma implementação detalhada, consulte a classe exemplo de fluxo de vídeo.

Como é que elimino os pontos desenhados durante o cálculo da distância utilizando Ultralytics YOLO11 ?

Para apagar os pontos desenhados durante o cálculo da distância com Ultralytics YOLO11 , pode utilizar o botão direito do rato. Esta ação irá apagar todos os pontos que desenhou. Para mais detalhes, consulte a secção de notas sob o exemplo de cálculo de distância.

Quais sĂŁo os argumentos chave para inicializar a classe DistanceCalculation em Ultralytics YOLO11 ?

Os principais argumentos para inicializar o DistanceCalculation classe em Ultralytics YOLO11 incluem:

  • model: Caminho do ficheiro modelo.
  • show: Sinalizador para indicar se o fluxo de vĂ­deo deve ser apresentado.
  • line_width: Espessura da caixa delimitadora e das linhas desenhadas na imagem.

Para uma lista exaustiva e valores por defeito, consulte os argumentos de DistanceCalculation.

📅 Created 11 months ago ✏️ Updated 29 days ago

Comentários