Acelere o projeto do Sistema de Reconhecimento de Visão com as MPUs da série Renesas RZ/V2

By Jacob Beningo

Contributed By DigiKey's North American Editors

Como o reconhecimento de visão na borda está se tornando uma característica cada vez mais crítica em muitos produtos, a aprendizagem de máquinas (ML) e a inteligência artificial (AI) estão encontrando seu caminho para uma ampla gama de espaços de aplicação. O problema que os desenvolvedores enfrentam é que a visão habilitada para ML/AI pode exigir mais poder computacional para executar os algoritmos de reconhecimento do que pode estar disponível em aplicações com restrições de potência. Também acrescenta custos se forem necessárias soluções caras de gerenciamento térmico.

O objetivo da ML/AI na borda é encontrar a abordagem arquitetônica ideal que equilibre desempenho e potência, enquanto também fornece um ecossistema de software robusto dentro do qual desenvolver a aplicação.

Com estas condições em mente, este artigo introduz uma solução na forma da unidade microprocessadora (MPU) Renesas Electronics Série RZ/V2 com seu acelerador de hardware AI embutido. O artigo explora como uma MPU, em vez de um microcontrolador (MCU) ou unidade de processamento gráfico de alta tecnologia (GPU), pode resolver vários problemas que os projetistas enfrentam. Uma descrição de como eles podem começar a projetar sistemas de reconhecimento de visão usando a série RZ/V2 está incluída, juntamente com algumas "Dicas e truques" para suavizar o processo.

Introdução às MPUs da série RZ/V2

A série RZ/V2 é uma solução que desbloqueia muitas capacidades para desenvolvedores que utilizam um microprocessador de três núcleos. Os microprocessadores da série RZ/V2L contêm dois processadores Arm Cortex-A55 rodando a 1,2 gigahertz (GHz), e um núcleo microcontrolador de tempo real (Arm® Cortex®-M33) rodando a 200 megahertz (MHz). Além disso, as partes da série contêm uma GPU baseada em um processador multimídia Arm Mali-G31 com instruções NEON de instrução única/dados múltiplos (SIMD). A combinação desses três núcleos de processamento e do processador multimídia fornece uma solução bem fundamentada para os desenvolvedores que trabalham com sistemas de reconhecimento de visão.

Existem atualmente duas classes MPU na série RZ/V2, a série RZ/V2L e a série RZ/V2M. O RZ/V2L tem um processador de sinais de imagem simples (ISP), motor gráfico 3D e um conjunto periférico altamente versátil. O RZ/V2M, por sua vez, acrescenta um ISP de alto desempenho que suporta resolução de 4K a 30 quadros por segundo (fps). Este artigo foca na família RZ/V2L, composta pelo R9A07G054L23GBG e o R9A07G054L24GBG. A principal diferença entre as duas peças é que o R9A07G054L23GBG vem em um invólucro 456-LFBGA de 15 mm2, enquanto o R9A07G054L24GBG vem em um invólucro 551-LFBGA de 21 mm2.

O diagrama de blocos para a série RZ/V2L é mostrado na Figura 1. Além dos três núcleos de processamento, as MPUs incluem interfaces para periféricos padrões como memória DDR3/DDR4, SPI, USB, Ethernet, I²C, CAN, SCI, GPIO e um conversor analógico-digital (ADC). Além disso, as peças incluem capacidades de segurança, tais como uma inicialização segura, um motor criptográfico e um verdadeiro gerador de números aleatórios (TRNG). O que diferencia a série MPU, no entanto, é o acelerador acelerador de AI do Processador Dinamicamente Reconfigurável (DRP).

Diagrama da série Renesas RZ/V2L MPU (clique para ampliar)Figura 1: A série RZ/V2L MPU suporta várias interfaces periféricas, segurança e opções de processamento de vídeo. A característica crítica para aplicações de reconhecimento de visão é o acelerador DRP-AI. (Fonte da imagem: Renesas Electronics Corporation)

O molho secreto do acelerador DRP-AI

O acelerador DRP-AI é o molho secreto que permite às MPUs da série RZ/V2L executar aplicações de reconhecimento de visão rapidamente, com menor consumo de energia e um perfil térmico mais baixo. O DRP-AI compreende dois componentes: um DRP e um MAC (multiplicar e acumular) de AI, que pode processar eficientemente operações em redes convolucionais e todas as camadas de combinação, otimizando o fluxo de dados com comutadores internos (Figura 2).

