用于更智能停车管理系统的 Ultralytics YOLOv8
Ultralytics YOLOv8 模型可以让停车管理系统更加智能。学习如何实时管理停车位,打造你自己的智能停车解决方案。

开车兜圈寻找停车位可能会让人感到压力,尤其是在你快要迟到的时候。传统的停车位搜索方式可能既繁琐又耗时。不过,由人工智能 (AI) 和计算机视觉驱动的停车管理系统可以让事情变得更简单。它可以让停车位可用情况更容易预测,并减少交通拥堵。
在本文中,我们将了解如何利用人工智能和计算机视觉升级停车管理系统。我们还将通过一个分步编码示例,向你展示如何使用 Ultralytics YOLOv8 模型创建支持计算机视觉的停车管理系统。让我们马上开始吧!
传统停车场管理面临的问题#
在讨论 AI 增强型智能停车管理系统之前,我们先来看看传统停车管理系统存在的问题。
传统系统的一个主要问题是停车位过度拥挤;停车场中的车辆多于可用停车位。除了浪费时间寻找车位外,过度拥挤还会导致燃料消耗增加和空气污染。另一个问题是驾驶员压力。根据一项调查,约有 27% 的人至少会花费 30 分钟寻找停车位。此外,43% 的人承认曾因停车位与陌生人发生口头争执。

图 1. 感到压力的驾驶员。图片来源:Envato Elements。
AI 让停车场管理更轻松#
集成 AI 的停车场旨在解决传统停车管理系统面临的问题。像 Ultralytics YOLOv8 模型这样的计算机视觉模型与高清摄像头可以监控停车场,并实时更新可用和已占用停车位的信息。
这是如何实现的? 计算机视觉模型可以分析高清摄像头拍摄的视频,检测车辆、跟踪车辆移动,并识别可用停车位。Ultralytics YOLOv8 模型支持目标检测和目标跟踪等计算机视觉任务,并能在视频流中准确识别车辆并进行分类。通过将检测到的车辆位置与预定义停车位进行比较,系统可以确定某个停车位是否已被占用。

图 2. YOLOv8 检测停车位。
基于视觉的系统所提供的停车位可用信息可以集成并扩展到不同的应用中:
- 移动应用: 移动应用可以显示实时停车位可用情况,帮助驾驶员快速、轻松地找到可用车位。
- 数字标牌: 停车场入口处的数字标牌可以显示可用停车位数量,并引导驾驶员前往最近的空闲车位。
- 自动停车系统: 这些数据可用于控制自动栏杆和闸门,仅在有可用停车位时允许车辆进入,并引导驾驶员前往最近的空闲车位。
停车管理系统的优势#
了解停车位可用情况可以带来许多优势。实时更新能帮助驾驶员直接前往空闲车位,使交通流动更加顺畅,并减轻寻找停车位的压力。对于运营方来说,了解停车位的使用情况意味着可以更好地管理停车场,通过实时监控提升安全性,并快速应对任何事件。
自动化停车功能可以减少对人工劳动力的需求,从而降低成本。AI 系统让驾驶员可以通过移动应用或网页应用更轻松地预订停车位,接收可用情况通知,同时节省时间和金钱。城市规划人员可以利用这些数据设计更好的道路布局、执行有效的停车管理规定,并开发新的停车设施,让城市运行更高效、出行更便捷。

图 3. 通过移动应用预订停车位。
亲自试试:使用 YOLOv8 进行停车管理#
现在我们已经清楚了解了停车管理及其优势,接下来看看如何构建一个基于视觉的停车管理系统。我们将使用 YOLOv8 模型检测车辆、监控停车位,并确定其占用状态。
在此示例中,你可以使用停车场的视频或摄像头流。请注意,此示例支持的最大图像尺寸为 1920 * 1080。在开始之前,请记住,该系统依赖于准确的车辆检测结果和预定义的停车位坐标。
摄像头校准和环境因素可能会影响车位检测和占用状态判断的准确性。处理速度和准确性也可能因你的 GPU 性能而异。
步骤 1: 让我们先安装 Ultralytics 软件包。打开命令提示符或终端,然后执行以下命令。
pip install ultralytics请参阅我们的 Ultralytics 安装指南,了解安装过程的详细说明和最佳实践。如果你在安装 YOLOv8 所需软件包时遇到问题,我们的常见问题指南提供了解决方案和实用提示。
步骤 2: 我们需要预先选择停车位,以便在视频中标记感兴趣区域。运行此代码,打开用户界面并预先选择停车位。
from ultralytics import solutions
solutions.ParkingPtsSelection()如下所示,运行此代码后会打开一个用户界面。截取输入停车场视频中的一帧或屏幕截图并上传。围绕停车位绘制边界框后,点击保存选项。你所选择的停车位信息将保存到名为 ‘bounding_boxes.json.’ 的 JSON 文件中。

图 4. 在视频中选择停车位。
步骤 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 官方文档。
自动化停车场管理系统面临的挑战#
智能停车系统为驾驶员和企业都带来了许多优势。不过,在实施此类解决方案之前,也需要考虑其中的一些挑战。让我们来看看其中几项。
- 隐私问题: 这些系统会收集个人车辆的品牌和型号、车牌号、进出时间等信息。
- 安装成本高: 传感器、摄像头、自动售票机和 AI 软件的安装成本可能很高。
- 维护要求: 维护频率取决于 AI 系统,但大多数系统都需要每月维护。
智能停车系统的未来#
未来的创新型停车管理将利用 AI、自动驾驶汽车和虚拟现实等先进技术,改善整体停车体验并支持可持续发展。与这些系统集成后,自动驾驶汽车将能够在无需人工干预的情况下导航至停车地点并完成停车。这些系统还可以帮助企业提高停车位利用率,并在多个应用和网站上宣传其服务。此外,它们还能减少驾驶员驾车兜圈寻找停车位所产生的碳排放。
告别停车烦恼#
AI 模型(例如 Ultralytics YOLOv8)和计算机视觉可以改变你的停车场管理方式。它们能大幅减少兜圈寻找车位的情况,帮你节省时间并减少排放。这些智能停车管理系统可以解决拥堵、违章停车和驾驶员挫败感等常见问题。虽然前期需要投入资金,但长期收益十分显著。投资智能停车是建设可持续城市、为所有人带来更顺畅停车体验的关键。
想进一步了解 AI?欢迎加入我们的社区!探索我们的 GitHub 代码库,进一步了解我们如何利用 AI 为医疗保健、农业等多个行业创建创新解决方案。与我们一起协作、创新和学习吧!🚀









