Graph cut - tekstuurisynteesitekniikka

Samankaltaiset tiedostot
TEKNILLINEN KORKEAKOULU Tietoliikenneohjelmistojen ja multimedian laboratorio T Tietokonegrafiikan seminaari Kevät 2004

Ville Nenonen 49533A

Teknillinen Korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio T Tietokonegrafiikan seminaari. Ville Nenonen 49533A

Kuva-analogiat. Juha Uotila 50468E

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

10. Painotetut graafit

Matematiikan tukikurssi

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea.

Datatähti 2019 loppu

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Tekstuurien syntetisointi pinnoille

Kenguru 2015 Mini-Ecolier (2. ja 3. luokka) RATKAISUT

1. STEREOKUVAPARIN OTTAMINEN ANAGLYFIKUVIA VARTEN. Hyvien stereokuvien ottaminen edellyttää kahden perusasian ymmärtämistä.

10.2. Säteenjäljitys ja radiositeettialgoritmi. Säteenjäljitys

Harjoitus Bones ja Skin

Kansionäkymä listasta suuriin kuvakkeisiin

1 Yleistä Kooste-objektista Käyttöönotto Kooste-objektin luominen Sisällön lisääminen Kooste objektiin Sivut...

Kombinatorinen optimointi

Tietorakenteet, laskuharjoitus 7, ratkaisuja

S09 04 Kohteiden tunnistaminen 3D datasta

Mat Lineaarinen ohjelmointi

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

2020 Fusion. What s New in Version 6? What s New in Version 6? 1 of Fusion

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Luento 3: 3D katselu. Sisältö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Canva CV NÄIN PÄÄSET ALKUUN CANVA CV:N TEOSSA: Canva on graafisen suunnittelun

Tentin asetukset. Tentin lisääminen. Tentin asetukset

Algoritmit 2. Luento 11 Ti Timo Männikkö

Taulukkolaskennan perusteet Taulukkolaskentaohjelmat

Taulukkolaskennan perusteet Taulukkolaskentaohjelmat

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Johdatus graafiteoriaan

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Kenguru 2011 Cadet (8. ja 9. luokka)

Johdatus verkkoteoriaan 4. luento

Matematiikan tukikurssi

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Muotin perusrakenne Ruisku tai painevalukappaleen rakenteen perusasiat: päästö, kulmapyöristys, jakopinta ja vastapäästö.

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

Pintamallintaminen ja maastomallinnus

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen

Kolmannen ja neljännen asteen yhtälöistä

DIMLITE Daylight. Sähkönumero Käyttöohje

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

Videon tallentaminen Virtual Mapista

Kaksintaistelun approksimatiivinen mallintaminen (valmiin työn esittely)

Mat Lineaarinen ohjelmointi

.. X JOHDATUS TEKOÄLYYN TEEMU ROOS

Verkko-optimointiin perustuva torjuntatasan laskenta mellakkapoliisin resurssien kohdentamisessa (valmiin työn esittely) Paavo Kivistö

Malleja ja menetelmiä geometriseen tietokonenäköön

Tekstuurintunnistuksen lyhyt oppimäärä. Ts. pari tapaa erottaa tiiliseinä pensaasta.

T : Max-flow / min-cut -ongelmat

Kortinhaltijat joilla on maksukeskeytys Maksuryhmään liitettyjen kortinhaltijoiden lukumäärä, joiden maksut ovat tilapäisesti keskeytetty.

Yleinen paikallinen vakautuva synkronointialgoritmi

PARITUS KAKSIJAKOISESSA

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Doodle helppoa aikatauluttamista

Sivunumerot ja osanvaihdot

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

Suomen virtuaaliammattikorkeakoulu Teknillinen mekaniikka monivalinta aihio > 80 % % % < 50 % Suhteellinen osuus maksimiarvosta (%)

HB-Harkko-kirjasto asennetaan oletusarvoisesti ArchiCADin kirjastohakemiston alle (C:\Program Files\Graphisoft\ArchiCAD 13\Kirjasto 13).

Loppukilpailu perjantaina OSA 1 Ratkaisuaika 30 min Pistemäärä 20. Peruskoulun matematiikkakilpailu

Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio T Tietokonegrafiikan seminaari.

Kenguru 2019 Student lukio

Määrittelydokumentti

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Musiikkipäiväkirjani: Maalataan, kirjoitetaan ja luetaan musiikkia (PWR1) Valitaan värejä, kuvia tai symboleja erilaisille äänille.

Algoritmit 1. Luento 10 Ke Timo Männikkö

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

Osoitin ja viittaus C++:ssa

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Verkon värittämistä hajautetuilla algoritmeilla

Projektiportfolion valinta

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Algoritmit 2. Luento 7 Ti Timo Männikkö

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Opiskelun ja työelämän tietotekniikka (DTEK1043)

I. Ristiintaulukointi Excelillä / Microsoft Office 2010

DIMLITE Single. Sähkönumero Käyttöohje

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla?

Harjoitus 3 ( )

Algoritmit 1. Luento 9 Ti Timo Männikkö

Muuta pohjan väri [ ffffff ] valkoinen Näytä suuri risti

Johdatus graafiteoriaan

Luento 6: Geometrinen mallinnus

Luento 6: Piilopinnat ja Näkyvyys

