Aprendendo ONNX para negociação - página 9

 

Implantação de IoT em tempo de execução ONNX no Raspberry Pi



Implantação de IoT em tempo de execução ONNX no Raspberry Pi

Neste vídeo intitulado "ONNX Runtime IoT Deployment on Raspberry Pi", o apresentador demonstra como implantar um ONNX Runtime para um modelo de visão computacional em um Raspberry Pi usando um modelo Mobilenet otimizado para o dispositivo. O vídeo aborda o processo de conexão ao Raspberry Pi usando o visualizador VNC, configurando-o e executando um teste de câmera usando OpenCV e Python. O apresentador captura uma imagem, executa a inferência e imprime as cinco principais classes previstas, que identificam corretamente a caneta-tinteiro na imagem. No geral, o vídeo fornece um guia útil para implantar o ONNX Runtime em um Raspberry Pi para aplicativos de visão computacional.

 

Como instalar o ONNX Runtime no Raspberry Pi



Como instalar o ONNX Runtime no Raspberry Pi

O vídeo fornece um guia detalhado sobre como instalar o ONNX Runtime no Raspberry Pi. Depois de baixar e instalar o Raspbian Stretch no Raspberry Pi, o usuário precisa instalar o pacote estático do usuário Docker e QMU, criar um diretório de compilação e executar um comando para obter o pacote ONNX Runtime wheel, que pode ser instalado via pip. O vídeo também explica como testar o ONNX Runtime usando uma rede neural profunda treinada no conjunto de dados MNIST e como calcular o tempo necessário para executar uma sessão de inferência em uma única imagem. O palestrante observa que o processo pode ser demorado e complicado, mas vale a pena pela capacidade de implantar e testar redes neurais em dispositivos de ponta.

  • 00:00:00 O sistema operacional foi lançado pela Raspberry Pi e você pode baixar o Raspberry Pi OS (anteriormente Raspbian) Stretch aqui. Depois de baixar e instalar o Docker em seu Raspberry Pi, o próximo passo é acessar o repositório ONNX Runtime Github e encontrar o Dockerfile para a plataforma ARM32v7. Existem diferentes Dockerfiles disponíveis para diferentes plataformas, mas ARM32v7 é o que você precisa para o Raspberry Pi. Depois de encontrar o Dockerfile correto, você pode seguir as instruções fornecidas para instalar o ONNX Runtime em seu Raspberry Pi. Isso pode ser um processo um pouco demorado e complicado, mas vale a pena pela capacidade de implantar e testar redes neurais em dispositivos de ponta.

  • 00:05:00 Nesta seção, o palestrante explica como instalar o ONNX Runtime no Raspberry Pi. Primeiro, o usuário precisa baixar o arquivo Raspbian Stretch e o gerador de imagens Raspberry Pi para tornar o cartão SD inicializável. Uma vez instalado o Raspbian Stretch no Raspberry Pi, o usuário precisa instalar o Docker e o pacote estático do usuário QMU. Depois de criar um diretório de compilação, o usuário precisa salvar o Dockerfile atualizado no diretório de compilação e executar o comando para obter o pacote ONNX Runtime wheel. Depois que o arquivo wheel é instalado com pip e testado, ele pode ser importado e o ONNX pode ser usado no Raspberry Pi com Python 3 versão 3.8.

  • 00:10:00 Nesta seção, o palestrante explica como usar o ONNX Runtime no Raspberry Pi para testar um modelo que foi treinado em um determinado conjunto de dados. O palestrante já treinou uma rede neural profunda que pode fazer a classificação de dígitos usando o conjunto de dados MNIST e forneceu um link para o código e o modelo. Após importar as bibliotecas necessárias, o palestrante cria um script que executa uma sessão de inferência usando o ONNX Runtime. O alto-falante encontra uma falha de segmentação e, após pesquisar, aprende sobre os três níveis de otimizações de gráficos que o ONNX Runtime pode fazer e os desativa, executando com sucesso o script e obtendo a saída prevista.

  • 00:15:00 Nesta seção, o palestrante explica como calculou o tempo que seu Raspberry Pi leva para executar uma sessão de inferência em uma única imagem. Eles introduzem um script separado usando a biblioteca de tempo para calcular o tempo necessário para gerar a saída e executar o modelo dentro do tempo de execução do ONNX, levando cerca de 0,06 segundos, o que o palestrante observa ser realmente bom para um modelo simples e tamanho de imagem pequeno. Eles incentivam os espectadores a instalar o tempo de execução ONNX em seu Raspberry Pi e entrar em contato para qualquer dúvida ou preocupação.
 

Classificação de imagem trabalhando em Raspberry Pi com vários modelos MobileNet ONNX


Classificação de imagem trabalhando em Raspberry Pi com vários modelos MobileNet ONNX

Execute a classificação de imagens no Raspberry Pi 4 no ONNX Runtime usando 3 padrões de modelos MobileNet V1 ONNX.

  1. Profundidade 1,00 & 224x224
  2. Profundidade 0,50 & 160x160
  3. Profundidade 0,25 & 128x128

