Você já imaginou o que poderia fazer se pudesse incorporar facilmente IA baseada em visão em qualquer projeto de hardware embarcado? Você pode desenvolver uma câmera de segurança doméstica inteligente que reconheça seu animal de estimação e permita que ele se mova sem disparar alertas. Você pode adicionar a IA de visão ao seu projeto de jardinagem , avisando quando as flores precisam ser regadas. Ou talvez um carro com controle remoto que o segue, gravando seus truques com a bicicleta enquanto evita obstáculos.
Quando os desenvolvedores descobriram como usar os enormes recursos de processamento paralelo das GPUs para algo diferente de maximizar o FPS no Call of Duty, isso abriu um mundo totalmente novo para aplicativos de visão computacional. Mas prender uma GPU especializada a uma câmera não é exatamente uma solução escalonável e, embora sistemas como este estejam disponíveis comercialmente, esse nível de sofisticação de hardware e integração de IA pode parecer assustador se você nunca trabalhou nisso antes.
Em um esforço para capacitar os desenvolvedores, a Xilinx criou um SOM (sistema em módulo) acessível e fácil de implementar . Em vez de um processo de aprendizagem e desenvolvimento de meses, os desenvolvedores podem usar o kit inicial Kria KV260 Vision AI para criar um protótipo de seu sistema de visão alimentado por IA em poucas horas.
Se este projeto despertar seu interesse, continue lendo. Falaremos sobre os desafios tradicionais de adicionar visão computacional a um projeto, como a programação FPGA e a falta de flexibilidade na maioria dos hardwares, depois discutiremos como o Kria SOM torna a incorporação da visão computacional possível para fabricantes de todos os tipos.
Tecnologia complexa, mercado complexo
A disponibilidade de grandes quantidades de dados, particularmente dados de visão, levou a um boom nos aplicativos para processamento de IA de visão. Mas, à medida que essa tecnologia se tornou mais complexa, o mesmo aconteceu com o mercado de soluções. O mercado se tornou mais diverso e fragmentado à medida que as empresas tentam criar plataformas e abordagens personalizadas - mas nem sempre escaláveis. Para engenheiros curiosos que procuram fazer experiências com hardware de visão AI, pode ser desanimador descobrir por onde começar.
Há outro desafio para os desenvolvedores de IA, e este é físico. O Vision AI processa uma grande quantidade de dados no hardware. Você poderia transmitir este vídeo para processamento em um data center, mas então você estaria à mercê da latência da rede. Muitos aplicativos baseados em visão precisam de respostas em escala de milissegundos, então sua computação deve acontecer no dispositivo - a borda, como é frequentemente chamada.
Com hardware de ponta, você deve se preocupar com os requisitos de energia e as considerações de design térmico. Os novos modelos de IA de alta precisão nem sempre são construídos com as restrições de hardware de ponta em mente. Os desenvolvedores que buscam um dispositivo implantável, seja único ou em escala, devem descobrir como construir dispositivos habilitados para visão AI em um fator de forma razoável que pode se adaptar quando novas técnicas e novos requisitos de projeto surgem.
Tradicionalmente, a Xilinx fornece soluções de hardware para aplicações de visão AI em nível de chip. Isso ainda deixa um grande desafio: desenvolver o restante da plataforma de hardware e a infraestrutura de software (pacote de suporte de placa) para essa plataforma. Se você é um engenheiro de software apenas procurando experimentar, criar um protótipo otimizado e econômico, poderoso o suficiente para acelerar uma ampla gama de visão e pipelines de IA e adequado para trabalhar além de seus protótipos, pode estar fora de seu conjunto de habilidades.
Além disso, a IA é um domínio que muda rapidamente, com a implicação de que aceleradores de inferência como SoCs (sistema em um chip) e GPUs podem estar desatualizados no momento em que você estiver pronto para a produção. A tecnologia Xilinx Adaptive SoC, incorporada ao Kria SOM, potencializa a tecnologia FPGA para permitir a personalização futura do acelerador de rede neural subjacente e pipeline de visão. Essa flexibilidade garante que a plataforma escolhida permaneça relevante conforme as necessidades de tecnologia mudam: preparando seu projeto para o futuro.
Por outro lado, a programação FPGA tem sido historicamente uma habilidade difícil e especializada. Você primeiro precisa saber como projetar circuitos digitais - você está essencialmente criando lógica de processador especializada para executar algoritmos específicos - e entender o que registradores, somadores, multiplexadores e tabelas de pesquisa fazem. Então você tem que criar essa lógica em uma linguagem de descrição de hardware, como Verilog ou VHDL , ambos os quais podem ser parecidos com C ou Pascal (respectivamente), mas requerem uma mentalidade diferente para codificar bem. Além disso, você precisa aprender a usar as ferramentas de desenvolvimento FPGA.
Além disso, a arquitetura da rede neural pode ter um efeito significativo no desempenho geral, e isso pode ser muito importante para projetos de hardware que consomem muita energia. Enquanto benchmarks de inferência para redes de classificação simples estão disponíveis para virtualmente qualquer plataforma de hardware de inferência, benchmarks para redes complexas que resolvem problemas do mundo real podem não estar prontamente disponíveis, então você pode entrar em um projeto de hardware sem saber o desempenho de sua rede escolhida. Em minha experiência, muitas empresas descobrem no meio do caminho de seu projeto que a plataforma escolhida não atende aos requisitos de desempenho e, por isso, precisam voltar à prancheta. O deslocamento de recursos de marketing agrava ainda mais esse problema. É de se admirar que 87% dos projetos de IA nunca chegam à produção?
Por exemplo, considere que muitos aplicativos de visão usam redes neurais convolucionais (CNN). Na convolução clássica, cada canal de entrada tem um impacto matemático em cada canal de saída. Se tivermos 100 canais de entrada e 100 canais de saída, haverá 100 × 100 caminhos virtuais. Em 2017, uma equipe de pesquisadores criou CNNs MobileNet que eram computacionalmente eficientes, sem sacrificar a precisão. Sua nova técnica usava convolução profunda para substituir a convolução clássica. No entanto, com a convolução em profundidade, cada canal de entrada afeta apenas um canal de saída, com o resultado de que economizamos muitos cálculos.
Mas nenhuma solução vem sem algumas compensações. Redes computacionalmente eficientes não são necessariamente amigáveis ao hardware. Como resultado, as GPUs e outras arquiteturas de acelerador de inferência não conseguiam realizar totalmente os ganhos teóricos de desempenho da convolução em profundidade.
O problema era que o dispositivo ainda estava processando a mesma quantidade de dados. Há menos cálculos, mas cada um está lidando com mais dados, então a largura de banda da memória se torna o gargalo do sistema. Se não for arquitetado com convolução profunda em mente, o acelerador de rede neural torna-se limitado pela memória e, portanto, atinge níveis mais baixos de eficiência, pois muitos elementos da matriz do acelerador ficam como servidores escuros em um data center, consumindo energia e espaço, sem realizar nenhum trabalho útil . O resultado foi que um chip projetado antes dessa técnica ser conhecida não produziria os ganhos de desempenho esperados.
Mas e se a sua plataforma de hardware escolhida aproveitasse arquiteturas baseadas em FPGA que pudessem ser reconfiguradas em campo para garantir um desempenho ideal conforme novas arquiteturas de rede ou técnicas, como convolução em profundidade, se tornassem disponíveis? Essa é a vantagem do Xilinx Adaptive SoC no Kria KV26 SOM.
Abordamos como o sistema funciona e por que ele é adaptável. Ainda assim, se você está apenas começando um projeto de hardware de visão AI, resolver a equação multidimensional de como começar pode assustá-lo. É aqui que entram os SOMs da Kria e o kit inicial KV260 Vision AI.
Uma maneira mais simples de começar
Na Xilinx, percebemos que poderíamos dar aos engenheiros mais retorno por seu investimento se nos concentrássemos em casos de uso de IA de visão específicos e fornecêssemos uma plataforma pronta para produção que permitiria aos desenvolvedores chegar ao mercado rapidamente. Do ponto de vista do hardware, a solução é simples - fornecer os principais componentes como uma solução de placa única: System-on-module (SOM). Os SOMs têm a vantagem de incorporar o processador, a memória, os principais periféricos e muito mais em uma única placa, garantindo que você tenha os elementos básicos necessários para atingir a IA de visão.
Pense no SOM como um console de videogame: uma peça de hardware especializada projetada para um propósito muito específico. No caso do Kria KV26, esse propósito é a visão AI. Adaptando o hardware a esta aplicação específica, otimizamos o tamanho e o custo do hardware. Além disso, está pronto para a produção, disponível na Xilinx em ofertas de nível industrial e comercial.
Agora que você tem hardware, há alguns detalhes para cuidar: configurar o Xilinx Adaptive SoC no Kria SOM e compilar seu modelo de IA para rodar na plataforma. Queríamos que os desenvolvedores pudessem tirar proveito do poder dos SoCs Adaptáveis sem ter que desenvolver o pipeline de visão subjacente e o acelerador de rede neural. Ainda assim, para desenvolvedores que precisam de algo personalizado, a Xilinx tem parceiros que projetarão a lógica certa para o projeto, ou você pode aproveitar as ferramentas Vitis para integrar suas próprias personalizações sem se tornar um especialista em FPGA.
A Xilinx ofereceu historicamente o PetaLinux, um tipo de Linux baseado em Yocto onde não existe um binário de distribuição único. Os usuários baixam as fontes, configuram e criam antes de começarem a desenvolver aplicativos. Os desenvolvedores de hardcore embutidos geralmente amam esse estilo - eles conhecem Linux e querem controle total do que está em seu kernel.
Mas para aqueles desenvolvedores que desejam começar a trabalhar imediatamente sem ter que construir todo o seu sistema operacional, estamos apresentando o Ubuntu para Kria SOMs, com a publicação de imagens do Ubuntu otimizadas diretamente para Xilinx pela Canonical. Ubuntu é a distribuição de código aberto mais popular do Linux e geralmente é familiar para os desenvolvedores. Você pode baixar a imagem binária do Ubuntu para Kria, inicializar e começar a desenvolver. Com o Ubuntu, você pode escolher os pacotes que lhe são familiares e instalá-los no Kria. A opção de aproveitar os pacotes do Ubuntu com Linux acelera o desenvolvimento de plataformas de visão AI.
A implementação de produção final pode aproveitar receitas de bitbake para compilar uma imagem Linux de produção que inclui as bibliotecas de que você precisa para implantação. Como alternativa, você pode obter uma licença de produção do Ubuntu da Canonical, mantendo assim a capacidade de instalar pacotes dinamicamente. Quer você seja um desenvolvedor Yocto hard-core ou um desenvolvedor de software puro que ama o Ubuntu, você pode começar com o Kria e seguir qualquer um dos caminhos para a produção.
Além de tornar mais fácil começar a usar o Linux embarcado, queríamos economizar tempo dos desenvolvedores quando eles não precisassem reinventar a roda. Para a maioria dos casos de uso de visão AI, você não está resolvendo problemas únicos. Nós e nossos parceiros criamos aplicativos acelerados plug-and-play. Os aplicativos acelerados Xilinx são de código aberto e permitem as topologias de implantação de IA mais comuns (como um dispositivo de IA de múltiplos fluxos ou Smart Camera). Além disso, parceiros especialistas em domínio, como Aupera Technologies e Uncanny Vision, desenvolveram aplicativos adicionais que você pode usar por uma taxa. Todos os aplicativos acelerados estão disponíveis na Xilinx App Store, a primeira loja de aplicativos do setor para IA de visão.
Assim como com nossas opções de kernel Linux, oferecemos aos nossos usuários quatro níveis de personalização ao aproveitar os aplicativos acelerados Xilinx:
Projete exclusivamente no software de aplicativo. O próprio aplicativo faz a maior parte do trabalho pesado, processando dados de vídeo e produzindo dados de visão.
Troque o modelo de IA padrão por um modelo de IA treinado pelo cliente com Vitis AI. Você obtém mais controle sobre o modelo, mas ainda evita o design FPGA.
Altere o design do FPGA, mas em uma linguagem de software familiar como Python, C, C ++ ou OpenCL usando a ferramenta Vitis da Xilinx. Vitis otimizou bibliotecas como a biblioteca xfOpenCV, uma das bibliotecas mais populares e antigas para implementar funções de visão, como conversão de espaço de cores, rotação e filtragem.
Personalize totalmente o FPGA usando a ferramenta Xilinx Vivado. Obviamente, isso não é necessário, mas qualquer pessoa com esse conhecimento pode aproveitar ao máximo a flexibilidade do SoC adaptável.
Com uma abordagem modular e flexível, qualquer desenvolvedor de software pode começar a brincar com projetos de hardware de IA de visão e obter bons resultados. Fizemos um teste usando o aplicativo de placas de licença Uncanny Vision em execução no Kria SOM e em um concorrente de nível comercial. Nossa placa funcionou com 1,5 vez o desempenho, consumindo 33% menos energia por fluxo.
De todos os avanços em IA de visão computacional nos últimos anos, pensamos que o mais significativo é o aumento da acessibilidade do hardware de IA de visão. Democratizar essas soluções tornará mais fácil para qualquer desenvolvedor criar algo deslumbrante. Pronto para começar a criar aplicativos de IA de visão com o Kria? Aqui estão alguns links que o colocarão no caminho certo para seu primeiro desenvolvimento.
Próximos passos:
Confira a página do produto Xilinx Kria
Baixe a imagem do Ubuntu para Kria KV260 hoje !
Comece a usar o kit inicial Kria KV260 Vision AI