

Aviso de fim do suporte: em 31 de maio de 2026, AWS encerrará o suporte para AWS Panorama. Depois de 31 de maio de 2026, você não poderá mais acessar o AWS Panorama console ou os AWS Panorama recursos. Para obter mais informações, consulte [AWS Panorama Fim do suporte](https://docs.aws.amazon.com/panorama/latest/dev/panorama-end-of-support.html). 

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á.

# Começando com AWS Panorama
<a name="panorama-gettingstarted"></a>

Para começar AWS Panorama, primeiro conheça [os conceitos do serviço](gettingstarted-concepts.md) e a terminologia usada neste guia. Em seguida, você pode usar o AWS Panorama console para [registrar seu AWS Panorama equipamento](gettingstarted-setup.md) e [criar um aplicativo](gettingstarted-deploy.md). Em cerca de uma hora, você pode configurar o dispositivo, atualizar o software e implantar uma aplicação de exemplo. Para concluir os tutoriais desta seção, você usa o AWS Panorama equipamento e uma câmera que transmite vídeo por uma rede local.

**nota**  
Para comprar um AWS Panorama aparelho, acesse [o AWS Panorama console](https://console.aws.amazon.com/panorama/home#get-device-quote).

O [aplicativo AWS Panorama de amostra](gettingstarted-sample.md) demonstra o uso de AWS Panorama recursos. Ele inclui um modelo que foi treinado com SageMaker IA e um código de amostra que usa o SDK do AWS Panorama aplicativo para executar inferência e gerar vídeo. O aplicativo de amostra inclui um CloudFormation modelo e scripts que mostram como automatizar fluxos de trabalho de desenvolvimento e implantação a partir da linha de comando.

Os dois tópicos finais deste capítulo detalham [os requisitos para modelos e câmeras](gettingstarted-compatibility.md) e as [especificações de hardware do AWS Panorama Appliance](gettingstarted-hardware.md). Se você ainda não adquiriu um dispositivo e câmeras, ou planeja desenvolver seus próprios modelos de visão computacional, consulte esses tópicos antes, para obter mais informações.

**Topics**
+ [Conceitos do AWS Panorama](gettingstarted-concepts.md)
+ [Configuração do AWS Panorama Appliance](gettingstarted-setup.md)
+ [Implantação da aplicação de exemplo do AWS Panorama](gettingstarted-deploy.md)
+ [Desenvolvimento de aplicativos do AWS Panorama](gettingstarted-sample.md)
+ [Modelos e câmeras de visão computacional compatíveis](gettingstarted-compatibility.md)
+ [Especificações do AWS Panorama Appliance](gettingstarted-hardware.md)
+ [Cotas de serviço](gettingstarted-quotas.md)

# Conceitos do AWS Panorama
<a name="gettingstarted-concepts"></a>

No AWS Panorama, você cria aplicações de visão computacional e as implanta no AWS Panorama Appliance ou em um dispositivo compatível para analisar streams de vídeo de câmeras de rede. Você escreve o código da aplicação em Python e cria contêineres de aplicações com o Docker. Você usa a CLI do AWS Panorama Application para importar modelos de machine learning localmente ou do Amazon Simple Storage Service (Amazon S3). As aplicações usam o SDK para aplicações do AWS Panorama para receber entrada de vídeo de uma câmera e interagir com um modelo.

**Topics**
+ [O AWS Panorama Appliance](#gettingstarted-concepts-appliance)
+ [Dispositivos compatíveis](#gettingstarted-concepts-devices)
+ [Aplicações](#gettingstarted-concepts-application)
+ [Nós](#gettingstarted-concepts-node)
+ [Modelos da](#gettingstarted-concepts-model)

## O AWS Panorama Appliance
<a name="gettingstarted-concepts-appliance"></a>

O AWS Panorama Appliance é o hardware que executa suas aplicações. Você usa o console do AWS Panorama para registrar um dispositivo, atualizar seu software e implantar aplicações nele. O software no AWS Panorama Appliance se conecta aos streams de câmeras, envia quadros de vídeo para sua aplicação e exibe a saída de vídeo em um monitor anexado.

O AWS Panorama Appliance é um *dispositivo de borda* [desenvolvido pela Nvidia Jetson AGX Xavier](gettingstarted-hardware.md). Em vez de enviar imagens para a AWS nuvem para processamento, ele executa aplicativos localmente em hardware otimizado. Isso permite que você analise o vídeo em tempo real e processe os resultados localmente. O dispositivo requer uma conexão com a Internet para relatar seu status, fazer upload de logs e realizar atualizações e implantações de software.

Para obter mais informações, consulte [Gerenciando o AWS Panorama equipamento](panorama-appliance.md).

## Dispositivos compatíveis
<a name="gettingstarted-concepts-devices"></a>

Além do AWS Panorama Appliance, o AWS Panorama oferece suporte a dispositivos compatíveis de AWS parceiros. Os dispositivos compatíveis oferecem suporte aos mesmos atributos do AWS Panorama Appliance. Você pode registrar e gerenciar dispositivos compatíveis e criar e implantar aplicações usando o console e a API do AWS Panorama.

****
+ [Lenovo ThinkEdge® SE7 0](https://techtoday.lenovo.com/us/en/solutions/smb/thinkedge) — Desenvolvido pela Nvidia Jetson Xavier NX

O conteúdo e as aplicações de exemplo deste guia são desenvolvidos com o AWS Panorama Appliance. Para obter mais informações sobre atributos específicos de hardware e software para seu dispositivo, consulte a documentação do fabricante.

## Aplicações
<a name="gettingstarted-concepts-application"></a>

As aplicações são executadas no AWS Panorama Appliance para realizar tarefas de visão computacional em streams de vídeo. Você pode criar aplicações de visão computacional combinando código Python e modelos de machine learning e implantá-los no AWS Panorama Appliance pela Internet. As aplicações podem enviar vídeo para um monitor ou usar o SDK da AWS para enviar resultados para os serviços da AWS.

Para criar e implantar aplicações, use a CLI da aplicação do AWS Panorama. A CLI da aplicação do AWS Panorama é uma ferramenta de linha de comando que gera pastas de aplicações e arquivos de configuração padrão, cria contêineres com o Docker e faz uploads de ativos. Você pode executar várias aplicações em um dispositivo.

Para obter mais informações, consulte [Gerenciando AWS Panorama aplicativos](panorama-applications.md).

## Nós
<a name="gettingstarted-concepts-node"></a>

Uma aplicação compreende vários componentes chamados *nós*, que representam entradas, saídas, modelos e código. Um nó pode ser apenas de configuração (entradas e saídas) ou incluir artefatos (modelos e código). Os nós de código de uma aplicação são agrupados em *pacotes de nós* e carregados para um ponto de acesso Amazon S3, onde o AWS Panorama Appliance pode acessá-los. Um *manifesto da aplicação* é um arquivo de configuração que define as conexões entre os nós.

Para obter mais informações, consulte [Nós da aplicação](applications-nodes.md).

## Modelos da
<a name="gettingstarted-concepts-model"></a>

Um modelo de visão computacional é uma rede de machine learning treinada para processar imagens. Os modelos de visão computacional podem realizar várias tarefas, como classificação, detecção, segmentação e rastreamento. Um modelo de visão computacional usa uma imagem como entrada e gera informações sobre a imagem ou os objetos na imagem.

O AWS Panorama oferece suporte a modelos criados com PyTorch MXNet, Apache e. TensorFlow Você pode criar modelos com a Amazon SageMaker AI ou em seu ambiente de desenvolvimento. Para obter mais informações, consulte [Modelos de visão computacional](applications-models.md).

# Configuração do AWS Panorama Appliance
<a name="gettingstarted-setup"></a>

Para começar a usar seu AWS Panorama Appliance ou [dispositivo compatível](gettingstarted-concepts.md#gettingstarted-concepts-devices), registre-o no console do AWS Panorama e atualize seu software. Durante o processo de configuração, você cria um *recurso* de dispositivo no AWS Panorama que representa o dispositivo físico e copia arquivos para o dispositivo usando uma unidade USB. O dispositivo usa esses certificados e arquivos de configuração para se conectar ao serviço AWS Panorama. Em seguida, você usa o console do AWS Panorama para atualizar o software do dispositivo e registrar as câmeras.

**Topics**
+ [Pré-requisitos](#gettingstarted-prerequisites)
+ [Registro e configuração do AWS Panorama Appliance](#gettingstarted-device)
+ [Atualize o software do dispositivo](#gettingstarted-upgrade)
+ [Adição de um stream de câmera](#gettingstarted-setup-camera)
+ [Próximas etapas](#gettingstarted-setup-nextsteps)

## Pré-requisitos
<a name="gettingstarted-prerequisites"></a>

Para seguir este tutorial, você precisa de um AWS Panorama Appliance ou de um dispositivo compatível e do seguinte hardware:

****
+ **Monitor**: um monitor com entrada HDMI para visualizar a saída da aplicação de exemplo.
+ **Unidade USB** (incluída no AWS Panorama Appliance) — Uma unidade FAT32 de memória flash USB 3.0 formatada com pelo menos 1 GB de armazenamento, para transferir um arquivo com arquivos de configuração e um certificado para o AWS Panorama Appliance.
+ **Câmera**: uma câmera IP que envia um stream de vídeo RTSP.

Use as ferramentas e instruções fornecidas pelo fabricante da câmera para identificar o endereço IP e o caminho de transmissão da câmera. Você pode usar um reprodutor de vídeo, como o [VLC](https://www.videolan.org/), para verificar o URL do stream, abrindo-o como uma fonte de mídia de rede:

![\[\]](http://docs.aws.amazon.com/pt_br/panorama/latest/dev/images/vlc-stream.png)


O console do AWS Panorama usa outros serviços da AWS para montar componentes de aplicações, gerenciar permissões e verificar configurações. Para registrar um dispositivo e implantar a aplicação de exemplo, você precisa das seguintes permissões:

****
+ [AWSPanoramaFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSPanoramaFullAccess)— Fornece acesso total ao AWS Panorama, aos pontos de acesso do AWS Panorama no Amazon S3, às credenciais do dispositivo e aos registros do dispositivo na AWS Secrets Manager Amazon. CloudWatch Inclui permissão para criar um [perfil vinculado ao serviço](permissions-services.md) para o AWS Panorama.
+ **AWS Identity and Access Management (IAM)** — Na primeira execução, para criar funções usadas pelo serviço AWS Panorama e pelo AWS Panorama Appliance.

Se você não tiver permissão para criar perfis no IAM, peça a um administrador que abra [o console do AWS Panorama](https://console.aws.amazon.com/panorama/home) e aceite a solicitação para criar perfis de serviço.

## Registro e configuração do AWS Panorama Appliance
<a name="gettingstarted-device"></a>

O AWS Panorama Appliance é um dispositivo de hardware que se conecta a câmeras habilitadas para rede por meio de uma conexão de rede local. Ele usa um sistema operacional baseado em Linux que inclui o SDK para aplicações do AWS Panorama e software de suporte para execução de aplicações de visão computacional.

Para se conectar ao AWS gerenciamento do equipamento e à implantação do aplicativo, o equipamento usa um certificado de dispositivo. Você usa o console do AWS Panorama para gerar um certificado de provisionamento. O dispositivo usa esse certificado temporário para concluir a configuração inicial e baixar um certificado de dispositivo permanente.

**Importante**  
O certificado de provisionamento que você gera nesse procedimento só é válido por 5 minutos. Se você não concluir o processo de registro dentro desse prazo, deverá começar de novo.

**Para registrar um dispositivo**

1. Conecte a unidade USB ao seu computador. Prepare o dispositivo conectando os cabos de rede e de alimentação. O dispositivo é ligado e aguarda a conexão de uma unidade USB.

1. Abra a [Página de conceitos básicos](https://console.aws.amazon.com/panorama/home#getting-started) do console do AWS Panorama.

1. Escolha **Adicionar dispositivo**.

1. Escolha **Iniciar configuração**.

1. Insira um nome e uma descrição para o recurso de dispositivo que representa o dispositivo no AWS Panorama. Escolha **Próximo**.  
![\[\]](http://docs.aws.amazon.com/pt_br/panorama/latest/dev/images/setup-name.png)

1. Se você precisar atribuir manualmente um endereço IP, um servidor NTP ou configurações de DNS, escolha **Configurações de rede avançadas**. Caso contrário, escolha **Next**.

1. Escolha **Baixar arquivo**. Escolha **Próximo**.

1. Copie o arquivo de configuração para o diretório raiz da unidade USB.

1. Conecte a unidade USB à porta USB 3.0 na parte frontal do aparelho, ao lado da porta HDMI.

   Quando você conecta a unidade USB, o equipamento copia o arquivo de configuração e o arquivo de configuração de rede para si mesmo e se conecta à AWS nuvem. A luz de status do dispositivo muda de verde para azul quando ele conclui a conexão, e depois volta para verde.

1. Para continuar, escolha **Avançar**.  
![\[\]](http://docs.aws.amazon.com/pt_br/panorama/latest/dev/images/setup-poweron.png)

1. Selecione **Concluído**.

## Atualize o software do dispositivo
<a name="gettingstarted-upgrade"></a>

O AWS Panorama Appliance tem vários componentes de software, incluindo um sistema operacional Linux, o [SDK para aplicações do AWS Panorama](applications-panoramasdk.md) e o suporte de bibliotecas e estruturas de visão computacional. Para garantir que você possa usar os atributos e aplicações mais recentes com seu dispositivo, atualize o software após a configuração e sempre que houver uma atualização disponível.

**Para atualizar o software do dispositivo**

1. Abra a [página Dispositivos](https://console.aws.amazon.com/panorama/home#devices) do console do AWS Panorama.

1. Escolha um dispositivo.

1. Escolha **Configurações**

1. Em **Software do sistema**, escolha **Instalar atualização de software**.  
![\[\]](http://docs.aws.amazon.com/pt_br/panorama/latest/dev/images/setup-upgrade.png)

1. Escolha uma nova versão e, em seguida, selecione **Instalar**.

**Importante**  
Antes de continuar, remova a unidade USB do dispositivo e formate-a para excluir seu conteúdo. O arquivo de configuração contém dados confidenciais e não é excluído automaticamente.

O processo de atualização pode demorar 30 minutos ou mais para ser concluído. Você pode monitorar seu progresso no console do AWS Panorama ou em um monitor conectado. Quando o processo for concluído, o dispositivo será reinicializado.

## Adição de um stream de câmera
<a name="gettingstarted-setup-camera"></a>

Em seguida, registre um stream de câmera no console do AWS Panorama.

**Para registrar um stream de câmera**

1. Abra a [Página de fontes de dados](https://console.aws.amazon.com/panorama/home#data-sources) do console do AWS Panorama.

1. Escolha **Adicionar fonte de dados**.  
![\[\]](http://docs.aws.amazon.com/pt_br/panorama/latest/dev/images/setup-addstream.png)

1. Configure as definições a seguir.

****
   + **Nome**: um nome para o stream da câmera.
   + **Descrição**: uma breve descrição da câmera, sua localização ou outros detalhes.
   + **URL RTSP**: URL que especifica o endereço IP da câmera e o caminho para o stream. Por exemplo, `rtsp://192.168.0.77/live/mpeg4/`
   + **Credenciais**: se o stream da câmera estiver protegido por senha, especifique o nome de usuário e a senha.

1. Escolha **Salvar**.

 O AWS Panorama armazena as credenciais da sua câmera com segurança em. AWS Secrets Manager Várias aplicações podem processar o mesmo stream de câmera simultaneamente.

## Próximas etapas
<a name="gettingstarted-setup-nextsteps"></a>

Se você encontrou erros durante a configuração, consulte [Solução de problemas](panorama-troubleshooting.md).

Para implantar uma aplicação de exemplo, vá para [o próximo tópico](gettingstarted-deploy.md).

# Implantação da aplicação de exemplo do AWS Panorama
<a name="gettingstarted-deploy"></a>

Depois de [configurar seu AWS Panorama Appliance ou dispositivo compatível](gettingstarted-setup.md) 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.

**Topics**
+ [Pré-requisitos](#gettingstarted-deploy-prerequisites)
+ [Importe a aplicação de exemplo](#gettingstarted-deploy-import)
+ [Implantar a aplicação](#gettingstarted-deploy-deploy)
+ [Visualizar a saída](#gettingstarted-deploy-view)
+ [Habilitar o SDK para Python](#gettingstarted-deploy-redeploy)
+ [Limpeza](#gettingstarted-deploy-cleanup)
+ [Próximas etapas](#gettingstarted-deploy-next)

## Pré-requisitos
<a name="gettingstarted-deploy-prerequisites"></a>

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 (\$1) 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](https://docs.microsoft.com/en-us/windows/wsl/install-win10) 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](applications-devenvwindows.md).

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](https://www.python.org/downloads/). 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](https://docs.docker.com/get-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 do aplicativo AWS Panorama usa o AWS Command Line Interface (AWS CLI) para chamar as operações de API do serviço. Se você já tiver o AWS CLI, atualize-o para a versão mais recente. Para instalar a CLI do aplicativo AWS Panorama e AWS CLI, use. `pip`

```
$ pip3 install --upgrade awscli panoramacli
```

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

****
+ **Exemplo de aplicativo** — [aws-panorama-sample.zip](https://github.com/awsdocs/aws-panorama-developer-guide/releases/download/v1.0-ga/aws-panorama-sample.zip)

## Importe a aplicação de exemplo
<a name="gettingstarted-deploy-import"></a>

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
<a name="gettingstarted-deploy-deploy"></a>

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](https://console.aws.amazon.com/panorama/home#deployed-applications) do console do AWS Panorama.

1. Escolha **Implantar aplicação**.

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

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

1. Escolha **Prosseguir para a implantação**.

1. Escolha **Iniciar implantação**.

1. Escolha **Avançar** sem selecionar um perfil.

1. Escolha **Selecionar dispositivo** e, em seguida, escolha seu dispositivo. Escolha **Próximo**.

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

1. Na etapa **Configurar**, escolha **Avançar**.

1. Escolha **Implantar** e **Concluído**.

1. Na lista de aplicativos implantados, 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.

**Example 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 o aplicativo não começar a ser executado, verifique os [registros do aplicativo e do dispositivo](monitoring-logging.md) no Amazon CloudWatch Logs.

## Visualizar a saída
<a name="gettingstarted-deploy-view"></a>

 Quando a implantação estiver concluída, o aplicativo começará a processar o stream de vídeo e enviará os registros para CloudWatch o.

**Para ver registros em CloudWatch Registros**

1. Abra a [página Grupos de CloudWatch registros do console de registros](https://console.aws.amazon.com/cloudwatch/home#logsV2:log-groups).

1. 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.

**Example [squeezenet\$1classes.json](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/packages/123456789012-SAMPLE_CODE-1.0/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é.

![\[\]](http://docs.aws.amazon.com/pt_br/panorama/latest/dev/images/mug.jpg)


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](panorama-samples.md).

## Habilitar o SDK para Python
<a name="gettingstarted-deploy-redeploy"></a>

O aplicativo de amostra usa o AWS SDK para Python (Boto) para enviar métricas para a 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.

O aplicativo de amostra inclui um CloudFormation modelo que cria uma função 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](https://console.aws.amazon.com/panorama/home#deployed-applications) do console do AWS Panorama.

1. Escolha a aplicação.

1. Selecione **Replace (Substituir)**.

1. 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`.

1. Quando a implantação for concluída, abra o [CloudWatchconsole](https://console.aws.amazon.com/cloudwatch/home#metricsV2:graph=~();namespace=~'AWSPanoramaApplication) e visualize as métricas no `AWSPanoramaApplication` namespace. A cada 150 quadros, a aplicação registra e carrega métricas para processamento de quadros e tempo de inferência.

## Limpeza
<a name="gettingstarted-deploy-cleanup"></a>

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](https://console.aws.amazon.com/panorama/home#deployed-applications) do console do AWS Panorama.

1. Escolha a aplicação.

1. Escolha **Excluir do dispositivo**.

## Próximas etapas
<a name="gettingstarted-deploy-next"></a>

Se você encontrar erros ao implantar ou executar a aplicação de exemplo, consulte [Solução de problemas](panorama-troubleshooting.md).

Para saber mais sobre os atributos e a implementação da aplicação de exemplo, continue com o [próximo tópico](gettingstarted-sample.md).

# Desenvolvimento de aplicativos do AWS Panorama
<a name="gettingstarted-sample"></a>

Você pode usar a aplicação de exemplo para saber como usar a estrutura da aplicação do AWS Panorama e como ponto de partida para sua própria aplicação.

O diagrama a seguir mostra os principais componentes da aplicação em execução em um dispositivo AWS Panorama. O código da aplicação usa o SDK para aplicações do AWS Panorama para obter imagens e interagir com o modelo, ao qual ele não tem acesso direto. A aplicação envia vídeos para um monitor conectado, mas não envia dados de imagem para fora da rede local.

![\[\]](http://docs.aws.amazon.com/pt_br/panorama/latest/dev/images/sample-app.png)


Neste exemplo, a aplicação usa o SDK para aplicações do AWS Panorama para obter quadros de vídeo de uma câmera, pré-processar os dados do vídeo e enviar os dados para um modelo de visão computacional que detecta objetos. A aplicação exibe o resultado em um monitor HDMI conectado ao aparelho.

**Topics**
+ [O manifesto da aplicação](#gettingstarted-sample-manifest)
+ [Compilação com a aplicação de exemplo](#gettingstarted-sample-adapting)
+ [Alteração do modelo de visão computacional](#gettingstarted-sample-model)
+ [Pré-processamento de imagens](#gettingstarted-sample-preprocessing)
+ [Upload de métricas com o SDK para Python](#gettingstarted-sample-metrics)
+ [Próximas etapas](#gettingstarted-sample-nextsteps)

## O manifesto da aplicação
<a name="gettingstarted-sample-manifest"></a>

O manifesto da aplicação é um arquivo chamado `graph.json` na `graphs` pasta. O manifesto define os componentes da aplicação, que são pacotes, nós e bordas.

Os pacotes são arquivos binários, de código e de configuração com informações de código de aplicação, modelos, câmeras e monitores. O aplicativo de exemplo usa 4 pacotes:

**Example Pacotes do `graphs/aws-panorama-sample/graph.json`**  

```
        "packages": [
            {
                "name": "123456789012::SAMPLE_CODE",
                "version": "1.0"
            },
            {
                "name": "123456789012::SQUEEZENET_PYTORCH_V1",
                "version": "1.0"
            },
            {
                "name": "panorama::abstract_rtsp_media_source",
                "version": "1.0"
            },
            {
                "name": "panorama::hdmi_data_sink",
                "version": "1.0"
            }
        ],
```

Os dois primeiros pacotes são definidos na aplicação, no diretório `packages`. Eles contêm o código e o modelo específicos dessa aplicação. Os dois segundos pacotes são pacotes genéricos de câmeras e monitor fornecidos pelo serviço AWS Panorama. O pacote `abstract_rtsp_media_source` é um espaço reservado para uma câmera, que é substituído durante a implantação. O pacote `hdmi_data_sink` representa o conector de saída HDMI no dispositivo.

Os nós são interfaces para pacotes, bem como parâmetros que não são de pacotes e que podem ter valores padrão que serão substituídos no momento da implantação. Os pacotes de código e modelo definem interfaces em arquivos `package.json` que especificam entradas e saídas, que podem ser streams de vídeo ou um tipo de dados básico, como float, booleano ou string.

Por exemplo, o nó `code_node` se refere a uma interface do pacote `SAMPLE_CODE`.

```
        "nodes": [
            {
                "name": "code_node",
                "interface": "123456789012::SAMPLE_CODE.interface",
                "overridable": false,
                "launch": "onAppStart"
            },
```

Essa interface é definida no arquivo de configuração do pacote, `package.json`. A interface especifica que o pacote é uma lógica de negócios e que usa um stream de vídeo chamado `video_in` e um número de ponto flutuante chamado `threshold` como entradas. A interface também especifica que o código requer um buffer de stream de vídeo chamado `video_out` para enviar vídeo para um monitor.

**Example `packages/123456789012-SAMPLE_CODE-1.0/package.json`**  

```
{
    "nodePackage": {
        "envelopeVersion": "2021-01-01",
        "name": "SAMPLE_CODE",
        "version": "1.0",
        "description": "Computer vision application code.",
        "assets": [],
        "interfaces": [
            {
                "name": "interface",
                "category": "business_logic",
                "asset": "code_asset",
                "inputs": [
                    {
                        "name": "video_in",
                        "type": "media"
                    },
                    {
                        "name": "threshold",
                        "type": "float32"
                    }
                ],
                "outputs": [
                    {
                        "description": "Video stream output",
                        "name": "video_out",
                        "type": "media"
                    }
                ]
            }
        ]
    }
}
```

De volta ao manifesto da aplicação, o nó `camera_node` representa um stream de vídeo de uma câmera. Ele inclui um decorador que aparece no console quando você implanta a aplicação, solicitando que você escolha um stream de uma câmera.

**Example Nós de câmera do `graphs/aws-panorama-sample/graph.json`**  

```
            {
                "name": "camera_node",
                "interface": "panorama::abstract_rtsp_media_source.rtsp_v1_interface",
                "overridable": true,
                "launch": "onAppStart",
                "decorator": {
                    "title": "Camera",
                    "description": "Choose a camera stream."
                }
            },
```

Um nó de parâmetro `threshold_param` define o parâmetro de limite de confiança usado pelo código da aplicação. Ele tem um valor padrão de 60 e pode ser substituído durante a implantação.

**Example Nó de parâmetro do `graphs/aws-panorama-sample/graph.json`**  

```
            {
                "name": "threshold_param",
                "interface": "float32",
                "value": 60.0,
                "overridable": true,
                "decorator": {
                    "title": "Confidence threshold",
                    "description": "The minimum confidence for a classification to be recorded."
                }
            }
```

A seção final do manifesto da aplicação, `edges`, faz conexões entre os nós. O stream de vídeo da câmera e o parâmetro de limite se conectam à entrada do nó do código, e a saída de vídeo do nó do código se conecta ao monitor.

**Example Bordas do `graphs/aws-panorama-sample/graph.json`**  

```
        "edges": [
            {
                "producer": "camera_node.video_out",
                "consumer": "code_node.video_in"
            },
            {
                "producer": "code_node.video_out",
                "consumer": "output_node.video_in"
            },
            {
                "producer": "threshold_param",
                "consumer": "code_node.threshold"
            }
        ]
```

## Compilação com a aplicação de exemplo
<a name="gettingstarted-sample-adapting"></a>

Você pode usar a aplicação exemplo como um ponto de partida para criar sua própria aplicação.

O nome de cada pacote deve ser exclusivo em sua conta. Se você e outro usuário da sua conta usarem um nome de pacote genérico, como `code` ou`model`, você poderá obter a versão errada do pacote ao implantar. Altere o nome do pacote de código para um nome que represente sua aplicação.

**Para renomear o pacote de código**

1. Renomeie a pasta do pacote: `packages/123456789012-SAMPLE_CODE-1.0/`.

1. Atualize o nome do pacote nos seguintes locais.

****
   + **Manifesto da aplicação**: `graphs/aws-panorama-sample/graph.json`
   + **Configuração do pacote**: `packages/123456789012-SAMPLE_CODE-1.0/package.json`
   + **Script de compilação**: `3-build-container.sh`

**Para atualizar o código do aplicativo**

1. Modifique o código da aplicação em `packages/123456789012-SAMPLE_CODE-1.0/src/application.py`.

1. Para criar o contêiner, execute `3-build-container.sh`.

   ```
   aws-panorama-sample$ ./3-build-container.sh
   TMPDIR=$(pwd) docker build -t code_asset packages/123456789012-SAMPLE_CODE-1.0
   Sending build context to Docker daemon  61.44kB
   Step 1/2 : FROM public.ecr.aws/panorama/panorama-application
    ---> 9b197f256b48
   Step 2/2 : COPY src /panorama
    ---> 55c35755e9d2
   Successfully built 55c35755e9d2
   Successfully tagged code_asset:latest
   docker export --output=code_asset.tar $(docker create code_asset:latest)
   gzip -9 code_asset.tar
   Updating an existing asset with the same name
   {
       "name": "code_asset",
       "implementations": [
           {
               "type": "container",
               "assetUri": "98aaxmpl1c1ef64cde5ac13bd3be5394e5d17064beccee963b4095d83083c343.tar.gz",
               "descriptorUri": "1872xmpl129481ed053c52e66d6af8b030f9eb69b1168a29012f01c7034d7a8f.json"
           }
       ]
   }
   Container asset for the package has been succesfully built at  ~/aws-panorama-sample-dev/assets/98aaxmpl1c1ef64cde5ac13bd3be5394e5d17064beccee963b4095d83083c343.tar.gz
   ```

   A CLI exclui automaticamente o ativo de contêiner antigo da pasta `assets` e atualiza a configuração do pacote.

1. Para carregar os pacotes, execute `4-package-application.py`.

1. Abra a [Página de aplicações implantadas](https://console.aws.amazon.com/panorama/home#deployed-applications) do console do AWS Panorama.

1. Escolha a aplicação.

1. Selecione **Replace (Substituir)**.

1. Conclua as etapas para implantar a aplicação. Se necessário, você pode fazer alterações no manifesto da aplicação, nos streams da câmera ou nos parâmetros.

## Alteração do modelo de visão computacional
<a name="gettingstarted-sample-model"></a>

A aplicação de exemplo inclui um modelo de visão computacional. Para usar seu próprio modelo, modifique a configuração do nó do modelo e use a CLI da aplicação do AWS Panorama para importá-lo como um ativo.

[O exemplo a seguir usa um modelo MXNet SSD ResNet 5.0 que você pode baixar do GitHub repositório deste guia: ssd\$1512\$1resnet50\$1v1\$1voc.tar.gz](https://github.com/awsdocs/aws-panorama-developer-guide/releases/download/v0.1-preview/ssd_512_resnet50_v1_voc.tar.gz)

**Para alterar o modelo da aplicação de exemplo**

1. Renomeie a pasta do pacote de forma que o nome dela corresponda ao seu modelo. Por exemplo, para `packages/123456789012-SSD_512_RESNET50_V1_VOC-1.0/`.

1. Atualize o nome do pacote nos seguintes locais.

****
   + **Manifesto da aplicação**: `graphs/aws-panorama-sample/graph.json`
   + **Configuração do pacote**: `packages/123456789012-SSD_512_RESNET50_V1_VOC-1.0/package.json`

1. No arquivo de configuração do pacote (`package.json`). Altere o valor `assets` para uma matriz em branco.

   ```
   {
       "nodePackage": {
           "envelopeVersion": "2021-01-01",
           "name": "SSD_512_RESNET50_V1_VOC",
           "version": "1.0",
           "description": "Compact classification model",
           "assets": [],
   ```

1. Abra o arquivo descritor do pacote (`descriptor.json`). Atualize os valores `framework` e `shape` para que correspondam ao seu modelo.

   ```
   {
       "mlModelDescriptor": {
           "envelopeVersion": "2021-01-01",
           "framework": "MXNET",
           "inputs": [
               {
                   "name": "data",
                   "shape": [ 1, 3, 512, 512 ]
               }
           ]
       }
   }
   ```

   O valor da **forma**, `1,3,512,512`, indica o número de imagens que o modelo usa como entrada (1), o número de canais em cada imagem (3- vermelho, verde e azul) e as dimensões da imagem (512 x 512). Os valores e a ordem da matriz variam entre os modelos.

1. Importe o modelo com a CLI da aplicação do AWS Panorama. A CLI da aplicação do AWS Panorama copia os arquivos de modelo e descritor na pasta `assets` com nomes exclusivos e atualiza a configuração do pacote.

   ```
   aws-panorama-sample$ panorama-cli add-raw-model --model-asset-name model-asset \
   --model-local-path ssd_512_resnet50_v1_voc.tar.gz \
   --descriptor-path packages/123456789012-SSD_512_RESNET50_V1_VOC-1.0/descriptor.json \
   --packages-path packages/123456789012-SSD_512_RESNET50_V1_VOC-1.0
   {
       "name": "model-asset",
       "implementations": [
           {
               "type": "model",
               "assetUri": "b1a1589afe449b346ff47375c284a1998c3e1522b418a7be8910414911784ce1.tar.gz",
               "descriptorUri": "a6a9508953f393f182f05f8beaa86b83325f4a535a5928580273e7fe26f79e78.json"
           }
       ]
   }
   ```

1. Para fazer o upload do modelo, execute `panorama-cli package-application`.

   ```
   $ panorama-cli package-application
   Uploading package SAMPLE_CODE
   Patch Version 1844d5a59150d33f6054b04bac527a1771fd2365e05f990ccd8444a5ab775809 already registered, ignoring upload
   Uploading package SSD_512_RESNET50_V1_VOC
   Patch version for the package 244a63c74d01e082ad012ebf21e67eef5d81ce0de4d6ad1ae2b69d0bc498c8fd
   upload: assets/b1a1589afe449b346ff47375c284a1998c3e1522b418a7be8910414911784ce1.tar.gz to s3://arn:aws:s3:us-west-2:454554846382:accesspoint/panorama-123456789012-wc66m5eishf4si4sz5jefhx
   63a/123456789012/nodePackages/SSD_512_RESNET50_V1_VOC/binaries/b1a1589afe449b346ff47375c284a1998c3e1522b418a7be8910414911784ce1.tar.gz
   upload: assets/a6a9508953f393f182f05f8beaa86b83325f4a535a5928580273e7fe26f79e78.json to s3://arn:aws:s3:us-west-2:454554846382:accesspoint/panorama-123456789012-wc66m5eishf4si4sz5jefhx63
   a/123456789012/nodePackages/SSD_512_RESNET50_V1_VOC/binaries/a6a9508953f393f182f05f8beaa86b83325f4a535a5928580273e7fe26f79e78.json
   {
       "ETag": "\"2381dabba34f4bc0100c478e67e9ab5e\"",
       "ServerSideEncryption": "AES256",
       "VersionId": "KbY5fpESdpYamjWZ0YyGqHo3.LQQWUC2"
   }
   Registered SSD_512_RESNET50_V1_VOC with patch version 244a63c74d01e082ad012ebf21e67eef5d81ce0de4d6ad1ae2b69d0bc498c8fd
   Uploading package SQUEEZENET_PYTORCH_V1
   Patch Version 568138c430e0345061bb36f05a04a1458ac834cd6f93bf18fdacdffb62685530 already registered, ignoring upload
   ```

1. Atualize o código do aplicativo. A maior parte do código pode ser reutilizada. O código específico para a resposta do modelo está no método `process_results`.

   ```
       def process_results(self, inference_results, stream):
           """Processes output tensors from a computer vision model and annotates a video frame."""
           for class_tuple in inference_results:
               indexes = self.topk(class_tuple[0])
           for j in range(2):
               label = 'Class [%s], with probability %.3f.'% (self.classes[indexes[j]], class_tuple[0][indexes[j]])
               stream.add_label(label, 0.1, 0.25 + 0.1*j)
   ```

   Dependendo do seu modelo, talvez você também precise atualizar o método `preprocess`.

## Pré-processamento de imagens
<a name="gettingstarted-sample-preprocessing"></a>

Antes de a aplicação enviar uma imagem para o modelo, ela a prepara para inferência redimensionando-a e normalizando os dados de cores. O modelo usado pela aplicação requer uma imagem de 224 x 224 pixels com três canais de cores, para corresponder ao número de entradas em sua primeira camada. A aplicação ajusta cada valor de cor convertendo-o em um número entre 0 e 1, subtraindo o valor médio dessa cor e dividindo o resultado pelo desvio padrão. Por fim, ele combina os canais de cores e os converte em uma NumPy matriz que o modelo pode processar.

**Example [application.py](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/packages/123456789012-SAMPLE_CODE-1.0/application.py): pré-processamento**  

```
    def preprocess(self, img, width):
        resized = cv2.resize(img, (width, width))
        mean = [0.485, 0.456, 0.406]
        std = [0.229, 0.224, 0.225]
        img = resized.astype(np.float32) / 255.
        img_a = img[:, :, 0]
        img_b = img[:, :, 1]
        img_c = img[:, :, 2]
        # Normalize data in each channel
        img_a = (img_a - mean[0]) / std[0]
        img_b = (img_b - mean[1]) / std[1]
        img_c = (img_c - mean[2]) / std[2]
        # Put the channels back together
        x1 = [[[], [], []]]
        x1[0][0] = img_a
        x1[0][1] = img_b
        x1[0][2] = img_c
        return np.asarray(x1)
```

Esse processo fornece os valores do modelo em uma faixa previsível centrada em torno de 0. O processo corresponde ao pré-processamento aplicado às imagens no conjunto de dados de treinamento, que é uma abordagem padrão, mas pode variar de acordo com o modelo.

## Upload de métricas com o SDK para Python
<a name="gettingstarted-sample-metrics"></a>

O aplicativo de amostra usa o SDK para Python para fazer upload de métricas para a Amazon. CloudWatch

**Example [application.py](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/packages/123456789012-SAMPLE_CODE-1.0/application.py): SDK para Python**  

```
    def process_streams(self):
        """Processes one frame of video from one or more video streams."""
        ...
            logger.info('epoch length: {:.3f} s ({:.3f} FPS)'.format(epoch_time, epoch_fps))
            logger.info('avg inference time: {:.3f} ms'.format(avg_inference_time))
            logger.info('max inference time: {:.3f} ms'.format(max_inference_time))
            logger.info('avg frame processing time: {:.3f} ms'.format(avg_frame_processing_time))
            logger.info('max frame processing time: {:.3f} ms'.format(max_frame_processing_time))
            self.inference_time_ms = 0
            self.inference_time_max = 0
            self.frame_time_ms = 0
            self.frame_time_max = 0
            self.epoch_start = time.time()
            self.put_metric_data('AverageInferenceTime', avg_inference_time)
            self.put_metric_data('AverageFrameProcessingTime', avg_frame_processing_time)
 
    def put_metric_data(self, metric_name, metric_value):
        """Sends a performance metric to CloudWatch."""
        namespace = 'AWSPanoramaApplication'
        dimension_name = 'Application Name'
        dimension_value = 'aws-panorama-sample'
        try:
            metric = self.cloudwatch.Metric(namespace, metric_name)
            metric.put_data(
                Namespace=namespace,
                MetricData=[{
                    'MetricName': metric_name,
                    'Value': metric_value,
                    'Unit': 'Milliseconds',
                    'Dimensions': [
                        {
                            'Name': dimension_name,
                            'Value': dimension_value
                        },
                        {
                            'Name': 'Device ID',
                            'Value': self.device_id
                        }
                    ]
                }]
            )
            logger.info("Put data for metric %s.%s", namespace, metric_name)
        except ClientError:
            logger.warning("Couldn't put data for metric %s.%s", namespace, metric_name)
        except AttributeError:
            logger.warning("CloudWatch client is not available.")
```

Ela obtém permissão de uma função de runtime que você atribui durante a implantação. A função é definida no `aws-panorama-sample.yml` CloudFormation modelo.

**Example [aws-panorama-sample.yml](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/aws-panorama-sample.yml)**  

```
Resources:
  runtimeRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"		 	 	 
        Statement:
          -
            Effect: Allow
            Principal:
              Service:
                - panorama.amazonaws.com
            Action:
              - sts:AssumeRole
      Policies:
        - PolicyName: cloudwatch-putmetrics
          PolicyDocument:
            Version: 2012-10-17		 	 	 
            Statement:
              - Effect: Allow
                Action: 'cloudwatch:PutMetricData'
                Resource: '*'
      Path: /service-role/
```

A aplicação de exemplo instala o SDK para Python e outras dependências com pip. Quando você cria o contêiner da aplicação, o `Dockerfile` executa comandos para instalar bibliotecas acima do que vem com a imagem base.

**Example [Dockerfile](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/packages/123456789012-SAMPLE_CODE-1.0/Dockerfile)**  

```
FROM public.ecr.aws/panorama/panorama-application
WORKDIR /panorama
COPY . .
RUN pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir -r requirements.txt
```

Para usar o AWS SDK no código do seu aplicativo, primeiro modifique o modelo para adicionar permissões para todas as ações de API que o aplicativo usa. Atualize a CloudFormation pilha executando o `1-create-role.sh` sempre que fizer uma alteração. Em seguida, implante as alterações no código da sua aplicação.

Para ações que modificam ou usam recursos existentes, é uma prática recomendada minimizar o escopo dessa política especificando um nome ou padrão para o destino `Resource` em uma declaração separada. Para obter detalhes sobre as ações e os recursos compatíveis com cada serviço, consulte [Ação, recursos e chaves de condição](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) na Referência de autorização do serviço

## Próximas etapas
<a name="gettingstarted-sample-nextsteps"></a>

Para obter instruções sobre como usar a CLI da aplicação do AWS Panorama para criar aplicações e pacotes do zero, consulte o README da CLI.

****
+ [github. com/aws/aws-clipe panorâmico](https://github.com/aws/aws-panorama-cli)

Para obter mais exemplos de código e um utilitário de teste que você pode usar para validar o código da sua aplicação antes da implantação, visite o repositório de exemplos do AWS Panorama.

****
+ [github. com/aws-samples/aws-amostras panorâmicas](https://github.com/aws-samples/aws-panorama-samples)

# Modelos e câmeras de visão computacional compatíveis
<a name="gettingstarted-compatibility"></a>

O AWS Panorama oferece suporte a modelos criados com PyTorch MXNet, Apache e. TensorFlow Quando você implanta um aplicativo, o AWS Panorama compila seu modelo no SageMaker AI Neo. Você pode criar modelos na Amazon SageMaker AI ou em seu ambiente de desenvolvimento, desde que use camadas compatíveis com o SageMaker AI Neo. 

Para processar vídeos e enviar imagens para um modelo, o AWS Panorama Appliance se conecta a um stream de vídeo codificado em H.264 com o protocolo RTSP. O AWS Panorama testa diversas câmeras comuns para verificar a compatibilidade.

**Topics**
+ [Modelos compatíveis](#gettingstarted-compatibility-models)
+ [Câmeras compatíveis](#gettingstarted-compatibility-cameras)

## Modelos compatíveis
<a name="gettingstarted-compatibility-models"></a>

Ao criar uma aplicação para o AWS Panorama, você fornece um modelo de machine learning que a aplicação usa para visão computacional. Você pode usar modelos pré-criados e pré-treinados fornecidos por estruturas de modelo, [um modelo de exemplo](gettingstarted-sample.md#gettingstarted-sample-model) ou um modelo que você mesmo cria e treina.

**nota**  
Para obter uma lista de modelos pré-criados que foram testados com o AWS Panorama, consulte [Compatibilidade de modelos](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/resources/model-compatibility.md).

Quando você implanta um aplicativo, o AWS Panorama usa o compilador SageMaker AI Neo para compilar seu modelo de visão computacional. SageMaker O AI Neo é um compilador que otimiza modelos para serem executados com eficiência em uma plataforma de destino, que pode ser uma instância no Amazon Elastic Compute Cloud (Amazon EC2) ou um dispositivo de ponta, como o AWS Panorama Appliance.

O AWS Panorama oferece suporte às versões do PyTorch Apache MXNet e TensorFlow que são compatíveis com dispositivos de ponta pelo SageMaker AI Neo. Ao criar seu próprio modelo, você pode usar as versões da estrutura listadas nas [notas de lançamento do SageMaker AI Neo](https://aws.amazon.com/releasenotes/sagemaker-neo-supported-frameworks-and-operators/). Na SageMaker IA, você pode usar o [algoritmo de classificação de imagens](https://docs.aws.amazon.com/sagemaker/latest/dg/image-classification.html) incorporado.

Para obter mais informações sobre o uso de modelos no AWS Panorama, consulte [Modelos de visão computacional](applications-models.md).

## Câmeras compatíveis
<a name="gettingstarted-compatibility-cameras"></a>

O AWS Panorama Appliance suporta streams de vídeo H.264 de câmeras com saída RTSP em uma rede local. Para streams de câmera maiores que 2 megapixels, o dispositivo reduz a imagem para 1920 x 1080 pixels ou um tamanho equivalente que preserva a proporção do stream.

Os seguintes modelos de câmera foram testados quanto à compatibilidade com o AWS Panorama Appliance:
+ [Axis](https://www.axis.com/): M3057-PLVE, M3058-PLVE, P1448-LE, P3225-LV Mk II
+ [LaView](https://www.laviewsecurity.com/)— LV- 400W PB3
+ [Vivotek](https://www.vivotek.com/) — 0-H IB936
+ [Amcrest](https://amcrest.com/) — M-841B IP2
+ **Anpviz**: IPC-B850W-S-3X, IPC-D250W-S
+ **WGCC**: Dome PoE de 4 MP ONVIF

Para obter as especificações de hardware do dispositivo, consulte [Especificações do AWS Panorama Appliance](gettingstarted-hardware.md).

# Especificações do AWS Panorama Appliance
<a name="gettingstarted-hardware"></a>

O AWS Panorama Appliance tem as seguintes especificações de hardware. Para conhecer outros [dispositivos compatíveis](gettingstarted-concepts.md#gettingstarted-concepts-devices), consulte a documentação do fabricante.


| Componente | Especificação | 
| --- | --- | 
|  Processador e GPU  |  [Nvidia Jetson AGX Xavier](https://developer.nvidia.com/embedded/jetson-agx-xavier-developer-kit) com 32 GB de RAM  | 
|  Ethernet  |  2x 1000 Base-T (Gigabyte)  | 
|  USB  |  1x USB 2.0 e 1x USB 3.0 tipo A fêmea  | 
|  Saída do HDMI  |  2.0a  | 
|  Dimensões  |  197 mm x 243 mm x 40 mm  | 
|  Weight  |  1,7 kg  | 
|  Fonte de alimentação  |  100 a 240 V 50 a 60 Hz CA 65 W  | 
|  Entrada de energia  |  Tomada IEC 60320 C6 (3 pinos)  | 
|  Proteção contra poeira e líquidos  |  IP-62  | 
|  Conformidade regulatória EMI/EMC  |  FCC Parte 15 (EUA)   | 
|  Limites do toque térmico  |  IEC-62368  | 
|  Temperatura de operação  |  -20°C a 60°C  | 
|  Umidade operacional  |  0% a 95% RH  | 
|  Temperatura de armazenamento  |  -20°C a 85°C  | 
|  Umidade do armazenamento  |  Não controlado para baixa temperatura. 90% RH em alta temperatura   | 
|  Resfriamento  |  Extração de calor por ar forçado (ventilador)  | 
|  Opções de montagem  |  Montagem em rack ou independente  | 
|  Cabo de alimentação  |  1,8 metros  | 
|  Controle de potência  |  Botão de pressão  | 
|  Redefinir  |  Interruptor momentâneo  | 
|  Status e rede LEDs  |  LED RGB programável de 3 cores  | 

O dispositivo apresenta Wi-Fi, Bluetooth e armazenamento para cartão SD, mas essas funcionalidades não podem ser usadas.

O AWS Panorama Appliance inclui dois parafusos para montagem em um rack de servidor. Você pode montar dois aparelhos side-by-side em um rack de 19 polegadas.

# Cotas de serviço
<a name="gettingstarted-quotas"></a>

O AWS Panorama aplica cotas aos recursos que você cria em sua conta e as aplicações que você implanta. Se você usa o AWS Panorama em várias AWS regiões, as cotas se aplicam separadamente a cada região. As cotas para AWS Panorama não são ajustáveis.

Os recursos no AWS Panorama incluem dispositivos, pacotes de nós de aplicações e instâncias de aplicações.

****
+ **Dispositivos**: até 50 dispositivos registrados por Região.
+ **Pacotes de nós**: 50 pacotes por Região, com até 20 versões por pacote.
+ **Instâncias de aplicações**: até 10 aplicações por dispositivo. Cada aplicação pode monitorar até 8 streams de câmera. As implantações são limitadas a 200 por dia para cada dispositivo.

Quando você usa o AWS Panorama Application CLI ou AWS SDK com o serviço AWS Panorama, as cotas se aplicam ao número de chamadas de API que você faz. AWS Command Line Interface Você pode fazer até cinco solicitações no total por segundo. Um subconjunto de operações de API que criam ou modificam recursos aplica um limite adicional de 1 solicitação por segundo.

Para obter uma lista completa de cotas, acesse o [console do Service Quotas](https://console.aws.amazon.com/servicequotas/home/services/panorama/quotas) ou consulte os [endpoints e cotas do AWS Panorama](https://docs.aws.amazon.com/general/latest/gr/panorama.html) no Referência geral da Amazon Web Services.