AI 101

Vad Àr datorseende?

mm

Vad är datorseende?

Datorseendealgoritmer är ett av de mest omvälvande och kraftfulla AI-systemen i världen just nu. Datorseendesystem används i autonoma fordon, robotnavigation, ansiktsigenkänningsystem och mycket mer. Men vad är datorseendealgoritmer egentligen? Hur fungerar de? För att besvara dessa frågor kommer vi att dyka djupt in i teorin bakom datorseende, datorseendealgoritmer och tillämpningar för datorseendesystem.

Hur fungerar datorseendesystem?

För att fullt ut uppskatta hur datorseendesystem fungerar, låt oss först ta en stund att diskutera hur människor känner igen föremål. Den bästa förklaringen neuropsykologin har för hur vi känner igen föremål är en modell som beskriver den initiala fasen av föremålsigenkänning som en där de grundläggande komponenterna i föremål, såsom form, färg och djup, tolkas av hjärnan först. Signalerna från ögat som kommer in i hjärnan analyseras för att dra ut föremålets kanter först, och dessa kanter fogas samman till en mer komplex representation som kompletterar föremålets form.

Datorseendesystem fungerar mycket likt det mänskliga synsystemet, genom att först urskilja föremålets kanter och sedan förena dessa kanter till föremålets form. Den stora skillnaden är att eftersom datorer tolkar bilder som siffror, behöver ett datorseendesystem något sätt att tolka de enskilda pixlarna som utgör bilden. Datorseendesystemet kommer att tilldela värden till pixlarna i bilden och genom att undersöka skillnaden i värden mellan en region av pixlar och en annan region av pixlar, kan datorn urskilja kanter. Till exempel, om bilden i fråga är i gråskala, kommer värdena att sträcka sig från svart (representerad av 0) till vit (representerad av 255). En plötslig förändring i värdena på pixlar nära varandra kommer att indikera en kant.

Denna grundläggande princip för att jämföra pixelvärden kan också göras med färgbilder, med datorn som jämför skillnader mellan de olika RGB-färgkanalerna. Nu när vi vet hur ett datorseendesystem undersöker pixelvärden för att tolka en bild, låt oss titta på arkitekturen för ett datorseendesystem.

Konvolutionsneuronnätverk (CNN)

Den primära typen av AI som används i datorseendeuppgifter är en som baseras på konvolutionsneuronnätverk. Vad är en konvolution egentligen?

Konvolutioner är matematiska processer som nätverket använder för att bestämma skillnaden i värden mellan pixlar. Om du föreställer dig ett rutnät av pixelvärden, föreställ dig ett mindre rutnät som flyttas över detta huvudrutnät. Värdena under det andra rutnätet analyseras av nätverket, så nätverket analyserar bara ett fåtal pixlar åt gången. Detta kallas ofta för “sliding windows”-tekniken. Värdena som analyseras av det glidande fönstret summeras av nätverket, vilket hjälper till att reducera komplexiteten i bilden och göra det lättare för nätverket att extrahera mönster.

Konvolutionsneuronnätverk delas in i två olika sektioner, den konvolutionssektionen och den fullständigt anslutna sektionen. De konvolutionslager i nätverket är funktionsextraherarna, vars uppgift är att analysera pixlarna i bilden och bilda representationer av dem som de tät anslutna lagren i neuronnätverket kan lära sig mönster från. De konvolutionslager börjar med att bara undersöka pixlarna och extrahera de lågnivåegenskaperna i bilden som kanter. Senare konvolutionslager fogar samman kanterna till mer komplexa former. I slutändan kommer nätverket förhoppningsvis att ha en representation av kanterna och detaljerna i bilden som den kan skicka till de fullständigt anslutna lagren.

Bildannotering

Medan ett konvolutionsneuronnätverk kan extrahera mönster från bilder på egen hand, kan noggrannheten i datorseendesystemet förbättras avsevärt genom att annotera bilderna. Bildannotering är processen att lägga till metadata till bilden som hjälper klassificeraren att upptäcka viktiga föremål i bilden. Användningen av bildannotering är viktig när datorseendesystem behöver vara mycket exakta, såsom när man styr ett autonomt fordon eller robot.

Det finns olika sätt som bilder kan annoteras för att förbättra prestandan för en datorseendeklassificerare. Bildannotering görs ofta med begränsningsrutor, en ruta som omger föremålets kanter och talar om för datorn att fokusera sin uppmärksamhet inom rutan. Semantisk segmentering är en annan typ av bildannotering, som fungerar genom att tilldela en bildklass till varje pixel i bilden. Med andra ord kommer varje pixel som kan anses vara “gräs” eller “träd” att märkas som tillhörande dessa klasser. Tekniken ger pixelnivåprecision, men att skapa semantisk segmenteringsannoteringar är mer komplext och tidskrävande än att skapa enkla begränsningsrutor. Andra annoteringsmetoder, som linjer och punkter, finns också.

Blogger och programmerare med specialomrÄden inom Machine Learning och Deep Learning Àmnen. Daniel hoppas pÄ att hjÀlpa andra att anvÀnda kraften frÄn AI för socialt vÀl.