Ultralytics YOLOv8 助力打造更智能的停车管理系统
Ultralytics YOLOv8 模型可以让停车管理系统变得更智能。学习实时管理停车位,打造你自己的智能停车解决方案。
Abirami Vina5 分钟阅读
开车绕圈找停车位可能让人心烦意乱,尤其是在你快迟到的时候。传统的找车位方式既繁琐又耗时。不过,由人工智能 (AI) 和计算机视觉驱动的停车管理系统可以让事情变得简单。它可以让停车位是否空闲更容易预测,并减少交通拥堵。
在本文中,我们将学习如何利用人工智能和计算机视觉升级停车管理系统。我们还会逐步讲解一个代码示例,展示如何使用 Ultralytics YOLOv8 模型创建支持计算机视觉的停车管理系统。
传统停车场管理面临的问题#
在讨论 AI 增强型智能停车管理系统之前,我们先来看看传统停车管理系统面临的问题。
传统系统的一大问题是停车位过于拥挤:停车场里的汽车数量超过了可用车位。除了浪费时间寻找车位,车位拥挤还会导致燃油消耗增加和空气污染。另一个问题是驾驶员的压力。根据一项调查,约 27% 的人至少会花 30 分钟寻找停车位。此外,43% 的人承认曾因停车位与陌生人发生口角。

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

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

图 3. 通过移动应用预约停车位。
亲自试试:使用 YOLOv8 进行停车管理#
现在,我们已经清楚了解停车管理及其优势,接下来就来看看如何构建基于视觉的停车管理系统。我们将使用 YOLOv8 模型检测车辆、监控停车位并判断车位的占用状态。
在本例中,你可以使用停车场的视频或摄像头流。开始之前请记住,该系统依赖准确的车辆检测和预先定义的停车位坐标。
摄像头校准和环境因素会影响车位检测和占用状态判断的准确性。处理速度和准确性也可能因你的 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 模型和保存在 JSON 文件中的停车区域来初始化停车管理系统。
management = solutions.ParkingManagement(model="yolov8n.pt", json_file=polygon_json_path)步骤 8:现在,我们逐帧处理视频文件。如果没有读取到任何帧,循环就会中断。
while cap.isOpened():
ret, im0 = cap.read()
if not ret:
break步骤 9:在循环中,我们将每一帧传递给停车管理对象。它使用 YOLOv8 模型跟踪帧中的车辆,并检查每个预先选定的停车区域是否被占用。
results = management(im0)步骤 10:返回结果中包含已占用和可用停车位的数量,你可以将其打印出来或传递给其他应用。
print(f"Occupied: {results.filled_slots}, Available: {results.available_slots}")步骤 11:循环的最后一部分会将标注后的帧写入输出视频文件 “parking management.avi.”
video_writer.write(results.plot_im)步骤 12:最后,我们可以释放 VideoCapture 和 VideoWriter 对象,并关闭所有窗口。
cap.release()
video_writer.release()
cv2.destroyAllWindows()步骤 13:保存脚本。如果你在终端或命令提示符中操作,请使用以下命令运行脚本:
python your_script_name.py如果你想进一步了解这段代码,欢迎查看 Ultralytics 官方文档。
自动化停车场管理系统面临的挑战#
智能停车系统为司机和企业带来了诸多优势。不过,在实施此类解决方案之前,也应考虑它们带来的一些挑战。让我们来看看其中的一些。
- 隐私问题:这些系统会收集个人汽车的品牌和型号、车牌号、进出时间等信息。
- 安装成本高:传感器、摄像头、自动售票机和 AI 软件的安装成本可能很高。
- 维护要求:维护频率取决于 AI 系统,但大多数系统都需要每月维护。
智能停车系统的未来#
未来的创新型停车管理将借助 AI、自动驾驶汽车和虚拟现实等先进技术,改善整体停车体验并支持可持续发展。与这些系统集成后,自动驾驶汽车无需人工干预,就能导航至停车地点并完成停车。这些系统还能帮助企业提高车位利用率,并在多个应用和网站上推广其服务。此外,它们还能减少驾驶员绕行寻找车位所产生的碳排放。
告别停车烦恼#
像 Ultralytics YOLOv8 这样的 AI 模型和计算机视觉可以改变你的停车场管理方式。它们能减少车辆为寻找车位而绕行的情况,为你节省时间并减少排放。这些智能停车管理系统可以应对拥堵、违章停车和驾驶员烦躁等常见问题。虽然前期需要投入资金,但长期收益十分可观。投资智能停车是打造可持续城市、为所有人提供更顺畅停车体验的关键。
想进一步了解 AI?欢迎加入我们的社区!访问我们的 GitHub 仓库,了解我们如何利用 AI 为医疗保健和农业等多个行业打造创新解决方案。和我们一起协作、创新、学习!
作者
评论
提出问题、分享你的结果,或帮助其他人。










