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 |
---|
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()
Name | Type | Default | Descrição |
---|---|---|---|
model | str | None | Path to Ultralytics YOLO Model File |
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
Argumenta | Tipo | Predefinição | Descrição |
---|---|---|---|
source | str | None | Specifies the source directory for images or videos. Supports file paths and URLs. |
persist | bool | False | Enables persistent tracking of objects between frames, maintaining IDs across video sequences. |
tracker | str | botsort.yaml | Specifies the tracking algorithm to use, e.g., bytetrack.yaml ou botsort.yaml . |
conf | float | 0.3 | Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives. |
iou | float | 0.5 | Sets the Intersection over Union (IoU) threshold for filtering overlapping detections. |
classes | list | None | Filters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes. |
verbose | bool | True | Controls 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.