Logo Zéphyrnet

Annonce du lancement de la fonctionnalité de copie de modèle pour les étiquettes personnalisées Amazon Rekognition

Date :

Étiquettes personnalisées Amazon Rekognition est un service de vision par ordinateur entièrement géré qui permet aux développeurs de créer des modèles personnalisés pour classer et identifier des objets dans des images spécifiques et uniques à votre entreprise. Rekognition Custom Labels ne nécessite aucune expertise préalable en vision par ordinateur. Par exemple, vous pouvez retrouver votre logo dans les publications sur les réseaux sociaux, identifier vos produits dans les rayons des magasins, classer les pièces de machines dans une chaîne de montage, distinguer les plantes saines des plantes infectées ou encore détecter des personnages animés dans des vidéos.

Le développement d'un modèle personnalisé pour analyser les images est une entreprise importante qui nécessite du temps, de l'expertise et des ressources, et prend souvent des mois. De plus, il faut souvent des milliers, voire des dizaines de milliers d’images étiquetées à la main pour fournir au modèle suffisamment de données pour prendre des décisions précises. La génération de ces données peut prendre des mois et nécessite de grandes équipes d'étiqueteurs pour les préparer à leur utilisation dans l'apprentissage automatique (ML).

Rekognition Custom Labels s'appuie sur les capacités existantes de Amazon Reconnaissance, qui sont déjà formés sur des dizaines de millions d’images dans de nombreuses catégories. Au lieu de milliers d'images, il vous suffit de télécharger un petit ensemble d'images de formation (généralement quelques centaines d'images ou moins) spécifiques à votre cas d'utilisation à l'aide de la console Amazon Rekognition. Si les images sont déjà étiquetées, vous pouvez commencer à entraîner un modèle en quelques clics. Sinon, vous pouvez les étiqueter directement sur la console Rekognition Custom Labels, ou utiliser Vérité au sol Amazon SageMaker pour les étiqueter. Rekognition Custom Labels utilise l'apprentissage par transfert pour inspecter automatiquement les données de formation, sélectionner le bon cadre de modèle et l'algorithme, optimiser les hyperparamètres et former le modèle. Lorsque vous êtes satisfait de la précision du modèle, vous pouvez commencer à héberger le modèle formé en un seul clic.

Aujourd'hui, nous sommes heureux d'annoncer le lancement de la fonction de copie de modèle d'étiquettes personnalisées Rekognition. Cette fonctionnalité vous permet de copier vos modèles d'étiquettes personnalisées Rekognition entre des projets, qui peuvent se trouver dans le même compte AWS ou entre des comptes AWS dans la même région AWS, sans recycler les modèles à partir de zéro. Cette nouvelle fonctionnalité vous permet de déplacer plus facilement les modèles Rekognition Custom Labels dans divers environnements tels que le développement, l'assurance qualité, l'intégration et la production sans avoir besoin de copier les ensembles de données de formation et de test d'origine et de recycler le modèle. Vous pouvez utiliser le Interface de ligne de commande AWS (AWS CLI) pour copier des modèles formés entre des projets, qui peuvent se trouver dans le même compte AWS ou entre des comptes AWS.

Dans cet article, nous vous montrons comment copier des modèles entre différents comptes AWS dans la même région AWS.

Avantages de la fonctionnalité de copie de modèle

Cette nouvelle fonctionnalité présente les avantages suivants :

  • Bonnes pratiques ML-Ops multi-comptes – Vous pouvez former un modèle une seule fois et garantir un déploiement prévisible avec des résultats cohérents sur plusieurs comptes mappés à divers environnements tels que le développement, l'assurance qualité, l'intégration et la production, vous permettant de suivre les meilleures pratiques ML-Ops au sein de votre organisation.
  • Économies de coûts et déploiement plus rapide – Vous pouvez rapidement copier un modèle entraîné entre les comptes, évitant ainsi le temps nécessaire au recyclage dans chaque compte et économisant sur le coût du recyclage du modèle.
  • Protégez les ensembles de données sensibles – Vous n'avez plus besoin de partager les ensembles de données entre différents comptes ou utilisateurs AWS. Les données de formation doivent être disponibles uniquement sur le compte AWS sur lequel la formation du modèle est effectuée. Ceci est très important pour certains secteurs, où l’isolation des données est essentielle pour répondre aux exigences commerciales ou réglementaires.
  • Collaboration facile – Les partenaires ou les fournisseurs peuvent désormais facilement former le modèle d'étiquettes personnalisées Amazon Rekognition dans leur propre compte AWS et partager les modèles avec les utilisateurs des comptes AWS.
  • Des performances constantes – Les performances du modèle sont désormais cohérentes entre les différents comptes AWS. La formation des modèles est généralement non déterministe et deux modèles formés avec le même ensemble de données ne garantissent pas les mêmes scores de performances et les mêmes prédictions. La copie du modèle permet de garantir que le comportement du modèle copié est cohérent avec le modèle source, éliminant ainsi le besoin de tester à nouveau le modèle.