Transkriptio:

TEKNILLINEN KORKEAKOULU 28.4.2004 Tietoliikenneohjelmistojen ja multimedian laboratorio T-111.500 Tietokonegrafiikan seminaari Kevät 2004 Graph cut - tekstuurisynteesitekniikka Laura Kainonen 52627U

Graph cut - tekstuurisynteesitekniikka Laura Kainonen TKK, Tietoliikenneohjelmistojen ja multimedian laboratorio lkainone@cc.hut.fi Tiivistelmä Tekstuurisynteesin tarkoituksena on luoda mallitekstuurista uusia, yleensä suurempia tekstuureita. Tässä paperissa käsitellään yleisesti tekstuurisynteesitekniikoita sekä erityisesti graph cut tekniikkaa. Tämän tekniikan ideana on kopioida mallitekstuurista alueita ja liittää niitä yhteen niin, että näkyviä saumoja ei synny. Näin voidaan muodostaa halutun kokoisia, suhteellisen luonnollisen näköisiä tekstuureita. Tekniikan etuna aikaisempiin verrattuna on se, että vanhoja saumoja pystytään parantamaan niin, että tulos näyttää luonnollisemmalta. Graph cut tekniikkaa voidaan suoraviivaisesti soveltaa sekä kuva- että videotekstuurisynteesiin. Tekniikkaa voidaan lisäksi käyttää muun muassa interaktiiviseen kuvasynteesiin, jossa useammista lähdekuvista muodostetaan elementtejä yhdistelemällä uusi kuva. 1 JOHDANTO Tekstuurien avulla tietokonegrafiikkaan voidaan lisätä realistisuutta. Tekstuurikuva voi esittää esimerkiksi pintakuviota, jolla voidaan realistisuuden lisäämiseksi päällystää erilaisia polygoneilla mallinnettuja objekteja. Tekstuuri määritellään yleensä äärellisenä mallina, joka voidaan mallintaa stokastisen prosessin avulla (Kwatra et al. 2003). Tekstuurisynteesi eli keinotekoinen tekstuurien luominen on tärkeä ja aktiivinen tietokonegrafiikan tutkimusalue. Tekstuurisynteesillä ja analyysillä on tärkeä rooli esimerkiksi psykologiassa ja tietokonenäön kehittämisessä (Efros & Freeman, 2001). Tekstuurisynteesillä pystytään luomaan monimutkaisiakin graafisia näkymiä yksinkertaisten pienten kuvanäytteiden perusteella. Tekstuurisynteesissä pyritään luomaan annetusta tekstuurinäytteestä uusi ja yleensä suurempi tekstuurikuva, jonka ominaisuudet ovat riittävän samanlaiset alkuperäisen kuvan kanssa. Tällöin ihminen havaitsee alkuperäisen ja syntetisoidun tekstuurin samanlaisiksi. Bela Juleszin tekstuurien erottelua käsittelevä tutkimus antoi pohjan tekstuurisynteesin kehitykselle (Efros & Freeman, 2001). Hänen mukaansa ihmiset havaitsevat kaksi tekstuuria samanlaisiksi, jos näiden kuvien tietyt tilastolliset ominaisuudet täsmäävät. Tämä havainnollinen samanlaisuus voidaan ymmärtää MRF:n (Markov Random Field) avulla (Kwatra et al. 2003). MRF - mallissa tekstuuri esitetään solmuruudukon avulla. Jokainen solmu viittaa pikseliin tai pikselien ympäristöön lähdetekstuurissa. Lähdetekstuurissa vierekkäiset samankaltaiset pikselit päätyvät 1

