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

Оценка скорости с использованием 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 аргументы:

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
fpsfloat30.0Количество кадров в секунду, используемое для расчетов скорости.
max_histint5Максимальное количество исторических точек для track на объект для вычисления скорости/направления.
meter_per_pixelfloat0.05Коэффициент масштабирования, используемый для преобразования расстояния в пикселях в физические единицы.
max_speedint120Максимальное ограничение скорости в визуальных наложениях (используется в оповещениях).

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

АргументТипПо умолчаниюОписание
trackerstr'botsort.yaml'Указывает алгоритм отслеживания, например, bytetrack.yaml или botsort.yaml.
conffloat0.3Устанавливает порог уверенности для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
ioufloat0.5Устанавливает порог Intersection over Union (IoU) для фильтрации перекрывающихся обнаружений.
classeslistNoneФильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
verboseboolTrueУправляет отображением результатов отслеживания, обеспечивая визуальный вывод отслеживаемых объектов.
devicestrNoneУказывает устройство для инференса (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели.

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

АргументТипПо умолчаниюОписание
showboolFalseЕсли True, отображает аннотированные изображения или видео в окне. Полезно для немедленной визуальной обратной связи во время разработки или тестирования.
line_widthNone or intNoneУказывает ширину линии ограничивающих рамок. Если None, ширина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для большей четкости.
show_confboolTrueОтображает оценку достоверности для каждого обнаружения рядом с меткой. Дает представление об уверенности модели для каждого обнаружения.
show_labelsboolTrueОтображает метки для каждого обнаружения в визуальном выводе. Обеспечивает немедленное понимание обнаруженных объектов.

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

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

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

Пример:

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 год назад ✏️ Обновлено 4 месяца назад
glenn-jocherRizwanMunawarMatthewNoyceaaurelions@gmail.comleonnilUltralyticsAssistantIvorZhu331Burhan-QAyushExel

Комментарии