INHOUDSOPGAWE[Versteek][Wys]
- Wat is beeldklassifikasie?
- Hoe werk beeldklassifikasie?
Beeldklassifikasie met behulp van Tensorflow & Keras in luislang+-
- 1. Installasievereistes
- 2. Invoer van afhanklikhede
- 3. Inisialiseer parameters
- 4. Laai die datastel
- 5. Die skep van die model
- 6. Opleiding van die model
- Toets die model
- 7. Die invoer van die nutsprogramme vir toetsing
- 8. Maak 'n luislanggids
- 9. Laai toetsdata en model
- 10. Evaluering & Voorspelling
- 11. Resultate
- Gevolgtrekking
Dit is gerusstellend om te weet dat ons daarin geslaag het om robots met ons aangebore vermoëns te deurdrenk om deur voorbeeld te leer en hul omgewing waar te neem. Die fundamentele uitdaging is diegene wat rekenaars leer om te "sien" asof mense baie meer tyd en moeite sou benodig.
As ons egter die praktiese waarde oorweeg wat hierdie vaardigheid tans aan organisasies en ondernemings bied, is die moeite die moeite werd. In hierdie artikel sal jy leer oor beeldklassifikasie, hoe dit werk en die praktiese implementering daarvan. Laat ons begin.
Wat is beeldklassifikasie?
Die taak om 'n beeld in 'n neurale netwerk en om dit een of ander vorm van etiket vir daardie prent uit te voer, staan bekend as beeldherkenning. Die netwerk se uitsetetiket sal ooreenstem met 'n vooraf gedefinieerde klas.
Daar kan talle klasse aan die prent toegewys wees, of bloot een. Wanneer daar net een klas is, word die term "erkenning" gereeld gebruik, terwyl wanneer daar veelvuldige klasse is, die term "klassifikasie" gereeld gebruik word.
Voorwerpopsporing is 'n subset van prentklassifikasie waarin spesifieke gevalle van voorwerpe bespeur word as wat aan 'n gegewe klas behoort, soos diere, voertuie of mense.
Hoe werk beeldklassifikasie?
'n Beeld in die vorm van pixels word deur 'n rekenaar ontleed. Dit bewerkstellig dit deur die prent as 'n versameling matrikse te behandel, waarvan die grootte deur die beeldresolusie bepaal word. Eenvoudig gesproke is prentklassifikasie die studie van statistiese data wat algoritmes gebruik vanuit 'n rekenaar se perspektief.
Beeldklassifikasie word in digitale beeldverwerking bewerkstellig deur pixels in voorafbepaalde groepe, of "klasse" te groepeer. Die algoritmes verdeel die beeld in 'n opeenvolging van noemenswaardige eienskappe, wat die las vir die finale klassifiseerder verminder.
Hierdie eienskappe lig die klassifiseerder in oor die beeld se betekenis en potensiële klassifikasie. Omdat die res van die prosesse in die klassifikasie van 'n prent daarvan afhanklik is, is die kenmerkende ekstraksiemetode die mees kritieke fase.
Die data verskaf aan die algoritme is ook deurslaggewend in beeldklassifikasie, veral klassifikasie onder toesig. In vergelyking met 'n verskriklike datastel met data-wanbalans gebaseer op klas en lae beeld- en annotasiekwaliteit, presteer 'n goed geoptimaliseerde klassifikasiedatastel uitstekend.
Beeldklassifikasie met behulp van Tensorflow & Keras in luislang
Ons sal die gebruik CIFAR-10 datastel (wat vliegtuie, vliegtuie, voëls en ander 7 dinge insluit).
1. Installasievereistes
Die kode hieronder sal al die voorvereistes installeer.
2. Invoer van afhanklikhede
Maak 'n train.py-lêer in Python. Die kode hieronder sal Tensorflow- en Keras-afhanklikhede invoer.
3. Inisialiseer parameters
CIFAR-10 bevat net 10 prentkategorieë, dus verwys getalklasse bloot na die aantal kategorieë om te klassifiseer.
4. Laai die datastel
Die funksie gebruik die Tensorflow Datasets-module om die datastel te laai, en ons stel met inligting na True om inligting daaroor te verkry. Jy kan dit uitdruk om te sien watter velde en hul waardes is, en ons sal die inligting gebruik om die aantal monsters in die opleiding- en toetsstelle op te spoor.
5. Die skep van die model
Nou sal ons drie lae bou, wat elk bestaan uit twee ConvNets met 'n maksimum-poel en ReLU-aktiveringsfunksie, gevolg deur 'n volledig gekoppelde 1024-eenheid-stelsel. In vergelyking met ResNet50 of Xception, wat die nuutste modelle is, kan dit 'n betreklik klein model wees.
6. Opleiding van die model
Ek het Tensorboard gebruik om die akkuraatheid en verlies in elke epog te meet en vir ons 'n pragtige vertoning te gee nadat ek die data ingevoer en die model gegenereer het. Begin die volgende kode; afhangende van jou SVE/GPU, sal opleiding etlike minute neem.
Om tensorboard te gebruik, tik net die volgende opdrag in die terminale of opdragprompt in die huidige gids:
Jy sal sien dat valideringsverlies verminder en akkuraatheid styg tot ongeveer 81%. Dit is fantasties!
Toets die model
Wanneer die opleiding voltooi is, word die finale model en gewigte in die resultate-lêergids gestoor, wat ons toelaat om een keer te oefen en voorspellings te maak wanneer ons ook al kies. Volg die kode in 'n nuwe python-lêer met die naam test.py.
7. Die invoer van die nutsprogramme vir toetsing
8. Maak 'n luislanggids
Maak 'n Python-woordeboek wat elke heelgetalwaarde na die datastel se toepaslike etiket vertaal:
9. Laai toetsdata en model
Die volgende kode sal die toetsdata en model laai.
10. Evaluering & Voorspelling
Die volgende kode sal die paddabeelde evalueer en voorspellings maak.
11. Resultate
Die model het die padda met 80.62% akkuraatheid voorspel.
Gevolgtrekking
Goed, ons is klaar met hierdie les. Alhoewel 80.62% nie goed is vir 'n bietjie CNN nie, raai ek jou sterk aan om die model te verander of na ResNet50, Xception of ander voorpuntmodelle te kyk vir beter resultate.
Noudat jy jou eerste beeldherkenningsnetwerk in Keras gebou het, moet jy met die model eksperimenteer om te ontdek hoe verskillende parameters die werkverrigting daarvan beïnvloed.
Lewer Kommentaar