

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Beispiele für benutzerdefinierte Labels
<a name="examples"></a>

Dieser Abschnitt enthält Beispiele, die Ihnen zeigen, wie Sie die Funktionen von Amazon Rekognition Custom Labels nutzen.


| Beispiel | Description | 
| --- | --- | 
|  [Verbesserung eines Modells mit Modell-Feedback](ex-feedback.md)  |  Zeigt, wie ein Modell mithilfe menschlicher Verifizierung verbessert werden kann, um einen neuen Trainingsdatensatz zu erstellen.  | 
|  [Amazon Rekognition Custom Labels-Veranschaulichung](ex-custom-labels-demo.md)  |  Demonstration einer Benutzeroberfläche, auf der die Ergebnisse eines Aufrufs `DetectCustomLabels` von angezeigt werden.  | 
|  [Erkennung benutzerdefinierter Labels in Videos](ex-video-extraction.md)  |  Zeigt, wie Sie `DetectCustomLabels` mit Frames verwenden können, die aus einem Video extrahiert wurden.  | 
|  [Bilder mit einer AWS Lambda Funktion analysieren](ex-lambda.md)  |  Zeigt, wie Sie `DetectCustomLabels` mit einer Lambda-Funktion verwenden können.  | 
|  [Erstellen einer Manifestdatei aus einer CSV-Datei](ex-csv-manifest.md)  |  Zeigt, wie eine CSV-Datei verwendet wird, um eine Manifestdatei zu erstellen, die für die Suche nach [Objekten, Szenen und Konzepten](understanding-custom-labels.md#tm-classification) geeignet ist, die einem ganzen Bild zugeordnet sind (Klassifizierung).  | 

# Verbesserung eines Modells mit Modell-Feedback
<a name="ex-feedback"></a>

Mit der Modell-Feedback-Lösung können Sie Feedback zu den Vorhersagen Ihres Modells geben und mithilfe menschlicher Verifizierung Verbesserungen vornehmen. Je nach Anwendungsfall können Sie mit einem Trainingsdatensatz, der nur wenige Bilder enthält, erfolgreich sein. Möglicherweise ist ein größerer Trainingssatz mit Anmerkungen erforderlich, um ein genaueres Modell zu erstellen. Mit der Modell-Feedback-Lösung können Sie mithilfe der Modellunterstützung einen größeren Datensatz erstellen.

Informationen zur Installation und Konfiguration der Modell-Feedback-Lösung finden Sie unter [Modell-Feedback-Lösung](https://github.com/aws-samples/amazon-rekognition-custom-labels-feedback-solution).

Der Workflow zur kontinuierlichen Modellverbesserung sieht wie folgt aus:

1. Trainieren Sie die erste Version Ihres Modells (möglicherweise mit einem kleinen Trainingsdatensatz).

1. Stellen Sie einen Datensatz ohne Anmerkungen für die Modell-Feedback-Lösung bereit.

1. Die Modell-Feedback-Lösung verwendet das aktuelle Modell. Sie startet menschliche Verifizierungsaufträge, um einen neuen Datensatz mit Anmerkungen zu versehen.

1. Basierend auf menschlichem Feedback generiert die Modell-Feedback-Lösung eine Manifestdatei, mit der Sie ein neues Modell erstellen. 

# Amazon Rekognition Custom Labels-Veranschaulichung
<a name="ex-custom-labels-demo"></a>

Die Amazon Rekognition Custom Labels-Demonstration zeigt eine Benutzeroberfläche, die Bilder von Ihrem lokalen Computer mithilfe der [DetectCustomLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectCustomLabels)API analysiert.

Die Anwendung zeigt Ihnen Informationen zu den Amazon Rekognition Custom Labels-Modellen in Ihrem AWS Konto. Nachdem Sie ein laufendes Modell ausgewählt haben, können Sie ein Bild von Ihrem lokalen Computer aus analysieren. Bei Bedarf können Sie ein Modell starten. Sie können auch ein laufendes Modell anhalten. Die Anwendung zeigt die Integration mit anderen AWS-Services wie Amazon Cognito, Amazon S3 und Amazon CloudFront. 

Weitere Informationen finden Sie unter [Amazon Rekognition Custom Labels-Demo](https://github.com/aws-samples/amazon-rekognition-custom-labels-demo).

# Erkennung benutzerdefinierter Labels in Videos
<a name="ex-video-extraction"></a>

Das folgende Beispiel zeigt, wie Sie `DetectCustomLabels` mit aus einem Video extrahierten Frames verwenden können. Der Code wurde mit Videodateien im *Mov*- und *MP4*-Format getestet.

**Verwendung von `DetectCustomLabels` mit erfassten Frames**

1. Falls Sie dies noch nicht getan haben, installieren und konfigurieren Sie den AWS CLI und den AWS SDKs. Weitere Informationen finden Sie unter [Schritt 4: Richten Sie das und ein AWS CLI AWS SDKs](su-awscli-sdk.md).

1. Stellen Sie sicher, dass Sie über `rekognition:DetectCustomLabels` und `AmazonS3ReadOnlyAccess`-Berechtigungen verfügen. Weitere Informationen finden Sie unter [Schritt 4: Richten Sie das und ein AWS CLI AWS SDKs](su-awscli-sdk.md).

1. Verwenden Sie den folgenden Beispielcode. Ändern Sie den Wert von `videoFile` in den Namen einer Videodatei. Ändern Sie den Wert von `projectVersionArn` in den Amazon-Ressourcennamen (ARN) Ihres Amazon Rekognition Custom Labels-Modells. 

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   Purpose
   Shows how to analyze a local video with an Amazon Rekognition Custom Labels model.
   """
   import argparse
   import logging
   import json
   import math
   import cv2
   import boto3
   
   from botocore.exceptions import ClientError
   
   logger = logging.getLogger(__name__)
   
   
   def analyze_video(rek_client, project_version_arn, video_file):
       """
       Analyzes a local video file with an Amazon Rekognition Custom Labels model.
       Creates a results JSON file based on the name of the supplied video file.
       :param rek_client: A Boto3 Amazon Rekognition client.
       :param project_version_arn: The ARN of the Custom Labels model that you want to use.
       :param video_file: The video file that you want to analyze.
       """
       
       custom_labels = []
       cap = cv2.VideoCapture(video_file)
       frame_rate = cap.get(5)  # Frame rate.
       while cap.isOpened():
           frame_id = cap.get(1)  # Current frame number.
           print(f"Processing frame id: {frame_id}")
           ret, frame = cap.read()
           if ret is not True:
               break
           if frame_id % math.floor(frame_rate) == 0:
               has_frame, image_bytes = cv2.imencode(".jpg", frame)
   
               if has_frame:
                   response = rek_client.detect_custom_labels(
                       Image={
                           'Bytes': image_bytes.tobytes(),
                       },
                       ProjectVersionArn=project_version_arn
                   )
   
               for elabel in response["CustomLabels"]:
                   elabel["Timestamp"] = (frame_id/frame_rate)*1000
                   custom_labels.append(elabel)
   
       print(custom_labels)
   
       with open(video_file + ".json", "w", encoding="utf-8") as f:
           f.write(json.dumps(custom_labels))
   
       cap.release()
   
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       :param parser: The command line parser.
       """
   
       parser.add_argument(
           "project_version_arn", help="The ARN of the model that you want to use."
       )
   
       parser.add_argument(
           "video_file", help="The local path to the video that you want to analyze."
       )
   
   
   def main():
   
       logging.basicConfig(level=logging.INFO,
                           format="%(levelname)s: %(message)s")
   
       try:
           # Get command line arguments.
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
   
           session = boto3.Session(profile_name='custom-labels-access')
           rekognition_client = session.client("rekognition")
   
           analyze_video(rekognition_client,
                        args.project_version_arn, args.video_file)
   
       except ClientError as err:
           print(f"Couldn't analyze video: {err}")
   
   
   if __name__ == "__main__":
       main()
   ```

# Bilder mit einer AWS Lambda Funktion analysieren
<a name="ex-lambda"></a>

AWS Lambda ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitzustellen oder zu verwalten. Sie können beispielsweise Bilder analysieren, die von einer mobilen Anwendung aus übermittelt wurden, ohne einen Server für den Anwendungscode einrichten zu müssen. Die folgenden Anweisungen zeigen, wie eine Lambda-Funktion in Python erstellt wird, die [DetectCustomLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectCustomLabels) aufruft. Die Funktion analysiert ein bereitgestelltes Bild und gibt eine Liste der im Bild gefundenen Labels zurück. Die Anweisungen enthalten einen Python-Beispielcode, der zeigt, wie die Lambda-Funktion mit einem Bild in einem Amazon-S3-Bucket oder einem von einem lokalen Computer bereitgestellten Bild aufgerufen wird. 

**Topics**
+ [

## Schritt 1: Erstellen Sie eine AWS Lambda Funktion (Konsole)
](#example-lambda-create-function)
+ [

## Schritt 2: (Optional) Erstellen einer Ebene (Konsole)
](#example-lambda-create-layer)
+ [

## Schritt 3: Hinzufügen von Python-Code (Konsole)
](#example-lambda-add-code)
+ [

## Schritt 4: Testen Ihrer Lambda-Funktion
](#example-lambda-test)

## Schritt 1: Erstellen Sie eine AWS Lambda Funktion (Konsole)
<a name="example-lambda-create-function"></a>

In diesem Schritt erstellen Sie eine leere AWS Funktion und eine IAM-Ausführungsrolle, mit der Ihre Funktion den `DetectCustomLabels` Vorgang aufrufen kann. Es gewährt auch Zugriff auf den Amazon-S3-Bucket, in dem Bilder zur Analyse gespeichert werden. Sie geben auch Umgebungsvariablen für Folgendes an:
+ Das Amazon Rekognition Custom Labels-Modell, das Ihre Lambda-Funktion verwenden soll.
+ Das Konfidenzlimit, das das Modell verwenden soll.

Später fügen Sie der Lambda-Funktion den Quellcode und optional eine Ebene hinzu.

**Um eine AWS Lambda Funktion (Konsole) zu erstellen**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Wählen Sie **Funktion erstellen**. Weitere Informationen zur Verwendung von Lambda finden Sie unter [Erstellen einer Lambda-Funktion mit der Konsole](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html).

1. Wählen Sie aus den folgenden Optionen.
   + Wählen Sie **Von Grund auf neu schreiben** aus. 
   + Geben Sie einen Wert für **Name der Funktion** ein.
   + Wählen Sie für **Laufzeit** die Option **Python 3.10** aus.

1. Wählen Sie **Funktion erstellen** aus, um die AWS Lambda -Funktion zu erstellen.

1. Wählen Sie auf der Seite der Funktion den Tab **Konfiguration** aus.

1. Wählen Sie im Abschnitt **Umgebungsvariablen** **Bearbeiten** aus.

1. Fügen Sie die folgenden Umgebungsvariablen hinzu. Wählen Sie für jede Variable die Option **Umgebungsvariable** hinzufügen und geben Sie dann den Variablenschlüssel und den Wert ein.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/rekognition/latest/customlabels-dg/ex-lambda.html)

1. Wählen Sie **Speichern**, um die Umgebungsvariablen zu speichern.

1. Wählen Sie im Bereich **Berechtigungen** unter **Rollenname** die Ausführungsrolle aus, um die Rolle in der IAM-Konsole zu öffnen.

1. Wählen Sie auf der Registerkarte **Berechtigungen** die Optionen **Berechtigungen hinzufügen** und dann **Inline-Richtlinie erstellen** aus.

1. Wählen Sie **JSON** aus und ersetzen Sie die vorhandene Richtlinie durch die folgende.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": "rekognition:DetectCustomLabels",
               "Resource": "*",
               "Effect": "Allow",
               "Sid": "DetectCustomLabels"
           }
       ]
   }
   ```

------

1. Wählen Sie **Weiter** aus.

1. Geben Sie in den **Richtliniendetails** einen Namen für die Richtlinie ein, z. B. *DetectCustomLabels-access*.

1. Wählen Sie **Richtlinie erstellen** aus.

1. Wenn Sie Bilder zur Analyse in einem Amazon-S3-Bucket speichern, wiederholen Sie die Schritte 10-14. 

   1. Verwenden Sie für Schritt 11 die folgende Richtlinie. *bucket/folder path*Ersetzen Sie durch den Amazon S3 S3-Bucket und den Ordnerpfad zu den Bildern, die Sie analysieren möchten. 

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "S3Access",
                  "Effect": "Allow",
                  "Action": "s3:GetObject",
                  "Resource": "arn:aws:s3:::bucket/folder path/*"
              }
          ]
      }
      ```

------

   1. Wählen Sie für Schritt 13 einen anderen Richtliniennamen aus, z. B. *S3Bucket-access.*

## Schritt 2: (Optional) Erstellen einer Ebene (Konsole)
<a name="example-lambda-create-layer"></a>

Um dieses Beispiel auszuführen, müssen Sie diesen Schritt nicht ausführen. Die `DetectCustomLabels` Operation ist in der standardmäßigen Lambda-Python-Umgebung als Teil des AWS SDK für Python (Boto3) enthalten. Wenn für andere Teile Ihrer Lambda-Funktion aktuelle AWS Service-Updates erforderlich sind, die sich nicht in der Standard-Lambda-Python-Umgebung befinden, führen Sie diesen Schritt aus, um Ihrer Funktion die neueste Boto3-SDK-Version als Ebene hinzuzufügen. 

Zunächst erstellen Sie ein ZIP-Dateiarchiv, das das Boto3-SDK enthält. Anschließend erstellen Sie eine Ebene und fügen der Ebene das ZIP-Dateiarchiv hinzu. Weitere Informationen finden Sie unter [Verwenden von Ebenen mit Ihrer Lambda-Funktion](https://docs.aws.amazon.com/lambda/latest/dg/invocation-layers.html#invocation-layers-using).

**So erstellen Sie eine Ebene und fügen eine hinzu (Konsole)**

1. Öffnen Sie eine Eingabeaufforderung und geben Sie dann die folgenden Befehle ein.

   ```
   pip install boto3 --target python/.
   zip boto3-layer.zip -r python/
   ```

1. Notieren Sie sich den Namen der Zip-Datei (boto3-layer.zip). Sie benötigen ihm im Schritt 6 dieses Vorgangs.

1. Öffnen Sie die Konsole unter. AWS Lambda [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Wählen Sie im Navigationsbereich **Ebenen** aus. 

1. Wählen Sie **Ebene erstellen** aus.

1. Geben Sie einen **Namen** und eine **Beschreibung** ein.

1. Wählen Sie **Zip-Datei hochladen** und dann **Upload** aus.

1. Wählen Sie im Dialogfeld das ZIP-Dateiarchiv (boto3-layer.zip) aus, das Sie in Schritt 1 dieses Vorgangs erstellt haben.

1. Wählen Sie für kompatible Laufzeiten **Python 3.9**.

1. Wählen Sie **Erstellen**, um die Ebene zu erstellen.

1. Wählen Sie das Menüsymbol im Navigationsbereich.

1. Wählen Sie im Navigationsbereich **Funktionen** aus.

1. Wählen Sie in der Ressourcenliste die Funktion aus, die Sie in [Schritt 1: Erstellen Sie eine AWS Lambda Funktion (Konsole)](#example-lambda-create-function) erstellt haben. 

1. Wählen Sie die Registerkarte **Code**.

1. Wählen Sie im Bereich **Ebenen** die Option **Ebene hinzufügen** aus.

1. Wählen Sie **Benutzerdefinierte Ebenen**.

1. Wählen Sie unter **Benutzerdefinierte Ebenen** den Namen der Ebene aus, den Sie in Schritt 6 eingegeben haben. 

1. Wählen Sie unter **Version** die Version der Ebene aus, die 1 sein sollte.

1. Wählen Sie **Hinzufügen** aus.

## Schritt 3: Hinzufügen von Python-Code (Konsole)
<a name="example-lambda-add-code"></a>

In diesem Schritt fügen Sie Python-Code zu Ihrer Lambda-Funktion hinzu, indem Sie den Code-Editor der Lambda-Konsole verwenden. Der Code analysiert ein bereitgestelltes Bild mit `DetectCustomLabels` und gibt eine Liste der im Bild gefundenen Labels zurück. Das bereitgestellte Bild kann sich in einem Amazon-S3-Bucket befinden oder als Byte64-kodierte Bildbytes bereitgestellt werden.

**So fügen Sie einen Python-Code hinzu (Konsole)**

1. Wenn Sie nicht in der Lambda-Konsole sind, gehen Sie wie folgt vor:

   1. Öffnen Sie die AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

   1. Öffnen Sie die Lambda-Funktion, die Sie in [Schritt 1: Erstellen Sie eine AWS Lambda Funktion (Konsole)](#example-lambda-create-function) erstellt haben.

1. Wählen Sie die Registerkarte **Code**.

1. Ersetzen Sie in der **Codequelle** den Code in **lambda\$1function.py** durch den folgenden Code: 

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   Purpose
   An AWS lambda function that analyzes images with an the Amazon Rekognition
   Custom Labels model.
   """
   import json
   import base64
   from os import environ
   import logging
   import boto3
   
   from botocore.exceptions import ClientError
   
   # Set up logging.
   logger = logging.getLogger(__name__)
   
   # Get the model ARN and confidence.
   model_arn = environ['MODEL_ARN']
   min_confidence = int(environ.get('CONFIDENCE', 50))
   
   # Get the boto3 client.
   rek_client = boto3.client('rekognition')
   
   
   def lambda_handler(event, context):
       """
       Lambda handler function
       param: event: The event object for the Lambda function.
       param: context: The context object for the lambda function.
       return: The labels found in the image passed in the event
       object.
       """
   
       try:
   
           # Determine image source.
           if 'image' in event:
               # Decode the image
               image_bytes = event['image'].encode('utf-8')
               img_b64decoded = base64.b64decode(image_bytes)
               image = {'Bytes': img_b64decoded}
   
   
           elif 'S3Object' in event:
               image = {'S3Object':
                        {'Bucket':  event['S3Object']['Bucket'],
                         'Name': event['S3Object']['Name']}
                        }
   
           else:
               raise ValueError(
                   'Invalid source. Only image base 64 encoded image bytes or S3Object are supported.')
   
   
           # Analyze the image.
           response = rek_client.detect_custom_labels(Image=image,
               MinConfidence=min_confidence,
               ProjectVersionArn=model_arn)
   
           # Get the custom labels
           labels = response['CustomLabels']
   
           lambda_response = {
               "statusCode": 200,
               "body": json.dumps(labels)
           }
   
       except ClientError as err:
           error_message = f"Couldn't analyze image. " + \
               err.response['Error']['Message']
   
           lambda_response = {
               'statusCode': 400,
               'body': {
                   "Error": err.response['Error']['Code'],
                   "ErrorMessage": error_message
               }
           }
           logger.error("Error function %s: %s",
               context.invoked_function_arn, error_message)
   
       except ValueError as val_error:
           lambda_response = {
               'statusCode': 400,
               'body': {
                   "Error": "ValueError",
                   "ErrorMessage": format(val_error)
               }
           }
           logger.error("Error function %s: %s",
               context.invoked_function_arn, format(val_error))
   
       return lambda_response
   ```

