Skip to Content

Entraîner un modèle de détection d’objets avec Edge Impulse pour ESP32-CAM

Entraîner un modèle de détection d’objets avec Edge Impulse pour ESP32-CAM

Dans ce tutoriel, vous apprendrez comment entraîner un modèle de détection d’objets avec Edge Impulse pour l’ESP32-CAM. La collecte des données, l’étiquetage et l’entraînement du modèle se feront sur la plateforme Edge Impulse, mais le modèle de détection s’exécutera directement sur l’ESP32-CAM.

Comme l’ESP32-CAM dispose d’une puissance de calcul limitée, ne vous attendez pas à des précisions ou des vitesses élevées. Néanmoins, il existe de nombreuses applications TinyML où l’ESP32-CAM est suffisant. Par exemple, vous pourriez créer une serrure intelligente à reconnaissance faciale qui ne vous donne accès qu’à vous, un distributeur automatique pour animaux qui détecte et nourrit votre animal lorsqu’il apparaît, ou un système de reconnaissance de gestes pour contrôler les lumières ou les appareils avec des mouvements de la main.

Cependant, dans cette introduction à la détection d’objets avec Edge Impulse, nous resterons simples et entraînerons un système qui détecte et distingue seulement deux objets.

Pièces requises

Vous aurez besoin d’un ESP32-CAM pour exécuter la détection d’objets. Vous pouvez obtenir un ESP32-CAM avec un Shield USB-TTL pour la programmation ou un adaptateur FTDI USB-TTL. L’adaptateur FTDI USB-TTL est un peu plus encombrant à utiliser mais laisse les broches GPIO facilement accessibles. Pour ce tutoriel, je recommande le Shield USB-TTL, mais assurez-vous d’avoir le bon modèle (voir le Programming the ESP32-CAM tutoriel pour plus de détails).

ESP32-CAM avec Shield USB-TTL

Adaptateur FTDI USB-TTL

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Qu’est-ce qu’Edge Impulse ?

Edge Impulse est une plateforme web conçue pour faciliter la création de modèles d’apprentissage automatique efficaces pour les dispositifs embarqués et en périphérie. Elle simplifie la construction et le déploiement d’applications TinyML (Tiny Machine Learning).

Edge Impulse Workflow
Flux de travail Edge Impulse (source)

Collecte et étiquetage des données

Vous pouvez collecter des données à partir d’une grande variété de capteurs, y compris des caméras, microphones, accéléromètres, gyroscopes, capteurs environnementaux, et plus encore. Plusieurs méthodes de collecte sont disponibles :

  1. Collecte de données en direct via USB/série : Les cartes de développement compatibles (comme l’ESP32, Arduino Nano 33 BLE Sense, ou les cartes ST) peuvent être connectées directement à Edge Impulse Studio pour diffuser les données des capteurs en temps réel.
  2. Collecte de données à distance via l’interface CLI Edge Impulse : Pour les dispositifs sans interface ou distants, les utilisateurs peuvent utiliser la CLI pour envoyer des données via Wi-Fi ou série vers la plateforme Edge Impulse.
  3. Application mobile : L’application mobile Edge Impulse (disponible sur Android et iOS) permet de capturer des images, audio et données de mouvement directement depuis votre téléphone, et de les envoyer vers votre tableau de bord de projet.
  4. Téléversement de jeux de données existants : Les utilisateurs peuvent importer des données au format CSV, JSON ou formats personnalisés et les étiqueter via l’interface web.
  5. Collecte continue de données : Certains dispositifs peuvent être configurés pour un échantillonnage continu, puis segmentés en fenêtres de données gérables.

Une fois les données collectées, Edge Impulse propose des outils d’étiquetage. L’interface permet d’étiqueter des échantillons individuels ou par lots. Pour les données visuelles et audio, vous pouvez zoomer, recadrer et annoter les événements ou caractéristiques d’intérêt. La plateforme supporte aussi l’étiquetage automatique et l’augmentation des données pour améliorer la qualité du jeu de données.

Traitement du signal et entraînement du modèle

Après l’étiquetage, les données passent par des blocs DSP (Digital Signal Processing), qui transforment les données brutes des capteurs en caractéristiques adaptées à l’apprentissage automatique. Ces blocs sont optimisés pour les environnements à ressources limitées et spécifiques au type d’entrée (par exemple, MFCC pour l’audio, redimensionnement et correction des couleurs pour la vision, ou FFT pour les données de vibration).

Ensuite vient l’entraînement du modèle. Edge Impulse propose :

  • Classification, pour détecter la présence/absence ou identifier des classes (par exemple, types d’objets, mots prononcés).
  • Régression, pour prédire des valeurs continues (par exemple, estimation d’angles, température, ou position d’objet).
  • Détection d’objets, pour détecter et localiser plusieurs objets dans des images.
  • Détection d’anomalies, pour identifier des valeurs aberrantes ou des motifs inhabituels sans nécessiter de données étiquetées.

Vous pouvez soit utiliser des architectures de modèles préconçues issues du Model Zoo d’Edge Impulse, qui inclut des versions optimisées de MobileNet, ResNet, SqueezeNet entre autres, soit définir des modèles personnalisés avec Keras et TensorFlow Lite. Vous pouvez aussi importer des modèles ONNX ou TensorFlow.

Optimisation et déploiement du modèle

Une fois le modèle entraîné, Edge Impulse aide à l’optimiser pour le déploiement en périphérie en utilisant des techniques comme la quantification (réduction de la taille du modèle et amélioration de la vitesse d’inférence) et la fusion d’opérateurs.

Le déploiement est très flexible, avec des options incluant :

  • SDK C++ : Un SDK autonome pouvant être intégré dans n’importe quel projet C++. Idéal pour microcontrôleurs et firmware bare-metal.
  • Bibliothèque Arduino : Génération automatique d’une bibliothèque compatible Arduino pour exécuter votre modèle sur des cartes comme l’ESP32, Arduino Portenta, et Nano 33 BLE.
  • Firmware précompilé : Pour les dispositifs supportés, Edge Impulse fournit des binaires firmware avec le modèle entraîné intégré, prêts à être flashés et utilisés.
  • WebAssembly : Exécution des modèles dans le navigateur ou sur tout système supportant WebAssembly.
  • Déploiement sous Linux : Pour des dispositifs comme Raspberry Pi, BeagleBone, ou Nvidia Jetson, vous pouvez déployer via des SDK Python ou des conteneurs Docker.

Model Zoo et apprentissage par transfert

Edge Impulse propose aussi un petit Model Zoo contenant des modèles légers, pré-optimisés pour les cas d’usage en périphérie. Ces modèles incluent :

  • Variantes MobileNet pour classification d’images
  • FOMO (Fast Object Detection for Microcontrollers), un modèle de détection d’objets très léger adapté aux applications temps réel
  • Classifieurs audio compatibles Syntiant
  • Modèles personnalisés de reconnaissance de mots-clés
  • Exemples de régression et détection d’anomalies

Beaucoup de ces modèles peuvent être affinés via l’apprentissage par transfert, ce qui permet d’atteindre une haute précision même avec des jeux de données relativement petits en s’appuyant sur des poids pré-entraînés existants.

Inscription à Edge Impulse

Avant de pouvoir utiliser Edge Impulse, vous devez vous inscrire. Bonne nouvelle, le plan développeur est gratuit. Vous serez limité à trois projets privés, ce qui est suffisant pour tester. Rendez-vous sur https://studio.edgeimpulse.com/signup et remplissez le formulaire avec vos informations :

Edge Impulse signing-up form
Formulaire d’inscription Edge Impulse

Après inscription, vous pourrez créer un projet, ce que nous verrons dans la section suivante. En cas de problème, le Edge Impulse Documentation peut aussi vous aider.

Création d’un projet Edge Impulse

Pour créer un projet, allez sur https://studio.edgeimpulse.com/studio/profile/projects, cliquez sur le bouton « + Create new project » à droite. Une fenêtre s’ouvre où vous pouvez entrer un nom de projet, par exemple « esp32-cam-object-detection », et définir quelques propriétés, comme ci-dessous :

Créer un projet Edge Impulse

Pour le type de projet, sélectionnez « Personal » et rendez-le privé. Puis cliquez simplement sur le bouton vert « Create new project » en bas.

Tableau de bord Edge Impulse

Après création, vous serez redirigé vers le tableau de bord. Voici quelques sections à noter :

Edge Impulse Dashboard
Tableau de bord Edge Impulse

Au centre apparaît le nom de votre projet, par exemple esp32-cam-object-detection, que vous pouvez modifier. En haut à droite, vous pouvez sélectionner la plateforme cible.

