Grundläggande visionsmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon webbtjänster

Grundläggande visionsmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon webbtjänster

Snabb ingenjörskonst har blivit en viktig färdighet för alla som arbetar med stora språkmodeller (LLM) för att generera högkvalitativa och relevanta texter. Även om textpromptteknik har diskuterats flitigt, är visuell promptteknik ett framväxande område som kräver uppmärksamhet. Visuella uppmaningar kan inkludera begränsningsrutor eller masker som vägleder synmodeller för att generera relevanta och korrekta utdata. I det här inlägget utforskar vi grunderna för visuell promptteknik, dess fördelar och hur det kan användas för att lösa ett specifikt användningsfall: bildsegmentering för autonom körning.

Under de senaste åren har området för datorseende bevittnat betydande framsteg inom området bildsegmentering. Ett sådant genombrott är Segmentera Anything Model (SAM) av Meta AI, som har potential att revolutionera segmentering på objektnivå med noll- eller få-skott-träning. I det här inlägget använder vi SAM-modellen som ett exempel på grundvisionsmodellen och utforskar dess tillämpning på BDD100K dataset, en mångsidig autonom kördatauppsättning för heterogen multitask-inlärning. Genom att kombinera styrkorna med SAM med de rika data som BDD100K tillhandahåller visar vi upp potentialen hos visuell snabbteknik med olika versioner av SAM. Inspirerad av Langkedja ramverk för språkmodeller, föreslår vi en visuell kedja för att utföra visuell prompt genom att kombinera objektdetekteringsmodeller med SAM.

Även om det här inlägget fokuserar på autonom körning, är de diskuterade begreppen tillämpliga brett på domäner som har rika visionsbaserade tillämpningar som sjukvård och biovetenskap, samt media och underhållning. Låt oss börja med att lära oss lite mer om vad som finns under huven på en grundläggande visionmodell som SAM. Vi använde Amazon SageMaker Studio på en ml.g5.16xlarge instans för det här inlägget.

Segmentera Anything Model (SAM)

Grundmodeller är modeller för stora maskininlärning (ML) som tränas på stora mängder data och kan uppmanas eller finjusteras för uppgiftsspecifika användningsfall. Här utforskar vi Segment Anything Model (SAM), som är en grundläggande modell för vision, speciellt bildsegmentering. Den är förtränad på en massiv datauppsättning med 11 miljoner bilder och 1.1 miljarder masker, vilket gör den till den största segmenteringsdatauppsättningen i skrivande stund. Denna omfattande datauppsättning täcker ett brett utbud av objekt och kategorier, vilket ger SAM en mångsidig och storskalig utbildningsdatakälla.

SAM-modellen är tränad att förstå objekt och kan mata ut segmenteringsmasker för vilket objekt som helst i bilder eller videoramar. Modellen möjliggör visuell promptteknik, vilket gör att du kan tillhandahålla indata som text, punkter, begränsningsrutor eller masker för att generera etiketter utan att ändra originalbilden. SAM finns i tre storlekar: bas (ViT-B, 91 miljoner parametrar), stor (ViT-L, 308 miljoner parametrar) och enorm (ViT-H, 636 miljoner parametrar), tillgodoser olika beräkningskrav och användningsfall.

Den primära motivationen bakom SAM är att förbättra segmenteringen på objektnivå med minimala träningsprov och epoker för alla objekt av intresse. Kraften med SAM ligger i dess förmåga att anpassa sig till nya bilddistributioner och uppgifter utan förkunskaper, en funktion som kallas nollskottsöverföring. Denna anpassningsförmåga uppnås genom sin träning på den expansiva SA-1B-datauppsättningen, som har visat imponerande nollskottsprestanda, som överträffar många tidigare fullständigt övervakade resultat.

Som visas i följande arkitektur för SAM involverar processen att generera segmenteringsmasker tre steg:

  1. En bildkodare producerar en engångsinbäddning för bilden.
  2. En promptkodare konverterar vilken prompt som helst till en inbäddningsvektor för prompten.
  3. Den lätta avkodaren kombinerar informationen från bildkodaren och promptkodaren för att förutsäga segmenteringsmasker.

