[PYTHON] Apprentissage automatique avec Raspberry Pi 4 et Coral USB Accelerator

introduction

Cet article résume la procédure d'installation de Raspberry Pi 4 et Coral USB Accelerator en tant que méthode d'apprentissage automatique avec des périphériques Edge.

** Raspberry Pi 4 ** est la dernière génération de modèles actuels. Les performances du processeur et de la mémoire ont été considérablement améliorées et il prend également en charge USB 3.0.

写真 2020-02-17 0 31 29.jpg

** Coral USB Accelerator ** est un ASIC dédié de Google développé par Google pour l'apprentissage automatique sur les appareils de périphérie.

写真 2019-12-30 0 02 35.jpg

Cet ASIC dédié est appelé Edge TPU et vous pouvez utiliser le travail de flocon de TensorFlow Lite, qui se spécialise dans la réalisation d'inférences à la périphérie. De plus, nous ne prenons en charge que le travail en flocons de TensorFlow Lite. De plus, une connexion USB 3.0 est nécessaire pour maximiser les performances de l'accélérateur USB Coral. En résumé, le Raspberry Pi 4 est un excellent moyen de tirer le meilleur parti de votre accélérateur USB Coral.

Raspberry Pi4 Bien que cela ne soit pas officiellement pris en charge, Google a fourni une image Raspbery Pi pré-compilée appelée ** Plateformes Edge TPU ** pour utiliser Edge TPU.

Il dispose d'un modèle de classification d'images formé intégré, etc., qui sera utile pour l'apprentissage automatique avec Raspberry Pi.

Nous expliquerons la procédure d'utilisation de l'image de Raspberry Pi 4 à partir des plates-formes EdgeTPU.

Veuillez noter que l'interface du Raspberry Pi 4 a été modifiée en ** USB Type-C ** pour l'alimentation et ** Micro HDMI ** pour HDMI.

EdgeTPU Platforms

  1. Téléchargez l'image ** Raspberry Pi 4, Buster, Edgetpu 2.11.1 ** depuis google-coral / edgetpu-platform ..
  2. Écrivez l'image téléchargée sur la carte SD. Pour savoir comment écrire sur la carte SD, reportez-vous à Raspberry Pi Basics que j'ai écrit plus tôt.
  3. Après avoir écrit sur la carte SD, démarrez Raspberry Pi et effectuez la configuration initiale.

** Si vous démarrez avec l'image téléchargée, vous devrez étendre le système de fichiers pour l'adapter à la taille de votre carte SD. ** **

Extension du système de fichiers

La zone système (/) avant l'extension du système de fichiers est dans l'état suivant.

pi@raspberrypi:~ $ df -h
Taille du système de fichiers utilisée Reste utilisé%Position de montage
/dev/root        3.3G  3.0G  100M   97% /
devtmpfs         1.8G     0  1.8G    0% /dev
tmpfs            1.9G     0  1.9G    0% /dev/shm
tmpfs            1.9G  8.6M  1.9G    1% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mmcblk0p1   253M   41M  213M   16% /boot
tmpfs            386M     0  386M    0% /run/user/1000

Exécutez la commande suivante pour démarrer raspi-config et fonctionner de manière interactive.

$ sudo raspi-config

スクリーンショット 2019-12-30 17.38.27.png

Tout d'abord, sélectionnez ** "7 Options avancées" **.

スクリーンショット 2019-12-30 17.38.38.png

Sélectionnez ensuite A1 Expand File system.

スクリーンショット 2019-12-30 17.38.54.png

Cliquez sur OK.

スクリーンショット 2019-12-30 17.39.42.png

Exécutez la commande suivante pour redémarrer.

$ sudo systemctl reboot

Après le redémarrage, vous pouvez voir que la zone système (/) a été étendue.

pi@raspberrypi:~ $ df -h
Taille du système de fichiers utilisée Reste utilisé%Position de montage
/dev/root         29G  3.1G   24G   12% /
devtmpfs         1.8G     0  1.8G    0% /dev
tmpfs            1.9G     0  1.9G    0% /dev/shm
tmpfs            1.9G  8.6M  1.9G    1% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mmcblk0p1   253M   41M  213M   16% /boot
tmpfs            386M     0  386M    0% /run/user/1000

Coral USB Accelerator Pour utiliser Coral USB Accelerator, vous devez procéder comme suit:

Pour communiquer avec Edge TPU, installez le runtime Edge TPU. De plus, une bibliothèque, etc. est requise pour utiliser TensorFlow Lite avec Python. Dans cet article, nous allons installer une simple bibliothèque tflite_runtime pour utiliser le modèle TensorFlow Lite en Python.

travail de préparation

Ouvrez la boîte contenant l'accélérateur USB Coral.

写真 2019-12-30 17 08 16.jpg

Connectez l'accélérateur USB Coral au Raspberry Pi 4. USB3.0 a une interface ** bleue </ font> **.

写真 2020-02-16 23 52 49.jpg

Installer le runtime Edge TPU

--Ajout d'un référentiel $ echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list $ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - $ sudo apt-get update

--Installation $ sudo apt-get install libedgetpu1-std

Installation de la bibliothèque TensorFlow Lite

--Télécharger la bibliothèque $ wget https://dl.google.com/coral/python/tflite_runtime-1.14.0-cp37-cp37m-linux_armv7l.whl

--Installation de la bibliothèque $ pip3 install tflite_runtime-1.14.0-cp37-cp37m-linux_armv7l.whl

Exécution de l'API TensorFlow Lite

Classification des images en référence à Premiers pas avec l'accélérateur USB Lançons la machine.