La carte AI Thinker ESP32-CAM n’apparaît pas comme supportée, mais il y a l’Espressif ESP-EYE, que vous devez choisir pour ce tutoriel. Avec un petit ajustement, le code généré fonctionnera aussi pour l’ESP32-CAM.

Dans la barre latérale gauche se trouvent les fonctions pour l’acquisition de données et la conception d’Impulse. Un « Impulse » est un court pipeline de traitement de données, contenant le prétraitement (ex. mise à l’échelle) et le modèle de réseau neuronal.

Acquisition de données Edge Impulse

Edge Impulse supporte plusieurs méthodes de collecte de données. Nous allons utiliser la plus simple : collecter des images avec votre smartphone.

Cliquez sur « Data acquisition » dans la barre latérale, ce qui ouvre un nouveau panneau. À droite, sous « Collect data », cliquez sur le lien « Connect a device » :

Edge Impulse Connect a Device
Edge Impulse Connect a Device

Une fenêtre s’ouvre avec trois options. Utilisez le QR code à gauche avec votre téléphone pour ouvrir une application qui vous permet de prendre des photos comme échantillons de données :

Connect Device via QR code
Connexion d’un appareil via QR code

Voici une capture de l’application telle qu’elle apparaîtra sur votre téléphone après avoir donné les autorisations nécessaires :

Edge Impulse Data Collection App
Application de collecte de données Edge Impulse

Appuyez sur le bouton bleu « Capture » pour prendre des photos, qui seront envoyées à la plateforme Edge Impulse. Nous les étiquetterons ensuite.

Makkuro Kurosuke et Voiture

Pour ce tutoriel, j’utiliserai deux objets à détecter : un Makkuro Kurosuke et une voiture :

Makkuro Kurosuke and Car
Makkuro Kurosuke et Voiture

Au cas où vous ne le sauriez pas, Makkuro Kurosuke (ou Susuwatari) est un personnage fictif du film Studio Ghibli Mon Voisin Totoro, et peut être traduit librement par « Petit Esprit de Suie ». Pour l’étiquetage, je l’appellerai simplement « Kurosuke ».

Ces deux objets sont intéressants pour tester la détection d’objets. Le Kurosuke est très peu caractéristique, juste une boule noire facilement confondue avec d’autres objets noirs. La voiture, en revanche, a une forme complexe et le modèle doit apprendre une bonne représentation pour la détecter de manière fiable.

Si vous collectez les données, assurez-vous de le faire dans les mêmes conditions que celles dans lesquelles la détection sera effectuée. Sinon, le détecteur risque de faire beaucoup d’erreurs.

Par exemple, couvrez différents angles, distances, arrière-plans et niveaux d’éclairage pour rendre la détection robuste. Voici quelques exemples de données que j’ai collectées (et étiquetées) :

Example Captures
Exemples de captures

Notez cependant que plus les conditions environnementales varient, plus la tâche est difficile pour le détecteur et plus vous devrez collecter de données. Pour simplifier la tâche, utilisez le même arrière-plan, angle et éclairage – en d’autres termes : contrôlez l’environnement autant que possible.

Étiquetage des données

Une fois que vous avez collecté suffisamment de photos pour les deux objets – visez au moins 30 photos par objet – vous pouvez commencer à étiqueter les données. Les photos (échantillons) apparaîtront à gauche et en cliquant sur l’une d’elles, vous aurez une vue agrandie en bas à droite :

Selecting pictures for labelling
Sélection des photos pour l’étiquetage

Là, vous pouvez utiliser votre souris pour dessiner un cadre autour de l’objet à détecter et lui attribuer une étiquette, dans mon cas « Car » ou « Kurosuke » :

Labelling the Car in a picture
Étiquetage de la voiture sur une photo

Vous devrez faire cela pour toutes vos images et être cohérent dans l’étiquetage des deux (ou plus) objets que vous souhaitez détecter.

La bonne nouvelle est que la plateforme Edge Impulse propose un cadre de délimitation après le premier étiquetage, ce qui accélère beaucoup le processus. Vous pouvez modifier la taille et la position des cadres proposés en cliquant sur les icônes de déplacement ou de redimensionnement aux coins du cadre.

Création d’un Impulse Edge Impulse

Une fois la collecte et l’étiquetage terminés, cliquez sur « Create Impulse » sous « Impulse Design » dans la barre latérale du tableau de bord :

Create Impulse
Créer un Impulse

Cela ouvrira un panneau avec quelques blocs de traitement comme montré ci-dessous :

Object Detection Impulse
Impulse de détection d’objets

