docs/en/guides/parking-management.md
Parking management with Ultralytics YOLO26 ensures efficient and safe parking by organizing spaces and monitoring availability. YOLO26 can improve parking lot management through real-time vehicle detection, and insights into parking occupancy.
<p align="center"> <iframe loading="lazy" width="720" height="405" src="https://www.youtube.com/embed/hsimB10D6Y0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen> </iframe><strong>Watch:</strong> How to Build a Parking Management System with Ultralytics YOLO26 | Real-Time Spot Detection 🚗
</p>| Parking Management System | Parking Management System |
|---|---|
| Parking management Aerial View using Ultralytics YOLO26 | Parking management Top View using Ultralytics YOLO26 |
??? note "Points selection is now easy"
Choosing parking points is a critical and complex task in parking management systems. Ultralytics streamlines this process by providing a tool "Parking slots annotator" that lets you define parking lot areas, which can be utilized later for additional processing.
Step-1: Capture a frame from the video or camera stream where you want to manage the parking lot.
Step-2: Use the provided code to launch a graphical interface, where you can select an image and start outlining parking regions by mouse click to create polygons.
!!! example "Parking slots annotator Ultralytics YOLO"
??? note "Additional step for installing `tkinter`"
Generally, `tkinter` comes pre-packaged with Python. However, if it did not, you can install it using the highlighted steps:
- **Linux**: (Debian/Ubuntu): `sudo apt install python3-tk`
- **Fedora**: `sudo dnf install python3-tkinter`
- **Arch**: `sudo pacman -S tk`
- **Windows**: Reinstall Python and enable the checkbox `tcl/tk and IDLE` on **Optional Features** during installation
- **MacOS**: Reinstall Python from [https://www.python.org/downloads/macos/](https://www.python.org/downloads/macos/) or `brew install python-tk`
=== "Python"
```python
from ultralytics import solutions
solutions.ParkingPtsSelection()
```
Step-3: After defining the parking areas with polygons, click save to store a JSON file with the data in your working directory.
Step-4: You can now utilize the provided code for parking management with Ultralytics YOLO.
!!! example "Parking Management using Ultralytics YOLO"
=== "Python"
```python
import cv2
from ultralytics import solutions
# Video capture
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
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))
# Initialize parking management object
parkingmanager = solutions.ParkingManagement(
model="yolo26n.pt", # path to model file
json_file="bounding_boxes.json", # path to parking annotations file
)
while cap.isOpened():
ret, im0 = cap.read()
if not ret:
break
results = parkingmanager(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
```
=== "CLI"
```bash
yolo solutions parking source="path/to/video.mp4" json_file="bounding_boxes.json" show=True
```
!!! note
Create parking zone annotations first using `ParkingPtsSelection()` in Python (Step 2 above), then pass the JSON file to the CLI command.
ParkingManagement ArgumentsHere's a table with the ParkingManagement arguments:
{% from "macros/solutions-args.md" import param_table %} {{ param_table(["model", "json_file"]) }}
The ParkingManagement solution allows the use of several track parameters:
{% from "macros/track-args.md" import param_table %} {{ param_table(["tracker", "conf", "iou", "classes", "verbose", "device"]) }}
Moreover, the following visualization options are supported:
{% from "macros/visualization-args.md" import param_table %} {{ param_table(["show", "line_width"]) }}
Ultralytics YOLO26 greatly enhances parking management systems by providing real-time vehicle detection and monitoring. This results in optimized usage of parking spaces, reduced congestion, and improved safety through continuous surveillance. The Parking Management System enables efficient traffic flow, minimizing idle times and emissions in parking lots, thereby contributing to environmental sustainability. For further details, refer to the parking management code workflow.
Using Ultralytics YOLO26 for smart parking yields numerous benefits:
Defining parking spaces is straightforward with Ultralytics YOLO26:
Yes, Ultralytics YOLO26 allows customization for specific parking management needs. You can adjust parameters such as the occupied and available region colors, margins for text display, and much more. Utilizing the ParkingManagement class's arguments, you can tailor the model to suit your particular requirements, ensuring maximum efficiency and effectiveness.
Ultralytics YOLO26 is utilized in various real-world applications for parking lot management, including: