Xây dựng hệ thống quản lý bãi đỗ xe bằng Ultralytics YOLO26#
Hệ thống quản lý bãi đỗ xe là gì?#
Hệ thống quản lý bãi đỗ xe được xây dựng bằng Ultralytics YOLO26 phát hiện phương tiện theo thời gian thực để theo dõi chỗ đỗ nào đang có xe hoặc còn trống, sau đó báo cáo tình trạng sử dụng hiện tại của bãi. Hệ thống kết hợp khả năng phát hiện đối tượng của YOLO26 với sơ đồ bãi đỗ xe được định nghĩa bằng JSON, giúp bạn giám sát toàn bộ bãi từ một luồng video hoặc camera.
Xem: Cách xây dựng hệ thống quản lý bãi đỗ xe bằng Ultralytics YOLO26 | Phát hiện chỗ trống theo thời gian thực 🚗
Ưu điểm của hệ thống quản lý bãi đỗ xe#
- Hiệu quả: Tối ưu hóa việc sử dụng chỗ đỗ xe và giảm ùn tắc trong toàn bộ bãi.
- An toàn và bảo mật: Tăng cường an toàn cho người và phương tiện thông qua hoạt động giám sát liên tục.
- Giảm phát thải: Quản lý luồng giao thông để giảm thời gian phương tiện chạy không tải và lượng khí thải trong bãi đỗ xe.
Ứng dụng thực tế#
| Hệ thống quản lý bãi đỗ xe | Hệ thống quản lý bãi đỗ xe |
|---|---|
![]() | ![]() |
| Góc nhìn từ trên không trong quản lý bãi đỗ xe bằng Ultralytics YOLO26 | Góc nhìn từ trên cao trong quản lý bãi đỗ xe bằng Ultralytics YOLO26 |
Quy trình code của hệ thống quản lý bãi đỗ xe#
Giờ đây, việc chọn điểm đã trở nên dễ dàng
Việc chọn các điểm đỗ xe là một tác vụ quan trọng và phức tạp trong hệ thống quản lý bãi đỗ xe. Ultralytics đơn giản hóa quy trình này bằng cách cung cấp công cụ "Parking slots annotator", cho phép bạn xác định các khu vực trong bãi đỗ xe để sử dụng cho những bước xử lý tiếp theo.
Bước 1: Chụp một khung hình từ video hoặc luồng camera tại khu vực bạn muốn quản lý bãi đỗ xe.
Bước 2: Dùng code được cung cấp để mở giao diện đồ họa, tại đó bạn có thể chọn hình ảnh và bắt đầu vẽ các vùng đỗ xe bằng cách nhấp chuột để tạo đa giác.
Bước bổ sung để cài đặt `tkinter`
Thông thường, tkinter được đóng gói sẵn cùng Python. Tuy nhiên, nếu chưa có, bạn có thể cài đặt bằng các bước được nêu dưới đây:
- Linux: (Debian/Ubuntu):
sudo apt install python3-tk - Fedora:
sudo dnf install python3-tkinter - Arch:
sudo pacman -S tk - Windows: Cài đặt lại Python và đánh dấu hộp kiểm
tcl/tk and IDLEtrong Tính năng tùy chọn khi cài đặt - MacOS: Cài đặt lại Python từ https://www.python.org/downloads/macos/ hoặc
brew install python-tk
from ultralytics import solutions
solutions.ParkingPtsSelection()Bước 3: Sau khi xác định các khu vực đỗ xe bằng đa giác, nhấp vào save để lưu dữ liệu dưới dạng bounding_boxes.json trong thư mục làm việc — cùng tên tệp mà script quản lý bên dưới sẽ tải.

