A képfelismerés alapjai: hogyan lát a gép?

A számítógépes látás (computer vision) egyik alapfeladata a képfelismerés: egy digitális kép tartalmának automatikus azonosítása és kategorizálása. Az emberi vizuális rendszer ezt látszólag erőfeszítés nélkül végzi el, a gépi megvalósítás azonban összetett matematikai és mérnöki feladatot jelent. Az elmúlt két évtizedben a mélytanulás — azon belül is a konvolúciós neurális hálózatok (CNN) — alapvetően megváltoztatta a terület eredményességét.

Egyszerűsített neurális hálózat példa objektumfelismeréshez: tengeri csillag és tengeri sün osztályozása
Egyszerűsített neurális hálózat példa: a hálózat textúra- és alakmintázatok alapján osztályoz. Forrás: Mikael Häggström / Wikimedia Commons (CC0)

Hagyományos megközelítések és korlátaik

A mélytanulás elterjedése előtt a képfelismerő rendszerek kézzel tervezett jellemzőkivonó algoritmusokra támaszkodtak. Az ilyen módszerek — például a SIFT (Scale-Invariant Feature Transform) vagy a HOG (Histogram of Oriented Gradients) — meghatározott matematikai leírók alapján írták le a képek tartalmát. Ezek a leírók szakértői tudást igényeltek, és nehezen általánosíthatók különböző megvilágítási körülmények, nézőpontok vagy objektumméretek esetén.

A hagyományos gépi tanulási osztályozókkal (pl. SVM, döntési fák) kombinált jellemzőkivonó megközelítések ugyan értékes eredményeket hoztak a 2000-es évek közepéig, a valós körülmények változatossága azonban komoly korlátot jelentett. A benchmark adatbázisokon mért teljesítmény és az éles alkalmazásokban tapasztalt pontosság között gyakran nagy különbség mutatkozott.

A konvolúciós neurális hálózatok áttörése

A 2012-es ImageNet-verseny fordulópontot jelentett: az AlexNet architektúra drámaian csökkentette a top-5 hibaarányt a korábbi módszerekhez képest. Ez az eredmény a GPU-alapú tanítás és a nagy annotált adatbázisok (ImageNet: több mint 14 millió kép, több mint 20 000 kategória) együttes hatásán alapult.

Az ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2010-től 2017-ig futott, és a számítógépes látás egyik legfontosabb benchmarkja volt. Az itt mért eredmények közvetlen összehasonlítási alapot nyújtottak az architektúrák fejlődéséhez. Forrás: image-net.org

A konvolúciós réteg működése

A CNN-ek alapja a konvolúciós réteg, amely tanítható szűrőkkel (kernelekkel) pásztázza végig a bemeneti képet. Minden szűrő egy adott vizuális jellemzőre specializálódik a tanítás során: az alacsonyabb rétegek jellemzően éleket, textúrákat és egyszerű mintázatokat detektálnak, míg a mélyebb rétegek összetettebb, objektum-specifikus reprezentációkat alakítanak ki.

A konvolúció matematikailag egy diszkrét keresztkorreláció: a szűrő értékeit meghatározott lépésközzel a bemeneti mátrixon mozgatják, és minden pozícióban elemenként összeszorozzák és összegzik az értékeket. Az így kapott aktivációs térképek (feature maps) az adott szűrőre jellemző mintázatok előfordulási helyét rögzítik.

Pooling és normalizáció

A konvolúciós rétegek után általában pooling rétegek következnek, amelyek a reprezentáció térbeli méretét csökkentik. A max-pooling az adott területen belüli maximumot tartja meg, ezzel térbeli eltolásokra robusztus reprezentációt alakít ki. A batch normalizáció a tanítás stabilizálásában játszik kulcsszerepet azzal, hogy az aktivációk eloszlását rétegről rétegre normalizálja.

Ismert CNN-architektúrák és jellemzőik

