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.
Ausgabedaten
Die Ausgabe eines Kennzeichnungsauftrags wird an dem Amazon S3 S3-Speicherort abgelegt, den Sie in der Konsole oder im Aufruf desCreateLabelingJobverwenden. Ausgabedaten werden an diesem Ort angezeigt, wenn die Mitarbeiter eine oder mehrere Aufgaben eingereicht haben oder wenn Aufgaben ablaufen. Beachten Sie, dass es einige Minuten dauern kann, bis Ausgabedaten in Amazon S3 angezeigt werden, nachdem der Mitarbeiter die Aufgabe übermittelt oder die Aufgabe abgelaufen ist.
Jede Zeile in der Ausgabedatendatei ist identisch mit der Manifestdatei. Zusätzlich verfügt sie jedoch über ein Attribut und einen Wert für die Bezeichnung, die dem Eingabeobjekt zugewiesen ist. Der Attributname für den Wert wird in der Konsole oder im Aufruf der CreateLabelingJob
-Operation definiert. Sie können -metadata
nicht im Attributnamen der Bezeichnung verwenden. Wenn Sie eine semantische Bildsegmentierung, eine semantische 3D-Punktwolkensegmentierung oder einen 3D-Punktwolken-Objektverfolgungsauftrag ausführen, muss das Bezeichnungsattribut mit -ref
enden. Für jede andere Art von Auftrag darf der Attributname nicht mit -ref
enden.
Die Ausgabe des Kennzeichnungsauftrags ist der Wert des Schlüssel-Wert-Paares mit der Bezeichnung. Die Bezeichnung und der Wert überschreiben alle vorhandenen JSON-Daten in der Eingabedatei mit dem neuen Wert.
Im Folgenden finden Sie die Ausgabe eines Kennzeichnungsauftrags der Bildklassifizierung, in dem die Eingabedatendateien in einem Amazon S3 gespeichert wurden
und der Name des Label-Attributs wurde alsAWSDOC-EXAMPLE-BUCKET
aus. In diesem Beispiel wird das JSON-Objekt aus Gründen der Lesbarkeit formatiert, in der tatsächlichen Ausgabedatei befindet sich das JSON-Objekt in einer einzelnen Zeile. Weitere Informationen zum Datenformat finden Sie unter JSON Lines (JSON-Zeilen)sport
{ "source-ref": "
s3://AWSDOC-EXAMPLE-BUCKET/image_example.png
", "sport
":0
, "sport
-metadata": { "class-name": "football
", "confidence":0.00
, "type":"groundtruth/image-classification", "job-name": "identify-sport
", "human-annotated": "yes
", "creation-date": "2018-10-18T22:18:13.527256
" } }
Beim Wert der Bezeichnung kann es sich um jede gültige JSON handeln. In diesem Fall ist der Wert der Bezeichnung der Index der Klasse in der Klassifizierungsliste. Andere Auftragstypen, wie z. B. Begrenzungsrahmen, verfügen über komplexere Werte.
Jedes Schlüssel-Wert-Paar in der Eingabemanifestdatei mit Ausnahme des Bezeichnungsattributs bleibt in der Ausgabedatei unverändert. Auf diese Weise können Sie Daten an Ihre Anwendung übergeben.
Die Ausgabe eines Kennzeichnungsauftrags kann als Eingabe für einen anderen Kennzeichnungsauftrag verwendet werden. Sie können dies bei der Verkettung von Kennzeichnungsaufträgen verwenden. Beispielsweise können Sie einen Kennzeichnungsauftrag senden, um den Sport zu bestimmen, der gespielt wird. Anschließend senden Sie einen anderen mit denselben Daten, um zu bestimmen, ob der Sport im Innen- oder Außenbereich gespielt wird. Durch die Verwendung der Ausgabedaten aus dem ersten Auftrag als Manifest für den zweiten Auftrag können Sie die Ergebnisse der zwei Aufträge in einer Ausgabedatei für eine einfachere Verarbeitung durch Ihre Anwendungen konsolidieren.
Die Ausgabedatendatei wird in regelmäßigen Abständen in den Ausgabespeicherort geschrieben, während der Auftrag noch ausgeführt wird. Diese Zwischendateien enthalten eine Zeile für jede Zeile in der Manifestdatei. Wenn ein Objekt gekennzeichnet ist, wird die Bezeichnung eingeschlossen. Wenn das Objekt nicht gekennzeichnet wurde, wird es in die Zwischenausgabedatei genauso wie die Manifestdatei geschrieben.
Ausgabeverzeichnisse
Ground Truth erstellt mehrere Verzeichnisse in Ihrem Amazon S3 S3-Ausgabepfad. Diese Verzeichnisse enthalten die Ergebnisse Ihres Kennzeichnungsauftrags und andere Artefakte des Auftrags. Das oberste Verzeichnis für einen Kennzeichnungsauftrag erhält den gleichen Namen wie Ihr Kennzeichnungsauftrag; Die Ausgabeverzeichnisse werden darunter platziert. Wenn Sie beispielsweise Ihre Kennzeichnungsaufgabe genannt habenfind-people
, Ihre Ausgabe befindet sich in den folgenden Verzeichnissen:
s3://
AWSDOC-EXAMPLE-BUCKET
/find-people/activelearning s3://AWSDOC-EXAMPLE-BUCKET
/find-people/annotations s3://AWSDOC-EXAMPLE-BUCKET
/find-people/inference s3://AWSDOC-EXAMPLE-BUCKET
/find-people/manifests s3://AWSDOC-EXAMPLE-BUCKET
/find-people/training
Jedes Verzeichnis enthält die folgende Ausgabe:
Verzeichnis für aktives Lernen
Das activelearning
-Verzeichnis ist nur vorhanden, wenn Sie die automatisierte Datenkennzeichnung verwenden. Es enthält die Eingabe- und Ausgabevalidierung, die für die automatisierte Datenkennzeichnung festgelegt sind, und den Eingabe- und Ausgabeordner für automatisch gekennzeichnete Daten.
Verzeichnis für Anmerkungen
Das annotations
-Verzeichnis enthält alle Anmerkungen der Arbeitskräfte. Dies sind die Antworten von einzelnen Workern, die nicht in eine einzige Bezeichnung für das Datenobjekt konsolidiert wurden.
Es gibt drei Unterverzeichnisse im annotations
-Verzeichnis.
-
Das erste,
worker-response
, enthält die Antworten von einzelnen Workern. Dieses enthält für jede Iteration ein Unterverzeichnis, das wiederum ein Unterverzeichnis für jedes Datenobjekt in dieser Iteration enthält. Die Workerantwortdaten für jedes Datenobjekt werden in einer JSON-Datei mit Zeitstempel gespeichert, die die von jedem Mitarbeiter für dieses Datenobjekt übermittelten Antworten enthält, und wenn Sie eine private Belegschaft verwenden, Metadaten über diese Mitarbeiter. Weitere Informationen zu diesen Metadaten finden Sie unterWorker-Metadatenaus. -
Das zweite,
consolidated-annotation
, enthält die Informationen, die erforderlich sind, um die Anmerkungen im aktuellen Stapel in Bezeichnungen für Ihre Datenobjekte zu konsolidieren. -
Die dritte,
intermediate
, enthält das Ausgabemanifest für den aktuellen Stapel mit allen abgeschlossenen Bezeichnungen. Diese Datei wird aktualisiert, während die Bezeichnung für jedes Datenobjekt abgeschlossen wird.
Es wird empfohlen, keine Dateien zu verwenden, die in der Dokumentation nicht aufgeführt sind.
Inferenz-Verzeichnis
Das inference
-Verzeichnis ist nur vorhanden, wenn Sie die automatisierte Datenkennzeichnung verwenden. Dieses Verzeichnis enthält die Eingabe- und Ausgabedateien für die SageMaker-Stapeltransformation, die während der Kennzeichnung der Datenobjekte verwendet wurde.
Manifestverzeichnis
Das manifest
-Verzeichnis enthält das Ausgabemanifest von Ihrem Kennzeichnungsauftrag. Es gibt ein Unterverzeichnis im Manifestverzeichnis, und zwar: output
. Das output
-Verzeichnis enthält die Ausgabemanifestdatei für Ihren Kennzeichnungsauftrag. Die Datei erhält die Bezeichnung output.manifest
.
Schulungsverzeichnis
Das training
-Verzeichnis ist nur vorhanden, wenn Sie die automatisierte Datenkennzeichnung verwenden. Dieses Verzeichnis enthält die Eingabe- und Ausgabedateien, die für die Schulung des automatisierten Datenkennzeichnungsmodells verwendet werden.
Zuverlässigkeitswert
Wenn mehrere Auftragnehmer eine einzelne Aufgabe mit Anmerkungen versehen haben, ergibt sich die Bezeichnung aus der Anmerkungskonsolidierung. Ground Truth berechnet einen Zuverlässigkeitswert für jede Bezeichnung. EINVertrauenswertist eine Zahl zwischen 0 und 1, die angibt, wie zuverlässig Ground Truth in der Bezeichnung ist. Sie können den Zuverlässigkeitswert verwenden, um gekennzeichnete Datenobjekte untereinander zu vergleichen, und zur Identifizierung der unzuverlässigsten oder zuverlässigsten Bezeichnungen.
Sie sollten den Wert eines Zuverlässigkeitswertes nicht als absoluten Wert interpretieren oder Zuverlässigkeitswerte für Kennzeichnungsaufträge hinweg vergleichen. Beispiel: Wenn alle Zuverlässigkeitswerte zwischen 0,98 und 0,998 liegen, sollten Sie die Datenobjekte nur untereinander vergleichen und sich nicht auf die hohen Zuverlässigkeitswerte verlassen.
Sie sollten die Zuverlässigkeitswerte von Menschen gekennzeichneten Datenobjekten und automatisch gekennzeichneten Datenobjekten nicht vergleichen. Die Zuverlässigkeitswerte für Menschen werden unter Verwendung der Anmerkungskonsolidierungsfunktion für die Aufgabe berechnet, während die Zuverlässigkeitswerte für automatisierte Kennzeichnung unter Verwendung eines Modells berechnet werden, das Objektfunktionen enthält. Die beiden Modelle haben in der Regel unterschiedliche Skalierungen und durchschnittliche Zuverlässigkeit.
Für einen Kennzeichnungsauftrag für Begrenzungsrahmen berechnet Ground Truth einen Zuverlässigkeitswert pro Feld. Sie können Zuverlässigkeitswerte innerhalb eines Bildes oder auf mehreren Bildern für den gleichen Kennzeichnungstyp (menschlich oder automatisch) vergleichen. Sie können keine Zuverlässigkeitswerte für Kennzeichnungsaufträge vergleichen.
Wenn eine einzelne Arbeitskraft eine Aufgabe kommentiert (NumberOfHumanWorkersPerDataObject
wird auf gesetzt1
oder in der Konsole geben Sie 1 fürAnzahl der Worker pro Datensatzobjekt) wird der Konfidenzwert auf0.00
aus.
Worker-Metadaten
Ground Truth liefert Informationen, die Sie verwenden können, um einzelne Mitarbeiter in Aufgabenausgabedaten zu verfolgen. Die folgenden Daten befinden sich in den Verzeichnissen unter derworker-response
befindet sich unterVerzeichnis für Anmerkungen:
-
Die
acceptanceTime
ist die Zeit, in der der Arbeiter die Aufgabe annahm. Das Format dieses Datums- und Zeitstempels lautetYYYY-MM-DDTHH:MM:SS.mmmZ
für das Jahr (YYYY
), Monat (MM
), tag (DD
), Stunde (HH
), Minute (MM
), zweite (SS
) und Millisekunde (mmm
) enthalten. Datum und Uhrzeit werden durch ein getrenntTaus. -
Die
submissionTime
ist die Zeit, in der die Arbeitskraft seine Anmerkungen mit demEinreichen. Das Format dieses Datums- und Zeitstempels lautetYYYY-MM-DDTHH:MM:SS.mmmZ
für das Jahr (YYYY
), Monat (MM
), tag (DD
), Stunde (HH
), Minute (MM
), zweite (SS
) und Millisekunde (mmm
) enthalten. Datum und Uhrzeit werden durch ein getrenntTaus. -
timeSpentInSeconds
meldet die Gesamtzeit in Sekunden, in der ein Arbeiter aktiv an dieser Aufgabe gearbeitet hat. Diese Metrik beinhaltet keine Zeit, in der ein Arbeiter pausierte oder eine Pause einlegte. -
Die
workerId
ist für jeden Worker spezifisch. -
Wenn Sie einprivate Arbeitskräfte, in
workerMetadata
, siehst du folgendes.-
Die
identityProviderType
Der Service, den für die Verwaltung der privaten Worker verwendet. -
Die
issuer
Ist der Cognito-Benutzerpool oder Aussteller des OIDC Identity Provider (IdP), der mit dem Worker-Team verknüpft ist, das dieser Aufgabe für die menschliche Überprüfung zugeordnet ist. -
Ein Unikat
sub
Bezeichner bezeichnet den Worker. Wenn Sie eine Belegschaft mit Amazon Cognito erstellen, können Sie Details zu diesem Worker (z. B. Namen oder Benutzernamen) mithilfe dieser ID mithilfe dieser ID mithilfe von Amazon Cognito abrufen. Weitere Informationen erhalten Sie unterVerwalten von und Suchen nach BenutzerkonteninAmazon Cognito-Entwicklerhandbuchaus.
-
Im Folgenden finden Sie ein Beispiel für die Ausgabe, die Sie möglicherweise sehen, wenn Sie Amazon Cognito verwenden, um eine private Belegschaft zu erstellen. Dies ist imidentityProviderType
aus.
"submissionTime": "2020-12-28T18:59:58.321Z", "acceptanceTime": "2020-12-28T18:59:15.191Z", "timeSpentInSeconds": 40.543, "workerId": "a12b3cdefg4h5i67", "workerMetadata": { "identityData": { "identityProviderType": "Cognito", "issuer": "https://cognito-idp.aws-region.amazonaws.com/aws-region_123456789", "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }
Es folgt ein Beispiel für denworkerMetadata
Sie können sehen, ob Sie Ihren eigenen OIDC-IdP verwenden, um eine private Belegschaft zu erstellen:
"workerMetadata": { "identityData": { "identityProviderType": "Oidc", "issuer": "https://example-oidc-ipd.com/adfs", "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }
Weitere Informationen zur Verwendung privater Worker finden Sie unter.Verwenden von privaten Arbeitskräftenaus.
Ausgabemetadaten
Die Ausgabe von jedem Auftrag enthält Metadaten über die Bezeichnung, die Datenobjekten zugewiesen ist. Diese Elemente sind für alle Aufträge mit geringfügigen Änderungen gleich. Im folgenden Beispiel werden die Metadaten-Elemente gezeigt:
"confidence":
0.00
, "type": "groundtruth/image-classification
", "job-name": "identify-animal-species
", "human-annotated": "yes
", "creation-date": "2020-10-18T22:18:13.527256
"
Die Elemente haben die folgende Bedeutung:
-
confidence
— Die Zuverlässigkeit, die Ground Truth hat, dass die Kennzeichnung korrekt ist. Weitere Informationen finden Sie unter Zuverlässigkeitswert . -
type
— Die Art des Klassifizierungsauftrags. Informationen zu Auftragstypen finden Sie unter Integrierte Aufgabentypen. -
job-name
— Der Name, den Sie dem Auftrag bei seiner Erstellung zugewiesen haben. -
human-annotated
— Ob das Datenobjekt von einem Menschen gekennzeichnet wurde oder die Kennzeichnung automatisiert erfolgte. Weitere Informationen finden Sie unter Automatisieren des Daten-Labeling . -
creation-date
— Das Datum und die Uhrzeit, an denen die Kennzeichnungen erstellt wurde.
Ausgabe des Klassifizierungsauftrags
Im Folgenden sehen Sie Beispielausgaben (Ausgabemanifestdateien) aus einem Bildklassifizierungsauftrag und einem Textklassifizierungsauftrag. Diese umfassen die Bezeichnung, die Ground Truth dem Datenobjekt zugewiesen hat, den Wert für die Bezeichnung und Metadaten zur Beschreibung der Kennzeichnung.
Zusätzlich zu den standardmäßigen Metadatenelementen umfassen die Metadaten für einen Klassifizierungsauftrag den Textwert der Bezeichnungsklasse. Weitere Informationen finden Sie unter Bildklassifikationsalgorithmus .
Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.
{ "source-ref":"
s3://AWSDOC-EXAMPLE-BUCKET/example_image.jpg
", "species
":"0
", "species
-metadata": { "class-name": "dog
", "confidence":0.00
, "type": "groundtruth/image-classification", "job-name": "identify-animal-species
", "human-annotated": "yes
", "creation-date": "2018-10-18T22:18:13.527256
" } }
{ "source":"
The food was delicious
", "mood
":"1
", "mood
-metadata": { "class-name": "positive
", "confidence":0.8
, "type": "groundtruth/text-classification", "job-name": "label-sentiment
", "human-annotated": "yes
", "creation-date": "2020-10-18T22:18:13.527256
" } }
Ausgabe von Multi-Label-Klassifizierungsaufträgen
Im Folgenden finden Sie Beispiel-Ausgabemanifestdateien aus einem Multi-Label-Bildklassifizierungsauftrag und einem Multi-Label-Textklassifizierungsauftrag. Diese umfassen die Kennzeichnungen, die Ground Truth dem Datenobjekt zugewiesen hat (z. B. das Bild oder Textstück), sowie Metadaten, die die Kennzeichnungen beschreiben, die dem Auftragnehmer beim Abschluss der Kennzeichnungsaufgabe angezeigt wurden.
Der Namensparameter für das Label-Attribut (z.image-label-attribute-name
) enthält eine Reihe aller Kennzeichnungen, die von mindestens einem der Auftragnehmer ausgewählt wurden, die diese Aufgabe abgeschlossen haben. Dieses Array enthält Schlüssel aus Ganzzahlen (z. B. [1,0,8]
), die den Kennzeichnungen in class-map
entsprechen. Im Beispiel für die Multi-Label-Bildklassifizierung wurden bicycle
, person
und clothing
von mindestens einem der Auftragnehmer ausgewählt, die die Kennzeichnungsaufgabe für das Bild exampleimage.jpg
abgeschlossen haben.
Dieconfidence-map
zeigt den Zuverlässigkeitswert an, den Ground Truth jedem von einem -Worker ausgewählten Label zugewiesen hat. Weitere Informationen zu Ground Truth -Konfidenzbewertungen finden Sie unter.Zuverlässigkeitswertaus.
Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.
Im Folgenden finden Sie ein Beispiel für eine Ausgabemanifestdatei für eine Multi-Label-Bildklassifizierung.
{ "source-ref": "
s3://AWSDOC-EXAMPLE-BUCKET/example_image.jpg
", "image-label-attribute-name
":[1,0,8
], "image-label-attribute-name
-metadata": { "job-name":"labeling-job/image-label-attribute-name
", "class-map": { "1
":"bicycle
","0
":"person
","8
":"clothing
" }, "human-annotated":"yes
", "creation-date":"2020-02-27T21:36:25.000201
", "confidence-map": { "1
":0.95
,"0
":0.77
,"8
":0.2
}, "type":"groundtruth/image-classification-multilabel" } }
Im Folgenden finden Sie ein Beispiel für eine Ausgabemanifestdatei für eine Multi-Label-Textklassifizierung. In diesem Beispiel wurden approving
, sad
und critical
von mindestens einem der Auftragnehmer ausgewählt, die die Kennzeichnungsaufgabe für das in AWSDOC-EXAMPLE-BUCKET
gefundene Objekt exampletext.txt
abgeschlossen haben.
{ "source-ref": "
AWSDOC-EXAMPLE-BUCKET/text_file.txt
", "text-label-attribute-name
":[1
,0
,4
], "text-label-attribute-name
-metadata": { "job-name":"labeling-job/text-label-attribute-name
", "class-map": { "1
":"approving
","0
":"sad
","4
":"critical
" }, "human-annotated":"yes
", "creation-date":"2020-02-20T21:36:25.000201
", "confidence-map": { "1
":0.95
,"0
":0.77
,"4
":0.2
}, "type":"groundtruth/text-classification-multilabel" } }
Ausgabe des Begrenzungsrahmenauftrags
Im Folgenden finden Sie eine Beispielausgabe (Ausgabemanifestdatei) aus einem Auftrag mit Begrenzungsrahmen. Für diese Aufgabe werden drei Begrenzungsrahmen zurückgegeben. Der Kennzeichnungswert enthält Informationen über die Größe des Bildes und den Speicherort der Begrenzungsrahmen.
Das class_id
-Element ist der Index der Rahmenklasse in der Liste der verfügbaren Klassen für die Aufgabe. Das class-map
-Metadatenelement enthält den Text der Klasse.
Die Metadaten verfügen über einen separaten Zuverlässigkeitswert für jeden Begrenzungsrahmen. Die Metadaten enthalten auch das class-map
-Element, das die class_id
dem Textwert der Klasse zuweist. Weitere Informationen finden Sie unter Objekterkennungsalgorithmus .
Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.
{ "source-ref": "
s3://AWSDOC-EXAMPLE-BUCKET/example_image.png
", "bounding-box-attribute-name
": { "image_size": [{ "width":500
, "height":400
, "depth":3
}], "annotations": [ {"class_id":0
, "left":111
, "top":134
, "width":61
, "height":128
}, {"class_id":5
, "left":161
, "top":250
, "width":30
, "height":30
}, {"class_id":5
, "left":20
, "top":20
, "width":30
, "height":30
} ] }, "bounding-box-attribute-name
-metadata": { "objects": [ {"confidence":0.8
}, {"confidence":0.9
}, {"confidence":0.9
} ], "class-map": { "0
": "dog
", "5
": "bone
" }, "type": "groundtruth/object-detection", "human-annotated": "yes
", "creation-date": "2018-10-18T22:18:13.527256
", "job-name": "identify-dogs-and-toys
" } }
Die Ausgabe eines Anpassungsauftrags für Begrenzungsrahmen sieht wie der folgende JSON aus. Beachten Sie, dass das ursprüngliche JSON intakt bleibt und zwei neue Aufträge aufgelistet werden, deren ursprünglichen Attributsnamen jeweils „adjust-“ vorangestellt wird.
{ "source-ref": "
S3 bucket location
", "bounding-box-attribute-name
": { "image_size": [{ "width":500
, "height":400
, "depth":3
}], "annotations": [ {"class_id":0
, "left":111
, "top":134
, "width":61
, "height":128
}, {"class_id": 5, "left": 161, "top": 250, "width":30
, "height":30
}, {"class_id":5
, "left":20
, "top":20
, "width":30
, "height":30
} ] }, "bounding-box-attribute-name
-metadata": { "objects": [ {"confidence":0.8
}, {"confidence":0.9
}, {"confidence":0.9
} ], "class-map": { "0
": "dog
", "5
": "bone
" }, "type": "groundtruth/object-detection", "human-annotated": "yes
", "creation-date": "2018-10-18T22:18:13.527256
", "job-name": "identify-dogs-and-toys
" }, "adjusted-bounding-box
": { "image_size": [{ "width":500
, "height":400
, "depth":3
}], "annotations": [ {"class_id":0
, "left":110
, "top":135
, "width":61
, "height":128
}, {"class_id":5
, "left":161
, "top":250
, "width":30
, "height":30
}, {"class_id":5
, "left":10
, "top":10
, "width":30
, "height":30
} ] }, "adjusted-bounding-box
-metadata": { "objects": [ {"confidence":0.8
}, {"confidence":0.9
}, {"confidence":0.9
} ], "class-map": { "0
": "dog
", "5
": "bone
" }, "type": "groundtruth/object-detection", "human-annotated": "yes
", "creation-date": "2018-11-20T22:18:13.527256
", "job-name": "adjust-bounding-boxes-on-dogs-and-toys
", "adjustment-status": "adjusted
" } }
In dieser Ausgabe ändert sich zwar der type
des Auftrags nicht, es wird jedoch ein adjustment-status
-Feld hinzugefügt. Dieses Feld weist den Wert adjusted
oder unadjusted
auf. Wenn mehrere Worker das Objekt überprüft haben und mindestens einer die Kennzeichnung angepasst hat, lautet der Status adjusted
.
Named Entity Recognition
Im Folgenden finden Sie eine Beispielausgabemanifestdatei für eine Kennzeichnungsaufgabe der benannten Entitätserkennung (NER). Für diese Aufgabe siebenentities
werden zurückgegeben.
Im Ausgabemanifest das JSON-Objektannotations
enthält eine Liste derlabels
(Label-Kategorien), die Sie angegeben haben.
Die Antworten der Mitarbeiter befinden sich in einer Liste mit dem Namenentities
aus. Jede Entität in dieser Liste ist ein JSON-Objekt, das einlabel
Wert, der mit einem imlabels
list, eine GanzzahlstartOffset
Wert für den beginnenden Unicode-Offset der beschrifteten Span und eine GanzzahlendOffset
Wert für den endenden Unicode-Offset.
Die Metadaten verfügen über einen separaten Zuverlässigkeitswert für jede Entität. Wenn ein einzelner Worker jedes Datenobjekt beschriftet hat, ist der Konfidenzwert für jede Entität Null.
Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von der Kennzeichnung der Auftragseingaben und Auftragnehmer ab.
{ "source": "
Amazon SageMaker is a cloud machine-learning platform that was launched in November 2017. SageMaker enables developers to create, train, and deploy machine-learning (ML) models in the cloud. SageMaker also enables developers to deploy ML models on embedded systems and edge-devices
", "ner-labeling-job-attribute-name
": { "annotations": { "labels": [ { "label": "Date
", "shortDisplayName": "dt
" }, { "label": "Verb
", "shortDisplayName": "vb
" }, { "label": "Thing
", "shortDisplayName": "tng
" }, { "label": "People
", "shortDisplayName": "ppl
" } ], "entities": [ { "label": "Thing
", "startOffset":22
, "endOffset":53
}, { "label": "Thing
", "startOffset":269
, "endOffset":281
}, { "label": "Verb
", "startOffset":63
, "endOffset":71
}, { "label": "Verb
", "startOffset":228
, "endOffset":234
}, { "label": "Date
", "startOffset":75
, "endOffset":88
}, { "label": "People
", "startOffset":108
, "endOffset":118
}, { "label": "People
", "startOffset":214
, "endOffset":224
} ] } }, "ner-labeling-job-attribute-name
-metadata": { "job-name": "labeling-job/example-ner-labeling-job
", "type": "groundtruth/text-span", "creation-date": "2020-10-29T00:40:39.398470
", "human-annotated": "yes", "entities": [ { "confidence":0
}, { "confidence":0
}, { "confidence":0
}, { "confidence":0
}, { "confidence":0
}, { "confidence":0
}, { "confidence":0
} ] } }
Ausgabe des Auftrags zur Bezeichnungsverifizierung
Die Ausgabe (Ausgabemanifestdatei) eines Verifizierungsauftrags für Begrenzungsrahmen unterschiedet sich anders als die Ausgabe eines Anmerkungsauftrags für Begrenzungsrahmen. Das liegt daran, dass die Worker eine andere Art von Aufgabe haben. Sie kennzeichnen keine Objekte, sondern bewerten die Genauigkeit der vorherigen Kennzeichnung, beurteilen diese und geben daraufhin dieses Urteil sowie vielleicht einige Kommentare ab.
Wenn menschliche Auftragnehmer vorherige Begrenzungsrahmen überprüfen oder anpassen, sieht die Ausgabe eines Verifizierungsauftrags wie die folgende JSON aus. Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.
{ "source-ref":"
s3://AWSDOC-EXAMPLE-BUCKET/image_example.png
", "bounding-box-attribute-name
": { "image_size": [{ "width":500
, "height":400
, "depth":3
}], "annotations": [ {"class_id":0
, "left":111
, "top":134
, "width":61
, "height":128
}, {"class_id":5
, "left":161
, "top":250
, "width":30
, "height":30
}, {"class_id":5
, "left":20
, "top":20
, "width":30
, "height":30
} ] }, "bounding-box-attribute-name
-metadata": { "objects": [ {"confidence":0.8
}, {"confidence":0.9
}, {"confidence":0.9
} ], "class-map": { "0
": "dog
", "5
": "bone
" }, "type": "groundtruth/object-detection", "human-annotated": "yes
", "creation-date": "2018-10-18T22:18:13.527256
", "job-name": "identify-dogs-and-toys
" }, "verify-bounding-box-attribute-name
":"1
", "verify-bounding-box-attribute-name
-metadata": { "class-name": "bad
", "confidence":0.93
, "type": "groundtruth/label-verification", "job-name": "verify-bounding-boxes
", "human-annotated": "yes
", "creation-date": "2018-11-20T22:18:13.527256
", "worker-feedback": [ {"comment": "The bounding box on the bird is too wide on the right side.
"}, {"comment": "The bird on the upper right is not labeled.
"} ] } }
Obwohl der type
der ursprünglichen Begrenzungsrahmenausgabe groundtruth/object-detection
war, lautet der neue type
groundtruth/label-verification
. Beachten Sie auch, dass das worker-feedback
-Array Worker-Kommentare bereitstellt. Wenn der Worker keine Kommentare bereitstellt, werden die leeren Felder während der Konsolidierung ausgeschlossen.
Ausgabe des semantischen Segmentierungsauftrags
Es folgt die Ausgabemanifestdatei für einen semantischen Segmentierungskennzeichnungsauftrag. Der Wert der Bezeichnung für diesen Auftrag ist ein Verweis auf eine PNG-Datei in einem Amazon S3 S3-Bucket.
Zusätzlich zu den Standardelementen enthalten die Metadaten für die Bezeichnung eine Farbkarte, die definiert, welche Farbe für die Kennzeichnung des Bildes verwendet wird, den Klassennamen, der mit der Farbe verknüpft ist, und den Zuverlässigkeitswert für jede Farbe. Weitere Informationen finden Sie unter Semantischer Segmentierungsalgorithm .
Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.
{ "source-ref": "
s3://AWSDOC-EXAMPLE-BUCKET/example_city_image.png
", "city-streets
-ref": "S3 bucket location
", "city-streets
-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence":0.9
, "hex-color": "#ffffff" }, "1": { "class-name": "buildings
", "confidence":0.9
, "hex-color": "#2acf59
" }, "2": { "class-name": "road
", "confidence":0.9
, "hex-color": "#f28333
" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes
", "creation-date": "2018-10-18T22:18:13.527256
", "job-name": "label-city-streets
", }, "verify-city-streets
-ref":"1
", "verify-city-streets
-ref-metadata": { "class-name": "bad
", "confidence":0.93
, "type": "groundtruth/label-verification", "job-name": "verify-city-streets
", "human-annotated": "yes
", "creation-date": "2018-11-20T22:18:13.527256
", "worker-feedback": [ {"comment": "The mask on the leftmost building is assigned the wrong side of the road.
"}, {"comment": "The curb of the road is not labeled but the instructions say otherwise.
"} ] } }
Die Vertrauensstellung wird pro Abbild bewertet. Die Vertrauenswerte sind für alle Klassen in einem Abbild gleich.
Die Ausgabe eines semantischen Segmentierung-Anpassungsauftrags sollte dem folgenden JSON ähnlich sehen.
{ "source-ref": "
s3://AWSDOC-EXAMPLE-BUCKET/example_city_image.png
", "city-streets
-ref": "S3 bucket location
", "city-streets
-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence":0.9
, "hex-color": "#ffffff" }, "1": { "class-name": "buildings
", "confidence":0.9
, "hex-color": "#2acf59
" }, "2": { "class-name": "road
", "confidence":0.9
, "hex-color": "#f28333
" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes
", "creation-date": "2018-10-18T22:18:13.527256
", "job-name": "label-city-streets
", }, "adjusted-city-streets
-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_city_image.png
", "adjusted-city-streets
-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence":0.9
, "hex-color": "#ffffff" }, "1": { "class-name": "buildings
", "confidence":0.9
, "hex-color": "#2acf59
" }, "2": { "class-name": "road
", "confidence":0.9
, "hex-color": "#f28333
" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes
", "creation-date": "2018-11-20T22:18:13.527256
", "job-name": "adjust-label-city-streets
", } }
Ausgabe der Video-Frame-Objekterkennung
Im Folgenden wird die Ausgabemanifestdatei für einen Kennzeichnungsauftrag der Videomrahmenobjekterkennung dargestellt. Der rote, kursiv formatierte Text
in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.
Zusätzlich zu den Standardelementen enthalten die Metadaten eine Klassenzuordnung, die jede Klasse auflistet, die mindestens eine Bezeichnung in der Sequenz enthält. Die Metadaten umfassen auchjob-name
welches ist der Name, den Sie dem Etikettierauftrag zugewiesen haben. Wenn ein oder mehrere Begrenzungsrahmen geändert wurden, gibt es einenadjustment-status
-Parameter in den Metadaten für Prüfungs-Workflows, die auf festgelegt istadjusted
aus.
{ "source-ref": "s3://
DOC-EXAMPLE-BUCKET
/example-path
/input-manifest.json
", "CarObjectDetection
-ref": "s3://AWSDOC-EXAMPLE-BUCKET
/output/labeling-job-name
/annotations/consolidated-annotation/output/0/SeqLabel.json", "CarObjectDetection
-ref-metadata": { "class-map": { "0
": "car
", "1
": "bus
" }, "job-name": "labeling-job/labeling-job-name
", "human-annotated": "yes", "creation-date": "2021-09-29T05:50:35.566000
", "type": "groundtruth/video-object-detection" } }
Ground Truth erstellt eine Ausgabesequenzdatei für jede Sequenz von Videobildern, die beschriftet wurde. Jede Ausgabespequenzdatei enthält Folgendes:
-
Alle Anmerkungen für alle Frames in einer Sequenz im
detection-annotations
Eine Liste von JSON-Objekten. -
Für jeden Frame, der von einem Worker kommentiert wurde, wird der Name der Frame-Datei (
frame
), Zahl (frame-no
), eine Liste von JSON-Objekten, die Anmerkungen (annotations
) und falls zutreffend,frame-attributes
aus. Der Name dieser Liste wird durch den Task-Typ definiert, den Sie verwenden:polylines
,polygons
,keypoints
und für Begrenzungsboxenannotations
aus.Jedes JSON-Objekt enthält Informationen über eine einzelne Anmerkung und ein zugehöriges Label. In der folgenden Tabelle werden die Parameter beschrieben, die Sie für jeden Video-Frame-Aufgabentyp sehen werden.
Aufgabentyp Parameter Bounding Box
Maße der Box:
height
undwidth
Feld oben, Pixelposition der linken Ecke:
top
undleft
Keypoint
Keypoint-Vertices: { "x": int, "y": int }
Polygon
Eine Liste von Polygonscheitelpunkten:
Polygonscheitelpunkte:vertices
{ "x": int, "y": int }
Ein Polygon ist eine geschlossene Form und daher stellt der erste Punkt auch den letzten Punkt dar.
Polyline
Eine Liste von Polylinienscheitelpunkten:
Polylinienscheitelpunkte:vertices
{ "x": int, "y": int }
Zusätzlich zu den aufgabentypspezifischen Werten sehen Sie in jedem JSON-Objekt Folgendes:
-
Werte von irgendwelchen
label-category-attributes
die für dieses Label angegeben wurden. -
Die
class-id
von der Box. Verwenden derclass-map
in der Ausgabemanifestdatei, um zu sehen, welcher Labelkategorie diese ID zugeordnet ist.
-
Es folgt ein Beispiel für einSeqLabel.json
Datei aus einem Beschriftungsauftrag zur Erkennung eines Begrenzungsrahmens für Video-Frame-Objekte. Diese Datei befindet sich unters3://
your-output-bucket
/output-prefix
/annotations/consolidated-annotation/output/annotation-number
/
{ "detection-annotations": [ { "annotations": [ { "height":
41
, "width":53
, "top":152
, "left":339
, "class-id": "1
", "label-category-attributes": { "occluded
": "no
", "size
": "medium
" } }, { "height":24
, "width":37
, "top":148
, "left":183
, "class-id": "0
", "label-category-attributes": { "occluded
": "no
", } } ], "frame-no": "0
", "frame": "frame_0000.jpeg", "frame-attributes": {name
:value
,name
:value
} }, { "annotations": [ { "height":41
, "width":53
, "top":152
, "left":341
, "class-id": "0
", "label-category-attributes": {} }, { "height":24
, "width":37
, "top":141
, "left":177
, "class-id": "0
", "label-category-attributes": { "occluded
": "no
", } } ], "frame-no": "1
", "frame": "frame_0001.jpeg
", "frame-attributes": {name
:value
,name
:value
} } ] }
Ausgabe der Videorahmen-Objektverfolgung
Im Folgenden wird die Ausgabemanifestdatei für einen Kennzeichnungsauftrag für Videomrahmenobjekte dargestellt. Der rote, kursiv formatierte Text
in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.
Zusätzlich zu den Standardelementen enthalten die Metadaten eine Klassenzuordnung, die jede Klasse auflistet, die mindestens eine Bezeichnung in der Bildsequenz enthält. Die Metadaten umfassen auchjob-name
welches ist der Name, den Sie dem Etikettierauftrag zugewiesen haben. Wenn ein oder mehrere Begrenzungsrahmen geändert wurden, gibt es einenadjustment-status
-Parameter in den Metadaten für Prüfungs-Workflows, die auf festgelegt istadjusted
aus.
{ "source-ref": "s3://
DOC-EXAMPLE-BUCKET
/example-path
/input-manifest.json
", "CarObjectTracking
-ref": "s3://AWSDOC-EXAMPLE-BUCKET
/output/labeling-job-name
/annotations/consolidated-annotation/output/0/SeqLabel.json", "CarObjectTracking
-ref-metadata": { "class-map": { "0
": "car
", "1
": "bus
" }, "job-name": "labeling-job/labeling-job-name
", "human-annotated": "yes", "creation-date": "2021-09-29T05:50:35.566000
", "type": "groundtruth/video-object-tracking" } }
Ground Truth erstellt eine Ausgabesequenzdatei für jede Sequenz von Videobildern, die beschriftet wurde. Jede Ausgabespequenzdatei enthält Folgendes:
-
Alle Anmerkungen für alle Frames in einer Sequenz im
tracking-annotations
Eine Liste von JSON-Objekten. -
Für jeden Frame, der von einem Worker kommentiert wurde, ist der Rahmen (
frame
), Zahl (frame-no
), eine Liste von JSON-Objekten, die Anmerkungen (annotations
) und falls zutreffend Frame-Attribute (frame-attributes
) enthalten. Der Name dieser Liste wird durch den Task-Typ definiert, den Sie verwenden:polylines
,polygons
,keypoints
und für Begrenzungsboxenannotations
aus.Jedes JSON-Objekt enthält Informationen über eine einzelne Anmerkung und ein zugehöriges Label. In der folgenden Tabelle werden die Parameter beschrieben, die Sie für jeden Video-Frame-Aufgabentyp sehen werden.
Aufgabentyp Parameter Bounding Box
Maße der Box:
height
undwidth
Feld oben, Pixelposition der linken Ecke:
top
undleft
Keypoint
Keypoint-Vertices: { "x": int, "y": int }
Polygon
Eine Liste von Polygonscheitelpunkten:
Polygonscheitelpunkte:vertices
{ "x": int, "y": int }
Ein Polygon ist eine geschlossene Form und daher stellt der erste Punkt auch den letzten Punkt dar.
Polyline
Eine Liste von Polylinienscheitelpunkten:
Polylinienscheitelpunkte:vertices
{ "x": int, "y": int }
Zusätzlich zu den aufgabentypspezifischen Werten sehen Sie in jedem JSON-Objekt Folgendes:
-
Werte von irgendwelchen
label-category-attributes
die für dieses Label angegeben wurden. -
Die
class-id
von der Box. Verwenden derclass-map
in der Ausgabemanifestdatei, um zu sehen, welcher Beschriftungskategorie diese ID zugeordnet ist. -
Importieren in &S3;
object-id
was eine Instanz eines Labels identifiziert. Diese ID ist über Frames hinweg dieselbe, wenn ein Worker dieselbe Instanz eines Objekts in mehreren Frames identifiziert hat. Wenn beispielsweise ein Auto in mehreren Frames erscheint, werden alle Begrenzungsboxen verwendet, um zu identifizieren, dass das Auto dasselbe hätteobject-id
aus. -
Die
object-name
was ist die Instanz-ID dieser Anmerkung.
-
Es folgt ein Beispiel für einSeqLabel.json
-Datei aus einem Kennzeichnungsauftrag für Begrenzungsrahmen. Diese Datei befindet sich unters3://
your-output-bucket
/output-prefix
/annotations/consolidated-annotation/output/annotation-number
/
{ "tracking-annotations": [ { "annotations": [ { "height":
36
, "width":46
, "top":178
, "left":315
, "class-id": "0
", "label-category-attributes": { "occluded
": "no
" }, "object-id": "480dc450-c0ca-11ea-961f-a9b1c5c97972
", "object-name": "car:1
" } ], "frame-no": "0
", "frame": "frame_0001.jpeg
", "frame-attributes": {} }, { "annotations": [ { "height":30
, "width":47
, "top":163
, "left":344
, "class-id": "1
", "label-category-attributes": { "occluded
": "no
", "size
": "medium
" }, "object-id": "98f2b0b0-c0ca-11ea-961f-a9b1c5c97972
", "object-name": "bus:1
" }, { "height":28
, "width":33
, "top":150
, "left":192
, "class-id": "0
", "label-category-attributes": { "occluded
": "partially
" }, "object-id": "480dc450-c0ca-11ea-961f-a9b1c5c97972
", "object-name": "car:1
" } ], "frame-no": "1
", "frame": "frame_0002.jpeg
", "frame-attributes": {name
:value
,name
:value
} } ] }
Semantische 3D-Punktwolkensegmentierung
Im Folgenden finden Sie die Ausgabemanifestdatei für einen semantischen 3D-Punktwolken-Segmentierungskennzeichnungsauftrag.
Zusätzlich zu den Standardelementen enthalten die Metadaten für die Bezeichnung eine Farbkarte, die definiert, welche Farbe für die Kennzeichnung des Bildes verwendet wird, den Klassennamen, der mit der Farbe verknüpft ist, und den Zuverlässigkeitswert für jede Farbe. Darüber hinaus gibt es eineadjustment-status
-Parameter in den Metadaten für Prüfungs-Workflows, die auf festgelegt istadjusted
wenn die Farbmaske geändert wird. Wenn Sie einen oder mehrere hinzugefügt habenframeAttributes
zu Ihrer Label-Kategorie-Konfigurationsdatei befinden sich Workerantworten für Frame-Attribute im JSON-Objekt,dataset-object-attributes
aus.
Der Parameter
enthält den Speicherort einer komprimierten Datei mit der Erweiterung .zlib. Wenn Sie diese Datei dekomprimieren, enthält sie ein Array. Jeder Index im Array entspricht dem Index eines kommentierten Punktes in der Eingabepunktwolke. Der Wert des Arrays bei einem bestimmten Index gibt die Klasse des Punktes am gleichen Index in der Punktwolke an, basierend auf der semantischen Farbzuordnung in deryour-label-attribute
-refcolor-map
-Parameter desmetadata
aus.
Sie können Python-Code ähnlich wie folgt verwenden, um eine ZLIB-Datei zu dekomprimieren:
import zlib from array import array # read the label file compressed_binary_file = open(
zlib_file_path/file.zlib
, 'rb').read() # uncompress the label file binary_content = zlib.decompress(compressed_binary_file) # load labels to an array my_int_array_data = array('B', binary_content); print(my_int_array_data)
Der obige Codeblock erzeugt eine Ausgabe, die der folgenden ähnelt: Jedes Element des gedruckten Arrays enthält die Klasse eines Punktes an diesem Index in der Punktwolke. Beispiel,my_int_array_data[0] = 1
bedeutetpoint[0]
in der Eingabepunktwolke hat eine Klasse1
aus. Im folgenden Beispiel für eine Ausgabemanifestdatei ist die Klasse0
entspricht"Background"
,1
mitCar
, und2
mitPedestrian
aus.
>> array('B', [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
Im Folgenden finden Sie ein Beispiel für eine semantische Segmentierungsmanifestdatei für 3D-Punktwolken-Beschriftungsauftrag. Der rote, kursiv formatierte Text in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab.
{ "source-ref": "s3://
AWSDOC-EXAMPLE-BUCKET
/examplefolder
/frame1.bin
", "source-ref-metadata":{ "format": "binary/xyzi
", "unix-timestamp":1566861644.759115
, "ego-vehicle-pose":{...
}, "prefix": "s3://AWSDOC-EXAMPLE-BUCKET
/lidar_singleframe_dataset
/prefix
", "images": [{...
}] }, "lidar-ss-label-attribute
-ref": "s3://your-output-bucket
/labeling-job-name
/annotations/consolidated-annotation/output/dataset-object-id
/filename.zlib
", "lidar-ss-label-attribute
-ref-metadata": { 'color-map': { "0": { "class-name": "Background
", "hex-color": "#ffffff
", "confidence":0.00
}, "1": { "class-name": "Car
", "hex-color": "#2ca02c
", "confidence":0.00
}, "2": { "class-name": "Pedestrian
", "hex-color": "#1f77b4
", "confidence":0.00
}, "3": { "class-name": "Tree
", "hex-color": "#ff7f0e
", "confidence":0.00
} }, 'type': 'groundtruth/point_cloud_single_frame_semantic_segmentation', 'human-annotated': 'yes', 'creation-date': '2019-11-12T01:18:14.271944
', 'job-name': 'labeling-job-name
', //only present for adjustment audit workflow "adjustment-status": "adjusted
", // "adjusted" means the label was adjusted "dataset-object-attributes": {name
:value
,name
:value
} } }
3D-Punktwolken-Objekterkennung
Im Folgenden finden Sie eine Beispielausgabe von einem 3D-Punktwolken-Objekterkennungsauftrag. Für diesen Aufgabentyp werden die Daten zu 3D-Quadern im Parameter 3d-bounding-box
in einer Liste mit dem Namen annotations
zurückgegeben. In dieser Liste wird jeder 3D-Quader anhand der folgenden Informationen beschrieben.
-
Jede Klasse oder Beschriftungskategorie, die Sie in Ihrem Eingabemanifest angeben, ist mit einer verknüpft
class-id
aus. Verwenden Sie dieclass-map
, um die Klasse zu identifizieren, die jeder Klassen-ID zugeordnet ist. -
Diese Klassen werden verwendet, um jedem 3D-Quader einen
object-name
im Format<class>:<integer>
zu geben, wobeiinteger
eine eindeutige Nummer ist, um diesen Quader im Frame zu identifizieren. -
center-x
,center-y
, undcenter-z
sind die Koordinaten der Mitte des Quader, im selben Koordinatensystem wie die Eingabedaten der 3D-Punktwolke, die in Ihrem Etikettierauftrag verwendet werden. -
length
,width
, undheight
Beschreiben Sie die Abmessungen des Quaders. -
yaw
wird verwendet, um die Ausrichtung (Fahrkurs) des Quaders in Bogenmaß zu beschreiben.Die
yaw
Die Messung in den Ausgangsdaten beträgt 180 Grad oder Pi im Bogenmaß minusyaw
im rechtshändigen Weltkoordinatensystem beim Blick auf den Quader. Mit anderen Worten, wenn man einen Quader von oben nach unten betrachtet,yaw_in_output_data
ist im Uhrzeigersinn positiv (im Gegensatz zum Rechtshänder-Weltkoordinatensystem, bei dem die Ansicht von oben nach unten mit einer positiven Rotation gegen den Uhrzeigersinn verbunden ist). Wenn man vom Quader nach oben schaut,yaw_in_output_data
ist gegen den Uhrzeigersinn positiv.So konvertieren Sie
yaw_in_output_data
Um die gebräuchlichere Ausrichtung des rechtshändigen Weltkoordinatensystems zu erreichen, verwenden Sie Folgendes (alle Einheiten sind im Bogenmaß):yaw_right_handed_cartesian_system = pi - yaw_in_output_data
-
Wenn Sie einen Kennzeichnungsauftrag für die 3D-Punktwolkenanpassung erstellt haben und
pitch
undroll
in der Eingabe-Manifestdatei das gleichepitch
undroll
Die Messungen werden in der Ausgabemanifestdatei angezeigt. Ansonstenpitch
undrole
ist immer 0. -
Wenn Sie Beschriftungsattribute in Ihre Eingabemanifestdatei für eine bestimmte Klasse aufgenommen haben, wird ein
label-category-attributes
-Parameter ist für alle Quader enthalten, für die Arbeiter Beschriftungsattribute ausgewählt haben.
Wenn ein oder mehrere Quader geändert wurden, gibt es in den Metadaten für Prüfungs-Workflows einen adjustment-status
-Parameter, der auf adjusted
festgelegt ist. Wenn Sie einen oder mehrere hinzugefügt habenframeAttributes
zu Ihrer Label-Kategorie-Konfigurationsdatei befinden sich Workerantworten für Frame-Attribute im JSON-Objekt,dataset-object-attributes
aus.
Der rote, kursiv formatierte Text
in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab. Die Ellipsen (...
) bezeichnen eine Fortsetzung dieser Liste, in der zusätzliche Objekte mit dem gleichen Format wie das fortlaufende Objekt angezeigt werden können.
{ "source-ref": "
s3://AWSDOC-EXAMPLE-BUCKET/examplefolder/frame1.txt
", "source-ref-metadata":{ "format": "text/xyzi
", "unix-timestamp":1566861644.759115
, "prefix": "s3://AWSDOC-EXAMPLE-BUCKET
/lidar_singleframe_dataset
/prefix
", "ego-vehicle-pose": { "heading": { "qx":-0.02111296123795955
, "qy":-0.006495469416730261
, "qz":-0.008024565904865688
, "qw":0.9997181192298087
}, "position": { "x":-2.7161461413869947
, "y":116.25822288149078
, "z":1.8348751887989483
} }, "images": [ { "fx":847.7962624528487
, "fy":850.0340893791985
, "cx":576.2129134707038
, "cy":317.2423573573745
, "k1":0
, "k2":0
, "k3":0
, "k4":0
, "p1":0
, "p2":0
, "skew":0
, "unix-timestamp":1566861644.759115
, "image-path": "images/frame_0_camera_0.jpg
", "position": { "x":-2.2722515189268138
, "y":116.86003310568965
, "z":1.454614668542299
}, "heading": { "qx":0.7594754093069037
, "qy":0.02181790885672969
, "qz":-0.02461725233103356
, "qw":-0.6496916273040025
}, "camera_model": "pinhole
" } ] }, "3d-bounding-box
": { "annotations": [ { "label-category-attributes": { "Occlusion
": "Partial
", "Type
": "Sedan
" }, "object-name": "Car:1
", "class-id":0
, "center-x":-2.616382013657516
, "center-y":125.04149850484193
, "center-z":0.311272296465834
, "length":2.993000265181146
, "width":1.8355260519692056
, "height":1.3233490884304047
, "roll":0
, "pitch":0
, "yaw":1.6479308313703527
}, { "label-category-attributes": { "Occlusion
": "Partial
", "Type
": "Sedan
" }, "object-name": "Car:2
", "class-id":0
, "center-x":-5.188984560617168
, "center-y":99.7954483288783
, "center-z":0.2226435567445657
, "length":4
, "width":2
, "height":2
, "roll":0
, "pitch":0
, "yaw":1.6243170732068055
} ] }, "3d-bounding-box
-metadata": { "objects": [], "class_map": { "0
": "Car
", }, "type": "groundtruth/point_cloud_object_detection", "human-annotated": "yes
", "creation-date": "2018-10-18T22:18:13.527256
", "job-name": "identify-3d-objects
", "adjustment-status": "adjusted
", "dataset-object-attributes": {name
:value
,name
:value
} } }
3D-Punktwolken-Objektverfolgung
Im Folgenden finden Sie ein Beispiel für eine Ausgabemanifestdatei für einen Kennzeichnungsauftrag der 3D-Punktwolkenobjekt-Verfolgung. Der rote, kursiv formatierte Text
in den folgenden Beispielen hängt von den Spezifikationen des Kennzeichnungsauftrags und den Ausgabedaten ab. Die Ellipsen (...
) bezeichnen eine Fortsetzung dieser Liste, in der zusätzliche Objekte mit dem gleichen Format wie das fortlaufende Objekt angezeigt werden können.
Zusätzlich zu den Standardelementen enthalten die Metadaten eine Klassenzuordnung, die jede Klasse auflistet, die mindestens eine Bezeichnung in der Sequenz enthält. Wenn ein oder mehrere Quader geändert wurden, gibt es in den Metadaten für Prüfungs-Workflows einen adjustment-status
-Parameter, der auf adjusted
festgelegt ist.
{ "source-ref": "
s3://AWSDOC-EXAMPLE-BUCKET/myfolder/seq1.json
", "lidar-label-attribute
-ref": "s3://<CustomerOutputLocation>/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.json
", "lidar-label-attribute
-ref-metadata": { "objects": [ { "frame-no":300
, "confidence": [] }, { "frame-no":301
, "confidence": [] },...
], 'class-map': {'0
': 'Car
', '1
': 'Person
'}, 'type': 'groundtruth/point_cloud_object_tracking', 'human-annotated': 'yes'
, 'creation-date': '2019-11-12T01:18:14.271944
', 'job-name': 'identify-3d-objects
', "adjustment-status": "adjusted
" } }
Im obigen Beispiel werden die Quaderdaten für jeden Frame inseq1.json
ist inSeqLabel.json
am Amazon S3 S3-Speicherorts3://
aus. Im Folgenden wird ein Beispiel für diese Bezeichnungssequenzdatei dargestellt.<customerOutputLocation>
/<labelingJobName>
/annotations/consolidated-annotation/output/<datasetObjectId>
/SeqLabel.json
Für jeden Frame in der Sequenz wirdframe-number
,frame-name
, falls zutreffend,frame-attributes
und eine Listeannotations
aus. Diese Liste enthält 3D-Quadern, die für diesen Frame gezeichnet wurden. Jede Anmerkung enthält die folgenden Informationen:
-
Importieren in &S3;
object-name
im Format<class>:<integer>
woherclass
identifiziert die Label-Kategorie undinteger
ist eine eindeutige ID im gesamten Datensatz. -
Wenn Auftragnehmer einen Quader zeichnen, wird er mit einer eindeutigen
object-id
verknüpft, die allen Quadern zugeordnet ist, die dasselbe Objekt über mehrere Frames hinweg identifizieren. -
Jede Klasse oder Beschriftungskategorie, die Sie in Ihrem Eingabemanifest angegeben haben, ist mit einer
class-id
verknüpft. Verwenden Sie dieclass-map
, um die Klasse zu identifizieren, die jeder Klassen-ID zugeordnet ist. -
center-x
,center-y
, undcenter-z
sind die Koordinaten der Mitte des Quader, im selben Koordinatensystem wie die Eingabedaten der 3D-Punktwolke, die in Ihrem Etikettierauftrag verwendet werden. -
length
,width
, undheight
Beschreiben Sie die Abmessungen des Quaders. -
yaw
wird verwendet, um die Ausrichtung (Fahrkurs) des Quaders in Bogenmaß zu beschreiben.Die
yaw
Die Messung in den Ausgangsdaten beträgt 180 Grad oder Pi im Bogenmaß minusyaw
im rechtshändigen Weltkoordinatensystem beim Blick auf den Quader. Mit anderen Worten, wenn man einen Quader von oben nach unten betrachtet,yaw_in_output_data
ist im Uhrzeigersinn positiv (im Gegensatz zum Rechtshänder-Weltkoordinatensystem, bei dem die Ansicht von oben nach unten mit einer positiven Rotation gegen den Uhrzeigersinn verbunden ist). Wenn man vom Quader nach oben schaut,yaw_in_output_data
ist gegen den Uhrzeigersinn positiv.So konvertieren Sie
yaw_in_output_data
Um die gebräuchlichere Ausrichtung des rechtshändigen Weltkoordinatensystems zu erreichen, verwenden Sie Folgendes (alle Einheiten sind im Bogenmaß):yaw_right_handed_cartesian_system = pi - yaw_in_output_data
-
Wenn Sie einen Kennzeichnungsauftrag für die 3D-Punktwolkenanpassung erstellt haben und
pitch
undroll
in der Eingabe-Manifestdatei das gleichepitch
undroll
Die Messungen werden in der Ausgabemanifestdatei angezeigt. Ansonstenpitch
undrole
ist immer 0. -
Wenn Sie Beschriftungsattribute in Ihre Eingabemanifestdatei für eine bestimmte Klasse aufgenommen haben, wird ein
label-category-attributes
-Parameter ist für alle Quader enthalten, für die Arbeiter Beschriftungsattribute ausgewählt haben.
{ "tracking-annotations": [ { "frame-number":
0
, "frame-name": "0.txt.pcd
", "frame-attributes": {name
:value
,name
:value
}, "annotations": [ { "label-category-attributes": {}, "object-name": "Car:4
", "class-id":0
, "center-x":-2.2906369208300674
, "center-y":103.73924823843463
, "center-z":0.37634114027023313
, "length":4
, "width":2
, "height":2
, "roll":0
, "pitch":0
, "yaw":1.5827222214406014
, "object-id": "ae5dc770-a782-11ea-b57d-67c51a0561a1
" }, { "label-category-attributes": { "Occlusion
": "Partial
", "Type
": "Sedan
" }, "object-name": "Car:1
", "class-id":0
, "center-x":-2.6451293634707413
, "center-y":124.9534455706848
, "center-z":0.5020834081743839
, "length":4
, "width":2
, "height":2.080488827301309
, "roll":0
, "pitch":0
, "yaw":-1.5963335581398077
, "object-id": "06efb020-a782-11ea-b57d-67c51a0561a1
" }, { "label-category-attributes": { "Occlusion
": "Partial
", "Type
": "Sedan
" }, "object-name": "Car:2
", "class-id":0
, "center-x":-5.205611313118477
, "center-y":99.91731932137061
, "center-z":0.22917217081212138
, "length":3.8747142207671956
, "width":1.9999999999999918
, "height":2
, "roll":0
, "pitch":0
, "yaw":1.5672228760316775
, "object-id": "26fad020-a782-11ea-b57d-67c51a0561a1
" } ] }, { "frame-number":1
, "frame-name": "1.txt.pcd
", "frame-attributes": {}, "annotations": [ { "label-category-attributes": {}, "object-name": "Car:4
", "class-id":0
, "center-x":-2.2906369208300674
, "center-y":103.73924823843463
, "center-z":0.37634114027023313
, "length":4
, "width":2
, "height":2
, "roll":0
, "pitch":0
, "yaw":1.5827222214406014
, "object-id": "ae5dc770-a782-11ea-b57d-67c51a0561a1
" }, { "label-category-attributes": { "Occlusion
": "Partial
", "Type
": "Sedan
" }, "object-name": "Car:1
", "class-id":0
, "center-x":-2.6451293634707413
, "center-y":124.9534455706848
, "center-z":0.5020834081743839
, "length":4
, "width":2
, "height":2.080488827301309
, "roll":0
, "pitch":0
, "yaw":-1.5963335581398077
, "object-id": "06efb020-a782-11ea-b57d-67c51a0561a1
" }, { "label-category-attributes": { "Occlusion
": "Partial
", "Type
": "Sedan
" }, "object-name": "Car:2
", "class-id":0
, "center-x":-5.221311072916759
, "center-y":100.4639841045424
, "center-z":0.22917217081212138
, "length":3.8747142207671956
, "width":1.9999999999999918
, "height":2
, "roll":0
, "pitch":0
, "yaw":1.5672228760316775
, "object-id": "26fad020-a782-11ea-b57d-67c51a0561a1
" } ] } ] }