vierekkäisiksi pikseleiksi myös uudessa generoidussa tekstuurikuvassa ja näin hahmottaminen säilyy samanlaisena. Tekstuurisynteesiä varten on kehitetty useita erilaisia tekniikoita. Algoritmien ajoaika on kuitenkin osoittautunut ongelmaksi ja monissa tapauksissa syntetisoitujen tekstuurien laatu ei tyydytä. Tekstuurit eivät näytä luonnollisilta, jos niissä on näkyviä saumoja tai tekstuurin osat toistuvat samanlaisina. Tekstuureita on myös erityyppisiä, esimerkiksi epäsäännöllisiä ja säännöllisiä tekstuureita. Useat tekstuurisynteesitekniikat sopivat vain tietyn tyyppisten tekstuurien syntetisointiin ja yleisemmän, erityyppisten tekstuurien syntetisointiin sopivan algoritmin kehittäminen onkin osoittautunut vaikeaksi. Tässä paperissa käsitellään yleisesti tekstuurisynteesiä ja erilaisia synteesitekniikoita. Erityisesti tarkastellaan Kwatra et al. (2003) kehittämää graph cut tekniikkaa ja tekniikan käyttöä tekstuurisynteesissä. Tässä suhteellisen uudessa tekniikassa ideana on, että pienestä mallitekstuurista luodaan suurempi tekstuuri, jolla on samanlaiset stokastiset ominaisuudet kuin alkuperäisellä tekstuurilla. Tässä tekniikassa uusi tekstuuri syntetisoidaan kopioimalla alkuperäisestä tekstuurista osia ja liittämällä niitä yhteen niin, että näkyviä saumoja ei synny ja tulos näyttää tällöin luonnolliselta. Tärkeä ero graph cut tekniikan ja aikaisempien tekniikoiden välillä on siinä, että graph cut tekniikassa olemassa olevat saumat pystytään ottamaan huomioon ja niitä pystytään parantamaan. Näin iteroimalla saadaan luonnollisempi tulos. Yleisesti ottaen tekstuurisynteesialgoritmit, jotka luovat uusia tekstuureja kopioimalla alueita mallitekstuurista, ovat kaksivaiheisia. Jokaisen uuden alueen kopioinnin kohdalla algoritmin täytyy suorittaa kaksi päätöstä. Ensin täytyy valita mihin kohtaan uutta tekstuuria alkuperäinen tekstuuri asetetaan. Tässä paperissa tätä kohtaa uudessa tekstuurissa kutsutaan siirroskohdaksi. Toiseksi täytyy valita mitkä osat alkuperäisestä lähdetekstuurista siirretään uuteen kuvaan. Tätä valitun alueen rajaa kutsutaan tässä alueen saumaksi. Tekstuurisynteesimenetelmät soveltuvat usein vain tietyn tyyppisten tekstuurien syntetisointiin. Graph cut tekniikka on hyödyllinen sillä se sopii sekä säännöllisten että epäsäännöllisten ja myös luonnollisten kuvien syntetisointiin. Suuri osa aikaisemmasta tekstuurisynteesitutkimuksesta keskittyy kaksiulotteisiin tekstuurikuviin, mutta ongelma on samantyyppinen myös kolmiulotteisessa tapauksessa. Graph cut tekniikkaa voidaankin hyödyntää myös videotekstuurien synteesiin, jossa täytyy ottaa huomioon myös ajalliset muutokset. Tässä paperissa käsitellään tarkemmin graph cut tekniikan käyttöä kaksiulotteisessa tekstuurisynteesissä. Lyhyesti käsitellään myös tekniikan käyttöä interaktiiviseen kuvasynteesiin, jossa uusi kuva muodostetaan liittämällä yhteen elementtejä useista eri lähdekuvista. Lisäksi annetaan muutamia esimerkkejä videotekstuurisynteesistä sekä esitellään lyhyesti graph cut tekniikan laajennuksia ja sovelluksia. 2 TAUSTAA Tekstuurisynteesitekniikat voidaan karkeasti jakaa kolmeen luokkaan (Kwatra et al. 2003). Ensimmäiseen luokkaan kuuluvat tekstuurisynteesimenetelmät käyttävät erilaisten tekstuurien kuvaamiseen parametrista mallia, jossa parametrien määrä on vakio. Esimerkkinä tästä luokasta on Portillan ja Simoncellin (2000) parametrinen 2

synteesimalli, joka perustuu aaltokertoimien tilastolliseen laskentaan. Kwatra et al. (2003) mukaan tämä on mahdollisesti paras parametrinen malli tähän mennessä kehitetyistä. Parametriset mallit ovat mukautuvampia tekstuurien tunnistukseen (Saisan et al. 2001) ja yleistettävämpiä kuin muut mallit. Nämä mallit eivät kuitenkaan sovi monien tekstuurien syntetisointiin, mutta ne käyttäytyvät hyvin tekstuurianalyysissä ja voivat auttaa havaintoprosessin tutkimisessa. Toinen tekstuurisynteesimallien luokka käyttää parametrien sijaan malliesimerkkien kokoelmaa tekstuurien mallintamiseen. Näille tekniikoille yhteistä on se, että ne luovat tekstuureja yksi pikseli kerrallaan. Esimerkkinä tästä luokasta on De Bonetin kehittämä malli (1997), joka perustuu moniresoluutioiseen näytteistykseen. Näytteistysmenetelmä perustuu oletukseen, että tekstuurikuvissa on alueita, jotka erottuvat paremmin tietyillä resoluutioilla (De Bonet 1997). De Bonetin mukaan tämä tekniikka pystyy aikaisempia tekniikoita paremmin mallintamaan alkuperäisen tekstuurin ominaisuuksia. Kolmas luokka on viimeaikoina eniten tutkittu (Kwatra et al. 2003). Tähän luokkaan kuuluvat tekniikat luovat uusia tekstuureita kopioimalla kokonaisia alueita mallitekstuurista. Kwatra et al. (2003) mukaan näillä tekniikoilla saadaan parhaimmat tulokset tekstuurisynteesissä suurimmalle joukolle erilaisia tekstuureita. Tähän kolmanteen luokkaan kuuluu muun muassa seuraavassa kappaleessa esitetty graph cut tekniikka. 3 GRAPH CUT - TEKNIIKKA Graph cut tekniikassa uusi tekstuuri syntetisoidaan kopioimalla esimerkkikuvasta epäsäännöllisen muotoisia alueita, jotka sitten liitetään saumattomasti yhteen (Kwatra et al. 2003). Näin saadaan uusia, halutun kokoisia, mallikuvan kaltaisia tekstuureita. Kopiointiprosessi suoritetaan kahdessa vaiheessa. Ensimmäisessä vaiheessa valitaan mallikuvasta mahdollinen neliönmuotoinen alue ja siirroskohta, johon tämä kuva uudessa tekstuurissa siirretään. Valintaa varten uutta aluetta verrataan pikseleihin, jotka ovat jo tuloksena saatavassa kuvassa. Mahdollisten siirrosalueiden valinnassa käytettäviä algoritmeja on kolme ja ne kuvataan tarkemmin kappaleessa 3.2. Toisessa vaiheessa tästä neliönmuotoisesta alueesta määritetään epäsäännöllisen muotoinen alue, joka voidaan liittää tuloskuvaan mahdollisimman optimaalisesti niin, että näkyviä saumoja ei synny ja ainoastaan tämän alueen pikselit kopioidaan uuteen kuvaan. (Kwatra et al. 2003) Tämä kopioitava alue määritetään graph cut algoritmilla, joka esitellään ensin kappaleessa 3.1. Menetelmää on havainnollistettu kuvassa 1. 3

