Ultralytics YOLO27 :

Construis un système de gestion de parking avec Ultralytics YOLO26#

Qu'est-ce qu'un système de gestion du stationnement ?#

Un système de gestion du stationnement basé sur Ultralytics YOLO26 détecte les véhicules en temps réel pour suivre les places occupées ou disponibles, puis fournit en direct le taux d'occupation du parking. Il associe la détection d'objets de YOLO26 à une configuration du parking définie en JSON afin que tu puisses surveiller un parking entier depuis un seul flux vidéo ou une seule caméra.



Watch: How to Build a Parking Management System with Ultralytics YOLO26 | Real-Time Spot Detection 🚗

Avantages d'un système de gestion du stationnement#

  • Efficacité : Optimise l'utilisation des places de stationnement et réduit les embouteillages dans tout le parking.
  • Sûreté et sécurité : Améliore la sûreté des personnes et des véhicules grâce à une surveillance continue.
  • Réduction des émissions : Gère la circulation afin de réduire le temps d'attente moteur allumé et les émissions dans les parkings.

Applications concrètes#

Système de gestion du stationnementSystème de gestion du stationnement
Analyse des parkings avec Ultralytics YOLO26Vue de dessus pour la gestion du stationnement avec Ultralytics YOLO26
Vue aérienne de la gestion du stationnement avec Ultralytics YOLO26Vue de dessus de la gestion du stationnement avec Ultralytics YOLO26

Flux de travail du code du système de gestion du stationnement#

La sélection des points est désormais facile

Le choix des points de stationnement est une tâche essentielle et complexe dans les systèmes de gestion du stationnement. Ultralytics simplifie ce processus en fournissant un outil d'« annotation des places de stationnement » qui te permet de définir les zones du parking, lesquelles pourront ensuite être utilisées pour un traitement supplémentaire.

Étape 1 : Capture une image de la vidéo ou du flux de la caméra à l'endroit où tu veux gérer le parking.

Étape 2 : Utilise le code fourni pour lancer une interface graphique, dans laquelle tu peux sélectionner une image et commencer à délimiter les zones de stationnement en cliquant avec la souris pour créer des polygones.

Annotateur de places de stationnement Ultralytics YOLO
Étape supplémentaire pour installer `tkinter`

En général, tkinter est fourni avec Python. Toutefois, si ce n'est pas le cas, tu peux l'installer en suivant les étapes mises en évidence :

  • Linux : (Debian/Ubuntu) : sudo apt install python3-tk
  • Fedora : sudo dnf install python3-tkinter
  • Arch : sudo pacman -S tk
  • Windows : Réinstalle Python et coche la case tcl/tk and IDLE dans les Fonctionnalités facultatives pendant l'installation.
  • MacOS : Réinstalle Python depuis https://www.python.org/downloads/macos/ ou avec brew install python-tk.
from ultralytics import solutions

solutions.ParkingPtsSelection()

Étape 3 : Après avoir défini les zones de stationnement avec des polygones, clique sur save pour enregistrer les données dans bounding_boxes.json dans ton répertoire de travail — il s'agit du même nom de fichier que celui chargé ci-dessous par le script de gestion.

Démonstration de la sélection des points avec Ultralytics YOLO26

Étape 4 : Tu peux maintenant exécuter la solution de gestion du stationnement avec le code ci-dessous.

Gestion du stationnement avec Ultralytics YOLO
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

Arguments de ParkingManagement#

Voici un tableau présentant les arguments de ParkingManagement :

ArgumentTypeValeur par défautDescription
modelstrNoneChemin vers un fichier de modèle Ultralytics YOLO.
json_filestrNoneChemin vers le fichier JSON contenant toutes les données de coordonnées des places de stationnement.
line_widthint2Épaisseur des lignes des boîtes, des points clés et des comptages dessinés par la solution.
verboseboolTrueActive le journal par image de la solution, qui indique la forme d'entrée, les comptages par classe et la vitesse de traitement. L'appel de suivi lui-même est toujours silencieux.

