Tout le monde aime les week-ends. Le week-end, vous conduisez souvent avec votre famille dans des endroits très fréquentés comme des centres commerciaux, des parcs à thème ou des cirques pour faire des sorties et vous détendre. Mais vient ensuite l’une des parties les plus frustrantes du voyage : la recherche d’un parking. Parfois, trouver une place de parking est encore plus difficile que de se réveiller tôt le matin.
Même s’il y a un agent de sécurité ou une personne surveillante qui aide à gérer l’aire de stationnement, il lui est toujours difficile d’identifier rapidement quelles places sont vides et lesquelles sont déjà occupées. Pour surmonter ce problème, pourquoi ne pas créer un système qui capture l’ensemble de la zone de stationnement et détecte automatiquement combien de places de stationnement sont occupées et combien sont vacantes ? C’est exactement ce que fait ce projet. Nous avons construit un système intelligent de détection de places de stationnement sans aucune configuration complexe. Pour cela, nous n’avons besoin que d’une carte Raspberry Pi, d’une caméra USB et d’un compte dans CircuitDigest Cloud. Allons-y et voyons comment procéder. Vous pouvez également consulter des projets d’IA similaires et des projets Raspberry Pi réalisés précédemment ici sur Circuit Digest.
Flux de travail du système de détection des espaces de stationnement
Le système commence par la caméra USB capturant en continu les places de stationnement et les voitures. OpenCV est utilisé pour accéder à la caméra, afficher le flux vidéo en direct et capturer des images soit manuellement en appuyant sur la touche ESPACE en mode clavier, soit automatiquement après un intervalle de temps fixe en mode automatique. Après la capture, l’image est convertie au format JPEG à l’aide d’OpenCV pour une transmission facile. La bibliothèque Requests envoie ensuite l’image en toute sécurité à l’API CircuitDigest Cloud Parking Space Detection à l’aide d’une requête HTTPS POST avec la clé API. Le serveur cloud traite l’image à l’aide de la détection des places de stationnement basée sur l’IA et vérifie si la place est disponible ou remplie. Le résultat est ensuite renvoyé au système et affiché dans le terminal.
Composants requis
Les composants ci-dessous sont ceux qui sont utilisés pour créer le didacticiel de détection des espaces de stationnement basé sur Raspberry Pi.
| S. Non | Composants | But |
| 1. | Raspberry Pi pi | Il s’agit du contrôleur principal de cette configuration pour le traitement. |
| 2. | Caméra USB | Utilisé pour capturer l’image pour le traitement |
| 3. | Carte MicroSD | Utilisé pour démarrer le système d’exploitation sur la carte |
Schéma de circuit Détection d’espace de stationnement à l’aide de Raspberry Pi
Le schéma de circuit ci-dessous montre que le Raspberry Pi est connecté à l’alimentation externe pour une alimentation suffisante et que la caméra USB est connectée au port USB de la carte Raspberry Pi. Le Raspberry Pi est connecté à distance à l’ordinateur portable.

Procédure étape par étape pour la configuration du système de détection d’espace de stationnement à l’aide de Raspberry Pi
Contrairement à ESP32 ou Arduino, le code ne peut pas être flashé directement sur le Raspberry Pi à l’aide de l’IDE Arduino. Avant de lancer le projet, le Raspberry Pi doit être correctement configuré en installant le système d’exploitation sur une carte microSD. Ce processus est effectué à l’aide de Raspberry Pi Imager sur un ordinateur portable ou un PC. Tout d’abord, la carte microSD est insérée dans le système et, à l’aide de Raspberry Pi Imager, le système d’exploitation Raspberry Pi requis et les configurations initiales, telles que le Wi-Fi, le nom d’utilisateur, le mot de passe et les paramètres SSH, sont sélectionnés et installés. Une fois l’installation du système d’exploitation terminée, la carte SD est retirée et insérée dans l’emplacement pour carte mémoire du Raspberry Pi, et la carte est sous tension. Bien que la première configuration puisse sembler demander beaucoup de travail, elle est en réalité simple une fois terminée. Un guide détaillé étape par étape pour la configuration complète du Raspberry Pi est disponible dans le didacticiel de configuration complète du Raspberry Pi. Les façons de connecter le Raspberry Pi sont les suivantes :
- Connexion matérielle directe
La première méthode consiste à connecter des composants externes tels qu’un moniteur, un clavier et une souris directement au Raspberry Pi. Cela permet au Raspberry Pi de fonctionner comme un ordinateur de bureau normal et est principalement utile lors de la configuration initiale et pour le fonctionnement direct. - Utilisation de SSH (Secure Shell)
La deuxième méthode consiste à utiliser SSH, où le Raspberry Pi est accessible à distance depuis un autre ordinateur utilisant la même connexion réseau. Cette méthode permet un contrôle en ligne de commande sans avoir besoin d’un moniteur, d’un clavier ou d’une souris séparé connecté au Raspberry Pi. - Utiliser la visionneuse VNC
La troisième méthode consiste à utiliser VNC Viewer, qui permet d’accéder à distance au bureau graphique complet du Raspberry Pi depuis un autre ordinateur. Cela permet de contrôler le Raspberry Pi exactement comme si vous travailliez directement sur son propre écran, mais depuis un emplacement distant. Pour travailler sur la configuration à l’aide de VNC Viewer, reportez-vous à ce didacticiel VNC Viewer pour Raspberry Pi pour une procédure détaillée étape par étape.
Avant d’entrer dans l’IDE Thonny présent dans le bureau Raspberry Pi, vous avez d’abord besoin du code ; pour cela, suivez les étapes ci-dessous,
Étape 1 :
Tout d’abord, vous devez créer un compte sur CircuitDigest Cloud. Si vous en avez déjà un, rendez-vous simplement sur le site Web CircuitDigest Cloud, faites défiler vers le bas et vous remarquerez la fonction de détection des espaces de stationnement ; cliquez dessus et entrez.

