TensorFlow Lite Micro est disponible pour ESP32 et ESP32-EYE (ESP32-CAM)

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Table des matières

Espressif vient d’annoncer sur son blog la disponibilité de TensorFlow Lite Micro pour les SoC ESP32. Pour ceux qui ne connaissent pas encore, Tensor Flow est une plate-forme Open Source dédiée au machine learning soutenu par Google. Le code source est entièrement disponible sur GitHub ici. La version Lite Micro est une version allégée destinée aux micro-contrôleurs. 

 

TensorFlow Lite Micro pour les SoC ESP32 et autres micro-contrôleurs

TensorFlow Lite Micro (TFLM) est une version allégée encore expérimentale adaptée aux micro-contrôleurs.

TFLM est conçu pour exécuter des modèles de machine learning sur des micro-contrôleurs et d’autres appareils ne disposant que de quelques kilo-octets de mémoire.

Aucune compatibilité avec le système d’exploitation n’est nécessaire. Il ne nécessite aucune bibliothèque C ou C++ standard, ni d’allocation de mémoire dynamique. Le composant d’exécution principal n’utilise que 16 Ko sur un processeur Arm Cortex M3. Par exemple pour la reconnaissance vocale, TFLM n’occupe que 22 Ko de mémoire pour exécuter un modèle de détection de mot clé.

Plusieurs exemples sont disponibles dans le dépôt GitHub maintenu par Espressif ici.

Hello World

Cet exemple est conçu pour montrer les bases de l’utilisation de TensorFlow Lite For Microcontrollers.
Le modèle est entraîné pour répliquer une fonction «sinusoïdale» et génère un modèle de données pour faire clignoter les LED ou contrôler une animation, selon les capacités de l’appareil.

Plateformes Synopsis DesignWare ARC EM Arduino ESP32 SparkFun Edge STM32F746

Doorbell camera sonnette connectée avec reconnaissance faciale
Cet exemple montre comment créer une sonnette intelligente connectée avec un module ESP32-CAM (ESP-EYE chez Espressif). Il est basée sur l’exemple standard de détection de personne de TensorFlow. Lorsqu’une personne est détectée par la caméra (note détectée, non identifiée), un e-mail est envoyé avec l’image capturée à une adresse e-mail configurée. Cet exemple utilise un réseau de neurones de 250 Ko pour détecter les personnes dans les images capturées par la caméra.

Plateformes ESP32-EYE

Broches pré-configurées

  • WROVER-KIT avec module OV2640 (TTGO T-Camera par exemple)
  • ESP-EYE DevKit d’Espressif
  • M5Stack Camera avec mémoire PSRAM
  • M5Stack Camera F (Wide)
  • ESP32-CAM de AI-Thinker
  • Broches personnalisées par l’utilisateur (Power Down, Reset, XCLK, SIOD, SIOC, VSYNC, HREF, PCLK, Y2, Y3, Y4, Y5, Y6, Y7, Y8, Y9)

Avant de compiler, plusieurs paramètres doivent être configurés. Exécuter cette commande pour lancer l’outil de configuration

idf.py menuconfig

Choisir le modèle de caméra, aller dans le menu Camera Pins -> Select Camera Pinout

esp-eye esp32-cam tensorflow lite mcu camera pins setup

SMTP Configuration pour saisir les paramètres de connexion à votre compte email (gmail par défaut)

Example Connection Configuration pour saisir les paramètres de connexion au réseau WiFi local

Une petite démonstration du fonctionnement sous la forme d’une animation GIF.

esp32-cam tensorflow lite example esp-eye

Plus de détail pour la compilation du projet sur le blog de Tensor Flow.

Image Recognition reconnaissance d’image
Cet exemple montre comment utiliser Tensorflow Lite Micro pour réaliser une reconnaissance d’image sur un kit de développement STM32F746 et un module de caméra STM32F4DIS-CAM. Il classe l’image capturée dans 1 des 10 classes différentes : Avion, Voiture, Oiseau, Chat, Cerf, Chien, Grenouille, Cheval, Navire et Camion.
Magic wand baguette magique

Cet exemple montre comment utiliser TensorFlow Lite pour exécuter un modèle de réseau neuronal de 20 kilo-octets afin de reconnaître les gestes avec un accéléromètre.

L’exemple d’application lit les données de l’accéléromètre sur une carte Arduino Nano 33 BLE Sense ou SparkFun Edge et indique quand il a détecté un geste, puis envoie le geste sur le port série.

Plateformes Arduino SparkFun Edge

Micro Speech reconnaissance vocale

Cet exemple montre comment exécuter un modèle de 20 Ko qui peut reconnaître 2 mots-clés, “oui” et “non”, à partir de données vocales.

L’application écoute son environnement avec un microphone et indique quand elle a détecté un mot en allumant une LED ou en affichant des données sur un écran,.

Le code a un faible encombrement (par exemple, environ 22 kilo-octets sur un Cortex M3) et n’utilise qu’environ 10 kilo-octets de RAM pour la mémoire de travail, il est donc capable de fonctionner sur des systèmes comme un STM32F103 avec seulement 20 kilo-octets de SRAM totale et 64 kilo-octets de Flash.

Plateformes Synopsis DesignWare ARC EM Arduino ESP32 SparkFun Edge STM32F746 macOS NXP FRDM K66F

Network Tester testeur réseau

Le but de cette application est de fournir un moyen rapide de tester différents réseaux.

Il contient un cas de test et un modèle de réseau par défaut (network_model.h), des données d’entrée par défaut (input_data.h) et des données de sortie attendues par défaut (expected_output_data.h). Les fichiers d’en-tête ont été créés à l’aide de la commande xxd.