Kuva 1: Tekstuurisynteesimenetelmä. Syötekuvasta valitaan ensin siirrosalue, jonka jälkeen lasketaan sauma. Ainoastaan tämä alue kopioidaan tuloskuvaan. (Kwatra et al. 2003) 3.1 Alueiden kopiointi Graph cut tekniikka pohjautuu image quilting tekniikkaan (Efros & Freeman 2001) ja sen kuvaaminen helpottaa graph cut tekniikan ymmärtämistä. Image quilting tekniikassa uusi kuva luodaan liittämällä yhteen pieniä alueita mallikuvasta. Ensimmäinen alue kopioidaan sattumanvaraisesti ja seuraavat alueet asetetaan niin, että ne ovat osittain päällekkäin aikaisemmin liitettyjen lohkojen kanssa. Tämä päällekkäin menevä alue on usein leveydeltään 4 tai 8 pikseliä. Efros ja Freeman valitsevat päällekkäin menevältä osalta polun niiden pikselien kautta, joilla uuden lisättävän ja vanhan aikaisemmin lisätyn alueen värit ovat samanlaiset. (Kwatra et al. 2003) Graph cut tekniikassa valittu polku kulkee pikseliparien välillä. Yksinkertaisin tapa on määrittää väriero pikseliparien välillä. Lisättävän ja vanhan alueen päällekkäin menevän osan kaikista pikseleistä luodaan graafi, jossa yksi solmu vastaa yhtä pikseliä. Jokainen pikseli yhdistetään kaarella kaikkiin vierekkäisiin pikseleihin. Graafi on havainnollistettu kuvassa 2. Päällekkäin menevältä alueelta määritetään pikselien väriarvot sekä uudelta että vanhalta alueelta. Näiden värierojen perusteella lasketaan kustannusfunktio, jonka perusteella valitaan leikkauspolku. Kustannus määritetään laskemalla pikselipaikan vanhan ja uuden alueen värien erotus ja lisäämällä tähän naapurisolmun vanhan ja uuden alueen värien erotus. Tämä kustannus kertoo näiden pikselien välisen kaaren painon. Poluksi valitaan se polku, jossa kustannusfunktio saa pienimmän arvon, eli leikkauspolku kulkee niiden kaarien kautta, joiden paino on pienin. Yksinkertaisuuden vuoksi kuvassa 2 alue on esitetty 3 x 3 pikselin avulla. Kuvaan on lisätty kaksi ylimääräistä solmua, A ja B, jotka kuvaavat vanhaa ja uutta siirrosaluetta, tässä järjestyksessä. Kuvassa 2 on määritelty, että pikselit 1, 2 ja 3 otetaan vanhalta alueelta ja pikselit 7, 8 ja 9 uudelta alueelta. Määrittääksemme kummalta alueelta pikselit 4, 5 ja 6 otetaan, täytyy selvittää pienimmän kustannuksen polku, joka erottaa solmut A ja B toisistaan. Tätä klassista graafiongelmaa kutsutaan muun muassa min-cut ongelmaksi ja sen ratkaisevat algoritmit ovat helppoja implementoida (Kwatra et al. 2003). Kuvassa 2 punainen viiva esittää pienimmän kustannuksen polkua, joten pikseli 4 kopioidaan alueelta B ja pikselit 5 ja 6 vanhalta alueelta A. Tämä edellä esitetty tapaus on melko yksinkertainen, sillä siinä uusi alue lisätään kohtaan, johon ei 4