Bước 4: Bây giờ bạn có thể chạy giải pháp quản lý bãi đỗ xe bằng đoạn code bên dưới.
import cv2
from ultralytics import solutions
# Thu nhận video
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Bộ ghi video
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 = cv2.VideoWriter("parking management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Khởi tạo đối tượng quản lý bãi đỗ xe
parkingmanager = solutions.ParkingManagement(
model="yolo26n.pt", # đường dẫn đến tệp model
json_file="bounding_boxes.json", # đường dẫn đến tệp chú thích chỗ đỗ xe
)
while cap.isOpened():
ret, im0 = cap.read()
if not ret:
break
results = parkingmanager(im0)
# print(results) # truy cập kết quả đầu ra
video_writer.write(results.plot_im) # ghi khung hình đã xử lý.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # đóng tất cả cửa sổ đang mởCác đối số của ParkingManagement#
Dưới đây là bảng các đối số của ParkingManagement:
| Đối số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
model | str | None | Đường dẫn đến tệp model Ultralytics YOLO. |
json_file | str | None | Đường dẫn đến tệp JSON chứa toàn bộ dữ liệu tọa độ chỗ đỗ xe. |
line_width | int | 2 | Độ dày đường viền của box, keypoint và số đếm mà giải pháp vẽ. |
verbose | bool | True | Bật nhật ký theo từng frame của giải pháp, gồm shape đầu vào, số lượng class và tốc độ xử lý. Bản thân lệnh gọi tracking luôn không ghi nhật ký. |
Giải pháp ParkingManagement cho phép sử dụng một số tham số track:
| Đối số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Chỉ định thuật toán theo dõi cần sử dụng. Các tùy chọn tích hợp sẵn: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Đặt ngưỡng confidence cho các đối tượng được phát hiện; giá trị thấp hơn cho phép theo dõi nhiều đối tượng hơn nhưng có thể bao gồm cả kết quả dương tính giả. |
iou | float | 0.7 | Đặt ngưỡng Intersection over Union (IoU) để lọc các đối tượng phát hiện bị chồng lấn. |
classes | list | None | Lọc kết quả theo chỉ mục class. Ví dụ: classes=[0, 2, 3] chỉ theo dõi các class được chỉ định. |
device | str | None | Chỉ định thiết bị dùng để suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng chọn CPU, một GPU cụ thể hoặc thiết bị tính toán khác để chạy model. |
imgsz | int or tuple | 640 | Kích thước ảnh suy luận mục tiêu: số nguyên cho ảnh vuông hoặc cặp (height, width). Kích thước sẽ được điều chỉnh theo stride của model. |
max_det | int | 300 | Số lượng đối tượng phát hiện tối đa được giữ lại trong mỗi khung hình trước khi theo dõi, giới hạn số đối tượng mà một giải pháp xử lý trong các cảnh dày đặc. |
quantize | int or str | None | Độ chính xác suy luận: 16 (FP16) hoặc 32/unset (FP32) cho model PyTorch và TorchScript khi chạy ngoài CPU; các định dạng khác sử dụng độ chính xác do artifact và runtime của chúng lựa chọn. Thay thế đối số half đã lỗi thời. |
Ngoài ra, các tùy chọn trực quan hóa sau đây cũng được hỗ trợ:
| Đối số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
show | bool | False | Nếu True, hiển thị ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích để nhận phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc kiểm thử. |
Câu hỏi thường gặp#
Ultralytics YOLO26 cung cấp khả năng phát hiện phương tiện theo thời gian thực và giám sát cho các hệ thống bãi đỗ xe, giúp tối ưu hóa việc sử dụng chỗ đỗ, giảm ùn tắc và cải thiện an toàn thông qua hoạt động giám sát liên tục. Chạy model trên luồng camera trực tiếp cũng giúp quản lý luồng giao thông và giảm thời gian phương tiện chạy không tải. Để xem toàn bộ quy trình thiết lập, hãy tham khảo quy trình code của hệ thống quản lý bãi đỗ xe.
Dùng Ultralytics YOLO26 cho bãi đỗ xe thông minh mang lại nhiều lợi ích:
- Hiệu quả: Tối ưu hóa việc sử dụng chỗ đỗ xe và giảm ùn tắc.
- An toàn và bảo mật: Tăng cường giám sát và đảm bảo an toàn cho phương tiện cũng như người đi bộ.
- Tác động đến môi trường: Giúp giảm phát thải bằng cách giảm thời gian phương tiện chạy không tải. Tìm hiểu thêm về các lợi ích trong mục Ưu điểm của hệ thống quản lý bãi đỗ xe.
Việc xác định chỗ đỗ xe bằng Ultralytics YOLO26 rất đơn giản:
- Chụp một khung hình từ video hoặc luồng camera.
- Dùng code được cung cấp để mở GUI chọn hình ảnh và vẽ các đa giác nhằm xác định chỗ đỗ xe.
- Lưu dữ liệu đã gán nhãn ở định dạng JSON để xử lý thêm. Để xem hướng dẫn đầy đủ, hãy tham khảo mục chọn điểm ở trên.
Thiết lập phụ thuộc nhiều nhất vào từng bãi đỗ xe là
json_file: trỏ thiết lập này đến tệp JSON chứa các vùng đỗ xe mà bạn tạo bằng công cụ chú thích điểm để điều chỉnh giải pháp theo bố cục mới. Bạn có thể tùy chỉnh thêm thông qua các đối số khác — đặtmodelthành bộ phát hiện được huấn luyện tùy chỉnh, giới hạn các lần phát hiện ở nhữngclassesphương tiện cụ thể, điều chỉnh các ngưỡngconfvàiou, chuyển đổitracker, dùngline_widthđể thay đổi tỷ lệ nhãn trên khung hình và thông tin số chỗ đang sử dụng, hoặc chọndevicesuy luận. Để theo dõi theo vùng có liên quan, hãy xem hướng dẫn đếm đối tượng.Ultralytics YOLO26 được sử dụng trong nhiều ứng dụng thực tế về quản lý bãi đỗ xe, bao gồm:
- Phát hiện chỗ đỗ xe: Xác định chính xác các chỗ còn trống và đã có xe.
- Giám sát: Tăng cường an ninh thông qua giám sát theo thời gian thực.
- Quản lý lưu lượng giao thông: Giảm thời gian chờ và tình trạng ùn tắc nhờ điều phối giao thông hiệu quả. Bạn có thể xem hình ảnh minh họa các ứng dụng này trong các ứng dụng thực tế.

