Begrenzungsrahmen - Amazon SageMaker

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.

Begrenzungsrahmen

Die zur Schulung eines Machine Learning-Modells verwendeten Bilder enthalten oft mehrere Objekte. Um ein oder mehrere Objekte in Bildern zu klassifizieren und zu lokalisieren, verwenden Sie den Aufgabentyp Amazon SageMaker Ground Truth Bounding Box Labeling Job. In diesem Zusammenhang bezeichnet Lokalisierung die Pixelposition des Begrenzungsrahmens.

Sie erstellen einen Kennzeichnungsauftrag für Begrenzungsrahmen mithilfe des Ground Truth-Abschnitts der Amazon- SageMaker Konsole oder der -CreateLabelingJobOperation.

Wichtig

Wenn Sie eine eigene Manifestdatei erstellen, verwenden Sie den Aufgabentyp "source-ref" zur Identifizierung des Speicherorts jeder Bilddatei in Amazon S3, die beschriftet werden soll. Weitere Informationen finden Sie unter Eingabedaten.

Erstellen einer Kennzeichnungsaufgabe für einen Begrenzungsrahmen (Konsole)

Sie können den Anweisungen folgenErstellen eines Kennzeichnungsauftrags (Konsole), um zu erfahren, wie Sie einen Kennzeichnungsauftrag für Begrenzungsrahmen in der SageMaker Konsole erstellen. Wählen Sie in Schritt 10 im Dropdownmenü Aufgabenkategorie die Option Image und als Aufgabentyp Bounding Box aus.

Ground Truth stellt für die Beschriftungssaufgaben eine Worker-Benutzeroberfläche ähnlich der folgenden bereit. Wenn Sie den Beschriftungsauftrag mit der Konsole erstellen, müssen Sie Anweisungen bereitstellen, damit die Worker den Auftrag ausführen können, und bis zu 50 Beschriftungen, aus denen die Worker auswählen können.

Erstellen einer Kennzeichnungsaufgabe für Begrenzungsrahmen (API)

Um einen Kennzeichnungsauftrag für Begrenzungsrahmen zu erstellen, verwenden Sie die API SageMaker -Operation CreateLabelingJob. Diese API definiert diese Operation für alle AWS SDKs. Eine Liste der sprachspezifischen SDKs, die für diese Operation unterstützt werden, finden Sie im Abschnitt Siehe auch von CreateLabelingJob.

Befolgen Sie diese Anweisungen unter Erstellen eines Kennzeichnungsauftrags (API) und führen Sie die folgenden Schritte aus, während Sie Ihre Anforderung konfigurieren:

  • Vorannotierende Lambda-Features für die Vorannotierung für diesen Aufgabentyp enden mit PRE-BoundingBox. Den Lambda-ARN zur Vorverarbeitung für Ihre Region finden Sie unter PreHumanTaskLambdaArn .

  • Annotations-Konsolidierende Lambda-Features für die Annotationskonsolidierung für diesen Aufgabentyp enden mit ACS-BoundingBox. Den Lambda-ARN zur Konsolidierung von Anmerkungen für Ihre Region finden Sie unter AnnotationConsolidationLambdaArn.

Im Folgenden finden Sie ein Beispiel für eine AWS -Python-SDK-(Boto3)-Anforderung zum Erstellen eines Beschriftungsauftrags in der Region US East (N. Virginia). Alle Parameter in Rot sollten durch Ihre Spezifikationen und Ressourcen ersetzt werden.

