• Nenhum resultado encontrado

Képek maszkolása szemantikus és mélységi információk alkalmazásával 55

No documento Közösségi adatgyűjtésen alapuló (páginas 65-78)

3. Edge-cloud adatredukció 51

3.3. Közösségi közreműködéssel gyűjtött képek előszűrése

3.3.1. Képek maszkolása szemantikus és mélységi információk alkalmazásával 55

(a) (b)

3.2. ábra. Grafikus adatigénylés megjelenítése a GUI-n. (a) a Ce- sium Ion beépített pontfelhői között elérhető Melbourne városáról készült pontfelhő, (b) egy minta .las fájl áb- rázolása Budapesten

megoldások paramétereinek behangolása lényegesen számítási teljesítmény-igényesebb fo- lyamatok, mint klasszikus, „kézzel készített” társaiké. Ugyanakkor széles körű – így az IoT eszközökben és autonóm járművekben is megjelenő – alkalmazásukat segíti a Moore által prognosztizált [131] exponenciális fejlődési ütem, mely a gépi tanuló algoritmusok működését effektíven támogató, párhuzamos architektúrájú feldolgozó egységek – GPU-k – technológiájának előrehaladására is helytállónak látszik az elmúlt évek során.

A szemantikus szegmentációs feladat megoldására számos, növekvő pontosságú meg- oldás áll rendelkezésre. Ígéretes eredményeket értek el az elmúlt évek során a módsze- rek összehasonlítását lehetővé tevő benchmark adatbázisokon – például CityScapes [132]

– a „Pyramid Pooling Model” architektúrát alkalmazó mélytanuló hálózatok, például a PSPNet [133], a DeepLabV3+ [134] vagy a DeseASPP [135] struktúrák.

Egy másik képfeldolgozási feladat megoldásán, objektumok detektálásán keresztül is megjelölhetők a nyers RGB képek objektumai. Ezt a feladatot napjainkban a YOLO (you only look once) neurális hálózatok alkalmazásával, valós időben is lehetséges megoldani.

Az architektúra első verziójának [136] kiemelkedő eredményeit követően az algoritmus to- vábbfejlesztésével megjelent a YOLO9000 [137], YOLOv3 [138], YOLOv4 [139], valamint további fejlesztések is. E megoldások mind javuló eredményességgel képesek az objektum- detektálási feladat megoldására. A YOLO hálózatok az egyes objektumokhoz befoglaló téglalapokat rendelnek, valamint megadják azt is, hogy milyen típusú objektum található abban a téglalapban.

Az objektumdetektálási és a szemantikus szegmentációs feladatok kihívásainak együt- tes megoldását célozzák a példányszegmentációs (instance segmentation) eljárások. E fel- adattípusokban a cél az objektumok szegmentálása mellett az azonos osztályba tartozó régiók elkülönítése, illetve azok egyedi azonosítóval való felcímkézése. Az első publikált példányszegmentációs megoldás a Mask-RCNN eljárás volt [140], mely a Fast-RCNN [141]

objektumdetektáló neurális háló kiegészítése egy maszkoló alhálózattal. A Mask-RCNN megoldást követően az instance segmentation feladat megoldására a számos eljárást pub- likáltak, melyek közül kiemelkedik a YOLO hálózaton alapuló, valós idejű példányszeg- mentációt megoldó YOLACT módszer [142].

A képeken látható információk mélységen alapuló osztályozását használja ki Maki et al. [143]. Az általuk javasolt módszerben az algoritmus figyelme kizárólag a közeli objek- tumokra terjed ki. A szerzők több lehetséges információforrást felhasználva következtettek az egyes pixelekhez rendelhető távolságra, ami alapján a figyelem célpontját meghatároz- ták, a kép további részeit pedig kimaszkolták. Egy frissebb megoldásban [144] a szerzők a mélységi információt alapul vevő maszkolásra építik az objektumkövető megoldásukat.

A fenti információk valamelyikének birtokában – vagyis a szemantikusan, illetve pél- dányonként felcímkézett képpontok, illetve objektumdetektálás esetén a befoglaló téglala- pokban található pixelek osztályának, illetve a mélységi adatok ismeretében – az alacsony érdekeltségű vagy további feldolgozás szempontjából nem fontos képrészletek kimaszko- lására, és így a felesleges adatmennyiség csökkentésére nyílik lehetőség. Az alábbiakban

