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.
Csak nagyon szűk alkalmazási területeken lehet szabályalapú rendszerekkel - erősen feladat-specifikus szabályokkal - megoldani a képfeldolgozási problémákat, mert az objektumok rengeteg féle formában megjelenhetnek egy képen. Ezért az elmúlt évtizedben a képfeldolgozásban a gépi tanulási megoldások átvették a szabály alapú rendszerek vezető szerepét. A különböző célalkalmazások különböző gépi tanulási feladatokra vezethetőek vissza. Ebben a leckében a legegyszerűbb feladattal, képek osztályozásával fogunk megismerkedni.

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 három nagy 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
    A gépi tanulási keretrendszerekben pixelmártix helyett pixelvektorokkal dolgozunk (egyszerűen összefűzzük a pixelsorokat). Itt a jellemzőtér mérete a standardizált méretű képek pixelszáma és a jellemző értéke a megfelelő pozícióban lévő pixel színárnyalata lesz. Ha az egyedeink ilyen módon vannak jellemzőkkel leírva, akkor célszerű olyan gépi tanuló algoritmust választanunk ami egyed közti távolságfüggvényen alapul (lásd itt), hiszen itt a jellemzővektorok (azaz pixelmátrixok) közti hasonlóságot bármilyen egyszerű vektorhasonlósággal leírhatjuk.
  • 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 globális színvilág hisztogram jellemzőtér esetén is a vektortávolság alapú gépi tanuló algoritmusok a jó választás, hiszen a két hisztogram hasonlóságára építjük az osztályozó modellünket.
  • 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

Ellenörző kérdések

  1. Milyen jelenségek okoznak gondot az első képen az algoritmikus bőrszín osztályozásnál?
  2. Mit jelent képek "standardizálása"?
  3. Mi köze van a szózsáknak a képekhez?

További ajánlott anyagok

  • Egy motiváló TEDtalk: How we're teaching computers to understand pictures
  • Az SzTE Digitális képfeldolgozás gyakorlat kurzusa és tananyagai mélyen tárgyalják a képek előfeldolgozásához és jellemzőkinyeréshez szükséges technológiákat.
  • Képek gépi tanulás célú előfeldolgozásáról bővebben egy blog post
  • Színvilág hisztogram több színcsatornás képekből is kinyerhető. Lásd blog post
  • Kitekintés: Az elmút 10 évben a képosztályozásban mindent visz a Convolutional Neural Network (CNN), ami a deep learning egyik legnagyobb sikersztorija! Ez egy jó tutorial.