response = client.create_labeling_job( LabelingJobName='example-bounding-box-labeling-job, LabelAttributeName='label', InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': 's3://bucket/path/manifest-with-input-data.json' } }, 'DataAttributes': { 'ContentClassifiers': [ 'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent', ] } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/file-to-store-output-data', 'KmsKeyId': 'string' }, RoleArn='arn:aws:iam::*:role/*, LabelCategoryConfigS3Uri='s3://bucket/path/label-categories.json', StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': 'arn:aws:sagemaker:region:*:workteam/private-crowd/*', 'UiConfig': { 'UiTemplateS3Uri': 's3://bucket/path/worker-task-template.html' }, 'PreHumanTaskLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox', 'TaskKeywords': [ 'Bounding Box', ], 'TaskTitle': 'Bounding Box task', 'TaskDescription': 'Draw bounding boxes around objects in an image', 'NumberOfHumanWorkersPerDataObject': 123, 'TaskTimeLimitInSeconds': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'MaxConcurrentTaskCount': 123, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox' } }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

Bereitstellen einer Vorlage für Kennzeichnungsaufgaben für Begrenzungsrahmen

Wenn Sie eine Kennzeichnungsaufgabe unter Verwendung der API erstellen, müssen Sie in UiTemplateS3Uri eine Worker-Aufgabenvorlage bereitstellen. Kopieren und ändern Sie die folgende Vorlage. Ändern Sie nur short-instructions, full-instructions und header. Laden Sie diese Vorlage zu S3 hoch und geben Sie den S3-URI für diese Datei in UiTemplateS3Uri an.

<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-bounding-box name="boundingBox" src="{{ task.input.taskObject | grant_read_access }}" header="please draw box" labels="{{ task.input.labels | to_json | escape }}" > <full-instructions header="Bounding box instructions"> <ol><li><strong>Inspect</strong> the image</li><li><strong>Determine</strong> if the specified label is/are visible in the picture.</li> <li><strong>Outline</strong> each instance of the specified label in the image using the provided “Box” tool.</li></ol> <ul><li>Boxes should fit tight around each object</li> <li>Do not include parts of the object are overlapping or that cannot be seen, even though you think you can interpolate the whole shape.</li> <li>Avoid including shadows.</li> <li>If the target is off screen, draw the box up to the edge of the image.</li> </full-instructions> <short-instructions> <h3><span style="color: rgb(0, 138, 0);">Good example</span></h3> <p>Enter description of a correct bounding box label and add images</p> <h3><span style="color: rgb(230, 0, 0);">Bad example</span></h3> <p>Enter description of an incorrect bounding box label and add images</p> </short-instructions> </crowd-bounding-box> </crowd-form>

Ausgabedaten für Begrenzungsrahmen

Nach der Erstellung des Bounding Box Beschriftungsauftrags befinden sich bei Verwendung der API die Ausgabedaten in dem im S3OutputPath Parameter angegebenen Amazon S3-Bucket oder im Feld Ausgabedatensatz-Speicherort im Abschnitt Auftragsübersicht der Konsole.

Beispielsweise enthält die Ausgabemanifestdatei einer erfolgreich abgeschlossenen Aufgabe mit Begrenzungsrahmen einer Klasse Folgendes:

[ { "boundingBox": { "boundingBoxes": [ { "height": 2832, "label": "bird", "left": 681, "top": 599, "width": 1364 } ], "inputImageProperties": { "height": 3726, "width": 2662 } } } ]

Der Parameter boundingBoxes identifiziert die Position des Begrenzungsrahmens, der um ein Objekt gezeichnet wird, das als „Vogel“ identifiziert wird, relativ zur linken oberen Ecke des Bildes, für die Pixel-Koordinate (0,0) festgelegt wird. Im vorherigen Beispiel geben left und top die Position des Pixels in der linken oberen Ecke des Begrenzungsrahmens relativ zur linken oberen Ecke des Bildes an. Die Abmessungen des Begrenzungsrahmens werden mit height und width identifiziert. Der Parameter inputImageProperties gibt die Pixel-Abmessungen des ursprünglichen Eingabebildes an.

Wenn Sie den Aufgabentyp mit Begrenzungsrahmen verwenden, können Sie Labeling-Aufträge mit Ein- und Mehrklassen-Begrenzungsrahmen erstellen. Die Ausgabemanifestdatei einer erfolgreich abgeschlossenen Aufgabe mit Begrenzungsrahmen für mehrere Klassen enthält Folgendes:

[ { "boundingBox": { "boundingBoxes": [ { "height": 938, "label": "squirrel", "left": 316, "top": 218, "width": 785 }, { "height": 825, "label": "rabbit", "left": 1930, "top": 2265, "width": 540 }, { "height": 1174, "label": "bird", "left": 748, "top": 2113, "width": 927 }, { "height": 893, "label": "bird", "left": 1333, "top": 847, "width": 736 } ], "inputImageProperties": { "height": 3726, "width": 2662 } } } ]

Weitere Informationen zur Ausgabemanifestdatei zu einem Kennzeichnungsauftrag mit Begrenzungsrahmen finden Sie unter Ausgabe des Begrenzungsrahmenauftrags.

Um mehr über die von Ground Truth erzeugte Ausgabemanifestdatei und die Dateistruktur zu erfahren, die Ground Truth zum Speichern Ihrer Ausgabedaten verwendet, siehe Ausgabedaten.