Étape 2 :
Là, vous remarquerez la section d’essai de l’API, diverses options telles que l’image, les classes, la confiance, le résultat et une section de sélection du tableau avec ses codes pertinents. Tout d’abord, vous pouvez minimiser et maximiser le niveau de confiance en fonction de vos besoins, car la valeur de confiance définit le seuil de probabilité minimum pour la détection d’une place de stationnement. Une valeur plus élevée entraîne des détections plus précises mais peut en manquer certaines, tandis qu’une valeur plus faible détecte plus d’objets mais avec moins de certitude.

Étape 3 :
Actuellement, pour essayer sans aucune carte microcontrôleur, vous devez prendre une photo avec des places de stationnement disponibles et d’autres remplies. Téléchargez-le dans la section image et cliquez sur Exécuter le test. En quelques secondes, vous obtiendrez le résultat avec la détection des places de stationnement et son décompte également.

Étape 4 :
Sous la page, vous pouvez voir la sélection du microcontrôleur. Nous allons maintenant essayer ce système avec le Raspberry Pi. Cliquez sur le Raspberry Pi et la page vous donnera le code. Copiez simplement le code ; allez maintenant sur le bureau Raspberry Pi, cliquez sur Thonny IDE pour la programmation. Dans cela, collez le code copié après avoir effectué toutes les connexions correctes. Rien, connectez simplement la caméra USB au Raspberry Pi et exécutez le code ; c’est ça. Prenez n’importe quelle photo factice sur Internet montrant une place de parking remplie de voitures, et certaines sont vides, ou vous pouvez la tester en temps réel en prenant une photo de la zone de stationnement en temps réel, à l’aide des touches du clavier, ou vous pouvez la définir automatiquement en changeant le MODE = « clavier » dans le code, comme,
- Mode clavier
Dans ce mode, l’utilisateur capture l’image manuellement en appuyant sur la touche ESPACE du clavier. Il est principalement utilisé lorsque vous travaillez directement avec un moniteur ou via VNC Viewer. - Mode automatique
Dans ce mode, le système capture automatiquement les images après un intervalle de temps fixe sans aucune interaction de l’utilisateur. Il est utile pour les applications de surveillance continue. - Mode SSH
Dans ce mode, le programme s’exécute via l’accès au terminal à l’aide de SSH et capture automatiquement les images sans utiliser la fenêtre d’affichage OpenCV. Les résultats sont affichés directement dans le terminal.

L’image ci-dessous montre l’image capturée du Raspberry Pi. Parallèlement, vous pouvez voir les résultats de détection de l’image, où les espaces occupés et vacants sont identifiés. En dessous, le moniteur série affiche le résultat de détection, qui comprend le décompte et la valeur de confiance pour chaque élément identifié.