A classificação é feita em 7ms, dependendo do modelo utilizado.

 

SSDLite Mobilenet V2 no ONNX Runtime funcionando no Raspberry Pi 4


SSDLite Mobilenet V2 no ONNX Runtime funcionando no Raspberry Pi 4

SSDLite Mobilenet V2 em ONNX Runtime funcionando em Raspberry Pi 4 sem aceleração de hardware.

 

SSDLite Mobilenet V1 0,75 de profundidade no ONNX Runtime funcionando no Raspberry Pi 4



SSDLite Mobilenet V1 0,75 de profundidade no ONNX Runtime funcionando no Raspberry Pi 4

SSDLite Mobilenet V1 0,75 de profundidade em ONNX Runtime trabalhando em Raspberry Pi 4 sem aceleração de hardware.

 

Tiny-YOLOv3 no ONNX Runtime trabalhando no Raspberry Pi 4



Tiny-YOLOv3 no ONNX Runtime trabalhando no Raspberry Pi 4

Tiny-YOLOv3 no ONNX Runtime funcionando no Raspberry Pi 4 sem aceleração de hardware.

 

Raspberry Pi 4 Classificação e Detecção de Objetos com ONNX Runtime Otimizado



Raspberry Pi 4 Classificação e Detecção de Objetos com ONNX Runtime Otimizado

Execute a classificação de imagens no Raspberry Pi 4 no ONNX Runtime:

  1. Classificação usando MobileNet V3;
  2. Detecção usando SSDLite MobileNet V2.
 

Detecção de objetos Raspberry Pi 4 com tempo de execução ONNX otimizado (final de 2020)



Detecção de objetos Raspberry Pi 4 com tempo de execução ONNX otimizado (final de 2020)

Hardware: Raspberry Pi 4B
SO: Raspberry Pi OS (32 bits)
Software: ONNX Runtime 1.4.0 com provedor de execução personalizado (acelerado por CPU)
Modelos:

 

Tiny-YOLOv3 no ONNX Runtime trabalhando no Raspberry Pi 4


Tiny-YOLOv3 no ONNX Runtime trabalhando no Raspberry Pi 4

Tiny-YOLOv3 no ONNX Runtime funcionando no Raspberry Pi 4 sem aceleração de hardware.

 

Detecção autônoma de objetos de direção no Raspberry Pi 4!



Detecção autônoma de objetos de direção no Raspberry Pi 4!

Neste tutorial, o instrutor demonstra as etapas necessárias para configurar o Raspberry Pi 4 para detecção de objetos com uma rede neural treinada de direção autônoma. Isso inclui clonar o repositório, configurar um ambiente virtual, instalar dependências como GPIO, OpenCV e TensorFlow e configurar o módulo de câmera Raspberry Pi. Em seguida, o instrutor demonstra como conectar um LED e um botão ao Pi e executar um script Python para capturar imagens com detecção de objetos. Por fim, o usuário pode fazer ajustes no arquivo rc em lote para executar o script na inicialização e gravar imagens com as imagens salvas no caminho de saída.

  • 00:00:00 Nesta seção, o instrutor de vídeo percorre as etapas de configuração do software para realizar a detecção de objetos com uma rede neural treinada em direção autônoma no Raspberry Pi 4. O instrutor começa garantindo que o Raspberry Pi esteja atualizado, clonando o repositório fornecido na descrição do vídeo e instalando um ambiente virtual para manter as dependências deste projeto separadas de outros projetos no sistema. O instrutor então ativa o ambiente virtual antes de instalar dependências como um pacote gpio python, OpenCV e TensorFlow, que são tudo o que é necessário para o projeto, executando um script bash. Por fim, o instrutor mostra como configurar o módulo de câmera Raspberry Pi inserindo as definições de configuração no terminal e conectando-o ao Raspberry Pi 4.

  • 00:05:00 Nesta seção, o apresentador demonstra como configurar o módulo da câmera, o LED e o botão de pressão no Raspberry Pi para detecção autônoma de objetos de direção. O módulo da câmera é simplesmente conectado ao Pi e fixado no lugar. Um LED é conectado ao Pi com um resistor de 470 ohm para fornecer feedback visual enquanto o programa é executado. Da mesma forma, um botão de pressão é adicionado à protoboard para permitir iniciar e parar o processamento de imagens. O apresentador então mostra o lado do software da configuração executando um script Python com argumentos para a rede neural do monitor e o caminho de saída, que salva as imagens processadas em um local especificado.

  • 00:10:00 Nesta seção, vemos o caminho de saída e onde as imagens capturadas pelo Raspberry Pi com detecção de objetos são salvas. O usuário passa a fazer ajustes no arquivo batch rc para que o script python seja executado na inicialização, sem a necessidade de teclado ou mouse. A etapa final é colocar o Raspberry Pi no carro, conectá-lo a uma tomada CA e começar a gravar imagens com as imagens processadas salvas no caminho de saída especificado. O usuário sugere que as imagens capturadas possam ser transformadas em gif ou vídeo.
Razão: