Et si un appareil pouvait voir le monde de la même manière que les humains, en voyant les objets, en les reconnaissant et en comprenant ce qu’ils sont en temps réel ? Tout comme nos yeux capturent des images et notre cerveau les traite instantanément, des bouteilles et téléphones aux personnes et objets du quotidien. Ce sera plutôt cool, non ? Mais d’abord, qu’est-ce que la détection d’objets ? La détection d’objets est une technique de vision par ordinateur qui peut être utilisée pour détecter des objets dans une image ou dans une vidéo. Il détectera les objets dans l’image, dessinera des cadres de délimitation autour d’eux, affichera leurs noms et affichera leurs pourcentages de confiance. Ce processus permet aux machines de comprendre le monde visuel comme le font les humains. Sachez également que des termes tels que détection d’objet, reconnaissance d’objet ou reconnaissance d’image sont souvent utilisés de manière interchangeable car ils signifient la même chose. Et si cette détection d’objets pouvait être effectuée dans un système compact sans étiquetage, sans collecte d’ensemble de données et même sans création de modèle ? Oui, c’est possible avec l’aide du Raspberry Pi et de CircuitDigest Cloud. Allons-y et voyons comment effectuer la détection d’objets avec Raspberry Pi. Vous pouvez également consulter des projets d’IA similaires et des projets Raspberry Pi réalisés précédemment ici sur Circuit Digest.
Comment fonctionne la détection d’objets sur Raspberry Pi
La configuration du projet est trop simple ; nous avons juste besoin du Raspberry Pi, d’une caméra USB, d’un ordinateur portable et d’un compte dans CircuitDigest Cloud. Tout d’abord, la caméra USB est connectée au port USB du Raspberry Pi et le Raspberry Pi est alimenté par la source externe. Désormais, le Raspberry Pi capture une image lorsque la touche espace est enfoncée, ou nous pouvons le configurer pour capturer une image automatiquement toutes les 20 secondes.

L’image capturée a été envoyée à l’API de détection d’objets CircuitDigest Cloud. Ensuite, le cloud analyse l’image et crée les cadres de délimitation autour des objets détectés et leur valeur de confiance. Le nombre d’objets détectés, le nom de l’objet et la confiance de l’objet sont clairement affichés dans le moniteur série. Nous avons également réalisé un projet intéressant en utilisant Edge Impulse ; reportez-vous à Détection d’objets à l’aide d’ESP32-CAM et Edge Impulse pour plus de détails.
Composants requis
Les composants ci-dessous sont ceux qui sont utilisés pour créer le didacticiel de détection d’objets 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 |
Schéma de circuit pour la détection d’objets 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 de la détection d’objets sur Raspberry Pi
Contrairement à l’ESP32 ou à l’Arduino, le code ne peut pas être directement flashé sur le Raspberry Pi à l’aide de l’IDE Arduino. Avant de lancer le projet sur le Raspberry Pi, il faut bien paramétrer la carte en installant l’OS sur la 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, via le Raspberry Pi Imager, le système d’exploitation Raspberry Pi requis et la configuration initiale, telle 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, retirez la carte SD et insérez-la dans l’emplacement pour carte SD du Raspberry Pi, puis alimentez la carte à l’aide d’une source externe. Si vous vous sentez confus à tout moment, le guide détaillé étape par étape pour la configuration du Raspberry Pi se trouve 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, vous pouvez vous référer à ce didacticiel de la visionneuse VNC pour Raspberry Pi pour la 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 flasher. 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, allez simplement sur le site Web CircuitDigest Cloud, faites défiler vers le bas et vous remarquerez la fonction de détection d’objets ; 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 requis. Premièrement, 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’objets. Une valeur plus élevée entraîne des détections plus précises mais peut manquer certains objets, tandis qu’une valeur plus faible détecte plus d’objets mais avec moins de précision.

Étape 3 :
Ensuite, vous pourrez accéder à tous les cours ; vous pouvez accéder à près de 75+ cours. Vous pouvez définir la détection de toutes les classes ou des classes spécifiques en fonction de vos besoins.

Étape 4 :
Actuellement, pour essayer sans carte microcontrôleur, vous devez prendre une photo contenant certaines des classes que vous avez sélectionnées, comme une photo avec un chien, un chat, une voiture, un vélo ou tout ce qui est disponible dans les classes. 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 d’objet et son décompte également.

