13.6. Edge Impulse¶
O Edge Impulse é uma plataforma de ponta a ponta para construir modelos de aprendizado de máquina que rodam em microcontroladores: colete e rotule dados, projete e treine um modelo no navegador, e tenha-o otimizado para caber em um dispositivo medido em kilobytes. Ele implanta diretamente no OpenMV – alguns cliques transformam um modelo treinado em arquivos prontos para rodar na câmera. A própria documentação do Edge Impulse aprofunda cada etapa.
13.6.1. Obtendo os dados¶
Um modelo tem o melhor desempenho com o tipo de imagens em que foi treinado, então capture o conjunto de dados com a câmera que irá executá-lo. O editor de conjunto de dados da IDE foi feito exatamente para isso – crie pastas de classes, capture imagens rotuladas a partir do frame buffer ao vivo e, em seguida, envie o conjunto de dados diretamente para um projeto do Edge Impulse pelo submenu Export (faça login na sua conta lá primeiro). A partir daí você trabalha no Edge Impulse Studio.
Ver também
O próprio guia de configuração da OpenMV Cam do Edge Impulse para instalar as ferramentas e conectar a câmera.
13.6.2. Treinamento¶
O treinamento acontece inteiramente no navegador: projete um impulse (os blocos de entrada, processamento e aprendizado), treine-o e verifique a acurácia nos dados de teste reservados.
Dois tipos de modelo se adequam à câmera. Um classificador de imagens gera uma lista de pontuações de classe, que você lê diretamente da saída do modelo – nenhum pós-processador é necessário. O FOMO, um detector de objetos rápido projetado para microcontroladores, precisa de uma etapa de decodificação, e a câmera vem com um pós-processador para ele (ml.postprocessing.edgeimpulse), então esses modelos também rodam sem código extra.
13.6.3. Implantando na câmera¶
Quando o treinamento termina, abra a página Deployment do projeto, escolha o alvo OpenMV Library e clique em Build. O download é um zip contendo o modelo treinado (trained.tflite), seus rótulos (labels.txt) e um script de exemplo. O modelo é quantizado em inteiros. O Edge Impulse aborda isso e a alternativa de firmware personalizado em seu guia para rodar no OpenMV.
Adicione o arquivo .tflite à câmera com o editor de ROMFS da IDE, que o converte para a NPU da placa quando ela possui uma, e carregue-o em um script com ml.Model. Os modelos também rodam a partir do drive flash da câmera – copie os arquivos e aponte ml.Model para o caminho – mas a ROMFS é o melhor lugar: os modelos ali executam diretamente da flash sem uma cópia para a RAM.
Ver também
O capítulo de aprendizado de máquina para rodar modelos com o módulo ml – carregamento, o pipeline de inferência e a decodificação da saída.