Digitális videó retusálás
Feladatkiírás Videók retusálása, rekonstrukciója egy klasszikus feladat, melyet például a filmes szakmában gyakran használnak. E projekt keretében egy új számítógépes videó restauráló algoritmussal ismerkedünk meg (video inpainting under constrained camera motion), amely képes egy videóról objektumokat illetve különböző sérüléseket automatikusan eltüntetni.
2
Digitális videó retusálás
Tartalmi összefoglaló •
A téma megnevezése:
Digitális videó retusálás.
•
A megadott feladat megfogalmazása:
Olyan algoritmus kifejlesztése, amely képes egy videóról objektumokat illetve különböző sérüléseket automatikusan eltüntetni.
•
A megoldási mód:
A Kedar A. Patwardhan, Guillermo Sapiro és Marcelo Bertalmio által publikált videó retusálási eljárás korlátozott kameramozgás mellett.
•
Alkalmazott eszközök, módszerek:
Matlab 7 (revision 14).
•
Elért eredmények:
A feltételeknek megfelelő videó képkockáinak és azok szegmentálásának, valamint a hiányzó területek beadása után a program előállítja a kijavított videót és elmenti azt.
•
Kulcsszavak:
Videó retusálás (video inpainting), kép retusálás (image inpainting), objektumok eltávolítása (object removal), háttér kiegészítés (background completion), block matching, optical flow.
3
Digitális videó retusálás
Tartalomjegyzék Feladatkiírás .......................................................................................................................................................... 2 Tartalmi összefoglaló ............................................................................................................................................ 3 Tartalomjegyzék.................................................................................................................................................... 4
BEVEZETÉS .............................................................................................................. 6 1. AZ ALGORITMUS.................................................................................................. 8 1.1. Speciális feltételek .......................................................................................................................................... 8 1.2. Áttekintés ........................................................................................................................................................ 9 1.3. Előfeldolgozás ................................................................................................................................................10 1.3.1. Szegmentálás...........................................................................................................................................10 1.3.2. Kameramozgás detektálása, az optical flow és a mozaikok kiszámítása.................................................11 1.4. A mozgó objektum retusálása ......................................................................................................................12 1.4.1. A legnagyobb prioritású pont meghatározása..........................................................................................13 1.4.2. A kijelölt képkockák kiválasztása ...........................................................................................................13 1.4.3. Keresés a kijelölt képkockákban .............................................................................................................14 1.4.4. Pixelek másolása .....................................................................................................................................14 1.4.5. Megállási feltétel .....................................................................................................................................16 1.5. A háttér retusálása ........................................................................................................................................16 1.5.1. Másolás a szomszédos képkockákból......................................................................................................16 1.5.2. Textúra-szintézis .....................................................................................................................................16
2. AZ IMPLEMENTÁCIÓ - VINP ...............................................................................18 2.1. Futtatás ..........................................................................................................................................................18 2.2. Megnyitás, a retusálandó terület kijelölése .................................................................................................18 2.3. Előfeldolgozás ................................................................................................................................................20 2.4. A mozgó objektum retusálása ......................................................................................................................21 2.5. A háttér retusálása ........................................................................................................................................23 2.6. Az eredmény elmentése.................................................................................................................................23
3. EREDMÉNYEK .....................................................................................................25 3.1. Kamerával készített videók ..........................................................................................................................25 3.1.1. Sétáló ember ............................................................................................................................................25 3.1.2. Autó.........................................................................................................................................................26 3.2. Szintetikus videók..........................................................................................................................................27 3.2.1. Pillangó....................................................................................................................................................28
4
Digitális videó retusálás 3.2.2. Szarvas ....................................................................................................................................................29 3.2.3. Ejtőernyős................................................................................................................................................30
4. ÖSSZEHASONLÍTÁS MÁS ALGORITMUSOKKAL.............................................32 4.1. Tér-idő videó kiegészítés...............................................................................................................................32 4.2. Videó retusálás objektumkövetéssel és a darabok összekombinálásával .................................................33 4.3. Mozgó objektum eltávolítása és háttérkitöltés videóban ...........................................................................34
5. ÖSSZEGZÉS.........................................................................................................36 Irodalomjegyzék...................................................................................................................................................38 Nyilatkozat............................................................................................................................................................40 Köszönetnyilvánítás .............................................................................................................................................41
5
Digitális videó retusálás
BEVEZETÉS Mielőtt rátérnénk a videó retusálás feladatának tárgyalására, érdemes megismerkedni a kép retusálás témájával. Ebben az esetben a cél egy adott kép egy eltüntetésre szánt objektumához tartozó pontok kicserélése vagy a kép sérült pixeleinek kijavítása úgy, hogy az eredményül kapott képről ne lehessen megállapítani, hogy manipulációt hajtottak végre rajta (0.1 ábra). A kicserélendő képpontok a felhasználó által vagy bármely más módon lehetnek adottak.
0.1 ábra
A videó retusálás ettől annyiban különbözik, hogy itt a bemenet egy videó (képkockák, azaz frame-ek sorozata), valamint a kicserélendő (kijavítandó) pixelek halmaza, amely akár képkockánként más és más lehet (0.2 ábra).
6
Digitális videó retusálás
0.2 ábra
Triviális megoldásként alkalmazhatnánk a már meglévő kép retusálási eljárásokat külön-külön mindegyik képkockára, majd a kapott frame-eket egymás után fűzve megkaphatnánk a végeredményt. Azonban sokkal hatékonyabb és konzisztensebb lenne egy adott frame retusálásakor felhasználni a szomszédos képkockákban található redundáns információt is. Az alábbiakban egy ilyen algoritmus leírása és a gyakorlatban mutatott viselkedésének bemutatása következik.
7
Digitális videó retusálás
1. Az algoritmus A választott módszer Patwardhan, Sapiro és Bertalmio videó retusálási eljárása korlátozott kameramozgás mellett [9]. Mint azt majd látni fogjuk, ez egy olyan keretrendszer, amelynek egyes komponensei – az egyes részfeladatok megoldására használt algoritmusok – szabadon helyettesíthetők más, az adott részfeladatot megoldó eljárásokkal. Ezáltal a későbbiekben kifejlesztésre kerülő algoritmusokat felhasználva javítani tudjuk videó retusáló programunk teljesítményét.
1.1. Speciális feltételek Habár rendkívül praktikus lenne egy olyan algoritmus létezése, amely bármilyen videót képes elfogadható minőségben automatikusan retusálni, sajnos, ilyen megoldás manapság még nem létezik. Megfelelő a priori tudás felhasználásával – például mesterséges intelligencia alkalmazásával, az objektumok korlátozott formájának, színének és/vagy mozgásának ismeretében – rendkívül jó eredmények érhetőek el, azonban általános esetben a jelenlegi eljárások mind kudarcot vallanak. Az itt tárgyalt algoritmus a következő feltételeket egyidejűleg kielégítő videókat képes retusálni: • a jelenet lényegében egy mozdulatlan háttérből és egy mozgó előtérből áll • az előtér objektumai periodikus mozgást végeznek (az eljárás magából a videóból szerzi a retusálandó terület kiegészítéséhez szükséges információt, valószínűségi modell felhasználása nélkül, így jelen kell lennie a sérült területnek megfelelő ép résznek valamely másik frame-ben) • a kamera mozgása megközelítőleg párhuzamos a vetítés síkjával (ezáltal a háttér objektumainak mérete nem változik jelentős mértékben, lehetővé téve a paraméter nélküli textúra-szintézist) • a mozgó objektumok mérete nem változik számottevően (az ok ugyanaz, mint az előző esetben, viszont ez a követelmény egy többszintes megfeleltetési algoritmus (multi-scale matching) alkalmazásával elhagyható)
8
Digitális videó retusálás
1.2. Áttekintés Az eljárás a paraméter nélküli textúra-szintézisre épül [3], amelyet a prioritás és konfidencia mértékének bevezetésével továbbfejlesztettek [2], majd a mozdulatlan (statikus) kamerával felvett videó retusálás esetére kiterjesztettek [7]. Ez utóbbi megoldás publikálói dolgozták ki a jelen algoritmust is, amely már az olyan mozgóképeket is képes helyreállítani, amelyek készítése során a kamera mozgott. A végrehajtott lépésekről ad áttekintést az alábbi 1.1 ábra.
Előfeldolgozás
Videó + retusálandó terület
A képkockák szegmentálása -> mozdulatlan háttér + mozgó előtér Kameramozgás detektálása, az optical flow és a háttér- és előtér mozaikok kiszámítása
A mozgó objektum retusálása Ismétlés minden képkockára
A legnagyobb prioritású pont meghatározása A kijelölt képkockák kiválasztása az előtér mozaik felhasználásával A legjobban egyező részlet keresése a kijelölt képkockákban A mozgó objektumhoz tartozó pixelek másolása a legjobban egyező részletből a retusálandó képkockába
A háttér retusálása Másolás a szomszédos képkockákból A fennmaradó retusálandó terület kitöltése prioritás alapú textúra-szintézissel
Retusált videó
1.1 ábra: Az algoritmus áttekintése
9
Digitális videó retusálás
1.3. Előfeldolgozás Mielőtt a tényleges retusáláshoz hozzákezdenénk, szükséges néhány előzetes teendő elvégzése.
1.3.1. Szegmentálás Mivel a háttérhez, illetve az előtérhez tartozó pixelek külön fázisban lesznek retusálva, első lépésként minden képkockában meg kell határozni azokat a képpontokat, amelyek a mozgó objektumhoz tartoznak. Az ezt leíró adatszerkezetet mozgási maszknak (motion confidence mask) nevezzük, amely gyakorlatilag egy bináris kép. Kiszámításához a szerzők a block matching technikáját ajánlják, amely két adott kép alapján megadja, hogy az első kép (amelyben az elmozdulásokat kívánjuk kiszámítani) egyes blokkjai (pl. 10x10-es részei) a második kép (a referenciakép) mely blokkjainak felelnek meg. Az eljárás a blokkokhoz tartozó eltolási vektorokat adja eredményként. Ha ebből kivonjuk a vektorok mediánját, akkor a vektorok hossza szerinti küszöböléssel megkapjuk azokat a blokkokat, amelyeknél jelentős az eltolás, tehát amelyek a mozgó objektumhoz tartoznak. A mozgási maszk pontosan a kapott blokkokhoz rendel true értéket, a többi helyen false-t tartalmaz. Az 1.2 ábra bal oldalán látható a Pillangó videó első képkockája, amelyhez a jobb oldali mozgási maszk tartozik.
1.2 ábra: A mozgási maszknál a fehér szín jelöli az előteret és a szürke a hátteret. A retusálandó pixelek mindkét képen feketék.
10
Digitális videó retusálás
1.3.2. Kameramozgás detektálása, az optical flow és a mozaikok kiszámítása Egy adott képkockánál a kamera mozgási vektorát az imént meghatározott vektor-medián adja. Szükségünk lesz a frame-ekhez tartozó optical flow-ra is, amely a kép minden pixeléhez hozzárendeli a valódi háromdimenziós világbeli pont mozgási vektorának a képsíkra eső vetületének egy közelítését. Egyszerűbben megfogalmazva, az optical flow a képpontok elmozdulását adja meg két szomszédos frame között. Miután meghatároztuk a képkocka optical flow-ját, kivonjuk belőle a kamera mozgási vektorát, így az eredmény a mozgó objektum pixeleinek elmozdulását fogja reprezentálni, függetlenül a kameramozgástól. Az optical flow-t egy kétcsatornás képben tároljuk, amely a pixelek x- és y-irányú elmozdulását tartalmazza. Ezután következik a mozaikok összeállítása, amely a következőt jelenti: a kameramozgás ismeretében a képkockákat összeillesztjük, a fedésben levő képpontokat az átlagukkal helyettesítve, így eredményül egy panorámaképet kapunk a felvett jelenetről. Ezt a műveletet a mozgási maszk felhasználásával elvégezzük a háttérre és az előtérre (1.3 ábra). Az optical flow esetében is hasonlóan járunk el: a képpontok helyett itt nyilván vektorok vannak, azonban ezeket is ugyanúgy tudjuk kezelni.
1.3 ábra: Előtér és háttér mozaikok
A mozaikok használatával lényegesen hatékonyabbá tehető a mintakeresés, mivel elegendő a mozaik egy adott pixelét tartalmazó képkockákat megvizsgálni, ezáltal lecsökkentve – különösen hosszabb videóknál – a futási időt.
11
Digitális videó retusálás
1.4. A mozgó objektum retusálása Amikor az előfeldolgozás véget ért, rátérünk a mozgó objektum retusálására. A frame-eket külön-külön, a retusálandó terület legkorábbi megjelenésétől kezdve és sorban haladva dolgozzuk fel. Ezáltal általában nagyobb prioritást kapnak azok a képkockák, amelyek retusálásához több információ áll rendelkezésre. A retusáláshoz az Efros és Leung által publikált és a Criminisi és mások által továbbfejlesztett paraméter nélküli textúra-szintézis módszerét használjuk, ezért érdemes először ezt röviden áttekinteni. Adott egy I kép és annak egy retusálandó része, Ω . Efros és Leung [3] eljárása a következő: jelölje δΩ az Ω határát. Tekintsük minden P ∈ δΩ -ra a P középpontú ψ P négyzetet. Hasonlítsuk össze ezt a mintát az összes lehetséges mintával, a hasonlóság mértéke valamilyen négyzetes különbségek összege (sum of squared differences, SSD) metrika. Válasszunk a legkisebb eltérésű minták halmazából egyet véletlenszerűen, legyen ez ψ Q , és másoljuk a középpontját, Q -t, P -be. Ezzel P -t retusáltuk és rátérünk a következő iterációra. Criminisi és mások [2] észrevették, hogy a δΩ -beli pontok kiválasztásának sorrendje döntő lehet, ezért minden δΩ -beli P -hez prioritást rendeltek: Pr( P ) = C ( P ) ⋅ D( P ) . 1.4 képlet: A P pont prioritása
C ( P ) a megbízhatósági tényező (confidence term), amely kezdetben a P -vel
szomszédos I − Ω -beli pixelek száma, D( P ) pedig az adat tényező (data term), mely a δΩ és a P -be befutó él által meghatározott szög meredekségével arányos. Az eljárás során mindig a legmagasabb prioritású képpontot választjuk, így a már jobbára ismert környezetű, a
δΩ -val meredek szögben találkozó élek kerülnek elsőként retusálásra. Ezáltal számos olyan esetben is jó eredményt kapunk, amikor az eredeti algoritmussal nem (1.5 és 1.6 ábra).
12
Digitális videó retusálás 1.5 ábra: Helytelen kitöltési sorrend esetén nem a várt eredményt kapjuk
1.6 ábra: Alkalmazva a pontokhoz rendelt prioritásokat, megfelelő eredményhez jutunk
1.4.1. A legnagyobb prioritású pont meghatározása A fentiekben vázolt paraméter nélküli textúra-szintézisnek megfelelően először meg kell keresnünk a legnagyobb prioritású képpontot az aktuális képkockán. Tehát meghatározzuk azt a P pontot, amelyre Pr( P ) = C( P ) ⋅ D( P ) maximális. Jelöljük a P középpontú kis négyzetet ψ P -vel. A tényezőket a következőképpen definiáljuk:
C( P ) =
∑Q∈ψ
P ∩( M c −Ω
)
C( Q )
|ψ P |
( P ∈ δΩ ) ,
1.7 képlet: A P pont megbízhatósági tényezője
⊥
D( P ) =
| ( ∇M c )P ⋅ n P |
α
( P ∈ δΩ ) .
1.8 képlet: A P pont adat tényezője
⊥
|ψ P | jelöli ψ P területét, ( ∇M c )P a mozgási maszk gradiensének transzponáltja a P pontban, n P a δΩ normálisa P -ben, α pedig egy normalizációs tényező (általában 255). Kezdetben az ismert pixelek megbízhatósági tényezője 1, az ismeretleneké pedig 0.
1.4.2. A kijelölt képkockák kiválasztása
13
Digitális videó retusálás A már ismert kameramozgások segítségével meg tudjuk határozni P helyét, Pm -et, illetve
ψ P megfelelőjét, ψ Pm -et az előtér mozaikban. Keressük meg az előtér mozaik azon területét, amely a legjobban hasonlít ψ Pm -re, legyen ez ψ Pcand (több ilyen nagyon hasonló részletet is vizsgálhatunk). Az összehasonlításhoz egy öt dimenziós vektort használunk, amelynek első három komponense rendre a vörös, zöld és kék csatornák különbségét tartalmazza, utolsó két eleme pedig az optical flow-k x- és y-irányú komponenseinek eltérését adja. Ez a metrika a két mintához a vektor magnitúdójának négyzetét rendeli. Az optical flow figyelembevételével konzisztensebbé tehetjük a mozgást a retusált videón – gondoljunk csak egy sétáló emberre, akinek az egyik frame-en éppen fel van emelve az egyik lába. Ha csak a képi információ áll a rendelkezésünkre, nem tudjuk megállapítani, hogy merre fogja mozdítani. Ha a valóságban például előre lendül a lába a következő frameen, de mi valamiért egy olyan képkockából egészítjük ki azt, amelyen hátrafelé mozgatja, ez azonnal fel fog tűnni a megfigyelőnek, és ezért nem lesz jó a retusálás. A kamera mozgásvektorainak és a mozgási maszknak a felhasználásával most kiválasztjuk azokat a frame-eket, amelyekben a mozaikbeli ψ Pcand -nak megfelelő helyen előtér-pixelek vannak. Ezekben a frame-ekben fogjuk keresni azt a legjobban illeszkedő mintát, amellyel kitöltjük az aktuális képkocka P körüli hiányzó pixeleit.
1.4.3. Keresés a kijelölt képkockákban Az előbbiekben ismertetett, ötdimenziós vektort használó metrikát alkalmazva megkeressük a kijelölt képkockákban azt a Q középpontú ψ Q négyzetet, amely a legjobban hasonlít ψ P -re.
1.4.4. Pixelek másolása Ezzel elérkeztünk a tulajdonképpeni retusálási lépéshez.
ψ Q azon pontjait, amelyek az előtérhez tartoznak, átmásoljuk ψ P megfelelő, még üres képpontjaiba. Ha maradnak ψ P -ben kitöltetlen pixelek, akkor azok a háttérhez tartoznak, így azokat majd csak a háttér retusálásának fázisában fogjuk kiegészíteni, ezért a megbízhatósági tényezőjüket 0-ra állítjuk, kizárva őket ezzel a további előtér retusálásból.
14
Digitális videó retusálás Hátravan még az adatszerkezetek aktualizálása. ψ P mozgási maszkja legyen ψ Q M c je, a retusált R pixelek megbízhatósági tényezője pedig:
C ( R) =
∑
Q∈ψ P ∩ ( M c / Ω )
C (Q )
|ψ P |
.
1.9 képlet: A retusált R pixelek megbízhatósági tényezője
Ezek felhasználásával az előtér és az optical flow mozaikot is frissíteni tudjuk. Az eddigiek illusztrálására tekintsük meg az 1.10 ábrát.
ψQ
ψP ψ Pcand
ψ Pm ψQ
ψP
a.
b.
c.
d.
15
Digitális videó retusálás 1.10 ábra: (a) A legnagyobb prioritású P pixel meghatározása. (b) A P-hez tartozó Pm pozíció kiszámítása az előtér mozaikban, majd a Pm környezetéhez legjobban hasonlító Pcand hely keresése. (c) A Pcand -nak megfelelő frame-ekben a P középpontú négyzethez legjobban hasonlító Q középpontú négyzet megkeresése. (d) A P körüli ismeretlen pixelek helyettesítése Q környezetének előtérhez tartozó pontjaival.
1.4.5. Megállási feltétel Az 1.4.1-1.4.4. pontokban leírtakat addig ismételjük, míg végül minden pixel vagy ki lesz töltve, vagy 0 prioritású lesz. Ekkor rátérünk a következő képkockára, és elölről kezdjük a mozgó objektum retusálásának lépését. Eredményül egy olyan videót kapunk, amelyben az előtér már retusálva van. A következő fázisban befejezzük munkánkat a háttér kitöltésével.
1.5. A háttér retusálása
1.5.1. Másolás a szomszédos képkockákból Mivel feltételeink szerint a háttér mindvégig állandó marad, a még ismeretlen háttérpixelek értékeit könnyen kinyerhetjük valamely másik frame megfelelő, ismert képpontjából, melynek koordinátáit a kameramozgás ismeretében kiszámíthatjuk. Ha több ilyen képpont is rendelkezésre áll, az időben legközelebbit választjuk.
1.5.2. Textúra-szintézis Az iménti megoldás nem működik abban az esetben, ha nincs megfelelő pixel, ahonnan az információt lemásolhatnánk, például mert csak kevés frame-en van jelen az a bizonyos részlet, és azokon is az Ω része az. Ekkor magán a háttér mozaikon is van egy ismeretlen terület, amelyet a már említett paraméter nélküli textúra-szintézissel tudunk kitölteni, ugyanannak az ötdimenziós vektoron alapuló hasonlósági metrikának a felhasználásával, mint az eddigiekben. Végül – ismét a
16
Digitális videó retusálás kamera mozgásának figyelembe vételével – a mozaikban keletkezett új képpontokat átmásoljuk a megfelelő képkockákba, amivel befejeztük a videó retusálását.
17
Digitális videó retusálás
2. Az implementáció - vinp A vázolt algoritmus megvalósítása Matlab 7.0-ban történt, a program neve: vinp (a Video
INPainting kifejezésből). Telepítéséhez mindössze a cd-n található, a forráskódot tartalmazó könyvtárat és annak alkönyvtárait kell a Matlab keresési útvonalához a Set Path paranccsal hozzáadni.
2.1. Futtatás A vinp_gui parancs kiadására megjelenik a grafikus felhasználói felület, amellyel a továbbiakban lépésről lépésre haladva retusálhatjuk videónkat.
2.2. Megnyitás, a retusálandó terület kijelölése A program feltételezi, hogy az előteret és a hátteret elkülönítő szegmentálást már elvégeztük, egy másik program felhasználásával vagy akár kézi szegmentálással, és az eredményt két könyvtárba mentettük el: az egyik a frame-eket tartalmazza, a másik pedig azok szegmentálását, a maszkokat. A képek bármilyen – a Matlab által ismert – formátumúak lehetnek (pl. .bmp, .gif, .jpg, .tif), csatornánként 8 bitesnek és azonos méretűeknek kell lenniük. A képkockákat tartalmazó fájloknak tetszés szerinti nevet adhatunk (például 01.bmp, 02.bmp, stb.), a program név szerinti sorrendben olvassa be őket, tehát a könyvtár első fájlja lesz az első frame, a második fájl a második frame és így tovább. Minden maszk fájl nevének és kiterjesztésének rendre meg kell egyeznie a hozzátartozó frame fájl nevével és kiterjesztésével. A maszkoknak csak az első csatornája kerül felhasználásra, a 0 szín jelenti a hátteret, a 255 az előteret, minden más szín retusálandó területként van értelmezve (nem kötelező előre kijelölni a kitöltendő területet, a vinpben is meg lehet azt határozni, lásd a következő alfejezetet). Döntő fontosságú a mozgó objektum pixeleinek pontos kiválasztása – különben a retusálás folyamán esetenként azokba a pontokba is a háttér képpontjai másolódnának, amelyek valójában az előtérhez tartoznak, és viszont. Ez kezdetben nem okozna lényeges problémát, azonban az ezt követő mintaillesztési lépésekben az újonnan kitöltött hibás pixelek
18
Digitális videó retusálás miatt már egyre valószínűbb lenne, hogy az algoritmus nem a megfelelő helyen találná meg az előtér mozaikban a legjobban hasonlító négyzetet, ψ Pcand -ot. Ezáltal teljesen rossz eredményt kapnánk. Sajnos még nem létezik olyan algoritmus, amely tetszőleges videót – akár az objektumok mozgásából nyert információ felhasználásával is – maximális pontossággal tudna szegmentálni. Ezek miatt szükséges a vinp használata előtt a videót előtérre és háttérre felbontani. Az első párbeszédablakon (2.1 ábra) található két gomb segítségével tudjuk betölteni a képkockákat (Frame folder), illetve a maszkokat (Mask folder). Mindkét esetben meg kell adnunk a könyvtárak elérési útját. Amikor kijelöltük a könyvtárakat, a program beolvassa azok tartalmát.
2.1 ábra: 1. lépés – A képkockákat és a maszkokat tartalmazó könyvtárak kiválasztása
Ezután lehetőségünk van további retusálandó területek hozzáadására (2.2 ábra). Kattintsunk a Make hole gombra, majd a jelöljük ki a képen a retusálásra szánt téglalap alakú területet, két átellenben lévő sarkának megadásával. A lépést többször is megismételhetjük. Ha akarjuk, az összes frame-re egyidejűleg megrajzolhatjuk a téglalapot, ehhez az Apply to all
frames opciót be kell kapcsolni. Ha törölni szeretnénk a most megadott kitöltendő területeket és vissza szeretnénk térni a maszkok beolvasása utáni állapothoz, kattintsunk a Clear holes
19
Digitális videó retusálás gombra. A képkockák és a maszkok nézete között bármikor átválthatunk a Show mask gombbal. Ha végeztünk a retusálandó terület megadásával, kattintsunk a Finished gombra. Ekkor elkezdődik a retusálási folyamat.
2.2 ábra: 2. lépés – A retusálandó terület kijelölése
2.3. Előfeldolgozás Elsőként az előfeldolgozási lépés hajtódik végre: a vinp egymás után kiszámítja az optical flow-t, a kameramozgást és a mozaikokat. A vinp a block matching eljáráshoz Aroh Barjatya [1], míg az optical flow számolásához Sohaib Khan [5] Matlab-kódjait hívja meg. A számítás jelenlegi állását egy folyamatjelzőn láthatjuk (2.3 ábra), ezenkívül a Matlab szöveges kimenetén is megjelennek az egyes lépések főbb adatai, a későbbi elemzés céljából.
20
Digitális videó retusálás
2.3 ábra: 3. lépés – Előfeldolgozás
2.4. A mozgó objektum retusálása A következő ablak az előtér helyreállításának aktuális állapotáról ad képi információt (2.4 ábra). Bal oldalon láthatjuk az eredeti, jobbról pedig a retusált képkockát. A hozzájuk tartozó maszkokat most is megtekinthetjük a Show mask gomb megnyomásával. A mozgó objektum retusálása alapértelmezésben automatikusan történik. Ha az
Advance automatically jelölőnégyzetet kikapcsoljuk, lehetőségünk van minden frame retusálása után eldönteni, hogy elégedettek vagyunk-e az eredménnyel. Ezt a következő jelenség indokolja: bár általában a 4 sugarú (tehát 9 pixel oldalú) négyzet, amelyet a mintaillesztéshez
használunk,
megfelelőnek
bizonyul,
bizonyos
esetekben
(például
bonyolultabb textúráknál) csak kisebb vagy nagyobb négyzetekkel tudjuk az adott képkocka előterét megfelelően helyreállítani. Túl kicsi keresési ablak esetén nincs elég rendelkezésre álló információ, mely alapján az odaillő négyzetet meg lehetne találni – túl nagy ablak használatával viszont túl speciális részletet kellene megtalálni a mozaikban, ezért ez sem jó megoldás minden helyzetben. Ebből az okból kifolyólag a Patch size nevű legördülő menüből
21
Digitális videó retusálás kiválaszthatjuk, hogy mekkora sugarú négyzettel kívánunk dolgozni, az érték 2 és 9 között lehet.
2.4 ábra: 4. lépés – A mozgó objektum retusálása
Ha elvégeztük a szükséges beállításokat, kattintsunk az Inpaint gombra az aktuális frame retusálásához. Amikor a helyreállítás véget ért, két eset lehetséges:
• Ha az automatikus továbblépés engedélyezve van, a feldolgozás két másodperc várakozási idő után folytatódik a következő képkockával. Ha eközben kikapcsoljuk az automatikus továbblépést, akkor a második eset kerül érvénybe.
• Ha az automatikus továbblépés nincs engedélyezve, választhatunk, hogy elfogadjuk az eredményt vagy nem. Ha elégedettek vagyunk az előtér retusálásával, kattintsunk az Ok gombra, ekkor a következő frame kijavítása következik. Ha nem az elvárt eredményt produkálja a program, próbálkozhatunk egy másik ablakmérettel. Ehhez válasszuk a
Revert gombot, változtassuk meg a Patch size értékét, majd kattintsunk az Inpaint gombra. Mikor az utolsó képkocka előterét is retusáltuk, az Ok gomb Finished feliratúra változik. Rákattintva rátérünk a fennmaradó feladatra: a háttér retusálására.
22
Digitális videó retusálás
2.5. A háttér retusálása Az algoritmusnak megfelelően az utolsó részfeladat a szomszédos frame-ekben található ismert pixelek közvetlen átmásolásából és a textúra-szintézisből áll. Ezekhez semmilyen felhasználói beavatkozás nem szükséges (2.5 ábra). A textúra-szintézis algoritmusának megvalósítása Hornok Zsolt diplomamunkájának felhasználásával történt.
2.5 ábra: 5. lépés – A háttér retusálása
2.6. Az eredmény elmentése Végül megtekinthetjük a retusált képkockákat (2.6 ábra). Az eddigiekhez hasonlóan balról láthatók az eredeti frame-ek, jobbról pedig azok kijavított változatai. Ha a Link sliders opciót kiválasztjuk, egyszerre tudjuk léptetni az összetartozó frame-eket. Ha elégedettek vagyunk az eredménnyel, el is menthetjük azt .avi formátumban a Save
movie gombra kattintva. A vinp az .avi tömörítéséhez Windows alatt Indeo 5 codecet használ. Unix rendszeren nem történik tömörítés.
23
Digitális videó retusálás A program bezárásához az Exit gombot kell megnyomni.
2.6 ábra: 6. lépés – Mentés
24
Digitális videó retusálás
3. Eredmények A program teszteléséhez használt számítógép paraméterei:
• 2.8 GHz-es Intel Pentium 4 processzor • 512 MB memória • Microsoft Windows XP operációs rendszer Az alábbiakban ismertetünk néhány tesztesetet és a rájuk kapott eredményeket.
3.1. Kamerával készített videók Mivel a külvilágból érkező jelek általában zajjal terheltek, nem minden esetben sikerülhet teljesen hibátlanul feldolgozni ezeket. Ez a videó retusálásra is érvényes. További gondok forrása lehet a tömörítés is, amely sokszor pontatlanná teszi az objektumok határait, megváltoztatja a színeket, és egyéb módokon rontja a minőséget. A másik tényező, amely nehezíti a sikeres retusálást, az előtér periodikus mozgásában előforduló kisebb-nagyobb eltérések. Mindezek figyelembevételével tekintsünk meg két, kamerával felvett videó [8] legjobban és legrosszabbul retusált frame-jeit.
3.1.1. Sétáló ember A feladat itt egy téglalap alakú terület retusálása, amely részben kitakarja egy sétáló személy lábát. A hiányzó rész alakja és helyzete végig változatlan – ez a helyzet a gyakorlatban is előfordul, például amikor valami rákerül a kamera lencséjére, és a felvételről szeretnénk ezt a zavaró hatást eltüntetni. Ennél a videónál a fő nehézséget az jelenteti, hogy a nadrág csaknem egyszínű: ez egy olyan előtér mozaikot eredményez, amelynek egyes részletei – amelyek azonban a mozgás különböző fázisaihoz tartoznak – nagyon kis mértékben térnek csak el, még az optical flow-t figyelembe véve is. Ezért a legjobban hasonlító kipótló négyzetek kiválasztásánál a kezdetben még jónak mondható, ám nem a megfelelő helyről vett, ezért nem tökéletes beillesztett minták a későbbiekben mintegy ”félrevezetik” az algoritmust, és a hiba minden iterációval nő, hiszen
25
Digitális videó retusálás a már meglévő – de hibás – részekhez próbáljuk illeszteni az újabb mintákat. Az ablakméret változtatásával – elsősorban növelésével – néha sikerül áthidalni ezt a problémát, azonban ez sem segít mindig.
a. A 14. frame
b. A 22. frame
3.1 ábra: Részletek a Sétáló ember videó retusált képkockáiból
3.1.2. Autó Retusáláskor gyakran nem kijavítani szeretnénk egy hiányzó részt, hanem el akarunk tüntetni a videóról egy objektumot és kitölteni a helyét az általa kitakart tárgyakkal. Erre láthatunk most egy példát. Az eredeti jelenetben egy közlekedési tábla látszik, amely részben eltakar egy elhaladó autót. A cél a tábla ”észrevétlen” eltüntetése. Azt is megfigyelhetjük, hogy a megszorítás ellenére a videó folyamán változó méretű autó nem okoz különösebb problémát. Az eredmény itt is elmarad az ideálistól, de az előző videóhoz képest jobb.
a. A 18. frame
b. A 15. frame
3.2 ábra: Részletek az Autó videó retusált képkockáiból
26
Digitális videó retusálás
3.2. Szintetikus videók A következő videók az Adobe Photoshop 7 képszerkesztő program felhasználásával készültek. Összességében elmondató, hogy – zajmentes, szabályos videókról lévén szó – az eredmény nagyon közel van a tökéleteshez. Minden videóhoz tartozik egy statisztika, amiben számszerűen is mérjük a vinp hatékonyságát. Néhány megjegyzés a táblázatokban előforduló kifejezésekhez:
• Az eltérés mértékének meghatározásához minden retusált frame-ből kivonjuk a megfelelő eredeti képkockát (amely rendelkezésre áll, mivel szintetikus videón dolgozunk), majd ennek az abszolútértékét vesszük. Az i-edik frame eltérése képlettel:
diff i = abs(inpainted i − originali ) . 3.3 képlet: Az i-edik frame eltérése
• A legnagyobb és az átlagos eltérés: diff_max i = max diff i , i
n
∑ diff diff_avg =
i =1
n
i
.
3.4 képlet: A legnagyobb és az átlagos eltérés
• A százalékban megadott átlagos eltérés a retusálandó terület méretéhez viszonyít:
n
∑ diff diff_avg_percent =
i
i =1
| Ω | *3 * 256
* 100 .
3.5 képlet: A százalékos átlagos eltérés
27
Digitális videó retusálás A másik módszer a hatásfok kifejezésére a helytelen pixelek számának vizsgálata. Az iedik retusált képkocka helytelen pixeleinek számát jelölje incorrecti . Ekkor a legtöbb és az átlagos helytelen pixel: incorrect_maxi = max incorrecti , i
n
∑ incorrect incorrect_avg =
i =1
n
i
.
3.6 képlet: A legtöbb és az átlagos helytelen pixel
• A százalékban megadott átlagos helytelen pixelek száma itt is a retusálandó terület méretéhez viszonyít:
n
∑ incorrecti incorrect_avg_percent =
i =1
| Ω | *3
* 100 .
3.7 képlet: A százalékos átlagos helytelen pixelek száma
Minden videóhoz bemutatjuk az eredetihez képest a legnagyobb eltérést mutató képkockát. A legkisebb eltérésű frame-ek illusztrálása itt felesleges, hiszen azok gyakorlatilag megegyeznek eredeti megfelelőjükkel.
3.2.1. Pillangó Az első videónál egy pillangót kell retusálni, amelyet egy mozgó téglalap alakú terület takar el részben. A pillangó szárnyának textúrája az egyik képkockánál megtéveszti a programot, és rossz helyről van pótolva a hiányzó terület. Sajnos az ablakméret változtatásával sem sikerült jobb eredményt elérni, viszont ezt leszámítva az eredmény jónak mondható.
28
Digitális videó retusálás
a. Az eredeti mozgó objektum
b. A retusált mozgó objektum
3.8 ábra: Részlet a Pillangó videó 14. képkockájából
A videó mérete
240×320 pixel
37 frame
A videóból előtér
65198 pixel
2.29 %
A videóból háttér
2776402 pixel
97.71 %
A retusálandó terület összesen
7400 pixel
0.26 %
Az előtér retusálandó része
2109 pixel
3.23 %
A háttér retusálandó része
5291 pixel
0.19 %
12577
14. frame
1656
1.08 %
Legtöbb helytelen pixel
222 pixel
16. frame
Átlagos helytelen pixel
32 pixel
16.16 %
Legnagyobb eltérés Átlagos eltérés
3.9 ábra: A Pillangó videó retusálásának statisztikája
3.2.2. Szarvas A Szarvas videónál is alapvetően sikeres a retusálás, bár az egyik képkockánál a kitakart terület egy része, amely eredetileg a háttérhez tartozik, az előtér részeként kerül retusálásra.
29
Digitális videó retusálás
a. Az eredeti mozgó objektum
b. A retusált mozgó objektum
3.10 ábra: Részlet a Szarvas videó 33. képkockájából
A videó mérete
240×320 pixel
58 frame
A videóból előtér
288052 pixel
6.47 %
A videóból háttér
4166348 pixel
93.53 %
55790 pixel
1.25 %
Az előtér retusálandó része
1755 pixel
0.61 %
A háttér retusálandó része
54035 pixel
1.30 %
4274
33. frame
289
0.04 %
Legtöbb helytelen pixel
123 pixel
31. frame
Átlagos helytelen pixel
6 pixel
0.64 %
A retusálandó terület összesen
Legnagyobb eltérés Átlagos eltérés
3.11 ábra: A Szarvas videó retusálásának statisztikája
3.2.3. Ejtőernyős Az utolsó videót szinte tökéletesen sikerült retusálni, a legnagyobb eltérésű frame-nél is minimális a szemmel látható különbség.
30
Digitális videó retusálás
a. Az eredeti mozgó objektum
b. A retusált mozgó objektum
3.12 ábra: Részlet az Ejtőernyős videó 16. képkockájából
A videó mérete
240×320 pixel
32 frame
A videóból előtér
83736 pixel
3.41 %
A videóból háttér
2373864 pixel
96.59 %
32354 pixel
1.32 %
Az előtér retusálandó része
2859 pixel
3.41 %
A háttér retusálandó része
29495 pixel
1.24 %
8089
16. frame
423
0.05 %
Legtöbb helytelen pixel
114 pixel
16. frame
Átlagos helytelen pixel
8 pixel
0.80 %
A retusálandó terület összesen
Legnagyobb eltérés Átlagos eltérés
3.13 ábra: Az Ejtőernyős videó retusálásának statisztikája
31
Digitális videó retusálás
4. Összehasonlítás más algoritmusokkal Érdemes összevetni az itt tárgyalt algoritmust néhány másik, szintén aktív kutatás tárgyát képező eljárással, ugyanis az egyes részfeladatok megoldásainak átvételével talán javítható a végrehajtás hatékonysága és az eredmény minősége is.
4.1. Tér-idő videó kiegészítés [10] Ennek a megközelítésnek a középpontjában egy globális minimalizációs probléma van, amelyhez egy jóldefiniált célfüggvény tartozik. A feladat az optimum meghatározása, mely által egy térben és időben konzisztens retusált videót kapunk. Pontosabban, a kitöltött rész minden kis darabja lokálisan megfelel az ismert terület valamely részletének és ezek a darabok egymással is konzisztensek, térben és időben egyaránt. A legfontosabb különbség az eddig tárgyalt algoritmushoz képest az, hogy a retusált területen olyan (konzisztens) részletek is megjelenhetnek, amelyek máshol nem szerepelnek együtt. Ezáltal nem szükséges az a megszorítás, hogy valamilyen ismétlődő mozgás szerepeljen a videóban, sőt, az előtér és a háttér szegmentálását is megspórolhatjuk. Hátrány viszont, hogy mozgó kamera esetére még nincs kiterjesztve az eljárás. Mivel egy iterációban csupán egyetlen pixel kerül helyreállításra, az eljárás nagyon időigényes lenne gyorsítási technikák alkalmazása nélkül. A konvergencia felgyorsítása és a konzisztencia további javítása érdekében egy többszintes piramist alkalmazunk, amelynek minden rétege az előzőhöz képest fele akkora felbontású, térben és időben is. Először a legdurvább felbontású szinten hajtjuk végre az algoritmust, majd – a kapott eredményt felhasználva – lépünk a következő szintre. Ez minimális többletet jelent számításigényben, azonban gyakran jobb eredményt ad. A hasonlóság mértéke itt is azon az ötdimenziós vektoron alapul, amely az intenzitás mellett az optical flow-t is figyelembe veszi, azonban ebben az esetben a két mintához rendelt érték:
sim(ψ P ,ψ Q ) = e
−
d (ψ P ,ψ Q ) 2σ 2
,
4.1 képlet: Két minta hasonlóságának mértéke a Tér-idő videó kiegészítés algoritmusban
32
Digitális videó retusálás
ahol a két minta ψ P és ψ Q , négyzetes különbségük összege d (ψ P ,ψ Q ) , σ pedig az összes ilyen d távolság 75 százaléka. Figyelemre méltó, hogy akár egész frame-eket is helyreállíthatunk ezzel az eljárással. Ez számos esetben nagyon hasznos lehet, például lehetővé teszi, hogy egy régi videót, amelyben sok képhiba van, és amelynek egyes képkockái teljesen hiányoznak, helyreállítsunk. Filmtrükként is alkalmazható, például egy személy bizonyos mozdulatait kitörölhetjük, hogy a helyébe a megmaradt helyekről másoljon át információt az algoritmus, természetesnek ható átmenetet hozva létre a megmaradt mozdulatok között.
4.2. Videó retusálás objektumkövetéssel és a darabok összekombinálásával [4] Az eljárás a textúra szintézis technikáját alkalmazza, és két alapötletre épül: az egyik a kiegészítendő
részlethez
(cél)
legjobban
illeszkedő
képdarab
(forrás)
hatékony
megtalálásához, a másik pedig a forrás és a cél megfelelő összeillesztéséhez kapcsolódik. A retusálandó terület megszűnéséig tartó iteráció három lépésből áll: a cél kiválasztása, a forrás kiválasztása, valamint a forrás és a cél összeillesztése. Minden iterációban az a képdarab lesz a cél, amely a legnagyobb prioritást kapja. A prioritás egy súlyozott összeg, két tagja a darabban lévő ismert pixelek számának, illetve a darab követhetőségi mértékének felel meg. Ahhoz, hogy ne kelljen az egész videót átfésülni a legjobban hasonlító képdarab megtalálásához, az algoritmus a mean shift objektumkövetés módszerét használja, amellyel drasztikusan lecsökken a keresési tér. A retusálás folyamán használt kis darabok két osztályba sorolhatók: a követhető darabok pozíciója változik a videó folyamán, így azok egy mozgó objektumhoz tartoznak, míg a nem követhető darabok színe és textúrája végig változatlan, ezért azok a mozdulatlan háttér részei. Amikor egy követhető darab még ismeretlen pixeleit pótoljuk ki, elég a többi képkocka megfelelő kis részeit vizsgálni a forrás megtalálásához. Ha egy nem követhető darabot kell helyreállítani, ahhoz, hogy globálisan konzisztens eredményt kapjunk, ezt a területet minden frame-ben egyformán kell kitölteni. A forrást az összes képkocka helyett elegendő az aktuális frame-ben keresni, mivel elvileg bármelyik képkocka egyformán alkalmas erre. Ezen meggondolások alapján belátható, hogy a forrás igen gyorsan megtalálható mindkét esetben.
33
Digitális videó retusálás Amikor meghatároztuk a kitöltésre váró képrészletet és a forrást, úgy szeretnénk őket összeilleszteni, hogy ne lehessen észrevenni, hol húzódik a határ a két darab között. Ennek érdekében az átfedésben lévő területen megkeressük azt a szegélyt, amely mentén a legkisebb a forrás és a cél közötti eltérés. Ehhez definiálunk egy súlyozott gráfot a fedésben lévő pixelekre, és azt a szegélyt választjuk, amellyel a gráf minimálisan szétvágható. A módszer hátrányai közé sorolható, hogy ez sem képes mozgó kamerával felvett videók helyreállítására. Másrészt probléma adódhat akkor, ha az objektum nyomon követése során elveszítjük azt, bár a cikk írói külön gondoskodtak ennek a korrigálásáról, hozzátéve, hogy ha ez sem válik be – ami viszonylag ritkán fordul elő –, akkor is elfogadható eredményt ad az eljárás.
4.3. Mozgó objektum eltávolítása és háttérkitöltés videóban [6] Ez az algoritmus kifejezetten a mozgó objektum eltávolítására használható, abban az esetben is, ha felvétel közben mozgott a kamera. Mind az előtér objektumának követése, mind a kameramozgás detektálása a sarokpontok nyomon követésével történik. Egy adott frame és az azt követő közötti elmozdulást egy projektív transzformációs mátrixszal írjuk le. A háttér mozgásának meghatározása céljából az aktuális képkocka minden sarokpontja körül tekintünk egy ablakot, amelyet a következő frame-en egy négyzetes különbségek összege metrika felhasználásával megkeresünk. A hibás megfeleltetéseket egy RANSAC algoritmussal [12] szűrjük ki – feltesszük, hogy a felvételkor az előtér és a háttér objektumai elég távol voltak a kamerától, így a képkockák közötti transzformációkat projektív homográfiáknak tekinthetjük a RANSAC algoritmus alkalmazásánál. A mozgó objektum nyomon követéséhez az első frame-en a felhasználónak ki kell jelölnie egy téglalapot, amely tartalmazza az objektumot. Ezután minden képkockán megkeressük az objektum körülötti téglalapot a normalizált keresztkorreláció technikájának segítségével. Mivel ez az egyszerű módszer érzékeny a zajra, valamint az objektum alakjának és méretének változására, a kameramozgással korrigált frame-ek különbségét is figyelembe vesszük a jobb eredmény érdekében. Miután egy képkockában meghatároztuk a mozgó objektumot tartalmazó téglalapot, olyan területtel szeretnénk azt helyettesíteni, amely – figyelembe véve a frame-ek közötti transzformációkat is – nincs átfedésben vele. A keresést az aktuális frame-ből kiindulva, mindkét irányban elkezdjük, és a legközelebbi alkalmas képkockát választjuk. A megtalált
34
Digitális videó retusálás részletet megfelelően transzformálva kell beilleszteni a kitöltendő területre. A korábban meghatározott transzformációs mátrixok összeszorzásával a számítási pontatlanságból adódó hibák összeadódnak, ezért az így kapott transzformációt a sarokpontok megfeleltetésével finomítjuk. A kitöltés után, hogy csökkentsük az eltérő fényviszonyok okozta szembetűnő hatást, a téglalap határa mentén lineárisan összemossuk az eredeti és a retusált képkockát. Ennek az eljárásnak a fő hátránya, hogy csak abban az esetben használható, amikor a mozgó objektum körüli téglalap alakú terület maradéktalanul megtalálható valamelyik frameben – ez főleg nagy átmérőjű, de a kép kis részét elfoglaló objektumok esetében tűnhet erős megszorításnak. Az időbeli konzisztencia sem garantált, mivel az egyes képkockákban az azonos pozícióhoz tartozó háttérpontokat egymástó függetlenül illesztjük be. Ezzel szemben előnyt jelent, hogy bármilyen kameramozgást képesek vagyunk kezelni ezzel az algoritmussal.
35
Digitális videó retusálás
5. Összegzés Befejezésképpen összefoglaljuk a fentiekben leírt algoritmusnak és megvalósításának a tulajdonságait, előnyeit és korlátait. Az algoritmus tulajdonképpen egy keretrendszer, melynek komponensei szabadon helyettesíthetőek más, kifinomultabb vagy gyorsabb technikákkal, ezáltal könnyen belevihetők a képfeldolgozás szakterületének legújabb fejlesztései is. A feldolgozandó videóval kapcsolatban a két legerősebb megszorítás a mozgó objektumra (valamilyen ismétlődő mozgást kell végeznie) és a kamera mozgására (csak a vetítési síkkal párhuzamosan mozdulhat el) vonatkozik. A retusálandó terület alakja és mérete tetszőleges lehet, bár Wexlerék [10] eljárásával szemben itt nem tudunk teljesen hiányzó képkockákat rekonstruálni, és a teljesen eltakart előtérbeli objektum helyreállítása sem lehetséges. Az eljárás külön kezeli az előteret és a hátteret, ezért a videó szegmentálását is el kell végezni az előfeldolgozás során, vagy meg kell adni az inputban. A tényleges retusálás megkezdése előtt kiszámítjuk az előtér, a háttér és az optical flow mozaikját, amelyekkel a textúra-szintézis folyamán fel tudjuk gyorsítani a beillesztendő részlet keresését. Ezután helyreállítjuk az előteret, majd a hátteret. A videóra vonatkozó előzetes feltevések relaxálásával az algoritmus továbbfejleszthető: • A kameramozgás korlátozásának feloldásával és a mozgó objektumok méretbeli változásának lekezelésével sokkal szélesebb körben lehetne alkalmazni az algoritmust. • Hasznos lenne, ha a dinamikus hátterű videókat is tudnánk retusálni. • A megvilágítás változása gyakori jelenség, ezért ezzel is érdemes lenne foglalkozni a realisztikusabb eredmény érdekében. • Az imént említett hiányosság, ti. amikor az előtér teljes egészében a retusálandó területre esik, szintén javítandó, például a Wexler és társai által kidolgozott megoldáshoz hasonló módszerrel. Az implementációban előkerült néhány gyenge pontja az eljárásnak: • A megfelelő ablakméret megválasztása sok esetben kritikus, sőt, még egyetlen videón belül sem lehetséges ugyanazzal az értékkel jó eredményt elérni. Megoldás lehetne az ablakméret adaptív hozzáigazítása a legnagyobb prioritású pont körüli területhez, valamilyen heurisztika használatával, például az ismeretlen pixelek száma alapján. Továbbá elképzelhető, hogy a mozaikban való kereséskor más ablakméretet kellene 36
Digitális videó retusálás használni, mint a frame-beli kereséskor (a vinp a felhasználó által megadott értéket használja mindkét esetben). • A mozaikok alkalmazásából származó jelenség egy példán keresztül mutatható be a legegyszerűbben: a Pillangó videó előtér mozaikjában (1.3 ábra, bal oldali kép) az előtér objektumának helyváltoztatásából adódóan egymás felett találhatóak az ismétlődő mozgás egyes fázisai. Ha például az utolsó frame felső felében is lenne átfedés az előtér és retusálandó terület között, akkor a mozaikban az ennek megfelelő részlet lényegesen különbözne a többi azonos fázisú (és egymással megegyező) pozíciótól, mivel nincsenek további képkockák, amelyekkel összegezve ugyanolyanná válna ez a terület is. Ezért ha az első vagy az utolsó néhány frame-en kell az előteret retusálni, az eredmény várhatóan rossz lesz.
37
Digitális videó retusálás
Irodalomjegyzék [1] Aroh Barjatya: Block Matching Algorithms For Motion Estimation http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=8761&objectType=FILE [2] A. Criminisi, P. Pérez, K. Toyama: Region Filling and Object Removal by Exemplar-Based Image Inpainting http://research.microsoft.com/users/antcrim/papers/Criminisi_techrep2003-84.pdf [3] Alexei A. Efros, Thomas K. Leung: Texture Synthesis by Non-parametric Sampling http://www.eecs.berkeley.edu/Research/Projects/CS/vision/papers/efros-iccv99.pdf [4] Yun-Tao Jia, Shi-Min Hu, Ralph R. Martin: Video completion using tracking and fragment merging http://ralph.cs.cf.ac.uk/papers/Geometry/videocompletion.pdf [5] Sohaib Khan: Hierarchical Lucas Kanade method http://www.cs.ucf.edu/~vision/Code/Optical_Flow/Lucas%20Kanade.zip [6] Soon-Yong Park, Chang-Joon Park, and Inho Lee: Moving Object Removal and Background Completion in a Video Sequence http://pixel.otago.ac.nz/ipapers/21.pdf [7] Kedar A. Patwardhan, Guillermo Sapiro, Marcelo Bertalmío: Video inpainting of occluding and occluded objects http://www.ima.umn.edu/preprints/jan2005/2016.pdf [8] Kedar A. Patwardhan, Guillermo Sapiro, Marcelo Bertalmío: Video Inpainting Under Camera Motion http://www.tc.umn.edu/~patw0007/video-inpainting [9] Kedar A. Patwardhan, Guillermo Sapiro, Marcelo Bertalmío: Video Inpainting Under Constrained Camera Motion http://www.tc.umn.edu/~patw0007/video-inpainting/video-inpainting-manuscript.pdf [10] Yonatan Wexler, Eli Shechtman, Michal Irani: Space-Time Video Completion http://www.wisdom.weizmann.ac.il/~vision/VideoCompletion/SpaceTimeCompletion_PAMI07.pdf [11] Wikipedia: Lucas Kanade method http://en.wikipedia.org/wiki/Lucas_Kanade_method
38
Digitális videó retusálás
[12] Wikipedia: RANSAC http://en.wikipedia.org/wiki/RANSAC
39
Digitális videó retusálás
Nyilatkozat Alulírott ………………..………… szakos hallgató, kijelentem, hogy a dolgozatomat a Szegedi Tudományegyetem, Informatikai Tanszékcsoport, ……………………….. Tanszékén készítettem, …………………….…….…… diploma megszerzése érdekében. Kijelentem, hogy a dolgozatot más szakon korábban nem védtem meg, saját munkám eredménye, és csak a hivatkozott forrásokat (szakirodalom, eszközök, stb.) használtam fel. Tudomásul veszem, hogy szakdolgozatomat / diplomamunkámat Tudományegyetem könyvtárában, a kölcsönözhető könyvek között helyezik el.
a
Szegedi
Dátum Aláírás
40
Digitális videó retusálás
Köszönetnyilvánítás Szeretnék köszönetet mondani témavezetőmnek, Kató Zoltánnak, aki hasznos tanácsaival és ötleteivel segített a fentiekben bemutatott Digitális videó retusálás című diplomamunka elkészítésében.
41