Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU

A detecção automatizada de defeitos usando visão computacional ajuda a melhorar a qualidade e reduzir o custo da inspeção. A detecção de defeitos envolve identificar a presença de um defeito, classificar os tipos de defeitos e identificar onde os defeitos estão localizados. Muitos processos de fabricação exigem detecção em baixa latência, com recursos de computação limitados e com conectividade limitada.

Amazon Lookout para Visão é um serviço de aprendizado de máquina (ML) que ajuda a detectar defeitos de produtos usando visão computacional para automatizar o processo de inspeção de qualidade em suas linhas de fabricação, sem a necessidade de experiência em ML. O Lookout for Vision agora inclui a capacidade de fornecer a localização e o tipo de anomalias usando modelos de ML de segmentação semântica. Esses modelos de ML personalizados podem ser implantados na Nuvem AWS usando APIs de nuvem ou para hardware de borda personalizado usando AWS IoT Greengrass. O Lookout for Vision agora suporta inferência em uma plataforma de computação x86 executando Linux com ou sem um acelerador de GPU NVIDIA e em qualquer dispositivo de borda baseado em NVIDIA Jetson. Essa flexibilidade permite a detecção de defeitos em hardware novo ou existente.

Neste post, mostramos como detectar peças defeituosas usando os modelos Lookout for Vision ML executados em um dispositivo de borda, que simulamos usando um Amazon Elastic Compute Nuvem (Amazon EC2). Examinamos o treinamento dos novos modelos de segmentação semântica, exportando-os como componentes do AWS IoT Greengrass e executando a inferência no modo somente CPU com código de exemplo do Python.

Visão geral da solução

Neste post, usamos um conjunto de imagens de alienígenas de brinquedo composto de imagens normais e defeituosas, como membros ausentes, olhos ou outras partes. Treinamos um modelo Lookout for Vision na nuvem para identificar alienígenas de brinquedo defeituosos. Compilamos o modelo para uma CPU X86 de destino, empacotamos o modelo Lookout for Vision treinado como um componente do AWS IoT Greengrass e implantamos o modelo em uma instância do EC2 sem uma GPU usando o console do AWS IoT Greengrass. Por fim, demonstramos um aplicativo de amostra baseado em Python em execução na instância EC2 (C5a.2xl) que origina as imagens de alienígenas de brinquedo do sistema de arquivos do dispositivo de borda, executa a inferência no modelo Lookout for Vision usando o gRPC interface e envia os dados de inferência para um MQTT tópico na Nuvem AWS. Os scripts geram uma imagem que inclui a cor e a localização dos defeitos na imagem anômala.

O diagrama a seguir ilustra a arquitetura da solução. É importante observar que para cada tipo de defeito que você deseja detectar na localização, você deve ter 10 imagens de anomalia marcadas no treinamento e 10 nos dados de teste, para um total de 20 imagens desse tipo. Para este post, procuramos membros ausentes no brinquedo.

A solução possui o seguinte fluxo de trabalho:

  1. Carregar um conjunto de dados de treinamento e um conjunto de dados de teste para Serviço de armazenamento simples da Amazon (Amazônia S3).
  2. Use a nova IU Lookout for Vision para adicionar um tipo de anomalia e marcar onde essas anomalias estão nas imagens de treinamento e teste.
  3. Treine um modelo Lookout for Vision na nuvem.
  4. Compile o modelo na arquitetura de destino (X86) e implante o modelo na instância do EC2 (C5a.2xl) usando o console do AWS IoT Greengrass.
  5. Imagens de origem do disco local.
  6. Execute inferências no modelo implantado por meio da interface gRPC e recupere uma imagem de máscaras de anomalia sobrepostas na imagem original.
  7. Publique os resultados da inferência em um cliente MQTT em execução na instância de borda.
  8. Receba a mensagem MQTT em um tópico em Núcleo da AWS IoT na Nuvem AWS para monitoramento e visualização adicionais.

As etapas 5, 6 e 7 são coordenadas com o aplicativo Python de amostra.

Pré-requisitos

