Aprendizagem Profunda em Plataformas Embarcadas
Becks Simpson para Mouser Electronics
À medida que a tecnologia de visão de máquina continua a avançar, impulsionada por métodos de aprendizagem profunda (DL), surge um mundo de possibilidades nos domínios da automação e detecção de defeitos. O potencial transformador resulta da integração da aprendizagem profunda em sistemas embarcados, especialmente em cenários que envolvem robótica, veículos autônomos e processos industriais. Desde atividades autônomas, como campainhas inteligentes, até tarefas complexas, como detecção de defeitos usando drones, a incorporação de métodos de visão de máquina mais sofisticados aumenta a inteligência desses dispositivos inteligentes além do que era possível anteriormente. No entanto, esta fusão integra o seu próprio conjunto de desafios, abrangendo latência, eficiência energética, segurança e privacidade. Navegar por esses requisitos significa selecionar cuidadosamente algoritmos apropriados, adaptações para sistemas embutidos e estratégias de implementação que preparem o caminho para um mundo mais inteligente e responsivo.
Utilização de Aprendizagem Profunda (DL) em Sistema de Visão de Máquina
À medida que a visão de máquina aperfeiçoa e os métodos baseados em DL avançam para os processos de automação e detecção de defeitos, muitos aplicativos são beneficiados com a integração de DL. Os processos de automação industrial e residencial (especialmente aqueles que incluem armas, veículos ou outros elementos robóticos) beneficiam-se da capacidade de visualizar, compreender e responder aos seus ambientes para executar uma série de ações. Uma vez que os ambientes nos quais esses dispositivos inteligentes e sistemas embarcados precisam operar são complexos e altamente variáveis, cada vez mais é necessário usar DL para visão mecânica. Essa inteligência aprimorada pode ser usada para realizar atividades autônomas como entrega, manutenção de terrenos, campainhas inteligentes e acesso a edifícios, aspiração de ambientes, fabricação e embalagem de armazéns. Um subconjunto dessas aplicações também envolve monitoramento e detecção de defeitos. Aplicações como detecção de defeitos em tubulações, linhas de energia, torres de telecomunicações e outros ativos que utilizam drones ou outros veículos autônomos pequenos também podem ser melhoradas com a adição de visão mecânica baseada em DL. Com dados suficientes, esses modelos são menos frágeis e apresentam desempenho mais robusto sob diferentes condições.
Entretanto, a introdução de DL (aprendizagem profunda) em processos de visão de máquina é dispendiosa e inclui várias considerações que causam impacto aos requisitos de computação e hardware para o sucesso. Uma vez que esses aplicativos precisam detectar, classificar e responder a defeitos ou outros objetos de interesse no processo de automação em tempo real, o tempo para enviar dados por meio de uma rede para obter resultados, com frequência é limitado. Consequentemente, o hardware escolhido precisa ter baixa latência de inferência de DL uma vez que um modelo é implementado no dispositivo. Além disso, dependendo da aplicação, a eficiência energética também pode ser levada em consideração, especialmente para veículos autônomos, como drones ou roverboards, que executam inspeções usando suas próprias fontes de energia. Quanto mais tempo eles puderem trabalhar sem a necessidade de carregamento, mais eficientemente poderão realizar seu trabalho. Como os processos DL exigem funções de computação pesadas, é fundamental garantir que eles sejam executados com eficiência e que o hardware usado seja otimizado para baixo consumo de energia.
Os sistemas embarcados, como o kit de avaliação i.MX 8M Plus da NXP Semiconductors, são especialmente desenvolvidos considerando esses tipos de requisitos, incorporando potentes recursos de aceleração de inteligência artificial no projeto sem comprometer a eficiência energética. Outros requisitos importantes nessas aplicações são a segurança e a privacidade. Por exemplo, em aplicações de automação residencial ou para detecção de defeitos em ativos, muitas vezes existe a necessidade de manter os dados no dispositivo (e não compartilhados na nuvem) ou de garantir que os dados e as comunicações nas redes sejam totalmente criptografados. Por último, nas condições em que é esperado que estes algoritmos sejam executados em tempo real em um robô ou veículo autônomo, a integração direta de dados de sensores robustos, de boa qualidade e de baixa latência para visão também é vital, e a escolha do hardware deve refletir isso.
Seleção de Algoritmos para Sistemas Embarcados
A escolha de algoritmos de DL para essas aplicações de visão de máquina é fortemente influenciada pelos requisitos mencionados. Os projetistas precisam estar especialmente atentos ao tamanho do modelo no disco, à memória e à latência de inferência. Para qualquer coisa que envolva a detecção de objetos a partir de um fluxo de câmera (por exemplo, defeitos, pessoas, carros, animais), provavelmente existe um modelo pré-treinado ou “básico” com uma ampla compreensão da maioria das informações visuais. Esses são modelos de código aberto expostos a uma grande quantidade de dados e disponibilizados para extensão a aplicações mais diferenciadas. No entanto, quando uma tarefa desejada difere significativamente daquelas usadas para treinar o modelo, é importante testar o desempenho. Por exemplo, a tarefa de identificar defeitos em linhas de energia ou no interior de tubulações envolve objetos e dados diferentes da tarefa de identificar pessoas ou carros.
Os projetistas também devem garantir que a arquitetura do modelo pré-treinado seja otimizada para dispositivos embarcados. Especificamente, deve-se escolher uma arquitetura de modelo que seja pequena o suficiente para residir no dispositivo – visando um modelo com tamanho de megabytes (não gigabytes). Além disso, o carregamento e o uso do modelo não devem ser proibitivamente lentos, o que costuma acontecer com modelos maiores. Normalmente técnicas específicas têm sido usadas para otimizar essas arquiteturas e pesos de modelo; por exemplo, a redução de peso ou a quantização ajudam a reduzir o tamanho e a complexidade e, ao mesmo tempo, mantêm o desempenho.
A escolha de um modelo de visão de DL integrado também exige a garantia de que o formato seja relativamente padrão (como o TensorFlow Lite), para que a conversão para as necessidades do dispositivo seja possível e direta. Felizmente, a variedade de modelos de visão de código aberto disponíveis significa que desenvolver e treinar um modelo de DL desde o início é, em grande parte, coisa do passado.
Adaptação de Modelos a Determinadas Aplicações
Para avaliar a adequação de um modelo embarcados para uso em visão de máquina, o desempenho pode não ser ideal para a aplicação específica. Isso pode ser em razão das diferenças na distribuição original dos dados de treinamento — como o dispositivo e as condições de aquisição — em comparação com os dados do mundo real esperados do caso de uso. Além disso, os modelos básicos podem existir para o aplicativo, mas os tipos de objetos que eles podem detectar não correspondem inteiramente ao que é necessário. Por exemplo, modelos padrão que executam detecção de objetos podem não ter classes específicas para defeitos ou objetos de interesse incomuns. Em ambos os casos, os projetistas precisam adaptar o modelo por meio de ajuste fino ou novo treinamento para melhorar o desempenho ou adaptar as classes necessárias para a tarefa desejada. Fazer isso requer novos dados rotulados de acordo com as necessidades de reconhecimento e classificação do caso de uso. Esses dados estão na forma de conjuntos de dados de código aberto semelhantes ou alinhados com os dados esperados pelo domínio ou dados personalizados adquiridos de ativos reais e rotulados conforme necessário. Encontrar uma plataforma de rotulagem de dados adequada, como Labelbox ou Label Studio, facilita o processo e manterá as anotações em um formato padrão para DL. Assim que atingir desempenho no nível exigido, o modelo atualizado estará pronto para ser implementado.
Implementação de modelo embarcado
Com a ampla variedade de formatos de modelos disponíveis para sistemas embarcados, é importante escolher hardware com software integrado que facilite a portabilidade de modelos. A primeira etapa para portar um modelo é escrever qualquer código necessário para o pré-processamento de dados ou alavancar um sistema embarcado que já inclua hardware e software para aplicativos de processamento de imagens. Por exemplo, o kit de avaliação NXP i.MX 8M Plus opera com o software de aprendizado de máquina NXP eIQ®, que inclui o pipeline de pré-processamento de visão de máquina como parte do software de DL implementado na placa. Essas etapas de pré-processamento com frequência incluem a conversão do fluxo de pixels brutos em RGB e o redimensionamento ou corte de quadros. Da mesma forma, após a inferência do modelo, pode ser necessário algum pós-processamento, como sobreposição da caixa delimitadora em uma entrada de câmera para um dispositivo de visualização como uma tela LCD.
A etapa seguinte é converter o modelo para o formato necessário para que possa ser executado no dispositivo embarcado para oferecer inferência em tempo real. Isso normalmente envolve a conversão do modelo para um formato padrão como Open Neural Network Exchange (ONNX), que facilita o acesso à otimização de hardware. Em seguida, o modelo e o código adjacente são agrupados em um binário executável por máquina para o dispositivo de destino antes de gerar um agrupamento. Existem vários compiladores de código aberto para esta tarefa, como o Glow do Facebook. A saída desta etapa pode ser implementada no sistema embarcado usado para o aplicativo em questão. Como o processo de portabilidade de um modelo é complexo, envolvendo muitas subetapas das partes mencionadas, muitas vezes é recomendável escolher uma plataforma embutida que inclua software para agilizar e simplificar o processo de portabilidade. Por exemplo, o kit de avaliação NXP i.MX 8M Plus é programável usando o pacote de software eIQ, que executa todas essas etapas em questão de cliques. Uma vez que o dispositivo tenha o mecanismo de inferência de modelo em execução, suas saídas podem ser utilizadas na aplicação desejada – detecção de defeitos, automação industrial ou outras.
Conclusão
A integração da aprendizagem profunda na visão computacional para sistemas embarcados abre um universo de possibilidades que são mais complexas e inovadoras do que aquelas que consistem apenas de métodos tradicionais. Os benefícios potenciais abrangem a automação residencial e industrial, bem como a detecção de defeitos em vários domínios. No entanto, desafios como latência, eficiência energética, segurança e privacidade requerem uma consideração cuidadosa, especialmente durante a seleção do hardware. A seleção e a adaptação de algoritmos também são etapas essenciais no processo para garantir o desempenho otimizado para uma determinada aplicação. Até mesmo a implementação de modelos embarcados é um processo meticuloso que exige hardware e software adequados para permitir uma conversão simplificada. Em última análise, esta convergência promove uma nova era de eficiência e inovação para aplicações embarcadas que exigem visão computacional.