Innholdsfortegnelse[Gjemme seg][Forestilling]
Det er betryggende å vite at vi har klart å gi roboter våre medfødte evner til å lære ved eksempel og oppfatte omgivelsene deres. Den grunnleggende utfordringen er de som lærer datamaskiner å "se" som om mennesker ville trenge mye mer tid og krefter.
Men når vi vurderer den praktiske verdien som denne ferdigheten for tiden gir til organisasjoner og bedrifter, er innsatsen verdt. I denne artikkelen lærer du om bildeklassifisering, hvordan det fungerer og den praktiske implementeringen. La oss begynne.
Hva er bildeklassifisering?
Jobben med å mate et bilde inn i en nevrale nettverket og å ha det utgitt en form for etikett for det bildet er kjent som bildegjenkjenning. Nettverkets utdataetikett vil tilsvare en forhåndsdefinert klasse.
Det kan være mange klasser tildelt bildet, eller bare én. Når det bare er én klasse, brukes begrepet "anerkjennelse" ofte, mens når det er flere klasser, brukes begrepet "klassifisering" ofte.
Objektdeteksjon er et undersett av bildeklassifisering der bestemte forekomster av objekter blir oppdaget som tilhørende en gitt klasse som dyr, kjøretøy eller mennesker.
Hvordan fungerer bildeklassifisering?
Et bilde i form av piksler analyseres av en datamaskin. Den oppnår dette ved å behandle bildet som en samling av matriser, hvis størrelse bestemmes av bildeoppløsningen. Enkelt sagt er bildeklassifisering studiet av statistiske data ved å bruke algoritmer fra en datamaskins perspektiv.
Bildeklassifisering oppnås i digital bildebehandling ved å gruppere piksler i forhåndsbestemte grupper, eller "klasser". Algoritmene deler bildet inn i en rekke bemerkelsesverdige egenskaper, noe som reduserer belastningen for den endelige klassifisereren.
Disse egenskapene informerer klassifisereren om bildets betydning og potensielle klassifisering. Fordi resten av prosessene for å klassifisere et bilde er avhengige av det, er den karakteristiske utvinningsmetoden den mest kritiske fasen.
De data oppgitt til algoritmen er også avgjørende i bildeklassifisering, spesielt overvåket klassifisering. Sammenlignet med et forferdelig datasett med dataubalanse basert på klasse og lav bilde- og merknadskvalitet, yter et godt optimert klassifiseringsdatasett beundringsverdig.
Bildeklassifisering ved hjelp av Tensorflow & Keras i python
Vi skal bruke CIFAR-10 datasett (som inkluderer fly, fly, fugler og andre 7 ting).
1. Installasjonskrav
Koden nedenfor vil installere alle forutsetningene.
2. Importere avhengigheter
Lag en train.py-fil i Python. Koden nedenfor vil importere Tensorflow- og Keras-avhengigheter.
3. Initialisering av parametere
CIFAR-10 inkluderer bare 10 bildekategorier, derfor refererer num-klasser ganske enkelt til antall kategorier som skal klassifiseres.
4. Laster datasettet
Funksjonen bruker Tensorflow Dataset-modulen for å laste inn datasettet, og vi setter med info til True for å få litt informasjon om det. Du kan skrive den ut for å se hvilke felt og deres verdier, og vi bruker informasjonen til å hente antall prøver i trenings- og testsettene.
5. Opprette modellen
Nå skal vi bygge tre lag, som hver består av to ConvNets med en max-pooling og ReLU-aktiveringsfunksjon, etterfulgt av et fullt tilkoblet 1024-enhetssystem. Sammenlignet med ResNet50 eller Xception, som er toppmoderne modeller, kan dette være en relativt liten modell.
6. Trening av modellen
Jeg brukte Tensorboard for å måle nøyaktigheten og tapet i hver epoke og gi oss en nydelig skjerm etter å ha importert dataene og generert modellen. Kjør følgende kode; avhengig av CPU/GPU, vil treningen ta flere minutter.
For å bruke tensorboard, skriv bare inn følgende kommando i terminalen eller ledeteksten i gjeldende katalog:
Du vil se at valideringstapet reduseres og nøyaktigheten øker til omtrent 81 %. Det er fantastisk!
Testing av modellen
Når treningen er ferdig, lagres den endelige modellen og vektene i resultatmappen, slik at vi kan trene én gang og komme med spådommer når vi velger det. Følg koden i en ny python-fil med navnet test.py.
7. Importere verktøyene for testing
8. Lage en python-katalog
Lag en Python-ordbok som oversetter hver heltallsverdi til datasettets passende etikett:
9. Lasting av testdata og modell
Følgende kode vil laste testdata og modell.
10. Evaluering og prediksjon
Følgende kode vil evaluere og lage spådommer på froskebildene.
11. resultater
Modellen spådde frosken med 80.62 % nøyaktighet.
konklusjonen
Ok, vi er ferdige med denne leksjonen. Selv om 80.62 % ikke er bra for en liten CNN, anbefaler jeg deg på det sterkeste å endre modellen eller se på ResNet50, Xception eller andre banebrytende modeller for bedre resultater.
Nå som du har bygget ditt første bildegjenkjenningsnettverk i Keras, bør du eksperimentere med modellen for å finne ut hvordan ulike parametere påvirker ytelsen.
Legg igjen en kommentar