Implantação da aplicação de exemplo do AWS Panorama - AWS Panorama

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implantação da aplicação de exemplo do AWS Panorama

Depois de configurar seu AWS Panorama Appliance ou dispositivo compatível e atualizar seu software, implante uma aplicação de exemplo. As seções a seguir mostram como importar uma aplicação de exemplo com a CLI da aplicação do AWS Panorama e implantá-la com o console do AWS Panorama.

A aplicação de exemplo usa um modelo de machine learning para classificar objetos em quadros de vídeo de uma câmera de rede. Ela usa o SDK para aplicações do AWS Panorama para carregar um modelo, obter imagens e executar o modelo. Em seguida, a aplicação sobrepõe os resultados ao vídeo original e os envia para um monitor conectado.

Em um ambiente de varejo, a análise dos padrões de tráfego de pedestres permite prever os níveis de tráfego. Ao combinar a análise com outros dados, você pode se preparar para a maior necessidade de pessoal em feriados e outros eventos, medir a eficácia de anúncios e promoções de vendas ou otimizar o posicionamento do monitor e o gerenciamento de inventário.

Pré-requisitos

Para seguir os procedimentos deste tutorial, você precisa de um terminal de linha de comando ou de um shell para executar comandos. Nas listagens de código, os comandos são mostrados precedidos por um símbolo de prompt ($) e pelo nome do diretório atual, quando apropriado.

~/panorama-project$ this is a command this is output

Para comandos longos, um caractere de escape (\) é usado para dividir um comando em várias linhas.

No Linux e no macOS, use seu gerenciador preferido de pacotes e de shell. No Windows 10, você pode instalar o Subsistema Windows para Linux para obter uma versão do Ubuntu integrada com o Windows e o Bash. Para obter ajuda na configuração de um ambiente de desenvolvimento no Windows, consulte Configurar um ambiente de desenvolvimento no Windows.

Você usa o Python para desenvolver aplicações do AWS Panorama e instalar ferramentas com o pip, o gerenciador de pacotes do Python. Se você ainda não tiver Python, instale a versão mais recente. Se você tiver o Python 3, mas não o pip, instale o pip com o gerenciador de pacotes do seu sistema operacional ou instale uma nova versão do Python, que vem com o pip.

Neste tutorial, você usa o Docker para criar o contêiner que executa o código da sua aplicação. Instale o Docker, a partir do website do Docker: Obter Docker.

Este tutorial usa a CLI da aplicação do AWS Panorama para importar a aplicação de exemplo, criar pacotes e fazer upload de artefatos. A CLI da aplicação do AWS Panorama usa a AWS Command Line Interface (AWS CLI) para chamar operações da API de serviço. Se você já tiver a AWS CLI, atualize-a para a versão mais recente. Para instalar a CLI da aplicação do AWS Panorama e a AWS CLI, use o pip.

$ pip3 install --upgrade awscli panoramacli

Baixe a aplicação de exemplo e extraia-a em seu espaço de trabalho.

Importe a aplicação de exemplo

Para importar a aplicação de exemplo para uso em sua conta, use a CLI da aplicação do AWS Panorama. As pastas e o manifesto da aplicação contêm referências a um número de conta reservado. Para atualizá-los com o número da sua conta, execute o comando panorama-cli import-application.

aws-panorama-sample$ panorama-cli import-application

O pacote SAMPLE_CODE, no diretório packages, contém o código e a configuração da aplicação, incluindo um Dockerfile que usa a imagem base da aplicação, panorama-application. Para criar o contêiner da aplicação que é executado no dispositivo, use o comando panorama-cli build-container.

aws-panorama-sample$ ACCOUNT_ID=$(aws sts get-caller-identity --output text --query 'Account') aws-panorama-sample$ panorama-cli build-container --container-asset-name code_asset --package-path packages/${ACCOUNT_ID}-SAMPLE_CODE-1.0