1. Wählen Sie **Implementieren** aus, um Ihre Lambda-Funktion bereitzustellen.

## Schritt 4: Testen Ihrer Lambda-Funktion
<a name="example-lambda-test"></a>

In diesem Schritt verwenden Sie Python-Code auf Ihrem Computer, um ein lokales Bild oder ein Bild in einem Amazon-S3-Bucket an Ihre Lambda-Funktion zu übergeben. Bilder, die von einem lokalen Computer übertragen werden, müssen kleiner als 6.291.456 Byte sein. Wenn Ihre Bilder größer sind, laden Sie die Bilder in einen Amazon-S3-Bucket hoch und rufen Sie das Skript mit dem Amazon S3-Pfad zum Bild auf. Weitere Informationen zum Hochladen von Dateien auf einen Amazon-S3-Bucket finden Sie unter [Hochladen von Objekten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html).

Stellen Sie sicher, dass Sie den Code in derselben AWS Region ausführen, in der Sie die Lambda-Funktion erstellt haben. Sie können die AWS Region für Ihre Lambda-Funktion in der Navigationsleiste der Funktionsdetailseite in der [Lambda-Konsole](https://console.aws.amazon.com/lambda/) anzeigen.

Wenn die AWS Lambda Funktion einen Timeout-Fehler zurückgibt, verlängern Sie den Timeout-Zeitraum für die Lambda-Funktionsfunktion. Weitere Informationen finden Sie unter [Funktionstimeout konfigurieren](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-timeout-console) (Konsole).

Weitere Informationen zum Aufrufen einer Lambda-Funktion aus Ihrem Code finden Sie unter Funktionen [aufrufen AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-functions.html). 

**So testen Sie Ihre Lambda-Funktion**

1. Achten Sie darauf, dass Sie die `lambda:InvokeFunction`-Berechtigung haben. Sie können die folgende Richtlinie verwenden. 

   Sie können den ARN für Ihre Lambda-Funktion in der Funktionsübersicht in der [Lambda-Konsole](https://console.aws.amazon.com/lambda/) abrufen.

   Um Zugriff zu gewähren, fügen Sie Ihren Benutzern, Gruppen oder Rollen Berechtigungen hinzu:
   + Benutzer und Gruppen in: AWS IAM Identity Center

     Erstellen Sie einen Berechtigungssatz. Befolgen Sie die Anweisungen unter [Erstellen eines Berechtigungssatzes](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) im *AWS IAM Identity Center -Benutzerhandbuch*.
   + Benutzer, die in IAM über einen Identitätsanbieter verwaltet werden:

     Erstellen Sie eine Rolle für den Identitätsverbund. Befolgen Sie die Anleitung unter [Eine Rolle für einen externen Identitätsanbieter (Verbund) erstellen](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) im *IAM-Benutzerhandbuch*.
   + IAM-Benutzer:
     + Erstellen Sie eine Rolle, die Ihr Benutzer annehmen kann. Befolgen Sie die Anleitung unter [Eine Rolle für einen IAM-Benutzer erstellen](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) im *IAM-Benutzerhandbuch*.
     + (Nicht empfohlen) Weisen Sie einem Benutzer eine Richtlinie direkt zu oder fügen Sie einen Benutzer zu einer Benutzergruppe hinzu. Befolgen Sie die Anweisungen unter [Hinzufügen von Berechtigungen zu einem Benutzer (Konsole)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) im *IAM-Benutzerhandbuch*.

1. Installieren und konfigurieren Sie AWS das SDK für Python. Weitere Informationen finden Sie unter [Schritt 4: Richten Sie das und ein AWS CLI AWS SDKs](su-awscli-sdk.md).

1. [Starten Sie das Modell](rm-start.md), das Sie in Schritt 7 von [Schritt 1: Erstellen Sie eine AWS Lambda Funktion (Konsole)](#example-lambda-create-function) angegeben haben.

1. Speichern Sie den folgenden Code in eine Datei mit dem Namen `client.py`. 

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   Purpose
   Test code for running the Amazon Rekognition Custom Labels Lambda
   function example code.
   """
   
   import argparse
   import logging
   import base64
   import json
   import boto3
   
   from botocore.exceptions import ClientError
   
   
   logger = logging.getLogger(__name__)
   
   
   def analyze_image(function_name, image):
       """Analyzes an image with an AWS Lambda function.
       :param image: The image that you want to analyze.
       :return The status and classification result for
       the image analysis.
       """
   
       lambda_client = boto3.client('lambda')
   
       lambda_payload = {}
   
       if image.startswith('s3://'):
           logger.info("Analyzing image from S3 bucket: %s", image)
           bucket, key = image.replace("s3://", "").split("/", 1)
           s3_object = {
               'Bucket': bucket,
               'Name': key
           }
           lambda_payload = {"S3Object": s3_object}
   
       # Call the lambda function with the image.
       else:
           with open(image, 'rb') as image_file:
               logger.info("Analyzing local image image: %s ", image)
               image_bytes = image_file.read()
               data = base64.b64encode(image_bytes).decode("utf8")
   
               lambda_payload = {"image": data}
   
       response = lambda_client.invoke(FunctionName=function_name,
                                       Payload=json.dumps(lambda_payload))
   
       return json.loads(response['Payload'].read().decode())
   
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       :param parser: The command line parser.
       """
   
       parser.add_argument(
           "function", help="The name of the AWS Lambda function that you want " \
           "to use to analyze the image.")
       parser.add_argument(
           "image", help="The local image that you want to analyze.")
   
   
   def main():
       """
       Entrypoint for script.
       """
       try:
           logging.basicConfig(level=logging.INFO,
                               format="%(levelname)s: %(message)s")
   
           # Get command line arguments.
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
   
           # Get analysis results.
           result = analyze_image(args.function, args.image)
           status = result['statusCode']
   
           if status == 200:
               labels = result['body']
               labels = json.loads(labels)
               print(f"There are {len(labels)} labels in the image.")
               for custom_label in labels:
                   confidence = int(round(custom_label['Confidence'], 0))
                   print(
                       f"Label: {custom_label['Name']}: Confidence: {confidence}%")
           else:
               print(f"Error: {result['statusCode']}")
               print(f"Message: {result['body']}")
   
       except ClientError as error:
           logging.error(error)
           print(error)
   
   
   if __name__ == "__main__":
       main()
   ```

1. Führen Sie den Code aus. Geben Sie für das Befehlszeilenargument den Namen der Lambda-Funktion und das Bild an, das Sie analysieren möchten. Sie können einen Pfad zu einem lokalen Image oder den S3-Pfad zu einem in einem Amazon-S3-Bucket gespeicherten Bild angeben. Beispiel:

   ```
   python client.py function_name s3://bucket/path/image.jpg
   ```

   Wenn sich das Bild in einem Amazon-S3-Bucket befindet, stellen Sie sicher, dass es sich um denselben Bucket handelt, den Sie in Schritt 15 von [Schritt 1: Erstellen Sie eine AWS Lambda Funktion (Konsole)](#example-lambda-create-function) angegeben haben.

   Ist dies erfolgreich, wird eine Liste von Labels ausgegeben, die im Bild gefunden wurden. Wenn keine Labels zurückgegeben werden, sollten Sie den Konfidenzwert, den Sie in Schritt 7 von [Schritt 1: Erstellen Sie eine AWS Lambda Funktion (Konsole)](#example-lambda-create-function) festgelegt haben, verringern.

1. Wenn Sie mit der Lambda-Funktion fertig sind und das Modell nicht von anderen Anwendungen verwendet wird, [beenden Sie das Modell](rm-stop.md). Denken Sie daran, [das Modell zu starten](rm-start.md), wenn Sie das nächste Mal die Lambda-Funktion verwenden möchten. 