stub Hur fungerar bildklassificering? - Unite.AI
Anslut dig till vårt nätverk!

AI 101

Hur fungerar bildklassificering?

mm
Uppdaterad on

Hur kan din telefon avgöra vad ett objekt är bara genom att ta ett foto av det? Hur taggar webbplatser för sociala medier automatiskt personer på foton? Detta uppnås genom AI-driven bildigenkänning och klassificering.

Igenkänning och klassificering av bilder är det som möjliggör många av de mest imponerande prestationerna av artificiell intelligens. Men hur lär sig datorer att upptäcka och klassificera bilder? I den här artikeln kommer vi att täcka de allmänna metoderna som datorer använder för att tolka och upptäcka bilder och sedan ta en titt på några av de mest populära metoderna för att klassificera dessa bilder.

Pixel-nivå kontra objektbaserad klassificering

Bildklassificeringstekniker kan huvudsakligen delas in i två olika kategorier: pixelbaserad klassificering och objektbaserad klassificering.

Pixlar är basenheterna i en bild, och analysen av pixlar är det primära sättet att klassificera bild. Emellertid kan klassificeringsalgoritmer antingen använda bara spektralinformationen inom enskilda pixlar för att klassificera en bild eller undersöka rumslig information (pixlar i närheten) tillsammans med spektralinformationen. Pixelbaserade klassificeringsmetoder använder endast spektral information (intensiteten hos en pixel), medan objektbaserade klassificeringsmetoder tar hänsyn till både pixelspektral information och rumslig information.

Det finns olika klassificeringstekniker som används för pixelbaserad klassificering. Dessa inkluderar minsta avstånd-till-medelvärde, maximal sannolikhet och minsta Mahalanobis-avstånd. Dessa metoder kräver att klassernas medelvärden och varianser är kända, och de fungerar alla genom att undersöka "avståndet" mellan klassmedel och målpixlarna.

Pixelbaserade klassificeringsmetoder begränsas av att de inte kan använda information från andra närliggande pixlar. Däremot kan objektbaserade klassificeringsmetoder inkludera andra pixlar och därför använder de också rumslig information för att klassificera objekt. Observera att "objekt" bara hänvisar till sammanhängande pixelområden och inte om det finns ett målobjekt inom det pixelområdet eller inte.

Förbearbetning av bilddata för objektdetektering

De senaste och tillförlitliga bildklassificeringssystemen använder i första hand klassificeringsscheman på objektnivå, och för dessa tillvägagångssätt måste bilddata förberedas på specifika sätt. Objekten/regionerna måste väljas och förbearbetas.

Innan en bild, och objekten/regionerna i den bilden, kan klassificeras måste data som utgör bilden tolkas av datorn. Bilder måste förbehandlas och förberedas för inmatning i klassificeringsalgoritmen, och detta görs genom objektdetektering. Detta är en kritisk del av att förbereda data och förbereda bilderna för att träna maskininlärningsklassificeraren.

Objektdetektering görs med en mängd olika metoder och tekniker. Till att börja med, huruvida det finns flera objekt av intresse eller inte, påverkar hur bildförbehandlingen hanteras. Om det bara finns ett objekt av intresse genomgår bilden bildlokalisering. Pixlarna som utgör bilden har numeriska värden som tolkas av datorn och används för att visa rätt färger och nyanser. Ett objekt som kallas en bounding box ritas runt objektet av intresse, vilket hjälper datorn att veta vilken del av bilden som är viktig och vilka pixelvärden som definierar objektet. Om det finns flera objekt av intresse i bilden, används en teknik som kallas objektdetektering för att tillämpa dessa begränsningsrutor på alla objekt i bilden.

Foto: Adrian Rosebrock via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

En annan metod för förbearbetning är bildsegmentering. Bildsegmentering fungerar genom att dela upp hela bilden i segment baserat på liknande egenskaper. Olika områden i bilden kommer att ha liknande pixelvärden i jämförelse med andra delar av bilden, så dessa pixlar grupperas ihop till bildmasker som motsvarar formen och gränserna för de relevanta objekten i bilden. Bildsegmentering hjälper datorn att isolera funktionerna i bilden som hjälper den att klassificera ett objekt, ungefär som begränsningsrutor gör, men de ger mycket mer exakta etiketter på pixelnivå.

Efter att objektdetekteringen eller bildsegmenteringen har slutförts appliceras etiketter på regionerna i fråga. Dessa etiketter matas, tillsammans med värdena för pixlarna som utgör objektet, in i maskininlärningsalgoritmerna som kommer att lära sig mönster som är associerade med de olika etiketterna.

Machine Learning Algoritmer

När data har förberetts och märkts matas data in i en maskininlärningsalgoritm, som tränar på data. Vi kommer att täcka några av de vanligaste typerna av maskininlärning bildklassificeringsalgoritmer nedan.

K-närmaste grannar

K-Nearest Neighbors är en klassificeringsalgoritm som undersöker de närmaste träningsexemplen och tittar på deras etiketter för att fastställa den mest sannolika etiketten för ett givet testexempel. När det gäller bildklassificering med KNN lagras funktionsvektorerna och etiketterna för träningsbilderna och bara funktionsvektorn skickas in i algoritmen under testning. Tränings- och testfunktionsvektorerna jämförs sedan mot varandra för likhet.

KNN-baserade klassificeringsalgoritmer är extremt enkla och de hanterar flera klasser ganska enkelt. KNN beräknar dock likhet baserat på alla egenskaper lika. Detta innebär att det kan vara benäget att felklassificera när det förses med bilder där endast en delmängd av funktionerna är viktiga för klassificeringen av bilden.

Stöd vektor maskiner

Support Vector Machines är en klassificeringsmetod som placerar punkter i rymden och sedan drar skiljelinjer mellan punkterna, placerar objekt i olika klasser beroende på vilken sida av delningsplanet punkterna faller på. Support Vector Machines är kapabla att göra olinjär klassificering genom att använda en teknik som kallas kärntricket. Även om SVM-klassificerare ofta är mycket exakta, är en betydande nackdel med SVM-klassificerare att de tenderar att begränsas av både storlek och hastighet, med hastigheten som blir lidande när storleken ökar.

Flerskiktsperceptroner (neurala nät)

Flerskiktsperceptroner, även kallade neurala nätverksmodeller, är maskininlärningsalgoritmer inspirerade av den mänskliga hjärnan. Flerskiktsperceptroner är sammansatta av olika lager som är sammanfogade med varandra, ungefär som neuroner i den mänskliga hjärnan är sammanlänkade. Neurala nätverk gör antaganden om hur indatafunktionerna är relaterade till datans klasser och dessa antaganden justeras under utbildningens gång. Enkla neurala nätverksmodeller som flerskiktsperceptronen kan lära sig icke-linjära relationer, och som ett resultat kan de vara mycket mer exakta än andra modeller. MLP-modeller lider dock av några anmärkningsvärda problem som närvaron av icke-konvexa förlustfunktioner.

Deep Learning Algorithms (CNN)

Foto: APhex34 via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)

Den vanligaste bildklassificeringsalgoritmen på senare tid är Convolutional Neural Network (CNN). CNN är skräddarsydda versioner av neurala nätverk som kombinerar flerlagers neurala nätverk med specialiserade lager som kan extrahera de funktioner som är viktigast och relevanta för klassificeringen av ett objekt. CNN:er kan automatiskt upptäcka, generera och lära sig funktioner i bilder. Detta minskar avsevärt behovet av att manuellt märka och segmentera bilder för att förbereda dem för maskininlärningsalgoritmer. De har också en fördel jämfört med MLP-nätverk eftersom de kan hantera icke-konvexa förlustfunktioner.

Convolutional Neural Networks får sitt namn från det faktum att de skapar "falsningar". CNN fungerar genom att ta ett filter och skjuta det över en bild. Du kan tänka på detta som att se delar av ett landskap genom ett flyttbart fönster, och koncentrera dig på bara de funktioner som är synliga genom fönstret vid en viss tidpunkt. Filtret innehåller numeriska värden som multipliceras med värdena för själva pixlarna. Resultatet är en ny ram, eller matris, full av siffror som representerar originalbilden. Denna process upprepas för ett valt antal filter, och sedan sammanfogas ramarna till en ny bild som är något mindre och mindre komplex än originalbilden. En teknik som kallas pooling används för att välja bara de viktigaste värdena i bilden, och målet är att faltningsskikten så småningom ska extrahera bara de mest framträdande delarna av bilden som kommer att hjälpa det neurala nätverket att känna igen objekten i bilden.

Konventionella nervnätverk består av två olika delar. Konvolutionslagren är det som extraherar bildens egenskaper och omvandlar dem till ett format som de neurala nätverkslagren kan tolka och lära av. De tidiga faltningsskikten är ansvariga för att extrahera de mest grundläggande elementen i bilden, som enkla linjer och gränser. De mittersta faltningsskikten börjar fånga mer komplexa former, som enkla kurvor och hörn. De senare, djupare faltningsskikten extraherar bildens egenskaper på hög nivå, som är vad som skickas in i den neurala nätverksdelen av CNN, och är vad klassificeraren lär sig.

Bloggare och programmerare med specialiteter inom Maskininlärning och Deep Learning ämnen. Daniel hoppas kunna hjälpa andra att använda kraften i AI för socialt bästa.