2ème partie : configuration de l’environnement hardware & software sur Raspberry PI … et premier tests
Je vous propose de partager mon retour d’expérience sur la mise en œuvre d’une intelligence artificielle avec le nouveau module HAILO 8 (ou HAILO 8L) intégré dans un Raspberry PI5, capable de reconnaître et différencier divers objets personnels.
Le principe repose sur l’entraînement automatique d’un réseau de neurones, en utilisant les outils YOLO et le compilateur HAILO, à partir d’un ensemble de données constitué d’un certain nombre d’images (le « DataSet »).
Ce réseau de neurones sera ensuite capable d’identifier, avec un taux de certitude donné, les objets pour lesquels il a été entraîné, que ce soit sur des images statiques ou sur un flux vidéo.
Cet article, consacrée à la mise en œuvre d’une intelligence artificielle embarquée sur un Raspberry Pi 5, est composé de 5 grands chapitre :
Partie 2 - Configuration rapide et tests des modules AI
Première configuration
Bon ! Pour bien démarrer, la première chose à faire est de suivre les instructions d’installation hardware et software sur le site officiel.
pour la hardware :
https://www.raspberrypi.com/documentation/accessories/ai-hat-plus.html
et pour le software :
https://www.raspberrypi.com/documentation/computers/ai.html
Pour résumer très rapidement, voici les principales étapes de configuration :
Mise à jour du système PI OS :
sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y
Vérification de la version du micrologiciel (bootloader) du Raspberry Pi :
sudo rpi-eeprom-update
Pour utiliser la dernière version du bootloader :
sudo raspi-config
--> Advanced Options --> Bootloader Version --> Latest
--> Finish --> MAIS ne pas rebooter tout de suite !
Mise à jour du micrologiciel (bootloader) du Raspberry Pi & reboot :
sudo rpi-eeprom-update -a
sudo reboot
Ensuite , pour forcer les vitesses Gen 3.0 (8 GT/s) du bus PCIe :
dans /boot/firmware/config.txt
dtparam=pciex1_gen=3
Et enfin, installation des pilotes et utilitaires HAILO :
sudo apt install hailo-all
Ce package à pour rôle d’installer les dépendances suivantes (janvier 2025):
hailofw (>= 4.19.0),
hailort (>= 4.19.0),
hailo-tappas-core (>= 3.30.0),
rpicam-apps-hailo-postprocess (>= 1.5.3),
python3-hailort (>= 4.19.0)
Il est temps maintenant, de faire quelques vérifications
Vérification de la présence du module AI
pour le Kit AI équipé du module HAILO 8L :
hailortcli fw-control identify
Executing on device: 0000:01:00.0
Identifying board
Control Protocol Version: 2
Firmware Version: 4.19.0 (release,app,extended context switch buffer)
Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8L
Serial Number: HLDDLBB241602841
Part Number: HM21LB1C2LAE
Product Name: HAILO-8L AI ACC M.2 B+M KEY MODULE EXT TMP
ou, selon le cas, … pour la carte AI Hat+ équipée du module HAILO 8 :
hailortcli fw-control identify
Executing on device: 0000:01:00.0
Identifying board
Control Protocol Version: 2
Firmware Version: 4.19.0 (release,app,extended context switch buffer)
Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8
Serial Number:
Part Number:
Product Name:
Vérification de la présence de la (ou des) caméra(s) RPI
Comme on peut le voir sur ces photos, j’ai équipé mon Raspberry PI de 2 caméras.
Ceux sont deux caméras module 3 équipées du capteur Quad Bayer IMX708 12MP.
l’une en version standard avec un vision à 75 degrés,
l’autre en version grand angle de 120 degrés
rpicam-hello --list-camera
Available cameras
-----------------
0 : imx708 [4608x2592 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@88000/imx708@1a)
Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]
1 : imx708_wide [4608x2592 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@80000/imx708@1a)
Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]
Il est maintenant possible de tester, très simplement, le bon fonctionnement de la caméra :
rpicam-hello -t 10s
Cette commande affiche l’image de vidéo de la première caméra durant 10 secondes, il bien évidement possible de sélectionner la caméra par son numéro d’index
rpicam-hello -t 10s --camera 0
rpicam-hello -t 10s --camera 1
Tests de Détection, Segmentation, Estimation
la commande « rpicam-hello« , complétée par la suite d’application « rpicam-apps » permettent de mettre rapidement mettre en œuvre la détection d’objets, la segmentation d’images , l’estimation de pose
apt install rpicam-apps
rpicam-hello -t 0 --camera 1 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov8_inference.json
Test du module AI Kit - Raspberry PI - Episode 1
D’autres tests sont décrits dans la documentation officielle du Raspberry PI :
–> https://www.raspberrypi.com/documentation/computers/ai.html
Exemples proposés par HAILO
Pour maintenant aller un peu plus loin,
nous pouvons tester les exemples proposés par la société HAILO :
git clone https://github.com/hailo-ai/hailo-rpi5-examples.git
cd hailo-rpi5-examples
./install.sh
source setup_env.sh
puis, pour lancer l’exemple sur un vidéo :
python basic_pipelines/detection.py
ou, pour tester de puis la camera :
python basic_pipelines/detection.py --input rpi
Test du module AI Kit - Raspberry PI - Episode 2
Références :
https://github.com/hailo-ai/hailo-rpi5-examples
https://github.com/hailo-ai/hailo-rpi5-examples/blob/main/README.md#installation