• Nenhum resultado encontrado

2. Crowdsourcing alapú térképépítés 14

2.4. Neurális térképezés

2.4.3. Módszertan

Önmagukban már ismert eljárások integrációjával létrehoztam az új, ún. végig mély- tanuló (all-through deep learning – ATDN) architektúrát (2.10. ábra), melyet úgy alkot- tam meg, hogy a vSLAM algoritmusok mindkét legfontosabb feladatát mélytanulás-alapú megoldásokat alkalmazva valósítsa meg.

Bemeneti szekvencia

Kulcsképek Szekvencia

generálás Odometriabecsl?

háló

Kulcskép regisztráció

döntés

Térképgeneráló háló

Hibafüggvény Legközelebbi kulcskép kód megkeresése

Kód Helyzet

finomítása Relokalizáció

kimenet

Térképgenerálás/Relokalizáció Odometria/Relokalizáció

Bemenet rekonstrukciója

2.10. ábra. Az ATDN vSLAM rendszer architektúrája

Az egyik ilyen feladat a VO: a DL-alapú vizuális odometria megoldások folyamatosan javuló eredményeket prezentálnak a benchmark adatbázisokon – például KITTI (Karlsruhe Institute of Technology and Toyota Technological Institute) adathalmaz [115] – amely bizonyítja, hogy ezt az alrendszert lehetséges kiváltani egy neurális hálózattal. A másik

feladat a térképezési alrendszer. E feladat megoldásához a fent leírtak fényében egy VAE- alapú struktúrát használok. A rendszer implementációját a PyTorch [116] keretrendszerrel, Python nyelven készítettem.

A vizuális odometria feladatot megoldó neurális hálóként a CL-VO (Curriculum Lear- ning VO) [110] hálózatot használtam fel, melyhez egy transzfertanított neurális háló által előre becsült optical flow értékeket használtam fel. A teljes hálózat felépítését a 2.11. ábra szemlélteti. Első lépésben a hálózat kettő egymás utáni képből az optikai áramlást (optical flow – OF) becsli a GMA (Global Motion Aggregation) neurális háló alapú struktúrával [117]. Ezután a flow, valamint a két bemeneti kép felhasználásával egy konvolúciós enkóder létrehoz egy látens térben értelmezett reprezentációt, egy látens vektort.

GMA OF Enkóder LSTM LSTM LSTM LSTM

Elmozdulás MLP

Elfordulás MLP

Elmozdulás becslés

Elfordulás becslés Bemenet 1

Bemenet 2

2.11. ábra. Az alkalmazott neurális háló struktúrája

A leskálázó rész kimeneti aktivációit a rendszer négy lépésben hosszú rövidtávú me- mória blokkokkal (long short-term memory – LSTM) tárolja, elősegítve ezzel a tanítás konvergenciáját – és így a vizuális odometria eredményének koherenciáját. Az utolsó sza- kaszban a hálózat egy-egy multilayer perceptron fej (MLP head) alkalmazásával valósítja meg az elmozdulás, illetve az elfordulás becslését, vagyis az odometria feladat regressziós megoldását [118]. A CL-VO módszer eredeti implementációjában a szerzők a hálózatot a 2.3 egyenletben leírt hibával tanították, melynek lényege, hogy a hálózat a curricu- lum során egyre összetettebb mozgások során tapasztalható elmozdulást becsüljön – ez a komplexitás a tanítás során azα súlyozó faktorral állítható:

Ltotal =

N

X

t=1

αLrel+ (α−1)Lcom. (2.3)

Az egyes hibatagok –Lrel ésLcom– az alábbi (2.4) egyenletek szerint számíthatók ki:

L(ˆpji) =δ||ˆtjitji||2+ζ||ϕˆjiϕji||2,

Lrel =L(ˆptt−1), (2.4)

Lcom=

L(ˆpttω), hatω 0, egyébként,

ahol ˆpji az i és a j indexű képek készítésének pozíciói közötti becsült változást jelenti, ˆt, t, ˆϕ és ϕ rendre a becsült transzlációt, a referencia transzlációt, a becsült rotációt és a referencia rotációt, || · ||2 az L2 normát jelölik. Az aktuális pozíciót leíró p, t és ϕ vektorokat a 2.8. formulában definiálom. ωa kompozit hibatag visszatekintési ideje, vagyis a megtett lépések száma, amire a hibát számolja a háló10. δ ésζ értékei a transzláció és a rotáció relatív súlyát határozzák meg. A megoldásomban aδ = 1 ésζ = 100 értékeket használtam a KITTI adathalmazra javasolt beállítás alapján [110].

