Sadržaj[Sakrij][Prikaži]
- Šta je klasifikacija slika?
- Kako funkcionira klasifikacija slika?
Klasifikacija slika koristeći Tensorflow & Keras u pythonu+-
- 1. Zahtjevi za instalaciju
- 2. Uvoz zavisnosti
- 3. Inicijalizacija parametara
- 4. Učitavanje skupa podataka
- 5. Kreiranje modela
- 6. Obuka modela
- Testiranje modela
- 7. Uvoz uslužnih programa za testiranje
- 8. Pravljenje python direktorija
- 9. Učitavanje testnih podataka i modela
- 10. Evaluacija i predviđanje
- 11. Rezultati
- zaključak
Ohrabrujuće je znati da smo robotima uspjeli prožeti naše urođene sposobnosti da uče primjerom i percipiraju svoju okolinu. Osnovni izazov je učenje kompjutera da "vide" kao što bi ljudima trebalo mnogo više vremena i truda.
Međutim, kada uzmemo u obzir praktičnu vrijednost koju ova vještina trenutno pruža organizacijama i preduzećima, trud je vrijedan truda. U ovom članku ćete naučiti o klasifikaciji slika, kako ona funkcionira i njenoj praktičnoj primjeni. Počnimo.
Šta je klasifikacija slika?
Posao unosa slike u a neuronska mreža a to što on daje neki oblik oznake za tu sliku je poznato kao prepoznavanje slike. Oznaka izlaza mreže će odgovarati unaprijed definiranoj klasi.
Slici mogu biti dodijeljene brojne klase ili jednostavno jedna. Kada postoji samo jedna klasa, termin „prepoznavanje” se često koristi, dok kada postoji više klasa, termin „klasifikacija” se često koristi.
Detekcija objekata je podskup klasifikacije slika u kojoj se otkrivaju da određeni predmeti pripadaju određenoj klasi kao što su životinje, vozila ili ljudi.
Kako funkcionira klasifikacija slika?
Računar analizira sliku u obliku piksela. To postiže tako što sliku tretira kao zbirku matrica, čija je veličina određena rezolucijom slike. Jednostavno govoreći, klasifikacija slika je proučavanje statističkih podataka koristeći algoritme iz kompjuterske perspektive.
Klasifikacija slika se postiže u digitalnoj obradi slike grupiranjem piksela u unaprijed određene grupe ili "klase". Algoritmi dijele sliku na niz značajnih karakteristika, što smanjuje opterećenje za konačni klasifikator.
Ovi kvaliteti informišu klasifikatora o značenju slike i potencijalnoj klasifikaciji. Budući da ostali procesi u klasifikaciji slike zavise od toga, karakteristična metoda ekstrakcije je najkritičnija faza.
The dostavljeni podaci algoritam je takođe ključan u klasifikaciji slika, posebno nadziranoj klasifikaciji. U poređenju sa užasnim skupom podataka sa neravnotežom podataka zasnovanom na klasi i niskom kvalitetu slike i napomena, dobro optimizovani skup podataka za klasifikaciju ima izuzetan učinak.
Klasifikacija slika koristeći Tensorflow & Keras u pythonu
Mi ćemo koristiti CIFAR-10 skup podataka (koji uključuje letjelice, avione, ptice i druge 7 stvari).
1. Zahtjevi za instalaciju
Kod u nastavku će instalirati sve preduvjete.
2. Uvoz zavisnosti
Napravite datoteku train.py u Pythonu. Kod u nastavku će uvesti Tensorflow i Keras zavisnosti.
3. Inicijalizacija parametara
CIFAR-10 uključuje samo 10 kategorija slika, pa se broj klasa jednostavno odnosi na broj kategorija koje treba klasifikovati.
4. Učitavanje skupa podataka
Funkcija koristi modul Tensorflow Datasets za učitavanje skupa podataka, a mi postavljamo sa informacijama na True da bismo dobili neke informacije o tome. Možete ga odštampati da vidite koja su polja i njihove vrijednosti, a mi ćemo koristiti informacije za dohvat broja uzoraka u skupovima za obuku i testiranje.
5. Kreiranje modela
Sada ćemo izgraditi tri sloja, od kojih se svaki sastoji od dva ConvNeta sa maksimalnim objedinjavanjem i funkcijom ReLU aktivacije, nakon čega slijedi potpuno povezan sistem od 1024 jedinica. U poređenju sa ResNet50 ili Xception, koji su vrhunski modeli, ovo bi mogao biti relativno mali model.
6. Obuka modela
Koristio sam Tensorboard da izmjerim tačnost i gubitak u svakoj epohi i pružim nam lijep prikaz nakon uvoza podataka i generiranja modela. Pokrenite sljedeći kod; ovisno o vašem CPU/GPU-u, obuka će trajati nekoliko minuta.
Da biste koristili tensorboard, samo upišite sljedeću naredbu u terminal ili naredbeni redak u trenutnom direktoriju:
Vidjet ćete da se gubitak validacije smanjuje, a preciznost raste na oko 81%. To je fantasticno!
Testiranje modela
Kada se trening završi, konačni model i težine se pohranjuju u mapu rezultata, što nam omogućava da treniramo jednom i da predvidimo kad god želimo. Slijedite kod u novom python fajlu pod nazivom test.py.
7. Uvoz uslužnih programa za testiranje
8. Pravljenje python direktorija
Napravite Python rječnik koji prevodi svaku cjelobrojnu vrijednost u odgovarajuću oznaku skupa podataka:
9. Učitavanje testnih podataka i modela
Sljedeći kod će učitati testne podatke i model.
10. Evaluacija i predviđanje
Sljedeći kod će procijeniti i napraviti predviđanja na slikama žaba.
11. Rezultati
Model je predvidio žabu sa 80.62% tačnosti.
zaključak
U redu, završili smo sa ovom lekcijom. Iako 80.62% nije dobro za mali CNN, toplo vam savjetujem da promijenite model ili pogledate ResNet50, Xception ili druge vrhunske modele za bolje rezultate.
Sada kada ste izgradili svoju prvu mrežu za prepoznavanje slika u Kerasu, trebali biste eksperimentirati s modelom kako biste otkrili kako različiti parametri utječu na njegove performanse.
Ostavite odgovor