a 2.3.4. fejezetben definiált, szintetizált térképező megoldás során használt adatredukciós technikát írom le.

Módszertan

A 2.3.4. fejezetben már röviden írtam a Carla szimulációs környezetből kinyert nyers RGB képek mellett szintetizált mélységi és szemantikus címkéket tartalmazó képek hasz- nálatáról. A 2.2. ábrán megjelenített feldolgozási lánc egyik lépésében a rekonstrukciós lépés bemeneti képeit a rendszer a mélységi és szemantikus információk alkalmazásával előszűri, ami két lényeges előnnyel is jár:

1. Ezzel az adatcsökkentéssel azt a szempontot lehet figyelembe venni, hogy a valódi rendszer használóinak – pontosabban az adatszolgáltató közösség tagjainak – háló- zati kapacitása véges.

2. Kevesebb komplex számítást szükséges elvégezni a képeken, hiszen a rekonstrukciós algoritmus bemenete egyszerűsödik. A maszkolt területek – mint például háttérben lévő elemek, égbolt – kimaradhatnak a feldolgozásból.

A Carla szimulátor [75] szemantikus szegmentációs kamerájának kimenete egy olyan szintetizált kép, amelyben a kép minden pontjához az ott megjelenített objektumtípusnak megfelelő érték tartozik. A 2.4. ábrán megjelenített szimulátor-időlépéshez tartozó sze- mantikus szegmentációs kép a 3.3a. ábrán látható. A megjelenített színek a CityScapes adatbázisban [132] alkalmazott kódolás szerint értelmezhetők, melyet az eredeti, szimulá- ciós környezet által szintetizált kép vörös csatornájában kódolt információ transzformáci- ójával hoztam létre.

Ahogy a 2.3.4. fejezetben írtam, a közösségi adatgyűjtési szimuláció során az adat- gyűjtő ágensekre egy mélységszenzort is elhelyeztem. Ez a Carla szimulátorban egy mély- ségkameraként valósítható meg, melyet az RGB, valamint a szemantikus szegmentációs kamerákkal megegyező pozícióban rögzítettem a haladó járműhöz. E kamera kimenete egy mélységinformációkat tartalmazó, 32 bites (egyszeres pontosságú), float típusú, szür- keárnyalatos kép. Mint minden valós távolságszenzor esetében, az égbolt távolságának meghatározása itt is nehézséget okoz. A szimulátorból szintetizált távolságképek esetén az égbolt maximális telítettségű szürke színnek, vagyis fehér értéknek felel meg. Mivel azonban a szenzorhoz közelebb eső környezeti elemek távolsága több nagyságrenddel ala- csonyabb ennél, ezért azok nagyon alacsony, szabad szemmel nem – vagy csak alig – megkülönböztethető sötétszürke árnyalatú pixelekkel jelöltek. Ennek javítása érdekében egy logaritmikus skálázásnak vetettem alá a szürkeárnyalatos képet, hogy az alacsonyabb szürkeségi szintek tartománya jobban cizellálttá váljon. Az így készült képet 8 biten kó- dolva 256 különböző, diszkrét mélységi szint megkülönböztetésére volt lehetőségem. A 3.3b. ábra ilyen átalakításokon átesett képet ábrázol.

A szemantikus és mélységképet generáló kamerák elérhetősége valós környezetben, közösségi adatgyűjtés esetén nem garatnálható. Napjainkban azonban a modern, mélyta-

nulást alkalmazó képfeldolgozó megoldások közül mindkettő feladat megoldására léteznek kompakt, akár az adatgyűjtő járművek szintjén – a hálózat szélén – futtatható, ezen in- formációkat előállító, monokuláris képeken dolgozó technikák.

(a) (b)

3.3. ábra. A Carla szimulátorból kinyert, (a) szemantikus szeg- mentált, valamint (b) logaritmikusan átskálázott, mély- ségi kép