A rendszer tanításához közben a 2.10. ábrán látható Odometria/Relokalizáció útvá- lasztót Odometria módra állítottam11. Az odometriai alrendszert a curriculum tanítás során fokozatonként rendre 5, 5, 10, 10 epochon keresztül tanítottam. A 4 fokozat során a 2.3 egyenletben leírtα súlyozófaktor értékét rendre 1, 0,7, 0,7 és 0,3 értékre állítottam. A kompozíciós hiba (2.4. egyenletbenLcom) visszatekintési paraméterének a kísérletek során az ω = 4 érték bizonyult a legcélravezetőbbnek. A tanítást AdamW optimalizációs algo- ritmus [119] használatával és koszinuszos tanítási ráta csökkenéssel végeztem lr = 10−3 kezdeti és lr = 10−6 végső értékkel. A tanítást egy 12 GB grafikus memóriával rendel- kező Nvidia Titan X GPU-n végeztem – az alkalmazott szerverszámítógépben egy Intel i5 8600K 2,8GHz órajelű CPU található. A vizuális odometria felügyelt tanítása során a hiba az egyes fokozatokban a 2.12. ábra szerint alakult.

A térképezésért felelős alrendszerben alkalmazott VAE hálót a KITTI odometria adat- halmaz [115] 00-s szekvenciájában található kulcsképek rejtett rétegbeli tömör területek- ké elkódolására, vagyis a neurális térképreprezentáció létrehozására tanítottam be. A rendszer tanítása közben a 2.10. ábrán látható Odometria/Relokalizáció útválasztót Odo- metria módra, míg a Térképgenerálás/Relokalizáció útválasztót Térképgenerálás módra állítottam. Kulcsképeket a rendszer akkor regisztrált, amennyiben a VO alrendszer által predikált transzláció vagy rotáció az előző kulcskép készítésének pozíciójához képest meg- haladt egy előre beállított küszöbértéket. Az egyes kódok az enkóder implementációban két kimeneti értékkel rendelkeznek: a várható értékkel (µ) és a szórással (σ). A szórást elő- állító kimenet nem közvetlenül a szórás értékét adja vissza, hanem a variancia természetes alapú logaritmusát. Ezzel a szórás kiszámítása egyszerűen elvégezhető, hiszen a variancia a szórás négyzete, és hatvány logaritmusa esetén a kitevő kiemelhető a logaritmus elé mint szorzótényező.

σ=e0.logvar (2.5)

Aµésσparaméterekkel jellemzett, látens térben elkódolt és így feltérképezett kulcs- képhez tartozó valószínűségi változót az alábbi egyenletben leírtak szerint definiáltam:

10Bár az eredeti publikációban a szerzők a kompozit tagot csak akkor vették figyelembe, ha annak nagysága meghaladta a relatív hibát, azonban az általam alkalmazott megoldásban mindig figyelembe veszem.

11A Térképgenerálás/Relokalizáció útválasztó állása itt indifferens, hiszen a térképező alrendszert nem használja a tanítás ezen része.

(a)1. fokozat (b)2. fokozat

(c) 3. fokozat (d)4. fokozat

2.12. ábra. Az ATDN architektúra vizuális odometria alrendszer curriculum tanítása 4 fokozatban

code=µ+σϵ, (2.6)

ahol ϵ egy σ méretével megegyező méretű, N(0,1) normális eloszlásból mintavételezett értékekkel feltöltött tenzor,◦ pedig a Hadamard szorzatot jelenti.

A megoldási módszer tanítási konfigurációjában fontos szempontot jelentett, hogy a rejtett rétegben elkódolt vektorok különbsége a bemeneti képekhez tartozó kamerapozí- ciók különbségével legyen arányos. E kényszer érvényesítése érdekében a neurális hálózat tanítása során egy új, egyedi hibakomponenst, a beágyazási távolság hibát (embedding distance loss – EDL) alkalmaztam:

EDL=

||EiEi+1||22

||Ei+1Ei+2||22 − ||pipi+1||22

||pi+1pi+2||22

. (2.7)

