使用 Ultralytics YOLO26 进行速度估计 🚀

什么是速度估计?

速度估计 是计算物体在特定场景下移动速率的过程,常用于 计算机视觉 应用。使用 Ultralytics YOLO26,你现在可以结合 目标追踪 以及距离和时间数据来计算物体速度,这对于交通监控和安防等任务至关重要。速度估计的准确性直接影响各种应用的效率和可靠性,使其成为推动智能系统和实时决策过程的关键组件。



Watch: Speed Estimation using Ultralytics YOLO26
查看我们的博客

欲了解有关速度估计的深入见解,请查看我们的博客文章:Ultralytics YOLO 计算机视觉项目中的速度估计

速度估计的优势

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

现实世界应用

交通运输交通运输
使用 Ultralytics YOLO26 进行道路速度估计使用 Ultralytics YOLO26 进行桥梁速度估计
使用 Ultralytics YOLO26 进行道路速度估计使用 Ultralytics YOLO26 进行桥梁速度估计
速度是一种估算值

速度属于估算值,可能无法完全准确。此外,估计结果可能会因摄像机规格及相关因素而有所不同。

使用 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

SpeedEstimator 参数

以下是包含 SpeedEstimator 参数的表格:

参数类型默认值描述
modelstrNoneUltralytics YOLO 模型文件的路径。
fpsfloat30.0用于速度计算的每秒帧数。
max_histint5用于速度/方向计算时,每个对象最大追踪的历史点数。
meter_per_pixelfloat0.05用于将像素距离转换为现实世界单位的比例因子。
max_speedint120视觉叠加层中的最高速度限制(用于警报)。

SpeedEstimator 解决方案允许使用 track 参数:

参数类型默认值描述
trackerstr'botsort.yaml'指定使用的跟踪算法,例如 bytetrack.yamlbotsort.yaml
conffloat0.1设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能会包含误报。
ioufloat0.7设置过滤重叠检测的 Intersection over Union (IoU) 阈值。
classeslistNone按类别索引过滤结果。例如,classes=[0, 2, 3] 将仅跟踪指定的类别。
verboseboolTrue控制跟踪结果的显示,提供跟踪对象的视觉输出。
devicestrNone指定推理设备(例如 cpucuda:00)。允许用户选择 CPU、特定的 GPU 或其他计算设备来执行模型。

此外,还支持以下可视化选项:

参数类型默认值描述
showboolFalse如果设为 True,则在一个窗口中显示标注后的图像或视频。这对于开发或测试期间的即时视觉反馈非常有用。
line_widthint or NoneNone指定边界框的线宽。如果为 None,线宽将根据图像大小自动调整。提供视觉自定义以提高清晰度。
show_confboolTrue在标签旁边显示每个检测结果的置信度分数。让你可以洞察模型对每个检测的确定性。
show_labelsboolTrue在可视化输出中显示每个检测结果的标签。提供对检测对象的即时了解。

常见问题 (FAQ)

如何使用 Ultralytics YOLO26 估计物体速度?

使用 Ultralytics YOLO26 估计物体速度需要结合 目标检测 和追踪技术。首先,你需要使用 YOLO26 模型在每一帧中检测物体。然后,跨帧追踪这些物体以计算它们随时间推移的位移。最后,利用物体在帧与帧之间移动的距离以及帧率来估算其速度。

示例

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="yolo26n.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 YOLO26 进行交通管理中的速度估计有什么好处?

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

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

欲了解更多应用,请参阅 速度估计的优势

YOLO26 是否可以与其他 AI 框架(如 TensorFlowPyTorch)集成?

是的,YOLO26 可以与其他 AI 框架(如 TensorFlow 和 PyTorch)集成。Ultralytics 支持将 YOLO26 模型导出为多种格式,例如 ONNXTensorRTCoreML,从而确保与其他机器学习框架的平滑互操作性。

将 YOLO26 模型导出为 ONNX 格式的方法:

yolo export model=yolo26n.pt format=onnx

在我们的 导出指南 中了解更多关于模型导出的信息。

使用 Ultralytics YOLO26 进行速度估计的准确度如何?

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

注意:请始终考虑误差范围,并在可能的情况下使用真实数据验证估算结果。

For further accuracy improvement tips, check the Arguments SpeedEstimator section.

评论