Cuprins[Ascunde][Spectacol]
- Ce este clasificarea imaginilor?
- Cum funcționează clasificarea imaginilor?
Clasificarea imaginilor folosind Tensorflow și Keras în python+-
- 1. Cerințe de instalare
- 2. Importarea dependențelor
- 3. Inițializarea parametrilor
- 4. Încărcarea setului de date
- 5. Crearea modelului
- 6. Antrenarea modelului
- Testarea modelului
- 7. Importul utilităților pentru testare
- 8. Realizarea unui director python
- 9. Încărcarea datelor și modelului de testare
- 10. Evaluare și predicție
- 11. Rezultate
- Concluzie
Este liniștitor să știm că am reușit să le impregnam roboților cu abilitățile noastre înnăscute de a învăța prin exemplu și de a percepe împrejurimile lor. Provocarea fundamentală este aceia care învață computerele să „vadă” ca și cum oamenii ar avea nevoie de mult mai mult timp și efort.
Cu toate acestea, când luăm în considerare valoarea practică pe care această abilitate o oferă în prezent organizațiilor și întreprinderilor, efortul merită. În acest articol, veți afla despre clasificarea imaginilor, cum funcționează și implementarea sa practică. Sa incepem.
Ce este clasificarea imaginilor?
Sarcina de a introduce o imagine într-un rețele neuronale și a avea o formă de etichetă pentru acea imagine este cunoscută sub numele de recunoaștere a imaginii. Eticheta de ieșire a rețelei va corespunde unei clase predefinite.
Ar putea fi numeroase clase atribuite imaginii sau pur și simplu una. Când există o singură clasă, termenul „recunoaștere” este folosit frecvent, în timp ce atunci când există mai multe clase, termenul „clasificare” este folosit frecvent.
Detectarea obiectelor este un subset al clasificării imaginilor în care anumite cazuri de obiecte sunt detectate ca aparținând unei clase date, cum ar fi animale, vehicule sau oameni.
Cum funcționează clasificarea imaginilor?
O imagine sub formă de pixeli este analizată de un computer. Realizează acest lucru tratând imaginea ca pe o colecție de matrici, a căror dimensiune este determinată de rezoluția imaginii. Pur și simplu vorbind, clasificarea imaginilor este studiul datelor statistice folosind algoritmi din perspectiva unui computer.
Clasificarea imaginilor se realizează în procesarea digitală a imaginilor prin gruparea pixelilor în grupuri predeterminate sau „clase”. Algoritmii împart imaginea într-o succesiune de caracteristici demne de remarcat, ceea ce reduce sarcina pentru clasificatorul final.
Aceste calități informează clasificatorul despre semnificația imaginii și potențiala clasificare. Deoarece restul proceselor de clasificare a unei imagini depind de aceasta, metoda de extracție caracteristică este cea mai critică fază.
datele furnizate la algoritm este, de asemenea, crucială în clasificarea imaginilor, în special în clasificarea supravegheată. În comparație cu un set de date groaznic cu dezechilibru de date bazat pe clasă și calitate scăzută a imaginii și adnotărilor, un set de date de clasificare bine optimizat funcționează admirabil.
Clasificarea imaginilor folosind Tensorflow și Keras în python
Vom folosi CIFAR-10 set de date (care include avioane, avioane, păsări și alte 7 lucruri).
1. Cerințe de instalare
Codul de mai jos va instala toate cerințele preliminare.
2. Importarea dependențelor
Creați un fișier train.py în Python. Codul de mai jos va importa dependențele Tensorflow și Keras.
3. Inițializarea parametrilor
CIFAR-10 include doar 10 categorii de imagini, prin urmare numărul de clase se referă pur și simplu la numărul de categorii de clasificat.
4. Încărcarea setului de date
Funcția folosește modulul Tensorflow Datasets pentru a încărca setul de date și am setat cu informații la True pentru a obține câteva informații despre acesta. Îl puteți imprima pentru a vedea ce câmpuri și valorile lor sunt, iar noi vom folosi informațiile pentru a prelua numărul de mostre din seturile de antrenament și testare.
5. Crearea modelului
Acum vom construi trei straturi, fiecare constând din două ConvNet-uri cu un max-pooling și o funcție de activare ReLU, urmate de un sistem de 1024 de unități complet conectat. În comparație cu ResNet50 sau Xception, care sunt modele de ultimă generație, acesta ar putea fi un model relativ mic.
6. Antrenarea modelului
Am folosit Tensorboard pentru a măsura acuratețea și pierderea în fiecare epocă și pentru a ne oferi un afișaj minunat după importarea datelor și generarea modelului. Rulați următorul cod; în funcție de CPU/GPU, antrenamentul va dura câteva minute.
Pentru a utiliza tensorboard, trebuie doar să tastați următoarea comandă în terminal sau prompt de comandă din directorul curent:
Veți vedea că pierderile de validare se reduc și precizia crește la aproximativ 81%. Este fantastic!
Testarea modelului
Când antrenamentul este terminat, modelul final și greutățile sunt salvate în folderul cu rezultate, permițându-ne să ne antrenăm o dată și să facem predicții oricând alegem. Urmați codul într-un fișier Python nou numit test.py.
7. Importul utilităților pentru testare
8. Realizarea unui director python
Creați un dicționar Python care traduce fiecare valoare întreagă în eticheta corespunzătoare a setului de date:
9. Încărcarea datelor și modelului de testare
Următorul cod va încărca datele de testare și modelul.
10. Evaluare și predicție
Următorul cod va evalua și va face predicții asupra imaginilor cu broaște.
11. Rezultate
Modelul a prezis broasca cu o precizie de 80.62%.
Concluzie
Bine, am terminat cu această lecție. Deși 80.62% nu este bun pentru un mic CNN, vă sfătuiesc insistent să modificați modelul sau să vă uitați la ResNet50, Xception sau alte modele de ultimă generație pentru rezultate mai bune.
Acum că v-ați construit prima rețea de recunoaștere a imaginii în Keras, ar trebui să experimentați cu modelul pentru a descoperi modul în care diferiți parametri îi influențează performanța.
Lasă un comentariu