A etapa final com a CLI da aplicação do AWS Panorama é registrar o código e os nós do modelo da aplicação e fazer o upload dos ativos em um ponto de acesso Amazon S3 fornecido pelo serviço. Os ativos incluem a imagem do contêiner do código, o modelo e um arquivo descritor para cada um. Para registrar os nós e fazer o upload dos ativos, execute o comando panorama-cli package-application.

aws-panorama-sample$ panorama-cli package-application Uploading package model Registered model with patch version bc9c58bd6f83743f26aa347dc86bfc3dd2451b18f964a6de2cc4570cb6f891f9 Uploading package code Registered code with patch version 11fd7001cb31ea63df6aaed297d600a5ecf641a987044a0c273c78ceb3d5d806

Implantar a aplicação

Use o console do AWS Panorama para implantar a aplicação em seu dispositivo.

Para implantar a aplicação
  1. Abra a Página de aplicações implantadas do console do AWS Panorama.

  2. Escolha Implantar aplicação.

  3. Cole o conteúdo do manifesto da aplicação, graphs/aws-panorama-sample/graph.json, no editor de texto. Escolha Next (Próximo).

  4. Em Application name (Nome da aplicação), insira aws-panorama-sample.

  5. Escolha Prosseguir para a implantação.

  6. Escolha Iniciar implantação.

  7. Escolha Avançar sem selecionar um perfil.

  8. Escolha Selecionar dispositivo e, em seguida, escolha seu dispositivo. Escolha Next (Próximo).

  9. Na etapa Selecionar fontes de dados, escolha Visualizar entrada(s) e adicione o stream da câmera como uma fonte de dados. Escolha Next (Próximo).

  10. Na etapa Configurar, escolha Avançar.

  11. Escolha Implantar e Concluído.

  12. Na lista de aplicações implantadas, escolha aws-panorama-sample.

Atualize esta página para obter atualizações ou use o script a seguir para monitorar a implantação na linha de comando.

exemplo monitor-deployment.sh
while true; do aws panorama list-application-instances --query 'ApplicationInstances[?Name==`aws-panorama-sample`]' sleep 10 done
[ { "Name": "aws-panorama-sample", "ApplicationInstanceId": "applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "DefaultRuntimeContextDeviceName": "my-appliance", "Status": "DEPLOYMENT_PENDING", "HealthStatus": "NOT_AVAILABLE", "StatusDescription": "Deployment Workflow has been scheduled.", "CreatedTime": 1630010747.443, "Arn": "arn:aws:panorama:us-west-2:123456789012:applicationInstance/applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "Tags": {} } ] [ { "Name": "aws-panorama-sample", "ApplicationInstanceId": "applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "DefaultRuntimeContextDeviceName": "my-appliance", "Status": "DEPLOYMENT_PENDING", "HealthStatus": "NOT_AVAILABLE", "StatusDescription": "Deployment Workflow has completed data validation.", "CreatedTime": 1630010747.443, "Arn": "arn:aws:panorama:us-west-2:123456789012:applicationInstance/applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "Tags": {} } ] ...

Se a aplicação não começar a ser executada, verifique os logs da aplicação e do dispositivo no Amazon CloudWatch Logs.

Visualizar a saída

Quando a implantação é concluída, a aplicação começa a processar o stream de vídeo e envia os logs para o CloudWatch.

Para visualizar logs no CloudWatch Logs
  1. Abra a página Grupos de log do console do CloudWatch.

  2. Encontre logs de aplicações e dispositivos do AWS Panorama nos seguintes grupos:

    • Logs do dispositivo: /aws/panorama/devices/device-id

    • Logs de aplicações: /aws/panorama/devices/device-id/applications/instance-id

