AI kezdőknek · Számítógépes látás · Lecke 11

Objektumdetektálás

A képosztályozás megmondja, mi látható egy képen, de nem árulja el, hol. Ebben a leckében bemutatjuk, hogyan tanulja meg egy neurális háló az objektumok pontos helyét is meghatározni egy képen.

Vissza a tananyaghoz


Bemeneti képJelöltterületekOsztályozás éshatároló doboz
Az objektumdetektálás egyszerre keresi meg és nevezi meg a képen található tárgyakat.

Az eddig megismert képosztályozó modellek egy képhez egyetlen kategóriát rendeltek, például eldöntötték, melyik számjegyet ábrázolja egy MNIST kép. A gyakorlatban azonban gyakran nem elég tudni, hogy egy kép tartalmaz valamilyen objektumot, azt is szeretnénk tudni, pontosan hol helyezkedik el. Erre a feladatra való az objektumdetektálás.

Egy naiv megközelítés szerint a képet sok kisebb csempére bontanánk, minden csempén lefuttatnánk egy képosztályozót, és azokat a csempéket tekintenénk találatnak, amelyeknél az aktiváció elég magas. Ez a módszer működik valamennyire, de nagyon pontatlan, mert a keresett objektum ritkán illeszkedik pontosan egy csempe határaihoz. A pontos elhelyezéshez regresszióra van szükség, amely közvetlenül az objektumot körülvevő téglalap, az úgynevezett bounding box koordinátáit jósolja meg. Ehhez viszont speciálisan felcímkézett adathalmazokra van szükség, amelyek nemcsak az osztályt, hanem a pontos koordinátákat is tartalmazzák. A két legismertebb ilyen adathalmaz a húsz osztályt tartalmazó PASCAL VOC, illetve a nyolcvan osztályos, bounding boxokat és szegmentációs maszkokat is tartalmazó COCO.


Naiv csempés keresés Regresszióval jósolt bounding box
A csempénként futtatott osztályozó pontatlan, a regresszió viszont pontosan az objektumra illeszti a téglalapot.

Hogyan mérjük a pontosságot

Az objektumdetektálásnál nemcsak azt kell mérni, hogy a modell eltalálta-e az osztályt, hanem azt is, mennyire pontos a becsült téglalap. Erre szolgál az Intersection over Union, röviden IoU mutató, amely a két terület metszetét osztja el az uniójukkal. Ha a két terület teljesen egybeesik, az IoU értéke 1, ha egyáltalán nem érintkeznek, akkor 0. A gyakorlatban jellemzően csak azokat a találatokat fogadjuk el, amelyeknél az IoU egy megadott küszöb, például 0,5 felett van.

Egy adott osztály felismerésének minőségét az átlagos pontosság, angolul Average Precision méri, amelyet a pontosság és a fedés közti összefüggést leíró görbe alatti területként számolunk ki. Ha ezt az összes osztályra átlagoljuk, megkapjuk az objektumdetektálás fő mérőszámát, a mean Average Precision értéket, röviden mAP-t, amely gyakran a különböző IoU küszöbökre is átlagolva jelenik meg.


IoU közel 0 alig van átfedés IoU kb. 0,5 tipikus elfogadási küszöb IoU közel 1 a két doboz szinte egybeesik
Az IoU a valódi és a becsült téglalap metszetét osztja el az uniójukkal.

Két fő megközelítés

Az objektumdetektáló algoritmusok nagyjából két nagy családba sorolhatók. A régiójavasló hálózatok, mint az R-CNN, a Fast R-CNN vagy a Faster R-CNN, először érdekes régiókat jelölnek ki a képen, majd ezeket egyenként osztályozzák. Ez a megközelítés pontos, de lassú, mert sokszor kell lefuttatni a klasszifikátort ugyanazon a képen. Ezzel szemben az egylépéses módszerek, mint a YOLO, az SSD vagy a RetinaNet, egyetlen áthaladással jósolják meg egyszerre az osztályokat és a hozzájuk tartozó bounding boxokat, ezért jóval gyorsabbak, valós idejű alkalmazásokra is alkalmasak.

