Dies ist der erste Teil einer zweiteiligen Reihe über die Amazon Sagemaker Ground Truth hierarchischer Beschriftungsworkflow und Dashboards. In Teil 1 befassen wir uns mit der Erstellung mehrstufiger Beschriftungsworkflows für hierarchische Etikettentaxonomien unter Verwendung von AWS Step-Funktionen. In Teil 2 (in Kürze) sehen wir uns an, wie Dashboards zum Analysieren von Dataset-Annotationen und Worker-Performance-Metriken auf Datenseen erstellt werden, die als Ausgabe aus den komplexen Workflows generiert werden, und um Erkenntnisse abzuleiten.
Für die Datenbeschriftung muss häufig ein einzelnes Datenobjekt mehrere Arten von Anmerkungen enthalten Multi-TypB. 2D-Boxen (Begrenzungsrahmen), Linien und Segmentierungsmasken, alle auf einem einzigen Bild. Um hochwertige ML-Modelle (Machine Learning) mit beschrifteten Daten zu erstellen, benötigen Sie außerdem eine Möglichkeit, die Qualität der Beschriftungen zu überwachen. Sie können dies tun, indem Sie einen Workflow erstellen, in dem beschriftete Daten geprüft und nach Bedarf angepasst werden. In diesem Beitrag wird eine Lösung vorgestellt, mit der diese beiden Kennzeichnungsprobleme mithilfe eines Automotive-Datasets gelöst werden können. Sie können diese Lösung für die Verwendung mit jedem Dataset-Typ erweitern.
Nehmen wir für unseren Anwendungsfall an, dass Sie eine große Menge von Fahrzeugvideodaten haben, die aus einem oder mehreren Winkeln auf einem fahrenden Fahrzeug (z. B. einigen) aufgenommen wurden MOT-Szenen (Multi-Object Tracking)) und Sie möchten die Daten mit mehreren Arten von Anmerkungen versehen. Sie planen, diese Daten zu verwenden, um einen ML-Algorithmus für die Geschwindigkeitsregelung und Spurhaltung zu trainieren. Angesichts der anstehenden Aufgabe ist es unbedingt erforderlich, dass Sie zum Trainieren des Modells hochwertige Etiketten verwenden.
Zunächst müssen Sie die Arten von Anmerkungen identifizieren, die Sie Ihren Videobildern hinzufügen möchten. Einige der wichtigsten Objekte, die für diesen Anwendungsfall gekennzeichnet werden müssen, sind andere Fahrzeuge im Rahmen, an den Straßengrenzen und auf den Fahrspuren. Dazu definieren Sie a hierarchische EtikettentaxonomieHiermit wird die Art der Beschriftungen definiert, die Sie jedem Video hinzufügen möchten, und die Reihenfolge, in der die Beschriftungen hinzugefügt werden sollen. Das Beschriftungsauftrag für Ground Truth Video Tracking unterstützt Begrenzungsrahmen-, Polylinien-, Polygon- und Schlüsselpunktanmerkungen. In diesem Anwendungsfall werden Fahrzeuge mit zweidimensionalen Feldern oder mit Anmerkungen versehen BegrenzungsrahmenStraßengrenzen und Kurven sind mit einer Reihe flexibler Liniensegmente versehen, die als bezeichnet werden Polylinien.
Zweitens müssen Sie einen Workflow einrichten, um die Etikettenqualität sicherzustellen. Zu diesem Zweck können Sie einen Audit-Workflow erstellen, um zu überprüfen, ob die von Ihrer Pipeline generierten Labels von ausreichender Qualität sind, um für das Modelltraining nützlich zu sein. In diesem Prüfungsworkflow können Sie die Etikettengenauigkeit erheblich verbessern, indem Sie eine mehrstufige Überprüfungspipeline erstellen, mit der Anmerkungen geprüft und gegebenenfalls von einem zweiten Prüfer angepasst werden können, der möglicherweise ein Fachexperte ist.
Basierend auf der Größe des Datasets und der Datenobjekte sollten Sie auch die Zeit und die Ressourcen berücksichtigen, die zum Erstellen und Verwalten dieser Pipeline erforderlich sind. Idealerweise möchten Sie, dass diese Reihe von Beschriftungsaufträgen automatisch gestartet wird, wobei nur die Bedienung erforderlich ist, um die Eingabedaten und den Workflow anzugeben.
Die in diesem Beitrag verwendete Lösung verwendet Ground Truth, AWS CloudFormation, Schrittfunktionen und Amazon DynamoDB Erstellen einer Reihe von Beschriftungsjobs, die parallel und hierarchisch ausgeführt werden. Sie verwenden eine hierarchische Beschriftungstaxonomie, um Beschriftungsaufträge mit verschiedenen Modalitäten (Polylinien und Begrenzungsrahmen) zu erstellen, und Sie fügen sekundäre menschliche Überprüfungsschritte hinzu, um die Anmerkungsqualität und die Endergebnisse zu verbessern.
In diesem Beitrag zeigen wir die Lösung im Kontext des Automobilbereichs. Sie können diese allgemeine Pipeline jedoch problemlos auf die Kennzeichnung von Pipelines anwenden, die Bilder, Videos, Text und mehr enthalten. Darüber hinaus zeigen wir einen erweiterbaren Workflow, mit dem Sie die Gesamtzahl der Frames reduzieren können, die von Menschen überprüft werden müssen, indem Sie automatisierte Qualitätsprüfungen hinzufügen und die Datenqualität im Maßstab halten. In diesem Anwendungsfall verwenden wir diese Überprüfungen, um Anomalien in TÜV-Zeitreihendaten wie Anmerkungen zur Videoobjektverfolgung zu finden.
Wir gehen durch einen Anwendungsfall, in dem wir mehrere Arten von Anmerkungen für eine Automobilszene generieren. Insbesondere führen wir vier Etikettierungsaufträge pro eingegebenem Videoclip aus: eine Erstbeschriftung von Fahrzeugen, eine Erstbeschriftung von Fahrspuren und anschließend einen Anpassungsauftrag pro Erstauftrag mit einer separaten Belegschaft für Qualitätssicherung.
Wir zeigen die verschiedenen Erweiterungspunkte in unserem Step Function-Workflow, mit denen Sie ausgeführt werden können automatisierte Qualitätssicherungsprüfungen. Dies ermöglicht die Filterung von Clips zwischen und nach Abschluss von Jobs, was zu qualitativ hochwertigen Anmerkungen zu einem Bruchteil der Kosten führen kann.
AWS-Services zur Implementierung dieser Lösung
Diese Lösung erstellt und verwaltet Ground Truth-Beschriftungsjobs, um Videobilder mit mehreren Arten von Anmerkungen zu beschriften. Ground Truth bietet native Unterstützung für Videodatensätze über seinen Videorahmen Objektverfolgungsaufgabentyp.
Mit diesem Aufgabentyp können Mitarbeiter Anmerkungen für eine Reihe von Videobildern erstellen und Tools bereitstellen, mit denen die nächste Position eines Begrenzungsrahmens in nachfolgenden Bildern vorhergesagt werden kann. Es werden auch mehrere Anmerkungsarten unterstützt, z. B. Begrenzungsrahmen oder Polylinien die Konfigurationsdateien für die Etikettenkategorie bei der Schaffung von Arbeitsplätzen zur Verfügung gestellt. Wir verwenden diese Tools in diesem Lernprogramm, um einen Job für Fahrzeugbegrenzungskästen und einen Job für Fahrspurpolylinien auszuführen.
Wir verwenden Schrittfunktionen, um den Beschriftungsauftrag zu verwalten. Diese Lösung abstrahiert die Erstellung von Beschriftungsjobs, sodass Sie den Gesamtworkflow angeben, den Sie mithilfe einer hierarchischen Beschriftungstaxonomie ausführen möchten, und die gesamte Jobverwaltung von Schrittfunktionen verwaltet wird.
Die Lösung wird mithilfe von CloudFormation-Vorlagen implementiert, die Sie in Ihrem AWS-Konto bereitstellen können. Die Schnittstelle zur Lösung ist eine API, die von verwaltet wird Amazon API-GatewayDies bietet die Möglichkeit, Anmerkungsaufgaben an die Lösung zu senden, die dann in Ground Truth-Beschriftungsjobs übersetzt werden.
Voraussichtliche Kosten
Durch die Bereitstellung und Verwendung dieser Lösung entstehen Ihnen maximale Kosten von ca. 20 USD, abgesehen von den Kosten für die menschliche Kennzeichnung, da nur vollständig verwaltete Rechenressourcen bei Bedarf verwendet werden. Amazon Simple Storage-Service (Amazon S3), AWS Lambda, Amazon Sage Maker, API-Gateway, Amazon Simple Notification Service (Amazon SNS), Amazon Simple Queue-Dienst (Amazon-SQS), AWS-Kleber, und Schrittfunktionen sind in der enthalten Kostenloses AWS-Kontingent, mit Gebühren für zusätzliche Nutzung. Weitere Informationen finden Sie auf den folgenden Preisseiten:
Die Preisgestaltung von Ground Truth hängt von der Art der Belegschaft ab, die Sie einsetzen. Wenn Sie ein neuer Benutzer von Ground Truth sind, empfehlen wir Ihnen, eine private Belegschaft zu verwenden und sich als Mitarbeiter einzuschließen, um die Konfiguration Ihres Etikettierungsauftrags zu testen. Weitere Informationen finden Sie unter Preisgestaltung für Amazon SageMaker Ground Truth.
Lösungsüberblick
In dieser zweiteiligen Serie wird ein Architekturmuster erläutert, mit dem Sie eine Pipeline für die Orchestrierung mehrstufiger Datenbeschriftungsworkflows erstellen können, bei denen Mitarbeiter mithilfe von Ground Truth parallel verschiedene Arten von Anmerkungen hinzufügen. Außerdem erfahren Sie, wie Sie die vom Workflow erzeugten Dataset-Annotationen sowie die Worker-Leistung analysieren können. Der erste Beitrag behandelt den Step Functions-Workflow, der erweiterte ML-Datenbeschriftungsworkflows mithilfe von Ground Truth für Verkettungen und hierarchische Beschriftungstaxonomien automatisiert. Der zweite Beitrag beschreibt, wie Sie Datenseen auf Datensatzanmerkungen aus Ground Truth- und Worker-Metriken erstellen und diese Datenseen verwenden, um mithilfe fortschrittlicher Analysen Erkenntnisse abzuleiten oder die Leistung Ihrer Mitarbeiter und die Qualität von Datensatzanmerkungen zu analysieren.
Das folgende Diagramm zeigt den hierarchischen Workflow, mit dem Sie Gruppen von Beschriftungsjobs in aufeinander folgenden Schritten ausführen können, oder Cholesterinspiegel , bei dem jeder Beschriftungsjob in einer Ebene parallel ausgeführt wird.
Die Lösung besteht aus zwei Hauptteilen:
- Verwenden Sie eine API, um den Orchestrierungsworkflow auszulösen.
- Führen Sie die einzelnen Schritte des Workflows aus, um die Beschriftungspipeline zu erreichen.
Lösen Sie den Orchestrierungsworkflow mit einer API aus
Die in dieser Lösung gestartete CloudFormation-Vorlage verwendet API Gateway, um einen Endpunkt bereitzustellen, über den Sie Stapelbeschriftungsjobs auslösen können. Nachdem Sie die Post-Anfrage an den API Gateway-Endpunkt gesendet haben, wird eine Lambda-Funktion ausgeführt, um den Workflow auszulösen.
Die folgende Tabelle enthält die beiden wichtigsten APIs für Benutzer, die für die Ausführung von Batch relevant sind und mehrstufige Beschriftungsjobs darstellen.
URL | Anfragetyp | Beschreibung |
{endpointUrl} / batch / create | jetzt lesen | Die API löst einen neuen Stapel von Beschriftungsjobs aus |
{endpointUrl} / batch / show | BESTELLE | APIs beschreiben den aktuellen Status des Batch-Job-Laufs |
Führen Sie den Workflow aus
Für die Orchestrierung von Schritten verwenden wir Schrittfunktionen als verwaltete Lösung. Wenn die API zur Erstellung von Stapeljobs ausgelöst wird, löst eine Lambda-Funktion einen Workflow für Schrittfunktionen wie den folgenden aus. Dies beginnt mit der Verarbeitung der Annotationseingabe.
Lassen Sie uns die Schritte genauer besprechen.
Transformationsschritt
Der erste Schritt besteht darin, die Daten vorzuverarbeiten. Die aktuelle Implementierung konvertiert die Notebook-Eingänge in die Datentyp der internen Manifestdatei über mehrere Schritte geteilt. Dieser Schritt führt derzeit keine komplexe Verarbeitung durch. Sie können diesen Schritt jedoch weiter anpassen, indem Sie dieser Funktion eine benutzerdefinierte Datenvorverarbeitungslogik hinzufügen. Wenn Ihr Datensatz beispielsweise in Rohvideos codiert wurde, können Sie die Frame-Aufteilung und Manifest-Generierung innerhalb der Transformation durchführen und nicht in einem separaten Notizbuch. Wenn Sie diese Lösung zum Erstellen einer 3D-Punktwolken-Beschriftungspipeline verwenden, möchten Sie möglicherweise Logik hinzufügen, um Posedaten in einem Weltkoordinatensystem mithilfe der extrinsischen Kamera- und LiDAR-Matrizen zu extrahieren.
TriggerLabelingFirstLevel
Wenn die Datenvorverarbeitung abgeschlossen ist, wird die Ground Truth API-Operation ausgeführt ErstellenLabelingJob wird zum Starten von Beschriftungsjobs verwendet. Diese Beschriftungsjobs sind für das Kommentieren von Datensätzen verantwortlich, die an die erste Ebene gebunden sind.
CheckForFirstLevelComplete
Dieser Schritt wartet auf die FIRST_LEVEL
Ground Truth-Beschriftungsjobs, die von der ausgelöst werden TriggerLabelingFirstStep
. Wenn der Jobtrigger abgeschlossen ist, wartet dieser Schritt, bis alle erstellten Beschriftungsjobs abgeschlossen sind. Eine Lambda-Funktion für externe Listener überwacht den Status der Beschriftungsaufträge. Wenn alle ausstehenden Beschriftungsaufträge abgeschlossen sind, wird die ausgeführt sendTokenSucess
API, um diesen Status zu signalisieren und mit dem nächsten Schritt fortzufahren. Fehlerfälle werden mithilfe geeigneter Fehlerklauseln und Zeitüberschreitungen in der Schrittdefinition behandelt.
SendSecondLevelSNSAndCheckResponse
Dieser Schritt führt eine Nachbearbeitung für die Ausgabe des Jobs der ersten Ebene durch. Wenn Sie beispielsweise nur 10% der Frames an die Anpassungsjobs senden möchten, können Sie diese Logik hier implementieren, indem Sie den Satz von Ausgaben aus dem ersten Job filtern.
TriggerLabelingSecondLevel
Wenn die Datennachbearbeitung von der ersten Ebene abgeschlossen ist, CreateLabelingJobs
wird verwendet, um Beschriftungsjobs zu starten, um Anmerkungen auf der zweiten Ebene zu vervollständigen. Zu diesem Zeitpunkt überprüft eine private Belegschaft die Qualität der Anmerkungen der Etikettierungsaufträge der ersten Ebene und aktualisiert die Anmerkungen nach Bedarf.
CheckForSecondLevelComplete
Dieser Schritt ist der gleiche Warteschritt wie CheckForFirstLevelComplete
, Dieser Schritt wartet jedoch einfach auf die Jobs, die auf der zweiten Ebene erstellt werden.
SendThirdLevelSNSAndCheckResponse
Dieser Schritt ist der gleiche Nachbearbeitungsschritt wie SendSecondLevelSNSAndCheckResponse
, In diesem Schritt wird jedoch die Ausgabe der zweiten Ebene nachbearbeitet und als Eingabe in den Beschriftungsjob der dritten Ebene eingespeist.
TriggerLabelingThirdLevel
Dies ist die gleiche Logik wie TriggerLabelingSecondLevel
, Es werden jedoch Beschriftungsjobs ausgelöst, die als dritte Ebene mit Anmerkungen versehen sind. Derzeit aktualisiert die private Belegschaft die Anmerkungen zur Qualität des Etikettierungsauftrags der zweiten Ebene.
CopyLogsAndSendBatchCompleted
Diese Lambda-Funktion protokolliert und sendet SNS-Nachrichten, um Benutzer über den Abschluss des Stapels zu informieren. Es ist auch ein Platzhalter für jede Nachbearbeitungslogik, die Sie möglicherweise ausführen möchten. Die übliche Nachbearbeitung umfasst die Umwandlung der beschrifteten Daten in ein Format, das mit einem kundenspezifischen Datenformat kompatibel ist.
Voraussetzungen:
Stellen Sie vor dem Start sicher, dass Sie die folgenden Voraussetzungen haben:
- An AWS-Konto.
- Ein Notizbuch AWS Identity and Access Management and (IAM) -Rolle mit den Berechtigungen, die zum Abschließen dieser exemplarischen Vorgehensweise erforderlich sind. Ihrer IAM-Rolle müssen die erforderlichen Berechtigungen zugeordnet sein. Wenn Sie keine detaillierte Berechtigung benötigen, fügen Sie die folgenden von AWS verwalteten Richtlinien hinzu:
AmazonS3FullAccess
AmazonAPIGatewayInvokeFullAccess
AmazonSageMakerFullAccess
- Vertrautheit mit Ground Truth, AWS CloudFormation und Step-Funktionen.
- Ein SageMaker Belegschaft. Für diesen Beitrag setzen wir eine private Belegschaft ein. Sie können eine Belegschaft in der SageMaker-Konsole erstellen. Beachten Sie das Amazon Cognito Benutzerpool-ID und App-Client-ID, nachdem Ihre Belegschaft erstellt wurde. Mit diesen Werten teilen Sie der CloudFormation-Stapelbereitstellung mit, welche Belegschaft Arbeitsteams erstellen soll, die die Gruppe der Etikettierer darstellen. Sie finden diese Werte in der Zusammenfassung der privaten Belegschaft Abschnitt auf der Konsole, nachdem Sie Ihre Belegschaft erstellt haben oder wenn Sie anrufen BeschreibenArbeitsteam.
Das folgende GIF zeigt, wie Sie eine private Belegschaft erstellen. Eine schrittweise Anleitung finden Sie unter Erstellen Sie eine Amazon Cognito-Belegschaft mithilfe der Seite "Beschriftungsarbeitskräfte".
Starten Sie den CloudFormation-Stack
Nachdem wir die Struktur der Lösung gesehen haben, stellen wir sie in unserem Konto bereit, damit wir einen Beispielworkflow ausführen können. Alle unsere Bereitstellungsschritte werden von AWS CloudFormation verwaltet. Dadurch werden Ressourcen in Lambda, Schrittfunktionen, DynamoDB und API-Gateway für Sie erstellt.
Sie können den Stack in der AWS-Region starten us-east-1
in der CloudFormation-Konsole durch Auswahl von Stack starten:
Wählen Sie in der CloudFormation-Konsole aus Nächstes Ändern Sie anschließend die folgenden Vorlagenparameter, um die Lösung anzupassen.
Sie finden die CognitoUserPoolClientId und CognitoUserPoolId in der SageMaker-Konsole.
- CognitoUserPoolClientId: App-Client-ID Ihrer privaten Belegschaft.
- CognitoUserPoolId: ID des Benutzerpools, der Ihrer privaten Belegschaft zugeordnet ist.
So suchen Sie diese Werte in der Konsole:
- Öffnen Sie die SageMaker-Konsole unter https://console.aws.amazon.com/sagemaker/
- Auswählen Kennzeichnung von Arbeitskräften im Navigationsbereich.
- die Wahl der Privat
- Verwenden Sie die Werte in der Zusammenfassung des privaten Arbeitsteams Verwenden Sie das App-Client für die CognitoUserPoolClientId und verwenden Amazon Cognito-Benutzerpool für die CognitoUserPoolId.
In diesem Lernprogramm können Sie die Standardwerte für die folgenden Parameter verwenden.
- GlueJobTriggerCron: Cron-Ausdruck, der beim Planen des AWS Glue-Cron-Jobs für die Berichterstellung verwendet werden soll. Die Ergebnisse von Anmerkungen, die mit SageMaker Ground Truth und Worker-Leistungsmetriken generiert wurden, werden zum Erstellen eines Dashboards in Amazon QuickSight verwendet. Dies wird im zweiten Teil ausführlich erläutert. Die Ausgaben von SageMaker-Anmerkungen und Worker-Leistungsmetriken werden in Athena-Abfragen angezeigt, nachdem die Daten mit AWS Glue verarbeitet wurden. Standardmäßig werden AWS Glue Cron-Jobs stündlich ausgeführt.
- JobCompletionTimeout: Anzahl der Sekunden, die gewartet werden muss, bevor ein Beschriftungsjob als fehlgeschlagen behandelt und in den BatchError-Status versetzt wird.
- Protokollierungsebene: Dies wird intern verwendet und kann ignoriert werden. Protokollierungsstufe zum Ändern der Ausführlichkeit von Protokollen. Akzeptiert die Werte DEBUG und PROD.
Präfix: Ein Präfix, das beim Benennen von Ressourcen verwendet wird, die zum Erstellen und Verwalten von Beschriftungsjobs und Worker-Metriken verwendet werden.
Verwenden Sie die Anweisungen in der README-Datei von, um den Stack in einer anderen AWS-Region zu starten GitHub-Repository.
Nach der Bereitstellung der Lösung befinden sich zwei neue Arbeitsteams in der privaten Belegschaft, die Sie zuvor erstellt haben: smgt-workflow-first-level
und smgt-workflow-second-level
. Dies sind die Standardarbeitsteams, die von der Lösung verwendet werden, wenn keine Überschreibungen angegeben sind smgt-workflow-second-level
Das Arbeitsteam wird zum Beschriften von Jobs der zweiten und dritten Ebene verwendet. Sie sollten sich beiden Arbeitsteams hinzufügen, um die von der Lösung erstellten Beschriftungsaufgaben anzuzeigen. Informationen dazu, wie Sie sich einem privaten Arbeitsteam hinzufügen können, finden Sie unter Hinzufügen oder Entfernen von Arbeitern.
Sie müssen auch die API-Gateway-Konsole aufrufen und nach der bereitgestellten API suchen, der das Präfix vorangestellt ist smgt-workflow
und notieren Sie die ID. Das Notizbuch muss auf diese ID verweisen, damit es bestimmen kann, welche API-URL aufgerufen werden soll.
Starten Sie das Notizbuch
Nachdem Sie die Lösung in Ihrem Konto bereitgestellt haben, können Sie ein Notizbuch starten, um mit ihm zu interagieren und neue Workflows zu starten. In diesem Abschnitt gehen wir durch die folgenden Schritte:
- Richten Sie die Notebook-Instanz ein und greifen Sie darauf zu.
- Beziehen Sie den Beispieldatensatz.
- Bereiten Sie die Eingabedateien für Ground Truth vor.
Richten Sie die SageMaker-Notebook-Instanz ein
In diesem Beispielnotizbuch erfahren Sie, wie Sie eine einfache Taxonomie, die aus einer Fahrzeugklasse und einer Fahrspurklasse besteht, den Konfigurationsdateien der Ground Truth-Beschriftungskategorie zuordnen. Eine Konfigurationsdatei für Etikettenkategorien wird verwendet, um die Etiketten zu definieren, mit denen Mitarbeiter Ihre Bilder mit Anmerkungen versehen. Als Nächstes erfahren Sie, wie Sie die Lösung, mit der die Pipeline ausgeführt wird, mithilfe einer CloudFormation-Vorlage starten und konfigurieren. Sie können diesen Code auch weiter anpassen, indem Sie beispielsweise den API-Aufruf für die Stapelerstellung anpassen, um die Beschriftung für eine andere Kombination von Aufgabentypen auszuführen.
Führen Sie die folgenden Schritte aus, um eine Notizbuchinstanz zu erstellen und auf das in diesem Beitrag verwendete Notizbuch zuzugreifen:
- Erstellen Sie eine Notebook-Instanz mit folgenden Parametern:
- Verwenden Sie ml.t2.medium, um die Notebook-Instanz zu starten.
- Erhöhen Sie die Größe des ML-Speichervolumens auf mindestens 10 GB.
- Wählen Sie die in den Voraussetzungen beschriebene Notebook-IAM-Rolle aus. Mit dieser Rolle kann Ihr Notebook Ihr Dataset auf Amazon S3 hochladen und die Lösungs-APIs aufrufen.
- Öffnen Sie Jupyter Lab oder Jupyter für Greifen Sie auf Ihre Notebook-Instanzen zu.
- Wählen Sie in Jupyter die SageMaker-Beispiele Wählen Sie in Jupyter Lab das SageMaker-Symbol.
- Auswählen Ground Truth Labeling-Jobs und wählen Sie dann den Job sagemaker_ground_truth_workflows.ipynb.
- Wenn Sie Jupyter verwenden, wählen Sie Verwenden Sie die um das Notizbuch in Ihre Instanz zu kopieren und auszuführen. Wenn Sie im Jupyter-Labor sind, wählen Sie Erstellen Sie eine Kopie.
Beziehen Sie den Beispieldatensatz
Führen Sie die folgenden Schritte aus, um Ihren Datensatz einzurichten:
- Laden Sie MOT17.zip mit dem herunter Datensatz herunterladen Abschnitt des Notizbuchs.
Dieser Download ist ungefähr 5 GB groß und dauert einige Minuten.
- Entpacken Sie MOT17.zip mit dem Notebook Datensatz entpacken
- Unter dem Daten nach S3 kopieren Führen Sie in der Kopfzeile die Zelle aus, um einen Satz von Videorahmen-Datasets nach Amazon S3 zu kopieren.
Bereiten Sie die Ground Truth-Eingabedateien vor
Um die Lösung verwenden zu können, müssen wir eine Manifestdatei erstellen. Diese Datei teilt Ground Truth mit, wo sich Ihr Datensatz befindet. Wir benötigen außerdem zwei Konfigurationsdateien für Beschriftungskategorien, um unsere Beschriftungsnamen zu beschreiben, und das Beschriftungswerkzeug, das für jede verwendet werden kann (Begrenzungsrahmen oder Polylinie).
- Führen Sie die Zellen unter aus Manifest generieren um eine Liste der Frames in einem Video aus dem Datensatz zu erhalten. Als Beispiel nehmen wir 150 Bilder mit der halben Bildrate des Videos.
- Führen Sie die Zellen unter weiter aus Manifest generieren Erstellen einer Sequenzdatei, die unsere Videobilder beschreibt, und Erstellen einer Manifestdatei, die auf unsere Sequenzdatei verweist.
- Führen Sie die Zelle unter aus Generieren Sie Konfigurationsdateien für Etikettenkategorien So erstellen Sie zwei neue Dateien: eine Konfigurationsdatei für Fahrzeugetiketten (die das Begrenzungsrahmen-Tool verwendet) und eine Konfigurationsdatei für Fahrspuretiketten (die das Polylinien-Tool verwendet).
- Kopieren Sie die Manifestdatei und beschriften Sie die Kategoriekonfigurationsdateien mit Amazon S3, indem Sie das ausführen Daten an S3 senden
Zu diesem Zeitpunkt haben Sie alle Eingaben für die Etikettierungsaufträge vorbereitet und können mit dem Betrieb der Lösung beginnen.
Weitere Informationen zu Beschriftungsjobs und Verkettungen von Ground Truth-Videorahmen finden Sie in den folgenden Referenzen:
Führen Sie einen Beispielworkflow aus
In diesem Abschnitt werden die Schritte zum Ausführen eines Beispielworkflows für das Automotive-Dataset beschrieben. Wir erstellen einen multimodalen Workflow, führen sowohl die Erst- als auch die Audit-Kennzeichnung durch und zeigen dann unsere abgeschlossenen Anmerkungen an.
Erstellen Sie einen Workflow-Stapel
Diese Lösung koordiniert einen Workflow von Ground Truth-Beschriftungsjobs, um sowohl Bounding-Box-Jobs für die Videoobjektverfolgung als auch Polylinienjobs auszuführen und nach der anfänglichen Beschriftung automatisch Anpassungsjobs zu erstellen. Dieser Workflow-Stapel wird über das konfiguriert batch_create
API für die Lösung verfügbar.
Führen Sie die Zelle unter aus Demo zur Batch-Erstellung im Notizbuch. Dadurch werden Ihre S3-URIs für die Konfiguration des Eingabe-Manifests und der Beschriftungskategorie an einen neuen Workflow-Stapel übergeben.
Die Zelle sollte die ID des neu erstellten Workflow-Stapels ausgeben, zum Beispiel:
Schließen Sie die erste Runde der Etikettierungsaufgaben ab
Um zu simulieren, dass Mitarbeiter die Kennzeichnung abschließen, melden wir uns als Mitarbeiter im Arbeitsteam von Ground Truth der ersten Ebene an und führen die Kennzeichnungsaufgabe aus.
- Führen Sie die Zelle unter aus Melden Sie sich beim Worker Portal an um einen Link zum Anmelden beim Worker-Portal zu erhalten.
Eine Einladung sollte bereits an Ihre E-Mail-Adresse gesendet worden sein, wenn Sie sich zu den lösungsgenerierten Arbeitsteams der ersten und zweiten Ebene eingeladen haben.
- Melden Sie sich an und warten Sie, bis die Aufgaben im Worker-Portal angezeigt werden.
Es sollten zwei Aufgaben verfügbar sein, eine mit der Endung in vehicle
und eine endet in lane
Dies entspricht den beiden Jobs, die wir während der Stapelerstellung im Workflow erstellt haben.
- Öffnen Sie jede Aufgabe und fügen Sie einige Dummy-Beschriftungen hinzu, indem Sie die Bilderrahmen auswählen und ziehen.
- Auswählen Absenden bei jeder Aufgabe.
Schließen Sie die zweite Runde der Etikettierungsaufgaben ab
In unserem Workflow wurde festgelegt, dass Anpassungsjobs für jeden Job der ersten Ebene automatisch gestartet werden sollen. Wir schließen jetzt die zweite Runde der Etikettierungsaufgaben ab.
- Warten Sie noch im Worker-Portal auf Aufgaben mit
vehicle-audit
undlane-audit
erscheinen. - Öffnen Sie jede Aufgabe im Worker-Portal und beachten Sie, dass die Beschriftungen der vorherigen Ebene weiterhin sichtbar sind.
Diese Anpassungsaufgaben könnten von einer besser ausgebildeten Qualitätssicherungsgruppe in einem anderen Arbeitsteam durchgeführt werden.
- Nehmen Sie die gewünschten Einstellungen vor und wählen Sie Passieren or Scheitern auf jeder Anmerkung.
- Wenn Sie fertig sind, wählen Sie Absenden.
Zeigen Sie die ausgefüllten Anmerkungen an
Sie können Details zum abgeschlossenen Workflow-Batch anzeigen, indem Sie die Batch-Show-API ausführen.
- Führen Sie die Zelle unter aus Batch-Show-Demo.
Dies fragt die Datenbank der Lösung nach allen vollständigen Workflow-Laufstapeln ab und sollte Ihre Stapel-ID ausgeben, wenn Ihr Stapel abgeschlossen ist.
- Wir können genauere Details zu einem Stapel erhalten, indem wir die Zelle unter ausführen Batch Detaillierte Show Demo.
Dies nimmt die ID eines Stapels im System und gibt Statusinformationen und die Positionen aller Eingabe- und Ausgabe-Manifeste für jeden erstellten Job zurück.
- Kopieren Sie das Feld und geben Sie es ein
jobOutputS3Url
Überprüfen Sie für jeden Job, ob die Manifestdatei für diesen Job heruntergeladen wurde.
Diese Datei enthält einen Verweis auf Ihre Eingabedatensequenz sowie den S3-URI der Ausgabeanmerkungen für jede Sequenz.
Endgültige Ergebnisse
Wenn alle Beschriftungsjobs in der Pipeline abgeschlossen sind, wird eine SNS-Nachricht auf der veröffentlicht Standardstatus SNS-Thema. Sie kann SNS-Themen abonnieren Verwenden einer E-Mail-Adresse zur Überprüfung der Funktionalität der Lösung. Die Nachricht enthält die Stapel-ID, die während der Stapelerstellung verwendet wurde, eine Nachricht über den Stapelabschluss und dieselben Informationen wie die batch/show
API bietet unter a batchInfo
Schlüssel. Sie können diese Nachricht analysieren, um Metadaten zu den abgeschlossenen Beschriftungsjobs in der zweiten Ebene der Pipeline zu extrahieren.
Innerhalb jedes Job-Metadaten-Blobs a jobOutputS3Url
Das Feld enthält eine vorgegebene URL für den Zugriff auf das Ausgabemanifest dieses bestimmten Jobs. Das Ausgabemanifest enthält die Ergebnisse der Datenbeschriftung im erweiterten Manifestformat, das Sie analysieren können, um Anmerkungen abzurufen, indem Sie das JSON-Objekt mit indizieren <jobName>-ref
. Dieses Feld zeigt auf eine S3-Position, die alle Anmerkungen für den angegebenen Videoclip enthält.
Für Bounding-Box-Jobs wird beispielsweise die SeqLabel.json
Die Datei enthält Begrenzungsrahmenanmerkungen für jeden mit Anmerkungen versehenen Frame (in diesem Fall wird nur der erste Frame mit Anmerkungen versehen):
Da die SNS-Nachricht zur Stapelvervollständigung alle Ausgabemanifestdateien der parallel gestarteten Jobs enthält, können Sie basierend auf dieser Nachricht eine Nachbearbeitung Ihrer Anmerkungen durchführen. Wenn Sie beispielsweise ein bestimmtes Serialisierungsformat für diese Anmerkungen haben, das Fahrzeugbegrenzungsrahmen und Fahrspuranmerkungen kombiniert, können Sie das Ausgabemanifest des Fahrspurauftrags sowie des Fahrzeugauftrags abrufen, dann basierend auf der Rahmennummer zusammenführen und in die gewünschte konvertieren endgültiges Format.
Weitere Informationen zu den Ausgabedatenformaten von Ground Truth finden Sie unter Ausgabedaten.
Aufräumen
Führen Sie die Option aus, um zukünftige Gebühren zu vermeiden Aufräumen Abschnitt des Notizbuchs zum Löschen aller Ressourcen, einschließlich S3-Objekten und des CloudFormation-Stapels. Wenn der Löschvorgang abgeschlossen ist, stellen Sie sicher, dass Sie die Notebook-Instanz stoppen und löschen, in der sich das aktuelle Notebook-Skript befindet.
Zusammenfassung
Diese zweiteilige Serie bietet Ihnen eine Referenzarchitektur zum Erstellen eines erweiterten Datenbeschriftungsworkflows, der aus einer mehrstufigen Datenbeschriftungspipeline, Anpassungsjobs und Datenseen für entsprechende Datensatzanmerkungen und Worker-Metriken sowie aktualisierten Dashboards besteht.
In diesem Beitrag haben Sie gelernt, wie Sie Videobilderdaten aufnehmen und einen Workflow auslösen, um mehrere Ground Truth-Beschriftungsjobs auszuführen und zwei verschiedene Arten von Anmerkungen (Begrenzungsrahmen und Polylinien) zu generieren. Sie haben auch gelernt, wie Sie die Pipeline erweitern können, um das beschriftete Dataset zu prüfen und zu überprüfen und wie Sie die geprüften Ergebnisse abrufen. Zuletzt haben Sie gesehen, wie Sie mithilfe der BatchShow-API auf den aktuellen Fortschritt von Stapeljobs verweisen können.
Weitere Informationen zum Data Lake für Ground Truth-Dataset-Annotationen und Worker-Metriken von Ground Truth finden Sie unter Ground Truth Blog für den zweiten Blog-Beitrag in dieser Reihe (in Kürze).
Probieren Sie das aus Notizbuch und passen Sie es für Ihre Eingabedatensätze an, indem Sie zusätzliche Jobs oder Überwachungsschritte hinzufügen oder die Datenmodalität der Jobs ändern. Weitere Anpassung von Lösung könnte umfassen, ist aber nicht beschränkt auf:
- Hinzufügen zusätzlicher Annotationstypen wie semantische Segmentierungsmasken oder Schlüsselpunkte
- Hinzufügen einer automatisierten Qualitätssicherung und Filterung zum Workflow für Schrittfunktionen, um nur Anmerkungen von geringer Qualität an die nächste Überprüfungsebene zu senden
- Hinzufügen einer dritten oder vierten Stufe der Qualitätsprüfung für zusätzliche, spezialisiertere Arten von Prüfungen
Diese Lösung basiert auf serverlosen Technologien zusätzlich zu den Schrittfunktionen. Dadurch ist sie hochgradig anpassbar und für eine Vielzahl von Anwendungen anwendbar.
Über die Autoren
Vidya Sagar Ravipati ist ein Deep Learning Architekt an der Amazon ML-LösungslaborHier nutzt er seine langjährige Erfahrung mit verteilten Großsystemen und seine Leidenschaft für maschinelles Lernen, um AWS-Kunden in verschiedenen Branchen dabei zu helfen, ihre KI- und Cloud-Akzeptanz zu beschleunigen. Zuvor war er ein Ingenieur für maschinelles Lernen in Connectivity Services bei Amazon, der beim Aufbau von Plattformen für Personalisierung und vorausschauende Wartung half.
Jeremy Feltracco ist Software Development Engineer beim Amazon ML Solutions Lab bei Amazon Web Services. Er nutzt seinen Hintergrund in den Bereichen Computer Vision, Robotik und maschinelles Lernen, um AWS-Kunden dabei zu helfen, ihre KI-Einführung zu beschleunigen.
Jae Sung Jang ist ein Software Development Engineer. Seine Leidenschaft liegt in der Automatisierung manueller Prozesse mithilfe von AI Solutions- und Orchestration-Technologien, um die Geschäftsausführung sicherzustellen.
Talia Chopra ist ein technischer Redakteur in AWS, der sich auf maschinelles Lernen und künstliche Intelligenz spezialisiert hat. Sie arbeitet mit mehreren Teams in AWS zusammen, um technische Dokumentationen und Tutorials für Kunden zu erstellen, die Amazon SageMaker, MxNet und AutoGluon verwenden.
- "
- 100
- 107
- 3d
- 7
- 98
- Zugang
- Konto
- Zusätzliche
- Adoption
- AI
- KI-Adoption
- Algorithmus
- Alle
- Zulassen
- Amazon
- Amazon Sage Maker
- Amazon Sagemaker Ground Truth
- Amazon Web Services
- Analytik
- Bienen
- APIs
- App
- Anwendungen
- Architektur
- künstliche Intelligenz
- Prüfung
- Automatisiert
- Automobilindustrie
- AWS
- Blog
- Box
- bauen
- Building
- Geschäft
- rufen Sie uns an!
- Fälle
- Übernehmen
- Gebühren
- Schecks
- Cloud
- Cloud-Einführung
- Code
- Kommen
- gemeinsam
- Berechnen
- Computer Vision
- Konnektivität
- Kosten
- Erstellen
- Kreuzfahrt
- Strom
- Aktuellen Zustand
- Kunden
- Armaturenbrett
- technische Daten
- Datensee
- Datenqualität
- Datenbase
- tiefe Lernen
- Demand
- Detail
- Entwicklung
- Endpunkt
- Ingenieur
- Ausführung
- Scheitern
- Fashion
- Vorname
- Format
- Frei
- Funktion
- Zukunft
- Allgemeines
- gif
- Gruppe an
- hier
- GUTE
- Hosting
- Ultraschall
- Hilfe
- HTTPS
- IAM
- ICON
- identifizieren
- Identitätsschutz
- Image
- Einschließlich
- Energiegewinnung
- Information
- Einblicke
- Intelligenz
- IT
- Job
- Jobs
- Wesentliche
- Beschriftung
- Etiketten
- grosse
- starten
- LERNEN
- gelernt
- lernen
- Niveau
- Deal
- Limitiert
- LINK
- Liste
- Standorte
- Maschinelles Lernen
- Management
- Karte
- Masken
- mittlere
- Metrik
- ML
- Modell
- Namen
- Menü
- Benachrichtigung
- die
- Auftrag
- Andere
- Schnittmuster
- Leistung
- Personalisierung
- Plattformen
- Politik durchzulesen
- Pool
- Portal
- gebühr
- privat
- Produziert
- Qualität
- Roh
- Veteran
- Voraussetzungen:
- Downloads
- Die Ergebnisse
- Rückgabe
- Überprüfen
- Bewertungen
- Robotik
- Führen Sie
- Laufen
- sagemaker
- Skalieren
- Sekundär-
- Modellreihe
- Serverlos
- Lösungen
- kompensieren
- von Locals geführtes
- Einfacher
- Größe
- So
- Software
- Software-Entwicklung
- Lösungen
- Raumfahrt
- Stufe
- Anfang
- begonnen
- Bundesstaat
- Staaten
- Status
- Lagerung
- Erfolg
- Support
- Unterstützt
- System
- Systeme und Techniken
- Technische
- Technologies
- erzählt
- Test
- Zeit
- Zeichen
- Top
- Tracking
- Ausbildung
- Transformation
- Bearbeitung
- Lernprogramm
- Tutorials
- Updates
- URI
- Nutzer
- Fahrzeug
- Fahrzeuge
- Video
- Videos
- Anzeigen
- Seh-
- Volumen
- warten
- Netz
- Web-Services
- WHO
- .
- Arbeiten
- Arbeiter
- Arbeitsablauf.
- Belegschaft
- Werk
- weltweit wie ausgehandelt und gekauft ausgeführt wird.
- Schriftsteller