Anunciamos o lançamento do recurso de cópia de modelo para o Amazon Rekognition Custom Labels PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Anunciando o lançamento do recurso de cópia de modelo para rótulos personalizados do Amazon Rekognition

Rótulos personalizados do Amazon Rekognition é um serviço de visão computacional totalmente gerenciado que permite que os desenvolvedores criem modelos personalizados para classificar e identificar objetos em imagens específicas e exclusivas do seu negócio. O Rekognition Custom Labels não exige que você tenha nenhum conhecimento prévio em visão computacional. Por exemplo, você pode encontrar seu logotipo em postagens de mídia social, identificar seus produtos nas prateleiras das lojas, classificar peças de máquinas em uma linha de montagem, distinguir plantas saudáveis ​​e infectadas ou detectar personagens animados em vídeos.

Desenvolver um modelo personalizado para analisar imagens é uma tarefa significativa que requer tempo, experiência e recursos, geralmente levando meses para ser concluída. Além disso, geralmente requer milhares ou dezenas de milhares de imagens rotuladas à mão para fornecer ao modelo dados suficientes para tomar decisões com precisão. A geração desses dados pode levar meses para ser coletada e requer grandes equipes de rotuladores para prepará-los para uso em aprendizado de máquina (ML).

O Rekognition Custom Labels baseia-se nos recursos existentes do Reconhecimento da Amazônia, que já são treinados em dezenas de milhões de imagens em muitas categorias. Em vez de milhares de imagens, você só precisa fazer upload de um pequeno conjunto de imagens de treinamento (normalmente algumas centenas de imagens ou menos) específicas para seu caso de uso usando o console do Amazon Rekognition. Se as imagens já estiverem rotuladas, você poderá começar a treinar um modelo em apenas alguns cliques. Caso contrário, você pode rotulá-los diretamente no console Rekognition Custom Labels ou usar Verdade no solo do Amazon SageMaker para rotulá-los. O Rekognition Custom Labels usa o aprendizado de transferência para inspecionar automaticamente os dados de treinamento, selecionar a estrutura e o algoritmo de modelo corretos, otimizar os hiperparâmetros e treinar o modelo. Quando estiver satisfeito com a precisão do modelo, você poderá começar a hospedar o modelo treinado com apenas um clique.

Hoje temos o prazer de anunciar o lançamento do recurso de cópia do modelo Rekognition Custom Labels. Esse recurso permite que você copie seus modelos de rótulos personalizados do Rekognition entre projetos, que podem estar na mesma conta da AWS ou entre contas da AWS na mesma região da AWS, sem retreinar os modelos do zero. Esse novo recurso facilita a movimentação de modelos de rótulos personalizados do Rekognition por vários ambientes, como desenvolvimento, garantia de qualidade, integração e produção, sem a necessidade de copiar os conjuntos de dados originais de treinamento e teste e treinar novamente o modelo. Você pode usar o Interface de linha de comando da AWS (AWS CLI) para copiar modelos treinados entre projetos, que podem estar na mesma conta da AWS ou entre contas da AWS.

Neste post, mostramos como copiar modelos entre diferentes contas da AWS na mesma região da AWS.

Benefícios do recurso de cópia de modelo

Este novo recurso tem os seguintes benefícios:

  • Práticas recomendadas de operações de ML para várias contas – Você pode treinar um modelo uma vez e garantir uma implantação previsível com resultados consistentes em várias contas mapeadas para vários ambientes, como desenvolvimento, garantia de qualidade, integração e produção, permitindo que você siga as práticas recomendadas de ML-Ops em sua organização.
  • Economia de custos e implantação mais rápida – Você pode copiar rapidamente um modelo treinado entre contas, evitando o tempo necessário para retreinar em cada conta e economizando no custo de retreinamento do modelo.
  • Proteja conjuntos de dados confidenciais – Você não precisa mais compartilhar os conjuntos de dados entre diferentes contas ou usuários da AWS. Os dados de treinamento precisam estar disponíveis apenas na conta da AWS em que o treinamento do modelo é feito. Isso é muito importante para determinados setores, onde o isolamento de dados é essencial para atender aos requisitos de negócios ou regulamentares.
  • Colaboração fácil – Parceiros ou fornecedores agora podem treinar facilmente o modelo de rótulos personalizados do Amazon Rekognition em sua própria conta da AWS e compartilhar os modelos com usuários nas contas da AWS.
  • Desempenho consistente – O desempenho do modelo agora é consistente em diferentes contas da AWS. O treinamento do modelo geralmente não é determinístico e dois modelos treinados com o mesmo conjunto de dados não garantem as mesmas pontuações de desempenho e as mesmas previsões. Copiar o modelo ajuda a garantir que o comportamento do modelo copiado seja consistente com o modelo de origem, eliminando a necessidade de testar novamente o modelo.