Az AlexNet óta számos architektúra fejlesztette tovább az alapelvet:

  • VGGNet (2014): Az Oxford Visual Geometry Group által fejlesztett, egységes 3×3-as konvolúciós kerneleket alkalmazó architektúra. Mélysége (16–19 réteg) lényeges pontosságjavulást hozott, de számítási igénye is nőtt.
  • GoogLeNet / Inception (2014): Párhuzamos konvolúciós ágakat alkalmazó „Inception modul" segítségével csökkentette a paraméterszámot az akkori mélységű hálózatokhoz képest.
  • ResNet (2015): A maradék összeköttetések (residual connections) lehetővé tették nagyon mély hálózatok (akár 152 réteg) stabil tanítását az eltűnő gradiens probléma csökkentésével.
  • EfficientNet (2019): A hálózat mélységét, szélességét és felbontását egyszerre, összekapcsolt skálázással optimalizálja.

Tanítás és kiértékelés

A képfelismerő hálózatok felügyelt tanulással dolgoznak: a tanítóhalmazban minden képhez ismert osztálycímke tartozik. A tanítás során a hálózat paraméterei a veszteségfüggvény minimalizálásán keresztül frissülnek visszaterjesztési (backpropagation) algoritmussal, általában sztochasztikus gradiens-módszer (SGD) vagy Adam optimizer alkalmazásával.

A kiértékeléshez az alábbi mérőszámokat alkalmazzák jellemzően:

  • Top-1 pontosság: A modell legvalószínűbbnek ítélt osztálya megegyezik a valós osztálycímkével.
  • Top-5 pontosság: A valós osztálycímke az öt legvalószínűbbnek ítélt osztály között szerepel. Az ImageNet-versenyeken elsődleges mérőszámként alkalmazták.
  • Confusion matrix (tévesztési mátrix): Osztályonkénti bontásban mutatja a tévesztési mintázatokat.
  • F1-score: Kiegyensúlyozatlan adatbázisoknál alkalmazott, precizitás és visszahívás harmonikus közepén alapuló mérőszám.

Adataugmentáció és transzfertanulás

A nagy adatéhségű mélytanulási modellek számára különösen fontos az augmentáció: a tanítóképek véletlen forgatással, tükrözéssel, kivágással, színtranszformációkkal és más perturbációkkal mesterségesen sokasíthatók. Ez csökkenti a túltanulás (overfitting) kockázatát.

A transzfertanulás (transfer learning) egy másik bevett technika: egy nagy adatbázison (pl. ImageNet) előtanított modell súlyait kiindulópontként felhasználva kisebb specifikus adatbázison is hatékonyan finomhangolható (fine-tuning) a hálózat. Ez különösen hasznos, ha a célfeladatra csak korlátozott számú annotált adat áll rendelkezésre.

A Vision Transformer (ViT) megjelenése

A 2020-ban publikált Vision Transformer (Dosovitskiy et al., Google Brain) megmutatta, hogy a képet kis foltokra (patchekre) osztva és szekvenciaként feldolgozva a Transformer-architektúra — amelyet eredetileg természetesnyelv-feldolgozásra fejlesztettek — képfelismerési feladatokon is versenyképes eredményeket ér el. Elegendő adattal tanítva a ViT-modellek felülmúlják a CNN-alapú megoldásokat bizonyos feladatokon, bár kisebb adatbázisokon a CNN-ek jellemzően hatékonyabban tanulnak.

A ViT és a CNN-ek ötvözésére irányuló hibrid architektúrák (pl. CvT, LeViT) aktív kutatási terület. Az arXiv preprint szerveren rendszeresen jelennek meg ezzel kapcsolatos új eredmények: arxiv.org

Összefoglalás

A gépi képfelismerés az elmúlt évtizedben a kézzel tervezett jellemzőkivonástól az önállóan tanuló mélyhálózatokig jutott. A konvolúciós neurális hálózatok — és az újabb Transformer-alapú architektúrák — számos gyakorlati alkalmazásban emberi szintű vagy azt meghaladó teljesítményt érnek el. A terület fejlődése szorosan kapcsolódik a rendelkezésre álló számítási kapacitás és az annotált adatok mennyiségének növekedéséhez.


Objektumdetektálás módszerei → Vizuális AI Magyarországon →

A cikk nyilvánosan elérhető tudományos publikációkon alapul. A hivatkozott eredmények az eredeti közleményekben dokumentált körülmények között érvényesek. Az adott rendszerek teljesítménye adatbázistól, beállításoktól és alkalmazási kontextustól függően változhat.