2022-08-26 17:43:39 INFO INITIALIZING APPLICATION 2022-08-26 17:43:39 INFO ## ENVIRONMENT VARIABLES {'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'TERM': 'xterm', 'container': 'podman'...} 2022-08-26 17:43:39 INFO Configuring parameters. 2022-08-26 17:43:39 INFO Configuring AWS SDK for Python. 2022-08-26 17:43:39 INFO Initialization complete. 2022-08-26 17:43:39 INFO PROCESSING STREAMS 2022-08-26 17:46:19 INFO epoch length: 160.183 s (0.936 FPS) 2022-08-26 17:46:19 INFO avg inference time: 805.597 ms 2022-08-26 17:46:19 INFO max inference time: 120023.984 ms 2022-08-26 17:46:19 INFO avg frame processing time: 1065.129 ms 2022-08-26 17:46:19 INFO max frame processing time: 149813.972 ms 2022-08-26 17:46:29 INFO epoch length: 10.562 s (14.202 FPS) 2022-08-26 17:46:29 INFO avg inference time: 7.185 ms 2022-08-26 17:46:29 INFO max inference time: 15.693 ms 2022-08-26 17:46:29 INFO avg frame processing time: 66.561 ms 2022-08-26 17:46:29 INFO max frame processing time: 123.774 ms

Para visualizar a saída de vídeo da aplicação, conecte o dispositivo a um monitor com um cabo HDMI. Por padrão, a aplicação mostra qualquer resultado de classificação com mais de 20% de confiança.

exemplo squeezenet_classes.json
["tench", "goldfish", "great white shark", "tiger shark", "hammerhead", "electric ray", "stingray", "cock", "hen", "ostrich", "brambling", "goldfinch", "house finch", "junco", "indigo bunting", "robin", "bulbul", "jay", "magpie", "chickadee", "water ouzel", "kite", "bald eagle", "vulture", "great grey owl", "European fire salamander", "common newt", "eft", "spotted salamander", "axolotl", "bullfrog", "tree frog", ...

O modelo de exemplo tem 1.000 classes, incluindo muitos animais, alimentos e objetos comuns. Tente apontar sua câmera para um teclado ou uma caneca de café.

Uma caneca de café com texto de detecção.

Para simplificar, a aplicação de exemplo usa um modelo de classificação leve. O modelo gera uma única matriz com uma probabilidade para cada uma de suas classes. As aplicações do mundo real usam com mais frequência modelos de detecção de objetos que têm saída multidimensional. Para exemplos de aplicações com modelos mais complexos, consulte Exemplos de aplicações, scripts e modelos.

Habilitar o SDK para Python

A aplicação de exemplo usa o AWS SDK for Python (Boto) para enviar métricas para o Amazon CloudWatch. Para habilitar essa funcionalidade, crie um perfil que conceda permissão à aplicação para enviar métricas e reimplante a aplicação com o perfil anexado.

A aplicação de exemplo inclui um modelo AWS CloudFormation que cria um perfil com as permissões necessárias. Para criar uma função, use o comando aws cloudformation deploy.

$ aws cloudformation deploy --template-file aws-panorama-sample.yml --stack-name aws-panorama-sample-runtime --capabilities CAPABILITY_NAMED_IAM

Para reimplantar a aplicação
  1. Abra a Página de aplicações implantadas do console do AWS Panorama.

  2. Escolha a aplicação.

  3. Selecione Replace (Substituir).

  4. Conclua as etapas para implantar a aplicação. Em Especificar perfil do IAM, escolha a função que você criou. O nome começa com aws-panorama-sample-runtime.

  5. Quando a implantação for concluída, abra o console do CloudWatch e visualize as métricas no namespace AWSPanoramaApplication. A cada 150 quadros, a aplicação registra e carrega métricas para processamento de quadros e tempo de inferência.

Limpeza

Quando você terminar de trabalhar com a aplicação de exemplo, poderá usar o console do AWS Panorama para removê-la do dispositivo.

Para remover uma aplicação do dispositivo
  1. Abra a Página de aplicações implantadas do console do AWS Panorama.

  2. Escolha a aplicação.

  3. Escolha Excluir do dispositivo.

Próximas etapas

Se você encontrar erros ao implantar ou executar a aplicação de exemplo, consulte Solução de problemas.

Para saber mais sobre os atributos e a implementação da aplicação de exemplo, continue com o próximo tópico.