Grundlæggende visionsmodeller og visuel prompt engineering til autonome kørselsapplikationer | Amazon Web Services

Grundlæggende visionsmodeller og visuel prompt engineering til autonome kørselsapplikationer | Amazon Web Services

Hurtig ingeniørarbejde er blevet en vigtig færdighed for alle, der arbejder med store sprogmodeller (LLM'er) for at generere relevante tekster af høj kvalitet. Selvom tekstpromptteknik er blevet diskuteret bredt, er visuel promptteknik et spirende område, der kræver opmærksomhed. Visuelle prompter kan omfatte afgrænsningsfelter eller masker, der guider synsmodeller i at generere relevante og nøjagtige output. I dette indlæg udforsker vi det grundlæggende i visual prompt engineering, dets fordele, og hvordan det kan bruges til at løse en specifik use case: billedsegmentering til autonom kørsel.

I de senere år har computersynsområdet været vidne til betydelige fremskridt inden for billedsegmentering. Et sådant gennembrud er Segmentér alt-model (SAM) af Meta AI, som har potentialet til at revolutionere segmentering på objektniveau med nul- eller få-skuds træning. I dette indlæg bruger vi SAM-modellen som et eksempel på en fundamentvisionsmodel og udforsker dens anvendelse på BDD100K datasæt, et mangfoldigt autonomt kørselsdatasæt til heterogen multitask-læring. Ved at kombinere styrkerne ved SAM med de rige data leveret af BDD100K, fremviser vi potentialet ved visuel prompt engineering med forskellige versioner af SAM. Inspireret af Langkæde rammer for sprogmodeller, foreslår vi en visuel kæde til at udføre visuel prompt ved at kombinere objektdetektionsmodeller med SAM.

Selvom dette indlæg fokuserer på autonom kørsel, er de diskuterede begreber anvendelige bredt til domæner, der har rige visionsbaserede applikationer såsom sundhedspleje og biovidenskab samt medier og underholdning. Lad os begynde med at lære lidt mere om, hvad der er under motorhjelmen på en grundlæggende visionsmodel som SAM. Vi brugte Amazon SageMaker Studio på en ml.g5.16xlarge instans for dette indlæg.

Segmentér alt-model (SAM)

Grundmodeller er modeller for store maskinlæring (ML) trænet på store mængder data og kan blive bedt om eller finjusteret til opgavespecifikke brugssager. Her udforsker vi Segment Anything Model (SAM), som er en grundlæggende model for vision, specifikt billedsegmentering. Det er fortrænet på et massivt datasæt på 11 millioner billeder og 1.1 milliarder masker, hvilket gør det til det største segmenteringsdatasæt som skrivende. Dette omfattende datasæt dækker en bred vifte af objekter og kategorier, og giver SAM en mangfoldig og storstilet træningsdatakilde.

SAM-modellen er trænet til at forstå objekter og kan udsende segmenteringsmasker for ethvert objekt i billeder eller videorammer. Modellen giver mulighed for visuel prompt engineering, så du kan levere input såsom tekst, punkter, afgrænsningsrammer eller masker for at generere etiketter uden at ændre det originale billede. SAM fås i tre størrelser: base (ViT-B, 91 millioner parametre), stor (ViT-L, 308 millioner parametre) og enorm (ViT-H, 636 millioner parametre), der imødekommer forskellige beregningskrav og anvendelsesmuligheder.

Den primære motivation bag SAM er at forbedre segmentering på objektniveau med minimale træningsprøver og epoker for alle objekter af interesse. Styrken ved SAM ligger i dens evne til at tilpasse sig nye billedfordelinger og opgaver uden forudgående viden, en funktion kendt som nul-skud overførsel. Denne tilpasningsevne opnås gennem dens træning på det ekspansive SA-1B-datasæt, som har demonstreret en imponerende nul-shot-ydeevne, der overgår mange tidligere fuldt overvågede resultater.

Som vist i den følgende arkitektur for SAM, involverer processen med at generere segmenteringsmasker tre trin:

  1. En billedkoder producerer en engangsindlejring af billedet.
  2. En promptkoder konverterer enhver prompt til en indlejringsvektor for prompten.
  3. Den lette dekoder kombinerer informationen fra billedkoderen og promptkoderen for at forudsige segmenteringsmasker.

Som et eksempel kan vi give et input med et billede og afgrænsningsramme omkring et objekt af interesse i det billede (f.eks. Sølvbil eller kørebane), og SAM-modellen ville producere segmenteringsmasker for det objekt.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Visuel prompt engineering

Hurtig konstruktion refererer til at strukturere input til en model, der får modellen til at forstå hensigten og producere det ønskede resultat. Med tekstlig prompt engineering kan du strukturere inputteksten gennem modifikationer såsom valg af ord, formatering, rækkefølge og mere for at få det ønskede output. Visual prompt engineering forudsætter, at brugeren arbejder i en visuel modalitet (billede eller video), og giver input. Det følgende er en ikke-udtømmende liste over potentielle måder at give input til den generative AI-model i det visuelle domæne:

  • Punkt – Et enkelt (x, y) koordinatpunkt i billedplanet
  • Punkter – Flere (x, y) koordinatpunkter, der ikke nødvendigvis er relateret til hinanden
  • Afgrænsningsramme – Et sæt af fire værdier (x, y, w, h), der definerer et rektangulært område i billedplanet
  • Kontur – Et sæt (x, y) koordinatpunkter i billedplanet, der danner en lukket form
  • Maske – Et array af samme størrelse som billedet med en delvis maske af objektet af interesse

Med de visuelle prompt ingeniørteknikker i tankerne, lad os undersøge, hvordan dette kan anvendes på den præ-trænede SAM-model. Vi har brugt basisversionen af ​​den fortrænede model.

Zero-shot prompting med den fortrænede SAM-model

Til at starte med, lad os udforske nul-skud tilgangen. Det følgende er et eksempelbillede fra træningsdatasættet taget fra et køretøjs frontkamera.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Vi kan få segmenteringsmasker for alle objekter fra billedet uden nogen eksplicit visuel tilskyndelse automatisk generere masker med blot et inputbillede. På det følgende billede ser vi dele af bilen, vej, trafikskilt, nummerplader, flyover, søjler, skilte og mere er segmenteret.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Dette output er dog ikke umiddelbart nyttigt af følgende årsager:

  • Bilerne er ikke segmenteret som en helhed, men i dele. For de fleste perceptionsmodeller er vi f.eks. ligeglade med, at hvert af dækkene har separate output-masker. Dette gælder også, når man leder efter andre kendte objekter af interesse, såsom vej, vegetation, skilte og så videre.
  • Dele af billedet, der er nyttige til downstream-opgaver, som f.eks. et område, der kan køres, opdeles uden forklaring. På den anden side identificeres lignende instanser separat, og vi kan være interesserede i at gruppere lignende objekter (panoptisk vs. instanssegmentering).

Visuel hurtig konstruktion med den fortrænede SAM-model

Heldigvis understøtter SAM at give input-prompter, og vi kan bruge punkter, point arrays og bounding boxes som input. Med disse specifikke instruktioner forventer vi, at SAM klarer sig bedre med segmenteringer med fokus på specifikke punkter eller områder. Dette kan sammenlignes med sprogpromptskabelonen
"What is a good name for a company that makes {product}?"
hvor input sammen med denne promptskabelon fra brugeren er {product}. {product} er en indgangsplads. Ved visuel prompt er afgrænsningsfelterne, punkterne eller maskerne inputpladserne.

Følgende billede viser den originale jordsandhedsafgrænsningsboks omkring køretøjer og den kørebare områdepatch fra BDD100K jordsandhedsdata. Billedet viser også et inputpunkt (et gult X) i midten af ​​den grønne afgrænsningsramme, som vi vil henvise til i de næste par afsnit.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Lad os prøve at generere en maske til bilen til venstre med det grønne afgrænsningsfelt som input til SAM. Som vist i det følgende eksempel, finder basismodellen af ​​SAM ikke rigtig noget. Dette ses også i den lave segmenteringsscore. Når vi ser nærmere på segmenteringsmaskerne, ser vi, at der er små områder, der returneres som masker (peget på ved hjælp af røde pile), som ikke rigtig er brugbare til nogen downstream-applikation.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Lad os prøve en kombination af en afgrænsningsramme og et punkt som den visuelle inputprompt. Det gule kryds i det foregående billede er midten af ​​afgrænsningsrammen. Angivelse af dette punkts (x,y) koordinater som prompten sammen med afgrænsningsrammen giver os følgende maske og en lidt højere score. Dette er stadig ikke brugbart på nogen måde.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Endelig kan vi med den forudtrænede basismodel kun give inputpunktet som en prompt (uden afgrænsningsrammen). De følgende billeder viser to af de tre øverste masker, vi syntes var interessante.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Maske 1 segmenterer hele bilen, mens maske 3 segmenterer et område, der holder bilens nummerplade tæt på det gule kryds (input prompt). Maske 1 er stadig ikke en stram, ren maske omkring bilen; dette peger på modellens kvalitet, som vi kan antage stiger med modelstørrelsen.

Vi kan prøve større præ-trænede modeller med den samme input prompt. De følgende billeder viser vores resultater. Ved brug af den enorme SAM præ-trænede model er Maske 3 hele bilen, hvorimod Maske 1 og 2 kan bruges til at trække nummerpladen ud.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Den store version af SAM-modellen giver også lignende output.

Processen, vi gik igennem her, ligner manuel prompt-teknik for tekstprompter, som du måske allerede er bekendt med. Bemærk, at en nylig forbedring i SAM-modellen for at segmentere alt i høj kvalitet giver meget bedre objekt- og kontekstspecifikke output. I vores tilfælde finder vi ud af, at nul-shot prompt med tekst og visuelle prompter (punkt, boks og punkt og boks input) ikke forbedrer resultaterne drastisk, som vi så ovenfor.

Spørg skabeloner og visuelle kæder

Som vi kan se fra de foregående nul-shot-eksempler, kæmper SAM for at identificere alle objekterne i scenen. Dette er et godt eksempel på, hvor vi kan drage fordel af hurtige skabeloner og visuelle kæder. Visual chain er inspireret af kædekonceptet i det populære LangChain framework til sprogapplikationer. Det hjælper med at kæde datakilderne og en LLM til at producere output. For eksempel kan vi bruge en API-kæde til at kalde en API og påberåbe en LLM for at besvare spørgsmålet baseret på API-svaret.

Inspireret af LangChain foreslår vi en sekventiel visuel kæde, der ligner følgende figur. Vi bruger et værktøj (som en forudtrænet objektdetekteringsmodel) til at få indledende afgrænsningsbokse, beregne punktet i midten af ​​afgrænsningsrammen og bruge dette til at bede SAM-modellen med inputbilledet.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

For eksempel viser følgende billede segmenteringsmaskerne som et resultat af at køre denne kæde.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

En anden eksempelkæde kan involvere en tekstinput af det objekt, som brugeren er interesseret i at identificere. For at implementere dette byggede vi en pipeline vha Jordforbindelse DINO, en objektdetektionsmodel til at bede SAM om segmentering.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Grounding DINO er ​​en nul-shot objektdetektionsmodel, der kan udføre objektdetektering med tekst, der giver kategorinavne (såsom "trafiklys" eller "lastbil") og udtryk (såsom "gul lastbil"). Den accepterer par af tekst og billede for at udføre objektdetekteringen. Den er baseret på en transformerarkitektur og muliggør krydsmodaliteter med tekst- og billeddata. For at lære mere om jording af DINO, se Grounding DINO: Marrying DINO med Grounded Pre-Training for Open-Set Object Detection. Dette genererer afgrænsningsfelter og etiketter og kan behandles yderligere for at generere midtpunkter, filtrere baseret på etiketter, tærskler og mere. Dette bruges (kasser eller punkter) som en prompt til SAM for segmentering, som udsender masker.

Følgende er nogle eksempler, der viser inputteksten, DINO-output (afgrænsningsfelter) og det endelige SAM-output (segmenteringsmasker).

Følgende billeder viser output for "gul lastbil."

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Følgende billeder viser output for "sølvbil."

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Følgende billede viser output for "kørselsbane."

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Vi kan bruge denne pipeline til at bygge en visuel kæde. Følgende kodestykke forklarer dette koncept:

pipeline = [object_predictor, segment_predictor]
image_chain = ImageChain.from_visual_pipeline(pipeline, image_store, verbose=True)
image_chain.run('All silver cars', image_id='5X3349')

Selvom dette er et simpelt eksempel, kan dette koncept udvides til at behandle feeds fra kameraer på køretøjer for at udføre objektsporing, personlig identificerbar information (PII) dataredigering og mere. Vi kan også få afgrænsningskasserne fra mindre modeller, eller i nogle tilfælde ved at bruge standard computervisionsværktøjer. Det er ret ligetil at bruge en præ-trænet model eller en tjeneste som Amazon Rekognition for at få indledende (visuelle) etiketter til din prompt. I skrivende stund er der over 70 modeller tilgængelige på Amazon SageMaker Jumpstart til objektdetektering, og Amazon-anerkendelse identificerer allerede flere nyttige kategorier af objekter i billeder, herunder biler, fodgængere og andre køretøjer.

Dernæst ser vi på nogle kvantitative resultater relateret til ydeevnen af ​​SAM-modeller med en delmængde af BDD100K-data.

Kvantitative resultater

Vores mål er at sammenligne ydeevnen af ​​tre fortrænede modeller, når de får samme visuelle tilskyndelse. I dette tilfælde bruger vi midtpunktet af objektets placering som det visuelle input. Vi sammenligner ydeevnen med hensyn til objektstørrelserne (i forhold til billedstørrelsen) - lille (areal <0.11 %), medium (0.11 % < areal < 1 %) og stor (areal > 1 %). Afgrænsningsrammens tærskler er defineret af Common Objects in Context (COCO) evalueringsmålinger [Lin et al., 2014].

Evalueringen er på pixelniveau, og vi bruger følgende evalueringsmetrics:

  • Præcision = (antal relevante og hentede forekomster) / (samlet antal hentede forekomster)
  • Genkald = (antal relevante og hent forekomster) / (samlet antal relevante forekomster)
  • Forekomster her er hver pixel inden for afgrænsningsrammen for objektet af interesse

Følgende tabel rapporterer ydeevnen af ​​tre forskellige versioner af SAM-modellen (basis, stor og enorm). Disse versioner har tre forskellige indkodere: ViT-B (base), ViT-L (stor), ViT-H (stor). Indkoderne har forskellige parametertællinger, hvor basismodellen har færre parametre end stor, og stor er mindre end enorm. Selvom en forøgelse af antallet af parametre viser forbedret ydeevne med større objekter, er dette ikke tilfældet for mindre objekter.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Finjustering af SAM til din brugssag

I mange tilfælde er direkte brug af en præ-trænet SAM-model måske ikke særlig nyttig. Lad os for eksempel se på en typisk scene i trafikken – det følgende billede er outputtet fra SAM-modellen med tilfældigt samplede promptpunkter som input til venstre, og de faktiske etiketter fra den semantiske segmenteringsopgave fra BDD100K til højre. Disse er åbenbart meget forskellige.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Perception stakke i AV'er kan nemt bruge det andet billede, men ikke det første. Til gengæld er der nogle brugbare output fra det første billede, der kan bruges, og at modellen ikke er eksplicit trænet på fx vognbaneafmærkning, fortovssegmentering, nummerplademasker og så videre. Vi kan finjustere SAM-modellen for at forbedre segmenteringsresultaterne. For at udføre denne finjustering oprettede vi et træningsdatasæt ved hjælp af et instanssegmenteringsundersæt (500 billeder) fra BDD10K-datasættet. Dette er en meget lille undergruppe af billeder, men vores formål er at bevise, at grundlæggende vision-modeller (meget som LLM'er) kan fungere godt til din brug med et overraskende lille antal billeder. Det følgende billede viser inputbilledet, outputmaske (i blåt, med en rød kant til bilen til venstre) og mulige prompter (afgrænsningsrammen i grøn og midtpunkt X i gul).

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Vi udførte finjustering ved hjælp af Hugging Face-biblioteket på Amazon SageMaker Studio. Vi brugte ml.g4dn.xlarge-forekomsten til SAM-basismodeltestene og ml.g4dn.2xlarge til SAM enorme modeltestene. I vores indledende eksperimenter observerede vi, at finjustering af basismodellen med kun afgrænsende felter ikke var vellykket. De finjusterede og fortrænede modeller var ikke i stand til at lære bilspecifikke jordsandhedsmasker fra de originale datasæt. Tilføjelse af forespørgselspunkter til finjusteringen forbedrede heller ikke træningen.

