Obsah[Skryť][Šou]
- Čo je klasifikácia obrázkov?
- Ako funguje klasifikácia obrázkov?
Klasifikácia obrázkov pomocou Tensorflow & Keras v pythone+-
- 1. Požiadavky na inštaláciu
- 2. Import závislostí
- 3. Inicializácia parametrov
- 4. Načítanie súboru údajov
- 5. Vytvorenie modelu
- 6. Tréning modelu
- Testovanie modelu
- 7. Importovanie nástrojov na testovanie
- 8. Vytvorenie adresára python
- 9. Načítanie testovacích údajov a modelu
- 10. Hodnotenie a predpoveď
- 11. výsledok
- záver
Je upokojujúce vedieť, že sa nám podarilo naplniť roboty našimi vrodenými schopnosťami učiť sa príkladom a vnímať svoje okolie. Základnou výzvou je, aby učenie počítačov „vidieť“ ako ľudia potrebovalo oveľa viac času a úsilia.
Keď však vezmeme do úvahy praktickú hodnotu, ktorú táto zručnosť v súčasnosti poskytuje organizáciám a podnikom, úsilie stojí za to. V tomto článku sa dozviete o klasifikácii obrázkov, ako funguje a ako sa používa v praxi. Poďme začať.
Čo je klasifikácia obrázkov?
Úloha vložiť obraz do a neurónové sieť a jeho výstup v nejakej forme štítka pre tento obrázok je známy ako rozpoznávanie obrázkov. Výstupný štítok siete bude zodpovedať vopred definovanej triede.
K obrázku môže byť priradených viacero tried alebo jednoducho jedna. Ak existuje iba jedna trieda, často sa používa pojem „uznanie“, zatiaľ čo v prípade viacerých tried sa často používa pojem „klasifikácia“.
Detekcia objektov je podmnožina klasifikácie obrázkov, v ktorej sa detegujú konkrétne prípady objektov patriacich do danej triedy, ako sú zvieratá, vozidlá alebo ľudia.
Ako funguje klasifikácia obrázkov?
Obraz vo forme pixelov je analyzovaný počítačom. Dosahuje to tak, že sa s obrázkom zaobchádza ako so zbierkou matíc, ktorých veľkosť je určená rozlíšením obrázka. Jednoducho povedané, klasifikácia obrázkov je štúdium štatistických údajov pomocou algoritmov z pohľadu počítača.
Klasifikácia obrázkov sa vykonáva pri digitálnom spracovaní obrázkov zoskupovaním pixelov do vopred určených skupín alebo „tried“. Algoritmy rozdeľujú obraz do postupnosti pozoruhodných charakteristík, čo znižuje záťaž pre konečný klasifikátor.
Tieto vlastnosti informujú klasifikátora o význame obrazu a jeho potenciálnej klasifikácii. Pretože ostatné procesy pri klasifikácii obrázku sú na ňom závislé, metóda charakteristickej extrakcie je najdôležitejšou fázou.
poskytnuté údaje pre algoritmus je tiež rozhodujúci pri klasifikácii obrazu, najmä pri klasifikácii pod dohľadom. V porovnaní s hrozným súborom údajov s nerovnováhou údajov založenou na triede a nízkej kvalite obrázkov a anotácií má dobre optimalizovaný súbor údajov klasifikácie obdivuhodný výkon.
Klasifikácia obrázkov pomocou Tensorflow & Keras v pythone
Budeme používať CIFAR-10 súbor údajov (ktorý zahŕňa lietadlá, lietadlá, vtáky a ďalších 7 vecí).
1. Požiadavky na inštaláciu
Nižšie uvedený kód nainštaluje všetky predpoklady.
2. Import závislostí
Vytvorte súbor train.py v Pythone. Nižšie uvedený kód importuje závislosti Tensorflow a Keras.
3. Inicializácia parametrov
CIFAR-10 obsahuje iba 10 kategórií obrázkov, takže počet tried jednoducho odkazuje na počet kategórií, ktoré sa majú klasifikovať.
4. Načítanie súboru údajov
Funkcia používa modul Tensorflow Datasets na načítanie súboru údajov a nastavíme s info na True, aby sme o ňom získali nejaké informácie. Môžete si ho vytlačiť, aby ste videli, aké polia a ich hodnoty sú, a my tieto informácie použijeme na získanie počtu vzoriek v tréningových a testovacích sadách.
5. Vytvorenie modelu
Teraz vytvoríme tri vrstvy, z ktorých každá pozostáva z dvoch sietí ConvNet s funkciou max-poolingu a aktivácie ReLU, po ktorých bude nasledovať plne pripojený systém s 1024 jednotkami. V porovnaní s ResNet50 alebo Xception, ktoré sú najmodernejšími modelmi, môže ísť o pomerne malý model.
6. Tréning modelu
Použil som Tensorboard na meranie presnosti a straty v každej epoche a po importovaní údajov a vygenerovaní modelu nám poskytol krásny displej. Spustite nasledujúci kód; v závislosti od vášho CPU/GPU bude tréning trvať niekoľko minút.
Ak chcete použiť tensorboard, stačí zadať nasledujúci príkaz do terminálu alebo príkazového riadka v aktuálnom adresári:
Uvidíte, že strata overenia sa znižuje a presnosť stúpa na približne 81 %. To je fantastické!
Testovanie modelu
Po dokončení tréningu sa konečný model a váhy uložia do priečinka s výsledkami, čo nám umožňuje trénovať raz a robiť predpovede, kedykoľvek sa nám to páči. Postupujte podľa kódu v novom súbore python s názvom test.py.
7. Importovanie nástrojov na testovanie
8. Vytvorenie adresára python
Vytvorte pythonovský slovník, ktorý preloží každú celočíselnú hodnotu na príslušné označenie množiny údajov:
9. Načítanie testovacích údajov a modelu
Nasledujúci kód načíta testovacie údaje a model.
10. Hodnotenie a predpoveď
Nasledujúci kód vyhodnotí a predpovedá obrázky žaby.
11. výsledok
Model predpovedal žabu s presnosťou 80.62 %.
záver
Dobre, s touto lekciou sme skončili. Zatiaľ čo 80.62% nie je dobré pre malú CNN, dôrazne vám odporúčam zmeniť model alebo sa pozrieť na ResNet50, Xception alebo iné špičkové modely pre lepšie výsledky.
Teraz, keď ste vytvorili svoju prvú sieť na rozpoznávanie obrázkov v Kerase, mali by ste experimentovať s modelom, aby ste zistili, ako rôzne parametre ovplyvňujú jeho výkon.
Nechaj odpoveď