Gépi tanulás a képfeldolgozásban
Óriási mennyiségű adat érhető el vizuális (kép, videó) formában is. Ezen adatok automatikus feldolgozását képfeldolgozás (Image Processing) vagy gépi látás (Computer Vision) nevezzük.
Olyan algoritmusok fejlesztése amelyek képesek megérteni, hogy mi van egy képen vagy videóban ugyanolyan kihívásokkal teli probléma, mint a szövegek értelmezése.
A vizuális felismerés az ember számára természetes, de a gép számára nagyon nehéz, hiszen az nem fér hozzá az agyunkban lévő hétköznapi tudáshoz. Hasonlóan a szövegbányászathoz, a gépi látás is
máig megoldatlan probléma, azonban a képek és videók feldolgozásában és generálásában hatalmasat fejlődött a technológia az elmúlt évtizedekben.
Képfeldolgozási alkalmazások
Számtalan célalkalmazás van, ahol vizuális tartalmakat kell számítógéppel megértenünk és/vagy ember számára érthető vizuális tartalmat kell algoritmikusan generálnunk. A teljesség igénye nélkül, néhány ilyen célalkalmazás:
- Képosztályozás (image classification): előre adott kategóriák valemlyikébe kell egy ismeretlen képet besorolnunk. Például kutya vagy macska van a képen, vagy milyen
fajtájú kutya van a képen vagy egy emberi arcképről eldönteni, hogy milyen érzelmet fejez ki.
Kihívásokkal teli arcképek a bőrszín osztályozási feladatnál. Forrás: Alafif, ICMLA 2017 - Objektum azonosítás és követés (object recognition and tracking): a feladat, hogy bizonyos típusú objektumokat azonosítsunk ("bekeretezzük") képeken illetve videókban kövessük ezek mozgását. Például egy önvezető autó számára
elengedhetetlen, hogy a kameraképén/lidaron a látható járműveket, gyalogosakat, forgalmi táblákat stb. azonosítani és követni tudjuk.
Az add-for.com objektum azonosítási demója. Az Ultinous szegedi irodájában is objektum követésen dolgoznak. - Augmented reality: A cél, hogy valós képekre mesterséges objektumokat jelenítsünk meg. Ehhez pontosan kell azonosítani a látott képen
az objektumokat, hogy kiszámolhassuk hova lehet megjeleníteni az objektumot, hogy az valószerű legyen. A 3D objektumok generálásánál is figyelembe kell
vennünk a környezetet, hogy ahhoz legjobban illeszkedjen.
Három augmented reality alkalmazás.
Képek előfeldolgozása
A képi tartalmakhoz kapcsolodó gépi tanulási feladatoknál is nagyon fontos az előfeldolgozás. Itt elsősorban a standardizálás a cél, azaz, hogy
a különböző típusú képeket egységes formátumra hozzuk, hogy a későbbi jellemzőkinyerés egyszerűbb legyen. A szövegbányászattal ellentétben, a
képfeldolgozásban, már a szükséges előfeldolgozási lépesek is nagyban függenek a célalkalmazástól, amit meg akarunk oldani.
A leggyakrabban alkalmazott előfeldolgozási lépések:
- Képek egységes méretűvé alakítása nyújtással.
- Színcsatornák egységesítésére is szükség lehet. Például ha szürkeárnyalatos (1 csatornás) képeink vannak, akkor a 3 színcsatornás képeket konvertálnunk kell.
- Képosztályozási feladatnál gyakran valamilyen objektumot osztályozunk (pl. egy arc). Ilyen esetekben célszerű azonosítani a legkisebb magában foglaló téglalapot az objektum körül és a felesleges képrészleteket levágni.
Jellemzőkinyerés képekből
A képosztályozási feladatoknál a kép egyedeket leíró jellemzőtér is nagyban problémafüggő. A teljesség igénye nélkül négy jellemzőkinyerési terület:
- Amikor a képosztályozási feladatunkban az egész képet kitölti a célobjektum, akkor feltételezhetjük, hogy a standardizált képeken az egyes pixelpozíciókban hasonló
színárnyalatú pixeleknek kell lenniük az egy osztályba tartozó képeknél. Itt egy kézenfekvő megközelítés két kép között úgy definiálni a távolságot/hasonlóságot, hogy
az egyes pixelek páronkénti hasonlóságából aggregálunk egy mátrixhasonlóságot. Ilyen feladatok például az írott számjegyek felismerése (10 osztályos képosztályozási feladat)
vagy arcképek osztályozása ha a képet "kitölti" az arc.
Az MNIST számjegy felismerési feladat (10 osztályos képosztályozási feladat). Forrás: mdpi.com - Teljesen más jellemzőleírásra van szükségünk, ha a képosztályozási feladatunk olyan, ahol a teljes kép színvilága meghatározó lehet. Ilyen például ha tengerparti vs túrázós nyaralós képeket akarunk osztályozni.
Ebben az esetben a kép globális színvilágát a pixelek színeinek hisztogramjával érdemes leírnunk. A jellemzőtér ebben az esetben a hisztogramot reprezentálja, azaz
egy dimenziós (szürkeárnyalatos) esetben a hisztogram intervallumai lesznek a jellemzők és az intervalum gyakorisága a jellemző értéke.
Színvilág hisztogram szürkeárnyalatos képből. Forrás: pyimagesearch.com - A képek mélyebb elemzéséhez szükségünk van alacsony szintű elemek, mint például élek azonosítására a képeken. Az ilyen egyszerű képelemek felismerésére a képfeldolgozás
algoritmusait használhatjuk. Ezek az algoritmusok képesek (gépi tanulás nélkül) kinyerni alacsony szintű elemek pozícióját, irányát és egyéb tulajdonságait. De akár maszkok
(pl. minden 5x5 pixelmátrix a képen) is lehetnek alacsony szintű elemek. Ezekből az alacsony szintű elemekből fogalmazhatunk meg jellemzőket a szózsák modellhez hasonlóan, azaz
az minden az adatbázisban előforduló alacsony szintű elem alkotja a "vizuális szótárat" és minden kép egyedhez a jellemző értéke az adott vizuális elem előfordulásának száma a képen.
A szózsák modell analógiája miatt ezt a jellemzőteret hívják bag-of-visual-words (BOVW)-nek is.
bag of visual words (BOVW). Forrás: towardsdatascience.com - A mély neurális hálók segítségével a képket is beágyazhatjuk sokdimenziós folytonos vektorterekbe. Az img2vec típusú neurális hálózatok bemenete egy kép és egy rejtett (beágyazás) vektor
lesz a kimenet. Azok a képeknek, amelyek beágyazásai közt magas vektorhasonlóság mérhető hasonló objektumokat tartalmaznak.
Az img2vec típusú neurális hálózatokat úgy kapjuk, hogy óriási méretű képosztályozási - felügyelt gépi - tanító adatbázison (pl. ImageNet 14M kép 2K osztály) tanítunk mély neurális osztályzó hálózatot, majd
eltávolítjuk az utolsó osztályozó réteget és az utolsó látens réteget használjuk beágyazásnak. A motiváció e mögött az, hogy a bemeneti pixelektől az utolsó rétegig a hálózat egy jó látens reprezentációját adja a képeknek. Természetesen
a beágyazás tanítói példáit reprezentálják jól ezek a beágyazások, így fontos, hogy a célfeladatunkhoz legjobban hasonlító beágyzást válasszunk.
Képbeágyazás. Forrás: Lazcano et al 2021