csonk Hogyan működik a képosztályozás? - Egyesüljetek.AI
Kapcsolatba velünk
AI mesterkurzus:

AI 101

Hogyan működik a képosztályozás?

mm
korszerűsített on

Hogyan állapíthatja meg a telefonja, hogy mi egy tárgy, pusztán egy fénykép elkészítésével? Hogyan jelölnek meg automatikusan embereket a közösségi oldalak a fotókon? Ez a mesterséges intelligencia által vezérelt képfelismerés és -osztályozás révén valósul meg.

A képek felismerése és osztályozása teszi lehetővé a mesterséges intelligencia számos leglenyűgözőbb teljesítményét. Mégis hogyan tanulják meg a számítógépek a képek észlelését és osztályozását? Ebben a cikkben bemutatjuk azokat az általános módszereket, amelyeket a számítógépek használnak a képek értelmezésére és észlelésére, majd áttekintjük a képek osztályozásának néhány legnépszerűbb módszerét.

Pixelszintű vs. objektumalapú osztályozás

A képosztályozási technikák alapvetően két különböző kategóriába sorolhatók: pixel alapú osztályozás és objektum alapú osztályozás.

A képpontok a kép alapegységei, és a képpontok elemzése a képosztályozás elsődleges módja. Az osztályozási algoritmusok azonban vagy csak az egyes pixeleken belüli spektrális információkat használhatják fel egy kép osztályozására, vagy vizsgálhatják a térinformációkat (a közeli pixeleket) a spektrális információval együtt. A pixel alapú osztályozási módszerek csak spektrális információt (a pixel intenzitását) használnak fel, míg az objektum alapú osztályozási módszerek a pixel spektrális és a térbeli információkat egyaránt figyelembe veszik.

A pixel alapú osztályozáshoz különböző osztályozási technikákat használnak. Ezek közé tartozik a minimális távolság az átlagtól, a maximális valószínűség és a minimális Mahalanobisz távolság. Ezek a módszerek megkövetelik, hogy az osztályok átlagai és varianciái ismertek legyenek, és mindegyik az osztályátlagok és a cél pixelek közötti „távolság” vizsgálatával működik.

A pixel alapú osztályozási módszereket korlátozza az a tény, hogy nem tudják felhasználni a többi közeli képpontból származó információkat. Ezzel szemben az objektum alapú osztályozási módszerek más képpontokat is tartalmazhatnak, ezért térinformációkat is használnak az elemek osztályozására. Vegye figyelembe, hogy az „objektum” csak a pixelek összefüggő régióira vonatkozik, és nem arra, hogy van-e célobjektum ezen a pixelterületen belül.

Képadatok előfeldolgozása az objektumészleléshez

A legújabb és legmegbízhatóbb képosztályozási rendszerek elsősorban objektum szintű osztályozási sémákat alkalmaznak, és ezekhez a megközelítésekhez a képadatokat meghatározott módon kell elkészíteni. Az objektumokat/régiókat ki kell választani és elő kell feldolgozni.

Mielőtt egy képet és a képen belüli objektumokat/régiókat osztályoznák, a képet tartalmazó adatokat a számítógépnek értelmeznie kell. A képeket elő kell feldolgozni, és fel kell készíteni az osztályozási algoritmusba való bemenetre, és ez objektumészlelésen keresztül történik. Ez kritikus része az adatok előkészítésének és a képek előkészítésének a gépi tanulási osztályozó betanításához.

Az objektumészlelés ezzel történik különféle módszerek és technikák. Kezdetben az, hogy van-e több érdeklődésre számot tartó objektum vagy egyetlen érdekes objektum, befolyásolja a kép előfeldolgozásának kezelését. Ha csak egy érdekes objektum van, a kép képlokalizáción megy keresztül. A képet alkotó pixeleknek numerikus értékei vannak, amelyeket a számítógép értelmez, és a megfelelő színek és árnyalatok megjelenítésére használ. A kívánt objektum köré egy határolókeretként ismert objektumot rajzolnak, amely segít a számítógépnek tudni, hogy a kép melyik része fontos, és milyen pixelértékek határozzák meg az objektumot. Ha a képen több érdeklődésre számot tartó objektum van, akkor az objektumészlelésnek nevezett technikát alkalmazzák ezeknek a határolókereteknek a képen belüli összes objektumra történő alkalmazására.

Fotó: Adrian Rosebrock a Wikimedia Commonsból, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

Az előfeldolgozás másik módja a képszegmentálás. A képszegmentálás úgy működik, hogy a teljes képet hasonló jellemzők alapján szegmensekre osztja. A kép különböző régióinak pixelértékei hasonlóak a kép más régióihoz képest, ezért ezek a pixelek képmaszkokba vannak csoportosítva, amelyek megfelelnek a képen belüli releváns objektumok alakjának és határainak. A képszegmentálás segít a számítógépnek elkülöníteni a kép azon jellemzőit, amelyek segítik az objektumok osztályozását, hasonlóan a határolókeretekhez, de sokkal pontosabb, pixelszintű címkéket biztosítanak.

Miután az objektumészlelés vagy a képszegmentálás befejeződött, a rendszer címkéket alkalmaz a kérdéses régiókra. Ezek a címkék az objektumot alkotó képpontok értékeivel együtt a gépi tanulási algoritmusokba kerülnek, amelyek megtanulják a különböző címkékkel társított mintákat.

Gépi tanulási algoritmusok

Az adatok előkészítése és címkézése után az adatok egy gépi tanulási algoritmusba kerülnek, amely betanítja az adatokat. Bemutatunk néhányat a gépi tanulás leggyakoribb típusai közül képosztályozási algoritmusok részben megadott elérhetőségeken.