Explication du code pour le système de détection d’espace de stationnement Raspberry Pi
Le code est écrit en Python pour la détection des places de stationnement en temps réel à l’aide d’une caméra USB et de l’API CircuitDigest Cloud. OpenCV est utilisé pour capturer des images en direct et afficher le flux de la caméra sur l’écran. Le programme prend en charge le mode clavier pour la capture manuelle et le mode automatique pour la capture automatique d’images. L’image capturée est convertie au format JPEG pour une transmission facile. À l’aide de la bibliothèque Requests, l’image est envoyée en toute sécurité à l’API cloud via HTTPS. Le serveur traite l’image et renvoie le résultat de la détection de l’espace de stationnement au terminal.
import cv2
import requests
import time
import os
import sys
SERVER_URL = "https://www.raspberryme.cloud/api/v1/parking-detection/detect"
API_KEY = "YourApikey"
Cette section importe les bibliothèques Python requises pour l’accès à la caméra, la communication API, le contrôle de synchronisation et la gestion du système. OpenCV est utilisé pour capturer des images à partir de la caméra USB, tandis que la bibliothèque Requests envoie l’image capturée à l’API CircuitDigest Cloud. L’URL du serveur et la clé API sont également définies ici pour le traitement de la détection de stationnement.
MODE = "keyboard"
AUTO_INTERVAL = 5
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
Cette partie sélectionne le mode de fonctionnement du système, soit le mode clavier pour la capture manuelle d’images, soit le mode auto pour la détection automatique après des intervalles fixes. La caméra USB est initialisée à l’aide d’OpenCV et la résolution est définie pour capturer des images claires. L’intervalle automatique contrôle la fréquence à laquelle les images sont capturées automatiquement.
if not cap.isOpened():
print("Camera not found! Check USB camera connection.")
sys.exit()
Cette section vérifie si la caméra USB est correctement connectée et reconnue par le Raspberry Pi. Si la caméra n’est pas détectée, le programme affiche un message d’erreur et s’arrête immédiatement. Cela évite d’exécuter le projet sans entrée de caméra valide.
_, img_encoded = cv2.imencode('.jpg', frame, [cv2.IMWRITE_JPEG_QUALITY, 90])
img_bytes = img_encoded.tobytes()
response = requests.post(SERVER_URL, headers=headers,
files=files, timeout=15)
Cette partie capture l’image du flux de la caméra en direct et la convertit au format JPEG pour une transmission facile. L’image est ensuite envoyée en toute sécurité à l’API CircuitDigest Cloud Parking Detection à l’aide d’une requête HTTPS POST. Le serveur cloud traite l’image et détecte les places de stationnement occupées et vides.
occupied = result.get("occupied", 0)
empty = result.get("empty", 0)
print(f"Occupied slots: {occupied}")
print(f"Empty slots: {empty}")
Cette section lit la réponse reçue du serveur cloud après le traitement de l’image. Il extrait le nombre de places de stationnement occupées et vides et affiche le résultat dans la borne. En fonction du résultat, le système indique également si un parking est disponible ou si la zone de stationnement est pleine.
Dépannage du système de détection de place de stationnement
Problème 1 : Caméra non détectée
Si la caméra USB n’est pas détectée, le programme peut afficher « Caméra non trouvée » et cesser de fonctionner. Cela se produit généralement en raison d’une connexion USB lâche ou d’une sélection incorrecte de l’appareil photo. Reconnectez correctement la caméra et assurez-vous qu’elle est fermement fixée. Vous pouvez également essayer de remplacer cv2.VideoCapture(0) par cv2.VideoCapture(1) si un autre appareil photo est connecté.
Problème 2 : expiration du délai d’attente de la demande d’API
Parfois, l’image capturée peut ne pas atteindre le serveur et le programme affiche une erreur de délai d’attente. Cela se produit généralement en raison d’une connexion Internet lente ou d’un accès réseau instable. Vérifiez si le Raspberry Pi est correctement connecté au Wi-Fi ou à Ethernet. L’augmentation de la valeur du délai d’attente dans la fonction de requête peut également aider à résoudre ce problème.
Problème 3 : erreur de clé API non valide
Si la clé API est incorrecte, le serveur cloud rejettera la demande et la détection du stationnement échouera. Cela peut se produire si la clé est mal copiée ou contient des espaces supplémentaires. Revérifiez la clé API du compte CircuitDigest Cloud et collez-la correctement dans le code. Assurez-vous qu’il n’y a aucun caractère manquant ou supplémentaire.
Problème 4 : Résultat de détection de stationnement incorrect
Parfois, le système peut afficher un nombre erroné d’emplacements occupés ou vides en raison d’un mauvais éclairage ou d’angles de caméra peu clairs. Les ombres, les positions des véhicules stationnés et la faible qualité d’image peuvent affecter la précision de la détection. Placez la caméra dans une position de vue de dessus appropriée avec de bonnes conditions d’éclairage. L’augmentation de la résolution de la caméra peut également améliorer la précision.
Problème 5 : le programme plante pendant l’exécution
Le programme peut s’arrêter soudainement en raison de bibliothèques Python manquantes ou d’erreurs de capture d’images. Cela se produit généralement lorsque OpenCV ou Requests ne sont pas installés correctement sur le Raspberry Pi. Assurez-vous que toutes les bibliothèques requises sont installées avant d’exécuter le projet. Redémarrer le Raspberry Pi et vérifier le flux de la caméra peut également aider à résoudre le problème.
Avantages et limites de la détection des places de stationnement à l’aide de Raspberry Pi
Le tableau suivant donne une idée claire des limites et des avantages de la détection des déchets à l’aide d’un Raspberry Pi.
| S. Non | Avantages | Limites |
| 1. | Détecte automatiquement les places de stationnement occupées et vides en temps réel | Nécessite une connexion Internet stable pour le traitement cloud |
| 2. | Réduit le travail manuel des agents de sécurité et des surveillants de stationnement | La précision de la détection dépend de la qualité et de l’angle de la caméra |
| 3. | Facile à mettre en œuvre à l’aide d’un Raspberry Pi et d’une caméra USB | Un mauvais éclairage ou des ombres peuvent affecter les résultats de détection |
| 4. | Prend en charge les modes de capture d’image manuels et automatiques | L’utilisation de l’API Cloud peut avoir des limites quotidiennes ou mensuelles |
| 5. | Améliore la gestion du stationnement et réduit les embouteillages | Un léger retard peut survenir en raison du temps de réponse de l’API |
Le principal avantage de cette configuration est que nous n’avons pas besoin de prendre des ensembles de données manuellement ou de les télécharger à partir d’Internet, ni d’étiqueter les objets ni de créer un modèle. Avec l’aide de CircuitDigest Cloud, nous flashons simplement le code et l’utilisons comme un modèle prêt à l’emploi. Cela fait gagner du temps, et avec ce temps, nous pouvons nous concentrer davantage sur d’autres modifications matérielles pour de futures améliorations. Cette méthode éliminera l’utilisation de sites Web de formation ML comme Edge Impulse et TensorFlow Lite.
Projet de détection d’espace de stationnement Raspberry Pi GitHub
Téléchargez et explorez un projet de stationnement intelligent basé sur Raspberry Pi, conçu pour la détection d’espace en temps réel. Le code source inclus permet une surveillance automatisée du stationnement à l’aide de la technologie de vision par ordinateur.
Foire aux questions
⇥ Une formation de modèle est-elle requise pour ce projet ?
Non, la formation du modèle n’est pas requise car la détection du stationnement est gérée par l’API CircuitDigest Cloud. Cela rend le projet simple et facile à mettre en œuvre sans collecter d’ensembles de données ni former de modèles d’IA.
⇥ Ce système peut-il fonctionner pour les aires de stationnement à plusieurs étages ?
Oui, le système peut être utilisé pour les aires de stationnement à plusieurs étages en installant des caméras distinctes pour chaque étage. Chaque caméra peut surveiller sa propre section et fournir indépendamment des informations sur la disponibilité du stationnement.
⇥ Ce système fonctionne-t-il sans connexion Internet ?
Non, ce système nécessite une connexion Internet car l’image capturée est envoyée à l’API CircuitDigest Cloud pour le traitement de la détection de stationnement. Sans Internet, la détection ne fonctionnera pas.
⇥ Puis-je utiliser n’importe quelle caméra USB pour ce projet ?
Oui, la plupart des webcams USB standard peuvent être utilisées avec le Raspberry Pi pour ce projet. Cependant, l’utilisation d’une caméra de meilleure qualité améliore la clarté de l’image et la précision de la détection du stationnement.
⇥ À quoi servent le mode clavier et le mode automatique ?
Le mode clavier permet à l’utilisateur de capturer manuellement une image en appuyant sur la touche ESPACE. Le mode automatique capture automatiquement les images après un intervalle de temps fixe, ce qui le rend utile pour les applications de surveillance continue du stationnement.
⇥ Comment puis-je améliorer la précision de la détection de stationnement ?
Vous pouvez améliorer la précision en plaçant la caméra dans une position de vue de dessus appropriée avec de bonnes conditions d’éclairage. Évitez les ombres et la visibilité floue des emplacements de stationnement, car elles peuvent affecter les résultats de détection.
⇥ Ce système peut-il détecter plusieurs emplacements de stationnement en même temps ?
Oui, le système peut détecter plusieurs places de stationnement occupées et vides à partir d’une seule image et afficher le nombre total dans le terminal. Cela le rend utile pour les grandes zones de stationnement.
Projets d’IoT et d’automatisation basés sur WhatsApp



Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

-
Aide au Stationnement de Voiture, Radar de Recul Voiture avec Signal Stop LED Assistant, Aide au Stationnement Équipé d'options de Double Alimentation pour Camions SUV et Garages
-
MechKit Kit D'Aide Au Stationnement Automobile, Capteur De Stationnement Arrière, Système D'Alarme De Recul, Avertisseur Sonore, Radar De Recul, Aide Au Stationnement, Noir, 12V
