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

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

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

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



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

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

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

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

  • Точность локализации: Повышает точность пространственного позиционирования в задачах компьютерного зрения.
  • Оценка размера: Позволяет оценить размер объекта для лучшего понимания контекста.
  • Понимание сцены: Улучшает понимание 3D-сцены для принятия решений в таких приложениях, как автономные транспортные средства и системы наблюдения.
  • Предотвращение столкновений: Позволяет системам обнаруживать потенциальные столкновения, отслеживая расстояния между движущимися объектами.
  • Пространственный анализ: Позволяет анализировать взаимосвязи и взаимодействия объектов в контролируемой среде.
Расчет расстояния
  • Для расчета расстояния щелкните левой кнопкой мыши на любых двух ограничивающих границах
  • Щелчок правой кнопкой мыши удалит все нарисованные точки
  • Левый щелчок мыши может использоваться для рисования точек
Расстояние оценивается
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.

Расчет расстояния с помощью 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("distance_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize distance calculation object
distancecalculator = solutions.DistanceCalculation(
    model="yolo11n.pt",  # path to the YOLO11 model file.
    show=True,  # display the output
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = distancecalculator(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

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

Вот таблица с данными DistanceCalculation аргументы:

Аргумент Тип По умолчанию Описание
model str None Путь к файлу модели Ultralytics YOLO .

Вы также можете использовать различные track аргументы в DistanceCalculation решение.

Аргумент Тип По умолчанию Описание
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 Управляет отображением результатов отслеживания, обеспечивая визуальный вывод отслеживаемых объектов.
device str None Указывает устройство для вывода (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели.

Кроме того, доступны следующие аргументы визуализации:

Аргумент Тип По умолчанию Описание
show bool False Если Trueотображает аннотированные изображения или видео в окне. Полезно для немедленной визуальной обратной связи во время разработки или тестирования.
line_width None or int None Определяет ширину линии ограничительных рамок. Если NoneШирина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для наглядности.

Детали реализации

Сайт DistanceCalculation Класс работает, отслеживая объекты в видеокадрах и вычисляя евклидово расстояние между центрами выбранных ограничительных рамок. Когда вы щелкаете по двум объектам, решение:

  1. Извлекает центроиды (центральные точки) выбранных ограничительных блоков
  2. Вычисляет евклидово расстояние между этими центроидами в пикселях
  3. Отображает расстояние на рамке с соединительной линией между объектами

В реализации используется mouse_event_for_distance метод для обработки взаимодействия с мышью, позволяющий пользователям выбирать объекты и снимать выделение по мере необходимости. Сайт process метод обрабатывает кадр за кадром, отслеживает объекты и вычисляет расстояния.

Приложения

Расчет расстояний с помощью YOLO11 имеет множество практических применений:

  • Аналитика розничной торговли: Измерение близости покупателей к товарам и анализ эффективности планировки магазинов
  • Промышленная безопасность: Контроль безопасных расстояний между рабочими и оборудованием
  • Управление дорожным движением: Анализ расстояния между автомобилями и обнаружение отстающих
  • Спортивный анализ: Рассчитывайте расстояния между игроками, мячом и ключевыми позициями на поле
  • Здравоохранение: Обеспечьте надлежащее расстояние в зонах ожидания и следите за перемещением пациентов
  • Робототехника: Обеспечение роботам возможности поддерживать необходимое расстояние до препятствий и людей

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

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

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

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

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

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

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

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

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

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

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

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

  • model: Путь к файлу модели YOLO11 .
  • tracker: Используемый алгоритм отслеживания (по умолчанию 'botsort.yaml').
  • conf: Порог доверия для обнаружений.
  • show: Флаг для отображения вывода.

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

📅 Создано 1 год назад ✏️ Обновлено 5 дней назад

Комментарии