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

Оценка скорости с использованием Ultralytics YOLO11 🚀

Что такое оценка скорости?

Оценка скорости - это процесс вычисления скорости движения объекта в заданном контексте, часто используемый в приложениях компьютерного зрения. Используя Ultralytics YOLO11, теперь вы можете вычислять скорость объектов, используя отслеживание объектов наряду с данными о расстоянии и времени, что имеет решающее значение для таких задач, как мониторинг дорожного движения и наблюдение. Точность оценки скорости напрямую влияет на эффективность и надежность различных приложений, что делает ее ключевым компонентом в развитии интеллектуальных систем и процессов принятия решений в реальном времени.



Смотреть: Оценка скорости с использованием Ultralytics YOLO11

Посмотрите наш блог

Для более глубокого понимания оценки скорости, ознакомьтесь с нашей статьей в блоге: Ultralytics YOLO11 для оценки скорости в проектах компьютерного зрения

Преимущества оценки скорости

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

Приложения в реальном мире

Транспорт Транспорт
Оценка скорости на дороге с использованием Ultralytics YOLO11 Оценка скорости на мосту с использованием Ultralytics YOLO11
Оценка скорости на дороге с использованием Ultralytics YOLO11 Оценка скорости на мосту с использованием Ultralytics YOLO11
Скорость является оценочной

Скорость будет оценочной и может быть не совсем точной. Кроме того, оценка может варьироваться в зависимости от спецификаций камеры и связанных с этим факторов.

Оценка скорости с использованием Ultralytics YOLO

# Run a speed example
yolo solutions speed show=True

# Pass a source video
yolo solutions speed source="path/to/video.mp4"

# Adjust meter per pixel value based on camera configuration
yolo solutions speed meter_per_pixel=0.05
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("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    fps=fps,  # adjust speed based on frame per second
    # max_speed=120,  # cap speed to a max value (km/h) to avoid outliers
    # max_hist=5,  # minimum frames object tracked before computing speed
    # meter_per_pixel=0.05,  # highly depends on the camera configuration
    # classes=[0, 2],  # estimate speed of specific classes.
    # line_width=2,  # adjust the line width for bounding boxes
)

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

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

    results = speedestimator(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

SpeedEstimator Аргументы

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

Аргумент Тип По умолчанию Описание
model str None Путь к файлу модели Ultralytics YOLO.
fps float 30.0 Количество кадров в секунду, используемое для расчетов скорости.
max_hist int 5 Максимальное количество исторических точек для отслеживания каждого объекта для вычисления скорости/направления.
meter_per_pixel float 0.05 Коэффициент масштабирования, используемый для преобразования расстояния в пикселях в физические единицы.
max_speed int 120 Максимальное ограничение скорости в визуальных наложениях (используется в оповещениях).

Параметр SpeedEstimator Решение позволяет использовать track параметры:

Аргумент Тип По умолчанию Описание
tracker str 'botsort.yaml' Указывает алгоритм отслеживания, например, bytetrack.yaml или botsort.yaml.
conf float 0.3 Устанавливает порог уверенности для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
iou float 0.5 Устанавливает порог Intersection over Union (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, ширина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для большей четкости.
show_conf bool True Отображает оценку достоверности для каждого обнаружения рядом с меткой. Дает представление об уверенности модели для каждого обнаружения.
show_labels bool True Отображает метки для каждого обнаружения в визуальном выводе. Обеспечивает немедленное понимание обнаруженных объектов.

Часто задаваемые вопросы

Как оценить скорость объекта с помощью Ultralytics YOLO11?

Оценка скорости объектов с помощью Ultralytics YOLO11 включает в себя объединение методов обнаружения объектов и отслеживания. Сначала необходимо обнаружить объекты в каждом кадре с помощью модели YOLO11. Затем отслеживайте эти объекты между кадрами, чтобы рассчитать их перемещение во времени. Наконец, используйте расстояние, пройденное объектом между кадрами, и частоту кадров, чтобы оценить его скорость.

Пример:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize SpeedEstimator
speedestimator = solutions.SpeedEstimator(
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = speedestimator(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Для получения более подробной информации обратитесь к нашей официальной публикации в блоге.

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

Использование Ultralytics YOLO11 для оценки скорости предлагает значительные преимущества в управлении дорожным движением:

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

Дополнительные примеры применения см. в разделе преимущества оценки скорости.

Можно ли интегрировать YOLO11 с другими AI фреймворками, такими как TensorFlow или PyTorch?

Да, YOLO11 можно интегрировать с другими AI-фреймворками, такими как TensorFlow и PyTorch. Ultralytics обеспечивает поддержку экспорта моделей YOLO11 в различные форматы, такие как ONNX, TensorRT и CoreML, обеспечивая плавную совместимость с другими ML-фреймворками.

Чтобы экспортировать модель YOLO11 в формат ONNX:

yolo export model=yolo11n.pt format=onnx

Узнайте больше об экспорте моделей в нашем руководстве по экспорту.

Насколько точна оценка скорости с использованием Ultralytics YOLO11?

Точность оценки скорости с использованием Ultralytics YOLO11 зависит от нескольких факторов, включая качество отслеживания объектов, разрешение и частоту кадров видео, а также переменные окружающей среды. Хотя средство оценки скорости предоставляет надежные оценки, оно может быть не на 100% точным из-за различий в скорости обработки кадров и окклюзии объектов.

Примечание: Всегда учитывайте погрешность и, по возможности, проверяйте оценки с помощью достоверных данных.

Дополнительные советы по повышению точности см. в разделе Аргументы SpeedEstimator разделе.



📅 Создано 1 год назад ✏️ Обновлено 1 месяц назад

Комментарии