Gestion du stationnement à l'aide de Ultralytics YOLOv8 🚀
Qu'est-ce que le système de gestion du stationnement ?
La gestion des parkings avec Ultralytics YOLOv8 assure un stationnement efficace et sûr en organisant les places et en surveillant leur disponibilité. YOLOv8 peut améliorer la gestion des parcs de stationnement grâce à la détection des véhicules en temps réel et à des informations sur l'occupation des parkings.
Avantages du système de gestion du stationnement ?
- Efficacité: La gestion des parcs de stationnement optimise l'utilisation des places de parking et réduit les embouteillages.
- Sûreté et sécurité: La gestion des parkings à l'aide de YOLOv8 améliore la sécurité des personnes et des véhicules grâce à des mesures de surveillance et de sécurité.
- Réduction des émissions: La gestion des parkings à l'aide de YOLOv8 gère le flux de circulation pour minimiser les temps morts et les émissions dans les parkings.
Applications dans le monde réel
Système de gestion du stationnement | Système de gestion du stationnement |
---|---|
Gestion du stationnement Aeriel View utilisant Ultralytics YOLOv8 | Gestion du stationnement Vue du dessus utilisant Ultralytics YOLOv8 |
Système de gestion des parkings Code Workflow
SĂ©lection des points
La sélection des points est maintenant facile
Le choix des points de stationnement est une tâche critique et complexe dans les systèmes de gestion des parkings. Ultralytics rationalise ce processus en fournissant un outil qui te permet de définir des zones de parking, qui peuvent être utilisées ultérieurement pour un traitement supplémentaire.
- Capture une image du flux vidéo ou de la caméra à l'endroit où tu veux gérer le parking.
- Utilise le code fourni pour lancer une interface graphique, où tu peux sélectionner une image et commencer à délimiter les zones de stationnement par un clic de souris pour créer des polygones.
Taille de l'image
Taille maximale de l'image : 1920 * 1080
from ultralytics.solutions.parking_management import ParkingPtsSelection, tk
root = tk.Tk()
ParkingPtsSelection(root)
root.mainloop()
- Après avoir défini les aires de stationnement avec des polygones, clique sur
save
pour stocker un fichier JSON avec les données dans ton répertoire de travail.
Python Code pour la gestion des parkings
Gestion des parkings Ă l'aide de YOLOv8 Exemple
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()
Arguments facultatifs ParkingManagement()
Nom | Type | DĂ©faut | Description |
---|---|---|---|
occupied_region_color |
RGB Color |
(0, 255, 0) |
Couleur de la région de la place de parking occupée |
available_region_color |
RGB Color |
(0, 0, 255) |
Place de parking disponible couleur de la région |
margin |
int |
10 |
Écart entre l'affichage du texte pour le décompte de plusieurs classes |
txt_color |
RGB Color |
(255, 255, 255) |
Couleur de premier plan pour le texte de comptage des objets |
bg_color |
RGB Color |
(255, 255, 255) |
Rectangle derrière la couleur d'arrière-plan du texte |
Arguments model.track
Nom | Type | DĂ©faut | Description |
---|---|---|---|
source |
im0 |
None |
répertoire source pour les images ou les vidéos |
persist |
bool |
False |
persistance des pistes entre les images |
tracker |
str |
botsort.yaml |
MĂ©thode de suivi 'bytetrack' ou 'botsort' |
conf |
float |
0.3 |
Seuil de confiance |
iou |
float |
0.5 |
Seuil de reconnaissance de dette |
classes |
list |
None |
filtre les résultats par classe, c'est-à -dire classes=0, ou classes=[0,2,3] |
verbose |
bool |
True |
Affiche les résultats du suivi des objets |