Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Tecnologia da Internet das Coisas

Como implementar AI das Coisas (AIoT) em MCUs


Em meu artigo anterior, destaquei a tendência crescente que permite cada vez mais inteligência artificial (IA) na Internet de dispositivos (IoT) coisas para criar dispositivos inteligentes ‘AIoT’, e os vários aplicativos estão se beneficiando desses dispositivos inteligentes. Eles aprendem com os dados e tomam decisões autônomas sem intervenção humana, fazendo com que os produtos tenham interações mais lógicas e humanas com seu ambiente.

A combinação de AI e IoT abriu novos mercados para MCUs (microcontroladores). Ele possibilitou um número crescente de novos aplicativos e casos de uso que podem usar MCUs simples emparelhados com aceleração de AI para facilitar o controle inteligente. Esses MCUs habilitados para AI fornecem uma combinação única de capacidade DSP para computação e aprendizado de máquina (ML) para inferência e agora estão sendo usados ​​em aplicativos tão diversos como localização de palavras-chave, fusão de sensores, análise de vibração e reconhecimento de voz. MCUs de alto desempenho permitem aplicativos mais complexos em visão e imagem, como reconhecimento de rosto, análise de impressão digital e robôs autônomos.

tecnologias de IA

Aqui estão algumas tecnologias que permitem a IA em dispositivos IoT:

Aprendizado de máquina (ML) :Algoritmos de aprendizado de máquina constroem modelos com base em dados representativos, permitindo que os dispositivos identifiquem padrões automaticamente sem intervenção humana. Os fornecedores de ML fornecem algoritmos, APIs e ferramentas necessárias para treinar modelos que podem ser integrados em sistemas embarcados. Esses sistemas incorporados, então, usam os modelos pré-treinados para conduzir inferências ou previsões com base em novos dados de entrada. Exemplos de aplicativos são hubs de sensores, localização de palavras-chave, manutenção preditiva e classificação.

Aprendizagem profunda :Aprendizado profundo é uma classe de aprendizado de máquina que treina um sistema usando várias camadas de uma rede neural para extrair recursos e percepções de nível cada vez mais alto de dados de entrada complexos. O aprendizado profundo funciona com dados de entrada muito grandes, diversos e complexos e permite que os sistemas aprendam iterativamente, melhorando o resultado a cada etapa. Exemplos de aplicativos que usam aprendizado profundo são processamento de imagens, chatbots para atendimento ao cliente e reconhecimento facial.

Processamento de linguagem natural (PNL) :PNL é um ramo da inteligência artificial que lida com a interação entre sistemas e humanos usando a linguagem natural. A PNL ajuda os sistemas a compreender e interpretar a linguagem humana (texto ou fala) e a tomar decisões com base nisso. Exemplos de aplicações são sistemas de reconhecimento de voz, tradução automática e digitação preditiva.

Visão computacional :Máquina / visão computacional é um campo de inteligência artificial que treina máquinas para coletar, interpretar e compreender dados de imagem e agir com base nesses dados. As máquinas reúnem imagens / vídeos digitais de câmeras, usam modelos de aprendizagem profunda e ferramentas de análise de imagens para identificar e classificar objetos com precisão e agir com base no que eles “veem”. Os exemplos são a detecção de falhas na linha de montagem de manufatura, diagnósticos médicos, reconhecimento facial em lojas de varejo e testes de carro sem motorista.

AIoT em MCUs

No passado, a IA era o alcance de MPUs e GPUs com poderosos núcleos de CPU, grandes recursos de memória e conectividade em nuvem para análises. Porém, nos últimos anos, com uma tendência de maior inteligência no limite, estamos começando a ver MCUs sendo usados ​​em aplicativos AIoT incorporados. A mudança para a borda está sendo conduzida por considerações de latência e custo e envolve mover a computação para mais perto dos dados. Dispositivos IoT baseados em IA em MCU permitem tomada de decisão em tempo real e resposta mais rápida a eventos e tem vantagens de requisitos de largura de banda mais baixos, menor potência, menor latência, menores custos e maior segurança. A AIoT é habilitada por maior capacidade de computação de MCUs recentes, bem como disponibilidade de estruturas de rede neural fina (NN) que são mais adequadas para MCUs de recursos limitados sendo usados ​​nesses dispositivos finais.

Uma rede neural é uma coleção de nós, organizados em camadas que recebem entradas de uma camada anterior e geram uma saída que é calculada a partir de uma soma ponderada e enviesada das entradas. Essa saída é passada para a próxima camada ao longo de todas as suas conexões de saída. Durante o treinamento, os dados de treinamento são alimentados na primeira camada ou na camada de entrada da rede, e a saída de cada camada é passada para a próxima. A última camada ou a camada de saída produz as previsões do modelo, que são comparadas aos valores esperados conhecidos para avaliar o erro do modelo. O processo de treinamento envolve refinar ou ajustar os pesos e vieses de cada camada da rede em cada iteração usando um processo chamado backpropagation, até que a saída da rede se correlacione intimamente com os valores esperados. Em outras palavras, a rede “aprende” iterativamente com o conjunto de dados de entrada e melhora progressivamente a precisão da previsão de saída.

O treinamento da rede neural requer alto desempenho de computação e memória e geralmente é realizado na nuvem. Após o treinamento, este modelo NN pré-treinado é incorporado ao MCU e usado como um mecanismo de inferência para novos dados de entrada com base em seu treinamento.

Essa geração de inferência requer um desempenho de computação muito menor do que o treinamento do modelo e, portanto, é adequada para um MCU. Os pesos deste modelo NN pré-treinado são fixos e podem ser colocados no flash, reduzindo assim a quantidade de SRAM necessária e tornando-o adequado para MCUs com recursos mais restritos.

Implementação em MCUs

A implementação de AIoT em MCUs envolve algumas etapas. A abordagem mais comum é usar um dos modelos de estrutura de rede neural (NN) disponíveis, como Caffe ou Tensorflow Lite, adequado para soluções de dispositivo final baseadas em MCU. O treinamento do modelo NN para aprendizado de máquina é feito na nuvem por especialistas em IA usando ferramentas fornecidas por fornecedores de IA. A otimização do modelo NN e integração no MCU é realizada usando ferramentas do fornecedor AI e do fabricante do MCU. A inferência é feita no MCU usando o modelo NN pré-treinado.

A primeira etapa do processo é feita totalmente offline e envolve a captura de uma grande quantidade de dados do dispositivo ou aplicativo final, que são usados ​​para treinar o modelo NN. A topologia do modelo é definida pelo desenvolvedor de IA para fazer o melhor uso dos dados disponíveis e fornecer a saída necessária para esse aplicativo. O treinamento do modelo NN é feito passando os conjuntos de dados iterativamente pelo modelo com o objetivo de minimizar continuamente o erro na saída do modelo. Existem ferramentas disponíveis com o framework NN que podem auxiliar neste processo.

Na segunda etapa, esses modelos pré-treinados, otimizados para certas funções como localização de palavras-chave ou reconhecimento de voz, são convertidos em um formato adequado para MCUs. A primeira etapa neste processo é convertê-lo em um arquivo de buffer plano usando a ferramenta de conversão de AI. Isso pode ser executado opcionalmente através do quantizador, a fim de reduzir o tamanho e otimizá-lo para o MCU. Esse arquivo de buffer plano é então convertido em código C e transferido para o MCU de destino como um arquivo executável em tempo de execução.

Este MCU, equipado com o modelo de IA integrado pré-treinado, agora pode ser implantado no dispositivo final. Quando novos dados chegam, eles são executados por meio do modelo e uma inferência é gerada com base no treinamento. Quando novas classes de dados chegam, o modelo NN pode ser enviado de volta à nuvem para retreinamento e o novo modelo retreinado pode ser programado no MCU, potencialmente por meio de atualizações de firmware OTA (over the air).

Existem duas maneiras diferentes de arquitetar uma solução de IA baseada em MCU. Para o propósito desta discussão, estamos assumindo o uso de núcleos Arm Cortex-M nos MCUs de destino.

No primeiro método, o modelo NN convertido é executado no núcleo da CPU Cortex-M e é acelerado usando as bibliotecas CMSIS-NN. Esta é uma configuração simples que pode ser tratada sem qualquer aceleração de hardware adicional e é adequada para aplicações de IA mais simples, como detecção de palavras-chave, análise de vibração e hubs de sensores.

Uma opção mais sofisticada e de alto desempenho envolve a inclusão de um acelerador NN ou hardware de micro unidade de processamento neural (u-NPU) no MCU. Essas u-NPUs aceleram o aprendizado de máquina em dispositivos IoT com recursos limitados e podem oferecer suporte à compactação que pode reduzir a potência e o tamanho do modelo. Eles oferecem suporte a operadores que podem executar totalmente a maioria das redes NN comuns para processamento de áudio, reconhecimento de voz, classificação de imagens e detecção de objetos. As redes que não são suportadas pelo u-NPU podem recorrer ao núcleo da CPU principal e são aceleradas pelas bibliotecas CMSIS-NN. Neste método, o modelo NN é executado no uNPU.

Esses métodos mostram apenas algumas maneiras de incorporar IA em dispositivos baseados em MCU. À medida que os MCUs empurram os limites de desempenho para níveis mais altos, mais próximos do esperado dos MPUs, esperamos começar a ver recursos completos de IA, incluindo algoritmos de aprendizagem leves e inferência, sendo construídos diretamente nos MCUs.

IA no limite é o futuro

A implementação de IA em MCUs com restrição de recursos aumentará exponencialmente no futuro e continuaremos a ver novos aplicativos e casos de uso emergirem à medida que MCUs ultrapassam os limites de desempenho e confundem a linha entre MCUs e MPUs, e cada vez mais NN “finos” modelos adequados para dispositivos com recursos limitados tornam-se disponíveis.

No futuro, com um aumento no desempenho do MCU, provavelmente veremos a implementação de algoritmos de aprendizado leves, além da inferência, sendo executados diretamente no MCU. Isso abrirá novos mercados e aplicações para fabricantes de MCUs e se tornará uma área de investimento significativo para eles.

Tecnologia da Internet das Coisas

  1. Como proteger a tecnologia em nuvem?
  2. Como aproveitar ao máximo seus dados
  3. Como a AIoT permite soluções de tráfego inteligentes
  4. Como a Internet das Coisas está transformando a cadeia de suprimentos:Parte 2, Soluções futuras
  5. Como a tecnologia móvel está removendo barreiras para viajar
  6. Como a ciência de dados e o aprendizado de máquina podem ajudar a impulsionar o design do site
  7. A Internet das Coisas:Gerenciando o influxo de dados
  8. Como usar o aprendizado de máquina no ambiente empresarial atual
  9. Como a IoT capacita o sistema de rastreamento de veículos?
  10. Como os OEMs de dispositivos médicos podem implementar os modelos de negócios da Indústria 4.0