Automação industrial na Tyson com visão computacional, AWS Panorama e Amazon SageMaker

Nó Fonte: 1575225

Esta é a primeira de uma série de blogs de duas partes sobre como a Tyson Foods, Inc. está utilizando o Amazon SageMaker e o AWS Panorama para automatizar processos industriais em seus frigoríficos, trazendo os benefícios dos aplicativos de inteligência artificial para a borda. Na primeira parte, discutimos um aplicativo de contagem de estoque para linhas de embalagem. Na segunda parte, discutimos uma solução de detecção de anomalias baseada em visão na borda para manutenção preditiva de equipamentos industriais.

Como um dos maiores processadores e comerciantes de frango, carne bovina e suína do mundo, Tyson Foods, Inc. Empresas, é conhecida por trazer soluções inovadoras para suas unidades de produção e embalagem. Em fevereiro de 2020, Tyson anunciou seu plano de trazer Visão Computacional (CV) para suas fábricas de frango e lançou um piloto com a AWS para esforços pioneiros em gerenciamento de estoque. Tyson colaborou com Laboratório de soluções de ML da Amazon para criar uma solução de CV de última geração para contagem de bandejas de frango que forneça insights em tempo real sobre os níveis de estoque embalado. Nesta postagem, fornecemos uma visão geral da arquitetura AWS e um passo a passo completo da solução para demonstrar os principais componentes do pipeline de contagem de bandejas configurado na fábrica da Tyson. Vamos nos concentrar na coleta e rotulagem de dados, no treinamento e na implantação de modelos de CV na borda usando Amazon Sage Maker, Apache MXNet Gluon e Panorama AWS.

A excelência operacional é uma prioridade fundamental na Tyson Foods. A Tyson emprega medidas rigorosas de garantia de qualidade (QA) em suas linhas de embalagem, garantindo que apenas os produtos embalados que passam nos protocolos de controle de qualidade sejam enviados aos seus clientes. Para atender à demanda dos clientes e ficar à frente de qualquer problema de produção, a Tyson monitora de perto a contagem de bandejas de frango embalado. No entanto, as técnicas manuais atuais para contar bandejas de frango que passam no controle de qualidade não são precisas e não apresentam uma imagem clara dos níveis de produção acima/abaixo. Estratégias alternativas, como o monitoramento do peso total da produção por hora por rack, não fornecem feedback imediato aos funcionários da fábrica. Com uma capacidade de processamento de frango de 45,000,000 milhões de cabeças por semana, a precisão e a eficiência da produção são essenciais para os negócios da Tyson. O CV pode ser utilizado de forma eficaz em tais cenários para estimar com precisão a quantidade de frango processado em tempo real, capacitando os funcionários a identificar potenciais gargalos nas linhas de embalagem e produção à medida que ocorrem. Isto permite a implementação de medidas corretivas e melhora a eficiência da produção.

O streaming e o processamento de fluxos de vídeo locais na nuvem para aplicações de CV exigem alta largura de banda de rede e provisionamento de infraestrutura relevante. Esta pode ser uma tarefa com custos proibitivos. O AWS Panorama elimina esses requisitos e permite que o Tyson processe streams de vídeo na borda do dispositivo AWS Panorama. Ele reduz a latência de/para a nuvem e os custos de largura de banda, ao mesmo tempo que fornece uma interface fácil de usar para gerenciar dispositivos e aplicativos na borda.

A detecção de objetos é um dos algoritmos CV mais comumente usados ​​que pode localizar a posição de objetos em imagens e vídeos. Esta tecnologia está atualmente a ser utilizada em diversas aplicações da vida real, como localização de peões em veículos autónomos, deteção de tumores em exames médicos, sistemas de contagem de pessoas para monitorizar a movimentação em espaços comerciais, entre outras. Também é crucial para casos de uso de gerenciamento de estoque, como contagem de bandejas de carne para Tyson, reduzir o desperdício criando um ciclo de feedback com processos de produção, economia de custos e entrega de remessas de clientes no prazo.

As seções a seguir desta postagem do blog descrevem como usamos vídeos de transmissão ao vivo de uma das fábricas da Tyson Foods para treinar um modelo de detecção de objetos usando o Amazon SageMaker. Em seguida, implantamos na borda com o dispositivo AWS Panorama.

Panorama AWS

O AWS Panorama é um dispositivo de aprendizado de máquina (ML) que permite que as organizações levem currículos para câmeras locais para fazer previsões localmente com alta precisão e baixa latência. O AWS Panorama Appliance é um dispositivo de hardware que permite executar aplicativos que usam ML para coletar dados de streams de vídeo, gerar vídeo com sobreposições gráficas e de texto e interagir com outros serviços da AWS. O dispositivo pode executar vários modelos de CV em vários fluxos de vídeo em paralelo e gerar os resultados em tempo real. Ele foi projetado para uso em ambientes comerciais e industriais.

O AWS Panorama Appliance permite executar aplicativos de CV independentes na borda, sem enviar imagens para a Nuvem AWS. Você também pode usar o AWS SDK no AWS Panorama Appliance para integração com outros serviços da AWS e usá-los para rastrear dados do aplicativo ao longo do tempo. Para criar e implantar aplicativos, você usa a CLI do aplicativo AWS Panorama. A CLI é uma ferramenta de linha de comando que gera pastas de aplicativos e arquivos de configuração padrão, cria contêineres com Docker e carrega ativos.

AWS Panorama oferece suporte a modelos criados com Apache MX Net, darknet, GluonCV, Keras, Onnx., PyTorch, TensorFlow e TensorFlow Lite. Referir-se isto postagem do blog para saber mais sobre como criar aplicativos no AWS Panorama. Durante o processo de implantação, o AWS Panorama se encarrega de compilar o modelo específico para a plataforma de borda por meio de Compilação Amazon SageMaker Neo. Os resultados da inferência podem ser roteados para serviços da AWS, como Amazon S3, Amazon CloudWatch ou integrados a aplicativos de linha de negócios locais. Os logs de implantação são armazenados no Amazon CloudWatch.

Para rastrear qualquer alteração na lógica do script de inferência ou no modelo treinado, pode-se criar uma nova versão do aplicativo. Versões do aplicativo são instantâneos imutáveis ​​da configuração de um aplicativo. O AWS Panorama salva versões anteriores de seus aplicativos para que você possa reverter atualizações que não foram bem-sucedidas ou executar versões diferentes em dispositivos diferentes.

Para mais informações, consulte o Página Panorama da AWS. Para saber mais sobre como criar aplicativos de amostra, consulte Amostras de panorama da AWS.

Abordagem

Um funcionário da fábrica coloca continuamente bandejas de frango embalado em caixas plásticas e as empilha ao longo do tempo, como mostra a figura anterior. Queremos ser capazes de detectar e contar o número total de bandejas em todas as caixas empilhadas verticalmente.

Um modelo de detecção de objetos treinado pode prever caixas delimitadoras de todas as bandejas colocadas em uma caixa em cada quadro de vídeo. Isso pode ser usado para avaliar contagens de bandejas em uma caixa em uma determinada instância. Também sabemos que, em qualquer momento, apenas uma caixa está sendo preenchida com bandejas embaladas; as contagens das bandejas oscilam continuamente de alta (durante o enchimento) para baixa (quando uma nova caixa obstrui a visão da caixa cheia).

Com esse conhecimento, adotamos a seguinte estratégia para contar o número total de bandejas de frango:

  1. Mantenha dois contadores diferentes – local e global. O contador global mantém o total de bandejas armazenadas e o contador local armazena o número máximo de bandejas colocadas em uma nova bandeja.
  2. Atualize o contador local à medida que novas bandejas são colocadas na caixa.
  3. Detecte um novo evento bin das seguintes maneiras:
    1. A contagem de bandejas em um determinado quadro chega a zero. (ou)
    2. O fluxo de números de bandeja no último n quadros cai continuamente.
  4. Assim que o novo evento bin for detectado, adicione o valor do contador local ao contador global.
  5. Redefina o contador local para zero.

Testamos esse algoritmo em várias horas de vídeo e obtivemos resultados consistentes.

Treinar um modelo de detecção de objetos com Amazon SageMaker

Criação de conjunto de dados:

Captura de novas imagens para trabalhos de etiquetagem

Captura de novas imagens para trabalhos de etiquetagem

