Turinys[Slėpti][Rodyti]
- Kas yra vaizdų klasifikacija?
- Kaip veikia vaizdų klasifikavimas?
Vaizdų klasifikavimas naudojant Tensorflow ir Keras programoje python+-
- 1. Diegimo reikalavimai
- 2. Priklausomybių importavimas
- 3. Parametrų inicijavimas
- 4. Duomenų rinkinio įkėlimas
- 5. Modelio kūrimas
- 6. Modelio mokymas
- Modelio išbandymas
- 7. Komunalinių paslaugų importavimas testavimui
- 8. Python katalogo kūrimas
- 9. Bandymo duomenų ir modelio įkėlimas
- 10. Įvertinimas ir numatymas
- 11. Rezultatai
- Išvada
Malonu žinoti, kad mums pavyko įkūnyti robotus įgimtais gebėjimais mokytis iš pavyzdžio ir suvokti juos supančią aplinką. Pagrindinis iššūkis yra tas, kad norint išmokyti kompiuterius „matyti“ taip, kaip žmonėms, reikės daug daugiau laiko ir pastangų.
Tačiau įvertinus praktinę vertę, kurią šis įgūdis šiuo metu teikia organizacijoms ir įmonėms, pastangos yra vertos. Šiame straipsnyje sužinosite apie vaizdų klasifikavimą, jo veikimą ir praktinį įgyvendinimą. Pradėkime.
Kas yra vaizdų klasifikacija?
Vaizdo padavimo į a neuroninis tinklas ir kai jis išveda tam tikrą to paveikslėlio etiketę, yra žinomas kaip vaizdo atpažinimas. Tinklo išvesties etiketė atitiks iš anksto nustatytą klasę.
Paveikslui gali būti priskirta daug klasių arba tiesiog viena. Kai yra tik viena klasė, dažnai vartojamas terminas „atpažinimas“, o kai yra kelios klasės, dažnai vartojamas terminas „klasifikacija“.
Objekto aptikimas yra paveikslėlių klasifikacijos poaibis, kuriame aptinkami tam tikri objektai, priklausantys tam tikrai klasei, pavyzdžiui, gyvūnai, transporto priemonės ar žmonės.
Kaip veikia vaizdų klasifikavimas?
Vaizdas pikselių pavidalu analizuojamas kompiuteriu. Tai pasiekiama laikydama paveikslėlį kaip matricų rinkinį, kurio dydį lemia vaizdo skiriamoji geba. Paprasčiau tariant, vaizdų klasifikavimas yra statistinių duomenų tyrimas naudojant algoritmus iš kompiuterio perspektyvos.
Vaizdų klasifikacija atliekama apdorojant skaitmeninį vaizdą, grupuojant pikselius į iš anksto nustatytas grupes arba „klases“. Algoritmai padalija vaizdą į svarbias charakteristikas, o tai sumažina galutinio klasifikatoriaus naštą.
Šios savybės informuoja klasifikatorių apie vaizdo reikšmę ir galimą klasifikaciją. Kadangi kiti vaizdo klasifikavimo procesai priklauso nuo jo, charakteringas ištraukimo metodas yra pats kritiškiausias etapas.
Šios pateikti duomenys algoritmas taip pat yra labai svarbus vaizdų klasifikavimui, ypač prižiūrimam klasifikavimui. Palyginti su siaubingu duomenų rinkiniu, kurio duomenų disbalansas pagrįstas klase ir žema vaizdo bei anotacijų kokybe, gerai optimizuotas klasifikavimo duomenų rinkinys veikia puikiai.
Vaizdų klasifikavimas naudojant Tensorflow ir Keras programoje python
Mes naudosime CIFAR-10 duomenų rinkinys (į kurį įeina orlaiviai, lėktuvai, paukščiai ir kiti 7 dalykai).
1. Diegimo reikalavimai
Toliau pateiktas kodas įdiegs visas būtinas sąlygas.
2. Priklausomybių importavimas
Sukurkite failą train.py programoje Python. Toliau pateiktas kodas importuos Tensorflow ir Keras priklausomybes.
3. Parametrų inicijavimas
CIFAR-10 apima tik 10 paveikslėlių kategorijų, todėl klasių skaičius tiesiog nurodo klasifikuojamų kategorijų skaičių.
4. Duomenų rinkinio įkėlimas
Funkcija naudoja Tensorflow Datasets modulį, kad įkeltų duomenų rinkinį, ir mes nustatome su informacija į True, kad gautume informacijos apie jį. Galite atsispausdinti, kad pamatytumėte, kokie yra laukai ir jų reikšmės, o mes naudosime informaciją, kad gautume mėginių skaičių mokymo ir testavimo rinkiniuose.
5. Modelio kūrimas
Dabar sukursime tris sluoksnius, kurių kiekvieną sudarys du „ConvNets“ su maksimaliu telkimu ir ReLU aktyvinimo funkcija, o po to – visiškai prijungta 1024 vienetų sistema. Palyginti su ResNet50 arba Xception, kurie yra moderniausi modeliai, tai gali būti palyginti mažas modelis.
6. Modelio mokymas
Naudojau Tensorboard, kad išmatuotų kiekvienos epochos tikslumą ir nuostolius, o importavus duomenis ir sugeneravus modelį, suteikčiau mums puikų ekraną. Paleiskite šį kodą; priklausomai nuo jūsų CPU / GPU, mokymas užtruks keletą minučių.
Norėdami naudoti tensorboard, tiesiog įveskite šią komandą į terminalą arba komandų eilutę dabartiniame kataloge:
Pamatysite, kad patvirtinimo praradimas mažėja, o tikslumas padidėja iki maždaug 81%. Tai fantastiška!
Modelio išbandymas
Pasibaigus treniruotei, galutinis modelis ir svoriai išsaugomi rezultatų aplanke, todėl galime treniruotis vieną kartą ir daryti prognozes, kai tik pasirenkame. Vykdykite kodą naujame python faile, pavadintame test.py.
7. Komunalinių paslaugų importavimas testavimui
8. Python katalogo kūrimas
Sukurkite Python žodyną, kuris išverstų kiekvieną sveikojo skaičiaus reikšmę į atitinkamą duomenų rinkinio etiketę:
9. Bandymo duomenų ir modelio įkėlimas
Šis kodas įkels bandymo duomenis ir modelį.
10. Įvertinimas ir numatymas
Šis kodas įvertins ir numatys varlių vaizdus.
11. Rezultatai
Modelis nuspėjo varlę 80.62% tikslumu.
Išvada
Gerai, baigėme šią pamoką. Nors 80.62 % nėra tinkamas CNN, primygtinai patariu pakeisti modelį arba pažvelgti į ResNet50, Xception ar kitus pažangiausius modelius, kad gautumėte geresnių rezultatų.
Dabar, kai sukūrėte pirmąjį vaizdo atpažinimo tinklą Keras, turėtumėte eksperimentuoti su modeliu, kad sužinotumėte, kaip skirtingi parametrai veikia jo veikimą.
Palikti atsakymą