Au départ, les blocs dans le panneau peuvent être différents, mais vous pouvez les supprimer en cliquant sur la petite icône de poubelle en bas à droite de chaque bloc. Ensuite, ajoutez de nouveaux blocs en cliquant sur « Add … block » et configurez-les :

Plus précisément, vous avez besoin d’un bloc « Image data » (entrée) avec une taille d’image de 96×96 pixels et un mode de redimensionnement « Fit longer axis ».

Ensuite, un bloc « Image » (traitement) puis un bloc « Object Detection » (apprentissage). Le dernier bloc est celui des caractéristiques de sortie. Vous pouvez voir qu’il affiche déjà les deux objets (Car, Kurosuke) que nous voulons détecter.

Une fois terminé, vous avez créé un « Impulse », qui est essentiellement un court pipeline de traitement de données composé d’un bloc de traitement des caractéristiques et d’un bloc de réseau neuronal (modèle).

Caractéristiques Edge Impulse

Ensuite, vous pouvez ajuster et analyser les caractéristiques extraites par le bloc de traitement d’image. Cliquez sur « Image » sous « Impulse Design » dans la barre latérale du tableau de bord :

Cela ouvrira un nouveau panneau où vous devez sélectionner « Grayscale » pour le paramètre de profondeur de couleur :

Cela signifie que nous allons convertir l’image en niveaux de gris, ce qui est plus rapide à traiter et consomme moins de mémoire. Par conséquent, la détection d’objets sera plus rapide, mais la précision risque de diminuer un peu, car on perd l’information couleur.

Explorateur de caractéristiques

Ensuite, appuyez sur le bouton bleu « Save parameters » puis vous devrez peut-être cliquer sur « Generate Features » pour lancer l’explorateur de caractéristiques :

Feature Explorer for grayscale images
Explorateur de caractéristiques pour images en niveaux de gris

L’explorateur convertit chacune de nos images en niveaux de gris en vecteurs de 96×96 = 9216 dimensions. Il les projette ensuite en deux dimensions et les affiche sur un plan. Chaque point sur le graphique représente une image et la couleur indique l’objet contenu.

Ce que vous voulez voir ici, ce sont des points de même couleur regroupés en clusters serrés et que les deux clusters de couleurs différentes soient bien séparés. Cela indique que les caractéristiques sont adaptées pour distinguer les deux classes d’objets. Ci-dessous un exemple fictif d’un très bon regroupement indiquant des caractéristiques quasi parfaites :

Clustering for near-perfect features
Regroupement pour des caractéristiques quasi parfaites

Dans mon cas, vous voyez que les points sont un peu regroupés mais la séparation entre clusters n’est pas excellente, mais acceptable. Cela signifie que ce n’est pas un problème de détection trivial et que la précision ne sera probablement pas parfaite.

Cependant, l’explorateur ne regarde que les pixels bruts et le modèle de détection n’a pas encore été entraîné ni évalué. Mais il permet d’essayer différentes caractéristiques. Par exemple, ci-dessous le graphique des caractéristiques pour des images RGB (au lieu de niveaux de gris) :

Feature Explorer for RGB images
Explorateur de caractéristiques pour images RGB

Comme vous pouvez le voir, le regroupement n’est pas vraiment meilleur, donc nous restons sur les images en niveaux de gris, car notre temps d’inférence sera plus rapide. Dans les sections suivantes, je vous montre comment entraîner et évaluer le modèle. Nous aurons alors une meilleure idée des performances de détection.

Entraînement du modèle Edge Impulse

Pour entraîner le modèle de détection, cliquez sur « Object detection » dans la barre latérale :

Cela ouvrira un panneau à droite avec les réglages du processus d’entraînement et un bouton bleu « Save & train » à la fin :

Settings for model training
Réglages pour l’entraînement du modèle

Vous pouvez garder les réglages par défaut, cela fonctionnera bien. Pour ma part, j’ai augmenté le taux d’apprentissage de 0.001 à 0.01, car le jeu de données est petit et le problème de détection pas très difficile.

Un taux d’apprentissage plus élevé accélère la convergence de l’entraînement (la perte diminue plus vite) et vous pouvez atteindre une meilleure précision pour le même nombre de cycles. Cependant, si le taux est trop élevé, l’entraînement ne converge pas et le modèle n’apprend pas.

Sortie d’entraînement

Vous pouvez suivre l’entraînement dans la console nommée Training output. Vous devriez voir une diminution continue de la valeur Train LOSS :