$ python3 classify_image.py --model models/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite --labels models/inat_bird_labels.txt --input images/parrot.jpg

INFO: Initialized TensorFlow Lite runtime.
----INFERENCE TIME----
Note: The first inference on Edge TPU is slow because it includes loading the model into Edge TPU memory.
18.6ms
4.6ms
4.6ms
4.6ms
4.6ms
-------RESULTS--------
Ara macao (Scarlet Macaw): 0.76562

J'ai utilisé TensorFlow Lite pour effectuer l'inférence sur Edge TPU. À propos, le résultat de sortie lorsqu'il est exécuté avec USB 2.0 est le suivant. Vous pouvez voir qu'il est plus lent que USB3.0.

INFO: Initialized TensorFlow Lite runtime.
----INFERENCE TIME----
Note: The first inference on Edge TPU is slow because it includes loading the model into Edge TPU memory.
120.5ms
11.5ms
11.5ms
11.7ms
11.6ms
-------RESULTS--------
Ara macao (Scarlet Macaw): 0.76562

en conclusion

Vous pouvez désormais effectuer l'apprentissage automatique sur les appareils de périphérie.

Ensuite, créez un modèle avec TensorFlow et convertissez le modèle en TensorFlow Lite.

référence

Recommended Posts

Apprentissage automatique avec Raspberry Pi 4 et Coral USB Accelerator
Surveillance des animaux avec Rekognition et Raspberry pi
Essayez la détection d'objets avec Raspberry Pi 4 + Coral
MQTT Radicon Car avec Arduino et Raspberry
Obtenez la température et l'humidité avec DHT11 et Raspberry Pi
GPGPU avec Raspberry Pi
DigitalSignage avec Raspberry Pi
IoT facile pour démarrer avec Raspeye et MESH
Apprentissage automatique facile avec scikit-learn et flask ✕ Application Web
Détecter l'état de port du masque avec OpenCV et Raspberry Pi
Mesurez la température et l'humidité avec Raspberry Pi3 et visualisez avec Ambient
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Démarrage USB avec Raspberry Pi 4 modèle B (3) édition LVM
L'apprentissage automatique pratique avec Scikit-Learn et TensorFlow-TensorFlow a abandonné -
Résoudre les problèmes liés à l'installation d'OpenCV sur Raspberry Pi et à la capture
Afficher l'image de la caméra USB avec OpenCV de Python avec Raspeye
L'apprentissage automatique appris avec Pokemon
Plantes Mutter avec Raspberry Pi
Apprentissage automatique avec Python! Préparation
Démineur d'apprentissage automatique avec PyTorch
Apprentissage automatique et optimisation mathématique
Commencer avec l'apprentissage automatique Python
Essayez le machine learning à la légère avec Kaggle
[Apprentissage automatique] Démarrez Spark avec iPython Notebook et essayez MLlib
Introduction facile au piratage domestique avec Raspberry Pi et discord.py
Créez un environnement d'apprentissage automatique scikit-learn avec VirtualBox et Ubuntu
Créez une caméra de surveillance WEB avec Raspberry Pi et OpenCV
Débutant Python s'ouvre et se ferme avec Raspberry Pi
Créez des jeux LCD (16x2) avec Raspberry Pi et Python
J'ai essayé de connecter Raspeye et conect + avec l'API Web
Production de système de contrôle de température avec tarte aux framboises et ESP32 (1)
Mesurez et comparez les températures avec Raspberry Pi et générez automatiquement des graphiques
Apprentissage automatique pour apprendre avec Nogisaka 46 et Keyakizaka 46 Partie 1 Introduction
Raspberry Pi + python + appareil IoT, procédure de construction d'environnement pour démarrer le traitement d'image et l'apprentissage automatique
[Raspberry Pi] Contrôle du moteur pas à pas avec Raspberry Pi
Utilisez vl53l0x avec RaspberryPi (python)
Commande de servomoteur avec Raspberry Pi
USB sur Ethernet avec Raspberry pi
MQTT sur Raspberry Pi et Mac
Importance de l'apprentissage automatique et de l'apprentissage par mini-lots
[Apprentissage automatique] Essayez d'exécuter Spark MLlib avec Python et faites des recommandations
Communication série avec Raspberry Pi + PySerial
J'ai essayé l'apprentissage automatique avec liblinear
Apprentissage automatique par python (1) Classification générale
Classique de Noël (?) Éclairage d'un arbre de Noël avec Raspberry Pi et Philips Hue
Configuration du système d'exploitation avec Raspberry Pi Imager
Classification et régression dans l'apprentissage automatique
Créez un thermomètre avec Raspberry Pi et rendez-le visible sur le navigateur Partie 4
SVM essayant l'apprentissage automatique avec scikit-learn
Essayez L Chika avec raspberrypi
Faire une boussole d'affichage kanji avec Raspberry Pi et Sense Hat
Organisez des plateformes d'apprentissage automatique et d'apprentissage en profondeur
Construire un serveur VPN avec Raspberry Pie
Affichage graphique de la consommation électrique des ménages avec 3GPI et Raspeye
[Note de lecture] Apprentissage automatique pratique avec Scikit-Learn, Keras et TensorFlow Chapitre 1
Essayez de déplacer 3 servos avec Raspeye
"Processus Gauss et apprentissage automatique" Régression de processus Gauss implémentée uniquement avec Python numpy
Machine learning d'inspiration quantique avec des réseaux de tenseurs
Construire Raspberry Pi pour étudier Python et l'apprentissage automatique (version RaspberryPi4 & Buster (RaspberryPi3 est également possible))
Démarrez avec l'apprentissage automatique avec SageMaker