Оценка скорости с помощью Ultralytics YOLO11 🚀
Что такое оценка скорости?
Оценка скорости - это процесс вычисления скорости движения объекта в заданном контексте, часто используемый в приложениях компьютерного зрения. Использование Ultralytics YOLO11 вы можете рассчитать скорость объектов, используя отслеживание объектов наряду с данными о расстоянии и времени, что очень важно для таких задач, как мониторинг и наблюдение за дорожным движением. Точность оценки скорости напрямую влияет на эффективность и надежность различных приложений, что делает ее ключевым компонентом в развитии интеллектуальных систем и процессов принятия решений в реальном времени.
Смотреть: Оценка скорости с помощью Ultralytics YOLO11
Загляните в наш блог
Для более глубокого понимания оценки скорости ознакомьтесь с нашей статьей в блоге: Ultralytics YOLO11 для оценки скорости в проектах компьютерного зрения.
Преимущества оценки скорости
- Эффективное управление дорожным движением: Точная оценка скорости помогает управлять транспортным потоком, повышает безопасность и уменьшает заторы на дорогах.
- Точная автономная навигация: В автономных системах, таких как самоуправляемые автомобили, надежная оценка скорости обеспечивает безопасную и точную навигацию транспортного средства.
- Повышенная безопасность наблюдения: Оценка скорости в аналитике наблюдения помогает выявить необычное поведение или потенциальные угрозы, повышая эффективность мер безопасности.
Применение в реальном мире
Транспорт | Транспорт |
---|---|
![]() |
![]() |
Оценка скорости на дороге с помощью Ultralytics YOLO11 | Оценка скорости на мосту с помощью Ultralytics YOLO11 |
Скорость - это оценка
Скорость является приблизительной и может быть не совсем точной. Кроме того, оценка может меняться в зависимости от скорости GPU и факторов окружающей среды.
Оценка скорости с помощью 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("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# speed region points
speed_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
show=True, # display the output
model="yolo11n.pt", # path to the YOLO11 model file.
region=speed_region, # pass region points
# 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 . |
region |
list |
[(20, 400), (1260, 400)] |
Список точек, определяющих область подсчета. |
Сайт SpeedEstimator
решение позволяет использовать track
параметры:
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
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 Ширина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для наглядности. |
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Как оценить скорость объекта с помощью 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(
region=[(0, 360), (1280, 360)],
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 с другими ИИ-фреймворками, такими как TensorFlow или PyTorch?
Да, YOLO11 можно интегрировать с другими AI-фреймворками, такими как TensorFlow и PyTorch. Ultralytics поддерживает экспорт моделей YOLO11 в различные форматы, такие как ONNX, TensorRTи CoreMLи CoreML, обеспечивая совместимость с другими ML-фреймворками.
Чтобы экспортировать модель YOLO11 в формат ONNX , выполните следующие действия:
Узнайте больше об экспорте моделей в нашем руководстве по экспорту.
Насколько точна оценка скорости с помощью Ultralytics YOLO11 ?
Точность оценки скорости с помощью Ultralytics YOLO11 зависит от нескольких факторов, включая качество отслеживания объектов, разрешение и частоту кадров видео, а также переменные окружающей среды. Несмотря на то, что программа оценки скорости дает надежные оценки, она может быть не на 100% точной из-за различий в скорости обработки кадров и окклюзии объектов.
Примечание: Всегда учитывайте погрешность и, по возможности, проверяйте оценки с помощью наземных данных.
Дополнительные советы по улучшению точности можно найти в разделе Аргументы SpeedEstimator
раздел.