Grunnleggende AI
Hva er datavisjon?
Hva er datavisjon?
Datavisjonsalgoritmer er ett av de mest transformative og kraftfulle AI-systemene i verden, for øyeblikket. Datavisjonssystemer brukes i autonome kjøretøy, robotnavigasjon, ansiktsgjenkjenningssystemer og mer. Men hva er datavisjonsalgoritmer egentlig? Hvordan fungerer de? For å svare på disse spørsmålene, vil vi dykke dypt inn i teorien bak datavisjon, datavisjonsalgoritmer og applikasjoner for datavisjonssystemer.
Hvordan fungerer datavisjonssystemer?
For å fullt ut å kunne appreciere hvordan datavisjonssystemer fungerer, la oss først ta en øyeblikk til å diskutere hvordan mennesker gjenkjenner objekter. Den beste forklaringen nevropsykologien har for hvordan vi gjenkjenner objekter er en modell som beskriver den innledende fasen av objektgjenkjenning som en fase hvor de grunnleggende komponentene av objekter, som form, farge og dybde, tolkes av hjernen først. Signalene fra øyet som kommer inn i hjernen analyseres for å trekke ut kantene av et objekt først, og disse kantene kobles sammen til en mer kompleks representasjon som fullfører objektets form.
Datavisjonssystemer fungerer svært likt det menneskelige visuelle systemet, ved først å skille kantene av et objekt og deretter kobler disse kantene sammen til objektets form. Den store forskjellen er at fordi datamaskiner tolker bilder som tall, trenger et datavisjonssystem en måte å tolke de enkelte pikslene som utgjør bildet på. Datavisjonssystemet vil tildele verdier til pikslene i bildet og ved å undersøke forskjellene i verdier mellom en region av piksler og en annen region av piksler, kan datamaskinen skille kantene. For eksempel, hvis bildet i spørsmål er gråskala, så vil verdiene variere fra svart (representert av 0) til hvit (representert av 255). En plutselig endring i rekken av verdier av piksler nær hverandre vil indikere en kant.
Denne grunnleggende prinsippet om å sammenligne piksverdier kan også gjøres med fargede bilder, med datamaskinen som sammenligner forskjeller mellom de forskjellige RGB-fargkanalene. Så nå som vi vet hvordan et datavisjonssystem undersøker piksverdier for å tolke et bilde, la oss ta en titt på arkitekturen av et datavisjonssystem.
Convolutional Neural Networks (CNNs)
Den primære typen AI som brukes i datavisjonsoppgaver er en som er basert på convolutional neural networks. Hva er en konvolusjon egentlig?
Konvolusjoner er matematiske prosesser som nettverket bruker for å bestemme forskjellen i verdier mellom piksler. Hvis du forestiller deg en grid av piksverdier, forestill deg en mindre grid som flyttes over denne hovedgriden. Verdier under den andre griden analyseres av nettverket, så nettverket undersøker bare en håndfull piksler av gangen. Dette kalles ofte “sliding windows”-teknikken. Verdier som analyseres av den flytende vinduet summeres av nettverket, noe som hjelper med å redusere kompleksiteten av bildet og gjøre det lettere for nettverket å trekke ut mønster.
Convolutional neural networks er delt inn i to forskjellige seksjoner, den convolutionale delen og den fullt koblete delen. De convolutionale lagene i nettverket er funksjonsuttrekkere, hvis jobb er å analysere pikslene i bildet og danne representasjoner av dem som de tett koblete lagene i neuronnnettverket kan lære mønster fra. De convolutionale lagene starter med å bare undersøke pikslene og trekke ut de lav-nivå-egenskapene av bildet som kantene. Senere convolutionale lag kobler kantene sammen til mer komplekse former. Ved slutten av nettverket vil det håndtere en representasjon av kantene og detaljene av bildet som det kan overføre til de fullt koblete lagene.
Bildeannotering
Selv om et convolutional neural network kan trekke ut mønster fra bilder på egen hånd, kan nøyaktigheten av datavisjonssystemet forbedres vesentlig ved å annotere bildene. Bildeannotering er prosessen med å legge til metadata til bildet som hjelper klassifisatoren med å detektere viktige objekter i bildet. Bruken av bildeannotering er viktig når datavisjonssystemer må være svært nøyaktige, som når de kontrollerer et autonomt kjøretøy eller robot.
Det finnes flere måter å annotere bilder for å forbedre ytelsen av en datavisjonsklassifikator. Bildeannotering gjøres ofte med bounding boxes, en boks som omgir kantene av målobjektet og forteller datamaskinen å fokusere oppmerksomheten innenfor boksen. Semantisk segmentering er en annen type bildeannotering, som opererer ved å tildele en bildeklasse til hver piksel i bildet. Med andre ord, hver piksel som kan regnes som “gress” eller “trær” vil bli merket som tilhørende disse klassene. Teknikken gir piksel-nivå-presisjon, men å lage semantisk segmenteringsannoteringer er mer komplekst og tidskrevende enn å lage enkle bounding boxes. Andre annoteringsmetoder, som linjer og punkter, finnes også.












