Ir iepriecinoši apzināties, ka mums ir izdevies piesātināt robotus ar mūsu iedzimtajām spējām mācīties ar piemēru un uztvert apkārtējo vidi. Būtiskākais izaicinājums ir tiem, kas mācītu datorus “redzēt” tāpat kā cilvēkiem, būtu nepieciešams daudz vairāk laika un pūļu.
Tomēr, ņemot vērā praktisko vērtību, ko šī prasme šobrīd sniedz organizācijām un uzņēmumiem, pūles ir vērtīgas. Šajā rakstā jūs uzzināsit par attēlu klasifikāciju, tās darbību un praktisko ieviešanu. Sāksim.
Kas ir attēlu klasifikācija?
Attēla ievadīšanas darbs a neironu tīklu un tā izvadīšana šim attēlam ir zināma kā attēla atpazīšana. Tīkla izvades etiķete atbildīs iepriekš noteiktai klasei.
Attēlam var būt piešķirtas vairākas klases vai vienkārši viena. Ja ir tikai viena klase, bieži tiek lietots termins “atpazīšana”, savukārt, ja ir vairākas klases, bieži tiek lietots termins “klasificēšana”.
Objektu noteikšana ir attēlu klasifikācijas apakškopa, kurā konkrēti objekti tiek konstatēti kā piederīgi noteiktai klasei, piemēram, dzīvnieki, transportlīdzekļi vai cilvēki.
Kā darbojas attēlu klasifikācija?
Attēlu pikseļu formā analizē dators. Tas tiek panākts, apstrādājot attēlu kā matricu kolekciju, kuras lielumu nosaka attēla izšķirtspēja. Vienkārši sakot, attēlu klasifikācija ir statistikas datu izpēte, izmantojot algoritmus no datora viedokļa.
Attēlu klasifikācija tiek veikta digitālajā attēlu apstrādē, grupējot pikseļus iepriekš noteiktās grupās jeb “klasēs”. Algoritmi attēlu sadala ievērojamu īpašību virknē, kas samazina galīgā klasifikatora slodzi.
Šīs īpašības informē klasifikatoru par attēla nozīmi un iespējamo klasifikāciju. Tā kā pārējie attēla klasificēšanas procesi ir atkarīgi no tā, raksturīgā ekstrakcijas metode ir viskritiskākā fāze.
Jūsu darbs IR Klientu apkalpošana sniegtie dati algoritmam ir arī izšķiroša nozīme attēlu klasifikācijā, jo īpaši uzraudzītajā klasifikācijā. Salīdzinājumā ar briesmīgu datu kopu ar datu nelīdzsvarotību, kuras pamatā ir klase un zema attēla un anotācijas kvalitāte, labi optimizēta klasifikācijas datu kopa darbojas lieliski.
Attēlu klasifikācija, izmantojot Tensorflow un Keras programmā python
Mēs izmantosim CIFAR-10 datu kopa (kas ietver lidmašīnas, lidmašīnas, putnus un citas 7 lietas).
1. Instalēšanas prasības
Tālāk norādītais kods instalēs visus priekšnoteikumus.
2. Atkarību importēšana
Izveidojiet failu train.py programmā Python. Tālāk norādītais kods importēs Tensorflow un Keras atkarības.
3. Parametru inicializācija
CIFAR-10 ietver tikai 10 attēlu kategorijas, tāpēc klašu skaits vienkārši attiecas uz klasificējamo kategoriju skaitu.
4. Notiek datu kopas ielāde
Funkcija izmanto Tensorflow Datasets moduli, lai ielādētu datu kopu, un mēs ar info iestatām vērtību True, lai iegūtu informāciju par to. Varat to izdrukāt, lai redzētu, kas ir lauki un to vērtības, un mēs izmantosim informāciju, lai izgūtu paraugu skaitu apmācības un testēšanas komplektos.
5. Modeļa izveide
Tagad mēs izveidosim trīs slāņus, no kuriem katrs sastāv no diviem ConvNets ar max-pooling un ReLU aktivizācijas funkciju, kam sekos pilnībā savienota 1024 vienību sistēma. Salīdzinot ar ResNet50 vai Xception, kas ir vismodernākie modeļi, tas varētu būt salīdzinoši niecīgs modelis.
6. Modeļa apmācība
Es izmantoju Tensorboard, lai izmērītu precizitāti un zudumus katrā laikmetā un nodrošinātu mums jauku displeju pēc datu importēšanas un modeļa ģenerēšanas. Palaidiet šādu kodu; atkarībā no jūsu CPU/GPU, apmācība prasīs vairākas minūtes.
Lai izmantotu tensorboard, pašreizējā direktorijā terminālī vai komandu uzvednē vienkārši ierakstiet šo komandu:
Jūs redzēsit, ka validācijas zudumi samazinās un precizitāte palielinās līdz aptuveni 81%. Tas ir fantastiski!
Modeļa pārbaude
Kad treniņš ir pabeigts, gala modelis un svari tiek saglabāti rezultātu mapē, ļaujot mums vienu reizi trenēties un izteikt prognozes, kad vien vēlamies. Izpildiet kodu jaunā python failā ar nosaukumu test.py.
7. Utilītu importēšana testēšanai
8. Python direktorija izveide
Izveidojiet Python vārdnīcu, kas pārvērš katru veselu skaitļa vērtību datu kopas atbilstošajā etiķetē:
9. Pārbaudes datu un modeļa ielāde
Šis kods ielādēs testa datus un modeli.
10. Novērtēšana un prognozēšana
Šis kods novērtēs un prognozēs varžu attēlus.
11. Rezultāti
Modelis pareģoja vardi ar 80.62% precizitāti.
Secinājumi
Labi, mēs esam pabeiguši šo nodarbību. Lai gan 80.62% nav piemērots nelielam CNN, es ļoti iesaku jums mainīt modeli vai apskatīt ResNet50, Xception vai citus vismodernākos modeļus, lai iegūtu labākus rezultātus.
Tagad, kad esat izveidojis savu pirmo attēlu atpazīšanas tīklu Keras, jums vajadzētu eksperimentēt ar modeli, lai atklātu, kā dažādi parametri ietekmē tā veiktspēju.
Atstāj atbildi