Vue d'ensemble de la solution

Le diagramme suivant illustre notre architecture de solution.

Cet article suppose que vous disposez d'un modèle d'étiquettes personnalisées Rekognition formé dans votre compte source. Pour obtenir des instructions, reportez-vous à Entraîner un modèle de détection d'objets à classe unique personnalisé avec les étiquettes personnalisées Amazon Rekognition. Dans cet article, nous avons utilisé le projet de classification d'images « Chambres » de Rekognition Custom Labels. exemple de liste de projets et formé un modèle de classification des pièces dans le compte source pour classer les images de cuisines, de salles de bains, de salons, etc.

Pour démontrer la fonctionnalité de la fonction de copie de modèle, nous suivons les étapes suivantes dans le compte source :

  1. Démarrez le modèle et exécutez des inférences sur des exemples d’images.
  2. Définissez une stratégie basée sur les ressources pour autoriser l'accès entre comptes afin de copier le modèle d'étiquettes personnalisées Rekognition.

Ensuite, nous copions le modèle source sur le compte cible.

  1. Créer un Service de stockage simple Amazon (Amazon S3), qui sert de conteneur pour l'évaluation du modèle et les statistiques de performances.
  2. Créer un projet.
  3. Copiez le modèle entraîné du compte source vers le compte cible.
  4. Démarrez le modèle et exécutez l’inférence sur les exemples d’images.
  5. Vérifiez que les résultats de l'inférence correspondent aux résultats du modèle de compte source.

Pré-requis

En plus d'avoir un modèle entraîné dans votre compte source, assurez-vous de suivre les étapes préalables suivantes :

  1. Installez l'AWS CLI V2.
  2. Configurez votre AWS CLI avec le code suivant et entrez votre région :
    aws configure

  3. Exécutez les commandes suivantes pour vous assurer que la version 2.xx de l'AWS CLI est installée sur votre hôte local :
    aws --version

  4. Mettez à jour le fichier d'informations d'identification AWS sous $HOME/.aws/credentials avec l'entrée suivante :
    [source-account]
    aws_access_key_id = ####
    aws_secret_access_key = #######
    
    [target-account]
    aws_access_key_id = ####
    aws_secret_access_key = #######

  5. Obtenez les ProjectArn et ProjectVersionArn pour le compte AWS source.ProjectArn est le projet associé à votre modèle source. ProjectVersionArn est la version du modèle que vous souhaitez copier sur le compte cible. Vous pouvez trouver le SourceProjectArn En utilisant la commande suivante:
    aws rekognition describe-projects 
    --region us-east-1 
    --profile source-account
    
    {
        "ProjectDescriptions": [{
            "ProjectArn": "arn:aws:rekognition:us-east-1::111111111111:project/rooms_1/1657588855531",
            .
            .
        }]
    }

    Si vous voyez plusieurs lignes de sortie, sélectionnez la ProjectArn associé au modèle que vous allez copier.

    Vous pouvez trouver SourceProjectVersionArn pour le modèle que vous avez entraîné à l'aide du SourceProjectArn (la sortie précédente). Remplace le SourceProjectArn dans la commande suivante :

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

    La commande renvoie le SourceProjectVersionArn. Si vous voyez plusieurs lignes de sortie, sélectionnez la ProjectVersionArn d'intérêt.

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

Vous êtes maintenant prêt à exécuter les étapes de mise en œuvre de la solution. Remplacer les valeurs de SourceProjectArn et SourceProjectVersionArn dans les commandes suivantes avec les valeurs que vous avez générées.

1. Démarrez le modèle et exécutez l'inférence sur des exemples d'images

Dans le compte source, saisissez le code suivant pour démarrer le modèle :

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

Une fois le modèle hébergé et en cours d’exécution, vous pouvez exécuter l’inférence.

Nous avons utilisé les images suivantes (demo1.jpeg et demo2.jpeg) pour exécuter l'inférence. Ces images se trouvent dans notre système de fichiers local, dans le même répertoire à partir duquel les commandes AWS CLI sont exécutées.

L'image suivante est demo1.jpeg, qui montre une cour.

Consultez le code d’inférence et la sortie suivants :

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
 }

L'image suivante est demo2.jpeg, qui montre une chambre.

Consultez le code d’inférence et la sortie suivants :

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
 }

Les résultats de l'inférence montrent que l'image appartient aux classes backyard et bedroom, avec un score de confiance de 45.77 et 61.84, respectivement.

2. Définir la stratégie de ressources IAM pour le modèle formé afin de permettre l'accès entre comptes

