Sztereó kamerarendszerre alapozott gyalogos felismerés Kornis János*, Szabó Zsolt** *PhD, okleveles villamosmérnök, Budapesti Műszaki és Gazdaságtudományi Egyetem Fizika Tanszék, kornis@phy.bme.hu **fizikus hallgató, Budapesti Műszaki és Gazdaságtudományi Egyetem Fizika Tanszék, zs.szabo@phy.bme.hu 1. BEVEZETŐ Absztrakt: A mindennapi közlekedést segítő intelligens rendszerek manapság kezdenek megjelenni személygépkocsik tartozékaként. Ilyen rendszerek például a látható, vagy infra képjelre épülő képfeldolgozó rendszerek, vagy a nagypontosságú, kis hatótávolságú radarokra épülő berendezések. Feladatuk lehet vakfoltban lévő tárgyak detektálása, gyalogos detektálása, parkolási segítség, ráfutás megakadályozása, tolatás segítése. A fenti asszisztens megoldások rohamos fejlődésére az elkövetkezendő években mindenképpen számíthatunk. Bár az alkalmazott megoldások valószínűleg hibrid rendszerek lesznek, az egyes területek független kutatása, matematikai, gyártástechnológiai vizsgálata feltétlenül indokolt. Jelen publikációnkban a látható fényben történő gyalogosdetektálás témakörében elért eredményeinket szeretnénk összefoglalni. Célkitűzésünk olyan látható hullámhossztartományban rögzített videojelre alapozott képfeldolgozási eljárások fejlesztése, amelyek személygépkocsiba telepített olcsó hardveren futva képesek időben figyelmeztetni előre a vezetőt különböző veszélyes helyzetekre. Munkánk során felsősorban gyalogosok detektálását szerettük volna megoldani. A videojel feldolgozásának első lépéseként állóképeket rögzítettünk és ezeken fejlesztettük gyalogos felismerő programunkat. Végső célunk azonban olyan rendszer kifejlesztése, amely 10-15 képkocka/másodperces képfelvétel esetén is képes gyalogosok felismerésére. A detektálás lényege, hogy egy ablakot mozgatunk át a képen és ezen ablakban próbáljuk detektálni a gyalogosnak megfelelő alakot. Mivel a képfeldolgozás igen számításigényes, ezért igen fontos a kép mérete. Jelen állapotban fekete-fehér képeken dolgozunk maximálisan 640x400 képponton. A futó ablak mérete 172x60 képpont. A következőkben röviden ismertetjük az általunk alkalmazott feldolgozási lépéseket. 1. ábra: Gyalogos detektálása. A gyalogost az egész képen kerestük. A program kijelöli piros színben azt a futó ablakot, ahol gyalogost detektált. Jellemzően a faágak, oszlopok hamis detektáláshoz vezetnek. 2. A DISPARITY MAP A feldolgozás tehát a képfelvétellel kezdődik. Mivel a képfeldolgozás időigényes és a gépjárműbe telepíthető hardvernek is olcsónak kell lenni, szükséges, hogy minél hamarabb kijelölhessük azokat a területeket, ahol biztosan nem kell gyalogost keresni. Főleg ezen okból a képfelvétel CMOS kamerapárral történik. A detektált sztereo képből azután viszonylag nagy területet kijelölhetünk, mint olyan terület, ahol a keresést nem kell lefolytatni. A sztereo képpár abban is segíthet, hogy a távolsági képet (disparity map) felhasználva, hatékonyabban (kisebb hibával) kereshessünk gyalogosokat a felvételen. Az 1-3. ábrákon erre láthatunk példát. 2. ábra: A távolsági térkép (disparity map) A kép különböző színekkel jelöli a különböző távolságban lévő képterületeket. Ebben az esetben a távolsági térkép felbontása igen durvára volt beállítva, csak három távolságtartományt különböztettünk meg.
3. ábra: Az előző távolságkép alapján a hibás detektálásokat egyszerűen ki lehetett szűrni. (A hibás detektálásnál olyan objektumokat detektáltunk gyalogosként amelyek több méter mélységben különböztek egymástól.) 2. ADAPTÍV ABLAKMÉRET A képeken a távolabbi gyalogosok természetesen kisebbeknek látszanak. Ezért, ha az ablakméret, amelyben a gyalogost keressük állandó, a különböző távolságban lévő gyalogosokat különböző hatékonysággal lehet detektálni. E mellett a hibás detektálás aránya is megnőhet. (4. ábra) Ha a kamera pozíciója a járműben rögzített, akkor igen egyszerűen akár egy kamera esetén is tudunk olyan területeket definiálni, ahol nem lehet gyalogos, illetve a kereső ablakméretet is tudjuk változtatni. (5., 6 ábra) 5. ábra: Fixen elhelyezett kamera esetén a detektálási terület szűkíthető. (A kép alsó és felső harmadában nem dolgozzuk fel a képet.) A perspektíva segítségével a kereső ablak mérete változtatható. 6. ábra: Példa a keresési terület csökkentésére és a kereső ablak méretének adaptív változtatására. 4. ábra: Nem megfelelő ablakméret esetén a gyalogos detektálás hatástalan. Az ablakméret közeli gyalogosok esetére van megválasztva. 3. GYALOGOS PÁLYÁJÁNAK KÖVETÉSE Mint említettük, távolabbi célunk folyamatos képfelvétel esetén a gyalogosok detektálását megvalósítani. Ebben az esetben lehetőség van a gyalogos pályájának követésére (tracking). A pályakövetés biztosítja azt a lehetőséget, hogy jósolni tudjuk a gyalogos pozícióját, vagyis figyelmeztető jelzést generálhassunk a gépkocsivezető számára. A pályakövetés akkor is hasznos, ha a gyalogos néhány pillanatig takarásban van. Ekkor bizonyos ideig a program folytathatja a gyalogos útját, vagyis feltételezheti, hogy a gyalogos takarásban mozog. Ez igen hasznos lehet váratlan helyzetek elkerülésére. A 7-10. ábrákon ezekre a helyzetekre láthatunk példát.
7. ábra: A folyamatos képfelvétel lehetővé teszi a gyalogos mozgásának követését. 4. GYALOGOS DETEKTÁLÁS A FUTÓ ABLAKBAN A futó ablak mérete 170x60 képpont általában. Ezt az ablakot csúsztatjuk végig a teljes képen és minden esetben megnézzük, hogy találunk-e gyalogost. Sajnos ez azt jelenti, hogy egy kis kép (320x240 képpont) esetén is több, mint háromszázezer vizsgálatot kell megtenni. Ezért a feldolgozás egy adott ablak esetén két részből áll. Az első részben az ablak által kijelölt képrészből képjellemzőket vonunk ki (feature extraction), majd a második lépésben a képjellemzők alapján eldöntjük, hogy gyalogos képe van-e az ablak alatt. (Classification) A képjellemzők kivonása az ún. Haar együtthatókra alapozva történik. Az ablakon látható kép különböző pozícióiba Haar ablakokat helyezünk el. Ilyen pozíció lehet például a kar, láb várható helye. Ezeken a Haar ablakokon összegezzük a képpontok értékét (fehér terület pozitív előjel, fekete terület negatív előjel). Az összeg számértéke lehet egy képjellemző érték. 8. ábra: A tracking a gyalogos mozgásának irányán túl sebességét is mérheti. 11. ábra: Egy futó ablak (170x60 képpont) és három pozícióban definiált Haar ablak (kéz, láb, háttér). A példa tehát ebben az esetben három képjellemzőt szolgáltat. A jobb oldalon néhány általános Haar ablak látható. 9. ábra: Takarás esetén adott ideig feltételezzük, hogy a gyalogos tovább mozog a meghatározott sebességgel. 10. ábra: Az adott idő (kb. 1-1,5 másodperc) letelte után folytathatjuk a követést, vagy megszűntnek tekinthetjük a jelet. 12. ábra: Néhány olyan Haar jellegű ablak amelyeket gyakorlatban használunk. Ezek nagyobb detektálási pontosságot tesznek lehetővé, mint az általános Haar ablakok.
Ezeket a jellemzőket gyorsan kell számolnunk. Erre szolgál az ún. integrális kép. Tehát a detektált képet nem az eddig látott formájában használjuk, hanem rögtön előállítjuk az integrális képet, amelyen minden képpont az előtte lévő képpontok intenzitás összegéve lesz egyenlő. (13. ábra) 14.b. ábra: Gyors, de gyenge osztályozóval a feladat nem végezhető el. P( x, y) = x' x, y' y i( x', y') 13. ábra: Az integrális kép. A D területen tehát a képpontok összege: D : P 1+P 4- P 2-P 3 Az integrális képpel a képjellemzők gyorsan számolható. Sajnos ezek azonban igen gyengék annak megállapításában, hogy az ablakon gyalogos látható-e. Az ilyen esetekre igen jól használható osztályozó módszer az ún. Adaboost eljárás. Lényege, hogy sok gyors, de gyenge osztályozó módszert felhasználva megbízható osztályozóhoz (classifier) jutunk. Működését a 14. ábrán szemléltetjük. 14.c. ábra: Három osztályozó kombinálásával a feladat elvégezhető. Hogy a detektálás hatékonyságát tovább növelhessük és a sebességet ne csökkentsük jelentősen, több osztályozást végzünk el ugyanarra az ablakra más-más képjellemzőket használva. Az osztályozók ezen kaszkád kapcsolásában a legbiztosabb kizáró (nincs gyalogos) osztályozást tesszük előre, hogy a többi osztályozót kevesebbszer kelljen használni.( 15. ábra) 15. ábra: Az osztályozók kaszkád kapcsolásában a legbiztosabb kizáró osztályozót vesszük legelőre. 14.a. ábra: A feladat a két szimbólum csoportosítása a síklapon. Csak olyan osztályozót használhatunk, amely függőlegesen, vagy vízszintesen osztja ketté a területet. 4. AZ OSZTÁLYOZÓ TANÍTÁSA Az Adaboost osztályozó fontos része a tanítás. Ekkor pozitív és negatív mintákat felhasználva állítjuk be az osztályozás paramétereit. A tanításhoz több száz gyalogost és más képet tartalmazó felvételt kell elkészíteni. Néhány példa a 16. ábrán látható.
16. ábra: Az osztályozók tanítására használható mintaképek. Felső sor: nemzetközi adatbázisból származó képek. Középső sor: nemzetközi adatbázisból származó képek, amelyek belső térben készültek. Hatékony osztályozáshoz nem használhatók. Alsó kép: Gyalogos oldalnézetben. Ilyen képeket is fontos rögzíteni a jüó detektálás érdekében. 5. KONKLÚZIÓ A fentiekben látható fényben történő gyalogosdetektálás témakörében végzett kutatásainkat foglaltuk össze. A program jelen állapotában állóképeken képes gyalogos detektálást végezni. Jó minőségű nappali felvételek esetén 640x400 képpont méretű képekre sebességre még nem optimalizált programunk kevesebb, mint egy másodperc alatt végzi el a gyalogos-felismerést. A felismerés pontossága nagyobb, mint 85%. A továbbiakban szeretnénk más osztályozó eljárásokat is kipróbálni (neurális hálózat, Support Vector Machine), valamint felhasználni gyalogos pozíció követő módszereinket.