Coletamos amostras de imagens da linha de embalagem usando o AWS Panorama Appliance. O script para processar imagens e salvá-las foi empacotado como um aplicativo e implantado no AWS Panorama. O aplicativo coleta quadros de vídeo de uma câmera local instalada perto da zona de empacotamento e os salva em intervalos de 60 segundos em um arquivo Amazon S3 balde; isso evita a captura de imagens semelhantes na sequência de vídeo com alguns segundos de intervalo. Também mascaramos regiões adjacentes na imagem que não são relevantes para o caso de uso.

Rotulamos as bandejas de frango com caixas delimitadoras usando Verdades básicas do Amazon SageMaker trabalho de rotulagem de streaming. Também configuramos uma notificação de evento do Amazon S3 que publica eventos criados por objetos para uma Serviço de notificação simples da Amazon (SNS), que atua como fonte de entrada para o trabalho de rotulagem. Quando o script do aplicativo AWS Panorama salva uma imagem em um bucket S3, uma notificação de evento é publicada no tópico SNS, que então envia essa imagem para o trabalho de rotulagem. À medida que os anotadores rotulam cada imagem recebida, o Ground Truth salva os rótulos em um arquivo de manifesto, que contém o caminho S3 da imagem, bem como as coordenadas das caixas delimitadoras da bandeja de frango.

Realizamos vários aumentos de dados (por exemplo: ruído aleatório, contraste e brilho aleatórios, embaralhamento de canais) nas imagens rotuladas para tornar o modelo robusto a variações na vida real. As imagens originais e aumentadas foram combinadas para formar um conjunto de dados unificado.

Treinamento do modelo:

Assim que o trabalho de etiquetagem for concluído, acionamos manualmente um AWS Lambda função. Esta função Lambda agrupa imagens e seus rótulos correspondentes do manifesto de saída em um Arquivo LST. Nossos arquivos de treinamento e teste tiveram imagens coletadas de diferentes linhas de embalagens para evitar qualquer vazamento de dados na avaliação. A função Lambda aciona então um trabalho de treinamento do Amazon SageMaker.

Usamos Modo de script do SageMaker, que permite trazer seus próprios algoritmos de treinamento e treinar modelos diretamente, permanecendo dentro dos limites fáceis de usar do Amazon SageMaker. Treinamos modelos como SSD, Yolo-v3 (para latência de inferência em tempo real) com várias combinações de rede backbone de GluonCV Model Zoo para detecção de objetos no modo script. As redes neurais têm a tendência de superajustar os dados de treinamento, levando a resultados insatisfatórios fora da amostra. GluonCV fornece normalização e aumento de imagens, como inversão e corte aleatório de imagens, para ajudar a reduzir o overfitting durante o treinamento. O código de treinamento do modelo é conteinerizado e usa a imagem Docker em nosso AWS Elastic Container Registry. O trabalho de treinamento usa a pasta de imagens do S3 e os caminhos do arquivo LST como entradas e salva o melhor artefato do modelo (.params e json) para S3 após a conclusão.

Pipeline de avaliação de modelo

Pipeline de avaliação de modelo

Os 2 principais modelos baseados em nosso conjunto de testes foram SSD-resnet50 e Yolov3-darketnet53, com pontuação mAP de 0.91 cada. Também realizamos testes no mundo real, implantando um aplicativo de inferência no dispositivo AWS Panorama junto com o modelo treinado. O script de inferência salva as previsões e os quadros de vídeo em um bucket do Amazon S3. Criamos outro trabalho do SageMaker Ground Truth para anotar a verdade básica e, em seguida, realizamos uma avaliação quantitativa adicional do modelo. A verdade básica e os rótulos da caixa delimitadora prevista nas imagens foram salvos no S3 para avaliação qualitativa. Os modelos foram capazes de generalizar os dados do mundo real e produziram um desempenho consistente semelhante ao do nosso conjunto de testes.

Você pode encontrar exemplos completos de criação de trabalhos de treinamento personalizados, treinamento de modelos de detecção de objetos de última geração, implementação de otimização de hiperparâmetros (HPO) e implantação de modelo no Amazon SageMaker na página Repositório GitHub do AWS Labs.