Le modèle par défaut est un seul opérateur MaxPool2D, avec une forme d’entrée de {1, 4, 4, 1} et une forme de sortie de {1, 2, 2, 1}.

Il est possible de définir ses propres modèles.

Person detection 2 exemples de détection de personne

Cet exemple montre comment utiliser Tensorflow Lite pour exécuter un réseau neuronal de 250 kilo-octets afin de reconnaître les personnes dans les images capturées par une caméra.

Plateformes Synopsis DesignWare ARC EM Arduino ESP32 SparkFun Edge

Installer l’environnement ESP-IDF

Avant de pouvoir tester les exemples livrés, vous devez installer le framework ESP-IDF sur votre ordinateur.

Remarque. Le SDK ESP32 pour l’IDE Arduino n’est pas suffisant

Suivez les instructions de ce tutoriel

A LIRE AUSSI :
ESP32. Débuter avec Arduino-ESP32 sur IDE Arduino, macOS, Windows, Linux

La page officielle décrivant la procédure d’installation pour Windows, macOS et Linux

Installer gmake (make) sur macOS (Mojave ou supérieur)

Sur macOS, la commande Make doit avoir une version supérieure à 3.81, ouvrez un Terminal pour vérifier la version installée

make --version

Il semble toutefois que la commande make pose des erreurs de compilation. Dans ce cas, il est préférable d’installer la commande gmake à l’aide de brew avec la commande

brew install make

ou

brew reinstall make

Pour vérifier la version installée, exécuter

gmake --version
GNU Make 4.3
Built for x86_64-apple-darwin18.7.0

Si le sujet vous intéresse, ce livre de Pete Warden et Daniel Situnayake est un bon point de départ

Avez-vous aimé cet article ?
[Total: 1 Moyenne: 5]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

Nous serions ravis de connaître votre avis

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Calculateurs
×
Calculateur loi d'Ohm
Tension (U) - en Volt
Courant (I) - en Ampère
Résistance (R) - en Ohms
Puissance (P) - en Watts

Ce calculateur permet de calculer les relations entre le courant, la tension, la résistance et la puissance dans les circuits résistifs.

Saisir au moins deux valeurs puis cliquer sur calculer pour calculer les valeurs restantes. Réinitialisez après chaque calcul.

Rappel sur la Loi d'Ohm
La loi d'Ohm explique la relation entre la tension, le courant et la résistance en déclarant que le courant traversant un conducteur entre deux points est directement proportionnel à la différence de potentiel entre les deux points.
La loi d'Ohm s'écrit U = IR, où U est la différence de tension, I est le courant en ampère et R est la résistance en Ohms (symbole Ω).
Loi d'Ohm (U=RI)
×
Déchiffrer le code couleur d'une résistance à 4 bandes
Bande 1 Bande 2 Multiplicateur Tolérance
   

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 4 anneaux
Formule : ab*cΩ ±d%
Les deux premières bandes (a, b) permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0) donne le nombre 10.
La troisième bande (c) est un coefficient multiplicateur. Par exemple, l'anneau rouge est un coefficient multiplicateur de 100, ce qui donne 10 X 100 = 1000Ω.
Le quatrième anneau (d) indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que sa valeur soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 4 bandes
×
Déchiffrer le code couleur d'une résistance à 5 bandes
Bande 1 Bande 2 Bande 3 Multiplicateur Tolérance

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 5 anneaux
Formule : abc*dΩ ±e%
Les trois premières bandes permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0), Noir (0) donne le nombre 100
La quatrième bande est un coefficient multiplicateur. Par exemple, l'anneau brun correspond au coefficient multiplicateur 10, ce qui donne 100 X 10 = 1000Ω.
Le cinquième anneau indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que la valeur de la résistance soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 5 bandes
×
Calculateur de résistance série pour une ou plusieurs LED
Tension d'alimentation en Volt
Tension directe en Volt
Courant en mA
Résistance calculée en Ω
Puissance estimée en W

Ce calculateur permet de déterminer la résistance requise pour piloter une ou plusieurs LED connectées en série à partir d'une source de tension à un niveau de courant spécifié.

Remarque. Il est préférable d'alimenter le circuit avec une puissance nominale comprise entre 2 et 10 fois la valeur calculée afin d'éviter la surchauffe
Couleur Longueur d'onde (nm) Tension (V) pour LED ⌀3mm Tension(V) pour LED ⌀5mm
Rouge 625-630  1,9-2,1 2,1-2,2
Bleu 460-470 3,0-3,2 3,2-3,4
Vert 520-525 2,0-2,2 2,0-2,2
Jaune 585-595 2,0-2,2 3,0-3,2
Blanc 460-470 3,0-3,2 1,9-2,1
Résistance en série pour une ou plusieurs LED
×
Calculateur durée de vie d'une batterie
Capacité de la batterie
Consommation de l'appareil ou objet connecté

Ce calculateur estime la durée de vie d'une batterie, en fonction de sa capacité nominale et du courant ou de la puissance qu'une charge en tire.

La durée de vie de la batterie est une estimation idéalisée. La durée de vie réelle peut varier en fonction de l'état de la batterie, de son âge, de la température, du taux de décharge et d'autres facteurs. C'est le mieux que vous pouvez espérer obtenir.

Autonomie de la batterie = capacité de la batterie en mAh / courant de charge en mA

Durée de vie batterie
Publicité
À lire aussi
Composants
Sur le Forum
Domotique et objets connectés à faire soi-même
Domotique et objets connectés à faire soi-même
Vous avez aimé ce tutoriel

Ne manquez plus les prochains projets

Recevez chaque semaine le récapitulatif des tutoriels et projets.

Vous pouvez vous désabonner à tout moment.