跳至内容

使用Ultralytics YOLO11 🚀 进行速度估计

什么是速度估算?

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



观看: 速度估算使用Ultralytics YOLO11

查看我们的博客

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

速度估算的优势?

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

真实世界的应用

交通运输 交通运输
道路速度估算Ultralytics YOLO11 桥梁速度估算Ultralytics YOLO11
道路速度估算Ultralytics YOLO11 桥梁速度估算Ultralytics YOLO11

使用YOLO11 进行速度估算示例

# Run a speed example
yolo solutions speed show=True

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

# Pass region coordinates
yolo solutions speed region=[(20, 400), (1080, 400), (1080, 360), (20, 360)]
import cv2

from ultralytics import solutions

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

# Define speed region points
speed_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

speed = 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],  # If you want to estimate speed of specific classes.
    # line_width=2,  # Adjust the line width for bounding boxes and text display
)

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

cap.release()
video_writer.release()
cv2.destroyAllWindows()
速度估计

速度为估计值,可能不完全准确。此外,估计值可能因GPU 速度而异。

论据 SpeedEstimator

名称 类型 默认值 说明
model str None Ultralytics YOLO 模型文件的路径
region list [(20, 400), (1260, 400)] 定义计数区域的点列表。
line_width int 2 边界框的线条粗细
show bool False 用于控制是否显示视频流的标志。

论据 model.track

论据 类型 默认值 说明
source str None 指定图片或视频的源目录。支持文件路径和 URL。
persist bool False 可在帧间持续跟踪对象,在视频序列中保持 ID。
tracker str botsort.yaml 指定要使用的跟踪算法,例如 bytetrack.yamlbotsort.yaml.
conf float 0.3 设置检测的置信度阈值;数值越低,跟踪的物体越多,但可能会出现误报。
iou float 0.5 设置交叉重叠 (IoU) 阈值,用于过滤重叠检测。
classes list None 按类别索引筛选结果。例如 classes=[0, 2, 3] 只跟踪指定的类别。
verbose bool True 控制跟踪结果的显示,提供被跟踪物体的可视化输出。

常见问题

如何使用Ultralytics YOLO11 估算物体速度?

使用Ultralytics YOLO11 估算物体速度需要结合物体检测和跟踪技术。首先,需要使用YOLO11 模型检测每帧中的物体。然后,跨帧跟踪这些物体,计算它们在一段时间内的移动情况。最后,利用物体在帧间移动的距离和帧频来估算其速度。

例如

import cv2

from ultralytics import solutions

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(
    region=[(0, 360), (1280, 360)],
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    im0 = speed_obj.estimate_speed(im0)
    video_writer.write(im0)

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

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

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

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

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

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

YOLO11 能否与其他人工智能框架集成,如 TensorFlowPyTorch?

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

将YOLO11 模型导出为ONNX 格式:

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

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

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

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

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

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

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

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

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

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

📅创建于 1 年前 ✏️已更新 18 天前

评论