O hardware DRP-AI é dedicado à execução da inferência AI. O DRP-AI utiliza uma tecnologia dinâmica única reconfigurável desenvolvida pela Renesas que proporciona flexibilidade, processamento em alta velocidade e eficiência energética. Além disso, o DRP-AI Translator, uma ferramenta de software livre, permite aos usuários implementar modelos otimizados de AI que maximizam rapidamente o desempenho. A saída de múltiplos executáveis pelo DRP-AI Translator pode ser colocada em memória externa. A aplicação pode então alternar dinamicamente entre vários modelos de AI durante o tempo de execução.

O DRP pode processar rapidamente atividades complexas como o pré-processamento de imagens e as camadas de agrupamento dos modelos de AI, alterando dinamicamente a configuração do hardware.

Diagrama do Renesas DRP-AI que compreende um DRP e um AI-MACFigura 2: O DRP-AI compreende um DRP e um AI-MAC, que juntos podem processar eficientemente operações em redes convolucionais e todas as camadas combinadas, otimizando o fluxo de dados com comutadores internos. (Fonte da imagem: Renesas Electronics Corporation)

O DRP-AI Translator

A ferramenta DRP-AI Translator gera executáveis otimizados DRP-AI a partir de modelos ONNX treinados, independentemente de qualquer estrutura de AI. Por exemplo, um desenvolvedor poderia usar PyTorch, TensorFlow, ou qualquer outra estrutura de modelagem de AI, se ela produzir um modelo ONNX. Uma vez que o modelo é treinado, ele é alimentado no DRP-AI Translator, que gera os executáveis DRP e AI-MAC (Figura 3).

Diagrama dos modelos de AI são treinados usando qualquer estrutura compatível com ONNXFigura 3: Os modelos de AI são treinados usando qualquer estrutura compatível com ONNX. O modelo ONNX é então alimentado no DRP-AI Translator, que gera os executáveis DRP e AI-MAC. (Fonte da imagem: Renesas Electronics Corporation)

O DRP-AI Translator tem três objetivos principais:

  1. Agendamento de cada operação para processar o modelo AI.
  2. Ocultar sobrecargas como o tempo de acesso à memória que ocorre durante a transição de cada operação no cronograma.
  3. Otimização da estrutura gráfica da rede.

O Tradutor aloca automaticamente cada processo do modelo AI ao AI-MAC e DRP, permitindo assim ao usuário usar facilmente o DRP-AI sem ser um especialista em hardware. Em vez disso, o desenvolvedor pode fazer chamadas através do driver fornecido para executar o modelo AI de alto desempenho. Além disso, o DRP-AI Translator pode se atualizar continuamente para suportar modelos de AI recém-desenvolvidos sem mudanças de hardware.

Casos e processos de uso do sistema

O fluxo geral do processo para usar as MPUs RZ/V2L para treinar e implantar aplicações de reconhecimento de visão é mostrado na Figura 4. Como de costume, os engenheiros podem adquirir seu conjunto de dados e usá-lo para treinar seu modelo de reconhecimento de visão. Quer eles estejam tentando identificar gatos, um produto em um carrinho de compras ou peças falhando em uma linha de montagem, o processo de treinamento ocorrerá usando estruturas familiares de AI. Uma vez que o modelo é treinado, ele é convertido para o formato ONNX e alimentado no DRP-AI Translator, que por sua vez emite o código objeto que pode ser executado no hardware do DRP-AI. Os dados das câmeras, acelerômetros ou outros sensores são então amostrados e alimentados nos executáveis, fornecendo o resultado da execução da inferência.

Imagem de treinamento e execução de um algoritmo de reconhecimento de visãoFigura 4: O processo de treinamento e execução de um algoritmo de reconhecimento de visão nas MPUs RZ/V2L. (Fonte da imagem: Renesas Electronics Corporation)

Há várias maneiras de os engenheiros poderem aproveitar as MPUs RZ/V2L em seus projetos (Figura 5). Primeiro, a MPU RZ/V2L pode ser usada em projetos autônomos onde o RZ/V2L é o único processador no sistema. Com seus três núcleos e hardware de aceleração de AI, pode não ser necessário poder computacional adicional.

O segundo caso de uso é quando o RZ/V2L é usado como um processador de AI em um sistema mais extenso. Neste caso de uso, o RZ/V2L executa as inferências de AI e retorna um resultado para outro processador ou sistema que então age sobre esse resultado. O caso de uso selecionado dependerá de vários fatores, tais como custo, arquitetura geral do sistema, desempenho e requisitos de resposta em tempo real.

Diagrama de dois casos de uso para as MPUs Renesas RZ/V2LFigura 5: Os dois casos de uso para as MPUs RZ/V2L são para usá-las isoladamente em uma aplicação, ou como um processador de AI usado em um sistema mais extenso. (Fonte da imagem: Renesas Electronics Corporation)