Dernæst kan vi prøve at finjustere den enorme SAM-model til 30 epoker med et meget lille datasæt (500 billeder). Den originale jordsandhedsmaske ser ud som følgende billede for mærketypen bil.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Som vist på de følgende billeder giver den originale præ-trænede version af den enorme model med en specifik afgrænsningsboksprompt (i grøn) intet output, hvorimod den finjusterede version giver et output (stadig ikke nøjagtigt, men finjusteringen blev skåret ud off efter 40 epoker, og med et meget lille træningsdatasæt på 500 billeder). Den originale, fortrænede kæmpemodel var ikke i stand til at forudsige masker for nogen af ​​de billeder, vi testede. Som et eksempel på en downstream-applikation kan den finjusterede model bruges i præ-mærkning af arbejdsgange som den, der er beskrevet i Automatisk mærkningsmodul til deep learning-baserede Advanced Driver Assistance Systems på AWS.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Konklusion

I dette indlæg diskuterede vi den grundlæggende visionsmodel kendt som Segment Anything Model (SAM) og dens arkitektur. Vi brugte SAM-modellen til at diskutere visuel prompt og de forskellige input til visuel prompting engineering. Vi undersøgte, hvordan forskellige visuelle prompter fungerer og deres begrænsninger. Vi beskrev også, hvordan visuelle kæder øger ydeevnen i forhold til kun at bruge én prompt, svarende til LangChain API. Dernæst leverede vi en kvantitativ evaluering af tre præ-trænede modeller. Til sidst diskuterede vi den finjusterede SAM-model og dens resultater sammenlignet med den oprindelige basismodel. Finjustering af fundamentmodeller hjælper med at forbedre modellens ydeevne til specifikke opgaver som segmentering. Det skal bemærkes, at SAM-modellen på grund af dens ressourcekrav begrænser brugen af ​​brugssager i realtid og inferencing på kanten i dens nuværende tilstand. Vi håber, at fremtidige iterationer og forbedrede teknikker vil reducere beregningskravene og forbedre latens.

