Sztereó képfeldolgozás mobilrobot platform tájékozódásához Önálló laboratórium 2007/2008. tavaszi félév



Hasonló dokumentumok
Grafikonok automatikus elemzése

3D számítógépes geometria és alakzatrekonstrukció

Bevezetés. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

Rendszámfelismerő rendszerek

Képfeldolgozás Szegmentálás Osztályozás Képfelismerés Térbeli rekonstrukció

Kamerakalibráció és pozícióbecslés érzékenységi analízissel, sík mintázatokból. Dabóczi Tamás (BME MIT), Fazekas Zoltán (MTA SZTAKI)

5. 3D rekonstrukció. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

A 3D-2D leképezés alatt melyek maradnak robusztus képjellemzők?

1. ábra Egy terület DTM-je (balra) és ugyanazon terület DSM-je (jobbra)

Tárgy. Forgóasztal. Lézer. Kamera 3D REKONSTRUKCIÓ LÉZERES LETAPOGATÁSSAL

Számítógépes hálózatok

Robotok inverz geometriája

3. Sztereó kamera. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

SZENZORFÚZIÓS ELJÁRÁSOK KIDOLGOZÁSA AUTONÓM JÁRMŰVEK PÁLYAKÖVETÉSÉRE ÉS IRÁNYÍTÁSÁRA

Fotogrammetriai munkaállomások szoftvermoduljainak tervezése. Dr. habil. Jancsó Tamás Óbudai Egyetem, Alba Regia Műszaki Kar

Pontfelhő létrehozás és használat Regard3D és CloudCompare nyílt forráskódú szoftverekkel. dr. Siki Zoltán

Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével. MAJF21 Eisenberger András május 22. Konzulens: Dr.

Láthatósági kérdések

Automatikus irányzás digitális képek. feldolgozásával TURÁK BENCE DR. ÉGETŐ CSABA

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

NGB_IN040_1 SZIMULÁCIÓS TECHNIKÁK dr. Pozna Claudio Radu, Horváth Ernő

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Gépi tanulás a gyakorlatban. Bevezetés

RIEL Elektronikai Kft v1.0

Mérési struktúrák

Nem roncsoló tesztelés diszkrét tomográfiával

Szárazföldi autonóm mobil robotok vezérlőrendszerének kialakítási lehetőségei. Kucsera Péter ZMNE Doktorandusz

Multimédiás adatbázisok

EEE Kutatólaboratórium MTA-SZTAKI Magyar Tudományos Akadémia

Számítógépes Grafika SZIE YMÉK

Könyvtári címkéző munkahely

Az intraorális lenyomatvételi eljárások matematikai, informatikai háttere. Passzív- és aktív háromszögelési módszer Időmérésen alapuló módszer

Számítógépes látás alapjai

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 3. MÉRÉSFELDOLGOZÁS

HÁROMDIMENZIÓS SZÁMÍTÓGÉPES LÁTÁS HAJDER LEVENTE

Transzformációk. Grafikus játékok fejlesztése Szécsi László t05-transform

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

Modern fizika laboratórium

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

Digitális képek feldolgozása Előfeldolgozás Radiometriai korrekció Geometriai korrekció Képjavítás Szűrők Sávok közötti műveletek Képosztályozás Utófe

DIGITÁLIS KÉPANALÍZIS KÉSZÍTETTE: KISS ALEXANDRA ELÉRHETŐSÉG:

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

A bűnügyi helyszínelés teljesen új megközelítésben

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

Gyakorlatok. VITMMA09 Okos város MSc mellékspecializáció

2. Omnidirekcionális kamera

TELE-OPERATOR UTS v.14 Field IPTV műszer. Adatlap

Loványi István vizsgakérdései kidolgozva (béta)

Feladatok. Tervek alapján látvány terv készítése. Irodai munka Test modellezés. Létező objektum számítógépes modelljének elkészítése

FANUC Robotics Roboguide

Papp Ferenc Barlangkutató Csoport. Barlangtérképezés. Fotómodellezés. Holl Balázs negyedik változat hatodik kiegészítés 4.6

Rubin SPIRIT TEST. Rubin firmware-ek és hardverek tesztelése esettanulmány V1.0. Készítette: Hajnali Krisztián Jóváhagyta: Varga József

Legnagyobb anyagterjedelem feltétele

1. Fejezet Hardver Installálás

Szegedi Tudományegyetem Informatikai Tanszékcsoport SZAKDOLGOZAT. Fertői Ferenc

Űrfelvételek térinformatikai rendszerbe integrálása

Nagy pontosságú 3D szkenner

SZENZORMODUL ILLESZTÉSE LEGO NXT PLATFORMHOZ. Készítette: Horváth András MSc Önálló laboratórium 2 Konzulens: Orosz György

3. Szűrés képtérben. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

Útjelzések, akadályok felismerése valós időben

3D számítógépes geometria és alakzatrekonstrukció

Transzformációk. Szécsi László

Iman 3.0 szoftverdokumentáció

Beltéri autonóm négyrotoros helikopter szabályozó rendszerének kifejlesztése és hardware-in-the-loop tesztelése

A/D és D/A konverterek vezérlése számítógéppel

Számítógépes Grafika mintafeladatok

Küls memóriakártyák. Dokumentum cikkszáma: Ez az útmutató a külső memóriakártyák számítógéppel történő használatát ismerteti

Szoftver újrafelhasználás

Roger UT-2. Kommunikációs interfész V3.0

Intelligens Autonom Kamera Modul (IAKM)

Számítógépes látás alapjai


A képernyő felbontásának módosítása

Digitális képfeldolgozó rendszer

Külső memóriakártyák. Felhasználói útmutató

Elveszett m²-ek? (Az akaratlanul elveszett információ)

Intelligens Rendszerek

Küls memóriakártyák. Dokumentum cikkszáma: Ez az útmutató a külső memóriakártyák használatát ismerteti január

Surveylab Ltd. Egy test, több lélek (ike300 GPS vevő)

Keresztmetszet másodrendű nyomatékainak meghatározása

Az ErdaGIS térinformatikai keretrendszer

Miről lesz szó? Videó tartalom elemzés (VCA) leegyszerűsített működése Kültéri védelem Közúthálózat megfigyelés Emberszámlálás

Ember és robot együttműködése a gyártásban Ipar 4.0

A MEGBÍZHATÓ MŰHELYESZKÖZ

BAGME11NNF Munkavédelmi mérnökasszisztens Galla Jánosné, 2011.

GYÜMÖLCSÖK GYŰJTÉSE ÉS VÁLOGATÁSA

Külső kártyaeszközök. Felhasználói útmutató


DIGITÁLIS TEREPMODELL A TÁJRENDEZÉSBEN

Smart Strategic Planner

KnowledgeTree dokumentumkezelő rendszer

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 0. TANTÁRGY ISMERTETŐ

Szenzorcsatolt robot: A szenzorcsatolás lépései:

29/2014. (III. 31.) VM rendelet az állami digitális távérzékelési adatbázisról

A tér lineáris leképezései síkra

Átírás:

Sztereó képfeldolgozás mobilrobot platform tájékozódásához Önálló laboratórium 007/008. tavaszi félév Józsa Csongor Konzulens: Dr. Vajda Ferenc 1/1

1. A probléma ismertetése Mobilis robotok ismeretlen környezetben történő navigációjához szükséges valamilyen eljárás a környezet feltérképezésére, azaz kell egy módszer, melynek segítségével modellt alkothatunk a robotot körülvevő objektumok geometriájáról, ami alapján a robot vezérléséről döntéseket hozhatunk. Ez a modellalkotás történhet a környezet letapogatásával, valamilyen aktív eszköz segítségével (pl. SONAR, LIDAR rendszerek stb.), illetve passzív eszközökkel, azon belül is egykamerás (pl. motion stereo, shape from shading, shape from texture), vagy többkamerás rendszerek segítségével. Jelen esetben a cél a sztereó gépi látás megvalósítási lehetőségeinek vizsgálata, illetve egy kétkamerás látórendszer fejlesztése. A probléma három jól elkülöníthető részre osztható fel, ezek a kamera kalibrációja, a két képen az összetertozó pixelpárok megkeresése, illetve egy adott pontnak a kamerától vett távolságának kiszámítása, a kamera geometriája, illetve a pontnak a két képsíkra vett vetületének ismeretében. A kamera kalibrálását Furmann Márton villamosmérnök hallgató végezte, ezért itt csak egy rövid, inkább elméleti jellegű leírás szerepel.. Felhasznált eszközök.1 A kamera fig. 1: Bumblebee sztereó kamera Sztereó képek készítésére a Point Grey Research Inc. Bumblebee [1] modelljét használtuk. Ez egy kétlencsés kamerarendszer, mellyel másodpercenként 30 színes, 8 bites, 640x480 pixel felbontású sztereó kép készíthető. A készülék IEEE 1394 csatlakozóval rendelkezik, a két szenzor egyetlen virtuális eszközként működik, a szinkronizálást a kamera vezérlő elektronikája automatikusan elvégzi, azaz a két kameráról garantáltan egy időben készült képet kapunk. A kamerával történő kommunikáció az IIDC 1394 szabványban foglaltak szerint történhet. Ez egy ipari szabvány, melyet a 1394 Trade Association adott ki 000 júniusában és az IEEE 1394 et használó digitális kamerák és PC k közti adatátvitel és vezérlés szabványos módját hivatott meghatározni. Többek között definiálja a használt /1

képformátumokat, a kamerák működési módjait, az adatátviteli paramétereket, illetve az ezekhez tartozó kontrollregiszterek egy halmazát.. Felhasznált szoftverkomponensek Az általunk készített látórendszer fejlesztése PC n történik, azonban az elkészült rendszernek maximális mértékben hordozhatónak kell lennie, hogy a későbbiekben beágyazott platformon, mikrokontrolleres környezetben is használni lehessen, ezért a hordozhatóság az egyik elsődleges szempont volt a felhasználható szoftverelemek kiválasztásánal. Ezt szem előtt tartva a fejlesztést linux operációs rendszeren végeztük. A gyártó egy elsődlegesen windows platformra írt keretrendszert mellékel a termékhez, melynek linuxos verziója csak korlátozott mértékben használható, így a feladatot nehezíti, hogy egy, a kamera kezelését megvalósító komponenst is el kellett készíteni, melynek során problémát jelentett, hogy a kameráról csupán minimális jellegű dokumentáció áll rendelkezésre. (Ennek oka egyrészt a gyártó saját keretrendszerének előtérbe helyezése lehet, másrészt, hogy a kamera már nincs a támogatott termékek között, a következő generációs Bumblebee megjelenése miatt.) libdc1394 IIDC 1394 video1394 libraw1394 fig. : Felhasznált szofterkomponensek A kamera kezeléséhez a libdc1394 függvénykönyvtárat [] használtuk. Ez a nyílt forráskódú könyvtár használható a legnépszerűbb operációs rendszereken, segítségével vezérelhetőek az IIDC szabványnak megfelelő digitális kamerák. Beállíthatóak a kívánt átviteli paraméterek, a használt képformátum, valamint lehetőséget nyújt a kamera regiszterszintű konfigurálására is. A libdc1394 az alacsonyszintű IEEE 1394 en történő átvitelt megvalósító libraw1394 linux kernelmodult használja, azonban amennyiben ki akarjuk használni a DMA átvitel előnyeit, a video1394 kernelmodulra is szükség van, mely magasabbszintű hozzáférést biztosít a firewire interfészekhez. A magasabb szintű képmanipulációs műveletek megkönnyítésére a képek kezeléséhez az Intel Open Source Computer Vision Library t (opencv, libcv) [3] használtuk. Ahogy a neve is mutatja, ez egy nyílt forráskódú, szabadon felhasználható függvénykönyvtár. Támogatja a legtöbb Windows verziót és UNIX jellegű operációs rendszert. Elsősorban gépi látással kapcsolatos és képfeldolgozási feladatokat ellátó rendszer fejlesztéséhez nyújt segítséget. Számunkra külön hasznos, hogy az alapvető szűrőkön és algoritmusokon túl a háromdimenziós rekonstrukcióhoz és a kamerakalibrációhoz is implementál néhány széles körben használt eljárást. 3/1

3. A kamera által használt képformátum Mint korábban említésre került, a két kamerát a PC n futó program egyetlen eszközként érzékeli. Ennek megfelelően a kamera egy speciális képformátumot használ az átvitel során. A 3. ábrán látható a kameráról érkező nyers adat RGB képformátumban elmentve. fig. 3: A kamerából kinyerhető nyers adat illusztrálása A kép valójában 3 képet tartalmaz egymással átlapolva (ezt RGB formátumban értelmezve az első kép a vörös, a második a zöld, a harmadik a kék csatornán fog megjelenni). Ha a kamerák képeit külön szeretnénk feldolgozni először is a három csatornát külön kell választanunk. Ennek eredményeként kapott képek láthatóak a 4., 5. és 6. ábrán. 4/1

fig. 4: Az első csatorna fig. 5: A második csatorna 5/1

