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.
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.
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.