Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Match Move Juhász Endre Muhi Kornél Urbán Szabolcs Számítógépes látás projekt."— Előadás másolata:

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

2 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.

3 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

4 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

5 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

6 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)

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

8

9

10

11

12 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)

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

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

15 3D jellemzőpontok Matlab-ban

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

17 Szegmentációs eredmények

18

19

20

21

22

23

24

25 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

26 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

27 Köszönjük a figyelmet!


Letölteni ppt "Match Move Juhász Endre Muhi Kornél Urbán Szabolcs Számítógépes látás projekt."

Hasonló előadás


Google Hirdetések