遇见 YOLO26: 下一代视觉 AI。
Ultralytics
Ultralytics YOLO

用于计算机视觉项目中速度估算的 Ultralytics YOLOv8

发现如何使用 Ultralytics YOLOv8 模型在你的计算机视觉项目中进行速度估算。通过一个简单的编码示例亲自尝试。

ABAbirami Vina
5 min read
用于计算机视觉项目中速度估算的 Ultralytics YOLOv8

我们大概都见过限速交通标志。有些人可能甚至通过信件或电子邮件收到过自动限速违规通知。人工智能(AI)交通管理系统可以利用计算机视觉自动标记超速违规行为。街道红绿灯和高速公路上摄像头捕获的实时画面被用于速度估计并加强道路安全。

速度估计 不仅仅局限于高速公路安全。它还可以应用于体育、自动驾驶车辆以及其他各种场景。在本文中,我们将讨论如何使用 Ultralytics YOLOv8 模型 在你的计算机视觉项目中进行速度估计。我们还将通过一个编码示例带你逐步操作,以便你可以亲自尝试。让我们开始吧!

Link to this section速度估计使交通管理更加轻松#

根据世界卫生组织(WHO)的数据,每年约有 119 万人 因超速导致的道路交通碰撞而死亡。此外,还有 2000 万到 5000 万人遭受非致命性伤害,其中许多导致了残疾。交通安全的重要性无论如何强调都不为过,特别是当速度估计有助于预防事故、拯救生命并保持道路安全与高效时。

利用计算机视觉进行速度估计涉及在视频帧中 检测追踪 对象,以计算它们的移动速度。像 YOLOv8 这样的算法可以识别并追踪连续帧中的车辆等对象。系统使用校准过的摄像头或参考点来衡量这些对象行驶的距离,从而估算真实世界的距离。通过记录对象在两点之间移动所需的时间,系统使用距离-时间比来计算其速度。

使用 Ultralytics YOLOv8 模型进行速度估计

图 1。使用 Ultralytics YOLOv8 模型进行速度估计。

除了抓拍超速者之外,集成 AI 的速度估计系统还可以收集数据,对交通情况进行预测。这些预测可以支持交通管理任务,例如优化信号灯时序和资源分配。有关交通模式和拥堵原因的洞察可用于规划新道路,以减少交通拥堵。

Link to this section速度估计在其他行业中的应用#

速度估计的应用不仅限于道路监控。它对于监控运动员表现、帮助 自动驾驶车辆 理解周围移动物体的速度、检测可疑行为等也非常有用。只要摄像头可以用来测量物体的速度,就可以利用计算机视觉进行速度估计。

以下是速度估计被应用的一些示例:

  • Tesla 的自动驾驶汽车 使用基于视觉的速度估计来避免碰撞。
  • 计算机视觉和速度估计将在 2024 年奥运会 上被用于改善田径赛事中的表现分析。
  • 智能城市正在研究行人步态分析,以监测行走速度并提高城市出行效率和安全性。这些系统可以提醒驾驶员注意行人,从而预防事故。
  • 动物行为监测系统使用速度估计来追踪动物的运动并检测痛苦或疾病的迹象。

速度估计测量行人的行走速度

图 2。 速度估计可以测量人的行走速度。

Link to this section利用计算机视觉估算速度的好处#

基于视觉的速度估计系统由于其更高的准确性、成本效益和灵活性,正在取代传统的基于传感器的方法。与依赖 LiDAR 等昂贵传感器的系统不同,计算机视觉使用标准摄像头来实时监控和分析速度。用于速度估计的计算机视觉解决方案可以与现有的交通基础设施无缝集成。此外,这些系统还可以被构建执行许多复杂的任务,例如车辆类型识别和交通模式分析,以改善整体交通流和安全性。

Link to this section亲自尝试:使用 YOLOv8 进行速度估计#

既然我们已经清楚地了解了速度估计及其应用,让我们更深入地了解如何通过 代码 将速度估计集成到你的计算机视觉项目中。我们将使用 YOLOv8 模型检测行驶中的车辆并估计其速度。

此示例使用从网上下载的道路汽车视频。你可以使用相同的视频或任何相关的视频。YOLOv8 模型识别每辆车的中心,并根据该中心穿过视频帧中水平线的速度来计算其速度。