A fent leírt módon szintetizált képek felhasználásával ezután egy több lépéses szűrést valósítottam meg a nyers RGB képen. A maszkolás során alkalmazott lépések a követke- zők:

1. a mélységi kép maximális értékkel rendelkező részeit kiválasztva létrehozok egy bi- náris maszkot, amellyel így a bementi RGB kép égbolti részét tudom kimaszkolni;

2. a szemantikus szegmentációs képből az utcabútorhoz tartozó objektumok kiválasz- tásával hozok létre egy következő bináris maszkot. Ezt a bináris képet negálom, mellyel azt írom elő, hogy az ezzel a bináris szűrővel végzett maszkolás eredménye- ként csak a kiválasztott objektumtípusok maradjanak meg. Ez a szűrési lépés akkor is hasznosnak bizonyul, amennyiben dinamikus objektumok – például más jármű- vek, gyalogosok – is szerepelnek az RGB kamera képén, hiszen az algoritmus ezeket a képrészeket is kimaszkolja.

Eredmények

A 2.4. ábrán megjelenített szimulátor-időlépéshez tartozó, nyers RGB, valamint sze- mantikus és mélységi információk alapján maszkolt kimenetet a 3.4. ábra mutatja.

A közösségi adatgyűjtési szimulációban az így megvalósított maszkolás eredményeként a járművek által továbbítandó adat átlagosan 163,75 MB-ról 22,69 MB-ra, tehát átlagosan 141,06 MB-tal csökkent, ami átlagosan 88,04%-os adatredukciót jelent. A 2.3.5. fejezet- ben leírt rekonstrukcióhoz felhasznált szimulációs futások esetén realizált adatmennyiség- csökkentést a 3.1. táblázat mutatja.

A 2.3.5. fejezetben bemutatott eredmények minőségét, csakúgy mint a rekonstrukció elkészítéséhez szükséges időt, az adatok itt leírt redukciója számottevően nem rontotta.

(a)Nyers RGB kép

(b)A szűrési algoritmus első lépése, kizárólag mélységi információval maszkolt kép

(c) A szűrési algoritmus második lépése, mélységi és szemantikus információval

maszkolt kép 3.4. ábra. A 2.4. ábrán megjelenített időlépéshez tartozó maszkolt

kép. Az algoritmus a maszkolást a nyers RGB képen végzi a mélységi adatok (3.3b. ábra), majd a szemanti- kus információ (3.3a. ábra) felhasználásával

3.3.2. Képek maszkolása dinamikus régiók eltávolításával

A képsorozatokon alapuló mozgásdetektálás és a mozgásalapú szegmentálás a számí- tógépes látás területének kettő alaposan kutatott területe. A feladat megoldása jelentősen bonyolultabbá válik, amennyiben a detekció alapját képző képeket rögzítő kamera maga is mozgásban van: ebben az esetben az egymást követő képkockák között a kép minden része mozog. Az egymást követő képeken érzékelhető kis lokális elmozdulásokat az optikai áramlás mezővel jellemezhetjük. Az optical flow kiszámítása tulajdonképp kis változásokra alkalmazható követési algoritmusként értelmezhető, amelyeknek egyes típusai a szokásos képjellemző-követési megoldásoknál sokkal sűrűbben, akár minden pixelre kiterjedően jel- lemzik a képeket.

A jelen fejezetben definiált szűrési módszer alapja az elmozduláskompenzációs elv (ego motion compensation). E szerint amennyiben priorként rendelkezésre áll a kamera által rögzített térrész struktúrája, vagyis az egyes pixelek által reprezentált objektumok távolsága, a kamera képalkotási paraméterei, valamint a jármű, azaz a kamera mozgása ismertek, akkor az elvárt optical flow mezőre adható egy becslés. Ez az egyes pixelek háromdimenziós térbe történő visszavetítésével, majd azok kamera mozgásával kompen- zált új pozíciójának a képsíkra vetítésével tehető meg. Ennek a predikciónak a kiszámítása mellett kizárólag a képek felhasználásával meghatározásra kerülhet az egymást követő kép-

Futás azonosítója

Nyers RGB adat

Maszkolt RGB adat

Adatredukció

(MB) (MB) (MB) (%)

1_1 176 23 153 88,442