Étape 5 :
Sous la page, vous pouvez voir la sélection du microcontrôleur. Nous allons maintenant essayer ce système de détection d’objets 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 celui-ci, collez le code copié après avoir effectué toutes les connexions correctement. 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 contenant les classes d’objets que vous avez sélectionnées, ou vous pouvez la tester en temps réel en prenant une photo des objets en temps réel, comme une voiture, un vélo, un chien, un chat, des personnes, etc., à l’aide des touches du clavier, ou vous pouvez la définir automatiquement en modifiant 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.

En cliquant sur l’option Mon utilisation, vous pouvez voir combien d’analyses sont disponibles pour la journée ainsi que pour le mois.

Si vous avez besoin de voir quelle détection vous avez effectuée avec le nombre de détections, vous pouvez visiter l’option » Mes journaux » dans la section de gestion présente sur le côté gauche de la page.

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ù des objets tels qu’un ordinateur portable, un téléphone, une personne et une souris sont identifiés. En dessous, le moniteur série affiche le résultat de détection, qui comprend le nombre d’objets et la valeur de confiance pour chaque objet détecté. Nous avons également réalisé un projet innovant utilisant l’ESP32-Cam : un système de lavage de voiture intelligent utilisant Edge Impulse pour la détection d’objets. Consultez le projet pour plus de détails.

