Упражнение. Создание приложения классификации изображений реального времени

Завершено

В этом упражнении вы измените и обновите пример проекта ImageClassification_RTApp_MT3620_BareMetal, который вы только что переименовали. Начните с установки примера проекта Майкрософт в качестве базового. Вы скопируете значения весовых коэффициентов и параметров из проекта и обновите исходный код.

  1. Перейдите в каталог, в который нужно клонировать репозиторий.

  2. Клонируйте пример репозитория классификации изображений (Майкрософт).

    git clone https://github.com/MicrosoftDocs/mslearn-oxford-image-classification-azure-sphere.git
    
  3. Перейдите в папку mslearn-oxford-image-classification-azure-sphere и откройте на компьютере пример проекта CMSISNN-Cifar10.

  4. Скопируйте папку библиотеки CMSIS и вставьте ее в папку проекта ImageClassification_RTApp_MT3620_BareMetal.

  5. Скопируйте включаемую папку и вставьте ее в папку проекта ImageClassification_RTApp_MT3620_BareMetal.

  6. Скопируйте файл main.c в папку проекта CMSISNN-cifar10 и замените его файлом main.c в папке проекта ImageClassification_RTApp_MT3620_BareMetal.

  7. Вернитесь в Visual Studio Code и обновите обозреватель. Вы увидите, что добавились папка CMSIS и включаемая папка.

    The illustration shows how to refresh the explorer.

  8. Откройте файл main.c. Вы увидите определенные в нем параметры, весовые коэффициенты и входные данные. На следующем шаге вы добавите путь к каталогу, и ошибки выводиться не будут.

    The illustration shows weights, parameters and input files.

  9. Откройте файл CMakeLists.txt для внесения изменений.

    • Добавьте необходимые библиотеки.

      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)
      
    • Включите каталоги.

      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. При обновлении файла CMake сохраните изменения. Файл CMakeList.txt будет выглядеть следующим образом.

    The illustration shows CMakeList after adding libraries and directories.