Exercice - Déployer une application de classification d’images en temps réel sur Azure Sphere
Dans cet exercice, vous allez déployer votre application en temps réel sur Azure Sphere. Vous allez tester votre image d’entrée et afficher le résultat de la sortie sur l’émulateur de terminal.
Vérifiez que :
- Votre appareil Azure Sphere est connecté à votre ordinateur via USB.
- Votre appareil Azure Sphere est connecté à Internet.
- Vous avez configuré votre environnement de développement.
Dans ce module, vous n’utilisez pas d’appareil photo pour capturer des images. Vous allez générer votre image d’entrée en convertissant les images en valeurs de pixels avec un script Python.
Générer les données de votre image
Dans cet exercice, vous allez tester l’image d’un cerf en entrée.
Les valeurs de pixels de l’image sont converties par le script Python défini dans le dossier de scripts du dépôt que vous avez cloné.
Ouvrez le fichier deer.jpg.h et copiez les valeurs de pixels.
Ajoutez des données d’image d’évaluation dans include\arm_nnexamples_cifar10_inputs.h pour effectuer un test. Les données d’image sont définies dans arm_nnexamples_cifar10_inputs.h.
Par défaut, les valeurs sont ajoutées dans arm_nnexamples_cifar10_inputs.h pour effectuer le test. Vous pouvez commenter et tester différentes images.
Déployer une application temps réel
Pour récapituler les données d’étiquette dans CIFAR10 :
- airplane (avion) : 0
- automobile : 1
- bird (oiseau) : 2
- cat (chat) : 3
- deer (cerf) : 4
- dog (chien) : 5
- frog (grenouille) : 6
- horse (cheval) : 7
- ship (bateau) : 8
- truck (camion) : 9
Appuyez sur F5 pour déboguer le projet. Si le projet n’a pas été généré, ou si les fichiers ont été changés et qu’une regénération est nécessaire, Visual Studio Code va générer le projet avant le début du débogage.
La fenêtre Sortie d’Azure Sphere doit afficher en principe « Déploiement de l’image... » suivi des chemins du kit SDK et du compilateur.
L’émulateur de terminal connecté doit afficher la sortie suivante du programme ImageClassification_RTApp_MT3620_Baremetal. Vous verrez la sortie du modèle CIFAR10,
start execution input pre-processing conv1 img_buffer2 -> img_buffer1 pool1 img_buffer1 -> img_buffer2 conv2 img_buffer2 -> img_buffer1 pool2 img_buffer1 -> img_buffer2 conv3 img_buffer2 -> img_buffer1 pool3 img_buffer-> img_buffer2 0: 0 1: 0 2: 0 3: 0 4: 127 5: 0 6: 0 7: 0 8: 0 9: 0 Complete.
avec une image en couleur de 32 x 32 pixels en entrée, qui a ensuite été classifiée dans une des 10 classes de sortie par le modèle.
Dans la mesure où la valeur est la sortie de la couche softmax, chaque nombre indique la probabilité pour l’une des 10 classes d’images. Dans le cas suivant, l’étiquette 4 correspond à l’étiquette « deer » (cerf) et a le nombre le plus élevé. Cela signifie que le modèle a trouvé un cerf dans l’image d’entrée.
Définissez un point d’arrêt quelque part dans main.c et parcourez l’application pas à pas pour pouvoir explorer les fonctionnalités de débogage de Visual Studio Code pour Azure Sphere.