ÍNDICE DE CONTEÚDO
- Machine Learning em Microcontroladores – Introdução
- Machine Learning na Franzininho WiFi: Inferência de Temperatura e Umidade (Parte 1)
- Machine Learning na Franzininho WiFi: Inferência de Temperatura e Umidade (Parte 2)
- Machine Learning na Franzininho WiFi: Classificação de Movimento com Acelerômetro e LEDs (Parte 1)
- Machine Learning na Franzininho WiFi: Classificação de Movimento com Acelerômetro e LEDs (Parte 2)
Introdução
A Inteligência Artificial (IA) e o Aprendizado de Máquina (Machine Learning – ML) estão transformando a nossa realidade, desde a automação de tarefas até a personalização de experiências em tempo real. Tradicionalmente, a maior parte dos modelos de IA e ML opera em servidores robustos, devido à elevada demanda por recursos computacionais e energéticos. No entanto, hoje já é possível rodar ML em outros dispositivos com menor capacidade.
Em 2014, Pete Warden, um dos criadores do TensorFlow e TensorFlow Lite, ao ingressar no Google, se deparou com uma aplicação nova. A equipe por trás do “OK Google” utilizava redes neurais extremamente pequenas (14 KB) em processadores de sinal digital (DSPs) de smartphones Android para detectar as palavras de ativação, exigindo baixo consumo de energia e memória. Essa descoberta despertou em Warden a ideia de explorar o uso de chips de baixo consumo para rodar modelos de aprendizado de máquina.
Essa ideia foi um dos fatores que impulsionou o desenvolvimento do TensorFlow Lite, uma versão otimizada do TensorFlow, projetada para rodar modelos de ML em dispositivos com recursos limitados, como smartphones e microcontroladores. Assim, tornou-se possível executar redes neurais com eficiência, mesmo em dispositivos que operam com pouca energia e memória, abrindo portas para o uso de machine learning em microcontroladores.
Principais Características
- Baixo Consumo de Energia – aproximadamente 1 mW.
- Uso de Memória Limitada – modelos de machine learning compactos e otimizados.
- Capacidade de Processamento Reduzida – operações de machine learning, como a inferência em redes neurais, precisam ser simplificadas.
Aplicações
- Manutenção preditiva: Machine Learning em Microcontroladores pode ajudar fabricantes a reduzir o tempo de inatividade, prevendo falhas de equipamentos e notificando os trabalhadores quando a manutenção preventiva é necessária, com base no monitoramento contínuo do estado das máquinas.
- Agricultura inteligente: Wearables em animais de fazenda podem monitorar sinais vitais, como frequência cardíaca e temperatura, ajudando os fazendeiros a antecipar doenças e surtos, evitando grandes prejuízos.
- Gestão de tráfego: Sensores de tráfego em tempo real, com suporte de TinyML, permitem um roteamento mais eficiente, aumentando a segurança, reduzindo congestionamentos e diminuindo a poluição.
Fluxo de Trabalho de um Projeto de Machine Learning em Microcontroladores
O fluxo está dividido nas seguintes 4 etapas principais:
Embarcados Experience 2024: Evento Presencial
Participe do Embarcados Experience 2024 em São Paulo. Conhecimento técnico, palestras, workshops e oportunidade de networking com profissionais experientes.
- Coleta de dados: Captura de dados brutos do ambiente por meio de sensores conectados ao microcontrolador, como acelerômetros, sensores de temperatura, microfone. Esses dados podem ser armazenados localmente no dispositivo, enviados para um servidor ou coletados diretamente em uma ferramenta como o Edge Impulse. A qualidade dos dados é o que define o sucesso do modelo, é preciso que eles sejam bem rotulados e balanceados.
- Treinamento de modelos: Após a coleta dos dados, é necessário realizar o pré-processamento, onde os dados brutos são limpos, normalizados ou transformados em um formato adequado para o treinamento do modelo. O treinamento em si ocorre geralmente em um servidor ou computador de alta performance, e não no microcontrolador. Durante essa fase, modelos como redes neurais, classificadores ou regressões são criados e ajustados com base nos dados coletados.
- Conversão do modelo para o formato TensorFlow Lite (TFLite): Depois que o modelo é treinado, ele precisa ser convertido para um formato mais leve e eficiente, adequado para microcontroladores. Isso é feito utilizando o TensorFlow Lite Converter, que transforma o modelo em um arquivo .tflite.
- Implantação do modelo no microcontrolador: Após a conversão, o arquivo .tflite é carregado no microcontrolador. Plataformas como o TensorFlow Lite for Microcontrollers e Arduino IDE fornecem bibliotecas que permitem a execução do modelo diretamente no microcontrolador. O código que executa o modelo deve estar preparado para interpretar as entradas dos sensores, processar os dados e usar o modelo para realizar predições em tempo real.
Testes e ajustes são necessários para garantir que o modelo funcione corretamente no ambiente real e com as limitações de hardware do microcontrolador.
Plataformas e Ferramentas de Desenvolvimento
- TensorFlow Lite for Microcontrollers
- Edge Impulse (plataforma para desenvolvimento de projetos de TinyML).
- Bibliotecas para TinyML, como EloquentTinyML library
Hoje, as principais placas utilizadas em projetos de ML com microcontroladores são:
Dica de Leitura
Livro “Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers” por Pete Warden e Daniel Situnayake.
Conclusão
O avanço do Machine Learning em microcontroladores está abrindo novas possibilidades em diversas áreas, permitindo que dispositivos com menor capacidade realizem tarefas antes limitadas a sistemas mais poderosos. Com ferramentas como o TensorFlow Lite e plataformas como o Edge Impulse, ficou mais simples implementar modelos de aprendizado de máquina em microcontroladores.
Esse é o primeiro artigo da série, onde vamos desenvolver projetos práticos de Machine Learning utilizando a placa Franzininho WiFi. Acompanhem para aprender mais sobre como implementar TinyML e explorar suas aplicações em dispositivos embarcados!
Curtindo muito esta série de artigos!