Exemplo de aplicação no mundo real

Há muitos casos de uso onde a tecnologia de reconhecimento de visão pode ser implantada. Um exemplo interessante está no supermercado. Hoje, ao chegar no caixa de uma mercearia, um funcionário ou um comprador normalmente escaneia cada item de um carrinho. Um caso interessante de uso seria detectar os produtos que estão passando pela esteira usando o reconhecimento da visão e cobrar automaticamente por eles.

Um protótipo poderia ser construído usando uma simples câmera CMOS e a placa de avaliação RTK9754L23S01000BE da Renesas (Figura 6). A placa de desenvolvimento embarcada RZ/V2L tem um sistema no módulo (SOM) e placa portadora que permite aos desenvolvedores colocarem em funcionamento rapidamente. Além disso, a placa de desenvolvimento suporta Linux, juntamente com várias ferramentas como o DRP-AI Translator.

Imagem da placa de desenvolvimento embarcada Renesas RZ/V2LFigura 6: A placa de desenvolvimento embarcada RZ/V2L tem uma SOM e uma placa portadora que permite aos desenvolvedores colocarem em funcionarem rapidamente. (Fonte da imagem: Renesas Electronics Corporation)

Uma visão geral operacional do que é necessário para adquirir dados de imagem e produzir um resultado de AI pode ser vista na Figura 7. Neste exemplo de aplicação, as imagens da esteira transportadora são obtidas usando um sensor CMOS através do ISP na placa. Em seguida, a imagem é salva na memória e alimentada no motor DRP-AI. Finalmente, o motor DRP-AI executa a inferência e fornece um resultado de AI. Por exemplo, o resultado pode mostrar que uma banana fosse encontrada, ou uma maçã, ou alguma outra fruta.

O resultado é frequentemente acompanhado por um nível de confiança de 0 a 1. Por exemplo, confiança de 0,90 significa que a AI está confiante de ter detectado uma maçã. Por outro lado, uma confiança de 0,52 pode significar que a AI pensa que é uma maçã, mas não tem certeza. Não é incomum pegar um resultado de AI e tirar a média de várias amostras para melhorar as chances de resultados corretos.

Diagrama da placa de desenvolvimento embarcada Renesas RZ/V2LFigura 7: A placa de desenvolvimento embarcada RZ/V2L é usada para executar uma inferência de AI que reconhece várias frutas em uma esteira transportadora. A figura demonstra os passos necessários para adquirir uma imagem e produzir um resultado de AI. (Fonte da imagem: Renesas Electronics Corporation)

Finalmente, neste exemplo, uma caixa é desenhada ao redor do objeto detectado, e o nome do objeto reconhecido é exibido junto com o nível de confiança (Figura 8).

Exemplo de saída da Renesas RZ/V2LFigura 8: Exemplo de saída do RZ/V2L em uma aplicação que detecta frutas e vegetais em uma esteira transportadora. (Fonte da imagem: Renesas Electronics Corporation)

Dicas e truques para começar com o RZ/V2L

Os desenvolvedores que procuram começar com o aprendizado de máquinas nas MPUs Renesas RZ/V2L descobrirão que eles têm muitos recursos para aproveitar e pôr em funcionamento. Aqui estão várias "dicas e truques" que os desenvolvedores devem ter em mente que podem simplificar e acelerar seu desenvolvimento:

  • Comece com uma placa de desenvolvimento e os exemplos existentes para ter uma idéia da implantação e execução de uma aplicação.
  • Se for necessário executar várias inferências, salve os modelos executáveis na memória externa e use as capacidades do DRP-AI para alternar entre modelos rapidamente.
  • Revise a documentação e os vídeos encontrados no site de MPUs embarcadas RZ/V de AI da Renesas.
  • Baixe o DRP-AI Translator.
  • Baixe o pacote de suporte RZ/V2L DRP-AI.

Os desenvolvedores que seguirem estas "dicas e truques" pouparão bastante tempo e sofrimento ao começarem.

Conclusão

ML e AI estão encontrando seu caminho em muitas aplicações de borda, com a capacidade de reconhecer objetos em tempo real se tornando cada vez mais importante. Para os projetistas, a dificuldade é encontrar a arquitetura certa para realizar AI/ML na borda. As GPUs tendem a ter fome de energia, enquanto as MCUs podem não ter poder computacional suficiente.

Como mostrado, a série Renesas RZ/V MPU com DRP-AI tem vários benefícios, tais como AI com aceleração de hardware, juntamente com uma substancial cadeia de ferramentas e suporte à prototipagem.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo is an embedded software consultant. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees, including a Masters of Engineering from the University of Michigan.

About this publisher

DigiKey's North American Editors