Como construir e implantar rapidamente aplicações de visão de borda adaptável com uma plataforma pronta para produção

By Stephen Evanczuk

Contributed By DigiKey's North American Editors

A aplicação de inteligência artificial (IA) em câmeras inteligentes baseadas em bordas ganhou rapidamente aceitação em uma gama crescente de aplicações de visão embutida, tais como visão mecânica, segurança, varejo e robótica. Embora o rápido surgimento de algoritmos de aprendizagem de máquinas acessíveis (ML) tenha ajudado a despertar este interesse pela IA, os desenvolvedores ainda lutam para cumprir prazos apertados de projetos enquanto fornecem alto desempenho com baixa potência para aplicações baseadas em bordas.

Complicando ainda mais as coisas, mesmo as soluções recém implantadas podem rapidamente se tornar sub-ótimas devido à natureza de rápida mudança dos requisitos de aplicação e melhorias contínuas nos algoritmos em evolução.

Este artigo introduz uma solução flexível de sistema em módulo (SOM) da Xilinx que os desenvolvedores podem usar para implementar rapidamente soluções de câmeras inteligentes para a implantação de bordas. Ele mostra como eles podem adaptar mais facilmente essas soluções em resposta às necessidades em mudança sem comprometer os principais requisitos de latência e potência.

Acelerando a execução da aplicação de visão

Baseado em um sistema de processamento personalizado Zynq UltraScale+ multiprocessador em chip (MPSoC), o Kria K26 SOM da Xilinx fornece um sistema de processamento embutido robusto compreendendo uma unidade de processamento de aplicações (APU) Cortex-A53 de braço quad-core de 64 bits, uma unidade de processamento em tempo real (RPU) Cortex®-R5F de duplo núcleo de 32 bits e uma unidade de processamento gráfico (GPU) Mali-400MP2 3D de braço. A SOM combina o MPSoC com quatro gigabytes de 64 bits de memória de taxa de dados dupla 4 (DDR4) e controlador de memória associado, bem como múltiplos dispositivos de memória não volátil (NVM) incluindo 512 megabits (Mbits) de memória QSPI (quad serial peripheral interface), 16 gigabytes (Gbytes) de memória integrada Multi-Media Card (eMMC), e 64 kilobits (Kbits) de memória programável apagável eletricamente somente leitura (EEPROM) (Figura 1).

Diagrama de Xilinx Kria K26 SOM (clique para ampliar)Figura 1: O Xilinx Kria K26 SOM combina a extensa capacidade de processamento de um Zynq UltraScale+ MPSoC construído sob medida com um módulo de plataforma confiável 2.0 (TPM2) e memória dinâmica e não volátil. (Fonte da imagem: Xilinx)

O Xilinx complementa seus ativos de processamento e memória com um sistema lógico programável extensivo composto de 256K células lógicas de sistema, 234K blocos lógicos configuráveis (CLB) flip-flops, 117K CLB tabelas de busca (LUTs), e um total de 26,6 megabits (Mbits) de memória em várias configurações de memória distribuída de acesso aleatório (RAM), RAM de bloco, e blocos ultraRAM. Além disso, o sistema de lógica programável inclui 1.248 fatias de processamento de sinal digital (DSP), quatro transceptores e um codec de vídeo para H.264 e H.265 capaz de suportar até 32 fluxos de codificação/decodificação simultânea, até um total de 3840 x 2160 pixels a 60 quadros por segundo (fps). Os dois conectores de 240 pinos da SOM proporcionam pronto acesso a blocos funcionais e periféricos através de entradas/saídas (E/S) configuráveis pelo usuário.

Esta combinação de núcleos de processador, memória e lógica programável proporciona um nível único de flexibilidade e desempenho que supera os principais inconvenientes das GPUs usadas para execução de alta velocidade de algoritmos ML. Ao contrário do fluxo fixo de dados em GPUs, os desenvolvedores podem reconfigurar o datapath K26 SOM para otimizar a produção e reduzir a latência. Além disso, a arquitetura da K26 SOM é particularmente bem adaptada ao tipo de redes esparsas no coração de um número crescente de aplicações ML.

A programabilidade da K26 SOM também trata de gargalos de memória que aumentam o consumo de energia e limitam o desempenho em aplicações de memória intensiva, como o ML construído com arquiteturas convencionais usando GPUs, processadores multicondutores ou até mesmo SoCs avançados. Em qualquer aplicação projetada com estes dispositivos convencionais, a memória externa normalmente é responsável por cerca de 40% do consumo de energia do sistema, enquanto os núcleos do processador e a memória interna normalmente são responsáveis por cerca de 30% cada um. Em contraste, os desenvolvedores podem tirar proveito dos blocos de memória interna da K26 SOM e da reconfigurabilidade para implementar projetos que requerem pouco ou nenhum acesso à memória externa. O resultado é maior desempenho e menor consumo de energia do que o possível com dispositivos convencionais (Figura 2).