Explication du code pour la détection d’objets avec Raspberry Pi
Le code est développé en utilisant Python sur Raspberry Pi pour effectuer une détection d’objets en temps réel à l’aide d’une caméra USB et d’une API basée sur le cloud. Il utilise OpenCV pour la capture d’images. Le système prend en charge différents modes de fonctionnement tels que le mode clavier, le mode automatique et le mode SSH. Vous pouvez sélectionner le mode selon vos besoins en changeant le mot dans le code. Le programme capture des images, les convertit au format JPEG et les envoie en toute sécurité à l’API via HTTPS. Le serveur traite l’image et renvoie les détails de l’objet détecté, qui sont ensuite affichés dans le terminal avec les noms d’objet et les valeurs de confiance.
import cv2
import requests
import time
import os
import sys
SERVER_URL = "https://www.raspberryme.cloud/api/v1/object-detection/detect"
API_KEY = "YourApikey"
CLASSES = "[]"
CONFIDENCE = "0.2"
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 (cv2) est utilisé pour capturer des images à partir de la caméra USB, tandis que les requêtes sont utilisées pour envoyer des images à l’API cloud. L’URL du serveur, la clé API, les classes d’objets et la valeur de confiance sont également définies ici pour le traitement de détection d’objets.
MODE = "auto"
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 capture d’image et initialise la caméra USB. Le projet prend en charge le mode clavier, le mode automatique et le mode SSH en fonction de la manière dont le Raspberry Pi est accessible. La résolution de la caméra est également définie ici pour garantir une qualité d’image appropriée pour une détection précise des objets.
if not cap.isOpened():
print("Camera not found! Check USB camera connection.")
sys.exit()
Cette section vérifie si la caméra est correctement connectée et détectée par le Raspberry Pi. Si la caméra n’est pas disponible, le programme imprime un message d’erreur et arrête l’exécution. Cela empêche le système de fonctionner avec des connexions matérielles non valides.
_, img_encoded = cv2.imencode('.jpg', frame)
img_bytes = img_encoded.tobytes()
response = requests.post(SERVER_URL, headers=headers,
files=files, data=data, timeout=15)
Cette partie capture l’image de la caméra et la convertit au format JPEG avant de l’envoyer à l’API cloud. L’image est envoyée de manière sécurisée via HTTPS avec la clé API et les paramètres de détection. L’API traite l’image et effectue la détection des objets à l’aide de modèles d’IA basés sur le cloud.
count = result.get("detection_count", 0)
print(f"Objects detected: {count}")
for det in result.get("detections", []):
print(f" - {label} ({conf:.2f}%)")
Cette section lit la réponse reçue de l’API et extrait le nombre d’objets détectés ainsi que leurs noms et valeurs de confiance. Le résultat final est affiché dans le terminal, montrant quels objets ont été identifiés dans l’image capturée. Cela aide l’utilisateur à comprendre clairement le résultat de la détection.
Dépannage pour la détection d’objets à l’aide de Raspberry Pi
Problème 1 : Caméra non détectée dans Raspberry Pi
Si la caméra USB n’est pas détectée, le programme peut afficher une erreur « Caméra non trouvée ». Cela se produit généralement en raison d’une connexion lâche ou d’un mauvais index de périphérique. Reconnectez correctement la caméra et essayez de remplacer cv2.VideoCapture(0) par cv2.VideoCapture(1). Vérifiez également en utilisant ls /dev/video* pour confirmer la détection.
Problème 2 : Échec de la demande d’API ou erreur de délai d’attente
Si l’image n’est pas envoyée vers le cloud, cela peut être dû à un manque de connexion internet ou à une clé API incorrecte. Vérifiez d’abord la connexion Wi-Fi. Vérifiez ensuite que la clé API et l’URL du serveur sont correctes. Augmenter la valeur du délai d’attente peut également aider.
Problème 3 : Faible précision de détection
Des détections incorrectes ou manquées se produisent en raison d’une faible valeur de confiance ou d’un mauvais éclairage. Augmentez légèrement le niveau de confiance pour une meilleure précision. Assurez-vous que l’objet est clairement visible. Évitez les images floues pour de meilleurs résultats.
Problème 4 : Réponse lente du système
Si la détection est lente, cela peut être dû à une résolution d’image élevée ou à des appels d’API fréquents. Réduisez la taille de l’image dans les paramètres OpenCV. Augmentez le temps d’intervalle automatique si vous utilisez le mode automatique. Une connexion Internet stable améliore également la vitesse.
Problème 5 : Le programme plante ou s’arrête
Assurez-vous que tous les modules requis, comme OpenCV et les requêtes, sont correctement installés. Redémarrez le programme si le flux de la caméra s’interrompt continuellement. Relâchez également correctement la caméra lorsque vous arrêtez le code.
Avantages et limites du système de détection d’objets avec Raspberry Pi
Le tableau suivant donne une idée claire des limites et des avantages de la détection d’objets à l’aide de Raspberry Pi.
| S. Non | Avantages | Limites |
| 1. | Détection d’objets en temps réel à l’aide de l’IA cloud | Dépend de la connexion Internet |
| 2. | Système à faible coût utilisant Raspberry Pi | Léger retard dû au traitement de l’API |
| 3. | Facile à mettre en œuvre et à mettre à niveau | Précision limitée dans des conditions de faible luminosité |
| 4. | Aucun traitement local lourd requis | La qualité de la caméra affecte les performances |
| 5. | Prend en charge plusieurs classes d’objets | Utilisation limitée de l’API (analyses par jour/mois) |
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 les 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. Non seulement avec Raspberry Pi, mais nous avons également réalisé le même projet de détection d’objets en utilisant ESP32-Cam, jetez-y également un œil.
Projet de détection d’objets Raspberry Pi GitHub
Foire aux questions
⇥ Ce système fonctionne-t-il sans Internet ?
Non, Internet est requis car l’image est envoyée à CircuitDigest Cloud pour traitement. Sans Internet, la détection d’objets ne fonctionnera pas.
⇥ Puis-je utiliser n’importe quelle caméra USB avec Raspberry Pi ?
Oui, la plupart des webcams USB sont prises en charge. Cependant, des caméras de meilleure qualité amélioreront la précision de détection et la clarté de l’image.
⇥ Combien d’objets peut-il détecter ?
Il peut détecter plusieurs objets en fonction des classes sélectionnées dans l’API. Il prend en charge environ 75+ catégories d’objets prédéfinies.
⇥ Puis-je exécuter ce projet sur des modèles Raspberry Pi à faible coût ?
Oui, cela fonctionne sur les modèles Raspberry Pi de base comme Pi 3 et Pi 4. Cependant, de meilleurs modèles offrent des performances plus rapides et un traitement plus fluide.
⇥ Comment puis-je améliorer la précision de détection dans ce système ?
Vous pouvez améliorer la précision en augmentant la valeur de confiance dans le code et en améliorant les conditions d’éclairage appropriées. L’utilisation d’une caméra de bonne qualité contribue également à une meilleure détection des objets.
Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