Visão geral da solução

O diagrama a seguir ilustra nossa arquitetura de solução.

Esta postagem pressupõe que você treinou um modelo de Rótulos personalizados do Rekognition em sua conta de origem. Para obter instruções, consulte Treinamento de um modelo de detecção de objeto de classe única personalizado com Amazon Rekognition Custom Labels. Neste post, usamos o projeto de classificação de imagens “Rooms” do Rekognition Custom Labels lista de projetos de exemplo e treinou um modelo de classificação de sala na conta de origem para classificar imagens de cozinhas, banheiros, salas de estar e muito mais.

Para demonstrar a funcionalidade do recurso de cópia de modelo, passamos pelas seguintes etapas na conta de origem:

  1. Inicie o modelo e execute inferências em imagens de amostra.
  2. Defina uma política baseada em recursos para permitir o acesso entre contas para copiar o modelo de Rótulos personalizados do Rekognition.

Em seguida, copiamos o modelo de origem para a conta de destino.

  1. Crie uma Serviço de armazenamento simples da Amazon (Amazon S3), que serve como um contêiner para a avaliação do modelo e estatísticas de desempenho.
  2. Crie um projeto.
  3. Copie o modelo treinado da conta de origem para a conta de destino.
  4. Inicie o modelo e execute a inferência nas imagens de amostra.
  5. Verifique se os resultados da inferência correspondem aos resultados do modelo de conta de origem.

Pré-requisitos

Além de ter um modelo treinado em sua conta de origem, certifique-se de concluir as seguintes etapas de pré-requisito:

  1. Instale a AWS CLI V2.
  2. Configure sua AWS CLI com o código a seguir e insira sua região:
    aws configure

  3. Execute os seguintes comandos para garantir que você tenha a AWS CLI versão 2.xx instalada em seu host local:
    aws --version

  4. Atualize o arquivo de credenciais da AWS em $HOME/.aws/credentials com a seguinte entrada:
    [source-account]
    aws_access_key_id = ####
    aws_secret_access_key = #######
    
    [target-account]
    aws_access_key_id = ####
    aws_secret_access_key = #######

  5. Obter o ProjectArn e ProjectVersionArn para a conta de origem da AWS.ProjectArn é o projeto associado ao seu modelo de origem. ProjectVersionArn é a versão do modelo que você deseja copiar para a conta de destino. Você pode encontrar o SourceProjectArn usando o seguinte comando:
    aws rekognition describe-projects 
    --region us-east-1 
    --profile source-account
    
    {
        "ProjectDescriptions": [{
            "ProjectArn": "arn:aws:rekognition:us-east-1::111111111111:project/rooms_1/1657588855531",
            .
            .
        }]
    }

    Se você vir várias linhas de saída, escolha o ProjectArn associado ao modelo que você vai copiar.

    Você pode encontrar o SourceProjectVersionArn para o modelo que você treinou usando o SourceProjectArn (a saída anterior). Substitua o SourceProjectArn no seguinte comando:

    aws rekognition describe-project-versions 
    --project-arn SourceProjectArn 
    --region us-east-1 
    --profile source-account

    O comando retorna o SourceProjectVersionArn. Se você vir várias linhas de saída, escolha o ProjectVersionArn de interesse.

    {
        "ProjectVersionDescriptions": [
            {
                "ProjectVersionArn": "arn:aws:rekognition:us-east-1:111111111111:project/rooms_1/version/rooms_1.2022-07-12T09.39.36/1657643976475",
                .
                .
            }
        ]
    }

Agora você está pronto para executar as etapas para implementar a solução. Substitua os valores de SourceProjectArn e SourceProjectVersionArn nos comandos a seguir com os valores que você gerou.

1. Inicie o modelo e execute a inferência em imagens de amostra

Na conta de origem, insira o seguinte código para iniciar o modelo:

aws rekognition start-project-version 
--project-version-arn SourceProjectVersionArn 
--min-inference-units 1 
--region us-east-1 
--profile source-account
{
    "Status": "STARTING"
}

Depois que o modelo estiver hospedado e no estado de execução, você poderá executar a inferência.

Usamos as seguintes imagens (demo1.jpeg e demo2.jpeg) para executar a inferência. Essas imagens estão localizadas em nosso sistema de arquivos local no mesmo diretório em que os comandos da AWS CLI estão sendo executados.

A imagem a seguir é demo1.jpeg, que mostra um quintal.

Anunciamos o lançamento do recurso de cópia de modelo para o Amazon Rekognition Custom Labels PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Veja o seguinte código de inferência e saída:

aws rekognition detect-custom-labels 
--project-version-arn SourceProjectVersionArn   
--image-bytes fileb://demo1.jpeg 
--region us-east-1 
--profile source-account
{
    "Name": "backyard",
    "Confidence": 45.77000045776367
 }

A imagem a seguir é demo2.jpeg, que mostra um quarto.

Anunciamos o lançamento do recurso de cópia de modelo para o Amazon Rekognition Custom Labels PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Veja o seguinte código de inferência e saída:

aws rekognition detect-custom-labels 
--project-version-arn SourceProjectVersionArn   
--image-bytes fileb://demo2.jpeg 
--region us-east-1 
--profile source-account
{
    "Name": "bedroom",
    "Confidence": 61.84600067138672
 }

Os resultados da inferência mostram que a imagem pertence às classes backyard e bedroom, com pontuação de confiança de 45.77 e 61.84, respectivamente.

2. Defina a política de recursos do IAM para o modelo treinado para permitir acesso entre contas

Para criar sua política do IAM baseada em recursos, conclua as etapas a seguir na conta de origem:

  1. Permita que sua conta específica da AWS acesse recursos usando a política de recursos do IAM fornecida (para obter mais informações, consulte Criando um documento de política do projeto. Substitua os valores de TargetAWSAccountId e SourceProjectVersionArn na seguinte política:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Principal": {
                    "AWS": [ "TargetAWSAccountId" ]
                },
                "Action": "Rekognition:CopyProjectVersion",
                "Resource": "SourceProjectVersionArn",
                "Effect": "Allow"
            }
        ]
    }

  2. Anexe a política ao projeto na conta de origem chamando o comando a seguir.
    aws rekognition put-project-policy 
    --project-arn SourceProjectArn 
    --policy-name PolicyName 
    --policy-document '{
        "Version": "2012-10-17",
        "Statement": [
            {
                "Principal": {
                    "AWS": [ "TargetAWSAccountId" ]
                },
                "Action": "Rekognition:CopyProjectVersion",
                "Resource": "SourceProjectVersionArn",
                "Effect": "Allow"
            }
        ]
    }' 
    --region us-east-1 
    --profile source-account

    Substituir SourceProjectArn, PolicyName, TargetAWSAccountId e SourceProjectVersionArn.

    A saída mostra o ID de revisão da política criado:

    {
        "PolicyRevisionId": "f95907f9c1472c114f61b0e1f31ed131"
    }

Agora estamos prontos para copiar o modelo treinado da conta de origem para a conta de destino.

3. Crie um bucket do S3 na conta de destino

Você pode usar um bucket do S3 existente em sua conta ou criar um novo bucket do S3. Para esta postagem, chamamos esse bucket do S3 DestinationS3Bucket.

4. Crie um novo projeto de Rótulos personalizados do Rekognition

Crie um novo projeto com o seguinte código:

aws rekognition create-project 
--project-name target_rooms_1 
--region us-east-1 
--profile target-account 

Isso cria um TargetProjectArn na conta de destino:

{
    "ProjectArn": "arn:aws:rekognition:us-east-1:222222222222:project/target_rooms_1/1657599660206"
}

Observe o valor do projeto de destino ProjectArn campo. Usamos esse valor no seguinte comando de modelo de cópia.

5. Copie o modelo da conta de origem para a conta de destino

Forneça a origem e o destino ProjectArn, fonte ProjectVersionArne o bucket do S3 de destino e o prefixo da chave do S3 no código a seguir:

aws rekognition copy-project-version 
--source-project-arn SourceProjectArn 
--source-project-version-arn SourceProjectVersionArn 
--destination-project-arn TargetProjectArn 
--version-name TargetVersionName 
--output-config '{"S3Bucket":"DestinationS3Bucket", "S3KeyPrefix":"DestinationS3BucketPrefix"}' 
--region us-east-1 
--profile target-account

Isso cria um modelo copiado TargetProjectVersionArn na conta de destino. o TargetVersionName no nosso caso foi nomeado copy_rooms_1:

{
    "ProjectVersionArn": "arn:aws:rekognition:us-east-1:222222222222:project/target_rooms_1/version/copy_rooms_1/1657667877079"
}

Verifique o status do processo de cópia do modelo:

aws rekognition describe-project-versions 
--project-arn TargetProjectArn 
--version-names TargetVersionName 
--region us-east-1 
--profile target-account