Diagrama de Xilinx Kria usa um eficiente pipeline de visão (clique para ampliar)Figura 2: Enquanto os sistemas baseados em CPUs embutidas e SoCs típicos requerem múltiplos acessos de memória que consomem energia para executar suas aplicações, os sistemas baseados no Xilinx Kria utilizam uma tubulação de visão eficiente que pode ser projetada para evitar qualquer acesso DDR. (Fonte da imagem: Xilinx)

Juntamente com seu alto desempenho, baixo consumo de energia e extensa reconfigurabilidade, a K26 SOM ajuda a garantir segurança em projetos de câmeras inteligentes para aplicações sensíveis. Junto com o dispositivo de segurança TPM embutido da SOM, o MPSoC integra uma unidade de segurança de configuração dedicada (CSU) que suporta inicialização segura, monitoramento de violação, armazenamento seguro de chaves e aceleração de hardware criptográfico. Juntos, a CSU, a memória interna on-chip (OCM) e o armazenamento seguro de chaves fornecem a base segura para garantir uma raiz de confiança de hardware para a implementação de boot seguro e uma plataforma confiável para a execução de aplicativos.

As amplas capacidades disponíveis com a K26 SOM oferecem uma base poderosa para a implementação de aplicações de ponta exigentes. Entretanto, cada aplicação traz suas próprias exigências de características e funcionalidades associadas a um conjunto específico de periféricos e outros componentes. Para simplificar a implementação de soluções específicas de aplicação, a K26 SOM foi projetada para ser conectada a um cartão portador que hospeda os periféricos adicionais. Xilinx demonstra esta abordagem com seu Kria KV260 Vision AI Starter Kit, baseado em Kria K26.

O kit básico simplifica o desenvolvimento da aplicação de visão

Compreendendo uma SOM K26 conectada a uma placa de suporte centrada na visão, o Xilinx KV260 Vision AI Starter Kit fornece uma plataforma pronta para uso especificamente projetada para avaliação imediata e desenvolvimento rápido de aplicações de visão inteligente. Enquanto a K26 SOM fornece as capacidades de processamento necessárias, a placa de suporte do kit de partida fornece gerenciamento de energia, incluindo a ativação e o seqüenciamento de rearme, bem como opções de interface e conectores para câmera, visor e placa microSD (Figura 3).

Diagrama do Xilinx KV260 Vision AI Starter KitFigura 3: O Xilinx KV260 Vision AI Starter Kit fornece uma solução completa de visão inteligente usando o K26 SOM conectado a uma placa de suporte centrada na visão. (Fonte da imagem: Xilinx)

Junto com suas múltiplas interfaces, a placa portadora oferece suporte a várias câmeras através de seu conector Raspberry Pi e um par de conectores de sistema de acesso de imagem (IAS), um dos quais se conecta a um processador de sensor de imagem (ISP) AP1302 onsemi 13 megapixel (MP) dedicado que é capaz de lidar com todas as funções de processamento de imagem.

Para acelerar ainda mais a implementação de aplicações baseadas em visão, Xilinx suporta esta plataforma de hardware de visão pré-definida com uma série de aplicações de visão acelerada pré-construídas, juntamente com um conjunto abrangente de ferramentas de software e bibliotecas para desenvolvimento personalizado.

Aplicações aceleradas fornecem soluções imediatas

Para avaliação imediata e rápido desenvolvimento de aplicações de visão acelerada, a Xilinx oferece várias aplicações pré-construídas que demonstram a execução de vários casos de uso popular, incluindo detecção de face de câmera inteligente usando sua lógica programável, identificação e rastreamento de pedestres, detecção de defeitos e detecção de palavras-chave emparelhadas usando o sistema de processamento do MPSoC. Disponível na Xilinx Kria App Store, cada aplicação fornece uma solução completa para seu caso de uso específico com ferramentas e recursos de acompanhamento. Por exemplo, a aplicação de detecção de face da câmera inteligente usa o sensor de imagem AR1335 e o AP1302 ISP embutido na placa KV260 para adquirir imagens, e a saída HDMI ou DisplayPort (DP) da placa para renderizar o resultado. Para o processamento da detecção facial, a aplicação configura o K26 SOM para fornecer um acelerador de linha de visão e um motor de inferência de aprendizagem de máquina pré-construída para a detecção facial, contagem de pessoas e outras aplicações de câmera inteligente (Figura 4).

Imagem de aplicações aceleradas pré-construídas na App Store Xilinx Kria (clique para ampliar)Figura 4: Disponível para download na Xilinx Kria App Store, aplicações aceleradas pré-construídas estão prontas para funcionar imediatamente no KV260 starter kit, fornecendo soluções completas para modelos de uso da visão, tais como detecção facial. (Fonte da imagem: Xilinx)

