Ultralytics YOLO27 :
Get Started

Créer un système de gestion de stationnement avec Ultralytics YOLO26#

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

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



Regarder : Comment créer un système de gestion de stationnement avec Ultralytics YOLO26 | Détection des places en temps réel 🚗

Avantages d’un système de gestion de stationnement#

  • Efficacité : optimise l’utilisation des places de stationnement et réduit la congestion dans le parking.
  • Sûreté et sécurité : améliore la sécurité des personnes et des véhicules grâce à la vidéosurveillance continue.
  • Réduction des émissions : régule la circulation afin de réduire les périodes d’immobilité et les émissions dans les parkings.

Applications concrètes#

Système de gestion de stationnementSystème de gestion de stationnement
Analyse des parkings avec Ultralytics YOLO26Vue aérienne de la gestion d’un parking avec Ultralytics YOLO26
Vue aérienne de la gestion d’un parking avec Ultralytics YOLO26Vue de dessus de la gestion d’un parking avec Ultralytics YOLO26

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

La sélection des points est désormais simple

Le choix des points de stationnement est une tâche complexe et essentielle dans les systèmes de gestion de stationnement. Ultralytics simplifie ce processus en proposant 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 d’autres traitements.

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

Étape 2 : Utilise le code fourni pour ouvrir une interface graphique, sélectionner une image et commencer à dessiner des régions de stationnement sous forme de polygones en cliquant avec la souris.

Outil d’annotation des places de stationnement Ultralytics YOLO
Étape supplémentaire pour installer `tkinter`

En général, tkinter est fourni avec Python. Si ce n’est pas le cas, tu peux l’installer en suivant les étapes indiquées :

  • 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 tcl/tk and IDLE dans Fonctionnalités facultatives pendant l’installation.
  • MacOS : réinstalle Python depuis https://www.python.org/downloads/macos/ ou brew install python-tk.
from ultralytics import solutions

solutions.ParkingPtsSelection()

Étape 3 : Après avoir défini les zones de stationnement sous forme de polygones, clique sur save pour enregistrer les données au format bounding_boxes.json dans ton répertoire de travail — le même nom de fichier que le script de gestion charge ci-dessous.

Démo de sélection de 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

# Capture vidéo
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Écriture de la vidéo
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))

# Initialiser l’objet de gestion du stationnement
parkingmanager = solutions.ParkingManagement(
    model="yolo26n.pt",  # chemin d’accès au fichier du modèle
    json_file="bounding_boxes.json",  # chemin d’accès au fichier d’annotations du stationnement
)

while cap.isOpened():
    ret, im0 = cap.read()
    if not ret:
        break

    results = parkingmanager(im0)

    # print(results)  # accéder aux résultats

    video_writer.write(results.plot_im)  # Écrire l’image traitée.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # fermer toutes les fenêtres ouvertes

Arguments de ParkingManagement#

Voici un tableau des 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 coordonnées des places de stationnement.
line_widthint2Épaisseur des lignes des boîtes, des points clés et des compteurs dessinés par la solution.
verboseboolTrueActive le journal de la solution pour chaque image, qui indique la forme de l'entrée, le nombre d'éléments par classe et la vitesse de traitement. L'appel de suivi reste toujours silencieux.

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

ArgumentTypeValeur par défautDescription
trackerstr'tracktrack.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 l'union (IoU) utilisé pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats selon l'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 cible de l'image pour l'inférence : un entier pour une image carrée ou une paire (height, width). Les dimensions sont ajustées au stride du modèle.
max_detint300Nombre maximal de détections conservées par image avant le suivi, ce qui limite le nombre d'objets qu'une solution traite dans les scènes denses.
quantizeint or strNonePrécision de l'inférence : 16 (FP16) ou 32/non défini (FP32) pour les modèles PyTorch et TorchScript ; les autres formats utilisent la précision sélectionnée par leur artefact et leur environnement d'exécution. Remplace l'option obsolète 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 assure la détection de véhicules en temps réel et le suivi des parkings, ce qui optimise l’utilisation des places, réduit la congestion et améliore la sécurité grâce à une surveillance continue. Son exécution sur un flux vidéo en direct contribue également à réguler la circulation et à réduire les périodes d’immobilité des véhicules. Pour connaître la procédure complète, consulte le flux de travail du code de gestion de stationnement.

  • Utiliser Ultralytics YOLO26 pour le stationnement intelligent offre de nombreux avantages :

    • Efficacité : optimise l’utilisation des places de stationnement et réduit la congestion.
    • Sûreté et sécurité : améliore la surveillance et garantit la sécurité des véhicules et des piétons.
    • Impact environnemental : contribue à réduire les émissions en limitant les périodes d’immobilité des véhicules. Découvre d’autres avantages dans la section sur les avantages d’un système de gestion de stationnement.
  • Définir des places de stationnement avec Ultralytics YOLO26 est simple :

    1. Capture une image d’une vidéo ou d’un flux de caméra.
    2. Utilise le code fourni pour ouvrir une interface graphique qui te permet 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 les traiter ensuite. 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 à chaque parking est json_file : indique le fichier JSON des régions de stationnement que tu crées avec l’outil d’annotation des points pour adapter la solution à une nouvelle configuration. Tu peux aussi la personnaliser à l’aide des autres arguments : définis model sur un détecteur entraîné sur mesure, limite les détections à des classes de véhicules spécifiques, ajuste les seuils conf et iou, change le tracker, utilise line_width pour redimensionner les libellés et l’indicateur d’occupation affichés sur l’image, ou sélectionne le device d’inférence. Pour surveiller des 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 : identifier avec précision les places libres et occupées.
    • Surveillance : renforcer la sécurité grâce à une surveillance en temps réel.
    • Gestion de la circulation : réduire les temps d’attente et les embouteillages grâce à une gestion efficace du trafic. Des images illustrant ces applications sont disponibles dans les applications concrètes.

Commentaires