A LiteRT para microcontroladores foi projetada para executar modelos de machine learning em microcontroladores e outros dispositivos com apenas alguns kilobytes de memória. A O ambiente de execução do núcleo cabe apenas em 16 KB em um Arm Cortex M3 e pode executar vários de modelos de machine learning. Ele não requer suporte ao sistema operacional padrão C ou C++. ou alocação dinâmica de memória.
Por que os microcontroladores são importantes
Os microcontroladores são normalmente pequenos dispositivos de computação em um hardware que exige computação básica. Ao trazer o machine learning aprendendo a microcontroladores minúsculos, podemos aumentar a inteligência de bilhões de dispositivos que usamos em nossas vidas, incluindo eletrodomésticos e Internet dos Dispositivos móveis, sem depender de hardware caro ou de uma Internet confiável o que geralmente está sujeito a restrições de largura de banda e energia e resulta em alta latência. Isso também ajuda a preservar a privacidade, já que nenhum dado sair do dispositivo. Imagine eletrodomésticos inteligentes que se adaptam diariamente sensores industriais inteligentes de rotina que entendem a diferença entre problemas e operação normal, e brinquedos mágicos que podem ajudar as crianças a aprender de forma divertida e agradáveis.
Plataformas compatíveis
O LiteRT para microcontroladores é escrito em C++ 17 e requer uma versão do de plataforma. Ele foi testado extensivamente com muitos processadores com base na Arm Cortex-M Series e foi adaptada para outras arquiteturas, incluindo ESP32 A está disponível como uma biblioteca Arduino. Ele também pode gerar projetos ambientes de desenvolvimento como o Mbed. Ele é de código aberto e pode ser incluído qualquer projeto C++ 17.
As placas de desenvolvimento a seguir são compatíveis:
- Arduino Nano 33 BLE Sense
- SparkFun Edge (em inglês)
- Kit de descoberta STM32F746
- Adafruit EdgeBadge (link em inglês)
- Kit Adafruit LiteRT para microcontroladores
- Circuito Adafruit Playground Bluefruit
- Espressif ESP32-DevKitC (link em inglês)
- Espressif ESP-EYE (em inglês)
- Terminal Wio: ATSAMD51
- Placa de desenvolvimento de IA de endpoint Himax WE-I Plus EVB
- Plataforma de desenvolvimento de software Synopsys DesignWare ARC EM
- Sony Spresense (link em inglês)
Explorar os exemplos
Cada aplicativo de exemplo está
GitHub
e tem um arquivo README.md
que explica como ele pode ser implantado em
plataformas. Alguns exemplos também têm tutoriais completos usando uma linguagem
plataforma, conforme mostrado abaixo:
- Hello World – Demonstra os fundamentos absolutos do uso da LiteRT para Microcontroladores
- Microfala - Captura áudio com um microfone para detectar as palavras "sim" e "não"
- Detecção de pessoa: Captura dados da câmera com um sensor de imagem para detectar presença ou ausência de uma pessoa
Fluxo de trabalho
As etapas a seguir são necessárias para implantar e executar um modelo do TensorFlow em um microcontrolador:
- Treinar um modelo:
- Gere um modelo pequeno do TensorFlow que se ajuste ao dispositivo de destino e tiver operações compatíveis.
- Converta para um modelo LiteRT usando a função Conversor de LiteRT (em inglês).
- Converta para uma matriz de bytes C usando ferramentas padrão para armazená-lo em um de memória do programa somente leitura no dispositivo.
- Execute inferência no dispositivo usando a biblioteca C++ e processe os resultados.
Limitações
O LiteRT para microcontroladores foi projetado para as restrições específicas de desenvolvimento de um microcontrolador. Se você trabalha com dispositivos mais potentes (por exemplo, um dispositivo Linux incorporado como o Raspberry Pi), o padrão A integração do framework LiteRT pode ser mais fácil.
É preciso considerar as seguintes limitações:
- Suporte a um subconjunto limitado de Operações do TensorFlow
- Suporte para um conjunto limitado de dispositivos
- API C++ de baixo nível que exige gerenciamento manual de memória
- O treinamento no dispositivo não é compatível
Próximas etapas
- Comece a usar microcontroladores para testar exemplo de aplicativo e aprender a usar a API.
- Entenda a biblioteca C++ para aprender a usá-la na seu próprio projeto.
- Crie e converta modelos para saber mais sobre o treinamento e converter modelos para implantação em microcontroladores.