Salta para o conteúdo

Distance Calculation using Ultralytics YOLO11

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

Measuring the gap between two objects is known as distance calculation within a specified space. In the case of Ultralytics YOLO11, the bounding box centroid is employed to calculate the distance for bounding boxes highlighted by the user.



Observa: Distance Calculation using Ultralytics YOLO11

Visuais

Distance Calculation using Ultralytics YOLO11
Ultralytics YOLO11 Distance Calculation

Vantagens do cálculo da distância?

  • Localization Precision: Enhances accurate spatial positioning in computer vision tasks.
  • Size Estimation: Allows estimation of object size for better contextual understanding.
Cálculo da distância
  • Clica em quaisquer duas caixas delimitadoras com o botão esquerdo do rato para calcular a distância

Distance Calculation using YOLO11 Example

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)

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
  • Clica com o botão direito do rato para apagar todos os pontos desenhados
  • O clique esquerdo do rato pode ser utilizado para desenhar pontos
Distance is Estimate
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()

NameTypeDefaultDescrição
modelstrNonePath to Ultralytics YOLO Model File
line_widthint2Espessura da linha para caixas delimitadoras.
showboolFalseSinalizador para controlar se o fluxo de vídeo deve ser apresentado.

Argumentos model.track

ArgumentaTipoPredefiniçãoDescrição
sourcestrNoneSpecifies the source directory for images or videos. Supports file paths and URLs.
persistboolFalseEnables persistent tracking of objects between frames, maintaining IDs across video sequences.
trackerstrbotsort.yamlSpecifies the tracking algorithm to use, e.g., bytetrack.yaml ou botsort.yaml.
conffloat0.3Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives.
ioufloat0.5Sets the Intersection over Union (IoU) threshold for filtering overlapping detections.
classeslistNoneFilters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes.
verboseboolTrueControls the display of tracking results, providing a visual output of tracked objects.

FAQ

How do I calculate distances between objects using Ultralytics YOLO11?

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

What are the advantages of using distance calculation with Ultralytics YOLO11?

Using distance calculation with Ultralytics YOLO11 offers several advantages:

  • 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 da cena 3D, ajudando a melhorar a tomada de decisões em aplicações como a condução autónoma e a vigilância.

Can I perform distance calculation in real-time video streams with Ultralytics YOLO11?

Yes, you can perform distance calculation in real-time video streams with Ultralytics YOLO11. The process involves capturing video frames using OpenCV, running YOLO11 object detection, and using the DistanceCalculation para calcular as distâncias entre objectos em fotogramas sucessivos. Para uma implementação detalhada, vê a exemplo de fluxo de vídeo.

How do I delete points drawn during distance calculation using Ultralytics YOLO11?

To delete points drawn during distance calculation with Ultralytics YOLO11, you can use a right mouse click. This action will clear all the points you have drawn. For more details, refer to the note section under the distance calculation example.

What are the key arguments for initializing the DistanceCalculation class in Ultralytics YOLO11?

Os argumentos chave para inicializar o DistanceCalculation class in Ultralytics YOLO11 include:

  • model: Model file path.
  • show: Sinalizador para indicar se o fluxo de vídeo deve ser apresentado.
  • line_width: Thickness of bounding box and the lines drawn on the image.

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

📅 Created 9 months ago ✏️ Updated 9 days ago

Comentários