Det er vores håb, at dette indlæg opfordrer dig til at udforske visuelle tilskyndelser til dine use cases. Fordi dette stadig er en ny form for prompt engineering, er der meget at opdage i form af visuelle prompter, visuelle kæder og ydeevne af disse værktøjer. Amazon SageMaker er en fuldt administreret ML-platform, der gør det muligt for bygherrer at udforske store sprog- og visuelle modeller og bygge generative AI-applikationer. Begynd at bygge fremtiden med AWS i dag.


Om forfatterne

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Gopi Krishnamurthy er senior AI/ML Solutions Architect hos Amazon Web Services med base i New York City. Han arbejder med store Automotive-kunder som deres betroede rådgiver for at transformere deres Machine Learning-arbejdsbelastninger og migrere til skyen. Hans kerneinteresser omfatter deep learning og serverløse teknologier. Uden for arbejdet kan han godt lide at tilbringe tid med sin familie og udforske en bred vifte af musik.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Shreyas Subramanian er Principal AI/ML specialist Solutions Architect og hjælper kunder ved at bruge Machine Learning til at løse deres forretningsudfordringer ved hjælp af AWS-platformen. Shreyas har en baggrund i storskala optimering og Machine Learning, og i brug af Machine Learning og Reinforcement Learning til at accelerere optimeringsopgaver.

 Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Sujitha Martin er en anvendt videnskabsmand i Generative AI Innovation Center (GAIIC). Hendes ekspertise er i at bygge maskinlæringsløsninger, der involverer computersyn og naturlig sprogbehandling til forskellige brancher. Især har hun stor erfaring med at arbejde med menneskecentreret situationsbevidsthed og videninfunderet læring til meget autonome systemer.

Foundational vision models and visual prompt engineering for autonomous driving applications | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Francisco Calderon er dataforsker i Generative AI Innovation Center (GAIIC). Som medlem af GAIIC hjælper han med at opdage det muliges kunst med AWS-kunder, der bruger Generative AI-teknologier. I sin fritid kan Francisco godt lide at spille musik og guitar, spille fodbold med sine døtre og nyde tiden med sin familie.

Tidsstempel:

Mere fra AWS maskinindlæring