A cópia do modelo da conta de origem para a conta de destino é concluída quando o Status muda para COPYING_COMPLETED:

 {
    "ProjectVersionDescriptions": [
        {
            "ProjectVersionArn": "arn:aws:rekognition:us-east-1:222222222222:project/target_rooms_1/version/copy_rooms_1/1657667877079",
            "CreationTimestamp": "2022-07-12T16:17:57.079000-07:00",
            "Status": "COPYING_COMPLETED",
            "StatusMessage": "Model copy operation was successful",
            ..........
            ..........
            "EvaluationResult": {
                "F1Score": 0.0,
                "Summary": {

6. Inicie o modelo e execute a inferência

Digite o seguinte código para iniciar o modelo na conta de destino:

aws rekognition start-project-version 
--project-version-arn TargetProjectArn 
--min-inference-units 1 
--region us-east-1 
--profile target-account
{
    "Status": "STARTING"
}

Verifique o status do modelo:

aws rekognition describe-project-versions 
--project-arn TargetProjectArn 
--version-names copy_rooms_1 
--region us-east-1 
--profile target-account

O modelo agora está hospedado e em execução:

{
    "ProjectVersionDescriptions": [
        {
            "ProjectVersionArn": "arn:aws:rekognition:us-east-1:222222222222:project/target_rooms_1/version/copy_rooms_1/1657667877079",
            "CreationTimestamp": "2022-07-12T16:17:57.079000-07:00",
            "MinInferenceUnits": 1,
            "Status": "RUNNING",
            "StatusMessage": "The model is running.",
            ..........
            ..........
        }
    ]
}

Execute a inferência com o seguinte código:

aws rekognition detect-custom-labels 
 --project-version-arn TargetProjectVersionArn 
 --image-bytes fileb://demo1.jpeg 
 --region us-east-1 
 --profile target-account
{
    "Name": "backyard",
    "Confidence": 45.77000045776367
 }
aws rekognition detect-custom-labels 
 --project-version-arn TargetProjectVersionArn 
 --image-bytes fileb://demo2.jpeg 
 --region us-east-1 
 --profile target-account
{
    "Name": "bedroom",
    "Confidence": 61.84600067138672

7. Verifique se os resultados da inferência correspondem

As classes e as pontuações de confiança para as imagens demo1.jpg e demo2.jpg na conta de destino devem corresponder aos resultados na conta de origem.

Conclusão

Neste post, demonstramos o recurso de cópia de modelo de rótulo personalizado do Rekognition. Esse recurso permite treinar um modelo de classificação ou detecção de objetos em uma conta e, em seguida, compartilhar o modelo com outra conta na mesma região. Isso simplifica a estratégia de várias contas em que o modelo pode ser treinado uma vez e compartilhado entre contas na mesma região sem precisar treinar novamente ou compartilhar os conjuntos de dados de treinamento. Isso permite uma implantação previsível em cada conta como parte de seu fluxo de trabalho de MLOps. Para obter mais informações, consulte Copiar um modelo de rótulos personalizados do Amazon Rekognition, ou experimente o passo a passo nesta postagem usando um shell de nuvem com a AWS CLI.

Até o momento, o recurso de cópia de modelo em rótulos personalizados do Amazon Rekognition está disponível nas seguintes regiões:

  • Leste dos EUA (Ohio)
  • Leste dos EUA (Virgínia do Norte)
  • Oeste dos EUA (Oregon)
  • Ásia Pacífico (Mumbai)
  • Ásia Pacífico (Seul)
  • Ásia Pacífico (Cingapura)
  • Ásia-Pacífico (Sydney)
  • Pacífico Asiático (Tóquio)
  • UE (Frankfurt)
  • UE (Irlanda)
  • UE (Londres)

Experimente o recurso e envie-nos comentários por meio do Fórum da AWS para Amazon Rekognition ou por meio de seus contatos de suporte da AWS.


Sobre os autores

Anunciamos o lançamento do recurso de cópia de modelo para o Amazon Rekognition Custom Labels PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Amit Gupta é arquiteto sênior de soluções de serviços de IA na AWS. Ele é apaixonado por capacitar os clientes com soluções de aprendizado de máquina bem arquitetadas em escala.

Anunciamos o lançamento do recurso de cópia de modelo para o Amazon Rekognition Custom Labels PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Yogesh Chaturvedi é Arquiteto de Soluções na AWS com foco em visão computacional. Ele trabalha com clientes para enfrentar seus desafios de negócios usando tecnologias de nuvem. Fora do trabalho, ele gosta de caminhar, viajar e assistir a esportes.

Anunciamos o lançamento do recurso de cópia de modelo para o Amazon Rekognition Custom Labels PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Aakash Profundo é engenheiro de software sênior da AWS. Ele gosta de trabalhar em visão computacional, IA e sistemas distribuídos. Fora do trabalho, ele gosta de caminhar e viajar.

Anunciamos o lançamento do recurso de cópia de modelo para o Amazon Rekognition Custom Labels PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Mistério Pashmeen é gerente de produto sênior para rótulos personalizados do Amazon Rekognition. Fora do trabalho, Pashmeen gosta de caminhadas de aventura, fotografia e passar tempo com sua família.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS