Ultralytics YOLOv8 模型可以使停车管理系统更加智能。了解如何实时管理停车位,以创建您自己的智能停车解决方案。

Ultralytics YOLOv8 模型可以使停车管理系统更加智能。了解如何实时管理停车位,以创建您自己的智能停车解决方案。
开车绕圈寻找停车位可能会让人感到压力,尤其是在您迟到的时候。传统的寻找停车位的方式可能既乏味又耗时。但是,由人工智能 (AI) 和计算机视觉驱动的停车管理系统可以使事情变得更简单。它可以使停车位的可用性更可预测,并减少交通拥堵。
在本文中,我们将学习如何使用人工智能和计算机视觉升级停车管理系统。我们还将通过一个逐步的编码示例,向您展示如何使用 Ultralytics YOLOv8 模型来创建一个支持计算机视觉的 停车管理系统。让我们开始吧!
在讨论人工智能增强的智能停车管理系统之前,让我们先来看看传统停车管理系统的问题。
传统系统的一个主要问题是停车位拥挤;停车场中的汽车多于可用空间。除了浪费时间寻找空间外,过度拥挤还会导致过多的燃料消耗和空气污染。另一个问题是驾驶员压力。一项调查显示,大约 27% 的人至少花费30 分钟寻找停车位。此外,43% 的人承认因停车位与陌生人发生口头争执。
与 AI 集成的停车场旨在解决传统停车场管理系统面临的问题。像 Ultralytics YOLOv8 模型这样的计算机视觉模型和高清摄像头可以监控停车场,并获取有关可用和已占用停车位的实时更新。
这是如何运作的?计算机视觉模型可以分析来自高清摄像机的镜头,以检测车辆、跟踪它们的移动并识别可用的停车位。Ultralytics YOLOv8 模型支持计算机视觉任务,例如目标检测和目标跟踪,并且可以准确地识别和分类视频源中的车辆。通过将检测到的车辆位置与预定义的停车位进行比较,系统可以确定停车位是否被占用。
来自基于视觉的系统的停车位可用性信息可以集成并扩展到不同的应用程序:
对停车位可用性的洞察可以提供许多优势。实时更新可帮助驾驶员直接前往空位,从而使交通更顺畅并减轻寻找停车位的压力。对于运营商而言,了解车位的使用方式意味着他们可以更好地管理停车场,通过实时监控提高安全性,并快速响应任何事件。
自动化停车功能通过减少对人力的需求来降低成本。AI 系统通过移动或 Web 应用程序可以更轻松地预订停车位,让驾驶员接收有关可用性的通知,从而节省时间和金钱。城市规划者可以使用这些数据来设计更好的道路布局,执行有效的停车法规,并开发新的停车设施,从而提高城市的效率并使其更易于通行。
既然我们对停车管理及其优势有了清晰的了解,那么让我们深入了解如何构建一个基于视觉的停车管理系统。我们将使用 YOLOv8 模型来检测车辆、监控停车位并确定其占用状态。
在这个例子中,您可以使用停车场视频或摄像头流。请注意,此示例支持的最大图像尺寸为 1920 * 1080。在开始之前,请记住此系统依赖于精确的车辆检测和预定义的停车位坐标。
相机校准和环境因素会影响空间检测和占用状态的准确性。处理速度和准确性也可能因您的 GPU 性能而异。
步骤 1: 让我们首先安装 Ultralytics 包。打开命令提示符或终端,然后执行以下命令。
pip install ultralytics
有关安装过程的详细说明和最佳实践,请参阅我们的 Ultralytics 安装指南。如果您在为 YOLOv8 安装所需软件包时遇到任何问题,我们的 常见问题指南 提供了解决方案和有用的提示。
步骤 2: 我们需要预先选择停车位,以便我们可以标记素材中的感兴趣区域。运行此代码以打开用户界面来预先选择停车位。
from ultralytics import solutions
solutions.ParkingPtsSelection()
如下图所示,运行此代码时将打开一个用户界面。拍摄或截取停车场输入视频的帧或屏幕截图并上传。在停车场周围绘制边界框后,单击保存选项。您选择的停车位信息将保存在名为“bounding_boxes.json”的 JSON 文件中。
步骤 3: 现在,我们可以进入停车管理的主要代码。首先导入所有必需的库,并初始化我们在步骤 2 中创建的 JSON 文件。
import cv2
from ultralytics import solutions
polygon_json_path = "bounding_boxes.json"
步骤 4: 创建一个 VideoCapture 对象以读取输入视频文件,并确保视频文件已成功打开。
cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
步骤 5:初始化所有需要的视频属性,如宽度、高度和帧率。
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
步骤 6: 接下来,我们可以创建一个 VideoWriter 对象来保存最终处理后的视频文件。
video_writer = cv2.VideoWriter("parking management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
步骤 7:在这里,我们使用 Ultralytics YOLOv8 模型初始化停车管理系统,用于停车位检测。
management = solutions.ParkingManagement(model_path="yolov8n.pt")
步骤 8:现在,我们逐帧浏览视频文件进行处理。如果未读取到任何帧,循环将中断。
while cap.isOpened():
ret, im0 = cap.read()
if not ret:
break
步骤 9: 在循环内部,我们将从 JSON 文件中提取预先选择的停车区域,并使用 YOLOv8 模型跟踪帧中的对象。
json_data = management.parking_regions_extraction(polygon_json_path)
results = management.model.track(im0, persist=True, show=False)
步骤 10: 循环的这一部分处理跟踪结果,并获得检测到的目标的边界框坐标和类别标签。
if results[0].boxes.id is not None:
boxes = results[0].boxes.xyxy.cpu().tolist()
clss = results[0].boxes.cls.cpu().tolist()
management.process_data(json_data, im0, boxes, clss)
步骤 11: 循环的最后一部分包括显示带有注释的当前帧,并将处理后的帧写入输出视频文件 “parking management.avi”。
management.display_frames(im0)
video_writer.write(im0)
步骤 12:最后,我们可以释放 VideoCapture 和 VideoWriter 对象,并销毁所有窗口。
cap.release()
video_writer.release()
cv2.destroyAllWindows()
步骤 13: 保存您的脚本。如果您从终端或命令提示符工作,请使用以下命令运行脚本:
python your_script_name.py
如果您想了解更多关于代码的信息,请随时查看Ultralytics的官方文档。
智能停车系统为驾驶员和企业带来了诸多优势。 但是,在实施此类解决方案之前,还应考虑一些挑战。 让我们来看一下其中的一些。
未来,创新的停车管理将利用人工智能、自动驾驶汽车和虚拟现实等先进技术,改善整体停车体验并支持可持续性。当与这些系统集成时,自动驾驶汽车将能够在无人干预的情况下导航到停车位置并泊车。这些系统还有助于企业增加停车位的使用率,并在多个应用程序和网站上宣传其服务。此外,它们还可以减少驾驶员四处寻找停车位所产生的碳排放。
像Ultralytics YOLOv8这样的人工智能模型和计算机视觉可以改变您的停车场。 它们可以大大减少寻找停车位的时间,从而节省您的时间并减少排放。 这些智能停车管理系统可以解决拥堵、非法停车和驾驶员沮丧等常见问题。虽然存在初始投资,但长期效益是显著的。投资智能停车是创建可持续城市和为每个人提供更顺畅的停车体验的关键。
想了解更多关于人工智能的信息吗?与我们的社区联系!浏览我们的GitHub存储库,了解我们如何使用人工智能在医疗保健和农业等各个行业创建创新解决方案。与我们一起协作、创新和学习!🚀