1_2 178 36 142 83,178

1_3 178 35 143 83,568

1_4 179 23 156 88,614

2_1 167 18 149 90,270

2_2 164 34 130 82,828

2_3 166 26 140 86,458

2_4 164 30 134 84,536

3_1 151 16 135 90,419

3_2 150 16 134 90,361

3_3 151 18 133 89,349

3_4 160 11 149 93,567

4_1 163 22 141 88,108

4_2 157 14 143 91,813

4_3 159 24 135 86,885

4_4 157 17 140 90,230

Átlag 163,750 22,688 141,063 88,039

Szórás 9,822 7,752 7,585 3,212

3.1. táblázat. Adatredukció a közösségi adatgyűjtésen alapuló 3D térképkészítésben kockák közti optical flow. Természetesen a képek hibáinak, valamint a választott optical flow számító algoritmus jellegzetességeinek megfelelően ez is zajjal terhelt lesz. Ezt a két mezőt összehasonlítva, és a számított, valamint az előrejelzett optikai áramlásmezők közt valamilyen távolságmátrixot definiálva, majd ezt küszöbözve meghatározhatók a mozgó objektumokat reprezentáló pixelek [145].

A közösségi adatgyűjtés esetén a képek dinamikus részeinek szűrését úgy szükséges megvalósítani, hogy a hasznos információ elvesztésének valószínűsége minimális legyen, és ezáltal a későbbi 3D rekonstrukció eredményességét ne hátráltassa. A dinamikusan változó környezet képalapú 3D rekonstrukciójának problémája a mozgásalapú szegmentálási kuta- tások egyik legfontosabb mozgatórugója [146]. Ide tartoznak például a robusztus vSLAM alkalmazások, valamint az együttes mozgásszegmentálási és rekonstrukciós (joint moti- on segmentation and reconstruction) módszerek is. A robusztus vSLAM megoldásokban döntő szerep hárul a dinamikus képjellemzők hatékony és pontos kiszűrésére. Az opti- kai folyamon alapuló megoldások az elmozduláskompenzációs megközelítést alkalmazzák.

A különböző metódusokban a mélységi és elmozdulás információk ismeretében a szerzők meghatározzák az optical flow [147, 148], a térbeli sebességmező (scene flow) [149], vagy a következő képkocka [150] elvárt alakját, majd összehasonlítják azt a valódi, elmozdulás után számított, megfelelő sebességmezővel (térbeli vagy optikai folyam), illetve képpel.

A fent írt módszerekben közös, hogy a kamera által látott térrész 3D modell- jét egy SfM algoritmus [147] vagy közvetlen mélységi információt szolgáltató szenzor

[148, 149, 150] segítségével állítják elő. Az általam javasolt megoldás ezzel szemben egy sűrű mélységbecslésből indul ki, melyet egy konvolúciós neurális háló kimenete szolgál- tat. Ezáltal a módszer alkalmazhatóvá válik olyan járművekben is, amelyek csak egy monokuláris, a haladási irányba tekintő kamerával vannak felszerelve, mint amilyenek a 2.2. fejezetben leírt CrowdMapping architektúra adatgyűjtő ágensei is. Egy másik fon- tos előnyös tulajdonsága az itt definiált módszernek, hogy a sztereó rekonstrukció által gyakran nehézkesen értelmezhető – például nagyon távoli vagy homogén, gyengén textú- rázott – környezetek problémáját kiküszöböli, és a konvolúciós neurális háló által szolgál- tatott mélységbecsléseknek köszönhetően robusztusabban viselkedik. A megoldásban az adatrögzítő jármű elmozdulását közvetlenül a GNSS-IMU szenzor jeleinek felhasználásával határoztam meg.

A megoldás fejlesztéséhez a KITTI adatbázist [115], valamint a hozzá kapcsolódó mélységi és optikai folyammezőt elérhetővé tevő fejlesztőeszközöket [115, 151, 152] hasz- náltam fel.

Módszertan

A javasolt megoldás során 2 egymást követő képkockát (I1 ésI2), illetve azok készí- tése között az adatgyűjtő jármű relatív elmozdulását megadó GNSS-IMU szenzorjeleket használok fel. Az algoritmus a következő lépésekből áll:

1. I2-höz egy egyképes mélységbecslővel (single image depth estimator – SIDE) javaslok egy távolságmezőt;

2. a mélységi kép, valamint azI1 ésI2 képek közötti elmozdulás felhasználásával becs- lem az optikai áramlást;

3. kiszámítom az I1 ésI2 képek közötti valódi, sűrű optical flow mezőt;

4. a két optikai folyammező összehasonlításával készítek egy, azI2kép dinamikus régióit fedő, bináris maszkot.

A mélységbecslést egy neurális háló segítségével végzem, mely a népszerű U-net [153]

képszegmentáló hálóra épül. Ez alapjaiban egy teljesen konvolúciós hálózat, amely az ele- jén egy leskálázó, majd egy hasonló struktúrájú, konvolúciós, felskálázó részből áll. Az alkalmazott hálózat architektúráját a 3.5. ábra szemlélteti. Az alkalmazott architektúrá- ban újdonság a szakirodalomban megtalálható módszerekhez képest, hogy az eredeti U-net struktúrát egy második leskálázó résszel egészítettem ki. Az ábrán 1-essel jelölt régióban található rész azI2 képet, míg a 2-essel jelölt rész bemenetén a korábbi,I1 képet várja be- menetként. Kísérleteim alapján a képrögzítő jármű elmozdulása során a több képkockából kinyerhető többletinformáció a mélységi információ predikcióját segíti elő. A felskálázó rész (az ábrán 4-essel jelölt régió) mellett további előrecsatoló rétegek (3-assal jelölt rész) is segítik a képi konzisztencia fenntartását. Végül egy kimeneti réteget (5-össel jelölt régió)

is tartalmaz az architektúra. Annak érdekében, hogy az átskálázott képek információsűrű- sége megmaradjon, a rétegenként használt konvolúciós szűrők száma megegyezik az adott réteg skálázási faktorának reciprokával.

3.5. ábra. Az alkalmazott mélységbecslő struktúra

Minden alkalmazott réteg egy egyszerű konvolúciós – aktivációs – dropout – pooling struktúrát valósít meg. A konvolúciók 3x3-as kernelmérettel rendelkeznek – kivételt képez ez alól az első 2 leskálázó réteg, amelyekben rendre 7x7-es, illetve 5x5-ös konvolúciót végez a háló. Az alkalmazott aktivációs függvény ReLU [154] az összes rétegben, kivéve a kimenetet: ez utóbbi lineáris aktivációt tartalmaz. A rétegekben az aktivációt követi egy generalizációt segítő dropout, majd egy leskálázás (pooling).

Az implementáció Python környezetben készült a TensorFlow 2.0 [155] mélytanulási megoldásokat tartalmazó könyvtár használatával. A hálózatot a KITTI adatbázis mély- ségbecslő adathalmazán tanítottam be, mely kültéren készített nyers RGB és Lidarral előállított, majd illesztett mélységképeket tartalmaz. A hálózat méretének csökkentése és a reverzibilis skálázás megvalósíthatóságának érdekében az eredeti képeket 256x1152 pixeles felbontásúra vágtam le, majd átméreteztem egy 0,5 értékű skálázási faktorral. Az alkalmazott átméretezést követően a hálózat bemeneti képei 128x576 pixeles felbontásúak.

A tanításhoz 2 db, egyenként 8GB-os vizuális memóriával bíró, NVIDIA GeForce RTX 2070 GPU-t használtam.

A tanítást az MSE hiba alkalmazásával végeztem Adam optimalizációs algoritmus [120] felhasználásával. A struktúrát 16-os batchméret mellett 64 epochon keresztül taní- tottamlr= 10−3 kezdő tanulási rátával, amelyet leállítottam minden 6. olyan epoch után, amikor a loss csökkenése már nem volt szignifikáns.

A struktúra validációját a KITTI validációs részhalmazán végeztem normalizált MSE és MAE (mean absolute error) metrikák használatával. A tanítást követően a hálózat validációs hibáit a 3.2. táblázat szemlélteti.

Metrika Eredmény

nMSE 0,0514

MAE 0.1287

