使用Ultralytics YOLOv8 🚀 进行停车管理
什么是停车场管理系统?
停车场管理 Ultralytics YOLOv8YOLOv8 可通过实时车辆检测和对停车场占用率的深入了解,改善停车场管理。
停车场管理系统的优势?
- 效率:停车场管理可优化停车位的使用,减少拥堵。
- 安全保障:使用YOLOv8 进行停车管理,可通过监控和安保措施提高人员和车辆的安全。
- 减少排放:停车场管理使用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 文件存储在工作目录中。
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 |
显示物体跟踪结果 |