跳至内容

使用Ultralytics YOLOv8 🚀 进行停车管理

什么是停车场管理系统?

停车场管理 Ultralytics YOLOv8YOLOv8 可通过实时车辆检测和对停车场占用率的深入了解,改善停车场管理。

停车场管理系统的优势?

  • 效率:停车场管理可优化停车位的使用,减少拥堵。
  • 安全保障:使用YOLOv8 进行停车管理,可通过监控和安保措施提高人员和车辆的安全。
  • 减少排放:停车场管理使用YOLOv8 管理交通流,最大限度地减少停车场的闲置时间和排放。

真实世界的应用

停车场管理系统 停车场管理系统
停车场分析 使用Ultralytics YOLOv8 使用停车场管理俯视图Ultralytics YOLOv8
使用 Aeriel View 停车场管理Ultralytics YOLOv8 使用停车场管理顶视图Ultralytics YOLOv8

停车场管理系统代码工作流程

选点

轻松选点

在停车场管理系统中,选择停车点是一项关键而复杂的任务。Ultralytics 提供的工具可让您定义停车场区域,并在以后进行其他处理时加以利用,从而简化了这一过程。

  • 从要管理停车场的视频或摄像机流中捕捉一帧。
  • 使用提供的代码启动一个图形界面,在该界面中,您可以选择一幅图像,然后通过鼠标点击来创建多边形,开始勾画停车区域。

图像大小

支持的最大图像尺寸为 1920 * 1080

from ultralytics.solutions.parking_management import ParkingPtsSelection, tk
root = tk.Tk()
ParkingPtsSelection(root)
root.mainloop()
  • 用多边形定义停车区域后,点击 save 将包含数据的 JSON 文件存储在工作目录中。

Ultralytics YOLOv8 选点演示

Python 停车场管理守则

停车场管理使用YOLOv8 示例

import cv2
from ultralytics.solutions.parking_management import ParkingManagement

# Path to json file, that created with above point selection app
polygon_json_path = "bounding_boxes.json"

# Video capture
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))

# Video writer
video_writer = cv2.VideoWriter("parking management.avi", 
                                cv2.VideoWriter_fourcc(*'mp4v'), fps, (w, h))

# Initialize parking management object
management = ParkingManagement(model_path="yolov8n.pt")

while cap.isOpened():
    ret, im0 = cap.read()
    if not ret:
        break

    json_data = management.parking_regions_extraction(polygon_json_path)
    results = management.model.track(im0, persist=True, show=False)

    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)

    management.display_frames(im0)
    video_writer.write(im0)

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

可选参数 ParkingManagement()

名称 类型 默认值 说明
occupied_region_color RGB Color (0, 255, 0) 停车位占用区域颜色
available_region_color RGB Color (0, 0, 255) 可用停车位 区域颜色
margin int 10 多个班级计数的文本显示间隙
txt_color RGB Color (255, 255, 255) 对象计数文本的前景色
bg_color RGB Color (255, 255, 255) 文本背景色后的矩形

论据 model.track

名称 类型 默认值 说明
source im0 None 图像或视频的源目录
persist bool False 帧与帧之间的持久轨迹
tracker str botsort.yaml 跟踪方法 "bytetrack "或 "botsort
conf float 0.3 置信度阈值
iou float 0.5 借据阈值
classes list None 按类别筛选结果,即 classes=0,或 classes=[0,2,3]
verbose bool True 显示物体跟踪结果


创建于 2024-04-29,更新于 2024-05-01
作者:里兹万-穆纳瓦(2)

评论