K-Legközelebbi szomszédok

A K-Legközelebbi szomszédok egy olyan osztályozási algoritmus, amely megvizsgálja a legközelebbi képzési példákat, és megvizsgálja a címkéket, hogy megállapítsa az adott tesztpélda legvalószínűbb címkéjét. Amikor a KNN segítségével történő képosztályozásról van szó, a rendszer tárolja a képzési képek jellemzővektorait és címkéit, és csak a jellemzővektor kerül át az algoritmusba a tesztelés során. A képzési és tesztelési jellemzővektorokat ezután összehasonlítják egymással a hasonlóság érdekében.

A KNN-alapú osztályozási algoritmusok rendkívül egyszerűek, és meglehetősen könnyen kezelnek több osztályt. A KNN azonban minden jellemző alapján egyformán számítja ki a hasonlóságot. Ez azt jelenti, hogy hajlamos lehet a téves besorolásra, ha olyan képekkel látják el, ahol a jellemzőknek csak egy részhalmaza fontos a kép osztályozása szempontjából.

Támogatja a vektoros gépeket

A Support Vector Machines egy osztályozási módszer, amely pontokat helyez el a térben, majd választóvonalat húz a pontok közé, az objektumokat különböző osztályokba helyezve attól függően, hogy az osztósík melyik oldalára esnek a pontok. A támogató vektorgépek képesek nemlineáris osztályozást végezni a kerneltrükkként ismert technika használatával. Míg az SVM osztályozók gyakran nagyon pontosak, az SVM osztályozók jelentős hátránya, hogy általában korlátozza őket a méret és a sebesség is, és a sebesség a méret növekedésével csökken.

Többrétegű perceptronok (neurális hálók)

A többrétegű perceptronok, más néven neurális hálózati modellek, az emberi agy által ihletett gépi tanulási algoritmusok. A többrétegű perceptronok különböző rétegekből állnak, amelyek egymáshoz kapcsolódnak, hasonlóan az emberi agy neuronjaihoz. A neurális hálózatok feltételezéseket tesznek arról, hogy a bemeneti jellemzők hogyan kapcsolódnak az adatok osztályaihoz, és ezeket a feltételezéseket a képzés során módosítják. Az egyszerű neurális hálózati modellek, mint például a többrétegű perceptron, képesek nemlineáris kapcsolatok megtanulására, és ennek eredményeként sokkal pontosabbak lehetnek, mint más modellek. Az MLP-modellek azonban bizonyos figyelemre méltó problémákkal küzdenek, mint például a nem konvex veszteségfüggvények jelenléte.

Mélytanulási algoritmusok (CNN-ek)

Fotó: APhex34 a Wikimedia Commonson keresztül, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)

Az utóbbi időben leggyakrabban használt képosztályozási algoritmus a konvolúciós neurális hálózat (CNN). A CNN-ek a neurális hálózatok testreszabott változatai, amelyek a többrétegű neurális hálózatokat olyan speciális rétegekkel kombinálják, amelyek képesek az objektumok osztályozása szempontjából legfontosabb és legfontosabb jellemzők kinyerésére. A CNN-ek automatikusan felfedezhetik, generálhatják és megtanulhatják a képek jellemzőit. Ez nagymértékben csökkenti a képek manuális címkézésének és szegmentálásának szükségességét, hogy felkészítsék őket a gépi tanulási algoritmusokra. Előnyük is van az MLP hálózatokkal szemben, mivel nem konvex veszteségfüggvényeket tudnak kezelni.

A konvolúciós neurális hálózatok nevüket onnan kapták, hogy „konvolúciókat” hoznak létre. A CNN-ek úgy működnek, hogy vesznek egy szűrőt és csúsztatják a kép fölé. Ezt úgy képzelheti el, hogy egy tájrészletet egy mozgatható ablakon keresztül tekint meg, és csak azokra a funkciókra koncentrál, amelyek az ablakon keresztül bármikor megtekinthetők. A szűrő számértékeket tartalmaz, amelyeket megszoroznak maguknak a pixeleknek az értékeivel. Az eredmény egy új keret vagy mátrix, tele számokkal, amelyek az eredeti képet reprezentálják. Ezt a folyamatot megismétlik a kiválasztott számú szűrővel, majd a kereteket egy új képpé egyesítik, amely valamivel kisebb és kevésbé összetett, mint az eredeti kép. A pooling nevű technikát a képen belüli legfontosabb értékek kiválasztására használják, és a cél az, hogy a konvolúciós rétegek végül csak a kép legszembetűnőbb részeit vonják ki, amelyek segítenek a neurális hálózatnak felismerni a képen lévő objektumokat.

Konvolúciós neurális hálózatok két különböző részből állnak. A konvolúciós rétegek azok, amelyek kivonják a kép jellemzőit, és átalakítják azokat olyan formátumba, amelyet a neurális hálózati rétegek értelmezni és tanulni tudnak. A korai konvolúciós rétegek felelősek a kép legalapvetőbb elemeinek, például az egyszerű vonalak és határvonalak kinyeréséért. A középső konvolúciós rétegek bonyolultabb formákat, például egyszerű íveket és sarkokat kezdenek megragadni. A későbbi, mélyebb konvolúciós rétegek kivonják a kép magas szintű jellemzőit, amelyek átkerülnek a CNN neurális hálózati részébe, és ezeket tanulja meg az osztályozó.

Blogger és programozó szakterületekkel Gépi tanulás és a Deep Learning témákat. Daniel abban reménykedik, hogy segíthet másoknak az AI erejét társadalmi javára használni.