3.2. táblázat. A tanított U-net-alapú struktúra validációs hibái

A mélységbecslő hálózat kimenete csupán egy köztes lépcsőt jelentett a további fel- dolgozási lépések előtt, amik lefuttatásához ez a pontosság elegendőnek bizonyult. A háló eredményének finomítását és paramétereinek optimalizálását ezért nem folytattam. Pon- tosabb eredmények elérése érdekében lehetséges ezt a lépést egy, a KITTI mélységbecslő megoldások eredményjelzőjén előkelő helyen szereplő, monokuláris mélységbecslő neurális hálóval elvégezni – például BinsFormer [156], AdaBins [157]. Ekkor azonban fennáll a ve- szélye, hogy az alkalmazott metódus – rendkívül magas számítási kapacitás igénye miatt – egy közösségi közreműködést lehetővé tevő platform korlátja lehet.

Amennyiben a kamera belső paraméterei ismertek, a neurális hálózat által becsült mélységkép felhasználásával legenerálható a belátott térrész 3D pontfelhője. Ezzel ismertté válik a pontok térbeli helyzete a kép készítésekor aktuális kamera koordináta-rendszerben.

A képek készítése közötti, a GNSS-IMU szenzor jeléből számítható kameraelmozdulás inverzével mozgatva e térbeli pontokat, majd visszaprojektálva őket a kamera síkjára, megbecsülhető a térbeli struktúrához egy elvárt optikai folyam. Ez a statikus környeze- tet feltételező optical flow (f lowStat). Az egyes pixelekhez tartozó becslést azon vektor képponthoz való hozzárendelésével érem el, mely I2 képen a I1 képpontjainak új helyére mutat. A kamera I1 és I2 készítése között végzett elmozdulását az adatbázisban tárolt IMU pozíciókból nyertem ki. Mivel a KITTI adatbázisban tárolt képek rektifikált for- mában érhetők el, ezért az előre- és hátraprojektálás leírható a pinhole kameramodell alkalmazásával [151]. Ez a lépés egy egyszerűsítést tartalmaz, mely miatt az algoritmus eredménye valamekkora hibát mindenképpen tartalmaz: minden valós pont helyzetének egy-egy pixel középpontja felel megI1-ben.

A statikus optikai folyam mellett az I1 és I2 közötti valós optikai folyammezőt (f lowDyn) is kiszámítottam. E vektormező kiszámítását a MATLAB Farneback optical flow [158] számítására alkalmas beépített függvénye segítéségével végeztem. A Farneback módszer egy differenciális optical flow számítási technika, mely a sebességvektorokat min- den képpont környezetében egy másodfokú polinommal közelíti. A nagyobb elmozduláso- kat egy csökkenő felbontású képparamissal kezeli: az implementáció először kiszámolja az

alacsony felbontású kép pixeleinek elmozdulási sebességeit, majd ezt a felbontás növelése mellett finomítja az eredeti képkocka minden pixelére.

Az optikai folyammezők (f lowStat és f lowDyn) összevetésének megvalósíthatósága érdekében szükséges definiálni egy távolságmértéket. E metrika használatával meghatároz- ható és optimalizálható a dinamikus-statikus bináris maszk létrehozása során alkalmazott küszöbérték. Az eljárás kialakítása során az egyes pixelekhez tartozó optical flow sebes- ségvektorok hosszúság–irány reprezentációjával dolgoztam.

E két jelentősen különböző dimenzió értékeit skáláznom kellett a közös távolság- metrikában kezelhetőség érdekében. Ezt a műveletet egy-egy globális küszöbértékkel – hosszúság esetén ∆M agnrel,max, irány esetén ∆Orientmax – való osztásként definiáltam.

Hosszúság esetén:

M agnrel(i, j) =

M agndyn(i, j)−M agnstat(i, j) M agnstat(i, j)

,

M agnscaled(i, j) = ∆M agnrel(i, j)

M agnrel,max,

(3.1)

illetve irány esetén:

Orientabs(i, j) =|Orientstat(i, j)−Orientdyn(i, j)|,

Orient(i, j) =min{∆Orient(i, j)abs,2π−∆Orient(i, j)abs},

