Exercice - Déployer une application de classification d’images en temps réel sur Azure Sphere

Effectué

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.

The illustration shows the input image.

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é.

The illustration shows the Python script of converting the image to pixel values.

  1. Ouvrez le fichier deer.jpg.h et copiez les valeurs de pixels.

    The illustration shows pixel values converted from the image.

  2. 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.

    The illustration shows image data in Visual Studio Code.

  3. 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
  1. 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.

  2. 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.

  3. 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.

  4. 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.