Training output
Sortie d’entraînement

Si le Train LOSS augmente ou fluctue, votre taux d’apprentissage est trop élevé. La Validation LOSS doit aussi diminuer continuellement. Si elle augmente, vous avez trop entraîné et devez réduire le nombre d’époques.

Une fois l’entraînement terminé, la plateforme affiche la matrice de confusion et d’autres métriques d’évaluation basées sur le jeu de validation :

Model evaluation
Évaluation du modèle

Dans mon cas, j’obtiens une matrice de confusion parfaite et un F1 SCORE parfait de 100%. La matrice montre que le modèle distingue parfaitement (100%) entre BACKGROUND, CAR et KUROSUKE.

Cependant, cela est un peu trompeur et ne reflète pas la vraie performance sur de nouvelles données. L’évaluation est faite sur le jeu de validation et si les données d’entraînement et de validation sont très petites (comme ici), l’évaluation est souvent trop optimiste. Pour une estimation plus précise, collectez plus de données d’entraînement.

Vous pouvez aussi aller dans « Model testing » et évaluer la performance sur les données de test :

Comme vous le voyez, la précision sur le jeu de test est seulement de 75%

Model evaluation on test data
Évaluation du modèle sur données de test

Mais encore une fois, mon jeu de test est très petit (12 échantillons) et la précision estimée n’est pas très fiable.

Déploiement du modèle Edge Impulse

Maintenant, nous sommes prêts à déployer le modèle sur l’ESP32-CAM. Cliquez sur « Deployment » sous « Impulse Design » dans la barre latérale du tableau de bord :

Cela ouvrira un panneau avec les options de déploiement :

Deployment options
Options de déploiement

Vous pouvez garder les options par défaut, qui devraient être « Arduino library », « TensorFlow Lite » et « Quantized (int8) » comme montré ci-dessus. Cliquez ensuite sur le bouton bleu « Build » en bas, la plateforme générera une bibliothèque Arduino .ZIP que vous pourrez télécharger :

Le nom de cette bibliothèque est dérivé du nom du projet et du nombre de déploiements. Dans mon cas, c’est ei-esp32-cam-object-detection-arduino-1.0.13.zip

Installation du modèle de détection sur ESP32-CAM

Enfin, vous pouvez installer votre modèle de détection entraîné sur l’ESP32-CAM. Installez simplement la bibliothèque téléchargée (ei-esp32-...zip) comme d’habitude dans l’IDE Arduino via Sketch -> Include Library -> Add .ZIP library.

Si l’installation réussit, ouvrez un sketch nommé « esp32_camera » situé sous File -> Examples -> esp32-cam-object-detection_inferencing -> esp32 :

Le nom de l’exemple sera celui de votre projet (dans mon cas esp32-cam-object-detection) avec le suffixe « _inferencing ».

Définir le modèle de caméra

Avant de pouvoir lancer le modèle, deux modifications importantes sont nécessaires ! Dans le code du sketch esp32_camera, vous trouverez des constantes définies pour les cartes ESP-EYE et AI-THINKER. Vous devez commenter ou supprimer la constante CAMERA_MODEL_ESP_EYE et décommenter la constante CAMERA_MODEL_AI_THINKER comme montré ci-dessous :

Si vous lancez maintenant le sketch, il ne fonctionnera probablement pas encore ! Il nécessite la version 2.0.4 du Core ESP32 installée ! Plus d’infos dans la section suivante.

Installer le Core ESP32 2.0.4

En août 2025, la version du Core ESP32 est 3.3.0. Mais si vous essayez de lancer le sketch esp32_camera avec cette version, vous obtiendrez une erreur « cam_hal: DMA overflow » !

Pour installer le Core ESP32 2.0.4, ouvrez le BOARDS MANAGER et sélectionnez la version 2.0.4 pour le core esp32. Une fois installé, cela devrait ressembler à ceci :

Core ESP32 2.0.4 installé

Vous devriez maintenant pouvoir lancer le modèle de détection sans erreur. L’IDE Arduino vous indiquera qu’il y a des mises à jour disponibles pour vos cartes :

mais ne les installez pas, car cela remplacerait la version 2.0.4 du Core ESP32 par une version plus récente.

Compiler et exécuter le modèle de détection sur ESP32-CAM

Notez que la première compilation prendra un temps considérable, 15 minutes ou plus selon votre système ! Les compilations suivantes seront plus rapides.

