跳至内容

使用Ultralytics YOLOv8 🚀 进行速度估计

什么是速度估算?

速度估计是在给定环境下计算物体运动速度的过程,通常用于计算机视觉应用中。使用 Ultralytics YOLOv8现在,您可以使用物体跟踪以及距离和时间数据来计算物体的速度,这对交通和监控等任务至关重要。速度估计的准确性直接影响到各种应用的效率和可靠性,使其成为推动智能系统和实时决策过程的关键组成部分。



观看: 速度估算使用Ultralytics YOLOv8

查看我们的博客

要深入了解速度估算,请查看我们的博文:Ultralytics YOLOv8 用于计算机视觉项目中的速度估算

速度估算的优势?

  • 高效的交通控制:准确的速度估计有助于管理交通流量、提高安全性和减少道路拥堵。
  • 精确的自主导航:在自动驾驶汽车等自主系统中,可靠的速度估计可确保车辆导航的安全性和准确性。
  • 增强监控安全性:监控分析中的速度估算有助于识别异常行为或潜在威胁,提高安全措施的有效性。

真实世界的应用

交通运输 交通运输
道路速度估算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 借据阈值
classes list None 按类别筛选结果,即 classes=0,或 classes=[0,2,3]
verbose bool True 显示物体跟踪结果

常见问题

如何使用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")
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
speed_obj = solutions.SpeedEstimator(
    reg_pts=[(0, 360), (1280, 360)],
    names=names,
    view_img=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        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()

更多详情,请参阅我们的官方博文

在交通管理中使用Ultralytics YOLOv8 进行速度估算有什么好处?

使用Ultralytics YOLOv8 进行速度估算在交通管理方面具有显著优势:

  • 增强安全性:准确估算车速,检测超速行驶,提高道路安全性。
  • 实时监控:利用YOLOv8 的实时目标检测功能,有效监控交通流量和拥堵情况。
  • 可扩展性:在从边缘设备到服务器的各种硬件设置上部署该模型,确保为大规模实施提供灵活、可扩展的解决方案。

有关更多应用,请参阅速度估算的优势

YOLOv8 能否与TensorFlow 或PyTorch 等其他人工智能框架集成?

是的,YOLOv8 可与其他人工智能框架集成,如TensorFlow 和PyTorch 。Ultralytics 支持将YOLOv8 模型导出为各种格式,如ONNX 、TensorRT 和CoreML ,确保与其他 ML 框架顺利互操作。

将YOLOv8 模型导出为ONNX 格式:

yolo export --weights yolov8n.pt --include onnx

有关导出模型的更多信息,请参阅我们的导出指南

使用Ultralytics YOLOv8 估算速度的准确性如何?

使用Ultralytics YOLOv8 估算速度的准确性取决于多个因素,包括物体跟踪的质量、视频的分辨率和帧速率以及环境变量。虽然速度估算器能提供可靠的估算结果,但由于帧处理速度和物体遮挡的差异,它可能无法达到 100% 的准确度。

注意:一定要考虑误差范围,并尽可能用地面实况数据验证估算结果。

有关提高精度的更多提示,请查看 论据 SpeedEstimator 部分.

为什么选择Ultralytics YOLOv8 而不是其他对象检测模型(如TensorFlow Object Detection API)?

Ultralytics YOLOv8 与其他对象检测模型(如TensorFlow Object Detection API)相比,它具有多项优势:

  • 实时性能:YOLOv8 针对实时检测进行了优化,速度快、精度高。
  • 易于使用:YOLOv8 设计有用户友好界面,简化了模型培训和部署。
  • 多功能性:支持多种任务,包括物体检测、分割和姿态估计。
  • 社区和支持:YOLOv8 有一个活跃的社区和大量的文档支持,确保开发人员获得所需的资源。

有关YOLOv8 优点的更多信息,请访问我们的详细型号页面



创建于 2024-01-05,更新于 2024-07-05
作者:glenn-jocher(7),IvorZhu331(1),RizwanMunawar(2),Burhan-Q(1),AyushExel(1)

评论