在深入研究之前,需要注意的是,在这种情况下,距离计算是近似的,基于欧几里得距离。没有考虑摄像头校准,因此速度估计可能并不完全准确。此外,估计的速度可能会根据你 GPU 的速度而有所波动。

第 1 步: 我们将首先安装 Ultralytics 软件包。打开你的命令行提示符或终端并运行下方显示的命令。

pip install ultralytics

查看我们的 Ultralytics 安装指南 获取有关安装过程的逐步说明和最佳实践。如果在安装 YOLOv8 所需的软件包时遇到任何问题,我们的 常见问题指南 提供了解决方案和实用建议。

第 2 步: 接下来,我们将导入所需的库。OpenCV 库将帮助我们处理视频。

import cv2
from ultralytics import YOLO, solutions

第 3 步: 然后,我们可以加载 YOLOv8 模型并检索模型可以检测的类别名称。

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

查看所有 我们支持的模型 以了解哪种模型最适合你的项目。

第 4 步: 在这一步中,我们将使用 OpenCV 的 VideoCapture 模块打开输入视频文件。我们还将提取视频的宽度、高度和每秒帧数(fps)。

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))

第 5 步: 在这里,我们将初始化视频写入器以保存速度估计的最终结果。输出视频文件将保存为“speed_estimation.avi”。

video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

第 6 步: 接下来,我们可以定义用于速度估计的线段点。对于我们的输入视频,这条线将水平放置在帧的中间。请随意调整这些值,以便根据你的输入视频将线条放置在最合适的位置。

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

第 7 步: 现在,我们可以使用定义的线段点和类别名称来初始化速度估计对象。

speed_obj = solutions.SpeedEstimator(
    reg_pts=line_pts,
    names=names,
    view_img=True,
)

第 8 步: 脚本的核心是逐帧处理视频。我们读取每一帧并检测和追踪对象。对追踪到的对象进行速度估计,并将带注释的帧写入输出视频。

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)

第 9 步: 最后,我们释放视频捕获和写入对象,并关闭任何 OpenCV 窗口。

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

第 10 步: 保存你的脚本。如果你正在使用终端或命令行提示符,请使用以下命令运行脚本:

python your_script_name.py

Link to this section基于视觉的速度估计所面临的挑战#

了解实现计算机视觉速度估计所涉及的挑战也很重要。雨、雾或雪等不利天气条件可能会给系统带来问题,因为它们会阻碍道路可见度。同样,由其他车辆或物体造成的遮挡也可能使这些系统难以准确追踪和估计目标车辆的速度。导致阴影或阳光眩光的不良光照条件也会使速度估计的任务进一步复杂化。

另一个挑战涉及 计算能力。为了实时估计速度,我们必须处理来自高质量交通摄像头的大量视觉数据。你的解决方案可能需要昂贵的硬件来处理所有这些数据,并确保一切都能快速运行而没有延迟。

此外,还存在隐私问题。这些系统收集的数据可能包括个人的车辆详情,如品牌、型号和车牌信息,这些是在未经他们同意的情况下收集的。一些现代高清摄像头甚至可以捕获车内乘客的图像。此类数据收集可能会引发严重的伦理和法律问题,需要极其谨慎地处理。

Link to this section迈向未来#

使用 Ultralytics YOLOv8 模型 进行速度估计为许多用途提供了灵活且高效的解决方案。虽然存在挑战,例如在困难条件下的准确性以及解决隐私问题,但其优势是多方面的。与旧方法相比,基于计算机视觉的速度估计更具成本效益、适应性更强且更精确。它在交通、体育、监控和自动驾驶汽车等各个行业都非常有用。凭借所有的这些好处和应用场景,它注定会成为未来智能系统的关键部分。

对 AI 感兴趣?加入我们的 社区!探索我们的 GitHub 存储库 以了解更多关于我们如何利用 AI 在 医疗保健农业 等各个行业中创造创新解决方案的信息。与我们一起合作、创新并学习!🚀

Explore solutions

Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。

了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。

了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。

了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。

了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。

了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。

了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。

了解更多
Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。

了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。

了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。

了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。

了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。

了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。

了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。

了解更多
Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。

了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。

了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。

了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。

了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。

了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。

了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。

了解更多

让我们一起构建 AI 的未来!

开启你的机器学习未来之旅