Indholdsfortegnelse[Skjule][At vise]
- Hvad er billedklassificering?
- Hvordan fungerer billedklassificering?
Billedklassificering ved hjælp af Tensorflow & Keras i python+-
- 1. Installationskrav
- 2. Import af afhængigheder
- 3. Initialisering af parametre
- 4. Indlæsning af datasættet
- 5. Oprettelse af modellen
- 6. Træning af modellen
- Test af modellen
- 7. Import af hjælpeprogrammer til test
- 8. Lav en python-mappe
- 9. Indlæsning af testdata & model
- 10. Evaluering & forudsigelse
- 11. Resultater
- Konklusion
Det er betryggende at vide, at vi har formået at gennemsyre robotter med vores medfødte evner til at lære ved eksempel og opfatte deres omgivelser. Den grundlæggende udfordring er, at de lærer computere at "se", som om mennesker ville have brug for langt mere tid og kræfter.
Men når vi tænker på den praktiske værdi, som denne færdighed i øjeblikket giver organisationer og virksomheder, er indsatsen umagen værd. I denne artikel lærer du om billedklassificering, hvordan det fungerer, og dets praktiske implementering. Lad os begynde.
Hvad er billedklassificering?
Jobbet med at fodre et billede ind i en neurale netværk og at lade det udskrive en eller anden form for etiket til det billede, er kendt som billedgenkendelse. Netværkets output-etiket vil svare til en foruddefineret klasse.
Der kan være tildelt adskillige klasser til billedet, eller blot én. Når der kun er én klasse, bruges udtrykket "anerkendelse" ofte, hvorimod når der er flere klasser, bruges udtrykket "klassifikation" ofte.
Objektdetektion er en undergruppe af billedklassifikation, hvor bestemte forekomster af objekter detekteres som tilhørende en given klasse, såsom dyr, køretøjer eller mennesker.
Hvordan fungerer billedklassificering?
Et billede i form af pixels analyseres af en computer. Det opnås ved at behandle billedet som en samling af matricer, hvis størrelse bestemmes af billedopløsningen. Simpelthen er billedklassificering studiet af statistiske data ved hjælp af algoritmer fra en computers perspektiv.
Billedklassificering opnås i digital billedbehandling ved at gruppere pixels i forudbestemte grupper eller "klasser". Algoritmerne opdeler billedet i en række bemærkelsesværdige egenskaber, hvilket reducerer byrden for den endelige klassifikator.
Disse kvaliteter informerer klassificereren om billedets betydning og potentielle klassificering. Fordi resten af processerne i at klassificere et billede er afhængige af det, er den karakteristiske ekstraktionsmetode den mest kritiske fase.
data leveret til algoritmen er også afgørende i billedklassificering, især overvåget klassificering. I sammenligning med et forfærdeligt datasæt med dataubalance baseret på klasse og lav billed- og annoteringskvalitet, yder et veloptimeret klassifikationsdatasæt beundringsværdigt.
Billedklassificering ved hjælp af Tensorflow & Keras i python
Vi vil bruge CIFAR-10 datasæt (som inkluderer fly, fly, fugle og andre 7 ting).
1. Installationskrav
Koden nedenfor installerer alle forudsætningerne.
2. Import af afhængigheder
Lav en train.py-fil i Python. Koden nedenfor importerer Tensorflow- og Keras-afhængigheder.
3. Initialisering af parametre
CIFAR-10 inkluderer kun 10 billedkategorier, derfor refererer num-klasser blot til antallet af kategorier, der skal klassificeres.
4. Indlæsning af datasættet
Funktionen bruger Tensorflow Dataset-modulet til at indlæse datasættet, og vi indstiller med info til True for at få nogle oplysninger om det. Du kan printe det ud for at se, hvilke felter og deres værdier er, og vi bruger informationen til at hente antallet af prøver i trænings- og testsættene.
5. Oprettelse af modellen
Nu bygger vi tre lag, der hver består af to ConvNets med en max-pooling og ReLU-aktiveringsfunktion, efterfulgt af et fuldt tilsluttet 1024-enheds system. I sammenligning med ResNet50 eller Xception, som er avancerede modeller, kan dette være en forholdsvis lille model.
6. Træning af modellen
Jeg brugte Tensorboard til at måle nøjagtigheden og tabet i hver epoke og give os et dejligt display efter at have importeret dataene og genereret modellen. Kør følgende kode; afhængigt af din CPU/GPU vil træning tage flere minutter.
For at bruge tensorboard skal du blot skrive følgende kommando i terminalen eller kommandoprompten i den aktuelle mappe:
Du vil se, at valideringstabet reduceres, og nøjagtigheden stiger til omkring 81 %. Det er fantastisk!
Test af modellen
Når træningen er færdig, gemmes den endelige model og vægte i resultatmappen, så vi kan træne én gang og komme med forudsigelser, når vi vil. Følg koden i en ny python-fil ved navn test.py.
7. Import af hjælpeprogrammer til test
8. Lav en python-mappe
Lav en Python-ordbog, der oversætter hver heltalsværdi til datasættets passende etiket:
9. Indlæsning af testdata & model
Følgende kode vil indlæse testdata og model.
10. Evaluering & forudsigelse
Følgende kode vil evaluere og lave forudsigelser på frøbillederne.
11. Resultater
Modellen forudsagde frøen med 80.62% nøjagtighed.
Konklusion
Okay, vi er færdige med denne lektion. Selvom 80.62% ikke er godt for en lille CNN, anbefaler jeg dig kraftigt at ændre modellen eller se på ResNet50, Xception eller andre banebrydende modeller for bedre resultater.
Nu hvor du har bygget dit første billedgenkendelsesnetværk i Keras, bør du eksperimentere med modellen for at opdage, hvordan forskellige parametre påvirker dens ydeevne.
Giv en kommentar