Exercice - Générer une application de classification d’images en temps réel

Effectué

Dans cet exercice, vous allez modifier et mettre à jour l’exemple de projet ImageClassification_RTApp_MT3620_BareMetal que vous venez de renommer. Commencez par installer l’exemple de projet Microsoft en tant que base de référence. Vous allez copier les poids et les paramètres du projet, et mettre à jour votre code source.

  1. Accédez au répertoire où vous souhaitez cloner le dépôt.

  2. Clonez le dépôt de classification d’exemples d’images de Microsoft.

    git clone https://github.com/MicrosoftDocs/mslearn-oxford-image-classification-azure-sphere.git
    
  3. Accédez au dossier mslearn-oxford-image-classification-azure-sphere, puis ouvrez l’exemple de projet CMSISNN-Cifar10 sur votre ordinateur.

  4. Copiez le dossier de bibliothèque CMSIS et collez-le dans le dossier de projet ImageClassification_RTApp_MT3620_BareMetal.

  5. Copiez le dossier include et collez-le dans le dossier de projet ImageClassification_RTApp_MT3620_BareMetal.

  6. Copiez le fichier main.c du dossier de projet CMSISNN-cifar10, puis remplacez-le par le fichier main.c du dossier de projet ImageClassification_RTApp_MT3620_BareMetal.

  7. Revenez à Visual Studio Code, puis actualisez l’Explorateur. Vous allez voir que les dossiers CMSIS et include sont ajoutés.

    The illustration shows how to refresh the explorer.

  8. Ouvrez le fichier main.c. Vous allez voir que les paramètres, les poids et l’entrée sont définis dans main.c. Vous allez ajouter le chemin du répertoire à l’étape suivante pour qu’il ne génère pas d’erreur.

    The illustration shows weights, parameters and input files.

  9. Ouvrez le fichier CMakeLists.txt pour le modifier.

    • Ajoutez les bibliothèques nécessaires.

      add_library(cmsisnn STATIC
         ./CMSIS/NN/Source/ActivationFunctions/arm_relu_q7.c
         ./CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_fast.c
         ./CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_RGB.c
         ./CMSIS/NN/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_q7_q15.c
         ./CMSIS/NN/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_q7_q15_reordered.c
         ./CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_q7.c
         ./CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_q7_opt.c
         ./CMSIS/NN/Source/NNSupportFunctions/arm_q7_to_q15_no_shift.c
         ./CMSIS/NN/Source/NNSupportFunctions/arm_q7_to_q15_reordered_no_shift.c
         ./CMSIS/NN/Source/PoolingFunctions/arm_pool_q7_HWC.c
         ./CMSIS/NN/Source/SoftmaxFunctions/arm_softmax_q7.c
         )
      SET_TARGET_PROPERTIES(cmsisnn PROPERTIES VERSION 5.5.)
      
      #link CMSIS libraries
      target_link_libraries(${PROJECT_NAME} cmsisnn)
      
    • Incluez les répertoires.

      include_directories(
         				${CMAKE_SOURCE_DIR}/include/ 
         				${CMAKE_SOURCE_DIR}/CMSIS/Include/ 
         				${CMAKE_SOURCE_DIR}/CMSIS/DSP/Include/
         				${CMAKE_SOURCE_DIR}/CMSIS/Core/Include/
         				${CMAKE_SOURCE_DIR}/CMSIS/NN/Include/)
      
  10. Une fois que vous avez mis à jour le fichier CMake, enregistrez les changements que vous avez apportés. Votre fichier CMakeList.txt se présente comme ceci :

    The illustration shows CMakeList after adding libraries and directories.