Перейти к содержимому

Оценка скорости с помощью Ultralytics YOLOv8 🚀.

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

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



Смотри: Оценка скорости с помощью Ultralytics YOLOv8

Загляни в наш блог

Чтобы глубже разобраться в оценке скорости, прочитай наш пост в блоге: Ultralytics YOLOv8 for Speed Estimation in Computer Vision Projects.

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

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

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

Транспорт Транспорт
Оценка скорости на дороге с помощью Ultralytics YOLOv8 Оценка скорости на мосту с помощью Ultralytics YOLOv8
Оценка скорости на дороге с помощью Ultralytics YOLOv8 Оценка скорости на мосту с помощью Ultralytics YOLOv8

Оценка скорости с помощью примера YOLOv8

import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
names = model.model.names

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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

line_pts = [(0, 360), (1280, 360)]

# Init speed-estimation obj
speed_obj = solutions.SpeedEstimator(
    reg_pts=line_pts,
    names=names,
    view_img=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    tracks = model.track(im0, persist=True, show=False)

    im0 = speed_obj.estimate_speed(im0, tracks)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
Скорость - это оценка

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

Аргументы SpeedEstimator

Имя Тип По умолчанию Описание
names dict None Словарь имен классов.
reg_pts list [(20, 400), (1260, 400)] Список точек региона для оценки скорости.
view_img bool False Отображать ли изображение с аннотациями.
line_thickness int 2 Толщина линий для рисования коробок и дорожек.
region_thickness int 5 Толщина линий области.
spdl_dist_thresh int 10 Порог расстояния для расчета скорости.

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

Имя Тип По умолчанию Описание
source im0 None исходный каталог для изображений или видео
persist bool False Сохранение треков между кадрами
tracker str botsort.yaml Метод отслеживания 'bytetrack' или 'botsort'
conf float 0.3 Порог доверия
iou float 0.5 Порог IOU
classes list None Фильтруй результаты по классам, то есть classes=0, или classes=[0,2,3]
verbose bool True Отображение результатов отслеживания объектов


Created 2024-01-05, Updated 2024-06-10
Authors: glenn-jocher (6), IvorZhu331 (1), RizwanMunawar (2), Burhan-Q (1), AyushExel (1)

Комментарии