Som ett exempel kan vi tillhandahålla en indata med en bild och en begränsningsruta runt ett objekt av intresse i den bilden (t.ex. Silverbil eller körbana) och SAM-modellen skulle producera segmenteringsmasker för det objektet.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Visuell promptteknik

Snabb ingenjörskonst hänvisar till att strukturera input till en modell som gör att modellen förstår avsikten och ger önskat resultat. Med textpromptteknik kan du strukturera inmatningstexten genom modifieringar som val av ord, formatering, ordning och mer för att få önskad utdata. Visual prompt engineering förutsätter att användaren arbetar i en visuell modalitet (bild eller video) och tillhandahåller input. Följande är en icke-uttömmande lista över möjliga sätt att ge input till den generativa AI-modellen i den visuella domänen:

  • Punkt – En singulär (x, y) koordinatpunkt i bildplanet
  • Punkter – Flera (x, y) koordinatpunkter, inte nödvändigtvis relaterade till varandra
  • Bounding box – En uppsättning av fyra värden (x, y, w, h) som definierar ett rektangulärt område i bildplanet
  • Kontur – En uppsättning (x, y) koordinatpunkter i bildplanet som bildar en sluten form
  • Mask – En array av samma storlek som bilden med en partiell mask av objektet av intresse

Med de visuella tekniska teknikerna i åtanke, låt oss utforska hur detta kan tillämpas på den förutbildade SAM-modellen. Vi använder basversionen av den förtränade modellen.

Zero-shot prompting med den förtränade SAM-modellen

Till att börja med, låt oss utforska nollskottsmetoden. Följande är en exempelbild från träningsdataset tagen från ett fordons främre kamera.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Vi kan få segmenteringsmasker för alla objekt från bilden utan någon explicit visuell uppmaning av automatiskt genererande masker med bara en ingångsbild. I följande bild ser vi delar av bilen, väg, trafikskylt, registreringsskyltar, övergång, pelare, skyltar och mer är segmenterade.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Denna utdata är dock inte direkt användbar av följande skäl:

  • Bilarna är inte segmenterade som en helhet, utan i delar. För de flesta perceptionsmodeller, till exempel, bryr vi oss inte riktigt om att vart och ett av däcken har separata utgångsmasker. Detta gäller även när man letar efter andra kända föremål av intresse, såsom väg, vegetation, skyltar och så vidare.
  • Delar av bilden som är användbara för nedströmsuppgifter som körbart område delas upp, utan någon förklaring. Å andra sidan identifieras liknande instanser separat, och vi kan vara intresserade av att gruppera liknande objekt (panoptisk vs instanssegmentering).

Visuell snabbteknik med den förutbildade SAM-modellen

Lyckligtvis stöder SAM tillhandahållande av inmatningsmeddelanden, och vi kan använda punkter, punktmatriser och begränsningsrutor som indata. Med dessa specifika instruktioner förväntar vi oss att SAM gör bättre ifrån sig med segmentering som fokuserar på specifika punkter eller områden. Detta kan jämföras med mallen för språkuppmaning
"What is a good name for a company that makes {product}?"
där indata tillsammans med denna promptmall från användaren är {product}. {product} är en ingångsplats. Vid visuell uppmaning är begränsningsrutorna, punkterna eller maskerna inmatningsplatserna.

