Перейти к содержанию

Вычисление расстояния с помощью Ultralytics YOLO11

Что такое расчет расстояния?

Измерение расстояния между двумя объектами известно как расчет расстояния в заданном пространстве. В случае с Ultralytics YOLO11для вычисления расстояния до выделенных пользователем границ используется центроид ограничительной рамки.



Смотреть: Вычисление расстояния с помощью Ultralytics YOLO11

Визуальные средства

Вычисление расстояния с помощью Ultralytics YOLO11
Ultralytics YOLO11 Расчет расстояния

Преимущества расчета расстояния?

  • Точность локализации: Повышает точность пространственного позиционирования в задачах компьютерного зрения.
  • Оценка размера: Позволяет оценить размер объекта для лучшего понимания контекста.
Расчет расстояния
  • Для расчета расстояния щелкните левой кнопкой мыши на любых двух ограничивающих границах

Вычисление расстояния с помощью YOLO11 Пример

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()
Примечание
  • Щелчок правой кнопкой мыши удалит все нарисованные точки
  • Левый щелчок мыши может использоваться для рисования точек
Расстояние оценивается
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.

Аргументы DistanceCalculation()

Name Type Default Описание
model str None Путь к файлу модели Ultralytics YOLO
line_width int 2 Толщина линий для ограничительных рамок.
show bool False Флаг для контроля отображения видеопотока.

Аргументы model.track

Аргумент Тип По умолчанию Описание
source str None Указывает исходный каталог для изображений или видео. Поддерживаются пути к файлам и URL-адреса.
persist bool False Обеспечивает постоянное отслеживание объектов между кадрами, сохраняя идентификаторы во всех видеопоследовательностях.
tracker str botsort.yaml Указывает используемый алгоритм отслеживания, например, bytetrack.yaml или botsort.yaml.
conf float 0.3 Устанавливает порог доверия для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
iou float 0.5 Устанавливает порог пересечения над объединением (IoU) для фильтрации перекрывающихся обнаружений.
classes list None Фильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
verbose bool True Управляет отображением результатов отслеживания, обеспечивая визуальный вывод отслеживаемых объектов.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как вычислить расстояние между объектами с помощью Ultralytics YOLO11 ?

Вычисление расстояний между объектами с помощью Ultralytics YOLO11Вам нужно определить центроиды ограничительных рамок обнаруженных объектов. Этот процесс включает в себя инициализацию DistanceCalculation класс из Ultralytics' solutions модуль и использовать результаты отслеживания модели для расчета расстояний. Вы можете обратиться к реализации в пример расчета расстояния.

Каковы преимущества использования расчета расстояний с помощью Ultralytics YOLO11 ?

Использование расчета расстояний с помощью Ultralytics YOLO11 имеет ряд преимуществ:

  • Точность локализации: Обеспечивает точное пространственное позиционирование объектов.
  • Оценка размеров: Помогает оценить физические размеры, способствуя лучшему пониманию контекста.
  • Понимание сцены: Улучшает восприятие трехмерных сцен, способствуя принятию решений в таких приложениях, как автономное вождение и наблюдение.

Могу ли я выполнять расчет расстояния в видеопотоках в реальном времени с помощью Ultralytics YOLO11 ?

Да, вы можете выполнять расчет расстояния в видеопотоках в реальном времени с помощью Ultralytics YOLO11 . Процесс включает в себя захват видеокадров с помощью OpenCV, бег YOLO11 обнаружение объектов, и используя DistanceCalculation класс для вычисления расстояний между объектами в последовательных кадрах. Подробную реализацию см. в разделе пример видеопотока.

Как удалить точки, построенные при расчете расстояния с помощью Ultralytics YOLO11 ?

Для удаления точек, построенных при расчете расстояния с помощью Ultralytics YOLO11 , можно воспользоваться правой кнопкой мыши. Это действие очистит все нарисованные точки. Более подробную информацию см. в разделе примечаний под примером расчета расстояния.

Каковы основные аргументы для инициализации класса DistanceCalculation в Ultralytics YOLO11 ?

Основные аргументы для инициализации DistanceCalculation класс в Ultralytics YOLO11 включают:

  • model: Путь к файлу модели.
  • show: Флаг, указывающий, следует ли отображать видеопоток.
  • line_width: Толщина ограничительной рамки и линий, нарисованных на изображении.

Исчерпывающий список и значения по умолчанию см. в аргументах DistanceCalculation.

📅 Created 11 months ago ✏️ Updated 29 days ago

Комментарии