Orientscaled(i, j) = ∆Orient(i, j)

Orientmax .

(3.2)

A 3.1. egyenletbenM agnstat(i, j) az (i, j) pixelhez rendelt, f lowStat-beli, M agndyn(i, j) pedig ugyanezen pixelhez tartozóf lowDyn-beli vektor hossza. Hasonlóan a 3.2. egyenlet- benOrientstat(i, j) az (i, j) pixelhez rendelt, f lowStat-beli, Orientdyn(i, j) pedig ugyan- ezen pixelhez tartozó f lowDyn-beli vektor irányát jelöli.

A küszöbértékeket az algoritmus behangolandó paramétereiként kezeltem. Amennyi- ben bármelyik távolságérték meghaladta a megfelelő értéket, akkor a pixelhez tartozó két külön módon számított vektor különböző mozgásokat ír le, vagyis a vizsgált pixel dinami- kus képrészlethez tartozik. Az alkalmazott metrika a vektorok relatív különbségét írja le a Minkowsky-távolság használatával:

d(i, j, p) = (∆M agnpscaled(i, j) + ∆Orientpscaled(i, j))1/p, (3.3) A megvalósításban p = 2 értéket, vagyis az euklideszi távolságot használtam. A bináris maszkot (M) az alábbi egyenlet szerint konstruáltam:

M(i, j) =

1 had(i, j,2)≥1 0 egyébként

(3.4)

Az így megalkotott bináris maszkot ezután egy körlap (disc) alakú strukturáló elem- mel (SE) nyitottam, illetve zártam. A SE méretét megadó paramétert a küszöbözési paraméterekkel együtt a kísérleti szakaszban optimalizáltam.

A fenti lépésekből összeálló szegmentálást a 1. pszeudokód írja le. Az algoritmus bemenetként megjelenő thresholds objektum a két küszöbparamétert – ∆M agnmax és

Orientmax értékeket – tartalmazza.

Algoritmus 1:A dinamikus / statikus bináris maszk előállítása Input:

flowStat: Statikus optikai folyam, flowDyn: Dinamikus optikai folyam, thresholds: Küszöbparaméterek, SE: Strukturáló elem

Output: M

1: foriin f lowStat.rowsdo

2: for j inf lowStat.columnsdo

3:M agn_abs=abs(f lowDyn[i, j].magnf lowStat[i, j].magn)

4:M agn_rel= ∆M agn_abs/f lowStat[i, j].magn

5:M agn_rel_scaled= ∆M agn_rel/thresholds.magn

6:Orient_abs=abs(f lowDyn[i, j].orientf lowStat[i, j].orient)

7:Orient=min[∆Orient_abs,2π−∆Orient_abs]

8:Orient_scaled= ∆Orient/thresholds.orient

9: dist[i, j] =sqrt(∆M agn_rel_scaled2+ ∆Orient_scaled2)

10: end for

11: end for

12: M_raw=dist

13: M_raw[M_raw <1] = 0

14: M_raw[M_raw≥1] = 1

15: M_closed=binary_morphology(M_raw, SE,close”)

16: M =binary_morphology(M_closed, SE,open”)

A szegmentálás eredményének kiértékelése érdekében manuálisan felcímkézett refe- renciamaszkok – vagyis ground truth – előállítására volt szükség. Ezt egy erre a célra kialakított felületen végeztem el. Az így definiált GT maszkok felhasználásával a fentiek- ben definiált szegmentációs folyamatot ki tudtam értékelni, amihez a hibásan csoporto- sított pixelek arányát számoltam ki. A megoldás eredményességének javítása érdekében alkalmazott minőség metrika (Q) a fals pozitív ráta (FPR) és a fals negatív ráta (FNR) számtani közepe.

Q = FPR + FNR

2 ,

FNR = FN

FN + TP, (3.5)

FPR = FP

FP + TN,

ahol FP, FN, TP és TN rendre a helytelenül dinamikusnak (fals pozitív), a helytelenül sta- tikusnak (fals negatív), a helyesen dinamikusnak (valódi pozitív) és a helyesen statikusnak (valódi negatív) címkézett pixelek száma.