Implantando aplicativo de contagem de bandejas de carne

Arquitetura de Produção

Arquitetura de Produção

Antes da implantação, empacotamos todos os nossos ativos – modelo, script de inferência, câmera e configuração de variável global em um único contêiner, conforme mencionado em este blog. Nosso pipeline de integração contínua e implantação contínua (CI/CD) atualiza qualquer alteração no script de inferência como uma nova versão do aplicativo. Assim que a nova versão do aplicativo for publicada, nós o implantamos programaticamente usando boto3 SDK em Python.

Após a implantação do aplicativo, o AWS Panorama primeiro cria um trabalho de compilação do AWS SageMaker Neo para compilar o modelo para o dispositivo AWS Panorama. O script do aplicativo de inferência importa o modelo compilado no dispositivo e executa a detecção da bandeja de frango em cada quadro. Além do SageMaker Neo-Compilation, habilitamos a quantização pós-treinamento adicionando um os.environ['TVM_TENSORRT_USE_FP16'] = '1' sinalizador no script. Isso reduz o tamanho dos pesos do modelo do ponto flutuante 32 para o ponto flutuante 16, diminuindo o tamanho do modelo pela metade e melhorando a latência sem degradação do desempenho. Os resultados da inferência são capturados em Monitor AWS SiteWise por meio de mensagens MQTT do dispositivo AWS Panorama via Núcleo AWS IoT. Os resultados são então enviados para o Amazon S3 e visualizados em AmazonQuickSight Painéis. Os gerentes e funcionários da fábrica podem visualizar diretamente esses painéis para entender o rendimento de cada linha de embalagem em tempo real.

Conclusão

Ao combinar serviços de nuvem AWS como Amazon SageMaker, Amazon S3 e serviços de ponta como AWS Panorama, a Tyson Foods Inc. está infundindo inteligência artificial para automatizar processos industriais com uso intensivo de mão de obra, como contagem de estoque em suas fábricas. Os recursos de inferência de borda em tempo real permitem que a Tyson identifique excesso/subprodução e ajuste dinamicamente seu fluxo de produção para maximizar a eficiência. Além disso, ao possuir o dispositivo AWS Panorama na borda, a Tyson também é capaz de economizar custos associados à cara largura de banda de rede para transferir arquivos de vídeo para a nuvem e agora pode processar todos os seus ativos de vídeo/imagem localmente em sua rede.

Esta postagem do blog fornece uma visão geral de aplicativos de ponta e arquiteturas de referência para desenvolver um aplicativo de currículo com AWS Panorama. Discutimos três aspectos diferentes da construção de um aplicativo de CV de ponta.

  1. Data: Coleta, processamento e rotulagem de dados usando AWS Panorama e Amazon SageMaker Ground Truth.
  2. Modelo: Treinamento e avaliação de modelos usando Amazon SageMaker e AWS Lambda
  3. Pacote de Aplicação: Agrupamento de modelos treinados, scripts e arquivos de configuração para AWS Panorama.

Fique ligado na segunda parte desta série sobre como a Tyson está usando o AWS Panorama para manutenção preditiva baseada em CV de máquinas industriais.

Clique SUA PARTICIPAÇÃO FAZ A DIFERENÇA para iniciar sua jornada com o AWS Panorama. Para saber mais sobre como colaborar com o ML Solutions Lab, consulte Laboratório de soluções de aprendizado de máquina da Amazon.


Sobre os autores

Divya Bhargavi é um cientista de dados no Laboratório de soluções de ML da Amazon onde ela trabalha com clientes em vários setores e aplica soluções criativas de problemas para gerar valor para os clientes com soluções de ML/IA de última geração.

Dilip Subramaniam é desenvolvedor sênior da equipe de tecnologias emergentes da Tyson Foods. Ele é apaixonado por construir aplicativos distribuídos em larga escala para resolver problemas de negócios e simplificar processos usando seu conhecimento em Desenvolvimento de Software, Aprendizado de Máquina e Big Data.

Fonte: https://aws.amazon.com/blogs/machine-learning/industrial-automation-at-tyson-with-computer-vision-aws-panorama-and-amazon-sagemaker/

Carimbo de hora:

Mais de Blog do AWS Machine Learning