Dette er den første i en todelt serie om Amazon SageMaker Ground Truth hierarkisk mærkningsarbejdsgang og dashboards. I del 1 ser vi på at skabe flertrins mærkningsarbejdsgange for hierarkiske etikettaksonomier ved hjælp af AWS-trinfunktioner. I del 2 (kommer snart) ser vi på, hvordan man opbygger dashboards til at analysere datasætannoteringer og arbejderydemålinger på datasøer, der genereres som output fra de komplekse arbejdsgange, og udleder indsigt.
Datamærkning kræver ofte, at et enkelt dataobjekt indeholder flere typer annoteringer, eller multi-typen, såsom 2D-kasser (afgrænsningsfelter), linjer og segmenteringsmasker, alt sammen på et enkelt billede. Derudover, for at skabe højkvalitets maskinlæringsmodeller (ML) ved hjælp af mærkede data, har du brug for en måde at overvåge kvaliteten af etiketterne på. Du kan gøre dette ved at oprette en arbejdsgang, hvor mærkede data revideres og justeres efter behov. Dette indlæg introducerer en løsning til at løse begge disse mærkningsudfordringer ved hjælp af et datasæt til biler, og du kan udvide denne løsning til brug med enhver type datasæt.
For vores brug, antag, at du har en stor mængde bilvideodata filmet fra en eller flere vinkler på et køretøj i bevægelse (f.eks. Multi-Object Tracking (MOT) scener), og du vil annotere dataene ved hjælp af flere typer annoteringer. Du planlægger at bruge disse data til at træne en fartpilot, vognbaneholdende ML-algoritme. I betragtning af den aktuelle opgave er det bydende nødvendigt, at du bruger etiketter af høj kvalitet til at træne modellen.
Først skal du identificere de typer annoteringer, du vil tilføje til dine videorammer. Nogle af de vigtigste genstande at mærke til denne brugssag er andre køretøjer i rammen, vejgrænser og baner. For at gøre dette definerer du en hierarkisk etikettaksonomi, som definerer den type etiketter, du vil tilføje til hver video, og den rækkefølge, du ønsker, at etiketterne skal tilføjes i. Det Ground Truth videosporing etikettering job understøtter afgrænsningsramme, polylinje, polygon og nøglepunktsannoteringer. I dette tilfælde er køretøjer annoterede ved hjælp af 2-dimensionelle kasser, eller afgrænsningskasser, og vejgrænser og kurver er annoteret med en række fleksible linjesegmenter, kaldet polylinier.
For det andet skal du etablere en arbejdsgang for at sikre etiketkvalitet. For at gøre dette kan du oprette en revisionsworkflow for at bekræfte, at etiketterne, der genereres af din pipeline, er af høj nok kvalitet til at være nyttige til modeltræning. I denne revisionsworkflow kan du i høj grad forbedre etiketnøjagtigheden ved at opbygge en flertrinsgennemgangspipeline, der tillader annoteringer at blive revideret og om nødvendigt justeret af en anden korrekturlæser, som kan være en emneekspert.
Baseret på størrelsen af datasættet og dataobjekterne bør du også overveje den tid og de ressourcer, der kræves for at oprette og vedligeholde denne pipeline. Ideelt set ønsker du, at denne serie af etiketteringsjob skal startes automatisk, hvilket kun kræver menneskelig betjening for at specificere inputdata og arbejdsgang.
Løsningen brugt i dette indlæg bruger Ground Truth, AWS CloudFormation, Trinfunktioner og Amazon DynamoDB at skabe en række mærkningsopgaver, der kører parallelt og hierarkisk. Du bruger en hierarkisk etikettaksonomi til at oprette etiketteringsjob af forskellige modaliteter (polylinjer og afgrænsningsfelter), og du tilføjer sekundære menneskelige gennemgangstrin for at forbedre annoteringskvaliteten og de endelige resultater.
Til dette indlæg demonstrerer vi løsningen i sammenhæng med bilindustrien, men du kan nemt anvende denne generelle pipeline til mærkning af pipelines, der involverer billeder, videoer, tekst og mere. Derudover demonstrerer vi et workflow, der kan udvides, hvilket giver dig mulighed for at reducere det samlede antal rammer, der kræver menneskelig gennemgang, ved at tilføje automatiske kvalitetstjek og vedligeholde datakvaliteten i skala. I dette tilfælde bruger vi disse kontroller til at finde anomalier i MOT-tidsseriedata som videoobjektsporingsannoteringer.
Vi gennemgår en use case, hvor vi genererer flere typer annoteringer til en bilscene. Konkret kører vi fire mærkningsopgaver pr. inputvideoklip: en indledende mærkning af køretøjer, indledende mærkning af baner og derefter et justeringsjob pr. indledende job med en separat kvalitetssikringsmedarbejder.
Vi demonstrerer de forskellige udvidelsespunkter i vores Step Function-arbejdsgang, der kan give dig mulighed for at køre automatiseret kvalitetssikringskontrol. Dette giver mulighed for klipfiltrering mellem og efter job er afsluttet, hvilket kan resultere i annoteringer af høj kvalitet til en brøkdel af prisen.
AWS-tjenester, der bruges til at implementere denne løsning
Denne løsning opretter og administrerer Ground Truth-mærkningsjob for at mærke videorammer ved hjælp af flere typer annoteringer. Ground Truth har indbygget understøttelse af videodatasæt gennem sin videoramme objektsporingsopgavetype.
Denne opgavetype giver arbejdere mulighed for at oprette annoteringer på tværs af en række videorammer, hvilket giver værktøjer til at forudsige den næste placering af en afgrænsningsramme i efterfølgende frames. Det understøtter også flere annotationstyper såsom afgrænsningsfelter eller polylinjer igennem etiketkategoriens konfigurationsfiler ydes under jobskabelsen. Vi bruger disse værktøjer i denne øvelse, hvor vi kører et job for køretøjsafgrænsningskasser og et job for banepolylinjer.
Vi bruger Trinfunktioner til at styre mærkningsjobbet. Denne løsning abstraherer mærkning af jobskabelse, så du angiver den overordnede arbejdsgang, du vil køre ved hjælp af en hierarkisk etikettaksonomi, og al jobstyring håndteres af Step Functions.
Løsningen implementeres ved hjælp af CloudFormation-skabeloner, som du kan implementere på din AWS-konto. Interfacet til løsningen er en API, der administreres af Amazon API Gateway, som giver mulighed for at indsende annoteringsopgaver til løsningen, som derefter oversættes til Ground Truth-mærkningsjob.
Anslåede omkostninger
Ved at implementere og bruge denne løsning pådrager du dig de maksimale omkostninger på ca. 20 USD ud over omkostninger til menneskelig mærkning, fordi den kun bruger fuldt administrerede computerressourcer efter behov. Amazon Simple Storage Service (Amazon S3), AWS Lambda, Amazon SageMaker, API Gateway, Amazon Simple Notification Service (Amazon SNS), Amazon Simple Queue Service (Amazon SQS), AWS Lim, og trinfunktioner er inkluderet i AWS gratis niveau, med gebyrer for yderligere brug. For mere information, se følgende prissider:
Ground Truth-priser afhænger af den type arbejdsstyrke, du bruger. Hvis du er ny bruger af Ground Truth, foreslår vi, at du bruger en privat arbejdsstyrke og inkluderer dig selv som arbejder for at teste din konfiguration af mærkningsjob. For mere information, se Amazon SageMaker Ground Truth-priser.
Løsningsoversigt
I denne todelte serie diskuterer vi et arkitekturmønster, der giver dig mulighed for at opbygge en pipeline til orkestrering af flertrins datamærkningsarbejdsgange, der får arbejdere til at tilføje forskellige typer annotering parallelt ved hjælp af Ground Truth. Du lærer også, hvordan du kan analysere de datasætannoteringer, der er produceret af arbejdsgangen, samt arbejderens ydeevne. Det første indlæg dækker Step Functions-arbejdsgangen, der automatiserer avancerede ML-datamærkningsarbejdsgange ved hjælp af Ground Truth til kæde- og hierarkiske etikettaksonomier. Det andet indlæg beskriver, hvordan man bygger datasøer på datasætannoteringer fra Ground Truth og arbejdermetrics og bruger disse datasøer til at udlede indsigt eller analysere ydeevnen af dine arbejdere og datasætannoteringskvalitet ved hjælp af avanceret analyse.
Følgende diagram viser den hierarkiske arbejdsgang, som du kan bruge til at køre grupper af etiketteringsjob i sekventielle trin, eller niveauer, hvor hvert mærkningsjob i et enkelt niveau kører parallelt.
Løsningen består af to hoveddele:
- Brug en API til at udløse orkestreringsarbejdsgangen.
- Kør de enkelte trin i arbejdsgangen for at opnå mærkningspipeline.
Udløs orkestreringsarbejdsgangen med en API
CloudFormation-skabelonen, der er lanceret i denne løsning, bruger API Gateway til at afsløre et slutpunkt, så du kan udløse batch-mærkningsjob. Når du har sendt postanmodningen til API Gateway-slutpunktet, kører den en Lambda-funktion for at udløse arbejdsgangen.
Følgende tabel indeholder de to primære brugervendte API'er, der er relevante for at køre batch, som repræsenterer etiketteringsopgaver på flere niveauer.
URL | Anmodningstype | Beskrivelse |
{endpointUrl}/batch/create | POST | API udløser en ny batch af etiketteringsjob |
{endpointUrl}/batch/show | GET | API'er beskriver den aktuelle tilstand af batchjob-kørslen |
Kør arbejdsgangen
Til orkestrering af trin bruger vi Step Functions som en administreret løsning. Når batchjob-oprettelses-API'en udløses, udløser en Lambda-funktion en Step Functions-arbejdsgang som følgende. Dette starter annotationsinputbehandlingen.
Lad os diskutere trinene mere detaljeret.
Transformationstrin
Det første trin er at forbehandle dataene. Den aktuelle implementering konverterer notebook-input til intern manifestfil datatype delt på tværs af flere trin. Dette trin udfører i øjeblikket ikke nogen kompleks behandling, men du kan tilpasse dette trin yderligere ved at tilføje tilpasset dataforbehandlingslogik til denne funktion. For eksempel, hvis dit datasæt blev kodet i råvideoer, kunne du udføre frame-opdeling og manifestgenerering inden for transformation i stedet for i en separat notesbog. Alternativt, hvis du bruger denne løsning til at skabe en 3D-punktsky-mærkningspipeline, vil du måske tilføje logik til at udtrække positurdata i et verdenskoordinatsystem ved hjælp af kameraet og LiDAR-ekstrinsiske matricer.
TriggerLabelingFirstLevel
Når dataforbehandlingen er færdig, udføres Ground Truth API-operationen OpretMærkningsjob bruges til at starte etiketteringsjob. Disse mærkningsopgaver er ansvarlige for annotering af datasæt, der er knyttet til det første niveau.
CheckForFirstLevelComplete
Dette trin venter på FIRST_LEVEL
Ground Truth labeling job udløst fra TriggerLabelingFirstStep
. Når jobudløseren er fuldført, venter dette trin på, at alle de oprettede etiketjob er fuldført. En ekstern lytter Lambda-funktion overvåger status for mærkningsopgaverne, og når alle de afventende mærkningsopgaver er udført, kører den sendTokenSucess
API for at signalere til denne tilstand for at fortsætte til næste trin. Fejlsager håndteres ved hjælp af passende fejlsætninger og timeouts i trindefinitionen.
Send SecondLevelSNSAndCheckResponse
Dette trin udfører efterbehandling på outputtet af jobbet på første niveau. For eksempel, hvis dine krav er kun at sende 10% af frames til justeringsopgaverne, kan du implementere denne logik her ved at filtrere sæt af output fra det første job.
TriggerLabelingSecondLevel
Når dataefterbehandlingen fra første niveau er færdig, CreateLabelingJobs
bruges til at starte etiketteringsjob for at færdiggøre annoteringer på andet niveau. På dette stadium gennemgår en privat arbejdsstyrke kvaliteten af annoteringer af mærkningsopgaverne på første niveau og opdaterer annoteringer efter behov.
CheckFor SecondLevelComplete
Dette trin er det samme ventetrin som CheckForFirstLevelComplete
, men dette trin venter blot på de job, der skabes fra det andet niveau.
Send ThirdLevelSNSAndCheckResponse
Dette trin er det samme efterbehandlingstrin som SendSecondLevelSNSAndCheckResponse
, men dette trin udfører efterbehandlingen af output på andet niveau og feeds som input til etiketopgaven på tredje niveau.
TriggerLabelingThirdLevel
Dette er den samme logik som TriggerLabelingSecondLevel
, men mærkningsopgaverne udløses, som er annoteret som tredje niveau. På dette stadium opdaterer den private arbejdsstyrke annoteringer for kvaliteten af mærkningsjobbet på andet niveau.
CopyLogsAndSendBatchCompleted
Denne Lambda-funktion logger og sender SNS-meddelelser for at underrette brugerne om, at batchen er færdig. Det er også en pladsholder for enhver efterbehandlingslogik, som du måtte ønske at køre. Almindelig efterbehandling omfatter transformation af de mærkede data til et format, der er kompatibelt med et kundespecifikt dataformat.
Forudsætninger
Før du går i gang, skal du sørge for, at du har følgende forudsætninger:
- An AWS-konto.
- En notesbog AWS identitets- og adgangsstyring (IAM) rolle med de nødvendige tilladelser for at fuldføre denne gennemgang. Din IAM-rolle skal have de nødvendige tilladelser knyttet. Hvis du ikke kræver detaljeret tilladelse, skal du vedhæfte følgende AWS-administrerede politikker:
AmazonS3FullAccess
AmazonAPIGatewayInvokeFullAccess
AmazonSageMakerFullAccess
- Kendskab til Ground Truth, AWS CloudFormation og Step-funktioner.
- En SageMaker arbejdsstyrke. Til denne stilling bruger vi en privat arbejdsstyrke. Du kan oprette en arbejdsstyrke på SageMaker-konsollen. Bemærk Amazon Cognito brugerpulje-id og app-klient-id, efter din arbejdsstyrke er oprettet. Du bruger disse værdier til at fortælle CloudFormation stack-implementeringen, hvilken arbejdsstyrke der skal oprette arbejdsteams, som repræsenterer gruppen af labelere. Du kan finde disse værdier i Resumé af privat arbejdsstyrke afsnittet på konsollen, efter du har oprettet din arbejdsstyrke, eller når du ringer BeskrivWorkteam.
Følgende GIF viser, hvordan man opretter en privat arbejdsstyrke. For trin-for-trin instruktioner, se Opret en Amazon Cognito Workforce ved at bruge siden Labeling Workforces.
Start CloudFormation-stakken
Nu hvor vi har set strukturen af løsningen, implementerer vi den på vores konto, så vi kan køre et eksempel på en arbejdsgang. Alle vores implementeringstrin administreres af AWS CloudFormation – det skaber ressourcer i Lambda, Step Functions, DynamoDB og API Gateway til dig.
Du kan starte stakken i AWS-regionen us-east-1
på CloudFormation-konsollen ved at vælge Start Stack:
På CloudFormation-konsollen skal du vælge Dernæst og rediger derefter følgende skabelonparametre for at tilpasse løsningen.
Du kan finde CognitoUserPoolClientId og CognitoUserPoolId i SageMaker-konsollen.
- CognitoUserPoolClientId: App-klient-id for din private arbejdsstyrke.
- CognitoUserPoolId: ID for brugerpuljen, der er knyttet til din private arbejdsstyrke.
Sådan finder du disse værdier i konsollen:
- Åbn SageMaker-konsollen kl https://console.aws.amazon.com/sagemaker/
- Type Mærkning af arbejdsstyrker i navigationsruden.
- Valg af Privat
- Brug værdierne i Resumé af privat arbejdsgruppe Brug App klient for CognitoUserPoolClientId og brug Amazon Cognito brugerpool for CognitoUserPoolId.
Til denne øvelse kan du bruge standardværdierne for følgende parametre.
- GlueJobTriggerCron: Cron udtryk til brug ved planlægning af rapportering af AWS Lim cron job. Resultaterne fra annoteringer, der er genereret med SageMaker Ground Truth og medarbejderpræstationsmålinger, bruges til at oprette et dashboard i Amazon QuickSight. Dette vil blive forklaret i detaljer som en del af anden del. Outputtet fra SageMaker-annoteringer og arbejderydemålinger vises i Athena-forespørgsler efter behandling af dataene med AWS Glue. Som standard kører AWS Glue cron-job hver time.
- JobCompletionTimeout: Antal sekunder, der skal ventes, før et etiketteringsjob behandles som mislykket og flyttes til BatchError-tilstanden.
- Logningsniveau: Dette bruges internt og kan ignoreres. Logningsniveau for at ændre logfilernes omfang. Accepterer værdierne DEBUG og PROD.
Præfiks: Et præfiks til brug ved navngivning af ressourcer, der bruges til at oprette og administrere mærkningsjob og medarbejdermålinger.
For at starte stakken i en anden AWS-region skal du bruge instruktionerne i README i GitHub repository.
Når du har implementeret løsningen, er to nye arbejdsteams i den private arbejdsstyrke, du oprettede tidligere: smgt-workflow-first-level
, smgt-workflow-second-level
. Disse er standardarbejdsholdene, der bruges af løsningen, hvis der ikke er angivet nogen tilsidesættelser, og smgt-workflow-second-level
arbejdsteam bruges til at mærke job på andet og tredje niveau. Du bør tilføje dig selv til begge arbejdsteams for at se mærkningsopgaver oprettet af løsningen. For at lære, hvordan du tilføjer dig selv til et privat arbejdsteam, se Tilføj eller fjern arbejdere.
Du skal også gå til API Gateway-konsollen og se efter den installerede API med præfiks smgt-workflow
og noter dens ID. Notesbogen skal referere til dette id, så den kan bestemme, hvilken API-URL den skal kalde.
Start notesbogen
Når du har implementeret løsningen på din konto, er du klar til at starte en notesbog for at interagere med den og starte nye arbejdsgange. I dette afsnit gennemgår vi følgende trin:
- Konfigurer og få adgang til notebook-forekomsten.
- Hent eksempeldatasættet.
- Forbered Ground Truth-inputfiler.
Konfigurer SageMaker notebook-instansen
I dette eksempel på notesbog lærer du, hvordan du kortlægger en simpel taksonomi bestående af en køretøjsklasse og en vognbaneklasse til Ground Truth-etikettekategorikonfigurationsfiler. En etiketkategorikonfigurationsfil bruges til at definere de etiketter, som arbejdere bruger til at kommentere dine billeder. Dernæst lærer du, hvordan du starter og konfigurerer den løsning, der kører pipelinen, ved hjælp af en CloudFormation-skabelon. Du kan også tilpasse denne kode yderligere, for eksempel ved at tilpasse batchcreation API-kaldet til at køre mærkning for en anden kombination af opgavetyper.
For at oprette en notesbogsforekomst og få adgang til den notesbog, der bruges i dette indlæg, skal du udføre følgende trin:
- Opret en notesbogsforekomst med følgende parametre:
- Brug ml.t2.medium til at starte notebook-forekomsten.
- Forøg ML-lagervolumen til mindst 10 GB.
- Vælg den bærbare IAM-rolle beskrevet i forudsætninger. Denne rolle giver din notebook mulighed for at uploade dit datasæt til Amazon S3 og kalde løsningens API'er.
- Åbn Jupyter Lab eller Jupyter for at få adgang til dine notebook-forekomster.
- I Jupyter skal du vælge SageMaker eksempler I Jupyter Lab skal du vælge SageMaker-ikonet.
- Vælg Ground Truth Labeling job og vælg derefter jobbet sagemaker_ground_truth_workflows.ipynb.
- Hvis du bruger Jupyter, skal du vælge Brug for at kopiere notesbogen til din instans og køre den. Hvis du er i Jupyter lab, skal du vælge Opret en kopi.
Hent eksempeldatasættet
Udfør følgende trin for at konfigurere dit datasæt:
- Download MOT17.zip ved hjælp af Download datasæt del af notesbogen.
Denne download er cirka 5 GB og tager flere minutter.
- Udpak MOT17.zip ved hjælp af notesbogens Udpak datasættet
- Under Kopier data til S3 header, kør cellen for at kopiere et sæt videoframes-datasæt til Amazon S3.
Forbered Ground Truth-inputfilerne
For at bruge løsningen skal vi oprette en manifestfil. Denne fil fortæller Ground Truth, hvor dit datasæt er. Vi har også brug for to etiketkategorikonfigurationsfiler til at beskrive vores etiketnavne, og det etiketværktøj, der skal bruges til hver (afgrænsningsramme eller polylinje).
- Kør cellerne under Generer manifest for at få en liste over rammer i en video fra datasættet. Vi tager 150 billeder med halvdelen af videoens billedhastighed som eksempel.
- Fortsæt med at køre celler under Generer manifest at bygge en sekvensfil, der beskriver vores videoframes, og derefter at oprette en manifestfil, der henviser til vores sekvensfil.
- Kør cellen under Generer etiketkategorikonfigurationsfiler for at oprette to nye filer: en køretøjsmærkatkonfigurationsfil (som bruger afgrænsningsboksværktøjet) og en banemærkatkonfigurationsfil (som bruger polylinjeværktøjet).
- Kopier manifestfilen og mærk kategorikonfigurationsfilerne til Amazon S3 ved at køre Send data til S3
På dette tidspunkt har du forberedt alle input til mærkningsopgaverne og er klar til at begynde at betjene løsningen.
Se følgende referencer for at lære mere om Ground Truth videoframe labeling jobs og chaining:
Kør et eksempel på en arbejdsgang
I dette afsnit gennemgår vi trinene til at køre et eksempel på en arbejdsgang på automotive-datasættet. Vi opretter en multimodalitetsarbejdsgang, udfører både indledende mærkning og revisionsmærkning og ser derefter vores færdige annoteringer.
Opret en workflow-batch
Denne løsning orkestrerer en arbejdsgang af Ground Truth-mærkningsjob for at køre både videoobjektsporing afgrænsende boksjob og polylinjejob samt automatisk oprette justeringsjob efter den indledende mærkning. Denne workflow-batch konfigureres gennem batch_create
API tilgængelig for løsningen.
Kør cellen under Batch-oprettelse Demo i notesbogen. Dette sender dine inputmanifest og S3-URI'er til konfiguration af etiketkategori til en ny workflow-batch.
Cellen skal udsende ID'et for den nyoprettede workflowbatch, for eksempel:
Gennemfør den første runde af mærkningsopgaver
For at simulere arbejdere, der fuldfører mærkning, logger vi ind som arbejder i Ground Truth-arbejdsteamet på første niveau og fuldfører mærkningsopgaven.
- Kør cellen under Log ind på Worker Portal for at få et link til at logge ind på medarbejderportalen.
Der skulle allerede være sendt en invitation til din e-mailadresse, hvis du inviterede dig selv til de løsningsgenererede arbejdsteams på første og andet niveau.
- Log på, og vent på, at opgaverne vises i arbejderportalen.
Der skal være to opgaver til rådighed, en med ender på vehicle
og en ender på lane
, svarende til de to job, vi oprettede under oprettelse af workflow-batch.
- Åbn hver opgave, og tilføj nogle dummy-etiketter ved at vælge og trække på billedrammerne.
- Vælg Indsend på hver opgave.
Gennemfør anden runde af mærkningsopgaver
Vores arbejdsgang specificerede, at vi ønskede at justere opgaver automatisk lanceret for hvert job på første niveau. Vi afslutter nu anden runde af mærkningsopgaver.
- Stadig i arbejderportalen, vent på opgaver med
vehicle-audit
,lane-audit
vises. - Åbn hver opgave i arbejderportalen, og bemærk, at det tidligere niveaus etiketter stadig er synlige.
Disse tilpasningsopgaver kunne udføres af en mere højtuddannet kvalitetssikringsgruppe i et andet arbejdsteam.
- Foretag justeringer som ønsket og vælg Pass or Fail på hver anmærkning.
- Når du er færdig, skal du vælge Indsend.
Se de færdige anmærkninger
Vi kan se detaljer om den afsluttede workflow-batch ved at køre batchshow-API'en.
- Kør cellen under Batch Show Demo.
Dette forespørger i løsningens database for alle komplette workflow-kørselsbatches og skal udsende dit batch-id, når din batch er færdig.
- Vi kan få mere specifikke detaljer om en batch ved at køre cellen under Batch Detaljeret Show Demo.
Dette tager ID'et for en batch i systemet og returnerer statusoplysninger og placeringen af alle input- og outputmanifester for hvert oprettet job.
- Kopier og indtast feltet
jobOutputS3Url
for ethvert af opgaverne, og kontroller, at manifestfilen for det pågældende job er downloadet.
Denne fil indeholder en reference til din inputdatasekvens samt S3 URI'en for outputannoteringerne for hver sekvens.
Endelige resultater
Når alle mærkningsopgaver i pipelinen er afsluttet, offentliggøres en SNS-meddelelse på standard status SNS emne. Du kan abonnere på SNS-emner bruge en e-mailadresse til at verificere løsningens funktionalitet. Meddelelsen inkluderer batch-id'et, der blev brugt under batchoprettelse, en meddelelse om batchafslutningen og de samme oplysninger som batch/show
API giver under en batchInfo
nøgle. Du kan parse denne meddelelse for at udtrække metadata om de fuldførte etiketteringsjob på andet niveau af pipelinen.
Inden for hver jobmetadata-blob, en jobOutputS3Url
feltet indeholder en foruddefineret URL for at få adgang til outputmanifestet for dette særlige job. Outputmanifestet indeholder resultaterne af datamærkning i udvidet manifestformat, som du kan parse for at hente annoteringer ved at indeksere JSON-objektet med <jobName>-ref
. Dette felt peger på en S3-placering, der indeholder alle annoteringer for det givne videoklip.
For eksempel til afgrænsningsboksjob er SeqLabel.json
fil indeholder afgrænsningsboksannoteringer for hver kommenteret frame (i dette tilfælde er kun den første frame kommenteret):
Fordi SNS-meddelelsen om batchfuldførelse indeholder alle output-manifestfiler fra de job, der er lanceret parallelt, kan du udføre enhver efterbehandling af dine annoteringer baseret på denne meddelelse. Hvis du f.eks. har et specifikt serialiseringsformat for disse annoteringer, der kombinerer køretøjsafgrænsningsbokse og vognbaneannoteringer, kan du få outputmanifestet for vognbaneopgaven såvel som køretøjsjobbet, og derefter flette baseret på rammenummer og konvertere til det ønskede resultat. endeligt format.
For at lære mere om Ground Truth outputdataformater, se Outputdata.
Ryd op
For at undgå fremtidige gebyrer skal du køre Ryd op sektion af notesbogen for at slette alle ressourcer inklusive S3-objekter og CloudFormation-stakken. Når sletningen er fuldført, skal du sørge for at stoppe og slette den notesbogsforekomst, der er vært for det aktuelle notesbogsscript.
Konklusion
Denne todelte serie giver dig en referencearkitektur til at opbygge et avanceret datamærkningsworkflow, der består af en flertrins datamærkningspipeline, justeringsjob og datasøer til tilsvarende datasætannoteringer og arbejdermålinger samt opdaterede dashboards.
I dette indlæg lærte du, hvordan du tager videorammedata og udløser en arbejdsgang for at køre flere Ground Truth-mærkejob, der genererer to forskellige typer annoteringer (afgrænsningsfelter og polylinjer). Du lærte også, hvordan du kan udvide pipelinen til at revidere og verificere det mærkede datasæt, og hvordan du henter de reviderede resultater. Til sidst så du, hvordan du refererer til den aktuelle status for batchjobs ved hjælp af BatchShow API.
For mere information om datasøen for Ground Truth-datasætannoteringer og arbejder-metrics fra Ground Truth, tjek tilbage til Ground Truth blog til det andet blogindlæg i denne serie (kommer snart).
Prøv notesbog og tilpasse det til dine inputdatasæt ved at tilføje yderligere job eller revisionstrin eller ved at ændre datamodaliteten for jobs. Yderligere tilpasning af løsninger kunne omfatte, men er ikke begrænset til:
- Tilføjelse af yderligere typer annoteringer såsom semantiske segmenteringsmasker eller nøglepunkter
- Tilføjelse af automatiseret kvalitetssikring og filtrering til Step Functions-arbejdsgangen for kun at sende annoteringer af lav kvalitet til det næste gennemgangsniveau
- Tilføjelse af tredje eller fjerde niveau af kvalitetsgennemgang for yderligere, mere specialiserede typer anmeldelser
Denne løsning er bygget ved hjælp af serverløse teknologier oven på Step Functions, hvilket gør den meget tilpasselig og anvendelig til en lang række applikationer.
Om forfatterne
Vidya Sagar Ravipati er Deep Learning Architect ved Amazon ML Solutions Lab, hvor han udnytter sin store erfaring med distribuerede systemer i stor skala og sin passion for maskinlæring til at hjælpe AWS-kunder på tværs af forskellige brancher med at accelerere deres AI og cloud-adoption. Tidligere var han Machine Learning Engineer i Connectivity Services hos Amazon, som hjalp med at bygge personalisering og forudsigende vedligeholdelsesplatforme.
Jeremy Feltracco er softwareudviklingsingeniør hos Amazon ML Solutions Lab hos Amazon Web Services. Han bruger sin baggrund inden for computervision, robotteknologi og maskinlæring til at hjælpe AWS-kunder med at accelerere deres AI-adoption.
Jae Sung Jang er softwareudviklingsingeniør. Hans passion ligger i at automatisere manuelle processer ved hjælp af AI-løsninger og Orchestration-teknologier for at sikre forretningsudførelse.
Talia Chopra er en teknisk skribent i AWS med speciale i maskinlæring og kunstig intelligens. Hun arbejder med flere teams i AWS for at skabe teknisk dokumentation og tutorials til kunder, der bruger Amazon SageMaker, MxNet og AutoGluon.
- "
- 100
- 107
- 3d
- 7
- 98
- adgang
- Konto
- Yderligere
- Vedtagelse
- AI
- AI adoption
- algoritme
- Alle
- tillade
- Amazon
- Amazon SageMaker
- Amazon SageMaker Ground Truth
- Amazon Web Services
- analytics
- api
- API'er
- app
- applikationer
- arkitektur
- kunstig intelligens
- revision
- Automatiseret
- automotive
- AWS
- Blog
- Boks
- bygge
- Bygning
- virksomhed
- ringe
- tilfælde
- lave om
- afgifter
- Kontrol
- Cloud
- cloud adoption
- kode
- kommer
- Fælles
- Compute
- Computer Vision
- Connectivity
- Omkostninger
- Oprettelse af
- krydstogt
- Nuværende
- Nuværende tilstand
- Kunder
- instrumentbræt
- data
- Data Lake
- datakvalitet
- Database
- dyb læring
- Efterspørgsel
- detail
- Udvikling
- Endpoint
- ingeniør
- udførelse
- Manglende
- Mode
- Fornavn
- format
- Gratis
- funktion
- fremtiden
- Generelt
- gif
- gruppe
- link.
- Høj
- Hosting
- Hvordan
- How To
- HTTPS
- IAM
- ICON
- identificere
- Identity
- billede
- Herunder
- industrien
- oplysninger
- indsigt
- Intelligens
- IT
- Job
- Karriere
- Nøgle
- mærkning
- Etiketter
- stor
- lancere
- LÆR
- lærte
- læring
- Niveau
- deal
- Limited
- LINK
- Liste
- placering
- machine learning
- ledelse
- kort
- Masker
- medium
- Metrics
- ML
- model
- navne
- Navigation
- underretning
- drift
- ordrer
- Andet
- Mønster
- ydeevne
- Personalisering
- Platforme
- politikker
- pool
- Portal
- prissætning
- private
- produceret
- kvalitet
- Raw
- reducere
- Krav
- Ressourcer
- Resultater
- afkast
- gennemgå
- Anmeldelser
- robotteknik
- Kør
- kører
- sagemaker
- Scale
- sekundær
- Series
- Serverless
- Tjenester
- sæt
- delt
- Simpelt
- Størrelse
- So
- Software
- softwareudvikling
- Løsninger
- Space
- Stage
- starte
- påbegyndt
- Tilstand
- Stater
- Status
- opbevaring
- succes
- support
- Understøtter
- systemet
- Systemer
- Teknisk
- Teknologier
- fortæller
- prøve
- tid
- token
- top
- Sporing
- Kurser
- Transformation
- behandling
- tutorial
- tutorials
- opdateringer
- URI
- brugere
- køretøj
- Køretøjer
- video
- Videoer
- Specifikation
- vision
- bind
- vente
- web
- webservices
- WHO
- inden for
- Arbejde
- arbejdere
- workflow
- Workforce
- virker
- world
- forfatter