A 2.7 egyenletbenEi az i. képhez a háló által elkódolt rejtett rétegbeli vektor, míg pi az i.kép rögzítésének pozíciója a referenciaadatokban:

pi =

"

ti ϕi

#

, ti=

Xi

Yi Zi

, ϕi =

αi

βi γi

. (2.8)

A 2.8 egyenletbenX,Y ésZ a tanító adathalmazban tárolt, skálainvariáns transzlá- ció,α,β ésγ pedig a rotáció. Az EDL nem a valódi távolságok, hanem a távolságarányok különbségét méri, ezáltal a VAE nincs rákényszerítve, hogy a valós távolságok szerint kó- dolja el a bejárt pozíciókat. Egy másik előnyös tulajdonsága a bejárt pozíciók ilyen módú elkódolásának, hogy ekkor csupán a VAE hálózat enkóder részének tanítása – és felhaszná- lása – szükséges. Ezzel az egyszerűsítéssel a dekóder blokk felskálázásából adódó maradó hiba kiküszöbölhető a rendszerből. A 2.7 egyenletben leírt hibatag használata elősegíti, hogy az enkóder tetszőleges nagyságú kódokat legyen képes előállítani, azonban limitáci- ót jelent, hogy – a definícióból adódóan – legalább 3 kép felhasználására van szükség a kiszámításához.

Az EDL komponens magában nem vezetett a térképező háló megfelelő konvergen- ciájához, mert a tanítás során az optimalizáció gyakran lokális minimumhelyekre talált.

Ezért a hibaszámítás során alkalmazott értéket kiegészítettem az enkóder részegység által generált kódok normális eloszlásra való törekvését serkentő taggal:

Lsigma =||σ||2−1 (2.9)

A 2.9 egyenlet a variációs modul által generált kód szórása 2-normájának 1-től való eltérését bünteti. A térképező részegység tanítására alkalmazott teljes hiba így:

L=Lsigma+EDL (2.10)

A VAE háló tanításához a struktúrát elláttam egy dekóder résszel is, ahol transzponált konvolúciós blokkok használatával a bemeneti képekkel megegyező felbontású kimenet állt elő a rejtett rétegben található kódok használatával. A felskálázó réteg paramétereinek optimalizációja – vagyis tanítása – során a Mean Squared Error (MSE) hibát használtam:

LMSE= 1 N

N

X

i=1

( ˆIiIi)2 (2.11)

A 2.11 képletben ˆI a dekóder kimenetén megjelenő kép, I pedig a referenciaképet – ebben az esetben az enkóder bemenetét – jelöli. A két kép pixelenként vett különbsége a fotometrikus hiba. N a tanítás során az egy batch-ben található képek száma.

A tanításhoz az Adam optimalizációs algoritmust [120] és koszinuszos tanulási rá- ta csökkentést alkalmaztam lr = 10−3 kezdeti és lr = 10−6 végső értékkel. A vizsgált szekvencián 10 epoch alatt és 8-as batchméret mellett már relokalizációhoz használható tanítási eredményeket kaptam. A variációs autoenkóder felügyelt tanítása során a hiba a 2.13. ábra szerint alakult. A tanítást a fentiekben írt – Nvidia Titan X GPU-val rendelkező – szerverszámítógépen futtattam.

2.13. ábra. A hibafüggvény értékének változása a térképező al- rendszer tanítása során

Adatbázis

Az autonóm járművek működését elősegítő technológiai fejlesztések behangolására – tanítására –, validálására és kiértékelésére számos nyilvánosan hozzáférhető adatbázis áll rendelkezésre. A szakirodalomban leggyakrabban megjelenő ilyen adathalmazok a koráb- ban már említett KITTI [115], az Oxford RobotCar Dataset [121], illetve az elmúlt években megjelent ApolloScape [122], a Waymo Dataset [36], illetve a KITTI adatbázis alkotóinak újabb munkája, a KITTI360 adatbázis [123]. A folyamatosan bővülő számban elérhető tanító adathalmazok közül azonban napjainkban még mindig a legnépszerűbb – és így az eredmények közvetlen összehasonlítására kiválóan alkalmazható – platform a 2012-ben megjelent KITTI.

Ebből kifolyólag a jelen fejezetben tárgyalt módszer tanítására, tesztelésére és az eredményeinek kiértékelésére is ez utóbbi adatbázist használtam fel.

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