Az R-CNN család fokozatosan fejlődött. Az eredeti R-CNN úgynevezett szelektív kereséssel generált régiókat, majd ezeket külön konvolúciós hálóval és SVM osztályozóval dolgozta fel, ami rendkívül lassú volt. A Fast R-CNN már a konvolúciós rétegek után jelöli ki a régiókat, a Faster R-CNN pedig magát a régiójavaslást is egy külön neurális hálóra bízza, jelentősen felgyorsítva a folyamatot. A YOLO ezzel szemben a képet egy rácsra osztja, és minden rácscellához egyszerre jósol osztályt, koordinátákat és egy megbízhatósági értéket, ez teszi lehetővé a valós idejű működést.


Régiójavasló hálók (R-CNN család)

  • Először régiókat jelölnek ki, aztán osztályoznak
  • Pontosabb eredmény, magasabb mAP
  • Lassabb, több másodperces feldolgozás is lehet
  • Akkor jó, ha a pontosság a fő szempont

Egylépéses módszerek (YOLO, SSD)

  • Egyetlen áthaladással jósolnak osztályt és dobozt
  • Valós idejű működésre alkalmasak
  • Kicsit pontatlanabbak lehetnek
  • Önvezető autók és élő videófolyamok választása

  1. R-CNNSzelektív keresés adja a régiókat, külön konvolúciós háló és SVM osztályoz. Rendkívül lassú.
  2. Fast R-CNNA régiókijelölés már a konvolúciós rétegek után történik, így kevesebb az ismételt számítás.
  3. Faster R-CNNMagát a régiójavaslást is neurális háló végzi, a folyamat jelentősen felgyorsul.
  4. YOLOA kép rácsra bomlik, minden cella egyszerre jósol osztályt, koordinátát és megbízhatóságot. Valós idejű.

YOLOgyors, egy lépésben detektálR-CNN családpontosabb, több lépésesSSDgyors, több méretskálán keres
Néhány elterjedt objektumdetektálási architektúra.

Hol találkozunk vele a gyakorlatban

Az objektumdetektálás ma már számos iparágban alapvető technológia. Az önvezető autók a YOLO típusú, gyors architektúrákkal ismerik fel a gyalogosokat, más járműveket és jelzőtáblákat, méghozzá a gépjármű sebessége miatt szinte valós időben. A gyáriparban a minőségellenőrző kamerák hasonló elven keresik meg a hibás alkatrészeket a gyártósoron, a kiskereskedelemben pedig a polcképek automatikus elemzésénél vagy a raktárkészlet felméréseknél alkalmazzák. A biztonságtechnikában a kamerarendszerek objektumdetektálással azonosítják a mozgó személyeket vagy tárgyakat, az orvosi képalkotásban pedig a következő leckében tárgyalt szegmentáláshoz vezető úton az első lépés gyakran szintén egy objektumdetektáló modell.

Fontos szem előtt tartani, hogy a modell kiválasztása mindig kompromisszum sebesség és pontosság között. Egy valós idejű alkalmazásnál, mint egy önvezető rendszer vagy egy élő videófolyamon futó biztonsági megoldás, az egylépéses módszerek, mint a YOLO, jellemzően jobb választás. Ha viszont a pontosság a legfontosabb szempont, és van idő több másodperces feldolgozásra, a régiójavasló hálózatok, mint a Faster R-CNN, gyakran pontosabb eredményt adnak.

Egy projekt tervezésénél érdemes már az elején tisztázni, milyen kompromisszumot vállal a szervezet. A mAP mutató önmagában ritkán elég döntési alap, hiszen egy magas pontosságú, de lassú modell hiába pontos, ha a rendelkezésre álló hardveren nem éri el a szükséges feldolgozási sebességet. Éppen ezért a kiválasztás során mindig a konkrét felhasználási környezetet, a rendelkezésre álló számítási kapacitást és az elfogadható válaszidőt kell alapul venni, nem csupán a benchmark táblázatokban közölt legjobb eredményt.


Gyakorlati kód

Az objektumdetektálás gyakorlati megvalósítását, konkrét példákkal és kóddal, a Microsoft eredeti jegyzetfüzete mutatja be. Gyakorlati kód a GitHubon.


← Előző lecke Következő lecke →

Workshop

AI Transformation Day

Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.

Érdekel a program →