Antes de começar, conclua os pré-requisitos a seguir. Para esta postagem, usamos uma instância EC2 c5.2xl e instalamos o AWS IoT Greengrass V2 nela para experimentar os novos recursos. Se você quiser rodar em um NVIDIA Jetson, siga os passos em nosso post anterior, O Amazon Lookout for Vision agora oferece suporte à inspeção visual de defeitos do produto na borda.

  1. Crie uma conta AWS.
  2. Inicie uma instância do EC2 na qual podemos instalar o AWS IoT Greengrass e use o novo modo de inferência somente CPU. Você também pode usar uma máquina Intel X86 de 64 bits com 8 gigabytes de ram ou mais (usamos um c5a.2xl, mas qualquer coisa com superior a 8 gigabytes na plataforma x86 deve funcionar) executando o Ubuntu 20.04.
  3. Instale o AWS IoT Greengrass V2:
    git clone https://github.com/aws-samples/amazon-lookout-for-vision.git
    cd edge
    # be sure to edit the installation script to match your region, also adjust any device names and groups!
    vi install_greengrass.sh

  4. Instale o sistema necessário e as dependências do Python 3 (Ubuntu 20.04):
    # install Ubuntu dependencies on the EC2 instance
    ./install-ec2-ubuntu-deps.sh
    pip3 install -r requirements.txt
    # Replace ENDPOINT variable in sample-client-file-mqtt.py with the value on the AWS console AWS IoT->Things->l4JetsonXavierNX->Interact.  
    # Under HTTPS. It will be of type <name>-ats.iot.<region>.amazon.com 

Faça upload do conjunto de dados e treine o modelo

Usamos o conjunto de dados de alienígenas de brinquedo para demonstrar a solução. O conjunto de dados contém imagens normais e anômalas. Aqui estão algumas imagens de amostra do conjunto de dados.

A imagem a seguir mostra um alienígena de brinquedo normal.

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

A imagem a seguir mostra um alienígena de brinquedo sem uma perna.

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

A imagem a seguir mostra um alienígena de brinquedo sem cabeça.

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Neste post, procuramos membros ausentes. Usamos a nova interface do usuário para desenhar uma máscara em torno dos defeitos em nossos dados de treinamento e testes. Isso dirá aos modelos de segmentação semântica como identificar esse tipo de defeito.

  1. Comece fazendo upload de seu conjunto de dados, via Amazon S3 ou do seu computador.
  2. Classifique-os em pastas intituladas normal e anomaly.
  3. Ao criar seu conjunto de dados, selecione Anexar rótulos automaticamente às imagens com base no nome da pasta.Isso nos permite classificar as imagens anômalas posteriormente e desenhar as áreas a serem rotuladas com um defeito.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  4. Tente reter algumas imagens para testar mais tarde de ambos normal e anomaly.
  5. Depois que todas as imagens forem adicionadas ao conjunto de dados, escolha Adicionar rótulos de anomalia.
  6. Comece a rotular os dados escolhendo Iniciar rotulagem.
  7. Para acelerar o processo, você pode selecionar várias imagens e classificá-las como Normal or Anomaly.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
    Se você deseja destacar anomalias além de classificá-las, você precisa destacar onde as anomalias estão localizadas.
  8. Escolha a imagem que deseja anotar.
  9. Use as ferramentas de desenho para mostrar a área onde falta parte do assunto ou desenhe uma máscara sobre o defeito.
  10. Escolha Enviar e fechar para manter essas mudanças.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  11. Repita este processo para todas as suas imagens.
  12. Quando terminar, escolha Salvar para persistir suas alterações. Agora você está pronto para treinar seu modelo.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  13. Escolha Modelo de trem.

Depois de concluir essas etapas, você pode navegar para o projeto e o Modelos página para verificar o desempenho do modelo treinado. Você pode iniciar o processo de exportação do modelo para o dispositivo de borda de destino a qualquer momento após o treinamento do modelo.

Retreinar o modelo com imagens corrigidas