fig. 6: A harmadik csatorna Jól látható, hogy az első kép a jobb, míg a második a bal oldali kamera képét tartalmazza. A harmadik kép valószínűsíthetően a két képből számolt valamiféle mélységi információt tartalmazhat, azonban ennek pontos formátumára nincs utalás a kamera technikai adatlapjában. Megfigyelve a két kamera képét, látható, hogy a pixelek intenzitása egy jellegzetes ismétlődő mintázat szerint változik a képen, ugyanis a képek nem szürkeskálás, hanem színes képek, azonban nem RGB formátumban, hanem Bayer elrendezésben, vagyis közvetlenül a CCD szenzorok elrendezésének megfelelő formátumban kapjuk az intenzitásértékeket. fig. 7: Bayer mintázat variációi A 7. ábrán a Bayer elrendezés 4 variációja látható, ezek közül a Bumblebee a jobb felsőt, azaz a BG elrendezést használja. Az opencv számos képkonverziós eljárást megvalósít, ezek között szerepel egy Bayer RGB interpolációs szűrő, melynek segítségével könnyebben kezelhető, hagyományos RGB 6/1

formára hozhatjuk a képeket. A konverzió eredményét a 8., 9. és 10. ábrán láthatjuk. fig. 8: A jobb oldali szenzor képe fig. 9: A bal oldali szenzor képe Láthatjuk tehát, hogy az első csatorna tartalmazza a jobb oldali, a második csatorna pedig a bal oldali szenzor által készített képet. A harmadik csatorna elsőre véletlen zajnak tűnhet, azonban a kép bizonyos területein korrelál a bal oldali kamera képével. Lehetséges, hogy valamilyen térbeli információt hordoz, azonban ennek formátumáról nem áll rendelkezésre információ. Ha ez valóban egy mélységi térkép, akkor sem lehet kielégítően finom felosztású, mivel a kép hisztogramját megvizsgálva 7/1

látható, hogy az csupán 16 diszkrét értéket tartalmaz (10. ábra). fig. 10: A harmadik csatorna hisztogramja A fent ismertetett folyamat megtalálása, melynek segítségével a két szenzor képe kinyerhető a kamerából, dokumentáció hiányában nem volt magától értetődő feladat, a helyzetet nehezítette az is, hogy a használt PC firewire interfész kártyáján lévő két port közül az egyiken hibás adat érkezik, ez azonban csak az algoritmus elkészülte után vált egyértelművé. Egy ilyen hiba elrontja a Bayer mintázatot, a képben csíkok jelennek meg (ez a nyers képen általában nem túl feltűnő, azonban a végső RGB formába konvertált kép nyilvánvalóan teljességgel használhatatlan lesz). Ez többször tévútra vezetett, mivel a hibát nem a hardverben, hanem a használt algoritmusban kerestem. A 11. ábrán látható egy hibás, átalakítás nélküli kép, melynek alsó harmadán jól láthatóak a fent említett zavaró csíkok. 8/1

fig. 11: Hibás kép, feldolgozás nélkül 4. A kamera kalibrációja Pinhole kamera modellt alkalmazva, a kamera által végzett, háromdimenziós térből a kétdimenziós síkba történő leképezés az ún. perspektív transzformációval modellezhető: Ix w i x f x 0 c x R 11 R1 R 13 T 1 I w i y = 0 f y c y R 1 R R 3 T y Iz w 0 0 1 R 31 R3 R 33 T 3 1 A homogén osztást elvégezve megkaphatjuk a térbeli pont képsíkra vetített megfelelőjének koordinátáit. A transzformáció a fent is látható módon két jól elkülöníthető részre bontható. A jobb oldalon álló mátrix függ a világkoordinátarendszer megválasztásától, illetve a gimbális közép aktuális pozíciójától és orientációjától, ennek elemei az ún. extrinsic paraméterek, míg a bal oldali ún. kamera mátrix csak és kizárólag magára a kamerára jellemző paramétereket tartalmaz (fókusztávok, képközépre való eltolásértékek). A legtöbb kamera rendelkezik valamilyen nemlineáris lencsetorzítással is. Ezt általában 9/1

valamilyen polinomos közelítéssel érdemes figyelembe venni. Az opencv kalibrációs függvényei az alábbi másodfokú közelítést használják: i x ' =i x 1 k 1 i x i y k i x i y p 1 i x i y p i x i y i x i y ' =i y 1 k 1 i x i y k i x i y p1 i x i y i y p i x i y Látható, hogy a torzításnak van egy radiális és egy tangenciális komponense, utóbbi egyébként a Bumblebee esetében elhanyagolható mértékű. Háromdimenziós információ kinyeréséhez szükséges a fent felsorolt paraméterek meghatározása valamilyen kalibrációs eljárás segítségével, egyrészt a nemlineáris torzítás kiküszöböléséhez, másrészt a kamerák geometriájának leírásához, mely elengedhetetlen a távolságértékek kiszámításához, illetve a pixelpárok megtalálásának általam választott, a későbbiekben ismertetésre kerülő módjához. 5. Összetartozó pixelek keresése Az összetartozó pixelek kereséséhez valamilyen mértéket kell találni, mellyel a pixelek egymástól való különbözőségét mérjük és melynek alapján megtalálhatóak az egymásra legjobban hasonlító pixelek a két képen, valamint érdemes valamilyen kényszert (vagy kényszereket) is bevezetni, amit alkalmazva a keresési halmaz leszűkíthető. A pixelek összehasonlítására az intenzitásvektorok különbségének normanégyzetét használjuk, a kényszert pedig epipoláris geometriai megfontolások adják, amit a 1. ábra szemléltet. fig. 1: Epipoláris geometria Ha adott egy P1 pont az egyik kamera képsíkján, és ismerjük a kamera F1 fókuszpontjának helyét, akkor meghatározható az ezeket összekötő egyenes. Ez az egyenes nem más, mint a P1 ponthoz 10/1

tartozó vetítési sugár, tehát az eredeti háromdimenziós térbeli pont (az ábrán P vel jelölve) biztosan illeszkedik erre az egyenesre. Ha ezt az egyenest levetítjük a másik kamera képsíkjára azaz vesszük a P1, F1 és F pontok által meghatározott, ún. epipoláris síkkal vett metszetét (ahol F a második kamera fókuszpontja), akkor megkapjuk a P1 ponthoz tartozó epipoláris egyenest (az ábrán zölddel jelölt e egyenes). Az epipoláris egyenes a P1 hez tartozó lehetséges P pontok leképezése a másik képsíkra, a P1 párját tehát elegendő ezen egyenes mentén keresni. Ezt kihasználva a keresés lépésszáma O n m ről O n m re redukálódik (n és m a kép szélessége, illetve magassága), valamint csökken a hibás találatok esélye is. A fent leírtak implementálása az opencv segítségével viszonylag egyszerű, hiszen beépített függvényeket tartalmaz mind a két kamera közti epipoláris leképezés adott pontpárokból történő becslésére, mind az adott ponthoz tartozó epipoláris egyenes számítására. 6. További feladatok, nyitott kérdések 6.1 Az algoritmus tesztelése A továbbiakban szükség lesz valamilyen eljárásra az algoritmus által megtalált pixelpárok helyességének ellenőrzésére. Erre használhatóak például a kamera által készített képek, vagy valamilyen számítógépes grafikával generált képpár is, előbbi előnye, hogy olyan problémákra is fényt deríthet, melyekre a generált kép nem (például kalibrációs pontatlanságból, kamera egyéb fizikai tulajdonságaiból eredő problémák), utóbbi viszont egzakt eredményeket szolgáltathat a módszer hatékonyságáról. 6. Hibák detektálása és kezelése, takarás problémája A párosítások között nyilvánvalóan előfordulnak majd hibásak (például az egyik kamera szemszögéből takart pontok esetén), ezeket valahogyan detektálni kell és a hibát kezelni, például interpolált távolságértéket rendelni hozzájuk. A hibák detektálása történhet például kétirányú párosítással, vagy a kiugró értékek, a mélységi térképben megjelenő tüskék figyelésével. 6.3 Előfeldolgozás A rendszer hatékonysága nagy mértékben függhet az algoritmus bemenetére adott képen végzett előfeldolgozási lépéseken. Az algoritmus futási idejét befolyásolja a kép mérete (elképzelhető valamilyen szegmentálás alkalmazása is), a kimeneti értékek helyességét pedig az alkalmazott 11/1

zajszűrés, élkiemelés stb. 6.4 Mélységi információ számítása A működőképes rendszerhez implementálni kell még a fenti módszer szerint meghatározott pixelpárokhoz tartozó eredeti pontok megtalálását végző komponenst. Ez különösebb elméleti nehézséget nem jelent, hiszen a két ponthoz tartozó vetítési sugár egyértelműen meghatározza azt. Képek forrása: fig 1. http://www.ptgrey.com/ Hivatkozások: [1] http://www.ptgrey.com/products/legacy.asp [] http://damien.douxchamps.net/ieee1394/libdc1394/ [3] http://www.intel.com/technology/computing/opencv/ 1/1