Följande bild tillhandahåller den ursprungliga marksäkringsrutan runt fordon och den körbara områdespatchen från BDD100K marksanningsdata. Bilden visar också en ingångspunkt (ett gult X) i mitten av den gröna begränsningsrutan som vi kommer att hänvisa till i de kommande avsnitten.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Låt oss försöka skapa en mask för bilen till vänster med den gröna begränsningsrutan som en ingång till SAM. Som visas i följande exempel hittar basmodellen för SAM inte riktigt någonting. Detta syns även i det låga segmenteringsresultatet. När vi tittar på segmenteringsmaskerna närmare ser vi att det finns små regioner som returneras som masker (pekade på med röda pilar) som inte riktigt är användbara för någon nedströmsapplikation.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Låt oss prova en kombination av en begränsningsruta och en punkt som visuell ingångsuppmaning. Det gula korset i föregående bild är mitten av begränsningsrutan. Att tillhandahålla denna punkts (x,y) koordinater som prompten tillsammans med begränsningsramen ger oss följande mask och en något högre poäng. Detta är fortfarande inte användbart på något sätt.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Slutligen, med den förtränade basmodellen, kan vi bara tillhandahålla inmatningspunkten som en uppmaning (utan begränsningsrutan). Följande bilder visar två av de tre bästa maskerna vi tyckte var intressanta.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Mask 1 segmenterar hela bilen, medan Mask 3 segmenterar ut ett område som håller bilens registreringsskylt nära det gula krysset (inmatningsprompt). Mask 1 är fortfarande inte en tät, ren mask runt bilen; detta pekar på kvaliteten på modellen, som vi kan anta ökar med modellstorleken.

Vi kan prova större förutbildade modeller med samma inmatningsuppmaning. Följande bilder visar våra resultat. När man använder den enorma SAM-förtränade modellen är Mask 3 hela bilen, medan Mask 1 och 2 kan användas för att dra ut registreringsskylten.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Den stora versionen av SAM-modellen ger också liknande utgångar.

Processen vi gick igenom här liknar manuell promptteknik för textuppmaningar som du kanske redan är bekant med. Observera att en nyligen genomförd förbättring av SAM-modellen för att segmentera allt i hög kvalitet ger mycket bättre objekt- och kontextspecifika utdata. I vårt fall upptäcker vi att noll-shot prompt med text och visuella prompter (punkt-, box- och punkt- och box-ingångar) inte förbättrar resultaten drastiskt som vi såg ovan.

Snabbmallar och visuella kedjor

Som vi kan se från de föregående exemplen med nollbilder, kämpar SAM för att identifiera alla objekt i scenen. Det här är ett bra exempel på var vi kan dra fördel av snabba mallar och visuella kedjor. Visual chain är inspirerad av kedjekonceptet i det populära LangChain-ramverket för språkapplikationer. Det hjälper till att kedja datakällorna och en LLM för att producera utdata. Till exempel kan vi använda en API-kedja för att anropa ett API och anropa en LLM för att svara på frågan baserat på API-svaret.

Inspirerad av LangChain föreslår vi en sekventiell visuell kedja som ser ut som följande figur. Vi använder ett verktyg (som en förtränad objektdetekteringsmodell) för att få initiala begränsningsrutor, beräkna punkten i mitten av begränsningsrutan och använda detta för att fråga SAM-modellen med ingångsbilden.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Till exempel visar följande bild segmenteringsmaskerna som ett resultat av att köra denna kedja.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

En annan exempelkedja kan involvera en textinmatning av objektet som användaren är intresserad av att identifiera. För att implementera detta byggde vi en pipeline med hjälp av Jordning DINO, en objektdetekteringsmodell för att uppmana SAM för segmentering.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Grounding DINO är en noll-shot objektdetekteringsmodell som kan utföra objektdetektering med text som tillhandahåller kategorinamn (som "trafikljus" eller "lastbil") och uttryck (som "gul lastbil"). Den accepterar par av text och bild för att utföra objektdetektering. Den är baserad på en transformatorarkitektur och möjliggör korsmodaliteter med text- och bilddata. För att lära dig mer om jordning av DINO, se Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection. Detta genererar begränsningsrutor och etiketter och kan bearbetas vidare för att generera mittpunkter, filtrera baserat på etiketter, trösklar och mer. Detta används (rutor eller punkter) som en uppmaning till SAM för segmentering, som matar ut masker.

Följande är några exempel som visar ingångstexten, DINO-utgången (gränsrutor) och den slutliga SAM-utgången (segmenteringsmasker).

Följande bilder visar utdata för "gul lastbil."

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Följande bilder visar utdata för "silverbil."

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Följande bild visar utdata för "körfält."

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Vi kan använda denna pipeline för att bygga en visuell kedja. Följande kodavsnitt förklarar detta 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')