Une fois compilé et flashé, vous pouvez pointer votre ESP32-CAM vers des objets et les résultats de détection s’afficheront dans le moniteur série :

ESP32-CAM with objects to detect
ESP32-CAM avec objets à détecter

Vous verrez l’étiquette (classe) de l’objet détecté, par exemple « car », la confiance de la détection, par exemple 0.726, et les coordonnées du cadre de délimitation :

Detection Results printed in Serial Monitor
Résultats de détection affichés dans le moniteur série

Le système indique aussi le temps pris pour une détection. Dans mon cas, c’est 714 ms. Notez que le temps d’inférence est indépendant du nombre d’échantillons d’entraînement et peu affecté par le nombre d’objets à détecter. N’hésitez donc pas à améliorer les performances du modèle en collectant plus de données.

Conclusions et commentaires

Dans ce tutoriel, vous avez appris à entraîner un modèle de détection d’objets avec Edge Impulse et à déployer ce modèle sur un ESP32-CAM.

Notez qu’Edge Impulse offre bien plus que ce qui a été couvert ici, et je vous recommande de lire le Edge Impulse Documentation. Par exemple, il est possible de tester le modèle en direct dans un navigateur ou sur votre téléphone – c’est plutôt cool. Au-delà de l’ESP32-CAM, de nombreuses autres cibles et options de déploiement sont supportées. Et alors que nous avons collecté les données d’entraînement avec un téléphone, vous pouvez aussi collecter les données directement depuis le dispositif.

Cette dernière option est meilleure mais un peu plus complexe (dans le cas de l’ESP32-CAM). Pourquoi meilleure ? Parce que les données d’entraînement sont alors collectées avec la même caméra que celle utilisée par le modèle de détection. Vous remarquerez, si vous testez la classification en direct via le téléphone, que la précision est meilleure que sur l’ESP32-CAM.

Inconvénients d’Edge Impulse avec ESP32-CAM

Bien qu’Edge Impulse facilite grandement l’entraînement et le déploiement d’un modèle de vision, il y a quelques inconvénients. L’ESP32-CAM n’est pas directement supporté mais nécessite un petit changement de code. Le problème majeur est que le code ne fonctionne qu’avec l’ancienne version 2.0.4 du Core ESP32 (août 2025), sinon vous obtenez l’erreur « cam_hal: DMA overflow » lors de l’exécution.

Ensuite, bien que l’installation via une bibliothèque .ZIP soit pratique, cela signifie aussi que votre dossier de bibliothèques se remplit rapidement si vous créez plusieurs projets. Il serait préférable de copier le code directement dans le sketch pour le garder local. J’ai essayé, mais cela n’a pas fonctionné et nécessite probablement des manipulations de chemins. Vous pouvez aussi déployer le code C++ mais il ne fonctionnera pas directement dans l’IDE Arduino.

Détection d’objets sur PC

La puissance de calcul de l’ESP32-CAM est assez limitée, donc le temps de détection est assez lent et le modèle peu précis. Si vous avez besoin d’une détection plus rapide et précise, vous pouvez streamer la vidéo de l’ESP32-CAM vers votre PC et y exécuter le modèle de détection. Voir le Object Detection with ESP32-CAM and YOLO tutoriel pour plus de détails.

SenseCraft et XIAO ESP32-S3-Sense

Si vous souhaitez simplement exécuter un modèle de détection de visage ou de personne sur un petit microcontrôleur, regardez les Face Detection with XIAO ESP32-S3-Sense and SenseCraft AI et Edge AI Room Occupancy Sensor with ESP32 and Person Detection tutoriels. Nous y utilisons la plateforme SenseCraft et un microcontrôleur XIAO ESP32-S3-Sense. Le déploiement est plus simple mais nécessite un second microcontrôleur. Jetez un œil.

Alimentation par batterie

Exécuter un modèle de détection sur un microcontrôleur ouvre la porte à un système alimenté par batterie. Cependant, faire fonctionner l’ESP32-CAM en continu consomme encore beaucoup de batterie. Vous pourriez utiliser un capteur PIR pour n’activer la détection que lorsqu’un mouvement est détecté. Pour plus de détails, voir notre Motion Activated ESP32-CAM tutoriel. Et si vous débutez complètement avec l’ESP32-CAM, je recommande aussi le Programming the ESP32-CAM tutoriel.

Si vous avez des questions, n’hésitez pas à les laisser dans la section commentaires.

Bon bricolage 😉