O TensorFlow Lite para microcontroladores foi projetado para executar modelos de machine learning em microcontroladores e outros dispositivos com apenas alguns kilobytes de memória. O ambiente de execução principal cabe em 16 KB em um Arm Cortex M3 e pode executar vários modelos básicos. Ele não requer suporte a sistemas operacionais, bibliotecas C ou C++ padrão nem alocação de memória dinâmica.
Por que os microcontroladores são importantes
Normalmente, os microcontroladores são dispositivos de computação pequenos e de baixa potência incorporados em hardwares que exigem computação básica. Ao levar o machine learning para pequenos microcontroladores, podemos aumentar a inteligência de bilhões de dispositivos que usamos em nossas vidas, incluindo eletrodomésticos e dispositivos de Internet das Coisas, sem depender de hardware caro ou conexões de Internet confiáveis, que geralmente estão sujeitas a restrições de largura de banda e energia e resultam em alta latência. Isso também ajuda a preservar a privacidade, já que nenhum dado deixa o dispositivo. Imagine eletrodomésticos inteligentes que podem se adaptar à sua rotina diária, sensores industriais inteligentes que entendem a diferença entre problemas e operação normal e brinquedos mágicos que podem ajudar as crianças a aprender de maneiras divertidas e agradáveis.
Plataformas compatíveis
O TensorFlow Lite para microcontroladores foi escrito em C++ 17 e requer uma plataforma de 32 bits. Ela foi amplamente testada com muitos processadores baseados na arquitetura da série Arm Cortex-M e foi transferida para outras arquiteturas, incluindo ESP32. O framework está disponível como uma biblioteca Arduino. Ele também pode gerar projetos para ambientes de desenvolvimento, como o Mbed. Ele é de código aberto e pode ser incluído em qualquer projeto C++ 17.
As seguintes placas de desenvolvimento têm suporte:
- Arduino Nano 33 BLE Sense (em inglês)
- SparkFun Edge (link em inglês)
- Kit de descoberta STM32F746
- Adafruit EdgeBadge (link em inglês)
- Kit Adafruit do TensorFlow Lite para microcontroladores
- Circuito Adafruit Playground Bluefruit
- Espressif ESP32-DevKitC (link em inglês)
- Espressif ESP-EYE (em inglês)
- Terminal Wio: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board (link em inglês)
- Plataforma de desenvolvimento de software ARC EM da Synopsys DesignWare
- Sony Spresense (link em inglês)
Explorar os exemplos
Cada aplicativo de exemplo está no GitHub e tem um arquivo README.md
que explica como ele pode ser implantado nas plataformas compatíveis. Alguns exemplos também têm tutoriais completos que usam uma plataforma
específica, conforme mostrado abaixo:
- Hello World: demonstra os conceitos básicos absolutos do uso do TensorFlow Lite para microcontroladores.
- Micro fala: 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 a 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:
- Treine um modelo:
- Gere um modelo pequeno do TensorFlow que se ajuste ao dispositivo de destino e contenha operações compatíveis.
- Converta para um modelo do TensorFlow Lite usando o conversor do TensorFlow Lite.
- Converta em uma matriz de bytes C usando ferramentas padrão para armazená-la em uma memória de programa somente leitura no dispositivo.
- Execute inferência no dispositivo usando a biblioteca C++ e processe os resultados.
Limitações
O TensorFlow Lite para microcontroladores foi projetado para as restrições específicas do desenvolvimento de microcontroladores. Se você está trabalhando em dispositivos mais potentes (por exemplo, um dispositivo Linux incorporado, como o Raspberry Pi), o framework padrão do TensorFlow Lite pode ser mais fácil de integrar.
Considere as seguintes limitações:
- Suporte a um subconjunto limitado de operações do TensorFlow
- Suporte para um conjunto limitado de dispositivos
- API em 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 o aplicativo de exemplo e aprender a usar a API.
- Entenda a biblioteca C++ para aprender a usá-la no seu próprio projeto.
- Crie e converta modelos para saber mais sobre treinamento e conversão de modelos para implantação em microcontroladores.