match move

27
Match Move Juhász Endre Muhi Kornél Urbán Szabolcs Számítógépes látás projekt

Upload: royce

Post on 15-Jan-2016

26 views

Category:

Documents


0 download

DESCRIPTION

Számítógépes látás projekt. Match Move. Juhász Endre Muhi Kornél Urbán Szabolcs. Feladat. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Match Move

Match MoveJuhász Endre

Muhi Kornél

Urbán Szabolcs

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

Page 2: Match Move

Feladat Feladatunk egy mesterséges 3D objektum behelyezése egy

rövid videófelvételbe úgy, hogy az a kamera mozgásának megfelelően együtt mozogjon a felvétel színterével. A cél, hogy a tárgy geometriailag illeszkedjen a környezetébe, nem szükséges valóban élethű megjelenést készíteni.

Page 3: Match Move

Változások a projektben OpenCV 2.3 Matlab R2008a Az alkalmazás szeparálása 3 részre

Tracking Kamera mátrixok, 3D pontok kiszámítása Matlabban Szintetikus objektum megjelenítése, vegyítése OpenGL-ben

Próbálkozások: Bundle adjustment paraméterezése Előtér-szegmentációval történő takarás-kezelés

Page 4: Match Move

Algoritmus 1/3 Kamera kalibrációja (a kamera belső mátrixának meghatározása) Videó készítése a kalibrált kamerával Jellemzőpontok detektálása - most a Shi-Tomasi módszerrel történik, amelyet

a KLT algoritmussal követünk frame-ről framre. Minden frame-re:

a fundamentális mátrix meghatározása (Matlab-ban az előadáson vett módszerrel, illetve a Horn féle módszerrel)

a kamera projekciós mátrix meghatározása az esszenciális mátrixból bundle adjustment alkalmazása (jelen projektben csak egy framenkénti LM-

optimalizálás került be) háttér-előtér pontok szűrése: frame-en detektált jellemzőpontok 3D mélység értékeit

előállítva a jellemzőpontok klaszterezése előtér ill. háttér pontokra (mélység érték alapján)

a frame szegmentálása a [3] cikkben említett algoritmussal (az előző klaszterezés inputként történő felhasználásával) – mivel ehhez nem kaptunk implementációt, így a hasonló elven működő OpenCV-s GrabCut alg.-al

Page 5: Match Move

Algoritmus 2/3 Objektum példányosítása, és elhelyezése az 1. frame-en

(OpenGL-ben) Első nekifutásra az objektum egyenes állású, a talapzata

merőleges a képsíkra és egy fix Z mélységben van elhelyezve A videó minden frame-jére, amelyhez rendelkezésünkre áll a

kamera projekciós mátrix, hajtsuk végre a következőket: Objektum kirajzolása OpenGL-ben a kamera megfelelő állása

mellett Kalibrált kamera szimulálása OpenGL-ben: Az így kialakult kép kiolvasása:

Pixel értékek kiolvasása – eltárolása a pixelBuffer-ben

Page 6: Match Move

Algoritmus 3/3 Minden frame-re készítsük el a frame és az objektum képének

kompozitját - BlendedFrame A szegmentációs algoritmusból kapott eredmény alapján az

összevegyített kép pixeleit másoljuk, ha háttér pontról van szó, illetve az eredeti videóból másoljuk a pixelt ha előtért pontot vizsgálunk. Tehát minden OpenGL frame-re hajtsuk végre a következőt: A BlendedFrame-t másoljuk az eredmény képre A videó aktuális frame-jét a szegmentációs eredménnyel maszkolva

másoljuk az eredmény frame-re (ahol a maszk 1-es volt, ott vannak előtér pontok, amik takarást jelentenek)

Az így kapott ResultFrame kép kimentése Végül a kimentett ResultFrame képeket rakjuk össze egy folyamatos

mozgóképpé (AVI video)

Page 7: Match Move

3D jellemzőpontok előtér-háttér szeparációja

Page 8: Match Move

3D jellemzőpontok előtér-háttér szeparációja

Page 9: Match Move

3D jellemzőpontok előtér-háttér szeparációja

Page 10: Match Move

3D jellemzőpontok előtér-háttér szeparációja

Page 11: Match Move

3D jellemzőpontok előtér-háttér szeparációja

Page 12: Match Move

3D jellemzőpontok előtér-háttér szeparációja - konklúzió

A 3D jellemzőpontok pontosabb kiszámítása szükséges (esetleg nagyobb mértékű mozgás esetén pontosabban kiszámítható a háromszögelés, mint frame-ről frame-re lépve), ekkor azonban csak X frame-enként állna rendelkezésünkre szegmentálási információ

Ötlet: minden frame-re az ő és a 10-el rákövetkező közötti elmozdulás alapján számolni, pl: (1, 11) (2, 12) (3, 13) é.í.t. (viszont ekkor szükséges, hogy a 10 frammel későbbi képen is legyen párja a

jellemzőpontnak, egyébként nem működik) Szofisztikáltabb küszöbölés szükséges (ha tudnánk a 3D objektum pontos

helyzetét, ill. a térből nyert 3D pontok skálafaktorát) Nem biztos, hogy az efajta szimpla küszöbölés elég, lehet azt kellene figyelni, hogy

mely pontok azok amelyek viszonylag elől vannak, de mögöttük nincsenek más jellemző pontok (lásd később)

Page 13: Match Move

3D jellemzőpontok Matlab-ban (nagyjából felülnézet)

Page 14: Match Move

3D jellemzőpontok Matlab-ban (felülnézet)

Page 15: Match Move

3D jellemzőpontok Matlab-ban

Page 16: Match Move

3D jellemzőpontok Matlab-ban (felülnézet)

Page 17: Match Move

Szegmentációs eredmények

Page 18: Match Move

Szegmentációs eredmények

Page 19: Match Move

Szegmentációs eredmények

Page 20: Match Move

Szegmentációs eredmények

Page 21: Match Move

Szegmentációs eredmények

Page 22: Match Move

Szegmentációs eredmények

Page 23: Match Move

Szegmentációs eredmények

Page 24: Match Move

Szegmentációs eredmények

Page 25: Match Move

Következtetések Helyes szegmentációs maszkokkal az ötlet életképesnek

tűnik Ehhez azonban finomítani kell még az első lépésen (előtér

pontok kiszűrése). A GrabCut algoritmus egyébként iteratív módon dolgozik,

minél több iterációt engedünk meg neki, annál jobban finomítja az eredményt. Mivel ez az eljárás jelentősen lassítja az egész folyamatot (sokáig tart 1-1 frame szegmentálása), nagyobb teljesítményű számítógép sem ártana hozzá, illetve emiatt kénytelenek voltunk az iteráció számot minimálisra csökkenteni

Page 26: Match Move

Konklúzió a projektre Az idő rövidsége alatt sajnos csak kezdetleges eredményeket

tudtunk elérni Sok gondunk volt a megfelelő részek integrációjával. Ennek ellenére

megpróbáltuk a lehető legtöbbet kihozni a projektből, több vonalon elindulni, amennyiben egy megvalósítás nem bizonyult helyesnek

Hosszú távon úgy gondoljuk, hogy a projektet egységesen át kellene mozgatni Matlab-ba, ugyanis az OpenGL-es és OpenCV-s megoldás nehezen integrálható, és működésének helyessége is kérdéseket vet fel

Egyszerűbb lenne egy homogén rendszeren belül dolgozni Az alap ötletek helyt álltak a projekt megvalósítása szempontjából,

viszont a már említett implementációs nehézségek hátráltatták az igazán jó eredmények elérését

Page 27: Match Move

Köszönjük a figyelmet!