Às vezes, a marcação da anomalia pode não estar totalmente correta. Você tem a chance de ajudar seu modelo a aprender melhor suas anomalias. Por exemplo, a imagem a seguir é identificada como uma anomalia, mas não mostra o missing_limbs tag.

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Vamos abrir o editor e corrigir isso.

Passe por todas as imagens que você encontrar como esta. Se você achar que está marcado uma anomalia incorretamente, você pode usar a ferramenta borracha para remover a marca incorreta.

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Agora você pode treinar seu modelo novamente e obter melhor precisão.

Compile e empacote o modelo como um componente AWS IoT Greengrass

Nesta seção, percorremos as etapas para compilar o modelo alienígena de brinquedo para nosso dispositivo de borda de destino e empacotar o modelo como um componente AWS IoT Greengrass.

  1. No console Lookout for Vision, escolha seu projeto.
  2. No painel de navegação, escolha Pacotes de modelos de borda.
  3. Escolha Criar job de empacotamento de modelo.
  4. Escolha Nome do trabalho, Insira o nome.
  5. Escolha Descrição do trabalho, insira uma descrição opcional.
  6. Escolha Procurar modelos.
  7. Selecione a versão do modelo (o modelo alienígena de brinquedo construído na seção anterior).
  8. Escolha Escolha.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  9. Se você estiver executando isso no Amazon EC2 ou em um dispositivo X86-64, selecione Plataforma de destino e escolha Linux, X86 e CPU.
    Se estiver usando CPU, você pode deixar as opções do compilador vazias se não tiver certeza e não tiver uma GPU NVIDIA. Se você tiver uma plataforma baseada em Intel que suporte AVX512, você pode adicionar estas opções de compilador para otimizar para um melhor desempenho: {"mcpu": "skylake-avx512"}.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Você pode ver o nome e o status do seu trabalho como In progress. O trabalho de empacotamento do modelo pode levar alguns minutos para ser concluído. Quando o trabalho de empacotamento do modelo for concluído, o status será exibido como Success.
  10. Escolha o nome do seu trabalho (no nosso caso é aliensblogcpux86) para ver os detalhes do trabalho.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  11. Escolha Criar job de empacotamento de modelo.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  12. Insira os detalhes para Nome do componente, Descrição do componente (opcional), Versão do componente e Localização do componente.O Lookout for Vision armazena as receitas de componentes e artefatos neste local do Amazon S3.
  13. Escolha Continuar a implantação no Greengrass para implantar o componente no dispositivo de borda de destino.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

O componente do AWS IoT Greengrass e os artefatos de modelo foram criados em sua conta da AWS.

Implantar o modelo

Certifique-se de ter o AWS IoT Greengrass V2 instalado em seu dispositivo de destino para sua conta antes de continuar. Para obter instruções, consulte Instale o software AWS IoT Greengrass Core.

Nesta seção, percorremos as etapas para implantar o modelo alienígena de brinquedo no dispositivo de borda usando o console do AWS IoT Greengrass.

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

  1. No console do AWS IoT Greengrass, navegue até seu dispositivo de borda.
  2. Escolha Implantação para iniciar as etapas de implantação.
  3. Selecionar Dispositivo principal (porque a implantação é em um único dispositivo) e digite um nome para Nome do alvo.O nome de destino é o mesmo que você usou para nomear o dispositivo principal durante o processo de instalação do AWS IoT Greengrass V2.
  4. Escolha o seu componente. No nosso caso, o nome do componente é aliensblogcpux86, que contém o modelo alienígena de brinquedo.
  5. Escolha Próximo.
  6. Configure o componente (opcional).
  7. Escolha Próximo.
  8. Expandir Políticas de implantação.
  9. Escolha Política de atualização de componentes, selecione Notificar componentes.Isso permite que o componente já implantado (uma versão anterior do componente) adie uma atualização até que você esteja pronto para atualizar.
  10. Escolha Política de tratamento de falhas, selecione Não volte atrás.Em caso de falha, esta opção permite investigar os erros na implantação.
  11. Escolha Próximo.
  12. Revise a lista de componentes que serão implantados no dispositivo de destino (borda).
  13. Escolha Próximo.Você deve ver a mensagem Deployment successfully created.
  14. Para validar se a implantação do modelo foi bem-sucedida, execute o seguinte comando em seu dispositivo de borda:
    sudo /greengrass/v2/bin/greengrass-cli component list

Você deve ver uma saída semelhante executando o aliensblogcpux86 script de inicialização do ciclo de vida:

Componentes atualmente em execução no Greengrass:

Components currently running in Greengrass:
 
Component Name: aws.iot.lookoutvision.EdgeAgent
    Version: 0.1.34
    State: RUNNING
    Configuration: {"Socket":"unix:///tmp/aws.iot.lookoutvision.EdgeAgent.sock"}
 Component Name: aliensblogcpux86
    Version: 1.0.0
    State: RUNNING
    Configuration: {"Autostart":false}

Executar inferências no modelo

Note: Se você estiver executando o Greengrass como outro usuário diferente daquele com o qual você está logado, você precisará alterar as permissões do arquivo /tmp/aws.iot.lookoutvision.EdgeAgent.sock:

chmod 666 /tmp/aws.iot.lookoutvision.EdgeAgent.sock

Agora estamos prontos para executar inferências no modelo. No seu dispositivo de borda, execute o seguinte comando para carregar o modelo (substitua com o nome do modelo usado em seu componente):

# run command to load the model# This will load the model into running state pass
# the name of the model component as a parameter.
python3 warmup-model.py <modelName>

Para gerar inferências, execute o seguinte comando com o nome do arquivo de origem (substitua com o caminho e o nome do arquivo da imagem para verificar e substituir com o nome do modelo usado para o seu componente):

python3 sample-client-file-mqtt.py </path/to/images> <modelName>

start client ['sample-client-file.py', 'aliens-dataset/anomaly/1.png', 'aliensblogcpux86']
channel set
shape=(380, 550, 3)
Image is anomalous, (90.05860090255737 % confidence) contains defects with total area over .1%: {'missing_limbs': '#FFFFFF'}

O modelo prevê corretamente a imagem como anômala (missing_limbs) com uma pontuação de confiança de 0.9996867775917053. Diz-nos a máscara da etiqueta de anomalia missing_limbs e a área percentual. A resposta também contém dados de bitmap que você pode decodificar do que encontrou.

Baixe e abra o arquivo blended.png, que se parece com a imagem a seguir. Observe a área destacada com o defeito ao redor das pernas.

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Histórias de clientes

Com o AWS IoT Greengrass e o Lookout for Vision, agora você pode automatizar a inspeção visual com visão computacional para processos como controle de qualidade e avaliação de defeitos, tudo na borda e em tempo real. Você pode identificar proativamente problemas como danos em peças (como amassados, arranhões ou soldagem ruim), componentes de produtos ausentes ou defeitos com padrões repetidos na própria linha de produção, economizando tempo e dinheiro. Clientes como Tyson e Baxter estão descobrindo o poder do Lookout for Vision para aumentar a qualidade e reduzir os custos operacionais automatizando a inspeção visual.

“Excelência operacional é uma prioridade fundamental na Tyson Foods. A manutenção preditiva é um ativo essencial para atingir esse objetivo, melhorando continuamente a eficácia geral do equipamento (OEE). Em 2021, a Tyson Foods lançou um projeto de visão computacional baseado em aprendizado de máquina para identificar transportadores de produtos com falha durante a produção para evitar que eles afetem a segurança, as operações ou a qualidade do produto dos membros da equipe. Os modelos treinados usando o Amazon Lookout for Vision tiveram um bom desempenho. O modelo de detecção de pinos alcançou 95% de precisão em ambas as classes. O modelo Amazon Lookout for Vision foi ajustado para ter 99.1% de precisão na detecção de pinos com falha. De longe, o resultado mais empolgante deste projeto foi a aceleração no tempo de desenvolvimento. Embora este projeto utilize dois modelos e um código de aplicativo mais complexo, levou 12% menos tempo do desenvolvedor para ser concluído. Este projeto para monitorar a condição dos transportadores de produtos na Tyson Foods foi concluído em tempo recorde usando serviços gerenciados pela AWS, como Amazon Lookout for Vision.”

—Audrey Timmerman, desenvolvedora de aplicativos sênior, Tyson Foods.

“A latência e a velocidade de inferência são críticas para avaliação em tempo real e verificações críticas de qualidade de nossos processos de fabricação. O Amazon Lookout for Vision edge em um dispositivo de CPU nos dá a capacidade de conseguir isso em equipamentos de nível de produção, permitindo-nos fornecer soluções de visão de IA econômicas em escala.”

—AK Karan, Diretor Sênior Global – Transformação Digital, Cadeia de Suprimentos Integrada, Baxter International Inc.

Limpar

Conclua as etapas a seguir para remover os ativos que você criou de sua conta e evitar cobranças em andamento:

  1. No console Lookout for Vision, navegue até seu projeto.
  2. No Opções menu, exclua seus conjuntos de dados.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  3. Exclua seus modelos.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  4. No console do Amazon S3, esvazie os buckets que você criou e exclua os buckets.
  5. No console do Amazon EC2, exclua a instância que você iniciou para executar o AWS IoT Greengrass.
  6. No console do AWS IoT Greengrass, escolha implantações no painel de navegação.
  7. Exclua suas versões de componentes.
    Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  8. No console do AWS IoT Greengrass, exclua itens, grupos e dispositivos do AWS IoT.

Conclusão

Neste post, descrevemos um cenário típico para detecção de defeitos industriais na borda usando localização de defeitos e implantado em um dispositivo somente de CPU. Percorremos os principais componentes do ciclo de vida da nuvem e da borda com um exemplo completo usando Lookout for Vision e AWS IoT Greengrass. Com o Lookout for Vision, treinamos um modelo de detecção de anomalias na nuvem usando o conjunto de dados alienígena de brinquedo, compilou o modelo para uma arquitetura de destino e empacotou o modelo como um componente AWS IoT Greengrass. Com o AWS IoT Greengrass, implantamos o modelo em um dispositivo de borda. Demonstramos um aplicativo de amostra baseado em Python que obtém imagens alienígenas de brinquedo do sistema de arquivos local do dispositivo de borda, executa as inferências no modelo Lookout for Vision na borda usando a interface gRPC e envia os dados de inferência para um tópico MQTT na AWS Nuvem.

Em um post futuro, mostraremos como executar inferências em um fluxo de imagens em tempo real usando um pipeline de mídia do GStreamer.

Comece sua jornada em direção à detecção e identificação de anomalias industriais visitando o Amazon Lookout para Visão e AWS IoT Greengrass páginas de recursos.


Sobre os autores

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Manish Talreja é Gerente Sênior de Práticas de ML Industrial com AWS Professional Services. Ele ajuda os clientes da AWS a atingir suas metas de negócios arquitetando e criando soluções inovadoras que usam serviços AWS ML e IoT na Nuvem AWS.

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Ryan Vanderwerf é um arquiteto de soluções parceiro da Amazon Web Services. Anteriormente, ele forneceu consultoria focada em máquinas virtuais Java e desenvolvimento de projetos como engenheiro de software na OCI na equipe Grails e Micronaut. Ele foi arquiteto-chefe/diretor de produtos da ReachForce, com foco em software e arquitetura de sistema para soluções SaaS na Nuvem AWS para gerenciamento de dados de marketing. Ryan construiu várias soluções SaaS em vários domínios, como empresas financeiras, de mídia, telecomunicações e e-learning desde 1996.

Identifique a localização de anomalias usando o Amazon Lookout for Vision na borda sem usar uma GPU PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Prakash Krishnan é Gerente Sênior de Desenvolvimento de Software na Amazon Web Services. Ele lidera as equipes de engenharia que estão construindo sistemas distribuídos em larga escala para aplicar algoritmos rápidos, eficientes e altamente escaláveis ​​a problemas de reconhecimento de imagem e vídeo baseados em aprendizado profundo.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS