Quản lý bãi đậu xe bằng cách sử dụng Ultralytics YOLOv8 🚀
Hệ thống quản lý bãi đậu xe là gì?
Quản lý bãi đậu xe với Ultralytics YOLOv8 Đảm bảo bãi đậu xe hiệu quả và an toàn bằng cách tổ chức không gian và giám sát tính khả dụng. YOLOv8 có thể cải thiện việc quản lý bãi đậu xe thông qua phát hiện xe theo thời gian thực và thông tin chi tiết về công suất đỗ xe.
Ưu điểm của hệ thống quản lý bãi đậu xe?
- Hiệu quả: Quản lý bãi đậu xe tối ưu hóa việc sử dụng chỗ đậu xe và giảm tắc nghẽn.
- An toàn và bảo mật: Quản lý bãi đậu xe bằng cách sử dụng YOLOv8 cải thiện sự an toàn của cả người và phương tiện thông qua các biện pháp giám sát và an ninh.
- Giảm lượng khí thải: Quản lý bãi đậu xe bằng cách sử dụng YOLOv8 Quản lý lưu lượng giao thông để giảm thiểu thời gian nhàn rỗi và khí thải trong bãi đỗ xe.
Ứng dụng trong thế giới thực
Hệ thống quản lý bãi đậu xe | Hệ thống quản lý bãi đậu xe |
---|---|
Quản lý bãi đậu xe Aeriel View sử dụng Ultralytics YOLOv8 | Quản lý bãi đậu xe Xem trên cùng bằng cách sử dụng Ultralytics YOLOv8 |
Quy trình làm việc mã hệ thống quản lý bãi đậu xe
Lựa chọn điểm
Lựa chọn điểm bây giờ là dễ dàng
Chọn điểm đỗ xe là một nhiệm vụ quan trọng và phức tạp trong hệ thống quản lý bãi đậu xe. Ultralytics Hợp lý hóa quá trình này bằng cách cung cấp một công cụ cho phép bạn xác định các khu vực bãi đậu xe, có thể được sử dụng sau này để xử lý bổ sung.
- Chụp khung hình từ luồng video hoặc camera nơi bạn muốn quản lý bãi đậu xe.
- Sử dụng mã được cung cấp để khởi chạy giao diện đồ họa, nơi bạn có thể chọn hình ảnh và bắt đầu phác thảo các khu vực đỗ xe bằng cách nhấp chuột để tạo đa giác.
Kích thước hình ảnh
Kích thước hình ảnh tối đa được hỗ trợ 1920 * 1080
from ultralytics.solutions.parking_management import ParkingPtsSelection, tk
root = tk.Tk()
ParkingPtsSelection(root)
root.mainloop()
- Sau khi xác định các khu vực đỗ xe bằng đa giác, hãy nhấp vào
save
để lưu trữ tệp JSON với dữ liệu trong thư mục làm việc của bạn.
Python Mã quản lý bãi đậu xe
Quản lý bãi đậu xe bằng cách sử dụng YOLOv8 Ví dụ
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()
Đối số tùy chọn ParkingManagement()
Tên | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
occupied_region_color |
RGB Color |
(0, 255, 0) |
Chỗ đậu xe chiếm màu khu vực |
available_region_color |
RGB Color |
(0, 0, 255) |
Chỗ đậu xe có sẵn màu khu vực |
margin |
int |
10 |
Khoảng cách giữa hiển thị văn bản cho nhiều lớp |
txt_color |
RGB Color |
(255, 255, 255) |
Màu nền trước cho văn bản đếm đối tượng |
bg_color |
RGB Color |
(255, 255, 255) |
Hình chữ nhật phía sau màu nền văn bản |
Lập luận model.track
Tên | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
source |
im0 |
None |
Thư mục nguồn cho hình ảnh hoặc video |
persist |
bool |
False |
Các rãnh liên tục giữa các khung hình |
tracker |
str |
botsort.yaml |
Phương pháp theo dõi 'bytetrack' hoặc 'botsort' |
conf |
float |
0.3 |
Ngưỡng tin cậy |
iou |
float |
0.5 |
Ngưỡng IOU |
classes |
list |
None |
Lọc kết quả theo lớp, tức là lớp = 0 hoặc lớp = [0,2,3] |
verbose |
bool |
True |
Hiển thị kết quả theo dõi đối tượng |