vielä ole lisätty alueita. Tällöin ei tarvitse ottaa huomioon tuloskuvassa jo valmiina olevia saumoja. Seuraavissa kappaleissa esitetäänkin ratkaisuja monimutkaisempiin tilanteisiin. Tilanne tulee monimutkaisemmaksi jos syntetisoidussa kuvassa on jo useita alueita liitettynä. Seuraava siirrosalue voidaan haluta asettaa kohtaan, jossa on jo alueita. Tällöin täytyy lisäksi määrittää peittääkö mikään uuden alueen pikseleistä vanhoja saumoja. Vanha sauma ja sen kustannus täytyy tällöin muistaa. Image quilting tekniikassa käytetään dynaamista ohjelmointia, jossa vanhojen ratkaisujen muistaminen ei ole Kwatra et al. (2003) mukaan mahdollista. Vanhojen saumojen muistaminen mahdollistaa sen, että olemassa olevia saumoja pystytään parantamaan. Tässä tapauksessa graafi on muuten samankaltainen kuin kuvassa 2, mutta solmu A vastaa nyt kaikkia vanhoja alueita. Lisäksi vanhat saumat merkitään graafiin lisäämällä saumasolmut niiden pikselien väliin, joiden välistä vanha sauma kulkee. Jokainen saumasolmu liitetään uudella kaarella solmuun B, joka vastaa siis uutta aluetta. Tämän kaaren kustannus on aikaisemmin lasketun sauman kustannus. Jos tämä saumasolmun ja solmun B välinen kaari leikataan, tämä tarkoittaa, että vanha sauma jää tuloskuvaan. Jos tätä kaarta ei leikata, niin silloin uuden alueen pikselit kopioidaan vanhan sauman päälle. Tuloskuvassa saattaa tällöin olla sekä vanhaa että uutta saumaa. Edellä esitetyissä tapauksissa oletettiin, että uudet alueet olivat päällekkäisiä vanhojen pikselien kanssa ainoastaan alueiden rajalla. Usein tässä synteesissä kuitenkin uusi alue saatetaan yrittää asettaa alueelle, joka on jo kokonaan peitetty. Tämän tarkoituksena on peittää mahdollisia näkyviä saumoja. Kuvassa 3 on esitetty synteesin vaiheita tällaisessa tapauksessa. Kuvassa vasemmalla on lähdekuva, keskellä on ensimmäinen syntetisoitu kuva alustuksen jälkeen ja oikealla lopullinen tulos viiden iterointikierroksen jälkeen. Jokaisella iterointiaskeleella näkyviä saumoja on pyritty peittämään uuden siirrosalueen avulla. Kuva 2: Vasemmalla esitetään vanhan (A) ja uuden (B) alueen päällekkäin menevä osa. Oikealla esitetään sauman, eli pienimmän kustannuksen polun etsiminen. Leikkaus kulkee niiden kaarien kautta, joiden kustannukset ovat pienimmät. Pienimmän kustannuksen polku on merkitty kuvaan punaisella. (Kwatra et al. 2003) 5

Kuva 3: Vasemmalla on alkuperäinen kuva. Keskellä on syntetisoitu tekstuuri heti alustamisen jälkeen ja oikealla tuloskuva viiden iterointivaiheen jälkeen. (Kwatra et al. 2003). Alustamisen jälkeen virheet näkyvät kuvassa selkeästi. Kun kuvaa on iteroitu viisi kertaa, eli uusia alueita on lisätty vanhojen saumojen päälle, tulos on jo huomattavasti parempi, vaikka muutama virhe erottuu vielä selkeästi. 3.2 Algoritmit alueen valintaan Mahdollisen siirrosalueen valintaan voidaan käyttää erilaisia algoritmeja. Algoritmin valinta riippuu syntetisoitavasta tekstuurista. Kwatra et al. (2003) esittelevät kolme erilaista algoritmia, joista valitaan sopiva. Nämä algoritmit ovat random placement-, entire patch matching- ja sub-patch matching - algoritmi. Kaikissa algoritmeissa valitaan ainoastaan alueita, joita ei ole aikaisemmin valittu. Kahdessa jälkimmäisessä sovittamisalgoritmissa sen hetkisestä tekstuurista etsitään alue, joka tarvitsee parantamista. Olemassa olevien saumojen kustannuksia käytetään tämän alueen virheen laskemiseen. Tämän jälkeen valitaan alue, jossa virhe on suurin. Tämän virhealueen määrittämisen jälkeen algoritmi pakotetaan valitsemaan ainoastaan sellaisia paikkoja, jotka peittävät virhealueen kokonaan. Jos syntetisoidussa tekstuurissa on vielä tyhjää aluetta, siirroskohta valitaan niin, että lisättävä tekstuurialue peittää sekä tyhjää aluetta että virhealueita. Samoja algoritmeja käytetään sekä kuva- että videotekstuurien synteesissä. Tässä tulee huomata, että siirrosalueen asettaminen on ainoastaan translaatio lähdekuvalle, ennen kuin se lisätään tuloskuvaan. Random placement metodissa koko alkuperäinen kuva siirretään sattumanvaraiseen paikkaan. Graph cut algoritmi laskee sen jälkeen tästä alueesta sauman, jonka pikselit kopioidaan uuteen kuvaan. Tämän jälkeen prosessia toistetaan kunnes kuva on valmis. Tämä on nopein synteesitapa ja sillä saadaan hyviä tuloksia epäsäännöllisten tekstuurien syntetisoinnissa. (Kwatra et al. 2003) Entire patch matching algoritmissa lähdetekstuurista etsitään alue, joka sopii mahdollisimman hyvin sen hetkiseen tilanteeseen tulostekstuurissa. Tämän jälkeen lasketaan potentiaalisille alueille vertailuluku normalisoimalla SSD-kustannus (sum-ofsquared-differences). Siirroskohta valitaan sopivista vaihtoehdoista todennäköisyysfunktion perusteella. Tämä tekniikka antaa parhaimman tuloksen säännöllisille tekstuureille, sillä niiden jaksollisuus saadaan hyvin tallennettua tällä kustannusfunktiolla. (Kwatra et al. 2003) 6

Sub-patch matching tekniikka on tekniikoista kaikkein yleisin. Se on myös paras menetelmä stokastisille eli satunnaisille tekstuureille sekä videosekvensseille, joissa on tekstuurien liikettä, esimerkiksi aaltoja ja savua. Tässä tekniikassa valitaan tuloskuvasta ensin pieni ongelmakohta, joka on usein paljon pienempi kuin mallikuva. Tämän jälkeen lähdekuvasta etsitään alue, joka täsmää hyvin tämän tuloskuvan osa-alueen kanssa. Ainoastaan translaatiot, jotka sallivat lähdekuvan ja tuloskuvan täydellisen päällekkäisyyden hyväksytään. Alue valitaan myös tässä stokastisesti käyttäen samanlaista todennäköisyysfunktiota kuin edellisessä algoritmissa. (Kwatra et al. 2003) 4 KUVASYNTEESI Tässä kappaleessa esitellään tekstuurisynteesin tuloksia sekä tekniikan lisämuunnoksia. Kappaleessa 4.2. käsitellään lisäksi tekniikan soveltamista interaktiiviseen kuvasynteesiin, jossa useiden lähdekuvien elementtejä yhdistelemällä luodaan uusi kuva. Graph cut tekniikalla voidaan syntetisoida hyvinkin erilaisia tekstuureja. Sitä voidaan käyttää sekä säännöllisten että epäsäännöllisten tekstuurien synteesiin ja myös luonnollisten kuvien syntetisointiin. Kuvissa 4, 5, 6 ja 7 (Kwatra et al. 2003) esitetään tekstuurisynteesin tuloksia sekä hieman graph cut tekniikan vertailua image quilting tekniikkaan, jonka kehittivät Efros ja Freeman (2001). Kuvassa 5 verrataan graph cut tekniikan ja image quilting tekniikan tuloksia samasta syötetekstuurista. Kuvassa 5 on alueenvalitsemisalgoritmina käytetty entire patch matching algoritmia. Tämä algoritmi sopii parhaiten näppäimistötekstuurin syntetisointiin, sillä näppäimistön säännöllisyys saadaan sillä hyvin säilytettyä. Kuvissa 4, 6 ja 7 on käytetty sub-patch matching algoritmia, sillä oliivi-, lammaslauma- ja liljatekstuurit ovat melko satunnaisia. Kuvien laskenta on suhteellisen nopeaa pääosin FFT:n perustuvan laskennan vuoksi. Kwatra et al. (2003) esittivät kaksiulotteiseen tekstuurisynteesitekniikkaan myös laajennuksia ja sovelluksia, joita käsitellään kappaleessa 4.1. Kuva 4: Vasemmalla on lammaslaumaa esittävä syötekuva ja oikealla graph cut tekniikkaa käyttäen saatu tulos. (Kwatra et al. 2003). Algoritmit eivät tietenkään tunnista mitä kuva esittää, joten tuloskuvaan voi tulla esimerkiksi kaksipäisiä lampaita. Tulos näyttää kuitenkin luonnolliselta ja virheitä voi löytää ainoastaan, jos kuvaa tutkii tarkemmin. 7

Kuva 5: Vasemmalla syötekuva, keskellä tulos käyttäen image quilting tekniikkaa ja oikealla tulos graph cut tekniikalla. (Kwatra et al. 2003). Graph cut tekniikan tulos näyttää selvästi luonnollisemmalta. Entire patch matching algoritmilla näppäimistön säännöllisyys on pystytty säilyttämään. 4.1 Lisämuunnoksia Graph cut tekniikkaa on laajennettu myös lisämuunnoksilla (Kwatra et al. 2003). Kwatra et al. (2003) keskittyi graph cut tekniikassa pääosin mahdollisuuteen siirtää syötealuetta tulosalueen suhteen. Tekniikkaa on kuitenkin yleistetty käsittämään muunkinlaiset muunnokset, esimerkiksi rotaation, peilauksen ja skaalauksen. Kuvassa 6 on syntetisoinnissa käytetty myös rotaatiota ja peilausta. Useampien muunnosten käyttäminen tuottaa tuloksena saatavasta tekstuurista joustavamman ja monipuolisemman. (Kwatra et al. 2003) Skaalaus mahdollistaa erikokoisten tekstuurielementtien yhdistämisen. Skaalauksella voidaan siis saada aikaan esimerkiksi syvyysvaikutelma. Kuvassa 7 liljatekstuurin synteesiin on käytetty yhden skaalan lisäksi useampia skaaloja. Kuva 6: Vasemmalta järjestyksessä; syötekuva, image quilting tekniikalla saatu tulos, graph cut tekniikan tulos sekä tuloskuva kun on lisäksi käytetty rotaatiota ja peilausta. (Kwatra et al. 2003) Image quilting tulos on Efroksen ja Freemanin (2001) mukaan. Rotaatio ja peilaus näyttävät tuovan kuvaan lisää luonnollisuutta. Image quilting tekniikkaan verrattuna ero on selkeä. 8

Kuva 7: LILIES Brad Powell. Vasemmalla syötekuva, keskellä käytetty yhtä skaalaa ja oikealla yhdistelty useampaa eri skaalaa. (Kwatra et al. 2003) Useamman skaalan käyttäminen tuo kuvaan syvyysvaikutelmaa. 4.2 Interaktiivinen kuvasynteesi Toinen graph cut tekniikan sovellus on interaktiivinen kuvien yhdistäminen, joka perustuu Mortensenin ja Barretin (1995) sekä Brooksin ja Dodgsonin (2002) tekniikoihin (Kwatra et al. 2003). Tässä sovelluksessa tuloksena saadaan kuva, johon on yhdistetty elementtejä useista eri lähdekuvista. Käyttäjä valitsee ensin lähdekuvista haluamansa alueet interaktiivisesti ja tämän jälkeen graph cut algoritmi etsii parhaan sauman kuvien välillä. Kuvassa 8 on esitetty joen ja veneen yhdistäminen. Viimeisessä kuvassa on myös saumat näkyvissä. Kuva 8: RAFT ja RIVER Tim Seaver. Ylhäällä syötekuvat, eli vene ja joki. Alhaalla vasemmalla tulos ja alhaalla oikealla tulokseen on lisäksi merkitty saumat. (Kwatra et al.) (http://www.cc.gatech.edu/cpl/projects/graphcuttextures/) 9

5 VIDEOSYNTEESI Yksi graph cut tekniikan vahvuuksista on se, että se on helposti laajennettavissa myös videotekstuurisynteesiin. Videotekstuurisynteesissä voidaan esimerkiksi lyhyestä videosta syntetisoida pidempi toistamalla sitä ikuisesti niin, että tulos näyttää kuitenkin suhteellisen luonnolliselta. Videotekstuurisynteesissä tarvitaan samat vaiheet kuin kuvasynteesissäkin, eli alueen sijoitus ja saumojen etsiminen. Videoiden tapauksessa sauma tarkoittaa kaksiulotteista pintaa. (Kwatra et al. 2003). Samoin kuin kaksiulotteisilla tekstuureilla alueen sijoitustekniikka valitaan videon tyypin perusteella. Seuraavissa kappaleissa esitellään lyhyesti videotekstuurisynteesiä graph cut tekniikalla (Kwatra et al. 2003). Videotekstuureita voidaan muokata etsimällä sujuvia siirtymiä videon yhdestä osasta toiseen. Näitä siirtymiä voidaan sitten käyttää syötevideon toistamiseen. Tämä toimii ainoastaan, jos videosta voidaan löytää pari samalta näyttäviä kehyksiä. Kuitenkin monet luonnolliset ilmiöt ovat liian epäsäännöllisiä toistuakseen. Kwatra et al. (2003) esittämä saumojen optimointi on kehittynyt vaihtoehto tämän ongelman ratkaisuun. Jos videosekvenssi on hyvin lyhyt, videon toistamisen jälkeen jaksollisuus on selvästi havaittavissa. Tässä tapauksessa video voidaan syntetisoida lisäämällä sarja lähdemateriaalin tekstuurialueita, jotka ovat sattumanvaraisesti ajallisesti korvaavia. Tällä menetelmällä saadaan yleisesti ottaen hyviä tuloksia, mutta tietyillä tekstuureilla tulos ei ole tyydyttävä. (Kwatra et al. 2003) Ainoastaan ajallisten siirtymien huomioiminen ei tuota tyydyttäviä tuloksia videoissa, joissa on staattisuutta ajan ja paikan suhteen, esimerkiksi savua kuvaava video. Tämä johtuu siitä, että tämän tyyppisissä videoissa liikkeellä on jokin dominoiva suunta. Tällöin ajallisten siirtymien lisäksi tarvitaan myös siirtymiä paikan suhteen. Spatiotemporaalisille tekstuureille kolmiulotteisessa tapauksessa käytetäänkin sub-patch matching algoritmia, sillä se soveltuu hyvin satunnaisten videotekstuurien syntetisointiin (Kwatra et al. 2003). Kun siirtymät paikan suhteen otetaan huomioon tulokset paranevat huomattavasti (Kwatra et al. 2003). 6 LAAJENNUKSIA Tässä kappaleessa mainitaan lyhyesti muutamia parannuksia ja laajennuksia kuva- ja videotekstuurisynteesiin. Nämä laajennukset muun muassa nopeuttavat alueiden sovituksessa käytettäviä algoritmeja sekä parantavat kuvien laatua. (Kwatra et al. 2003) Joissain tapauksissa tietyssä kohdassa tekstuuria on mahdotonta löytää hyvää saumaa ja graph cut tekniikka saattaa tällöin luoda näkyviäkin artefakteja. Tällaiset artefaktit on mahdollista peittää lomittamalla (feathering) pikseliarvoja saumojen lähellä. Laskentaa voidaan myös nopeuttaa käyttämällä FFT:tä (Fast Fourier Transforms). (Kwatra et al. 2003) Kappaleessa 3.2. viitattiin SSD:hen perustuviin algoritmeihin, jotka voivat olla hyvinkin raskaita laskennallisesti. Tätä laskemista voidaan huomattavasti nopeuttaa FFT:n avulla. Esimerkiksi tietylle videosekvenssille uuden alueen valintaan vaadittava aika voidaan lyhentää 10 minuutista 5 sekuntiin FFT:hen perustuvalla laskennalla (Kwatra et al. 2003). 10

7 YHTEENVETO Tekstuurisynteesitekniikat voidaan karkeasti jakaa kolmeen luokkaan. Viimeaikoina eniten tutkittu luokka luo uusia tekstuureita kopioimalla syötetekstuurista kokonaisia alueita ja liimaamalla niitä yhteen. Tämäntyyppiset tekstuurisynteesimenetelmät luovat parhaan tuloksen laajalle joukolle erilaisia tekstuureja. Paperissa esiteltiin tähän luokkaan kuuluvaa graph cut tekniikkaa sekä sen sovelluksia. Erityisesti käsiteltiin algoritmeja siirrosalueen valintaan sekä alueiden kopiointia. Paperissa esiteltiin myös kuva- ja videotekstuurisynteesin tuloksia sekä laajennuksia perustekniikkaan. Graph cut tekniikkaa voidaan lisäksi hyödyntää muun muassa interaktiivisessa kuvasynteesissä, jossa muodostetaan yksi uusi kuva yhdistelemällä useiden syötekuvien tekstuurielementtejä. Efros ja Freeman (2001) olivat ensimmäiset, jotka käsittelivät saumojen etsimistä käyttäen dynaamista ohjelmointia (Kwatra et al. 2003). Dynaaminen ohjelmointi ei kuitenkaan mahdollista vanhojen saumojen muistamista, joten tällä tekniikalla ei voida parantaa jo olemassa olevia saumoja. Kwatra et al. (2003) tulosten mukaan graph cut tekniikan hyötynä on erityisesti se, että vanhojen saumojen kustannukset pystytään ottamaan huomioon. Vanhojen kustannusten huomioiminen mahdollistaa olemassa olevien saumojen parantamisen lisäämällä uusia alueita niiden päälle. Hyöty nähdään selvästi kuvasta 3, jossa ensimmäiset saumat eivät vielä ole kovinkaan näkymättömiä. Suurin osa aikaisemmasta tekstuurisynteesitutkimuksesta on keskittynyt kaksiulotteisten tekstuurien syntetisointiin. Yksi graph cut tekniikan vahvuuksista on myös se, että sitä voidaan helposti laajentaa käsittämään myös videotekstuurisynteesi. Graph cut tekniikka näyttää antavan melko hyviä tuloksia erilaisten tekstuurien syntetisoinnissa. Esimerkiksi kuvasta 5 nähdään, että graph cut tekniikan antama tulos näyttää realistisemmalta kuin image quilting tekniikan tulos. Kuvassa 4 taas on syntetisoitu lammaslaumaa esittävästä tekstuurista suurempi kuva. Algoritmissa ongelmana on edelleen se, että algoritmi ei tunnista mitä kuva esittää. Jos lammaslaumaa tutkii tarkkaan, voi huomata virheitä, esimerkiksi lampaalta saattaa puuttua pää tai päitä voi olla useampikin. Tätä ei kuitenkaan suoralta kädeltä huomaa ja kuva näyttää suhteellisen aidolta. Kuvassa 6 on esitetty tulos myös rotaatiota ja peilausta käyttämällä. Tämä tekniikka parantaa mielestäni tulosta melko paljon ja syntetisoidusta kuvasta tulee luonnollisempi. Tässä kuvassa ero graph cut tekniikan ja image quilting tekniikan välillä on myös melko selkeä. Kuvassa 3 taas on esitetty alkuperäisen kuvan lisäksi tulos ensimmäisen askeleen jälkeen. Tulosta on tämän jälkeen iteroitu asettamalla uusia alueita olemassa olevien saumojen päälle ja viimeisenä on tuloskuva viiden iterointiaskeleen jälkeen. Keskimmäinen kuva ei näytä kovinkaan luonnolliselta. Viiden askeleen jälkeen tulos on huomattavasti parantunut, mutta virheitä on kuitenkin edelleen havaittavissa. Useat tekstuurisynteesitekniikat käsittelevät lähdekuvaa sellaisenaan, ilman mitään muutoksia (Ashikhmin 2001). Ne eivät ota huomioon esimerkiksi valaistusta eivätkä pintojen geometrista rakennetta. Yksi tulevaisuuden haasteista voisi olla sellaisten algoritmien kehittäminen, joilla voisi luoda valaistuksesta ja katselusuunnasta riippuvia tekstuureita. 11

VIITTEET Ashikhmin, M. 2001. Synthesizing natural textures. 2001 ACM Symposium on interactive D Graphics (March), 217-226. ISBN 1-58113-292-1. De Bonet, J. S., Multiresolution sampling procedure for analysis and synthesis of texture images. Proceedings of SIGGRAPH 97 (August 1997), 361-368. Efros, A. A., Freeman, W. T. 2001. Image quilting for texture synthesis and transfer. Proceedings of SIGGRAPH 97 (August), 341-346. ISBN 1-58113-292-1. Graphcut textures: Image and video synthesis using graph cuts. (online) [Viitattu 29.3.2004] Saatavissa: http://www.cc.gatech.edu/cpl/projects/graphcuttextures/ Kwatra, V., Schödl, A., Essa, I., Turk, G., Bobick, A. 2003. Graphcut textures: Image and video synthesis using graph cuts, ACM Trans. Graph., Volume 22, Issue 3, July 2003. Saisan, P., Doretto, G., Wu, Y., Soatto, S. 2001. Dynamic texture recognition. In proceeding of IEEE Conference on Computer Vision and Pattern Recognition (CVPR), II:58-63. 12