Gestione dei parcheggi con Ultralytics YOLOv8 🚀
Che cos'è il sistema di gestione dei parcheggi?
La gestione dei parcheggi con Ultralytics YOLOv8 assicura un parcheggio efficiente e sicuro organizzando gli spazi e monitorando la disponibilità . YOLOv8 può migliorare la gestione dei parcheggi grazie al rilevamento dei veicoli in tempo reale e alle informazioni sull'occupazione dei parcheggi.
Vantaggi del sistema di gestione dei parcheggi?
- Efficienza: La gestione dei parcheggi ottimizza l'uso dei posti auto e riduce la congestione.
- Sicurezza e protezione: La gestione dei parcheggi tramite YOLOv8 migliora la sicurezza delle persone e dei veicoli grazie a misure di sorveglianza e sicurezza.
- Riduzione delle emissioni: La gestione dei parcheggi tramite YOLOv8 gestisce il flusso del traffico per ridurre al minimo i tempi morti e le emissioni nei parcheggi.
Applicazioni nel mondo reale
Sistema di gestione dei parcheggi | Sistema di gestione dei parcheggi |
---|---|
Gestione del parcheggio Aeriel View utilizzando Ultralytics YOLOv8 | Gestione del parcheggio Vista dall'alto con Ultralytics YOLOv8 |
Flusso di lavoro del codice del sistema di gestione dei parcheggi
Selezione dei punti
La selezione dei punti è ora facile
La scelta dei punti di parcheggio è un compito critico e complesso nei sistemi di gestione dei parcheggi. Ultralytics semplifica questo processo fornendo uno strumento che consente di definire le aree di parcheggio, che possono essere utilizzate successivamente per ulteriori elaborazioni.
- Cattura un fotogramma dal flusso video o dalla telecamera nel punto in cui vuoi gestire il parcheggio.
- Utilizza il codice fornito per avviare un'interfaccia grafica, dove potrai selezionare un'immagine e iniziare a delineare le aree di parcheggio con un clic del mouse per creare poligoni.
Dimensione dell'immagine
Dimensioni massime dell'immagine supportate: 1920 * 1080
from ultralytics.solutions.parking_management import ParkingPtsSelection, tk
root = tk.Tk()
ParkingPtsSelection(root)
root.mainloop()
- Dopo aver definito le aree di parcheggio con i poligoni, clicca su
save
per memorizzare un file JSON con i dati nella tua directory di lavoro.
Python Codice per la gestione dei parcheggi
Gestione dei parcheggi con YOLOv8 Esempio
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()
Argomenti opzionali ParkingManagement()
Nome | Tipo | Predefinito | Descrizione |
---|---|---|---|
occupied_region_color |
RGB Color |
(0, 255, 0) |
Colore della regione del parcheggio occupato |
available_region_color |
RGB Color |
(0, 0, 255) |
Posto auto disponibile regione colore |
margin |
int |
10 |
Spazio tra la visualizzazione del testo per il conteggio di più classi |
txt_color |
RGB Color |
(255, 255, 255) |
Colore di primo piano per il testo dei conteggi degli oggetti |
bg_color |
RGB Color |
(255, 255, 255) |
Colore di sfondo del rettangolo dietro il testo |
Argomenti model.track
Nome | Tipo | Predefinito | Descrizione |
---|---|---|---|
source |
im0 |
None |
directory di origine per le immagini o i video |
persist |
bool |
False |
persistenza dei brani tra i fotogrammi |
tracker |
str |
botsort.yaml |
Metodo di tracciamento 'bytetrack' o 'botsort' |
conf |
float |
0.3 |
Soglia di fiducia |
iou |
float |
0.5 |
Soglia IOU |
classes |
list |
None |
filtrare i risultati per classe, ad esempio classi=0 o classi=[0,2,3]. |
verbose |
bool |
True |
Visualizza i risultati del tracciamento dell'oggetto |