Pour créer votre stratégie IAM basée sur les ressources, procédez comme suit dans le compte source :

  1. Autorisez votre compte AWS spécifique à accéder aux ressources à l'aide de la stratégie de ressources IAM fournie (pour plus d'informations, reportez-vous à Création d'un document de politique de projet. Remplacez les valeurs de TargetAWSAccountId et SourceProjectVersionArn dans la politique suivante :
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Principal": {
                    "AWS": [ "TargetAWSAccountId" ]
                },
                "Action": "Rekognition:CopyProjectVersion",
                "Resource": "SourceProjectVersionArn",
                "Effect": "Allow"
            }
        ]
    }

  2. Attachez la stratégie au projet dans le compte source en appelant la commande suivante.
    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

    remplacer SourceProjectArn, PolicyName, TargetAWSAccountIdet SourceProjectVersionArn.

    Le résultat affiche l'ID de révision de stratégie créé :

    {
        "PolicyRevisionId": "f95907f9c1472c114f61b0e1f31ed131"
    }

Nous sommes maintenant prêts à copier le modèle entraîné du compte source vers le compte cible..

3. Créez un compartiment S3 dans le compte cible

Vous pouvez utiliser un compartiment S3 existant dans votre compte ou créer un nouveau compartiment S3. Pour cet article, nous appelons ce compartiment S3 DestinationS3Bucket.

4. Créez un nouveau projet d'étiquettes personnalisées Rekognition

Créez un nouveau projet avec le code suivant :

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

Cela crée un TargetProjectArn dans le compte cible :

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

Notez la valeur du projet de destination ProjectArn champ. Nous utilisons cette valeur dans la commande de copie de modèle suivante.

5. Copiez le modèle du compte source vers le compte cible

Fournir la source et la cible ProjectArn, la source ProjectVersionArn, et ciblez le compartiment S3 et le préfixe de clé S3 dans le code suivant :

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

Cela crée un modèle copié TargetProjectVersionArn dans le compte cible. Le TargetVersionName dans notre cas, il a été nommé copy_rooms_1:

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

Vérifiez l'état du processus de copie du modèle :

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

La copie du modèle du compte source vers le compte cible est terminée lorsque le Status change à 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. Démarrez le modèle et exécutez l'inférence

Saisissez le code suivant pour démarrer le modèle dans le compte cible :

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

Vérifiez l'état du modèle :

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

Le modèle est désormais hébergé et exécuté :

{
    "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.",
            ..........
            ..........
        }
    ]
}

Exécutez l'inférence avec le code suivant :

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. Vérifiez que les résultats de l'inférence correspondent

Les classes et les scores de confiance des images demo1.jpg et demo2.jpg dans le compte cible doivent correspondre aux résultats du compte source.

Conclusion

Dans cet article, nous avons présenté la fonctionnalité de copie de modèle d'étiquette personnalisée Rekognition. Cette fonctionnalité vous permet d'entraîner un modèle de classification ou de détection d'objets dans un compte, puis de partager le modèle avec un autre compte de la même région. Cela simplifie la stratégie multi-comptes dans laquelle le modèle peut être formé une seule fois et partagé entre les comptes de la même région sans avoir à recycler ou à partager les ensembles de données de formation. Cela permet un déploiement prévisible dans chaque compte dans le cadre de votre flux de travail MLOps. Pour plus d'informations, reportez-vous à Copie d'un modèle d'étiquettes personnalisées Amazon Rekognition, ou essayez la procédure pas à pas de cet article en utilisant un cloud shell avec l'AWS CLI.

Au moment d'écrire ces lignes, la fonctionnalité de copie de modèle dans les étiquettes personnalisées Amazon Rekognition est disponible dans les régions suivantes :

  • États-Unis Est (Ohio)
  • États-Unis Est (Virginie du Nord)
  • Ouest américain (Oregon)
  • Asie-Pacifique (Mumbai)
  • Asie-Pacifique (Séoul)
  • Asie-Pacifique (Singapour)
  • Asie-Pacifique (Sydney)
  • Asie-Pacifique (Tokyo)
  • UE (Francfort)
  • UE (Irlande)
  • UE (Londres)

Essayez la fonctionnalité et envoyez-nous vos commentaires via le Forum AWS pour Amazon Rekognition ou via vos contacts d'assistance AWS.


À propos des auteurs

Amit Gupta est architecte senior de solutions de services d'IA chez AWS. Il est passionné par l'offre aux clients de solutions d'apprentissage automatique bien architecturées à grande échelle.

Yogesh Chaturvedi est un architecte de solutions chez AWS avec une spécialisation en vision par ordinateur. Il travaille avec les clients pour relever leurs défis commerciaux en utilisant les technologies cloud. En dehors du travail, il aime faire de la randonnée, voyager et regarder des sports.

Aakash profond est ingénieur logiciel senior chez AWS. Il aime travailler sur la vision par ordinateur, l'IA et les systèmes distribués. En dehors du travail, il aime faire de la randonnée et voyager.

Pashmeen Mistry est le chef de produit senior pour les étiquettes personnalisées Amazon Rekognition. En dehors du travail, Pashmeen aime les randonnées aventureuses, la photographie et passer du temps avec sa famille.

spot_img

Dernières informations

spot_img

Discutez avec nous

Salut! Comment puis-je t'aider?