Tartalomjegyzék[Elrejt][Előadás]
- Mi az a képosztályozás?
- Hogyan működik a képosztályozás?
Képosztályozás Tensorflow és Keras segítségével pythonban+-
- 1. Telepítési követelmények
- 2. Függőségek importálása
- 3. Paraméterek inicializálása
- 4. Az adatkészlet betöltése
- 5. A modell elkészítése
- 6. A modell betanítása
- A modell tesztelése
- 7. A segédprogramok importálása tesztelésre
- 8. Python könyvtár készítése
- 9. Tesztadatok és modell betöltése
- 10. Értékelés és előrejelzés
- 11. Eredmények
- Következtetés
Megnyugtató a tudat, hogy sikerült átitatnunk a robotokat velünk született képességeinkkel, hogy példamutatással tanuljanak és érzékeljék környezetüket. Az alapvető kihívás az, hogy megtanítsák a számítógépeket emberhez hasonló „látásra” sokkal több időre és erőfeszítésre lenne szükség.
Ha azonban figyelembe vesszük azt a gyakorlati értéket, amelyet ez a készség jelenleg a szervezetek és a vállalkozások számára nyújt, akkor megéri az erőfeszítést. Ebből a cikkből megismerheti a képosztályozást, annak működését és gyakorlati megvalósítását. Kezdjük.
Mi az a képosztályozás?
A kép betáplálásának feladata a neurális hálózat és ha a képhez valamilyen címkét ad ki, azt képfelismerésnek nevezzük. A hálózat kimeneti címkéje egy előre meghatározott osztálynak felel meg.
A képhez több osztály is hozzárendelhető, vagy egyszerűen csak egy. Ha csak egy osztály van, akkor gyakran használják a „felismerés” kifejezést, míg ha több osztály van, akkor gyakran az „osztályozás” kifejezést használják.
Tárgyfelismerés a képbesorolás egy részhalmaza, amelyben a tárgyak egy adott osztályhoz tartozóként észlelhetők, például állatok, járművek vagy emberek.
Hogyan működik a képosztályozás?
A képpontok formájában megjelenő képet számítógép elemzi. Ezt úgy éri el, hogy a képet mátrixok gyűjteményeként kezeli, amelyek méretét a képfelbontás határozza meg. Egyszerűen szólva, a képosztályozás a statisztikai adatok vizsgálata algoritmusok segítségével a számítógép szemszögéből.
A képosztályozást a digitális képfeldolgozás során úgy hajtják végre, hogy a pixeleket előre meghatározott csoportokba vagy „osztályokba” csoportosítják. Az algoritmusok a képet figyelemre méltó jellemzők sorozatára osztják fel, ami csökkenti a végső osztályozó terhét.
Ezek a tulajdonságok tájékoztatják az osztályozót a kép jelentéséről és lehetséges osztályozásáról. Mivel a kép osztályozásának többi folyamata attól függ, a karakterisztikus kinyerési módszer a legkritikusabb fázis.
A megadott adatok Az algoritmushoz való igazodás a képosztályozásban is kulcsfontosságú, különösen a felügyelt osztályozásban. Összehasonlítva egy szörnyű adathalmazzal, amely az osztályokon alapuló adatkiegyensúlyozatlanságot, valamint az alacsony kép- és annotációs minőséget tartalmazza, a jól optimalizált osztályozási adatkészlet csodálatosan teljesít.
Képosztályozás Tensorflow és Keras segítségével pythonban
Használni fogjuk a CIFAR-10 adatkészlet (amely repülőgépeket, repülőgépeket, madarakat és egyéb 7 dolgot tartalmaz).
1. Telepítési követelmények
Az alábbi kód telepíti az összes előfeltételt.
2. Függőségek importálása
Készítsen train.py fájlt Pythonban. Az alábbi kód importálja a Tensorflow és a Keras függőségeket.
3. Paraméterek inicializálása
A CIFAR-10 mindössze 10 képkategóriát tartalmaz, ezért az osztályok száma egyszerűen az osztályozandó kategóriák számát jelenti.
4. Az adatkészlet betöltése
A függvény a Tensorflow Datasets modult használja az adatkészlet betöltéséhez, és az info-val True értékre állítjuk, hogy információt szerezzünk róla. Kinyomtathatja, hogy lássa, milyen mezők és azok értékei vannak, mi pedig az információk alapján lekérjük a képzési és tesztelési készletekben lévő minták számát.
5. A modell elkészítése
Most három réteget építünk fel, amelyek mindegyike két ConvNetből áll, max-pooling és ReLU aktiválási funkcióval, majd egy teljesen csatlakoztatott 1024 egységből álló rendszert. A ResNet50 vagy Xception modellekhez képest, amelyek a legmodernebb modellek, ez egy viszonylag apró modell lehet.
6. A modell betanítása
A Tensorboard segítségével minden korszakban mértem a pontosságot és a veszteséget, és az adatok importálása és a modell generálása után gyönyörű megjelenítést biztosítok számunkra. Futtassa a következő kódot; a CPU-tól/GPU-tól függően a képzés néhány percig tart.
A tensorboard használatához írja be a következő parancsot a terminálba vagy a parancssorba az aktuális könyvtárban:
Látni fogja, hogy az érvényesítési veszteség csökken, a pontosság pedig körülbelül 81%-ra nő. Fantasztikus!
A modell tesztelése
Az edzés befejeztével a végső modell és a súlyok mentésre kerülnek az eredmények mappába, lehetővé téve, hogy egyszer edzenek, és bármikor előrejelzéseket készítsünk. Kövesse a kódot egy test.py nevű új python-fájlban.
7. A segédprogramok importálása tesztelésre
8. Python könyvtár készítése
Készítsen Python szótárt, amely minden egész értéket lefordít az adatkészlet megfelelő címkéjére:
9. Tesztadatok és modell betöltése
A következő kód betölti a tesztadatokat és a modellt.
10. Értékelés és előrejelzés
A következő kód értékeli és előrejelzéseket ad a békaképekre.
11. Eredmények
A modell 80.62%-os pontossággal jósolta meg a békát.
Következtetés
Oké, ezzel a leckével végeztünk. Bár a 80.62% nem jó egy kis CNN-nek, határozottan azt tanácsolom, hogy változtassa meg a modellt, vagy nézze meg a ResNet50, Xception vagy más élvonalbeli modelleket a jobb eredmények érdekében.
Most, hogy felépítette első képfelismerő hálózatát a Kerasban, érdemes kísérleteznie a modellel, hogy megtudja, hogyan befolyásolják a különböző paraméterek a teljesítményét.
Hagy egy Válaszol