Link to this sectionBuild a Parking Management System with Ultralytics YOLO26 🚀#
Link to this sectionWhat Is a Parking Management System?#
A parking management system built with Ultralytics YOLO26 detects vehicles in real time to track which parking spaces are occupied or available, then reports live lot occupancy. It pairs YOLO26 object detection with a JSON-defined parking layout so you can monitor a whole lot from a single video stream or camera feed.
Watch: How to Build a Parking Management System with Ultralytics YOLO26 | Real-Time Spot Detection 🚗
Link to this sectionAdvantages of Parking Management System#
- Efficiency: Optimizes the use of parking spaces and reduces congestion across the lot.
- Safety and Security: Improves the safety of people and vehicles through continuous surveillance.
- Reduced Emissions: Manages traffic flow to minimize idle time and emissions in parking lots.
Link to this sectionReal World Applications#
| Parking Management System | Parking Management System |
|---|---|
![]() | ![]() |
| Parking management Aerial View using Ultralytics YOLO26 | Parking management Top View using Ultralytics YOLO26 |
Link to this sectionParking Management System Code Workflow#
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.
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 IDLEon Optional Features during installation - MacOS: Reinstall Python from https://www.python.org/downloads/macos/ or
brew install python-tk
from ultralytics import solutions
solutions.ParkingPtsSelection()Step-3: After defining the parking areas with polygons, click save to store the data as bounding_boxes.json in your working directory — the same filename the management script loads below.

Step-4: You can now run the parking management solution with the code below.
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 windowsLink to this sectionParkingManagement Arguments#
Here's a table with the ParkingManagement arguments:
| Argument | Type | Default | Description |
|---|---|---|---|
model | str | None | Path to an Ultralytics YOLO model file. |
json_file | str | None | Path to the JSON file that contains all parking coordinates data. |
The ParkingManagement solution allows the use of several track parameters:
| Argument | Type | Default | Description |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Specifies the tracking algorithm to use. Built-in options: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives. |
iou | float | 0.7 | Sets the Intersection over Union (IoU) threshold for filtering overlapping detections. |
classes | list | None | Filters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes. |
verbose | bool | True | Controls the display of tracking results, providing a visual output of tracked objects. |
device | str | None | Specifies the device for inference (e.g., cpu, cuda:0 or 0). Allows users to select between CPU, a specific GPU, or other compute devices for model execution. |
Moreover, the following visualization options are supported:
| Argument | Type | Default | Description |
|---|---|---|---|
show | bool | False | If True, displays the annotated images or videos in a window. Useful for immediate visual feedback during development or testing. |
line_width | int or None | None | Specifies the line width of bounding boxes. If None, the line width is automatically adjusted based on the image size. Provides visual customization for clarity. |
Link to this sectionFAQ#
Link to this sectionHow does Ultralytics YOLO26 enhance parking management systems?#
Ultralytics YOLO26 provides real-time vehicle detection and monitoring for parking systems, which optimizes the use of parking spaces, reduces congestion, and improves safety through continuous surveillance. Running it on a live camera feed also helps manage traffic flow and minimize vehicle idle time. For the full setup, see the parking management code workflow.
Link to this sectionWhat are the benefits of using Ultralytics YOLO26 for smart parking?#
Using Ultralytics YOLO26 for smart parking yields numerous benefits:
- Efficiency: Optimizes the use of parking spaces and decreases congestion.
- Safety and Security: Enhances surveillance and ensures the safety of vehicles and pedestrians.
- Environmental Impact: Helps reduce emissions by minimizing vehicle idle times. Explore more benefits in the Advantages of Parking Management System section.
Link to this sectionHow can I define parking spaces using Ultralytics YOLO26?#
Defining parking spaces is straightforward with Ultralytics YOLO26:
- Capture a frame from a video or camera stream.
- Use the provided code to launch a GUI for selecting an image and drawing polygons to define parking spaces.
- Save the labeled data in JSON format for further processing. For comprehensive instructions, check the selection of points section above.
Link to this sectionHow do I customize the ParkingManagement solution for my parking lot?#
The most lot-specific setting is json_file: point it at the parking-region JSON you create with the points annotator to adapt the solution to a new layout. You can further tailor it through the other arguments — set model to a custom-trained detector, restrict detections to specific vehicle classes, adjust the conf and iou thresholds, switch the tracker, use line_width to scale the on-frame labels and occupancy readout, or select the inference device. For related zone-based monitoring, see the object counting guide.
Link to this sectionWhat are some real-world applications of Ultralytics YOLO26 in parking lot management?#
Ultralytics YOLO26 is utilized in various real-world applications for parking lot management, including:
- Parking Space Detection: Accurately identifying available and occupied spaces.
- Surveillance: Enhancing security through real-time monitoring.
- Traffic Flow Management: Reducing idle times and congestion with efficient traffic handling. Images showcasing these applications can be found in real-world applications.

