跳至内容

使用Ultralytics YOLOv8 🚀 进行停车管理

什么是停车场管理系统?

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

停车场管理系统的优势?

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

真实世界的应用

停车场管理系统 停车场管理系统
停车场分析 使用Ultralytics YOLOv8 使用停车场管理俯视图Ultralytics YOLOv8
Parking management Aerial View using Ultralytics YOLOv8 使用停车场管理顶视图Ultralytics YOLOv8

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

选点

轻松选点

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

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

图像大小

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

停车位注释器Ultralytics YOLOv8

from ultralytics import solutions

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

Ultralytics YOLOv8 选点演示

Python 停车场管理守则

停车场管理使用YOLOv8 示例

import cv2

from ultralytics import solutions

# 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 = solutions.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

名称 类型 默认值 说明
model_path str None 通往YOLOv8 模型的路径。
txt_color tuple (0, 0, 0) 文本的 RGB 颜色元组。
bg_color tuple (255, 255, 255) 背景的 RGB 颜色元组。
occupied_region_color tuple (0, 255, 0) 占用区域的 RGB 颜色元组。
available_region_color tuple (0, 0, 255) 可用区域的 RGB 颜色元组。
margin int 10 文本显示边距。

论据 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 显示物体跟踪结果


Created 2024-04-29, Updated 2024-06-10
Authors: glenn-jocher (6), IvorZhu331 (1), RizwanMunawar (3)

评论