Även om detta är ett enkelt exempel kan detta koncept utvidgas till att bearbeta flöden från kameror på fordon för att utföra objektspårning, personlig identifierbar information (PII) dataredigering och mer. Vi kan också få begränsningsrutorna från mindre modeller, eller i vissa fall med hjälp av standardverktyg för datorseende. Det är ganska enkelt att använda en förutbildad modell eller en tjänst som Amazon Rekognition för att få initiala (visuella) etiketter för din prompt. I skrivande stund finns det över 70 modeller tillgängliga på Amazon SageMaker Jumpstart för objektdetektering, och Amazon-erkännande identifierar redan flera användbara kategorier av objekt i bilder, inklusive bilar, fotgängare och andra fordon.

Därefter tittar vi på några kvantitativa resultat relaterade till prestanda för SAM-modeller med en delmängd av BDD100K-data.

Kvantitativa resultat

Vårt mål är att jämföra prestandan hos tre förtränade modeller när de ges samma visuella uppmaning. I det här fallet använder vi objektets mittpunkt som visuell ingång. Vi jämför prestandan med avseende på objektstorlekarna (i proportion till bildstorleken) – liten (yta 0.11 %). Tröskelvärdena för begränsningsramområdet definieras av Common Objects in Context (COCO) utvärderingsstatistik [Lin et al., 2014].

Utvärderingen är på pixelnivå och vi använder följande utvärderingsmått:

  • Precision = (antal relevanta och hämtade instanser) / (totalt antal hämtade instanser)
  • Återkalla = (antal relevanta och hämta instanser) / (totalt antal relevanta instanser)
  • Förekomster här är varje pixel inom begränsningsrutan för objektet av intresse

Följande tabell rapporterar prestandan för tre olika versioner av SAM-modellen (bas, stor och enorm). Dessa versioner har tre olika kodare: ViT-B (bas), ViT-L (stor), ViT-H (stor). Kodarna har olika parameterantal, där basmodellen har färre parametrar än stor, och stor är mindre än stor. Även om en ökning av antalet parametrar visar förbättrad prestanda med större objekt, är detta inte fallet för mindre objekt.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Finjustera SAM för ditt användningsfall

I många fall kan det inte vara särskilt användbart att använda en förutbildad SAM-modell direkt. Låt oss till exempel titta på en typisk scen i trafiken – följande bild är resultatet från SAM-modellen med slumpmässigt samplade promptpunkter som indata till vänster och de faktiska etiketterna från den semantiska segmenteringsuppgiften från BDD100K till höger. Dessa är uppenbarligen väldigt olika.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Perceptionsstaplar i AV:er kan enkelt använda den andra bilden, men inte den första. Å andra sidan finns det några användbara utgångar från den första bilden som kan användas, och att modellen inte explicit tränats på till exempel körfältsmarkeringar, trottoarsegmentering, registreringsskyltsmasker och så vidare. Vi kan finjustera SAM-modellen för att förbättra segmenteringsresultaten. För att utföra denna finjustering skapade vi en träningsdatauppsättning med hjälp av en instanssegmenteringsundergrupp (500 bilder) från BDD10K-datauppsättningen. Detta är en mycket liten delmängd av bilder, men vårt syfte är att bevisa att grundläggande visionmodeller (ungefär som LLM) kan fungera bra för ditt användningsfall med ett förvånansvärt litet antal bilder. Följande bild visar ingångsbilden, utgångsmasken (i blått, med en röd ram för bilen till vänster) och möjliga uppmaningar (gränsruta i grönt och mittpunkt X i gult).

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Vi utförde finjusteringar med hjälp av biblioteket Hugging Face på Amazon SageMaker Studio. Vi använde ml.g4dn.xlarge-instansen för SAM-basmodelltesterna och ml.g4dn.2xlarge för SAM enorma modelltesterna. I våra första experiment observerade vi att finjustering av basmodellen med enbart avgränsande rutor inte var framgångsrik. De finjusterade och förtränade modellerna kunde inte lära sig bilspecifika marksanningsmasker från de ursprungliga datamängderna. Att lägga till frågepunkter till finjusteringen förbättrade inte heller träningen.