La solution ParkingManagement permet d'utiliser plusieurs paramètres track :

ArgumentTypeValeur par défautDescription
trackerstr'botsort.yaml'Indique l'algorithme de suivi à utiliser. Options intégrées : botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Définit le seuil de confiance des détections ; des valeurs plus faibles permettent de suivre davantage d'objets, mais peuvent inclure des faux positifs.
ioufloat0.7Définit le seuil d'intersection sur union (IoU) pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats par indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées.
devicestrNoneIndique le périphérique utilisé pour l'inférence (par exemple, cpu, cuda:0 ou 0). Permet de choisir entre le CPU, un GPU spécifique ou d'autres périphériques de calcul pour l'exécution du modèle.
imgszint or tuple640Taille de l'image d'inférence cible : un entier pour un carré ou une paire (height, width). Les formes sont ajustées au pas du modèle.
max_detint300Nombre maximal de détections conservées par image avant le suivi, ce qui limite les objets traités par une solution dans les scènes denses.
quantizeint or strNonePrécision de l'inférence : 16 (FP16) ou 32/non définie (FP32) pour les modèles PyTorch et TorchScript ; les autres formats s'exécutent à la précision sélectionnée par leur artefact et leur environnement d'exécution. Remplace l'indicateur déprécié half.

De plus, les options de visualisation suivantes sont prises en charge :

ArgumentTypeValeur par défautDescription
showboolFalseSi True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour obtenir un retour visuel immédiat pendant le développement ou les tests.

FAQ#

  • Ultralytics YOLO26 fournit une détection de véhicules en temps réel et une surveillance pour les systèmes de stationnement, ce qui optimise l'utilisation des places, réduit les embouteillages et améliore la sécurité grâce à une surveillance continue. Son exécution sur un flux de caméra en direct contribue également à gérer la circulation et à réduire le temps d'attente des véhicules moteur allumé. Pour la configuration complète, consulte le flux de travail du code de gestion du stationnement.

  • L'utilisation d'Ultralytics YOLO26 pour le stationnement intelligent présente de nombreux avantages :

    • Efficacité : Optimise l'utilisation des places de stationnement et réduit les embouteillages.
    • Sûreté et sécurité : Renforce la surveillance et garantit la sécurité des véhicules et des piétons.
    • Impact environnemental : Contribue à réduire les émissions en limitant le temps d'attente des véhicules moteur allumé. Découvre d'autres avantages dans la section consacrée aux avantages d'un système de gestion du stationnement.
  • La définition des places de stationnement est simple avec Ultralytics YOLO26 :

    1. Capture une image à partir d'une vidéo ou d'un flux de caméra.
    2. Utilise le code fourni pour lancer une interface graphique permettant de sélectionner une image et de dessiner des polygones afin de définir les places de stationnement.
    3. Enregistre les données annotées au format JSON pour un traitement ultérieur. Pour obtenir des instructions détaillées, consulte la section sur la sélection des points ci-dessus.
  • Le paramètre le plus spécifique à ton parking est json_file : indique-lui le fichier JSON des zones de stationnement que tu crées avec l'annotateur de points afin d'adapter la solution à une nouvelle configuration. Tu peux également l'ajuster à l'aide des autres arguments — définis model sur un détecteur entraîné sur mesure, limite les détections à certains classes de véhicules, ajuste les seuils conf et iou, change le tracker, utilise line_width pour redimensionner les libellés affichés sur l'image et l'indicateur d'occupation, ou sélectionne le device pour l'inférence. Pour une surveillance connexe basée sur les zones, consulte le guide du comptage d'objets.

  • Ultralytics YOLO26 est utilisé dans diverses applications concrètes de gestion des parkings, notamment :

    • Détection des places de stationnement : Identification précise des places disponibles et occupées.
    • Surveillance : Renforcement de la sécurité grâce à une surveillance en temps réel.
    • Gestion de la circulation : Réduction des temps d'attente et des embouteillages grâce à une gestion efficace du trafic. Des images présentant ces applications sont disponibles dans les applications concrètes.

Commentaires