Ao fornecer implementação e suporte completos, as aplicações aceleradas pré-construídas do Xilinx App Store permitem que os desenvolvedores tenham projetos prontos para funcionar em menos de uma hora, mesmo que lhes falte a experiência FPGA. Ao avaliar a aplicação, eles podem usar a pilha de software fornecida para modificar a funcionalidade para explorar soluções alternativas. Para um desenvolvimento personalizado mais amplo, a Xilinx fornece um conjunto abrangente de ferramentas de desenvolvimento e bibliotecas.

Ambiente e ferramentas de desenvolvimento AI aceleram o desenvolvimento personalizado

Para o desenvolvimento personalizado de aplicações baseadas em IA, o ambiente de desenvolvimento de IA Vitis da Xilinx fornece ferramentas otimizadas, bibliotecas e modelos pré-treinados que podem servir como a base para modelos personalizados mais especializados. Para o ambiente operacional em tempo de execução, o kit de desenvolvimento de software PetaLinux (SDK) PetaLinux baseado em Yocto fornece o conjunto completo de capacidades necessárias para construir, desenvolver, testar e implantar sistemas Linux embarcados.

Projetado tanto para especialistas quanto para desenvolvedores sem experiência em FPGA, o ambiente Vitis AI abstrai os detalhes do hardware de silício subjacente, permitindo que os desenvolvedores se concentrem na construção de modelos ML mais eficazes. Na verdade, o ambiente Vitis AI está integrado com a pilha de compiladores de aprendizado profundo Apache Tensor Virtual Machine (TVM) de código aberto, permitindo aos desenvolvedores compilar seus modelos de diferentes estruturas para um processador, GPU ou acelerador. Usando Vitis AI com TVM, os desenvolvedores podem melhorar seus projetos existentes com capacidades de visão acelerada, descarregando cargas de trabalho de visão intensiva em computação como modelos de aprendizagem profunda para a SOM Kria. Para ajudar os desenvolvedores a otimizar ainda mais seus modelos de aprendizagem profunda, a ferramenta AI Optimization da Xilinx pode podar redes neurais para reduzir a complexidade em termos de número de operações de giga por segundo (Gops), aumentar os quadros por segundo (fps), e reduzir modelos sobre-parametrizados, comprimindo-os em até 50x com pouco impacto na precisão em termos de precisão média (mAP) (Figura 5).

Gráfico do estudo de caso da Xilinx Research (clique para ampliar)Figura 5: Um estudo de caso de pesquisa Xilinx mostrou como algumas iterações de poda utilizando a ferramenta Xilinx AI Optimization podem reduzir rapidamente a complexidade da rede neural em termos de número de Gops, aumentando ao mesmo tempo os quadros por segundo, tudo isso com pouco impacto na precisão. (Fonte da imagem: Xilinx)

Para implementação de aplicações de visão personalizadas, as bibliotecas Vitis Vision de código aberto da Xilinx são otimizadas para alto desempenho e baixa utilização de recursos nas plataformas Xilinx, fornecendo uma interface familiar baseada no OpenCV. Para análise, a estrutura de aplicação do Xilinx Video Analytics SDK ajuda os desenvolvedores a construir oleodutos de análise de visão e vídeo mais eficazes sem requerer profundo conhecimento da FPGA. Baseado na amplamente adotada estrutura de código aberto GStreamer, o SDK Video Analytics permite aos desenvolvedores criar rapidamente kernels de aceleração personalizados como plug-ins GStreamer para integração na estrutura do SDK.

Usando estas ferramentas, um desenvolvedor embutido típico pode facilmente montar dutos de aceleração personalizados com ou sem núcleos de aceleração personalizados.

Conclusão

Os algoritmos ML de computação intensiva permitiram o uso da tecnologia de visão inteligente em múltiplas aplicações em execução na borda, mas os desenvolvedores enfrentam múltiplos desafios para atender aos requisitos de alto desempenho, baixa potência e adaptabilidade dos sistemas de visão baseados na borda. A solução Kria K26 SOM da Xilinx fornece a base de hardware para acelerar algoritmos avançados sem exceder os orçamentos de energia. Usando um kit inicial baseado no Kria K26 com aplicações pré-construídas, os desenvolvedores podem começar imediatamente a avaliar aplicações de visão inteligente e usar um ambiente de desenvolvimento abrangente para criar soluções personalizadas de dispositivos de ponta.

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 Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk has more than 20 years of experience writing for and about the electronics industry on a wide range of topics including hardware, software, systems, and applications including the IoT. He received his Ph.D. in neuroscience on neuronal networks and worked in the aerospace industry on massively distributed secure systems and algorithm acceleration methods. Currently, when he's not writing articles on technology and engineering, he's working on applications of deep learning to recognition and recommendation systems.

About this publisher

DigiKey's North American Editors