Därefter kan vi försöka finjustera den enorma SAM-modellen för 30 epoker, med en mycket liten datauppsättning (500 bilder). Den ursprungliga marksanningsmasken ser ut som följande bild för etiketttypen bil.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Som visas på följande bilder ger den ursprungliga förtränade versionen av den enorma modellen med en specifik begränsningsruta (i grönt) ingen utdata, medan den finjusterade versionen ger en utdata (fortfarande inte korrekt men finjusteringen klipptes av efter 40 epoker och med en mycket liten träningsdatauppsättning på 500 bilder). Den ursprungliga, förtränade enorma modellen kunde inte förutsäga masker för någon av bilderna vi testade. Som ett exempel på nedströmsapplikation kan den finjusterade modellen användas i företiketteringsarbetsflöden som det som beskrivs i Automatisk märkningsmodul för djupinlärning-baserade Advanced Driver Assistance Systems på AWS.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Slutsats

I det här inlägget diskuterade vi den grundläggande visionsmodellen känd som Segment Anything Model (SAM) och dess arkitektur. Vi använde SAM-modellen för att diskutera visuell prompting och de olika inputs till visuell prompting engineering. Vi undersökte hur olika visuella uppmaningar fungerar och deras begränsningar. Vi beskrev också hur visuella kedjor ökar prestandan jämfört med att använda bara en prompt, liknande LangChain API. Därefter gav vi en kvantitativ utvärdering av tre förtränade modeller. Slutligen diskuterade vi den finjusterade SAM-modellen och dess resultat jämfört med den ursprungliga basmodellen. Finjustering av grundmodeller hjälper till att förbättra modellens prestanda för specifika uppgifter som segmentering. Det bör noteras att SAM-modellen på grund av dess resurskrav begränsar användningen för realtidsanvändningsfall och slutledning vid kanten i sitt nuvarande tillstånd. Vi hoppas med framtida iterationer och förbättrade tekniker, skulle minska beräkningskraven och förbättra latensen.

Det är vår förhoppning att det här inlägget uppmuntrar dig att utforska visuella uppmaningar för dina användningsfall. Eftersom detta fortfarande är en framväxande form av snabbteknik finns det mycket att upptäcka när det gäller visuella uppmaningar, visuella kedjor och prestanda för dessa verktyg. Amazon SageMaker är en fullt hanterad ML-plattform som gör det möjligt för byggare att utforska stora språk- och visuella modeller och bygga generativa AI-applikationer. Börja bygga framtiden med AWS idag.


Om författarna

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Gopi Krishnamurthy är senior AI/ML Solutions Architect på Amazon Web Services baserad i New York City. Han arbetar med stora fordonskunder som deras pålitliga rådgivare för att transformera deras maskininlärningsbelastning och migrera till molnet. Hans kärnintressen inkluderar djupinlärning och serverlös teknologi. Utanför jobbet gillar han att umgås med sin familj och utforska ett brett utbud av musik.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Shreyas Subramanian är en Principal AI/ML-specialist Solutions Architect och hjälper kunder genom att använda Machine Learning för att lösa deras affärsutmaningar med hjälp av AWS-plattformen. Shreyas har en bakgrund inom storskalig optimering och maskininlärning, och i användning av maskininlärning och förstärkningsinlärning för att påskynda optimeringsuppgifter.

 Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Sujitha Martin är en tillämpad forskare vid Generative AI Innovation Center (GAIIC). Hennes expertis är att bygga maskininlärningslösningar som involverar datorseende och naturlig språkbehandling för olika industrivertikaler. I synnerhet har hon lång erfarenhet av att arbeta med människocentrerad situationsmedvetenhet och kunskapsinfunderat lärande för mycket autonoma system.

Grundläggande visionmodeller och visuell promptteknik för tillämpningar för autonom körning | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Francisco Calderon är en dataforskare vid Generative AI Innovation Center (GAIIC). Som medlem i GAIIC hjälper han till att upptäcka det möjligas konst med AWS-kunder som använder generativ AI-teknik. På fritiden gillar Francisco att spela musik och gitarr, spela fotboll med sina döttrar och njuta av tid med sin familj.

Tidsstämpel:

Mer från AWS maskininlärning