A különböző feldolgozási lépések maszkolásra gyakorolt hatásának kiküszöbölése ér- dekében az eredeti KITTI adatbázisban tárolt mélységi képek és optical flow mezők fel- használásával is elvégeztem az itt leírt szegmentálást. Ezzel a módosítással az algoritmus teljesítményének elvi határait tudtam tesztelni. Mivel a GT optikai folyammezők csak limitált számú képpárhoz állnak rendelkezésre, a tanító és validációs adatok összekeve- redésének kiküszöbölése miatt végül egy 41 képpárból álló tesztadathalmazt állítottam össze. Ezek főleg városi környezetben készült képsorozatokból valók.

A referenciaadatok ilyen jellegű felhasználásával a dinamikus részek maszkolására használt algoritmust 4 különböző konfigurációban tudtam tesztelni:

1. GT mélység és GT optical flow;

2. GT mélység és számított optical flow;

3. számított mélység és GT optical flow;

4. számított mélység és számított optical flow.

A képek készítése során a rektifikált rendszer optikai tengelye és a haladási irány párhuzamosak. Emiatt az egymást követő képek széleinél egy vékony sávban nincs sem becsült mélységi sem pedig optical flow érték. Emiatt a képekről alul és felül egy 5 pixel, jobb és baloldalt pedig egy 20 pixel szélességű sávot levágtam.

A legjobb eredmények elkészítésének érdekében tehát a 3.3. egyenletben írt,

M agnscaled és ∆Orientscaled különbségek skálázási küszöbértékeinek – rendre

M agnrel,max, illetve ∆Orientmax – valamint a maszk utófeldolgozásánál használatos körlap SE sugarának megválasztásával volt szükséges a Q metrikát mint hibát minimali- zálnom. Ehhez egy empirikus módszert alkalmaztam, ami során az SE sugár paraméter rögzített állapota mellett – adott értékek között változtatva a másik két paramétert – kiértékeltem az algoritmus eredményességének minőségét. Egy tipikus, optimalizáláshoz használt Q diagramot szemléltet a 3.6. ábra. Iteratív módon, a lokális minimumkörnyezet megkeresésével határoztam meg végül az optimális paramétereket.

3.6. ábra. A Q diagram formája az optimalizálás során Eredmények

A fent leírt módon a hiba globális majd lokális karakterisztikájának megfigyelésével empirikus módon be tudtam hangolni a strukturáló elem méretét. A GT mélység haszná- lata esetén a teljes felbontású képeket tudtam használni, ekkor a körlap alakú SE sugarát 8 pixelesre választva kaptam a legjobb eredményt. A mélységbecslő neurális háló által szolgáltatott mélységi képek felbontása csupán fele a referenciaképekének, ami arány az optimális SE körlapjának sugara esetében is egy kettővel való osztást indokol.

Az egyes bemeneti konfigurációkhoz optimális paraméterkombinációkat és a haszná- latukkal elért Qértékeket a 3.3. táblázat mutatja be.

Mélységkép Ground Truth Neurális háló Ground Truth Neurális háló Optical flow Ground Truth Ground Truth Farneback Farneback

SE sugara 8 pixel 4 pixel 8 pixel 4 pixel

∆Magnrel,max [0,8; 2,3] [0,9; 1,5] [0,35; 0,75] [0,5; 0,8]

∆Orientmax [0,24; 0,31] [0,63; 0,675] [1,02; 1,15] [1,01; 1,05]

Q 7,4% 12,1% 24,5% 27,3%

3.3. táblázat. Optimális paraméter-tartományok, valamint a 3.3.2. formulában defi- niált Q metrika értékei a különböző bemeneti konfigurációk esetén. A

∆Orientmax értékek mértékegysége radián

Ahogy a 3.3. táblázat mutatja, a mindkét bemenet esetén referenciaadatokat használó konfiguráció alkalmazása esetén átlagosan 7%-os hiba volt elérhető, amely csak kevesebb, mint 5 százalékponttal emelkedett a becsült mélységképek használatával megvalósított konfigurációs esetben. Az itt definiált szűrőalkalmazás esetében ez praktikusan azt jelenti,

No documento Közösségi adatgyűjtésen alapuló (páginas 65-78)