Semantische Segmentierung von Bildern - 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.

Semantische Segmentierung von Bildern

Um den Inhalt eines Bildes auf Pixelebene zu identifizieren, verwenden Sie eine Amazon SageMaker Ground Truth semantische Segmentierungsbeschriftungsaufgabe. Bei der semantischen Segmentierung klassifizieren die Auftragnehmer die Pixel des Bildes in eine Reihe von vordefinierten Beschriftungen oder Klassen. Ground Truth unterstützt Beschriftungsaufträge mit semantischer Segmentierung für einzelne und mehrere Klassen.

Für Bilder, die eine große Anzahl von Objekten enthalten, die segmentiert werden müssen, wird mehr Zeit benötigt. Damit Auftragnehmer (private oder Anbieterarbeitskräfte) diese Objekte in kürzerer Zeit und mit größerer Genauigkeit beschriften können, stellt Ground Truth ein AI-gestütztes Tool für die automatische Segmentierung bereit. Weitere Informationen finden Sie unter Auto-Segmentierungstool.

Sie erstellen einen Beschriftungsauftrag für die semantische Segmentierung 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 eine semantische Segmentierung (Konsole)

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

Ground Truth stellt für die Beschriftungsaufgaben eine Auftragnehmer-Benutzeroberfläche ähnlich der folgenden bereit. Wenn Sie die Kennzeichnungsaufgabe mit der Konsole erstellen, müssen Sie Anweisungen bereitstellen, damit die Worker die Aufgabe ausführen können, und Kennzeichnungen, aus denen die Worker auswählen können.

Erstellen einer Kennzeichnungsaufgabe für eine semantische Segmentierung (API)

Um einen Beschriftungsauftrag für die semantische Segmentierung 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-SemanticSegmentation. 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-SemanticSegmentation. 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-semantic-segmentation-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-SemanticSegmentation, 'TaskKeywords': [ 'Semantic Segmentation', ], 'TaskTitle': 'Semantic segmentation task', 'TaskDescription': 'For each category provided, segment out each relevant object using the color associated with that category', 'NumberOfHumanWorkersPerDataObject': 123, 'TaskTimeLimitInSeconds': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'MaxConcurrentTaskCount': 123, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation' }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

Bereitstellen einer Vorlage für Kennzeichnungsaufgaben für die semantische Segmentierung

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-semantic-segmentation name="crowd-semantic-segmentation" src="{{ task.input.taskObject | grant_read_access }}" header="Please segment out all pedestrians." labels="{{ task.input.labels | to_json | escape }}" > <full-instructions header="Segmentation instructions"> <ol><li><strong>Read</strong> the task carefully and inspect the image.</li> <li><strong>Read</strong> the options and review the examples provided to understand more about the labels.</li> <li><strong>Choose</strong> the appropriate label that best suits an object and paint that object using the tools provided.</li></ol> </full-instructions> <short-instructions> <h2><span style="color: rgb(0, 138, 0);">Good example</span></h2> <p>Enter description to explain a correctly done segmentation</p> <p><br></p><h2><span style="color: rgb(230, 0, 0);">Bad example</span></h2> <p>Enter description of an incorrectly done segmentation</p> </short-instructions> </crowd-semantic-segmentation> </crowd-form>

Ausgabedaten der semantischen Segmentierung

Nach der Erstellung eines Beschriftungsauftrags für die semantische Segmentierung befinden sich bei Verwendung der API die Ausgabedaten in dem im S3OutputPath Parameter angegebenen Amazon S3-Bucket oder im Feld Ausgabedatensatz-Speicherort im Abschnitt Aufgabenübersicht der Konsole.

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

Ein Beispiel für eine Ausgabemanifestdatei für eine Kennzeichnungsaufgabe für die semantische Segmentierung finden Sie unter Ausgabe der semantischen 3D-Punktwolkensegmentierung.