Exercício – Criar um aplicativo de classificação de imagens em tempo real
Neste exercício, você vai modificar e atualizar o projeto de exemplo ImageClassification_RTApp_MT3620_BareMetal que renomeou. Comece instalando o projeto de exemplo da Microsoft como uma linha de base. Você copiará os pesos e parâmetros do projeto e atualizará seu código-fonte.
Vá para o diretório no qual deseja clonar o repositório.
Clone o Repositório de exemplo de classificação de imagens da Microsoft.
git clone https://github.com/MicrosoftDocs/mslearn-oxford-image-classification-azure-sphere.git
Navegue até a pasta mslearn-oxford-image-classification-azure-sphere e abra o projeto de exemplo CMSISNN-Cifar10 no computador.
Copie a pasta da biblioteca CMSIS e cole-a na pasta do projeto ImageClassification_RTApp_MT3620_BareMetal.
Copie a pasta include e cole-a na pasta do projeto ImageClassification_RTApp_MT3620_BareMetal.
Copie o arquivo main.c na pasta do projeto CMSISNN-cifar10 e substitua-o pelo arquivo main.c na pasta do projeto ImageClassification_RTApp_MT3620_BareMetal.
Volte para o Visual Studio Code e atualize o explorador. Você verá que as pastas CMSIS e include foram adicionadas.
Abra o arquivo main.c. Você verá que os parâmetros, os pesos e a entrada estão definidos em main.c. Você adicionará o caminho do diretório na próxima etapa, para que não ocorra um erro.
Abra CMakeLists.txt para modificá-lo.
Adicione as bibliotecas necessárias.
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)
Inclua os diretórios.
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/)
Quando atualizar o arquivo CMake, salve as alterações. O arquivo CMakeList.txt se parecerá com: