17.07.2013 Views

Synsvinkeltransformation af ansigter

Synsvinkeltransformation af ansigter

Synsvinkeltransformation af ansigter

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Virtual Photography<br />

<strong>Synsvinkeltransformation</strong> <strong>af</strong> <strong>ansigter</strong><br />

Af: Rune Andersen<br />

Vejleder: Jens Arnspang<br />

Datalogi, Københavns Universitet.<br />

D. 14. juni 2002


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Resumé:<br />

Forskellige synsvinkler <strong>af</strong> en opstilling bliver benyttet inden for mange forskellige områder,<br />

bl.a. modelbaseret kodning til videokonference, objektgenkendelse, videosikkerhedssystemer,<br />

gennemsøgning <strong>af</strong> digitalbillede biblioteker, menneske-maskine samspil og<br />

augmentet reality (optagelser <strong>af</strong> virkelige omgivelser med kunstigt indsatte genstande).<br />

I en videokonference opstilling, hvor kameraet er placeret oven på skærmen, er brugerens<br />

fokus på skærmen, og blikket rettet mod billedet <strong>af</strong> personen på skærmen. Her er problemet,<br />

at der ikke er øjenkontakt med personen der tales med. Hvis billedet kan roteres, så blikket er<br />

mod kameraet, kunne det skabe en større nærhed i samtalen.<br />

Opgavens formål er at se på teknikker til at indfange et virkeligt objekt (et ansigt) og vise det<br />

fra vilkårlige vinkler. Dette gøres ofte ved at generere en fuld 3D geometrisk model <strong>af</strong><br />

objektet og benytte almindelige 3D teknikker til at visualisere. Problemet med disse metoder<br />

er imidlertid, at det ikke er ligetil at danne en 3D model <strong>af</strong> et objekt eller sceneopstilling, og<br />

ofte meget vanskeligt ved komplekse objekter, specielt hvis der kun benyttes et kamera.<br />

Alternativt til disse teknikker kan man benytte en billedbaseret metode, hvor man i stedet<br />

benytter en række reference billeder fra forskellige vinkler til at danne billeder fra vilkårlige<br />

vinkler.<br />

Opgaven ser på nogle forskellige billedbaserede metoder til at visualisere objekter og<br />

omgivelser. To metoder er implementeret. Desuden er en ansigtstracker implementeret, da det<br />

viste sig at en en billedbaseret metode ikke umiddelbart kunne anvendes til at konstruere et<br />

billede fra et virtueltkamera placeret i skærmen. Ændring <strong>af</strong> synsvinklen <strong>af</strong> ansigtet er ikke<br />

løst for videokonference opstillingen. En mulig løsning foreslås baseret på tilpasning til en 3D<br />

model <strong>af</strong> et ansigt.<br />

SIDE 2


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Indholdsfortegnelse<br />

INDLEDNING..............................................................................................................5<br />

Motivation til opgaven..............................................................................................5<br />

Problemstillingen .....................................................................................................6<br />

TEORI, ANALYSE OG OVERVEJELSER..................................................................7<br />

Billeddannelse .........................................................................................................7<br />

RADIOMETRI ................................................................................................................... 9<br />

PERSPEKTIVKAMERAET................................................................................................. 10<br />

STEREOPSIS OG EPIPOLÆR GEOMETRI ............................................................................ 13<br />

Forsøgsopstilling ...................................................................................................15<br />

Opsummering........................................................................................................17<br />

DEL 1. 2D MORPH METODE..................................................................................18<br />

View morphing.......................................................................................................18<br />

Forsøg og implementation.....................................................................................21<br />

MULTILEVEL FREE-FORM DEFORMATIONS ................................................................... 22<br />

IMPLEMENTATION AF MFFD......................................................................................... 26<br />

Opsummering........................................................................................................27<br />

DEL 2. SYNSVINKELEKSTRAPOLERING..............................................................27<br />

View interpolation ..................................................................................................27<br />

View ekstrapolation ...............................................................................................30<br />

Korrespondancer mellem billeder..........................................................................32<br />

KORRELATIONS BASERET KORRESPONDANCE................................................................ 33<br />

KENDETEGNSBASERET KORRESPONDANCE.................................................................... 33<br />

KORRESPONDANCER VED EN SEKVENS AF BILLEDER ..................................................... 34<br />

Forsøg og implementation.....................................................................................35<br />

VIEW EKSTRAPOLATION ................................................................................................ 35<br />

EN HJØRNEDETEKTOR.................................................................................................... 38<br />

TRACKING OVER EN SERIE BILLEDER............................................................................. 39<br />

Opsummering........................................................................................................41<br />

DEL 3. ANSIGTSORIENTEREDE METODER .........................................................42<br />

SIDE 3


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Ansigtstracking og identifikation <strong>af</strong> kendetegn.......................................................45<br />

To-spalte kameramodellen ....................................................................................47<br />

Forsøg ...................................................................................................................49<br />

Opsummering........................................................................................................52<br />

TEST OG RESULTATER .........................................................................................53<br />

Test <strong>af</strong> multilevel free form deformations (MFFD) .................................................53<br />

Test <strong>af</strong> hjørnedetektor ...........................................................................................55<br />

Test <strong>af</strong> featuretracker ............................................................................................57<br />

Test <strong>af</strong> ansigtstracker ............................................................................................61<br />

Test <strong>af</strong> øjedetektor.................................................................................................63<br />

Test <strong>af</strong> to-spalte kamera........................................................................................64<br />

Opsummering........................................................................................................65<br />

DISKUSSION............................................................................................................66<br />

KONKLUSION..........................................................................................................67<br />

PERSPEKTIVERING................................................................................................68<br />

LITTERATURLISTE .................................................................................................70<br />

APPENDIKS .............................................................................................................73<br />

Ordliste ..................................................................................................................73<br />

Vejledning til eksempelprogrammer ......................................................................73<br />

Kildekode oversigt .................................................................................................76<br />

SIDE 4


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Indledning<br />

Virtual photography er en betegnelse for det emneområde, der beskæftiger sig med kunstigt<br />

konstruerede billeder <strong>af</strong> virkelige/naturlige ting.<br />

Forskellige synsvinkler <strong>af</strong> en opstilling bliver benyttet inden for mange forskellige områder,<br />

bl.a. modelbaseret kodning til videokonference, objektgenkendelse, videosikkerhedssystemer,<br />

gennemsøgning <strong>af</strong> digitalbillede biblioteker, menneske-maskine samspil og<br />

augmentet reality (optagelser <strong>af</strong> virkelige omgivelser med kunstigt indsatte genstande).<br />

Indenfor objektgenkendelse bliver flere forskellige synsvinkler anvendt bl.a. til at lette<br />

genkendelsen <strong>af</strong> objekter fra flere forskellige vinkler. Det er således en fordel, hvis man kan<br />

beregne sig frem til nogle <strong>af</strong> de mellemliggende billeder – i stedet for at skulle optage dem.<br />

Det gælder fx videoovervågning, hvor <strong>ansigter</strong> findes i en videoovervågnings billedstrøm og<br />

derefter roteres til en normal positur for at lette genkendelsen.<br />

I en videokonference opstilling, hvor kameraet er placeret oven på skærmen, er brugerens<br />

fokus på skærmen, og blikket rettet mod billedet <strong>af</strong> personen i den anden ende. Her er<br />

problemet, at der ikke er øjenkontakt med personen i den anden ende. Hvis billedet kan<br />

roteres, så blikket er mod kameraet, kunne det skabe en større nærhed i samtalen.<br />

Målet med opgaven er at implementere et system, der kan beregne billedet <strong>af</strong> ansigtet som det<br />

ville se ud taget <strong>af</strong> et virtuelt kamera placeret "i skærmen".<br />

2D-billeder <strong>af</strong> <strong>ansigter</strong> indeholder information nok til, at mennesker kan opfatte dybde, og der<br />

eksisterer forskellige metoder, der til en vis grad kan beregne dybder og former. Det er muligt<br />

at konstruere en (delvis) 3D-model ud fra et billede, eller en serie billeder, men det er meget<br />

beregningsintensivt. Et mål er at undersøge hvor meget information det er nødvendigt at<br />

beregne og hvilke teknikker, der er nødvendige for at opnå et resultat, der giver "fysisk<br />

korrekte" billeder, som hvis de faktisk var taget fra den beregnede vinkel.<br />

Motivation til opgaven<br />

Computervision området har en masse uløste problemer (Pfeifer & Scheier 1999), som fx<br />

generel genkendelse – det menneskelige syn er stadig det bedste, der findes; den<br />

menneskelige hjerne arbejder optimalt, og genkender og husker billeder utroligt godt, selvom<br />

dennes (clock) hastighed (hvis man kan tale om en sådan for nerveceller) overgås med et par<br />

størrelsesordner <strong>af</strong> nuværende computere. At den menneskelige hjerne på dette felt er<br />

overlegen kan betyde, at der er mange opdagelser, der endnu ikke er gjort, og at man ved<br />

snedige overvejelser kan sammensætte nogle eksisterende teknikker og opnå nye resultater.<br />

Et andet aspekt er alle de anvendelser, og <strong>af</strong>ledte anvendelser <strong>af</strong> den tilegnede viden, der er<br />

mulige ved en sådan problemstilling. I første overvejelse kan selve videokonference<br />

problemstillingen gøres mere "nær". Ved almindelig samtale mellem mennesker ser man som<br />

SIDE 5


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

regel samtalepartneren i øjnene og den mimik, der udveksles indbyrdes, er en del <strong>af</strong> samtalen,<br />

som udover selve informationerne i ordene giver informationer, der kan tolkes som<br />

troværdighed, humør etc. Meget <strong>af</strong> informationen viderebringes <strong>af</strong> eksisterende løsninger,<br />

men øjenkontakten er ofte ikke eksisterende, undtagen i specielopstillinger (i stil med tvnyheders<br />

teleprompter). Håbet er at opnå en større fornemmelse <strong>af</strong>, at videokonferencen er en<br />

samtale, som hvis man var i samme rum og ikke en videokonference.<br />

Det spændende er her, at man i første omgang forsøger at løse et kommunikationsproblem på<br />

en teknisk facon, der giver nogle nye kommunikationsproblemer som er <strong>af</strong> mindre teknisk<br />

størrelse, som – igen – forsøges løst på en teknisk måde.<br />

Problemstillingen<br />

Opgavens formål er at se på teknikker til at indfange et virkeligt objekt og vise det fra<br />

vilkårlige vinkler. Dette gøres ofte ved at generere en fuld 3D geometrisk model <strong>af</strong> objektet<br />

og benytte almindelige 3D teknikker til at visualisere. Problemet med disse metoder, er<br />

imidlertid, at det ikke er ligetil at danne en 3D model <strong>af</strong> et objekt eller sceneopstilling, og ofte<br />

meget vanskeligt ved komplekse objekter, specielt hvis der kun benyttes et kamera / billede.<br />

Alternativt til disse teknikker kan man benytte en billedbaseret metode, hvor man i stedet<br />

benytter en række reference billeder fra forskellige vinkler til at danne billeder fra vilkårlige<br />

vinkler.<br />

Opgavens fokus er at se på disse teknikker og de problemer, der er derved. Problemerne er<br />

bl.a.:<br />

Hvordan findes korrespondancer mellem referencebilleder?<br />

Hvordan beregnes positioner og intensiteter i den nye synsvinkel ud fra<br />

referencebilledernes?<br />

Hvordan findes synligheden <strong>af</strong> punkter i den nye synsvinkel på baggrund <strong>af</strong><br />

geometrien?<br />

Hvilke redskaber og informationer er nødvendige for beregning <strong>af</strong> nye betragtninger?<br />

Hvilke informationer er nødvendige at antage?<br />

I hvor høj grad skal brugeren involveres? Er det i orden at bede brugeren om at udpege<br />

sine øjne eller en del <strong>af</strong> ansigtet?<br />

Kort sagt, hvad kan billedbaserede metoder? Og kan en billedbaseret metode anvendes her?<br />

Hvilke andre teknikker kan tænkes kombineret eller benyttes alene for at løse problemet?<br />

SIDE 6


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Teori, analyse og overvejelser<br />

For at få overblik over hvilke del-problemer, der eksisterer ved den overordnede<br />

problemstilling, bliver de eksisterende teknikker til klassisk rekonstruktion <strong>af</strong> 3D objekter<br />

introduceret, og hvad man derefter kan udlede om forsøgsopstillingen og problemstillingen.<br />

Der har siden man begyndte at konstruere computermodeller <strong>af</strong> omverdenen eksisteret<br />

nærmest et paradigme inden for computervision om, at gengivelsen kræver en intern 3D<br />

repræsentation. Denne idé udspringer hovedsagligt fra teorier om det menneskelige syn, hvor<br />

Marr's (Marr 1982) arbejde spiller en stor rolle. Teorier for genkendelse <strong>af</strong> objekter i det<br />

menneskelige syn, hvor der benyttes en serie <strong>af</strong> billeder i stedet for en 3D model, er først<br />

opstået senere, hvor bl.a. Edelman & Weinshall (1991) og Bülthoff & Edelman (1992) har<br />

præsenteret nogle alternative idéer. De artikler, der omtales i de efterfølgende <strong>af</strong>snit, tager<br />

udgangspunkt i en sådan repræsentation, der kun består <strong>af</strong> en række billeder i stedet for en<br />

fuld 3D model.<br />

Under udarbejdelsen <strong>af</strong> projektet blev det klart, at den metode, der blev forsøgt implementeret<br />

og gennemført, ikke var tilstrækkelig. Den viden, der blev tilegnet under forsøgene, ligger til<br />

grund for efterfølgende overvejelser og valg. Rapporten er efter dette kapitel derfor inddelt i<br />

tre dele, der hver indeholder teori og efterprøvning <strong>af</strong> de valgte løsningsforslag.<br />

Billeddannelse<br />

Billeddannelsen i de fleste naturlige synssystemer og i almindelige kameraer starter med, at<br />

lysstråler passerer ind i kameraet gennem et hul og rammer en skærm eller billedplan –<br />

kameraets lysfølsomme enhed, der registrerer lysintensiteter.<br />

For at opnå at billedet er skarpt, er det nødvendigt, at alle stråler der reflekteres fra et punkt,<br />

P, i scenen konvergerer i samme billedpunkt, p. Når dét er opnået, er P i fokus, hvis ikke<br />

bliver billedet spredt over en cirkel. Fokusering <strong>af</strong> alle refleksioner fra scenepunktet P i<br />

samme billedpunkt p kan gøres på to måder.<br />

Enten kan man reducere størrelsen <strong>af</strong> åbningen til kun et punkt – et såkaldt hulkamera. Det<br />

har den fordel, at kun en stråle fra hvert scenepunkt slipper igennem, og man opnår nogle<br />

skarpe billeder. Ulempen er at et hulkamera kræver en meget lang eksponeringstid, ofte<br />

adskillige sekunder, da der trænger meget lidt lys igennem hullet.<br />

SIDE 7


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Eller man kan introducere et<br />

optiksystem <strong>af</strong> linser, specielt<br />

rettet mod at fokusere<br />

strålerne fra hver scenepunkt<br />

i et enkelt billedpunkt.<br />

Et standard optiksystem er ret<br />

avanceret, men man kan<br />

simplificere forklaringen ved<br />

at se på det simpleste optiske<br />

system, en ideallinse. En<br />

ideallinse er karakteriseret<br />

ved en akse, kaldet den<br />

optiske akse, der går igennem<br />

linsens centrum, O, og to specielle punkter, Fv og Fh, der kaldes hhv. venstre og højre fokus,<br />

punkterne er placeret i samme <strong>af</strong>stand fra O. Denne <strong>af</strong>stand kaldes linsens fokal længde, eller<br />

brændpunktslængden.<br />

Et sådan system har egenskaberne:<br />

1. Enhver lysstråle, der passerer linsen parallelt med aksen, passerer gennem fokus på<br />

den anden side.<br />

2. Enhver lysstråle, der passerer gennem linsen fra fokus på den ene side, kommer ud<br />

parallel med aksen på den anden side.<br />

Ved at se på de to par <strong>af</strong> retvinklede trekanter kan Zz = f 2 udledes. Ved at indsætte<br />

Z ˆ = Z + f og z ˆ = z + f , kan den fundamentale ligning for ideallinser udledes (Trucco &<br />

Verri 1998):<br />

P<br />

S<br />

1 1 1<br />

+ =<br />

Zˆ<br />

zˆ<br />

f<br />

f f z<br />

Relationen giver sammenhængen mellem brændpunktslængden, billedet og objektet. Ideal-<br />

linsen har den ulempe, at det kun er punkter, der er <strong>af</strong>standen Z ˆ væk, der er i fokus, andre<br />

punkter bliver <strong>af</strong>billedet som små cirkler. Med relationen er det muligt at beregne størrelsen<br />

<strong>af</strong> cirklen et punkt giver anledning til, og beregne rækkevidden fra kameraet, hvor objekter er<br />

fokuseret tilpas godt (der <strong>af</strong>hænger <strong>af</strong> kamerasensoren) (Horn 1986 p.25.).<br />

f og z angives somme tider på kameraet, men er ofte ikke tilgængelige parametre.<br />

Z<br />

Fv Fh<br />

Figur 1 Et linsesystem med en ideallinse, normalt er der<br />

forskel i de to brændpunktslængder pga. linsens krumning<br />

(Tilpasset fra Trucco & Verri 1998) .<br />

O<br />

s<br />

p<br />

SIDE 8


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Radiometri<br />

Radiometri er den del <strong>af</strong> billeddannelsen, der beskæftiger sig med relationen mellem<br />

mængden <strong>af</strong> lys, der udsendes <strong>af</strong> lyskilden, som reflekteres fra overflader og registreres <strong>af</strong><br />

lyssensoren.<br />

To hovedpunkter er <strong>af</strong>gørende:<br />

Definitioner:<br />

Lambertflader<br />

1. Hvor meget <strong>af</strong> lyset bliver kastet tilbage <strong>af</strong> en overflade?<br />

2. Hvor meget <strong>af</strong> dette reflekterede lys rammer rent faktisk billedplanen i<br />

kameraet?<br />

Lys kastet på overfladen kaldes indstråling (eng. iradiance), i billedplanen.<br />

Lys udstrålet fra overfladen kaldes udstråling (eng. radiance), fra scenen.<br />

Den ideale model for, hvordan en overflade reflekterer lys, er Lambert modellen. Denne<br />

model antager, at hver overfladepunkt optræder lige oplyst set fra alle synsvinkler. Det<br />

tilnærmer fint ru, ikke genspejlende overflader og materialer som fx papir eller mat maling.<br />

Hvis retning og størrelse <strong>af</strong> lyset repræsenteres ved vektoren I, så er den ideale Lambertflade<br />

udstråling, L, proportional med prikproduktet 1 mellem I og fladens enhedsnormal, n (Trucco<br />

& Verri 1998):<br />

Hvor ρ > 0 er en konstant, der<br />

betegner overfladens albedo,<br />

dvs. materialets refleksions<br />

egenskab. Ligeledes skal<br />

I n<br />

T være positiv, dvs. at<br />

overfladen vender mod<br />

lyskilden og sat til 0, hvis det<br />

ikke er tilfældet.<br />

Lambert modellen er baseret<br />

på, at mængden <strong>af</strong> lys, der<br />

rammer enhver overflade, altid<br />

er proportional med cosinus til<br />

vinklen mellem lyskilden og<br />

fladenormalen (dvs. det<br />

Lyskilde<br />

I n<br />

T<br />

L = ρ<br />

Lyssensor<br />

1 Genkald at prikproduktet mellem to vektorer er matrixmultiplikation, hvor den ene vektor er transponeret.<br />

I<br />

n<br />

P<br />

L(P,d)<br />

d<br />

Overflade<br />

E(p)<br />

Optik<br />

Figur 2 Radiometri begreber: Opsamlingen <strong>af</strong> overfladens<br />

refleksionen <strong>af</strong> lyset fra lyskilden (Tilpasset fra Trucco & Verri<br />

1998).<br />

p<br />

SIDE 9


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

effektive areal <strong>af</strong> fladen set fra lyskilden). Ifølge modellen reflekterer en Lambertflade lyset i<br />

en given retning, d, proportionalt med cosinus til vinklen θ , mellem d og n. Men da fladens<br />

areal set fra retningen d, er modsat proportional til cos θ , optræder de ikke i ovenstående<br />

formel, da de udligner hinanden.<br />

Hvis man definerer en rumlig vinkel, hvor et punkt har en cirkulær udstrækning, og ignorerer<br />

energitab, kan den fundamentale ligning for radiometrisk billeddannelse udledes til (Horn<br />

1986 p.208) :<br />

E( p ) = L(<br />

P)<br />

4<br />

2<br />

π d 4<br />

Ligningen er relationen mellem den indstråling, der rammer p i billedplanen og udstrålingen<br />

fra punktet P i scenen. d er linsens diameter og f er brændpunktslængen. Ligningen udtrykker,<br />

at belysningen <strong>af</strong> p i billedplanen <strong>af</strong>tager med fjerde potens <strong>af</strong> cosinus til vinklen mellem den<br />

principale stråle gennem p og den optiske akse.<br />

Forholdet d/f bestemmer, hvor meget lys der opsamles <strong>af</strong> kameraet – jo større værdi forholdet<br />

antager, desto større mængde <strong>af</strong> L rammer billedplanen. Dvs. en stor linsediameter og lille<br />

brændvidde giver høj lysfølsomhed (men giver samtidig større <strong>af</strong>bildningsfejl).<br />

Radiometri benyttes som baggrund for shape from shading (form fra skyggelægning), shape<br />

from texture (form fra tekstur) og andre teknikker, der anvendes til at genskabe 3D strukturen<br />

<strong>af</strong> et billede, ved at gøre nogle antagelser om dannelsen <strong>af</strong> billedet og derudfra beregne<br />

dybderne i billedet.<br />

Perspektivkameraet<br />

Den mest almindelige<br />

geometriske model <strong>af</strong> et<br />

intensitetskamera, er perspektivkameramodellen.<br />

Modellen<br />

består <strong>af</strong> en billedplan, π , og et<br />

3-D punkt O, der er centrum for<br />

projektionen. Afstanden mellem<br />

de to er brændpunktslængden, f.<br />

Linien gennem O og vinkelret på<br />

planen π er den optiske akse og<br />

skæringspunktet o, er billedcentrum.<br />

Kamera koordinatsystemet<br />

defineres som det, hvor O er<br />

Y<br />

O<br />

f<br />

cos<br />

Kamera<br />

koordinatsystem<br />

f<br />

π<br />

X<br />

α<br />

o<br />

p<br />

Billedplan<br />

Z<br />

P<br />

Optiske akse<br />

Figur 3 Perspektivkamera modellen (tilpasset fra Trucco & Verri<br />

1998).<br />

SIDE 10


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

centrum, og Z-aksen er vinkelret på billedplanen. Et punkt<br />

<strong>af</strong>billedet <strong>af</strong><br />

T<br />

p = [x,y,z]<br />

i billedplanen, der er<br />

T<br />

P = [X,Y,Z ] i scenen, er relateret med det perspektiviske kameras fundamentale<br />

ligning (Trucco & Verri 1998):<br />

X<br />

x = f<br />

Z<br />

Y<br />

y = f<br />

Z<br />

z koordinaten er altid planens <strong>af</strong>stand, f, til centrum og p skrives derfor ofte i uden, som:<br />

T<br />

p = [x,y]<br />

Koordinaterne er alle kamerakoordinater (specificeret i fx millimeter).<br />

Perspektivprojektionen har den egenskab, at linier bliver bevaret som linier, men pga.<br />

faktoren 1/Z, bliver hverken <strong>af</strong>stande mellem punkter eller vinkler mellem linier bevaret.<br />

Parallelle linier bliver derfor ikke bevaret parallelle, med mindre de er parallelle med<br />

billedplanen.<br />

Hvis z <strong>af</strong>standen imellem punkterne, δ z , i scenen er små i forhold til den gennemsnitlige<br />

<strong>af</strong>stand, Z , fra kameraet til punkterne, kan man benytte tilnærmelsen, svagt perspektiv:<br />

x = f<br />

X<br />

Z<br />

f<br />

≈ X<br />

Z<br />

Y f<br />

y = f ≈ Y<br />

Z Z<br />

Der beskriver en ortogr<strong>af</strong>isk projektion,<br />

dvs. x=X, y=Y, efterfulgt <strong>af</strong> en skalering<br />

f<br />

med .<br />

Z<br />

Kameraparametre<br />

De eksterne parametre definerer<br />

kameraets placering i rummet i forhold til scenen eller objektet. De interne parametre<br />

definerer kameraets interne egenskaber som optik og relationen mellem pixel og<br />

kamerakoordinater.<br />

De ydre kameraparametre er defineret som et sæt <strong>af</strong> geometriske parametre, der entydigt<br />

bestemmer en transformation fra det ukendte kamerakoordinatsystem til et kendt koordinatsystem,<br />

kaldet verdenskoordinatsystemet.<br />

Til det kræves en translationsvektor, T, der beskriver den relative <strong>af</strong>stand mellem centrum <strong>af</strong><br />

de to koordinatsystemer, og en 3× 3 ortogonal rotationsmatrix, der bringer de<br />

korresponderende akser <strong>af</strong> de to koordinatsystemer over i hinanden. At matricen er ortogonal,<br />

O<br />

Figur 4 Forskellen mellem ortogr<strong>af</strong>isk (parallel)<br />

projektion og perspektivisk projektion. En 2D-firkant<br />

projiceret ind på en akse.<br />

SIDE 11


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

T<br />

T<br />

medfører, at den kun har tre frihedsgrader ( R R = RR = I ). Relationen mellem kamera og<br />

verdens koordinater kan da skrives som PC = R ( PW<br />

− T)<br />

.<br />

De indre kameraparametre er det sæt <strong>af</strong> parametre, der karakteriserer de optiske, geometriske<br />

og digitale egenskaber ved kameraet. For et hulkamera er der tre parametre:<br />

Perspektivprojektionen, hvor det eneste parameter er brændpunktslængden f.<br />

Transformationen mellem kamerakoordinater og pixelkoordinater.<br />

Den geometriske forvrængning forsaget <strong>af</strong> optikken.<br />

Transformationen mellem billedkoordinater og kamera, under antagelse <strong>af</strong> CCD 2 føleren er<br />

rektangulær, og at der ikke er nogen optisk forvrængning, kan beregnes ved:<br />

x = −(<br />

x<br />

y = −(<br />

y<br />

im<br />

im<br />

− o ) s<br />

x<br />

y<br />

x<br />

− o ) s<br />

Hvor (ox,oy) er pixelkoordinater for billedcentrum og (sx,sy) er pixeldimensionerne i<br />

millimeter. Den geometriske forvrængning kan modelleres som et polynomium, hvor<br />

forvrængningen <strong>af</strong>hænger <strong>af</strong> <strong>af</strong>standen til billedcentrum, men da forvrængningen ofte er<br />

ganske lille, kan man se bort fra den med mindre, man kræver høj præcision.<br />

De interne og eksterne parametre kan samles i 2 matricer (uden forvrængning medtaget)<br />

(Trucco & Verri 1998):<br />

M<br />

M<br />

3D-Rekonstruktion med et kamera<br />

int<br />

ext<br />

=<br />

=<br />

−<br />

r<br />

r<br />

r<br />

11<br />

21<br />

31<br />

f / s<br />

0<br />

0<br />

r<br />

r<br />

r<br />

x<br />

12<br />

22<br />

32<br />

−<br />

r<br />

r<br />

r<br />

13<br />

23<br />

33<br />

0<br />

0<br />

y<br />

f / s<br />

T<br />

− R T<br />

1<br />

T<br />

− R T<br />

2<br />

T<br />

− R T<br />

Hvis '1' tilføjes som fjerde koordinat på verdenskoordinaterne (homogene koordinater 3 ), så<br />

kan en matrixligning opstilles for den perspektiviske projektion:<br />

2 Charge Coupled Device, array <strong>af</strong> lysfølsomme transistorer. Lysføler der benyttes i digitale kameraer.<br />

3 Homogene koordinater er en udvidelse med en dimension, hvor relationen til de kartesiske koordinater for<br />

(X,Y,Z,W) er (X/W,Y/W,Z/W).<br />

y<br />

3<br />

o<br />

o<br />

x<br />

y<br />

1<br />

SIDE 12


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

x<br />

x<br />

x<br />

1<br />

2<br />

3<br />

= M<br />

int<br />

M<br />

X<br />

Y<br />

w<br />

ext<br />

Z w<br />

Det interessante her er, at forholdene x1/x3 og x2/x3 er billedkoordinaterne. Matrixproduktet<br />

M int M ext er projektionsmatricen og hvis man kan bestemme denne, så kan man beregne<br />

verdenskoordinaterne og rekonstruere en 3D model. For at bestemme parametrene og<br />

kalibrere kameraet er man nødt til at optage et billede <strong>af</strong> en kendt opstilling, hvor man kender<br />

forhold, <strong>af</strong>stande etc. Alt efter hvad man skal bruge parametrene til, findes der metoder til at<br />

finde hele projektionsmatricen, dvs. både interne og eksterne parametre og metoder til at finde<br />

dem separeret, hvilket er en besværlig proces. I det følgende ses der på metoder, der udleder<br />

3D informationer uden at kalibrere kameraet først. Til det er det nødvendigt med to kameraer.<br />

Stereopsis og epipolær geometri<br />

Epipolær 4 geometri er de geometriske sammenhænge, der er bag stereopsis, kamera<br />

opstillinger med to (eller flere), kameraer. Den kan bl.a. benyttes til at lette søgningen efter<br />

korrespondancer mellem billeder i en stereoopstilling og ved rekonstruktion.<br />

Referencekoordinatsystemerne i det højre og venstre kamera, er relateret via de eksterne<br />

kameraparametre. Disse bestemmer en transformation i 3D rummet, defineret ved en<br />

translationsvektor, T, og en rotationsmatrix R. Givet et punkt P i rummet er relationen<br />

mellem PL og PR, der er punktet set fra hhv. det venstre og det højre kamerakoordinatsystem,<br />

følgende:<br />

P R(<br />

P − T)<br />

R<br />

= L<br />

4 epi-: præfiks (græsk), 1: på. 2: over. 3: desuden. (Oxford Pocket English Dictionary). Dvs. epipolær geometri<br />

er en ekstra-akse eller på-polen geometri – refererende til et koordinatsystem set fra et andet.<br />

1<br />

w<br />

SIDE 13


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Årsagen til at det kaldes epipolærgeometri, er på grund <strong>af</strong> skæringspunkterne der dannes i<br />

billedplanerne, hvor linien mellem de to kameracentre skærer. Det er altså <strong>af</strong>billedet <strong>af</strong><br />

modsatte kameras centrum, i<br />

det andet kameras billedplan.<br />

De to punkter kaldes<br />

epipolerne.<br />

Vigtigheden <strong>af</strong> epipolærgeometri,<br />

kommer <strong>af</strong> den<br />

plan udspændt <strong>af</strong> de to centre<br />

Ol, Or og et punkt P. Denne<br />

plan skærer begge billedplaner<br />

i en linie, kaldet den<br />

epipolære linie. Når der søges<br />

efter korrespondance til et<br />

punkt pl i det venstre<br />

koordinatsystem, så er pr begrænset til at ligge på den epipolære linie i det højre<br />

koordinatsystem, hvilket indskrænker søgningen efter korrespondancen til et 1D problem.<br />

Dette forhold kaldes den epipolære begrænsning.<br />

For at komme fra det ene kameras koordinatsystem til det andet benyttes en transformationsmatrix,<br />

der betegnes den essentielle matrix. Den essentielle matrix transformerer et punkt fra<br />

T<br />

det ene koordinatsystem til det andet i kamerakoordinater: p = 0.<br />

Den giver forbindelsen<br />

r l Ep<br />

mellem den epipolære begrænsning og de eksterne kameraparametre. Punkterne kan betragtes<br />

som liggende i den projektive plan, og man kan derfor se Epl som værende den projektive<br />

(epipolære) linie i den højre plan, u r = Ep l , der skærer punktet pr og epipolen er. E er derfor<br />

forbindelsen mellem punkter og epipolære linier.<br />

Problemet med den essentielle matrix er, at den er specificeret i kamerakoordinater, og det<br />

man faktisk måler er pixelkoordinater. En transformation mellem kamera og pixelkoordinater,<br />

dvs. de interne kameraegenskaber, er derfor ønsket. Dette råder den fundamentale matrix bod<br />

på.<br />

Den fundamentale matrix kan specificeres ud fra den essentielle matrix, som:<br />

F ,<br />

−T<br />

−1<br />

= r l EM M<br />

hvor M specificerer de interne kameraparametre for højre og venstre kamera, og den<br />

T<br />

tilsvarende transformation <strong>af</strong> punkter: p = 0 .<br />

r l Fp<br />

Forbindelse mellem punkter og epipolære linier kan derfor opstilles i pixelkoordinater:<br />

u = Fp . Dette betyder, at den fundamentale matrix og den epipolære geometri, kan<br />

r<br />

l<br />

Ol<br />

Epipolær<br />

linie<br />

π l<br />

r π<br />

Epipolær<br />

plan<br />

pl<br />

el<br />

bestemmes uden kendskab til hverken interne eller eksterne kameraparametre, men<br />

udelukkende udfra korrespondancer specificeret i pixelkoordinater.<br />

Pl<br />

Pw<br />

Pr<br />

er<br />

Epipolær<br />

linie<br />

Figur 5 Epipolær geometri – relationen mellem to kameraer (Tilpasset<br />

fra Trucco & Verri 1998).<br />

pr<br />

Or<br />

SIDE 14


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Otte-punkts algoritmen<br />

Beregning <strong>af</strong> den fundamentale matrix kan foretages på flere måder, den simpleste er otte<br />

punkts algoritmen (Longuet-Higgins 1981). Algoritmen kræver, at mindst otte<br />

korrespondancer allerede er etableret, hver korrespondance giver en lineær ligning, der samlet<br />

giver et lineært ligningssystem. Den ikke trivielle løsning specificerer de ni indgange i F, og<br />

hvis mere end otte korrespondancer er fundet, så kan løsningen findes med "Singular Value<br />

Decomposition (SVD)", der er en teknik, der benyttes til at løse numeriske ligningssystemer<br />

eller matricer, hvor almindelig Gauss-Jordan eliminering ikke giver brugbare resultater (Press<br />

et al. 1989).<br />

3D Rekonstruktion med to kameraer<br />

Når korrespondanceproblemet er løst, og den epipolære geometri er fundet, <strong>af</strong>hænger<br />

rekonstruktionen <strong>af</strong> hvilke parametre, der er kendt. Disse kan deles i tre hovedtilfælde:<br />

a) Hvis både de interne og eksterne parametre er kendt, kan en rekonstruktion dannes ved<br />

triangulering.<br />

b) Hvis kun de interne parametre er kendt, så kan problemet stadig løses, og de eksterne<br />

parametre estimeres, men kun op til en ukendt skal<strong>af</strong>aktor.<br />

c) Hvis kun pixelkorrespondancer er kendt, kan en rekonstruktion stadig opnås, men kun<br />

op til en ukendt projektivtransformation.<br />

Hvis der ses på Figur 5, så svarer a) til, at vinklerne i trekanten mellem de to kameracentre og<br />

punktet samt <strong>af</strong>standen mellem de to kamera centre er kendt. Det samme gælder for b) men<br />

her kendes <strong>af</strong>standen mellem kameraerne ikke. Forhold mellem rekonstruerede punkter bliver<br />

derfor korrekt – men <strong>af</strong>viger fra virkeligheden med en skal<strong>af</strong>aktor. Ved c) kendes vinklerne<br />

heller ikke (dvs. f er ukendt), og resultatet <strong>af</strong>viger med en projektivtransformation fra<br />

virkeligheden.<br />

Forsøgsopstilling<br />

Forsøgsopstillingen er en typisk videokonference opstilling, med et kamera på toppen <strong>af</strong><br />

skærmen og brugeren foran skærmen. Når brugeren deltager i en videokonference, kigger<br />

denne på billedet <strong>af</strong> modtageren midt på skærmen, og ikke direkte ind i kameraet.<br />

De informationer, der findes, er en billedstrøm <strong>af</strong> et ansigt. Her vil der være forskellige fagter,<br />

som fx nik, blink med øjnene, smil osv. der er henvendt til billedet på skærmen. Der skal altså<br />

findes en metode til enten at lave transformationen fra billedstrømmen direkte eller opnå<br />

informationer om ansigtet på forhånd, og benytte disse til at udføre en løbende<br />

transformation.<br />

SIDE 15


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

At udføre transformationen direkte er nok udelukket, da der er nogle skjulte flader (fx under<br />

næsen og hagen), der ikke er nogen information om. En realiserbar metode kunne derfor være<br />

at få brugeren til at udføre nogle bestemte bevægelser direkte mod kameraet. Det kunne fx<br />

være at se direkte ind i kameraet, trykke en tast og siden se tilbage ned på skærmen.<br />

Skitsen viser opstillingen, som den<br />

typisk vil se ud ved en<br />

videokonference, hvis brugeren sidder<br />

mellem 40 og 50 cm fra skærmen, der<br />

antages at være 17" og vinduet med<br />

video <strong>af</strong> modparten er placeret over<br />

midten <strong>af</strong> skærmen. Dvs. højden<br />

mellem kamera og vinduet på skærmen<br />

h=9-18 cm og <strong>af</strong>standen mellem<br />

brugeren og skærmen l=40-50cm.<br />

Vinklen i trekanten mellem kameraet<br />

og det virtuelle kamera bliver derfor ArcTan( h/l), dvs. mellem 10 o og 25 o Figur 6 Opstillingen<br />

grader.<br />

Kameravalget er et Logitech ClickSmart 510, det har en maksimal opløsning på 640x480 i 24<br />

bit farver, og er specificeret til 30 billeder per sekund. Valget <strong>af</strong> Logitech kameraet er truffet,<br />

fordi der eksisterer et SDK (udviklings kit), der letter tilgangen til billeddata væsentlig,<br />

desuden kan man benytte udviklingskittet med alle Logitechs andre kameraer. Prisen er<br />

samtidig lav.<br />

Kameraet tilsluttes USB porten, og det giver med den nuværende standard ikke en så høj<br />

hastighed, da USB 1.1 standard kun specificerer en hastighed på ca. 12MB/s. En hurtig<br />

udregning <strong>af</strong>slører, at kameraets 30 billeder per sekund højest kan gælde for 320x240<br />

(6,6MB/s). Der er heller ikke mulighed for at få billeder fra mere end et kamera ad gangen<br />

pga. opbygningen <strong>af</strong> udviklingskittet.<br />

Som udviklingsmiljø er Delphi valgt, hvilket er et RAD (rapid application development)<br />

værktøj med en optimerende oversætter. Med Delphi eksisterer der allerede klasser til at læse<br />

og skrive billeder i forskellige formater og let opbygning <strong>af</strong> brugergrænseflader. Da Delphi er<br />

baseret på objektpascal, er man selvfølgelig <strong>af</strong>skåret fra, på en let måde, at anvende meget <strong>af</strong><br />

det computer vision kode, der allerede eksisterer i C og C++.<br />

Til billedbehandling benyttes Intel Image Processing Library (Intel 2000), der er et processor<br />

optimeret bibliotek <strong>af</strong> billedbehandling rutiner. Bl.a. har biblioteket understøttelse <strong>af</strong><br />

flydende-tal billeder, filtreringer, aritmetik og andet.<br />

Til visualisering <strong>af</strong> 3D-data er Microsoft DirectX 8 valgt, der i denne seneste version ligger<br />

tæt op ad OpenGL.<br />

SIDE 16


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Opsummering<br />

Billedsystemet i det menneskelige øje og i et kamera udfører en perspektiv projektion, som<br />

leder til et betydelig tab <strong>af</strong> informationer. Alle punkter langs en linie udgående fra det optiske<br />

center mod et scenepunkt er projiceret til et enkelt billedpunkt. Det modsatte, der drejer sig<br />

om at udlede 3D koordinaterne fra billedmålinger, er en tvetydig opgave, der kræver flere<br />

informationer for at blive løst.<br />

Sammenhængen mellem billedintensitet og 3D geometrien <strong>af</strong> det korresponderende punkt i<br />

scenen er meget kompliceret. Pixelintensiteten <strong>af</strong>hænger <strong>af</strong> overfladerefleksivitets parametre,<br />

overfladeorientering, type og position <strong>af</strong> oplysningen og positionen <strong>af</strong> beskueren. At prøve at<br />

udlede 3D geometri – overflade orientering og dybde – er en ganske svær opgave.<br />

Støj og høj beregningskompleksitet <strong>af</strong> mange algoritmer medvirker også til problemerne –<br />

selvom det ikke er specifikt for 3D vision.<br />

For at rekonstruere en 3D model kan man benytte en <strong>af</strong> de vel<strong>af</strong>prøvede teknikker, hvor<br />

forskellige niveauer <strong>af</strong> kalibrering er nødvendig.<br />

Hvis man vil benytte en <strong>af</strong> disse med et kamera, er det mindst nødvendigt at bestemme de<br />

interne kameraparametre, og lettest hvis også de eksterne haves. Det er ganske omfattende, at<br />

kalibrere kameraet, da det er selve opstillingen, der skal kalibreres. De interne parametre skal<br />

kun bestemtes en gang for hver kamera, men de eksterne skal bestemmes for hver ændring i<br />

opstillingen (fx kamera flyttes, objekt flyttes).<br />

Hvis to kameraer haves, kan man opnå en rekonstruktion op til en ukendt projektion, når<br />

ingen <strong>af</strong> kameraparametrene er kendt, så den vel nok sværest overkommelige begrænsning på<br />

forsøgsopstillingen er restriktionen til kun et ukalibreret kamera.<br />

Der findes forskellige teknikker (bl.a. structure from motion og shape from optic flow, Sonka<br />

et al 1999), til at bestemme 3D informationer udfra bevægelse over flere billeder og teknikker<br />

baseret på radiometri, der kun benytter et billede, som ikke er omtalt her. Men med kun et<br />

ukalibreret kamera, er det nødvendigt at se på hvilke alternative teknikker, der findes, og om<br />

der findes nogle, som ikke behøver den omfattende rekonstruktion <strong>af</strong> en 3D-model. Oftest<br />

arbejdes der kun med gråtone billeder, da repræsentationen er ganske simpel, men<br />

farveinformationen fås fra kameraet, så måske giver det nogle fordele der kan udnyttes.<br />

De efterfølgende tre <strong>af</strong>snit <strong>af</strong>spejler tre faser <strong>af</strong> udviklingsprocessen, hvor teorien er blevet<br />

genovervejet og sammenholdt med den nye viden, der er tilegnet ved forsøgene.<br />

SIDE 17


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Del 1. 2D morph metode<br />

Da det ikke er nogen let metode til umiddelbart at rekonstruere 3D informationer fra et eller<br />

flere billeder, er det værd at se på hvilke metoder der eksistere, hvor de informationer der<br />

benyttes til at genskabe billedet <strong>af</strong> et objekt ikke er baseret på en 3D model, men på en række<br />

billeder koblet med information.<br />

Hvilke teknikker findes der til at konstruere eller interpolere et nyt billede udfra eksisterende?<br />

Den første indskydelse er morphing (fx Wolberg 1998) kendt fra film og tv. Det er en teknik<br />

som ofte anvendes til at generere flydende overgange mellem to billeder. Som oftest anvendes<br />

metoden til at lave en overgang mellem to forskellige <strong>ansigter</strong> eller to forskellige objekter (fx<br />

menneske og dyreansigt). I de tilfælde er det ligegyldigt, hvorvidt de mellemliggende billeder<br />

bevarer geometrien, da de ikke svarer til nogen geometrisk transformation. De eksisterende<br />

teknikker til dette er rene 2D metoder, og det viser sig, at de kun i ganske få tilfælde bevarer<br />

geometri, hvis det er to billeder <strong>af</strong> samme objekt med forskellig betragtningsvinkel, der<br />

morfes imellem. Der bliver ikke taget højde for om de mellemliggende billeder svarer til en<br />

rotation eller lignende <strong>af</strong> objektet, i stedet bliver de mellemliggende billeder som regel<br />

fordrejet på en unaturlig måde, hvis der er forskel i positur eller synsvinkel.<br />

Den første metode, som tager højde for dette, er 'View Morphing', som er en videreudvikling,<br />

der genererer fysisk gyldige mellemliggende billeder.<br />

View morphing<br />

Figur 7 Deformerende morf (Seitz & Dyer 1996).<br />

View morphing (Seitz & Dyer (1995,1996)) eller betragtningsvinkel morfing introducerer en<br />

ny morfing metode, der er en udvidelse <strong>af</strong> morfing, som bevarer formen <strong>af</strong> et objekt i<br />

mellemliggende billeder. Metoden benytter et princip fra projektiv geometri til at håndtere 3D<br />

projektivkamera og scenetransformationer.<br />

Ved almindelig morf bliver mellembillederne beregnet ved at udføre en transformation<br />

(warping) på de to billeder og tage gennemsnittet <strong>af</strong> pixelværdierne (intensiteten) <strong>af</strong> disse. De<br />

forskellige morfmetoder <strong>af</strong>viger kun fra hinanden på den måde, korrespondancer bliver<br />

beregnet (Wolberg 1998).<br />

SIDE 18


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Almindelig morfing bevarer den geometriske form <strong>af</strong> et objekt, når billederne er parallelle,<br />

dvs. hvis billederne er taget <strong>af</strong> et kamera, der kun er forflyttet mellem de to optagelser eller<br />

hvis objektet er flyttet. Hvis der er foretaget et zoom er billederne stadig taget parallelt og<br />

formen bliver bevaret. Hvis billederne derimod er taget <strong>af</strong> et roterende kamera eller objektet<br />

er roteret – som Figur 7- da bliver formen ikke bevaret.<br />

Idéen bag view morfing er at få bragt billederne i parallel først og derefter udføre morfing. I<br />

det følgende skitseres Seitz & Dyer's (1996) metode.<br />

Metoden benytter en proces, der minder om den regulering <strong>af</strong> billederne, man udfører ved<br />

stereobilledepar for at lette tilegnelsen <strong>af</strong> korrespondancer. For at beregne reprojektionen <strong>af</strong><br />

de to billeder i parallel, er det nødvendigt at estimere den fundamentale matrix med fx ottepunkts<br />

algoritmen. Et tilstrækkeligt krav for at de to billeder, I0 og I1, er parallelle er, at deres<br />

fundamentale matrix har formen:<br />

ˆF =<br />

0<br />

0<br />

0<br />

Dvs. for at bringe de to billeder i parallel, skal der konstrueres to projektionsmatricer H0 og<br />

−1 T −1<br />

H1 der har egenskaberne: ( H ) FH = Fˆ<br />

1<br />

0<br />

Udfra den fundamentale matrix, F, kan man bestemme epipolerne, e0, e1, de findes som<br />

enheds egenvektorene <strong>af</strong> hhv. F og F T , korresponderende til egenværdien 0 (ifølge Seitz &<br />

Dyer 1996).<br />

0<br />

0<br />

1<br />

0<br />

−1<br />

x y<br />

Derefter vælges en vilkårlig rotationsakse 0 = [ d 0 , d 0 , 0]<br />

∈ I 0<br />

korresponderende akse i I1 bestemt til: [ ] T<br />

= − y, x,<br />

0<br />

e0, dvs. [ ] T<br />

y x<br />

d = − e e , 0<br />

0<br />

0 , 0<br />

Der kan derefter bestemmes to rotationsvinkler, θ 0 og θ 1 ved:<br />

To 3× 3 rotationsmatricer,<br />

1<br />

0<br />

T<br />

T<br />

d Givet [ , y,<br />

z]<br />

= Fd 0<br />

x er den<br />

d . Et passende valg <strong>af</strong> d0, er vinkelret på<br />

y x x<br />

π di<br />

ei<br />

− di<br />

e<br />

θ i = − arctan<br />

z<br />

2<br />

e<br />

di<br />

Rθ der svarer til en rotation i<br />

i<br />

i<br />

y<br />

i<br />

θ grader om aksen di, kan stilles op.<br />

Når disse to anvendes til at fordreje (warp) de respektive billeder, bliver billedplanerne bragt<br />

parallelle. Seitz & Dyer (1996) benytter endnu en rotation <strong>af</strong> billederne for at få skanlinierne<br />

anbragt på linie, så selve morfingen reduceres til interpolation <strong>af</strong> skanlinier. De endelige<br />

projektionsmatricer bliver:<br />

H<br />

H<br />

0<br />

1<br />

=<br />

R<br />

θ<br />

0<br />

= TR<br />

R<br />

θ<br />

1<br />

d0<br />

θ<br />

R<br />

0<br />

d1<br />

θ<br />

1<br />

SIDE 19


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Hvor Rθ er en plan rotation, om z-aksen og T er en forflytning og skaleringsmatrix (Seitz &<br />

Dyer 1996 i appendiks). Det er imidlertid nok at udføre den første rotation, for at opnå at<br />

billederne er parallelle, selvom den yderligere rotation simplificerer morfingen.<br />

For at udføre en view morphing kræves der derfor:<br />

1) To billeder, der repræsenterer en betragtning <strong>af</strong> samme scene eller objekt.<br />

2) Billedernes respektive projektionsmatricer.<br />

3) Korrespondancen mellem pixels i de to billeder.<br />

En tretrins algoritme til dette præsenteres <strong>af</strong> Seitz & Dyer (1996):<br />

1) Prewarp: Anvend de projektive transformationer<br />

bliver bragt i parallel betragtning Î0 og Î1.<br />

H på hhv. I0 og I1, så de<br />

1 1<br />

0 1 ,<br />

− −<br />

H<br />

2) Morph: Lineærinterpolation mellem de to transformerede billeder giver et<br />

formbevarende mellemliggende billede ÎS.<br />

3) Postwarp: Anvend HS på ÎS, givende det endelige billede IS.<br />

Hvor HS er en lineær interpolation <strong>af</strong> H0 og H1, dvs. H = 1−<br />

s)<br />

H + sH<br />

, s ∈ [ 0,<br />

1]<br />

.<br />

Figur 8 View morphing i tre trin (fra Seitz & Dyer 1996).<br />

S<br />

( 0 1<br />

Metoden foreslås implementeret med skanlinie interpolering <strong>af</strong> Seitz & Dyer (1996). Ved<br />

transformationen kan de to billeders skanlinier anbringes, så de korresponderer billederne<br />

SIDE 20


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

imellem, hvilket gør, at interpoleringen <strong>af</strong> pixelværdier blot skal foretages mellem horisontale<br />

billedlinier. På grund <strong>af</strong> de forskellige fordrejninger, der foretages for at lave pre og postwarp,<br />

kan det resulterende billede ende med at være støjfyldt. For at løse dette foreslår Seitz & Dyer<br />

(1996), at man laver supersampling. Alternativt er det muligt at kombinere alle<br />

billedtransformationerne sammen til en samlet warp-transformation på bekostning <strong>af</strong><br />

skanlinie egenskaben.<br />

Forsøg og implementation<br />

For at få en idé om metodens muligheder blev der set på en eksisterende implementation <strong>af</strong><br />

metoden. I Intel Open Source Computer Vision Library (Intel 2001) findes en implementation<br />

præcis som beskrevet ovenfor, baseret på skanlinie interpolering.<br />

Metoden/implementationen er både imponerende og skuffende. Imponerende fordi morfingen<br />

virkelig giver et indtryk <strong>af</strong> en 3-dimensional transformering fra det ene billede til det andet,<br />

og skuffende fordi resultaterne er meget støjfyldte og udregningerne langsomme.<br />

Figur 9 View morphing med OpenCV (Intel 2001). Det midterste billede er et virtuelt billede baseret på<br />

højre og venstre billede. Bemærk fejlene omkring venstre øje og ekkovirkningerne ved kinden (billede fra<br />

OpenCV Intel 2001).<br />

Ved nærmere granskning <strong>af</strong> implementationen og dokumentationen ser det ud til at den sidste<br />

transformation (postwarp) er implementeret "forlæns" 5 . Dokumentationen angiver, at der i<br />

sidste trin bliver anvendt en deletemoire funktion (Intel 2001), der skal eliminere sorte huller.<br />

Disse er opstået, når skanlinierne ikke ligger lige op ad hinanden. I stedet for at implementere<br />

dette "baglæns" så værdier, der er mellem to skanlinier kan interpoleres, bliver der først<br />

kompenseret (knap så godt) for det bagefter.<br />

På den baggrund faldt beslutningen på at lave en implementation, hvor hele transformationen<br />

bliver udført på en gang med en samlet fordrejning. Derfor blev de forskellige metoder til<br />

5 Med forlæns menes, at i stedet for at mappe hver pixel over i en ny position, beregnes der fra<br />

destinationsbilledet, hvor en pixel oprinder fra. På den måde undgås huller stammende fra heltals <strong>af</strong>rundinger,<br />

forskellige typer interpolation kan benyttes, som også foreslået <strong>af</strong> Trucco & Verri 1998 p. 161.<br />

SIDE 21


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

kombineret morf undersøgt. På baggrund <strong>af</strong> Wolberg's (1998) undersøgelse <strong>af</strong> morfmetoder,<br />

blev en metode baseret på "Multilevel Free-Form Deformations (MFFD)" (Lee et al. 1995,<br />

Lee et al. 1997) valgt. Man kunne selvfølgelig have forsøgt at forbedre den eksisterende<br />

metode, men et interessant problem er at lave en implementation, der udnytter tekstur<br />

mapning, som foreslået i Seitz & Dyer 1996, for at udnytte eksisterende 3D-hardware. I første<br />

omgang antages det, at korresponderende kendetegn kan specificeres i hånden. Senere skal en<br />

algoritme til det anvendes (og det skal, ikke overraskende, vise sig at give endnu et problem).<br />

Multilevel Free-Form Deformations<br />

Multilevel Free-form deformations er en teknik, der kan benyttes til at konstruere kontinuerte<br />

en-til-en warp mellem par <strong>af</strong> korresponderende kendetegn. Metoden er baseret på videre<br />

udviklinger <strong>af</strong> Free-Form deformations (bl.a. Coquillart 1990 og Forsey & Bartels 1988), der<br />

benyttes til at lave overbevisende deformerede 3D objekter i computergr<strong>af</strong>ik. Metoden<br />

benytter uniforme ikke-rationale B-splines (Foley et al. 1996 pp.491-495) til at tilnærme en<br />

flade.<br />

Metoden virker som følgende (Lee et al. 1995,1997):<br />

Lad Ω = { x , y)<br />

| 0 ≤ x < m,<br />

0 ≤ y < n}<br />

mængde <strong>af</strong> spredte punkter { x , y , z ) }<br />

( være et rektangulært område i xy-planen. Betragt en<br />

P = ( c c c i 3D-rummet, hvor (xc,yc) er et punkt i Ω . For at<br />

tilnærme punkterne formuleres en aproksimerende funktion f som en uniform bikubisk Bspline<br />

funktion, hvor funktionsværdien <strong>af</strong> f i (x,y) tilnærmer punktets z værdi.<br />

f er defineret ved et ( m + 3)<br />

× ( n + 3)<br />

net <strong>af</strong> kontrolpunkter Φ , der dækker Ω . Lad φ ij være<br />

værdien <strong>af</strong> det ij-de kontrolpunkt i nettet Φ på pladsen (i,j), hvor i = −1<br />

, 0,<br />

, m + 1 og<br />

j = −1<br />

, 0,<br />

, n + 1.<br />

Den approksimerende funktion er bestemt ved kontrolpunkterne som:<br />

3<br />

3<br />

f ( x,<br />

y)<br />

= B ( s)<br />

B ( t)<br />

φ<br />

k= 0 l=<br />

0<br />

k<br />

l<br />

( i+<br />

k )( j+<br />

l )<br />

Hvor i = x −1<br />

, j = y −1,<br />

s = x − x og t = y − y , hvor betegner nedrunding til heltal<br />

(floor) og Bk og Bl er de uniforme kubiske B-spline basis funktioner, der er defineret som:<br />

3<br />

B ( t)<br />

= ( 1−<br />

t)<br />

/ 6<br />

0<br />

B ( t)<br />

= ( 3t<br />

1<br />

2<br />

B ( t)<br />

= t<br />

3<br />

3<br />

3<br />

B ( t)<br />

= ( −3t<br />

/ 6<br />

− 6t<br />

3<br />

2<br />

+ 3t<br />

+<br />

2<br />

4)<br />

/ 6<br />

+ 3t<br />

+ 1)<br />

/ 6<br />

Hvor 0 ≤ t < 1.<br />

De tjener til at vægte bidragene til f fra hver kontrolpunkt, alt efter hvor langt<br />

fra (x,y) de er. Problemet er nu at finde de kontrolpunkter for f, der tilnærmer punkterne i P<br />

bedst.<br />

SIDE 22


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

f(x,y) <strong>af</strong>hænger <strong>af</strong> de 16 kontrolpunkter, der er naboer til (x,y). For at funktionen skal tage<br />

værdien z i punktet, skal kontrolpunkterne φ kl opfylde:<br />

3<br />

z = ω φ<br />

3<br />

k = 0 l=<br />

0<br />

Hvor ω ( s)<br />

B ( t)<br />

. Da der er mange værdier, der opfylder relationen, vælges værdierne<br />

kl Bk l =<br />

på en mindste kvadraters metode vis, der minimerer<br />

En løsning kan skrives op som (Lee et al. 1997):<br />

φ<br />

kl<br />

ω z<br />

kl<br />

kl<br />

kl = 3 3 2<br />

ω<br />

a= 0 b= 0 ab<br />

3 3 2<br />

k= 0 l= 0 kl<br />

Hvis man ser på datapunkterne i P, bliver de benyttet til at specifice 4× 4 naboskabet, men<br />

for tilpas tætte datapunkter, kan der opstå overlap mellem naboskaberne. For hvert punkt<br />

( x, y,<br />

z)<br />

i P, giver φij en forskellig værdi φ c :<br />

φ ij bliver valgt for at minimere fejlen<br />

φ<br />

ω z<br />

c<br />

c = 3 3 2<br />

ω<br />

a= 0 b= 0 ab<br />

φ .<br />

e( φij )<br />

− φc<br />

2<br />

= ( ω c )<br />

c cφij<br />

ω , det gøres ved at<br />

differentiere denne med hensyn til φ ij et udtryk for kontrolpunkterne bliver udledt til:<br />

φ<br />

ω φ<br />

2<br />

c c c<br />

ij =<br />

2<br />

ω c c<br />

Ud fra disse formulerer Lee et al. 1997 en algoritme (BA) til bestemmelse <strong>af</strong> f. Tilnærmelsen<br />

til datapunkterne med BA algoritmen tilnærmer lokalt (se figur 10), fordi B-splines har lokal<br />

kontrol, dvs. et kontrolpunkt kan flyttes uden at skabe andet end en lokal ændring, derfor<br />

genereres fladen som enten en glat, men ringe tilnærmelse, eller en mængde præcise spidser.<br />

SIDE 23


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Figur 10 B-Spline approksimering med forskellige antal kontrolpunkter. Det ses, at den glatteste<br />

tilnærmelse er c), mens mindst fejl er d) (fra Lee et al. 1997)<br />

For at opnå en glat flade, som (c), hvor punkterne tilnærmes så godt som (d) introduceres en<br />

multilevel B-spline approksimation, som opnår dette. Idéen er, at der laves et "groft" net <strong>af</strong><br />

kontrolpunkter til den overordnede struktur (få kontrolpunkter), og trinvis forfining med et<br />

finere net <strong>af</strong> kontrolpunkter (flere og flere kontrolpunkter). Hvor de grove net r<strong>af</strong>fineres til et<br />

finere net, der definerer samme approksimationsfunktion og adderes med det finere net. På<br />

denne måde opnås en glat og præcis approksimationsfunktion (se figur 12).<br />

Hvis forfiningen <strong>af</strong> et net <strong>af</strong> kontrolpunkter gøres fra et net Φ ( m + 3)<br />

× ( n + 3)<br />

til nettet Φ '<br />

( 2m<br />

+ 3)<br />

× ( 2n<br />

+ 3)<br />

, hvor <strong>af</strong>standen mellem kontrolpunkterne er halveret, kan en simpel<br />

forfiningsalgoritme opskrives for placeringen <strong>af</strong> kontrolpunkterne, så den resulterende<br />

funktion for Φ ' er identisk med Φ .<br />

Lad φ ij og φ 'ij<br />

være positionen <strong>af</strong> det ij'te kontrolpunkt i hhv. Φ og Φ ' . Da falder positionen<br />

<strong>af</strong> φ ij og φ '2i<br />

, 2 j sammen, og værdierne for de øvrige kontrolpunkter kan udledes på følgende<br />

vis (Lee et al. 1997):<br />

φ'<br />

φ'<br />

φ'<br />

φ'<br />

2i,<br />

2 j<br />

2i,<br />

2 j+<br />

1<br />

2i+<br />

1,<br />

2 j<br />

2i+<br />

1,<br />

2 j+<br />

1<br />

1<br />

=<br />

64<br />

1<br />

=<br />

16<br />

1<br />

=<br />

16<br />

1<br />

=<br />

4<br />

[ φ + φ + φ + φ + 6(<br />

φ + φ + φ + φ ) + 36φ<br />

]<br />

i−1,<br />

j−1<br />

[ φ + φ + φ + φ + 6(<br />

φ + φ ) ]<br />

i−1,<br />

j<br />

[ φ + φ + φ + φ + 6(<br />

φ + φ ) ]<br />

i,<br />

j−1<br />

[ φ + φ + φ + φ ]<br />

ij<br />

i,<br />

j+<br />

1<br />

i−1,<br />

j+<br />

1<br />

i−1,<br />

j+<br />

1<br />

i,<br />

j+<br />

1<br />

i+<br />

1,<br />

j<br />

i+<br />

1,<br />

j<br />

i+<br />

1,<br />

j−1<br />

i+<br />

1,<br />

j−1<br />

i+<br />

1,<br />

j+<br />

1<br />

i+<br />

1,<br />

j+<br />

1<br />

i+<br />

1,<br />

j+<br />

1<br />

i+<br />

1,<br />

j+<br />

1<br />

ij<br />

ij<br />

i−1,<br />

j<br />

i,<br />

j+<br />

1<br />

i+<br />

1,<br />

j<br />

i,<br />

j−1<br />

i,<br />

j+<br />

1<br />

Randområderne (i,j =-1) håndteres som ovenstående, men med modsatte fortegn.<br />

i+<br />

1,<br />

j<br />

ij<br />

SIDE 24


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Algoritmen til forfining <strong>af</strong> approksimerings funktionen er følgende:<br />

Udfra datapunkterne i P, beregn det groveste net Φ<br />

Fortsæt så længe Φ ikke overstiger det<br />

finest valgte net (Lee et al. 1997):<br />

1. Beregn P=P-F( Φ )<br />

2. Beregn Ψ = Ψ'<br />

+ Φ<br />

3. Lad Φ være det næste finere net<br />

4. Forfin Ψ til Ψ ' så F( Ψ )=F( Ψ ' ) og<br />

Ψ' = Φ , gå til 1.<br />

Algoritmen er skitseret på figur 11.<br />

For at sikre at den resulterende funktion er<br />

en til en, sættes en begrænsning på hvor<br />

langt et kontrolpunkt kan flyttes. Denne<br />

Figur 11 Skitse <strong>af</strong> forfiningsalgoritmen (fra Lee et al.<br />

1997).<br />

0<br />

begrænsning er : − 0.<br />

48ε<br />

≤ φij<br />

− φij<br />

≤ 0.<br />

48ε<br />

(Lee et al. 1995) for alle ij, hvor<br />

0<br />

φij er<br />

kontrolpunktet i det udeformerede net, og <strong>af</strong>standen ε er <strong>af</strong>standen mellem to kontrolpunkter<br />

i det udeformerede net. At funktionen er en til en sikrer, at der ikke er opstår 'folder', og<br />

resulterende tvetydigheder derefter.<br />

SIDE 25


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Figur 12 Multilevel B-Spline approksimering med forskellige antal kontrolpunkter (fra Lee et al.<br />

1997).<br />

Implementation <strong>af</strong> MFFD<br />

Implementationen <strong>af</strong> algoritmen er baseret på artiklens pseudokode (Lee et al. 1997). Selve<br />

visualiseringen er baseret på Foley et al. 1996's bruteforce algoritme (evaluering <strong>af</strong> f i hvert<br />

punkt) til at tegne parametriske kurver, og ikke med forward differences algoritmen. Dette<br />

skyldes, at funktionsværdierne kun skal beregnes for nabokontrolpunkterne. Her kan der<br />

optimeres med tabelopslag for B-spline basisfunktionerne, forward differences algoritmen kan<br />

benyttes undervejs i hver trin <strong>af</strong> r<strong>af</strong>finering <strong>af</strong> B-spline fladerne. Det er en mulig optimering.<br />

Algoritmen tilnærmer kun en z-koordinat, så for at benytte algoritmen i to dimensioner, bliver<br />

to sæt kontrolpunkt net benyttet, så er det muligt at tilnærme punkter, der bliver flyttet i<br />

planen.<br />

I stedet for at implementere en løsning, der manipulerer pixels direkte, er en løsning baseret<br />

på tekstur mapning benyttet. På den måde bliver den hurtige hardware udnyttet.<br />

Lige efter implementationen <strong>af</strong> MFFD blev det imidlertid mere klart, hvad problemstillingen<br />

indebar. Nærmere overvejelser og gennemgang <strong>af</strong> viewmorphings egenskaber <strong>af</strong>slørede, at<br />

metoden kan interpolere mellem to billeder. Det blev klart, at de to billeder <strong>af</strong> samme objekt<br />

fra forskellige vinkler ikke haves. Overvejelser om antagelsen om, at brugeren indledende<br />

bedes om at kigge direkte ind i kameraet, og derefter se ned på skærmen igen, gjorde det klart,<br />

hvilke billeder der er tilgængelige. De billeder, man kan gemme fra initialiseringen, kan<br />

SIDE 26


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

benyttes til at udføre view morphing i mellem, men de billeder man senere vil få, vil for det<br />

meste være deformeret (fx hvis personen taler).<br />

Opsummering<br />

View morphing er en metode, der benytter lidt fra 'traditionel' computer vision til at beregne<br />

projektions matricer og benytter en 2D teknik til at opnå en 3D effekt.<br />

Forskellen mellem denne metode og almindelig morfing er, at projektionsmatricen skal<br />

kendes. Projektionsmatricen findes ved at bestemme den fundamentale matrix for billedparret,<br />

og derefter bestemme de to epipoler. Ud fra epipolerne bestemmes rotationen <strong>af</strong> billedet (om<br />

en vilkårlig valgt akse) og siden udregnes to transformationsmatricer, der bringer billederne<br />

parallelt i forhold til hinanden.<br />

Selve metoden egner sig til at beregne mellemliggende betragtninger, men det blev klart ved<br />

den nøjere gennemgang og implementation <strong>af</strong> en morfteknik, at metoden ikke kan tilpasses til<br />

at beregne en virtuel betragtning som ønsket her. Metoden kan godt beregne en virtuel<br />

betragtning mellem to forskellige ansigtsbetragtninger, men hvis det ene har en anden mimik<br />

(ikke kun betragtningsvinkel), så vil man opnå en mellemliggende mimik i den<br />

mellemliggende betragtning. Dette ville man muligvis kunne udnytte, hvis en samling <strong>af</strong><br />

forskellige ansigtsudtryk først blev tilegnet, men så skulle en genkendelse <strong>af</strong> ansigtsudtryk<br />

også udføres (som fx i Toegl & Poggio 1994). Denne teknik ville måske give et resultat, men<br />

uden tilegnelsen <strong>af</strong> en ansigtsudtryk database for hver person, ville man kun opnå nogle<br />

utilsigtede – men sikkert morsomme – ansigtsudtryk.<br />

Del 2. Synsvinkelekstrapolering<br />

Da view morphing ikke kunne benyttes som håbet, er det nødvendigt at se på nogle andre<br />

metoder. View interpolation minder meget om view morphing, og metoden har omtrent de<br />

samme egenskaber. Den er taget med her, fordi den danner grundlag for view ekstrapolering.<br />

View interpolation<br />

View interpolation (Werner et al. 1995) er en metode, der går ud på, at man har en række<br />

primære 2D betragtningsbilleder <strong>af</strong> det objekt, man vil visualisere, optaget fx med et enkelt<br />

kamera. Når man vil vise en ny betragtning <strong>af</strong> objektet fra en vilkårlig vinkel, der ikke er<br />

dækket <strong>af</strong> nogle <strong>af</strong> de primære betragtninger, bliver det beregnet som en lineær kombination<br />

<strong>af</strong> de nærmest liggende primære betragtninger, metoden udelukker derfor behovet for en 3D<br />

SIDE 27


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

model konstruktion (Werner et al. 1995). Hvor view morfing interpolerer to billeder, benytter<br />

view interpolation to eller flere billeder.<br />

View interpolation opstiller derfor en metode til visualisering <strong>af</strong> objekter fra vilkårlige vinkler<br />

uden nødvendigheden <strong>af</strong> en 3D-model rekonstruktion. Metoden virker på følgende vis:<br />

En række billeder <strong>af</strong> objektet bliver taget, billederne skal dække hele objektets synlige flade.<br />

De betragtninger kan tilgås direkte – de skal blot vises. Hvis information om korrespondancer<br />

er tilgængelig, er det muligt at opnå enhver interpoleret betragtning ved at bruge en<br />

delmængde <strong>af</strong> de primære betragtninger nær ved den ønskede (virtuelle) betragtning. Det<br />

giver følgende problemer, der skal løses:<br />

1) Hvordan bestemmes positionen og intensiteten <strong>af</strong> et punkt i den interpolerede<br />

betragtning, hvis position og intensitet <strong>af</strong> de korresponderende punkter i de primære<br />

betragtninger er kendt?<br />

2) Hvordan bestemmes synligheden <strong>af</strong> punkter i den interpolerede betragtning?<br />

3) Hvordan findes de mulige mindste sæt <strong>af</strong> primære betragtninger?<br />

4) Hvordan findes korrespondancer mellem de primære betragtninger?<br />

Det ikke-trivielle problem med at bestemme et mindste sæt <strong>af</strong> betragtninger – 3 – er stadig<br />

uløst for generelle ikke konvekse objekter. Metoden beskæftiger sig ikke yderligere med den<br />

del <strong>af</strong> problemstillingen, men fokuserer kun på 1,2 og 4.<br />

Position og intensitet <strong>af</strong> et interpoleret punkt<br />

Antag n korresponderende punkter i n primære betragtninger, dvs. en 2n-tuple [x1,I1,…,xn,In],<br />

hvor xi er billedekoordinater <strong>af</strong> det i'te punkt, og Ii er intensiteten.<br />

Det i'te punkt er en projektion <strong>af</strong> et punkt X på objektets overflade i den i'te betragtning, med<br />

betragtnings parametrene pi. Målet er at opnå koordinaterne x og intensiteterne I <strong>af</strong><br />

projektionen <strong>af</strong> X i en interpoleret betragtning med parametrene p.<br />

Følgende ligninger skal løses :<br />

x = ( X,<br />

p ), i = 1,<br />

, n dvs. x = f(X,p) (i)<br />

i<br />

f i<br />

Hvor f er en funktion, der tildeler projektionen til et punkt i 3D rummet, som sammen med p<br />

kendes fra kalibreringen.<br />

Betragtningsparametrene, p, er ikke et komplet sæt <strong>af</strong> kalibrerede kameraparametre, men kun<br />

fx vinklerne mellem betragtningsvinklerne. Werner et al. 1995 benytter en drejeskive, hvor<br />

drejningsvinklen kendes for hvert billede taget, og den benyttes da som parameter.<br />

Hvis n=2 har systemet en unik løsning, og ellers kan en løsning findes med mindste<br />

kvadraters metode.<br />

SIDE 28


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Hvis parametrene for en interpoleret betragtning udtrykkes som en linear kombination <strong>af</strong><br />

parametrene for n betragtninger: p = α ip i og hvis α i = 1 og pi er tætte på hinanden, så<br />

holder det, at:<br />

dvs. 6 <strong>af</strong> (i)<br />

n<br />

f ( X,<br />

α p ) ≈ α f ( X,<br />

p<br />

i=<br />

1<br />

i<br />

i<br />

n<br />

i=<br />

1<br />

n<br />

i=<br />

1<br />

x = α x<br />

Intensiteten <strong>af</strong> punkterne kan bestemmes tilsvarende: I = α i I i , tilbage er at bestemme α i .<br />

Da betragtningsparametrene, pi, er kendt, kan α i bestemmes ud fra ligningerne:<br />

n<br />

p = α p<br />

n<br />

i=<br />

1<br />

i=<br />

1<br />

i<br />

i<br />

α = 1<br />

Der findes en løsning til dette for n ≥ dim( p)<br />

+ 1.<br />

Werner et al. 1995 benytter en drejeskive til<br />

at tilegne sig billeder, hvor der kun er en frihedsgrad, dvs. dim(p)=1. Ligningerne, der skal<br />

løses, er da:<br />

α p + α p = p<br />

1<br />

1<br />

1<br />

i<br />

2<br />

2<br />

α + α = 1<br />

Hvor der blot skal sættes ind og løses for α1 og α 2 . En interpoleret betragtning <strong>af</strong> to billeder<br />

kan derefter konstrueres ved at multiplicere og summere med α1 og α 2 for alle sæt <strong>af</strong><br />

korresponderende punkter og intensiteter, der tilhører de to valgte billeder. Korrespondance<br />

tilegnelsen ses der samlet på i "Korrespondancer mellem billeder" side 32.<br />

Metoden forudsætter et minimalt kendskab til eksterne parametre for at kunne benyttes, og<br />

som titlen antyder, kan den kun interpolere. Nye ekstrapolerende betragtninger, der ikke<br />

ligger imellem de eksisterende, tager den ikke højde for. Derfor ses på videreudviklingen <strong>af</strong><br />

metoden, <strong>af</strong> de samme forfattere, view ekstrapolation.<br />

6 Werner et al. 1995 viser ikke dette, men giver et praj om, hvordan det gøres ved Taylor udvikling.<br />

2<br />

i<br />

i<br />

i<br />

i<br />

)<br />

SIDE 29


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

View ekstrapolation<br />

Ligesom view interpolering, foreslår view ekstrapolation metoden (Werner et al. 1997, 1998)<br />

at kombinere en serie referencebilleder for at konstruere nye betragtninger <strong>af</strong> et objekt, i<br />

stedet for at udføre en 3D rekonstruktion og efterfølgende projektion.<br />

For at vise et 3D objekt, som kameraet drejer rundt om, fra en vilkårlig vinkel, så er ganske<br />

mange referencebilleder nødvendige for at gøre den visuelle effekt realistisk nok, hvis der<br />

benyttes view interpolation.<br />

Dette skyldes en mangel ved billedeinterpolation, nemlig egenskaben at vise et generelt<br />

objekt fra en vilkårlig vinkel ved benyttelse <strong>af</strong> billederne og deres korrespondancer. Manglen<br />

skyldes tildækning. Werner et al. 1997 viser, overraskende nok, at ingen objekter, selv ikke<br />

en konveks polyhedron, kan visualiseres udelukkende ved interpolation mellem et absolut<br />

antal referencebilleder. For at håndtere dette problem introducerer Werner et al. 1997 view<br />

ekstrapolation.<br />

Metoden kræver følgende (Werner et al. 1997):<br />

a) Rekonstruktion <strong>af</strong> en delvis 3D model udfra flere (ofte kun to) referencebilleder.<br />

Modellen er delvis, fordi det kun er de dele <strong>af</strong> objektet, der er synlige i alle<br />

referencebillederne samtidig, der rekonstrueres. Det adskiller metoden fra 3D<br />

rekonstruktion, hvor en 3D model konstrueres helt udfra et stort antal<br />

referencebilleder.<br />

b) Positionering <strong>af</strong> det virtuelle kamera.<br />

c) Gengivelse <strong>af</strong> den delvise 3D model.<br />

Metoden ser kun på ukalibrerede referencebilleder, og i det tilfælde kan kun en projektiv 3D<br />

model rekonstrueres (som omtalt i "Billeddannelse" side 15 ), hvilket gør, at metoden også<br />

kan benyttes med fx fotogr<strong>af</strong>ier taget med ukendte kameraer.<br />

I det følgende bliver kameracentre betegnet ved C, billedplaner ved π , billedpunkter ved<br />

[ ] T<br />

u v , w<br />

u i = i , i i , scene/objekt punkter ved [ ] T<br />

i = X i , Yi<br />

, Zi<br />

, Wi<br />

X og 3× 4 kamera<br />

projektionsmatricer ved M. Hvor både u og X er i homogene koordinater, dvs. de kartesiske<br />

koordinater for u er x i = ui<br />

wi<br />

i = vi<br />

wi<br />

y , og tilsvarende for Xi.<br />

C er centrum for det virtuelle kamera, C' og C'' er centre for første og anden referencekamera.<br />

π , π ' og π ''<br />

er de tilsvarende billedplaner.<br />

Antag at en rekonstrueret projektivmodel eksisterer, og at den er repræsenteret <strong>af</strong> følgende<br />

data:<br />

SIDE 30


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Sættet <strong>af</strong> korresponderende par [billedpunkt, scenepunkt], { [ ′ , X ], i = 1,...,<br />

N}<br />

u , der er<br />

resultatet <strong>af</strong> den projektive rekonstruktion fra sættet <strong>af</strong> korresponderende billedpunkter<br />

[ u ′ , u′<br />

′ ], i = 1,...,<br />

N . Transformationen fra scenepunkt til reference billederne er:<br />

{ }<br />

i<br />

i<br />

ρ ′ u ′ = M′<br />

X , ρ′<br />

′ u′<br />

′ = M′<br />

′ X ,<br />

i<br />

i<br />

i<br />

i<br />

hvor M ′og M′<br />

′ er kameramatricer for referencebillede kameraerne, og ρ ≠ 0, ρ′<br />

′ ≠ 0<br />

i<br />

i<br />

i<br />

i<br />

′ i<br />

i<br />

er skalaer. Punkterne Xi <strong>af</strong>viger fra den underliggende euklidiske struktur med en<br />

ukendt projektiv transformation.<br />

Trianguleringen <strong>af</strong> sættet { , i = 1,...,<br />

N}<br />

X . Trianguleringen tilnærmer den<br />

i<br />

underliggende overflade. Da det kun er den overflade der er synlig fra begge<br />

referencekameraer, der kan rekonstrueres (<strong>af</strong> a)), er der en-til-en korrespondance fra<br />

den triangulerede flade og referencebilledplanen π ′. Derfor kan trianguleringen<br />

passende udføres i π ′ i stedet for i det projektive rum!<br />

Referencebilledet taget fra betragtnings vinklen C'. Billedet benyttes til at gemme den<br />

tekstur, som det skal 'fordrejes' til det virtuelle billede i rekonstruktionsprocessen.<br />

Positionen <strong>af</strong> det virtuelle kamera specificeret <strong>af</strong> kameramatricen, M, for det virtuelle kamera<br />

er iflg. Werner et al. 1997 et svært problem, når en euklidisk rekonstruktion ikke er kendt.<br />

Derfor antages det blot, at M er kendt, så det virtuelle billede kan konstrueres således:<br />

ρ u MX , ρ ≠ 0<br />

i<br />

i = i i<br />

For at udføre en rekonstruktion skal pixels overføres til det virtuelle billede. Det kan gøres på<br />

forskellige måder, Werner et al. 1997 foreslår at benytte overførsel med trekanter, og løse<br />

synlighed <strong>af</strong> punkter med en z-buffer. En anden metode er fx raytracing.<br />

Problemet ved blot at overføre de enkelte pixels er, at der kan opstå huller som følge <strong>af</strong><br />

forskellig sampling i de to billeder. Hvis trekanter overføres kompenseres der for det.<br />

For at overføre en trekant T' i referencebilledet til den tilsvarende trekant T i det virtuelle<br />

billede, skal der konstrueres en homogr<strong>af</strong>i 7 , der overføre det indre <strong>af</strong> trekanterne. Hjørnerne <strong>af</strong><br />

trekanterne fås fra de ovenstående ligninger, de to trekanter er u ′ 1 , u′<br />

2 , u′<br />

3 og u1,<br />

u 2 , u 3 ,<br />

homogr<strong>af</strong>ien skal overføre punkterne fra det indre <strong>af</strong> T og T': u ≅ Hu′<br />

. For at bestemme H<br />

kræves imidlertid fire par punkter. Det sidste par kan udgøres <strong>af</strong> [ e , e′<br />

] , epipolerne i<br />

referencebilledet og det virtuelle billede.<br />

7 En homogr<strong>af</strong>i er en 3<br />

3 × matrix, der definerer en lineær transformation i det projektive rum, der for en given<br />

planar flade <strong>af</strong> den virkelige verden mapper alle projicerede punkter i det ene kameras billede til det andet<br />

kameras billede.<br />

SIDE 31


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

H benyttes til at beregne pixelintensiteter i T i det virtuelle billede, dvs. overførsel <strong>af</strong> tekstur<br />

fra T' til T, og fjernelse <strong>af</strong> skjulte pixels.<br />

Iflg. Werner et al. 1997 kan et udtryk for dybde i π ′opstilles som:<br />

hvor<br />

′ = u ′ ′ ′<br />

T<br />

u [ , v , w ] ,<br />

[ u w′<br />

v′<br />

w′<br />

] − [ e′<br />

g ′ f ′ g ′ ]<br />

′ = e ′ ′ ′<br />

2 ( ( u′<br />

, ) )<br />

d ′ ( u ′ ) = o(<br />

e′<br />

) σ dist e′<br />

T<br />

e [ , f , g ] , dist er <strong>af</strong>standen mellem de to punkter, dvs.<br />

′ , o(e′ ) er en funktion, der er –1 eller 1, <strong>af</strong>hængig <strong>af</strong> om C er<br />

foran eller bagved π ′og σ er en arbitrær monoton funktion.<br />

Værdierne i z-bufferen for hver pixel i u i π kan opnås ved:<br />

z ( u)<br />

= d′<br />

( u)<br />

= d ′ ( H<br />

Homogr<strong>af</strong>ien kan tilnærmes med en <strong>af</strong>fin transformation, i stil med goraud shading som:<br />

−1<br />

u<br />

z u ) = α d ′ ( u′<br />

) + α d′<br />

( u′<br />

) + α d ′ ( u′<br />

) ,<br />

( 1 1 2 2 3 3<br />

u α ′ ′ ′ .<br />

hvor α1−3 bestemmes udfra = 1u1<br />

+ α 2u<br />

2 + α 3u<br />

3<br />

Tilnærmelsen giver en forvrængning <strong>af</strong>hængig <strong>af</strong> størrelsen <strong>af</strong> T og <strong>af</strong> størrelsen på forskellen<br />

i dybde <strong>af</strong> punkterne. Forvrængningen er størst i trekantens centrum, men forsvinder<br />

imidlertid helt ved ortogr<strong>af</strong>isk kamera.<br />

Ved at benytte overførsel <strong>af</strong> trekanter kan hardware acceleration udnyttes. Accelereret<br />

teksturlægning kan give væsentlige hastighedsforbedringer. Ofte er rutinerne også optimeret<br />

for kvalitet så forskellige interpolationer og filtreringer kan benyttes.<br />

Korrespondancer mellem billeder<br />

Korrespondanceproblemet er et problem, der er forsøgt løst på mange forskellige måder, alt<br />

efter opstillingen og hvordan billeddata bliver tilegnet. Hvis man antager, at de fleste<br />

scenepunkter er synlige i begge de billeder, man vil finde korrespondancer imellem, og de<br />

korresponderende billedregioner ligner hinanden, så kan man opfatte problemet som et<br />

søgeproblem. Dvs. givet et element i det ene billede, søg efter samme element i det andet.<br />

Spørgsmålet er derefter hvilke punkter der skal søges efter, og hvilket mål der skal anvendes<br />

til at <strong>af</strong>gøre om to punkter ligner hinanden nok.<br />

Der findes et væld <strong>af</strong> forskellige metoder til at gøre dette. Disse kan (som hovedregel) deles<br />

ind i to hovedgrupper, korrelationsbaserede metoder og kendetegnsbaserede metoder (eng.<br />

feature-based).<br />

)<br />

SIDE 32


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Korrelations baseret korrespondance<br />

Korrelationsbaserede metoder antager, at pixels i korrespondance har lignende intensiteter.<br />

Intensiteten <strong>af</strong> de individuelle pixels giver ikke information nok, da der ofte er flere<br />

kandidater med lignende intensitet. Derfor ser man på intensiteten <strong>af</strong> adskillige nabopixels,<br />

hvor et vindue på fx 5× 5 eller 7 × 7 pixels bliver benyttet (Sonka et al. 1999), vinduet er<br />

valgt <strong>af</strong>hængig <strong>af</strong> opløsningen <strong>af</strong> billederne. Umiddelbart kan det se ud til, at der skal søges<br />

efter hver pixels korresponderende pixel over hele det andet billede (eller i hvert fald et<br />

søgevindue), imidlertid kan problemet simplificeres til et 1D problem. Det gøres ved, som<br />

omtalt i kapitel 1, at benytte den epipolære geometri til at oprette billederne.<br />

Ved anvendelse <strong>af</strong> en korrelationsbaseret algoritme i stereosyn, fås korrespondancer for alle<br />

pixels i billedet. Hvis man i første omgang ser bort fra de tilfælde, hvor der ikke eksisterer<br />

korresponderende pixels, opstiller Trucco & Verri (1998) pp.146-147 en simpel algoritme til<br />

korrelationsbaseret korrespondance i stereobilleder:<br />

Input er et par stereobilleder med intensiteter Il og Ir (venstre og højre)<br />

Funktionen c(d) er korrelationen <strong>af</strong>standen d fra pixel<br />

T<br />

l [ i,<br />

j]<br />

= p i det venstre billede, og den<br />

beregnes for alle <strong>af</strong>stande i søgeregionen. W er størrelsen <strong>af</strong> det vindue, der søges i, forskellen<br />

der søges efter er max værdien <strong>af</strong> c(d) i søge regionen.<br />

W W<br />

( d ) = ψ ( I l ( i + k,<br />

j + l),<br />

I r ( i + k − d1,<br />

j + l − d 2<br />

k=<br />

−W<br />

l=<br />

−W<br />

c ))<br />

Funktionen ψ vælges ofte til ψ ( u , v)<br />

= uv , hvorved krydskorrelation fås, eller<br />

2<br />

ψ ( u, v)<br />

= −(<br />

u − v)<br />

, der giver summen <strong>af</strong> kvadrerede forskelle, eller bloksammenligning. Den<br />

sidste har den fordel, at den ikke er så følsom overfor meget store/små intensitetsværdier.<br />

Kendetegnsbaseret korrespondance<br />

Kendetegnsbaseret korrespondance begrænser søgningen efter korrespondancer til et sæt <strong>af</strong><br />

kendetegn, hvor man i stedet for at søge efter korrespondancer inden for et vindue, søger efter<br />

kendetegn, der passer sammen. Kendetegnene kan være fx kanter, hjørner, linier, kurver eller<br />

mere specialiserede.<br />

Ulemperne ved at benytte en korrelationsbaseret metode er, at den er beregningsintensiv; hver<br />

pixel bliver evalueret mange gange, og scenen skal have tekstur for at virke ordentligt. Flader<br />

med næsten samme intensitet over alt, er metoderne uegnede til. Hvis der er langt mellem<br />

betragtnings vinklerne billederne imellem, er metoden heller ikke velegnet.<br />

Kendetegnsbaserede metoder kan være hurtigere og egner sig, hvis der er a priori information<br />

tilgængelig – viden om hvad der er på billederne. Til gengæld får man kun en spredt<br />

SIDE 33


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

korrespondance, hvilket også er fint i mange tilfælde. Der eksisterer desværre ikke en færdig<br />

løsning, der giver gode resultater under alle forhold. Derfor må metoderne <strong>af</strong>vejes <strong>af</strong><br />

situationen (som altid).<br />

Korrespondancer ved en sekvens <strong>af</strong> billeder<br />

Når en serie billeder haves, som ved view interpolation og view ekstrapolation, er billederne<br />

taget ganske kort tid efter hinanden. Dette kan give nogle fordele i forhold til de ovenstående<br />

metoder. Som regel ses på to forskellige metoder når der skal findes korrespondancer i en<br />

serie <strong>af</strong> billeder: optisk flow og tracking. Som Werner et al. 1997 ses der her kun på tracking.<br />

En <strong>af</strong> de meget anvendte metoder til at tracke kendetegn med er med et Kalman filter (fx<br />

Trucco & Verri 1998 eller Sonka et al. 1999), der benyttes til at estimere positionen og<br />

usikkerheden <strong>af</strong> et kendetegn i næste billede, dvs. positionen og størrelsen <strong>af</strong> området der skal<br />

søges i. Imidlertid er teorien bag Kalman filtret ganske kompliceret, og derfor ses på Werner<br />

et al. 1997's simple tilgang til tracking i en tæt serie <strong>af</strong> billeder.<br />

Antag at kendetegn, invariante overfor betragtningsvinkel, bliver fundet i hvert billede i en<br />

sekvens <strong>af</strong> billeder, der har følgende egenskaber:<br />

Mængden <strong>af</strong> kendetegn, F (M)<br />

, fundet i et billede taget med kameramatrix M.<br />

Positionen <strong>af</strong> et kendetegn f ∈ F(M)<br />

er entydigt defineret, og specificeret ved u ( f ) .<br />

Kendetegn f og f ′ siges at være korresponderende, hvis (og kun hvis) deres<br />

positioner ændrer sig i forhold til projektionen <strong>af</strong> et scenepunkt ved ændring <strong>af</strong><br />

kameramatricen fra M til M′. Dvs. hvis u( f ) ≅ MX er kendetegnet<br />

korresponderende til scenepunktet X, så er f ′ korresponderende til f , hvis (og kun<br />

hvis) u ( f ′) ≅ M′<br />

X .<br />

Kendetegnene er adskilt med en minimal <strong>af</strong>stand, hvis <strong>af</strong>standen mellem to vilkårlige<br />

kendetegn altid er større end en given <strong>af</strong>stand, ε . Dvs.:<br />

∀f , g ∈ F(<br />

M ) : u(<br />

f ) − u(<br />

g)<br />

≥ ε > 0<br />

Kendetegn kan være uden korresponderende modpart i F(M′ ) enten på grund <strong>af</strong><br />

tildækning/okklusion eller på grund <strong>af</strong> kravet om minimal <strong>af</strong>stand.<br />

Hvis man antager at en billedsekvens er optaget så tæt, at der for et valgt epsilon og for et<br />

vilkårligt kendetegn findes højest et kendetegn i det efterfølgende billede så u ( F) − u(<br />

G)<br />

< ε<br />

Så opstiller Werner et al. 1997 en korrespondance algoritme:<br />

SIDE 34


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

1. Lad n=1<br />

2. Find kendetegnene F( M n ) i billede n i sekvensen. Sørg for at minimal<br />

<strong>af</strong>standskravet er opfyldt for et valgt ε .<br />

3. Flyt kameraet til billede n+1, så maksimal<strong>af</strong>standen mellem to vilkårlige<br />

kendetegn i billederne n og n+1 er ε .<br />

4. For hver kendetegn f ∈ F(<br />

M n ) søg efter kendetegn g ∈ F(<br />

M n+<br />

1)<br />

, så<br />

u ( f ) − u(<br />

g)<br />

< ε . Hvis g findes, så korresponderer det til f, hvis ikke så har f<br />

ingen korrespondance i billede n+1 pga. okklusion.<br />

5. Lad n = n + 1.<br />

Hvis n < N så spring til punkt 2.<br />

Som kendetegn vælger Werner et al. 1997 kanter, da de er en god tilnærmelse til invariante<br />

kendetegn. I den opstilling, der benyttes, ses på nogle objekter, der har størrelser omkring 8-<br />

10 cm på en drejeskive, som er placeret ca. 2m fra kameraet. Dette forhold gør, at opstillingen<br />

kan tilnærme en ortogr<strong>af</strong>isk projektion – eller et svagt perspektiv.<br />

Trucco & Verri (1998) pp 27. angiver at antagelsen om svagt perspektiv, bliver anvendelig<br />

når forholdene er omkring δ z < Z / 20 . Hvor δz er <strong>af</strong>standen mellem to vilkårlige punkter i<br />

scenen, og Z er gennemsnits<strong>af</strong>standen til kameraet.<br />

Ligeledes anvendes en drejeskive, hvor objektet er anbragt i centrum. Kombinationen <strong>af</strong> svagt<br />

perspektiv og bevægelse i kun en retning gør at skanlinierne falder sammen med de epipolære<br />

linier. Søgning efter korresponderende kanter, billederne imellem kan derfor indskrænkes til<br />

kun at være inden for samme skanlinie.<br />

Med denne opstilling, kan det retfærdiggøres at benytte en simpel algoritme som ovenstående.<br />

Werner et al. (1997) opnår nogle fine resultater med forskellige typer objekter, bl.a. et<br />

dukkeansigt og en gips<strong>af</strong>støbning <strong>af</strong> et tandsæt, der har rimelig synlighed <strong>af</strong> alle punkter<br />

billederne imellem. Derimod går det knap så fint med en rose, hvor kronbladene dækker over<br />

hinanden, så der opstår en masse huller.<br />

Forsøg og implementation<br />

View ekstrapolation<br />

View ekstrapolering synes at være et godt udgangspunkt for indfangelse <strong>af</strong> et objekt.<br />

Anvendelsen <strong>af</strong> teksturlægning med 3D gr<strong>af</strong>ik teknik virker umiddelbart til at kunne opnå<br />

hastigheder, der kan anvendes i realtime. I forhold til den opstilling som Werner et al.<br />

SIDE 35


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

(1997,1998) benytter, er der dog nogle betydelige forskelle til videokonference opstillingen,<br />

de er:<br />

a) Afstanden fra kamera til scene/objekt er ca. 40-50 cm, og udstrækningen <strong>af</strong> objektet<br />

(ansigt) er større.<br />

b) Bevægelse er ikke begrænset til en dimension. Ved initialisering kan man dog antage<br />

begrænset bevægelse (op→ned).<br />

c) Baggrunden er ikke ensartet sort, men med tekstur og forskellig belysning.<br />

Punkt a) gør, at antagelsen om svagt perspektiv ikke kan benyttes og b), at søgningen efter<br />

korresponderende kendetegn ikke umiddelbart kan gøres i en dimension. c) betyder, at<br />

baggrunden giver anledning til fx kanter og hjørner, der kan forstyrre.<br />

For at se om resultatet <strong>af</strong> view ekstrapolation vil kunne skabe et troværdigt virtuelt billede,<br />

vælges som første skridt at forsøge med en billedserie og tracke punkter i hånden.<br />

Originalbillede 1<br />

Original 1 benyttet som tekstur og vippet op 10 o<br />

Originalbillede 2<br />

Original 2 benyttet som tekstur og vippet op 10 o<br />

SIDE 36


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Original 1 benyttet som tekstur og vippet op 15 o<br />

Original 1 benyttet som tekstur og vippet ned 10 o<br />

Figur 13 View ekstrapolation med håndtrackede punkter.<br />

Som det ses <strong>af</strong> billederne i Figur 13, gav<br />

eksperimentet med håndtrackede punkter (Figur 14)<br />

et rimeligt resultat. De er fremstillet ved at benytte<br />

<strong>af</strong>standen mellem punkterne som z-værdi, da det er<br />

hvad Werner et al. benytter i deres eksperimenter.<br />

Resultatet er en række 3D punkter (40). I stedet for at<br />

benytte Delaunay triangulering, blev MFFD<br />

algoritmen (Side 22) rettet til for at tilnærme en<br />

punktsky i stedet for koordinater i planen. Når så få<br />

punkter er tilgængelige viste MFFD algoritmen sig at<br />

give et pænt resultat. Billederne i figuren er vippet<br />

Original 2 benyttet som tekstur og vippet op 15 o<br />

Original 2 benyttet som tekstur og vippet ned 5 o<br />

Figur 14 Punkter lagt over billede 1.<br />

Blå er positionen i billede 1, og gul er i<br />

billede 2.<br />

tilpas lidt til, at resultatet stadig ser fornuftigt ud. Man kan se, at rekonstruktionen ikke er<br />

præcis ved de nederste billeder, hvor ansigtet ser deformeret ud. Ved større vinkler, eller ved<br />

drejning om den anden akse er det helt klart, at 3D modellen er upræcis som følge <strong>af</strong><br />

håndtracking og ganske få punkter.<br />

SIDE 37


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Det er herefter at overveje hvilken typer kendetegn, der skal trackes.<br />

En hjørnedetektor<br />

Werner et al (1997) benytter en 1D Deriche kantdetektor til at finde og følge kanter over<br />

billedsekvensen, da opstillingen er har nogle egenskaber, der gør det muligt.<br />

Da bevægelser i videokonference opstillingen ikke er garanteret til at være begrænset til en<br />

dimension, vil det være vanskeligt at følge kanter, det vil være nødvendigt at finde kanternes<br />

endepunkter og følge disse. I stedet er valget faldet på en hjørnedetektor (der bl.a. finder<br />

endepunkter).<br />

Hjørner er ofte gode bud på kendetegn, der er stabile over flere betragtningsvinkler i en<br />

sekvens <strong>af</strong> billeder. I denne sammenhæng er et hjørne en karakteristik <strong>af</strong> strukturen <strong>af</strong> billedintensiteter,<br />

der kan opfattes som hjørner.<br />

Hjørnestrukturer i billeder kan findes med en Harris hjørnedetektor (Harris & Stephens<br />

1988):<br />

M<br />

∂I<br />

∂x<br />

∂I<br />

∂x<br />

2<br />

∂I<br />

∂y<br />

∂I<br />

∂x<br />

∂I<br />

∂y<br />

∂I<br />

∂y<br />

= 2<br />

Hvor I ( x,<br />

y)<br />

er gråtoneintensiteten. Matricen består <strong>af</strong> de partielt <strong>af</strong>ledte <strong>af</strong> intensiteten, dvs.<br />

gradienterne. Hvis de to egenværdier <strong>af</strong> matricen M ved et punkt er store, så vil en lille<br />

bevægelse i en vilkårlig retning give et udsving i gråtoneintensiteten, hvilket indikerer, at<br />

punktet er et hjørne. Hjørne responsfunktionen er:<br />

R = det M − k(<br />

traceM)<br />

Hvor k er en parameter (foreslået sat til 0,04) og trace er summen <strong>af</strong> diagonalen. Hjørnerne er<br />

derefter defineret til at være de lokale maksima. For at undgå hjørner, der er forsaget <strong>af</strong> støj,<br />

kan et gauss-filter benyttes til at glatte billederne med, imidlertid er det de <strong>af</strong>ledte billeder, der<br />

skal glattes og ikke input billedet.<br />

Matricen M beregnes over et vindue<br />

<strong>af</strong> pixels, hvor hver <strong>af</strong> elementerne<br />

beregnes som en sum <strong>af</strong> værdierne<br />

for hver pixel i vinduet. Dette giver<br />

stabilitet og gør samtidig, at områder<br />

med ændringer i intensitet bliver<br />

registreret. Ved at variere vinduets<br />

2<br />

Figur 15 20 første hjørner fundet med et vindue på 9 × 9 og<br />

5 × 5 pixels, billedet er fra COIL (Nene et al. 1996).<br />

SIDE 38


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

størrelse får man indflydelse på hvor store kendetegn, der skal identificeres. Ofte findes for<br />

mange hjørner, så en restriktion på R er nødvendig, fx i form <strong>af</strong> en tærskelværdi.<br />

For at begrænse antallet <strong>af</strong> fundne kendetegn, er en simpel metode anvendt. Metoden finder<br />

maksimumværdien for R i billedet, indsætter koordinaterne i en liste og fjerner andre værdier<br />

<strong>af</strong> R i det fundne punkts nabovindue – dette er dog langsommere end at benytte en<br />

tærskelværdi, men man kan i stedet specificere de fx 20 mest udslagsgivende punkter, og man<br />

undgår at skulle angive en værdi, der er specifik for lys/kontrast og vinduesstørrelse.<br />

En anden mere præcis metode kan også anvendes, fx kan man finde størrelsen <strong>af</strong> det fundne<br />

hjørne/kendetegn ved at beregne center-of-mass 8 , og formindske eller forstørre søgevinduet<br />

indtil standard <strong>af</strong>vigelsen er mindre end en fastsat størrelse.<br />

Tracking over en serie billeder<br />

Med en mængde <strong>af</strong> hjørner/kendetegn to billeder imellem, er det muligt at benytte den<br />

forslåede algoritme til at tracke de enkelte kendetegn mellem to billeder. For at gøre det over<br />

flere billeder, er det nødvendigt at overveje hvilken strategi, der skal benyttes ved sammenligning<br />

<strong>af</strong> trackede punkter, og hvad der skal gemmes.<br />

For hvert billede eksisterer et sæt <strong>af</strong> kendetegn og for hver par <strong>af</strong> billeder eksisterer desuden<br />

et sæt <strong>af</strong> korrespondancer i mellem kendetegnene. Det der ønskes er at etablere<br />

korrespondance mellem fx første og sidste billede i en billedserie.<br />

Enten kan man vælge at finde lister <strong>af</strong> korrespondancer for parvise billeder og sammenligne<br />

disse lister, eller også kan man nøjes med at finde korrespondancer to billeder imellem, hvor<br />

der i input listen kun er kendetegn, der er korrespondance til fra forrige billede.<br />

Da man for at rekonstruere med view ekstrapolation kun rekonstruerer punkter der er synlige i<br />

begge referencebilleder, vælges den sidste. Resultatet er en liste <strong>af</strong> lister <strong>af</strong> kendetegn, hvor<br />

hver <strong>af</strong> listerne som første element har et kendetegn fra første referencebillede, og som de<br />

øvrige elementer de trackede punkter i de efterfølgende billeder, så længe de kan følges.<br />

Figur 16 Punkter fulgt fra første og sidste billede i en sekvens på<br />

4 billeder. Krydserne markerer positionen <strong>af</strong> punktet i billedet,<br />

firkanterne i de følgende/tidligere billeder (Billedet fra COIL<br />

(Nene et al. 1996)).<br />

8 Middelværdien, der svarer til massefordelingens tyngdepunkt. I en dimension: (Brøndum & Monrad 1993)<br />

SIDE 39


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

På Figur 19 og Figur 20 ses rekonstruktionen <strong>af</strong> punkterne, og billedet vippet 10 grader op og<br />

ned. Resultatet lider under de samme fejl som det håndtrackede, nemlig at der er nogle<br />

punkter, der er tracket forkert, og at der ikke er nogen punkter på kinder og pande. Figur 22<br />

viser profilen <strong>af</strong> de rekonstruerede punkter, og man kan her se, at noget <strong>af</strong> formen er rigtig,<br />

men at det faktisk kun er en skitse, fx mangler hagen. Noget <strong>af</strong> denne deformering stammer<br />

fra MFFD tilnærmelsen, der jo tilnærmer områder med mange punkter på en mindste<br />

kvadraterfacon. Dette betyder, at punkter, der kan have betydning, drukner i mængden - så at<br />

sige. Derfor er det interessant at se, om en triangulering <strong>af</strong> punkterne vil gøre det bedre.<br />

Figur 17 Første billede i en sekvens på 8<br />

billeder.<br />

Figur 19 Billede 1 vippet op 10 o .<br />

Figur 18 Sidste billede i sekvensen.<br />

Figur 20 Billede 1 vippet op 10 o .<br />

SIDE 40


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Figur 21 De trackede punkter (48 <strong>af</strong> 63) over 8<br />

billeder (vindue 7 × 7,<br />

ε = 7 , z skalering 2,5).<br />

Figur 22 De teksturbelagte rekonstruerede<br />

punkter set i profil (85 o ).<br />

I stedet for at implementere en udgave <strong>af</strong> Delaunay triangulering, blev en eksisterende C<br />

implementation benyttet. Baseret på implementationen fra Leach (1992), blev en DLL<br />

konstrueret, så algoritmen kan kaldes fra Delphi.<br />

Figur 23 Billede 1 vippet op 10 o , delaunay<br />

triangulering <strong>af</strong> punkterne ill. Figur 21.<br />

Figur 24 Profil <strong>af</strong> trianguleret rekonstruktion (85 o ).<br />

Forskellen mellem de to metoder til visualisering er ikke markant under de små drejninger,<br />

men tydelig under større vinkler. De to profiler er dannet med samme data, men rekonstruktionen<br />

med MFFD set visuelt mere indbydende ud.<br />

Opsummering<br />

Ved håndtrackning <strong>af</strong> et lille antal punkter blev første primitive rekonstruktion udført og<br />

tilnærmet med splines, med metoden i Lee et al. 1998. Tilnærmelse med multilevel freeform<br />

deformations har den fordel, at man får en glat tilnærmelse, til gengæld bliver resultatet stærkt<br />

SIDE 41


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

påvirket <strong>af</strong> varierende sampling. Senere blev Delaunay triangulering <strong>af</strong>prøvet for at vurdere<br />

hvilken metode, der gav bedst resultat. Under små vinkler var der næsten ingen forskel, men<br />

ved større var MFFD en glattere tilnærmelse. Med den lille mængde <strong>af</strong> punkter, der<br />

rekonstrueres udfra, giver Delaunay triangulering kantede resultater.<br />

De trackede punkter blev puttet ind i view ekstrapolerings metoden, dvs. udfra punkterne<br />

benyttes distancen mellem dem som en z-koordinat (i ukendt skalering), og disse koordinater<br />

spline approksimeres eller Delaunay trianguleres og der sættes tekstur på.<br />

Resultatet herefter er lovende for ansigtsbillederne. For nogle små vinkler er det muligt at få<br />

en troværdig ekstrapolering <strong>af</strong> ansigtet. Eksperimenterne med billedserier fra "Columbia<br />

Object Image Library (COIL)" (Nene et al. 1996) var mindre gode (se Test <strong>af</strong> featuretracker<br />

side 57).<br />

Et <strong>af</strong> problemerne er, at Harris detektoren ikke finder nogen punkter på de glatte flader som<br />

kinder, hage og pande.<br />

Og på figurerne var der indimellem punkter, der stammede fra højlys i blanke overflader.<br />

Spline approksimeringen er en udmærket tilnærmelse, hvis der er en ligelig sampling over alt,<br />

og det er <strong>af</strong>rundede objekter, og det var billederne fra COIL databasen for det meste ikke.<br />

Status for denne del <strong>af</strong> projektet er derfor, at en indledende kalibrering er mere eller mindre<br />

fungerende. Forskellige metoder er <strong>af</strong>prøvet, og en række informationer om billedserien er<br />

tilegnet. En række problemer i den forbindelse er identificeret.<br />

Del 3. Ansigtsorienterede metoder<br />

Tilgangen til problemstillingen har hidtil været generel, dvs. der har ikke været antaget noget<br />

om hvad opstillingen indeholder. De metoder, der er evalueret, virker lige godt, uanset hvilket<br />

objekt der ses på (på drejeskive). Metoderne har indtil videre ikke virket tilfredsstillende,<br />

undtagen hvis bevægelserne er begrænset til en dimension. Idéen med at rekonstruere via<br />

eksisterende 3D hardware, virker tilsyneladende godt og hurtigt. Hvis man går bort fra den<br />

generelle indgangsvinkel, og forholder sig, til hvad der er på billedet, dvs. tilfører a priori<br />

informationer, burde det være muligt at opnå forbedringer.<br />

Ifølge Toegl & Poggio (1994) er estimering <strong>af</strong> ansigtsposituren stabil i en gauss-pyramide<br />

indtil forholdet 1:4, det implicerer, at store dele <strong>af</strong> ansigtetstræk stadig er synlige, efter en<br />

skalering til en fjerdedel. En idé kunne derfor være at gå videre med de hidtidige metoder, og<br />

undersøge resultaterne efter en skalering, og om op-skalering <strong>af</strong> den opnåede 3D model giver<br />

fornuftige resultater.<br />

Samme Toegl & Poggio (1994) bemærker i øvrigt, at et <strong>af</strong> problemerne ved <strong>ansigter</strong> er, at de<br />

har nogle flader, hvor der ikke er mange kendetegn, og dette faktum, der blev klart i forrige<br />

<strong>af</strong>snit, indikerer, at det er en idé at se på andre teknikker.<br />

SIDE 42


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Forrige <strong>af</strong>snit gav et indblik i besværet ved at arbejde med naturlige data. Resultaterne fra<br />

view morphing giver en erfaring om, at der ikke skal mange punkter til for at opnå resultater.<br />

Dog fandt tracking metoden ikke nok punkter, der var anvendelige, og hastigheden egner sig<br />

ikke i nuværende form til at bygge videre på.<br />

Hvis man et øjeblik antager, at tracking'en, opnået i forgående <strong>af</strong>snit, er tilstrækkelig til at<br />

opnå en "3D" model, der er god nok til initialisering, er der stadig en række problemer tilbage.<br />

Nemlig hvordan data skal benyttes til at transformere de efterfølgende billeder? Og hvad<br />

gøres ved de skjulte flader?<br />

Den nuværende løsning tager ikke højde for skjulte flader, teksturen bliver blot udstrakt. Ser<br />

man på et ansigt, er næsen den vigtigste fladeproblemet skal løses for, fordi manglende<br />

næsebor er mere markant end at billedet bliver udstrakt under hagen. En løsning kunne derfor<br />

være at identificere næsen og klippe et billedstykke ud, hvor undersiden er synlig og benytte<br />

dette som tekstur efterfølgende.<br />

For at benytte den opnåede model til at vippe billederne et for et i billedstrømmen efterfølgende,<br />

er det nødvendigt at rotere evt. forflytte ansigtsmodellen, så billedet kan benyttes<br />

som tekstur på 3D-modellen, og siden vippe den op et antal grader. Derfor skal punkterne<br />

følges, så korrespondancerne kan beholdes og benyttes til det. Et andet spørgsmål er, hvordan<br />

eller om modellen skal deformeres, når fx munden åbnes.<br />

Før nogle <strong>af</strong> disse overvejelser kan benyttes, er det nødvendigt at forbedre den nuværende<br />

metode, eller vælge og <strong>af</strong>prøve en anden. Der kan foretages en del forbedringer <strong>af</strong> den<br />

eksisterende metode, både <strong>af</strong> hjørnedetektoren og tracking. Hjørnedetektoren kan modificeres<br />

til at virke på farvebilleder, det vil sandsynligvis give nogle bedre hjørnekandidater og<br />

forbedre tracking en del. Problemet ved det er blot, at hjørnerespons funktionen vil tage<br />

omtrent tre gange så lang tid at beregne, som det kan ses <strong>af</strong> matricen herunder, til<br />

sammenligning med matricen side 38. R, G og B er gradienterne <strong>af</strong> farverne (Harris &<br />

Stephens 1988).<br />

M<br />

R<br />

+ G<br />

+ B<br />

R R + G G + B B<br />

2 2 2<br />

=<br />

x x<br />

Rx<br />

Ry<br />

+ GxG<br />

y<br />

x<br />

+ Bx<br />

By<br />

x y x y x<br />

2 2 2<br />

Ry<br />

+ G y + By<br />

Selve separationen <strong>af</strong> de lokale maksima kan også optimeres, men så længe beregningen <strong>af</strong><br />

hjørneresponsen er alt for høj, i forhold til realtime ønsker, er dette omsonst.<br />

Den bedste optimering der kan gøres er at beregne på et mindre billede, hvis det er muligt.<br />

Det løser dog stadig ikke problemet med den simple søgning efter korrespondancer, der<br />

benyttes. Billederne bliver ikke rettet op, så den epipolære geometri giver en 1D søgning, men<br />

søgning foregår kun efter algoritmen på side 35. Opretningen <strong>af</strong> billeder er ikke så enkel i<br />

dette tilfælde, da der jo ikke er to kameraer. Hvis den fundamentale matrix skal beregnes, skal<br />

der "lades som om", at der er to kameraer, dvs. det er kun de punkter, der tilhører ansigtet, der<br />

skal beregnes udfra, da baggrunden jo er statisk.<br />

y<br />

SIDE 43


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

For at opnå en bedre tracking, kan Kalman filtret også genovervejes, da det giver<br />

sandsynligheden for, hvor punkterne bevæger sig hen <strong>af</strong> i billedsekvensen.<br />

Ovenstående overvejelser leder frem til et par observationer:<br />

At separere ansigtet fra baggrunden kan være en fordel, ligeledes position og<br />

identifikation <strong>af</strong> forskellige ansigtskendetegn (som værende næse, øjne etc.).<br />

Harris hjørnedetektor er nok ikke vejen frem i dette tilfælde.<br />

For at adskille ansigtet fra baggrunden kan forskellige metoder benyttes, en simpel udvidelse<br />

<strong>af</strong> nuværende metode er se udelukkende på de punkter, der flytter sig. En anden metode er at<br />

benytte optisk flow metoder. Hvis man imidlertid analyserer, hvad der specielt karakteriserer<br />

<strong>ansigter</strong>, så kan man opstille en række fælles træk, der gælder for de fleste <strong>ansigter</strong>.<br />

Inden for genkendelse <strong>af</strong> <strong>ansigter</strong> er der en række gennemgående træk som benyttes, de er fx<br />

næsestørrelse og -form, ansigtsform, øjenfarve og en række andre. En anden ting, der<br />

kendetegner et ansigt, er ansigtets farve. Farveseparation kan være en hurtig proces, hvis hver<br />

billedpunkt kun skal evalueres en gang. Hvis man derfor kan opstille en model for<br />

spredningen <strong>af</strong> ansigtsfarver vil det være en simpel og hurtig metode.<br />

Hvis en sådan region indeholdende ansigtet kan sk<strong>af</strong>fes, hvordan skal kurvaturen <strong>af</strong> ansigtet<br />

bestemmes – hvis ikke der skal trackes? Kinder, hage og pande giver kun ringe anledning til<br />

hjørner, nogle kanter findes og kan måske benyttes. Alternativt kan der ses på shape from<br />

shading (SFS) teknikker, som bemærket i første <strong>af</strong>snit, til at bestemme hældning og højde<br />

inden for disse områder. Det benytter Lew et al. 1995 til at opnå nye orienteringer <strong>af</strong><br />

ansigtsbilleder til genkendelse.<br />

Man kunne også tilpasse data med en intern 3D ansigtsmodel og benytte denne til at dreje<br />

eller deformere billedet. Det benytter bl.a. Jebara & Pentland (1997) og Blantz & Vetter<br />

(1999) til forskellige formål. Jebara & Pentland (1997) benytter modellen til at rotere billeder<br />

i standard frontbetragtning, så videre processering kan udføres til genkendelse. De benytter en<br />

gennemsnitlig 3D model for et ansigt, der justeres til at passe med den positur ansigtsbilledet<br />

har. 3D modellen er opnået ved tage gennemsnit over adskillige 3D laserscannede <strong>ansigter</strong>.<br />

Blantz & Vetter (1999) har et andet formål, nemlig at syntetisere 3D <strong>ansigter</strong>. Baseret på en<br />

database <strong>af</strong> 200 3D laserscannede <strong>ansigter</strong> opstiller de en model, der kan ændre på en række<br />

parametre for et givent ansigt. Et billede <strong>af</strong> et ansigt matches med databasen, og den model<br />

der passer bedst 3D morfes til at passe præcis. Med modellen kan positur, vinkel og<br />

ansigtskarakteristik og ansigtsudtryk ændres. Fx kan parametre ændres for, hvor mandlig eller<br />

kvindelig formen skal være. Deres resultater er imponerende realistiske, men prisen er<br />

beregninger i minutklassen, langt fra realtime.<br />

Udfra disse artikler ser det ud til at sammenligning med en intern 3D model kan give gode<br />

resultater. Da 3D laserscanninger ikke umiddelbart haves, skal der enten findes en online<br />

ressource med 3D data, eller også kan SFS metoden <strong>af</strong>prøves. Zhang et al. 1994 undersøger<br />

SIDE 44


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

en række forskellige SFS algoritmer (8 forskellige), og kommer frem til følgende: "The<br />

conclusion drawn from the accuracy analysis is that all of the algorithms have their<br />

limitations. None of them has consistent performance for all images, since they work well for<br />

certain images, but perform poorly on others." (Zhang et al. 1994 p. 73), der betyder, at flere<br />

algoritmer sandsynligvis skal undersøges og tilpasses til opstillingen. Da flere <strong>af</strong> algoritmerne<br />

også var meget beregningsintensive (fra sekunder til timer for 128× 128 pixel), og resultatet i<br />

høj grad påvirkes <strong>af</strong> lyset, er denne teknik valgt fra.<br />

Som et ganske andet alternativ kunne man se på en <strong>af</strong> de andre billedbaserede metoder. Nogle<br />

<strong>af</strong> de metoder, der findes til at generere panoreringer, kan visualisere et skift i<br />

betragtningsvinkel (Shum & Kang 2000), så måske er der skjulte muligheder i det. Disse<br />

metoder overkommer også nogle <strong>af</strong> de notorisk svære problemer i computervision, som fx<br />

gennemsigtige eller spejlende flader.<br />

Den følgende plan er derfor at undersøge tracking <strong>af</strong> <strong>ansigter</strong> og se på en ny billedbaseret<br />

metode.<br />

Ansigtstracking og identifikation <strong>af</strong> kendetegn<br />

Diskussionen om separation <strong>af</strong> ansigtet ud fra baggrunden leder hen til arbejder, der<br />

beskæftiger sig med ansigtstracing og genkendelse <strong>af</strong> <strong>ansigter</strong>. Ansigtstracking bliver benyttet<br />

til bl.a. mund<strong>af</strong>læsning/talegenkendelse og hovedpositur bestemmelse. Både Yang et al.<br />

(1998) og Choudry et al. (1998) forslår at detektere <strong>ansigter</strong> på basis <strong>af</strong> ansigtsfarve, og siden<br />

søge efter ansigtskendetegn i den fundne region.<br />

Farvebestandighed refererer til evnen til at identificere en overflade som havende samme<br />

farve under væsentlig forskellige forhold. Farve er nemlig ikke et fysisk fænomen, men et<br />

spørgsmål om opfattelse, og igen excellerer det menneskelige syn ved at være i stand til at<br />

opfatte objekters farve invariant under disse forhold. At finde <strong>ansigter</strong> i et billedbaseret på<br />

farve er forbundet med en række faktorer, forskellen <strong>af</strong>hænger bl.a. diffust lys, objekt<br />

bevægelse og kameraet.<br />

Det viser sig, at ansigtsfarver klumper sig sammen i en lille region <strong>af</strong> farve rummet, og at<br />

ansigtsfarver er mere forskellige i intensitet end i farve. Under bestemte lysforhold kan en<br />

hudfarve model karakteriseres som en normaldistribution i det normaliserede farve rum (Yang<br />

& Waibel 1996).<br />

Den almindeligste repræsentation <strong>af</strong> farver er RGB modellen, hvor hver pixel er repræsenteret<br />

ved en trippel sammensat <strong>af</strong> rød, grøn og blå. Imidlertid indeholder de enkelte komponenter<br />

ikke kun farveinformation, men også lystintensitet.<br />

Da ansigtsfarver ikke varierer så meget i farve, er det en fordel at konverter til en model, hvor<br />

intensiteten er fjernet. Konvertering (normalisering) til den kromatiske farvemodel, der har<br />

denne egenskab, kan udføres ved (Gonzales & Woods 1992 p. 224):<br />

SIDE 45


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Hvor den blå er udeladt, da r+g+b=1.<br />

R<br />

r =<br />

R + G + B<br />

G<br />

g =<br />

R + G + B<br />

Yang & Waibel (1996) opstiller en simpel model for hudfarver, baseret på en undersøgelse <strong>af</strong><br />

forskellige individers hudfarve (med både kaukasiere, asiater og <strong>af</strong>rikansk amerikanere), der<br />

viser, at ansigtsfarverne er normalfordelte. Modellen går ud på at bestemme en gennemsnitsværdi<br />

for r og g og en spredning, disse værdier indsættes i en normalfordelings funktion.<br />

En hudfarve model kan laves således (Yang & Waibel 1996):<br />

1. Tag et billede med et ansigt på, eller en mængde billeder, hvis en generel model skal<br />

findes.<br />

2. Vælg et hudfarvet område interaktivt.<br />

3. Beregn gennemsnittet <strong>af</strong> r og g samt kovariansen 9 <strong>af</strong> farve distributionen i området.<br />

4. Substituer de beregnede parametre ind i en gauss tæthedsfunktion (fx Brøndum &<br />

Monrad 1993 p. 138).<br />

5. Selve modellen har kun seks parametre, så den kan let tilpasses nye personer og<br />

omgivelser.<br />

Da omgivelserne kan ændre sig, fx hvis kamera eller personer flytter sig, forslår Yang &<br />

Waibel (1996) også en adaptiv udvidelse, der tilpasser sig de nye forhold. De nye parametre<br />

beregnes med en vægtning fra de gamle parametre.<br />

Baggrunden kan imidlertid også have farver, der ligger i området for ansigtsfarver. For at<br />

finde <strong>ansigter</strong> forslås derfor at vælge den/de største regioner og tracke den/dem, så farven<br />

bliver benyttet som et kendetegn.<br />

For at finde ansigtskendetegn i den fundne ansigtsregion, benytter Yang et al. (1998) en<br />

snedig og simpel observation. For at finde øjnene søges efter pupillerne; de optræder altid<br />

sorte, derfor kan en tærskelværdi benyttes for at finde dem. Tærskelværdien øges iterativt<br />

indtil passende kandidater til øjnenes position findes, baseret på en geometrisk begrænsning.<br />

Ved at øge tærskelværdien iterativt, håndteres problemet med forskellige lysforhold.<br />

Udfra øjnenes position søges på samme måde efter næsebor, mundvigene finder de ved at se<br />

på kantinformation i en region under hvert øje.<br />

9<br />

Kovariansen er variansen i 2 dimensioner, dvs. V ( X , Y ) = σ ( X , Y ) ,hvor X,Y er statistiske variable og σ er<br />

spredningen (Brøndum & Monrad 1993).<br />

2<br />

SIDE 46


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

To-spalte kameramodellen<br />

View morphing, view interpolation og view extrapolation er eksempler på billedbaserede<br />

metoder til visualisering <strong>af</strong> sceneopstillinger og objekter. Fælles for dem er at de benytter<br />

forskellige niveauer <strong>af</strong> geometri, i form <strong>af</strong> korrespondancer og eksterne parametre.<br />

En anden billedbaseret metode er to-spalte (eller to-slids) (eng. Two-Slit) kamera modellen,<br />

denne metode er væsentlig forskellig fra de øvrige. Metoden er baseret på, og inspireret <strong>af</strong>,<br />

teknikker til at konstruere panoramabilleder udfra mosaikker <strong>af</strong> billeder. Panorama billeder er<br />

blevet konstrueret siden fotogr<strong>af</strong>iets opfindelse ved at klistre to eller flere billede sammen til<br />

et stort, hvis man har villet have billeder <strong>af</strong> noget større end man umiddelbart kan fotogr<strong>af</strong>ere.<br />

To-spalte kameramodellen (Peleg 2002) er en ny alternativ kameramodel, som ikke er baseret<br />

på en perspektiv projektion. I stedet for at alle lysstråler skal passere gennem et punkt i<br />

rummet, så passerer lysstrålen i stedet gennem to kurver i rummet i to-spalte kameramodellen.<br />

Projektionsmodellen kommer til at se noget anderledes ud, i forhold til den perspektiviske<br />

projektion (Peleg 2002):<br />

X<br />

( x, y)<br />

= f x , f y<br />

Z + ∆<br />

Hvor f f + ∆ . Hvis de to spalter er vilkårlige linier i rummet, og de ikke er ens og ikke<br />

x<br />

= y<br />

P<br />

z<br />

Vandret slids<br />

Figur 25 To-spalte kameramodellen.<br />

f x<br />

er koplanare med billedplanen, så kan en projektionsligning opstilles for et punkt P i rummet<br />

(Peleg 2002):<br />

x<br />

y<br />

w<br />

=<br />

Lodret slids<br />

T<br />

P S Q S P<br />

1<br />

T<br />

P S Q S<br />

1<br />

T<br />

P S Q S<br />

Her er S og Q 4 × 4 matricer. Det er imidlertid ikke nødvendigt at regne nogle <strong>af</strong> disse ud, da<br />

de kun tjener til at godtgøre, at snit i rum-tid billedvolumen udgør gyldige to-spalte billeder,<br />

fordi to-spalte kameraet er en teoretisk ramme for forklaring <strong>af</strong> en snedig teknik.<br />

1<br />

f y<br />

1<br />

2<br />

3<br />

2<br />

2<br />

2<br />

P<br />

P<br />

Y<br />

Z<br />

Billedplan<br />

p<br />

SIDE 47


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Det interessante er at se på, hvordan man<br />

genererer to-spalte billeder ud fra almindelige<br />

perspektivbilleder.<br />

Rum-tid billedvolumen udgøres <strong>af</strong> volumen <strong>af</strong><br />

billeder for et tidsrum, hvor billederne tidsligt er<br />

adskilt <strong>af</strong> samme <strong>af</strong>stand. Dvs. billederne stillet<br />

op lige efter hinanden.<br />

En rum-tid volumen kan tages fx med en<br />

drejeskive, en panorering (som drejeskive, men<br />

kameraet drejer rundt i stedet for) eller en<br />

translaterende bevægelse (og også andre, men så giver snit ikke et to-spalte billede).<br />

Enkeltspaltekamera billeder kan konstrueres ved at tænke sig en lodret 1D lysføler, der overstryger<br />

sceneopstillingen og indsamler 1D søjlebilleder (Peleg et al. 2000). Et to-spalte<br />

kamera konstrueres ved at forestille sig kameraet flytte sig langs en 3D linie (Peleg 2002),<br />

hvor:<br />

Den ene spalte overlapper vejen, man flytter kameraet.<br />

Den anden spalte er parallel med den vandrette billedretning<br />

Figur 26 Snit i billedvolumen (rum-tid<br />

volumen).<br />

Kameraets billedplan parallel med det originale hulkamera, og parallel med den anden<br />

spalte.<br />

Kameraet kan konstrueres ved at optage billeder fra det translaterende hulkamera og<br />

sammensætte en søjle fra hvert billede. Hvis den samme søjle tages fra hver billede opnås<br />

enkeltspalte billeder, hvis forskellige søjler tages opnås to-spalte billeder.<br />

Hvis man normalt vil konstruere et panoramabillede, optages en billedsekvens translaterende<br />

med konstant hastighed, og en søjle i midten <strong>af</strong> alle billederne klippes ud og sættes sammen<br />

til et billede bredere end højt. Denne metode benytter samme teknik, men her klippes<br />

forskellige søjler ud i forskellige billeder. Et snit der giver et gyldigt to-spalte billeder kan<br />

bestemmes ved en lineær funktion x ( t)<br />

= α t + β , som ses på Figur 26.<br />

Umiddelbart virker det ikke som noget specielt at sample fra forskellige søjler i forskellige<br />

billeder, men de effekter man opnår er overraskende. Hvis man laver snit på en sekvens <strong>af</strong><br />

billeder fra et translaterende kamera (parallel med billedplanen), så opnås skift i<br />

betragtningsvinkel eller en forlæns/baglæns bevægelse.<br />

For at opnå en forlæns/baglæns bevægelse, snittes billedvolumen som på figuren og snittet<br />

roteres og <strong>af</strong>spilles som et filmklip. Hvis derimod et vinkelret snit forflyttes fra den ene side<br />

til den anden <strong>af</strong> volumen, opnås en rotation <strong>af</strong> betragtningsvinklen.<br />

Generel kamerabevægelse, hvor billedplanen ikke er parallel med bevægelsen, betyder, at<br />

snittet for et to-spalte billede ikke er lineært. I det tilfælde bliver snitfunktionen i stedet (Peleg<br />

2002):<br />

SIDE 48


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

α + θt<br />

x(<br />

t)<br />

=<br />

β + t<br />

Hvor α, β er frie parametre og θ er en parameter specificeret <strong>af</strong> kameraets interne parametre.<br />

En detalje ved to-spalte kameraet er, at man kan opnå effekter uden at have præcise<br />

informationer om interne eller eksterne kameraparametre. Kameramodellen kan ved en<br />

stationær sceneopstilling og bevægende, forflyttende kamera benyttes til at visualisere scenen<br />

fra forskellige vinkler, men på bekostning <strong>af</strong> perspektivet. At perspektivet bliver påvirket<br />

betyder ikke nødvendigvis, at billedet opfattes som værende forkert.<br />

Når billedsekvenser tages med håndholdt kamera, eller kameraet på en anden vis ikke bliver<br />

bevæget med konstant hastighed, så bliver billederne <strong>af</strong> objektet eller scenen ikke optaget<br />

med konstant tidsforskydning i rum-tid volumen, og der kan også være bevægelser i x-y<br />

planen. For at overkomme dette problem, så optagelser <strong>af</strong> fx naturomgivelser ikke kræver<br />

konstant hastighed, korrigere Peleg (2002) for rotation og translation ved at analysere optisk<br />

flow, og beregne forskydningerne billederne imellem.<br />

Det er svært at forstille sig effekten <strong>af</strong> snit med to-slids kameraet uden at efterprøve det,<br />

derfor er en begrænset udgave, der kan <strong>af</strong>sløre nogle <strong>af</strong> mulighederne, implementeret.<br />

Forsøg<br />

Baseret på Yang et al. (1998) blev en ansigtstracker implementeret. Et par tilnærmelser til<br />

ansigtsfarve separationen blev gjort. Den gaussiske fordelingsfunktion, er erstattet med en<br />

rektangulær. Denne tillempning er naturligvis ikke anvendelig, hvis systemet skal være<br />

stabilt, men til en prøveudgave er det anvendeligt. Hvis man laver et snit i<br />

normalfordelingsfunktion, fås en ellipseform i planen og et rektangel kan naturligvis ikke<br />

tilnærme dette på en tilfredsstillende måde.<br />

For at bestemme spredning og centrum for farverne, blev de bestemt udfra histogrammet <strong>af</strong> en<br />

ansigtsregion på en række forskellige ansigtsbilleder.<br />

Farveseparationen og efterfølgende <strong>af</strong>grænsning til farver inden for ansigtsfarve området,<br />

resulterer i et binært billede med forskellige regioner <strong>af</strong> pixels. For at eliminere enkelte støj<br />

pixels og små regioner bliver de morfologiske operationer erosion og udvidelse (erode og<br />

dilate) anvendt på billedet. For at søge efter billedets regioner, kan forskellige metoder<br />

benyttes. Valget er faldet på en kant følge algoritme, som specificeret i Sonka et al. (1999) pp.<br />

142-143, fordi det er en ganske simpel algoritme. Algoritmen søger billedet igennem til en<br />

pixel findes, og søger derefter efter pixels rundt om mod uret i 4-naboskab. Resultatet er en<br />

liste <strong>af</strong> pixels, der omkranser regionen for hver region. Algoritmen finder ikke huller i<br />

regioner eller regioner, der omkransede <strong>af</strong> andre regioner, men det er også unødvendigt her.<br />

SIDE 49


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Udfra hver pixelliste bestemmes et omkransende rektangel, arealet <strong>af</strong> dette benyttes til at<br />

Figur 27 Ansigter og øjne fundet under forskellige lysforhold (dag og <strong>af</strong>ten) med samme farve<br />

gennemsnit og spredning.<br />

bestemme største region.<br />

Yang et al. (1998) angiver ikke hvilke geometriske begrænsninger de opsætter ved søgning<br />

efter øjnene. Derfor blev forskellige <strong>af</strong>prøvet.<br />

Hvis geometriske begrænsninger skal benyttes til at finde øjnene, så er det vigtigt at<br />

ansigtsregionen rammer inden for samme område hver gang. Det var desværre ikke tilfældet,<br />

men hvis farveseparationen kalibreres så den mindste region omkranser ansigtet, så kan et<br />

eksperimentelt fundet bud på en begrænsning være:<br />

Der startes med laveste valgte tærskelværdi.<br />

Søg efter regioner i området 1/16 bredde inde fra hver side <strong>af</strong> ansigtsrektanglet, og<br />

1/10 fra toppen i område ½ størrelse <strong>af</strong> rektanglet.<br />

For de fundne regioner forkastes de, der er større end en fastsat værdi. De<br />

sammenlignes parvis, det par hvis vinkel er mindre end 20 o , mellem linien gennem<br />

punkterne og vandret, og <strong>af</strong>viger mindst fra 45% <strong>af</strong> bredden <strong>af</strong> ansigtsrektanglet<br />

(mindre end 20%), er øjnekandidater.<br />

Hvis ikke der findes noget par der opfylder kriteriet, fortsæt med næste højere<br />

tærskelværdi.<br />

Målet for øjnekandidater virker for mange fundne ansigtsregioner, men langt fra alle. Det er<br />

klart at søgningen <strong>af</strong>hænger <strong>af</strong> om lige store andele <strong>af</strong> ansigtet findes. Hvis det er tilfældet,<br />

kan parametrene justeres til lavere fejlestimering.<br />

Forsøg med to-spalte kameramodellen.<br />

I første omgang blev en simpel liste <strong>af</strong> billeder implementeret, så snit kan laves i forskellige<br />

vinkler på langs. Implementationen er lavet til at håndtere gråtonebilleder, da det er det<br />

simpleste, og det er samtidig ikke nødvendigt med farvebilleder for at se, hvordan metoden<br />

SIDE 50


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

virker. Da kompensation for forskel i tid og positionering ikke er implementeret, er<br />

eksperimenterne nødt til at være baseret på billeder, hvor disse er faste – dvs. fx drejeskive<br />

billeder.<br />

I første omgang blev forskellige billedsekvenser <strong>af</strong>prøvet med forskellige snit med den<br />

implementerede liste, med bilineær interpolation. Derefter blev et eksisterende værktøj<br />

<strong>af</strong>prøvet (Video Cube, Klein et al. 2001), der kan lave nogle snit (ikke parallelle snit), men<br />

hvor snittene kan placeres mere frit, og hvor tidsinterpolationen mellem billederne eksisterer,<br />

Figur 28 Første og sidste billede i den konstruerede billedsekvens. Kameraet bevæger sig fra venstre mod<br />

højre på en linie. Planterne i højre og venstre side markerer scenens udstrækning.<br />

hvilket betyder, at man kan arbejde med kortere videosekvenser.<br />

Da kompensation for forskel i tid og<br />

position mellem de enkelte billeder<br />

ikke er blevet implementeret, er det<br />

selvfølgelig svært at teste en<br />

translaterende scene, da der ikke kan<br />

kompenseres uden at have en<br />

kontrollerbar kameravogn eller<br />

lignende. For at <strong>af</strong>prøve metoden<br />

alligevel, blev en scene konstrueret i<br />

et 3D program 10 , og en videosekvens<br />

Figur 29 Panoramasnit. 45<br />

med 320 billeder genereret, i<br />

320× 240.<br />

Det kan selvfølgelig ikke helt sammenlignes med virkeligheden, men give en idé<br />

om metodens muligheder. Peleg 2002 benytter optisk flow teknikker til at kompensere ved<br />

brug <strong>af</strong> et almindeligt kamera.<br />

o grader gennem billedvolumen.<br />

Som det ser ud med to-spalte kameraet, egner det sig kun til at filme statiske scener med et<br />

bevægende kamera. Håbet var at en idé ville vise sig ved eksperimenter med modellen, der<br />

evt. kunne vise vej til, hvordan den kan benyttes med videokonference opstillingen. Man<br />

10 Billederne er genereret i Microgr<strong>af</strong>x Simply 3D. De benyttede objekter følger med programmet.<br />

SIDE 51


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

kunne måske forestille sig metoden i en kombination med en anden metode og nogle<br />

geometriske overvejelser, men det er en fremtidsplan.<br />

Figur 30 3 billeder genereret ved parallelle snit. Snittene giver forskel i betragtningsvinklen. Ved animering<br />

opnås en rotationseffekt (toppen er skåret bort).<br />

Opsummering<br />

En metode til bestemmelse <strong>af</strong> en ansigtsregion i et billede er gennemgået, og implementeret.<br />

Den nuværende algoritme til separation <strong>af</strong> farver og bestemmelse <strong>af</strong> ansigtsområde, er delt op,<br />

så farverne først bliver splittet og siden kombineret. Det er gjort sådan, fordi det letter<br />

fejlretningen betydeligt at kunne splitte processen op, resultatet er blot, at hver pixel bliver<br />

evalueret flere gange, dvs. flere gennemløb <strong>af</strong> billedet. En åbenlys optimering er at lave en<br />

samlet separation og kombination til nyt ansigtssepareret billede, så hver pixel kun berøres en<br />

gang.<br />

Bestemmelse <strong>af</strong> ansigtsregionen foregår som bestemmelse <strong>af</strong> et omkransende rektangel,<br />

metoden kan forbedres, hvis der i stedet for at bestemme et omkransende rektangel blev<br />

benyttet ellipse match. Spørgsmålet er dog om tidsomkostningerne tillader dette.<br />

Det er vigtigt at øjnene bestemmes stabilt, da de er udgangspunkt for videre søgning efter<br />

næse etc. og bestemmelse <strong>af</strong> positur. Et forslag til forbedring kunne være at bestemme<br />

positionen over en sekvens <strong>af</strong> billeder, hvor positionens middelværdi og spredning findes og<br />

benyttes som input til track algoritme.<br />

For at finde yderligere ansigtskendetegn, kan billedet roteres så øjnene bringes på linie, det vil<br />

lette søgningen efter fx øjenbrynenes længde og tykkelse. Idéen med implementationen <strong>af</strong><br />

ansigtstrackeren er at tilpasse en 3D model til positionen <strong>af</strong> ansigtet. Dog haves en sådan<br />

model ikke, men det formodes at en kan findes eller konstrueres udfra online ressourcer.<br />

En ny billedbaseret metode til gengivelse <strong>af</strong> statiske scene opstillinger er gennemgået.<br />

Metoden er simpel, og giver nogle overraskende resultater ved gengivelse <strong>af</strong> statiske scener,<br />

hvor betragtningsvinklen kan ændres ved et simpelt snit i en stabel <strong>af</strong> billeder.<br />

SIDE 52


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Teorien giver desværre ikke bud på hvordan den kan benyttes ved scener med bevægelse. En<br />

begrænset udgave <strong>af</strong> metoden er implementeret for at få en idé om muligheder og<br />

begrænsninger.<br />

Test og resultater<br />

I dette <strong>af</strong>snit gennemgås de implementerede metoder og delmetoder. Test foretages så de så<br />

vidt muligt bekræfter at metoden virker, og hvor den ikke virker. Samt en estimering <strong>af</strong><br />

køretider for de pågældende programdele.<br />

Test <strong>af</strong> multilevel free form deformations (MFFD)<br />

For at vise at MFFD implementationen faktisk tilnærmer punktforskydninger på en pæn<br />

måde, skal der både en fejlberegning og en geometrisk vurdering til.<br />

At implementationen tilnærmer hensigtsmæssigt kan ses på Figur 33 og Figur 34.<br />

Gennemsnitlig fejl<br />

0,5<br />

0,45<br />

0,4<br />

0,35<br />

0,3<br />

0,25<br />

0,2<br />

0,15<br />

0,1<br />

0,05<br />

0<br />

0 0,2 0,4 0,6 0,8<br />

Gennemsnitlig punktforskydning<br />

Figur 33 viser nettet udeformeret, og de følgende viser samme punktforskydning, men med<br />

forskellige størrelser net. Det kan ses, at tilnærmelsen til de flyttede (gule) punkter deformerer<br />

hele nettet, og nærmer punkterne mere og mere. Figur 31 viser fejlen i tilnærmelsen for<br />

forskellige størrelser <strong>af</strong> nettet. Der blev tilnærmet til 60 punkter, der var tilfældigt placeret og<br />

tilfældigt forskudt. Man kan se, at fejlen er mindre jo flere niveauer der forfines til, hvilket<br />

var meningen.<br />

n=2<br />

n=4<br />

n=8<br />

n=16<br />

n=32<br />

Figur 31 MFFD approksimationsfejl i forhold til punktforskydning ved<br />

forskellige netstørrelser. Splinefunktionens værdi og definitionsmængde er<br />

mellem 0 og 1.<br />

SIDE 53


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

MFFD benyttet som tilnærmelse til<br />

3D koordinater benytter kun ét net til<br />

at tilnærme punkterne, hvor<br />

tilnærmelse til 2D koordinater<br />

kræver 2 net. Tilnærmelsen til 2D<br />

koordinater benytter et net for hver<br />

koordinat, og tilnærmelsen er til<br />

forskellen mellem punktets position<br />

og den deformerede position. Ved<br />

tilnærmelse til z koordinater tilnærmes<br />

til hele <strong>af</strong>standen, og som<br />

forventet er tendensen den samme<br />

(Figur 32). Måleresultaterne er<br />

beregnet for et forskelligt antal<br />

punkter fundet ved tracking.<br />

Fejl gennemsnit<br />

0,045<br />

0,025<br />

0,015<br />

0,005<br />

0<br />

0 0,02 0,04 0,06 0,08 0,1<br />

Figur 33 Niveauer <strong>af</strong> MFFD. Røde kryds markerer koordinatsystemet, blå kryds markerer punkternes originale<br />

position, og gule punkter markerer flyttede punkter.<br />

0,04<br />

0,035<br />

0,03<br />

0,02<br />

0,01<br />

z-gennemsnit<br />

32<br />

64<br />

128<br />

256<br />

Figur 32 MFFD z-tilnærmelse. Fejl som funktion <strong>af</strong> den<br />

gennemsnitlige z <strong>af</strong>stand ved forskellige net størrelser.<br />

SIDE 54


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Figur 34 Kontrolpunkternes position overlagt nettet og forfining.<br />

Test <strong>af</strong> hjørnedetektor<br />

For at teste hjørnedetektoren er et billede med forskellige mønstre blevet konstrueret. Billedet<br />

er konstrueret, så flest mulige kombinationer <strong>af</strong> krydsende kanter er opstået. Der er testet med<br />

forskellige størrelser <strong>af</strong> vinduet, der summeres over, og med og uden tilføjelse <strong>af</strong> gaussfilter<br />

på input billede.<br />

SIDE 55


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Figur 35 De 30 kr<strong>af</strong>tigste hjørnerespons, 9 × 9<br />

vindue.<br />

Figur 37 De 90 kr<strong>af</strong>tigste hjørnerespons,<br />

9 × 9 vindue.<br />

Figur 39 De 130 kr<strong>af</strong>tigstehjørnerespons,<br />

5 × 5 vindue.<br />

Figur 36 De 50 kr<strong>af</strong>tigste hjørnerespons, 9 × 9<br />

vindue.<br />

Figur 38 De 90 kr<strong>af</strong>tigste hjørnerespons,<br />

9 × 9 vindue input billede gauss filtreret først<br />

( σ = 1.<br />

0 ).<br />

Figur 40 De 90 kr<strong>af</strong>tigstehjørnerespons,<br />

15 × 15 vindue.<br />

SIDE 56


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

På figurerne kan man se, at de hjørner, der giver kr<strong>af</strong>tigst respons, er dem, der findes i stykket<br />

med murstens tekstur. Og de, der er svagest, er dem i øverste højre gradient firkant.<br />

Antal "hjørner" Køretid (millisekunder).<br />

30 70ms.<br />

50 110ms.<br />

100 217ms.<br />

200 427ms.<br />

230 491ms.<br />

Tabel 1 Køretid som funktion <strong>af</strong> antal<br />

hjørner – hjørnesøgning.<br />

Køretiderne 11 <strong>af</strong>spejler, at selve hjørnerespons beregningen er ganske tung, hvilket er en<br />

selvfølge, da alle pixels i billedet skal evalueres mange gange. En pixel, der er længere væk<br />

fra billedets ramme end vinduesstørrelsen, bliver evalueret kvadratet på vinduesstørrelsen<br />

gange. Den samlede køretid for hjørnedetektoren er summen <strong>af</strong> hjørneresponsen og søgningen<br />

efter dem. Strategien for søgningen efter hjørner ved at se efter maksimumværdier er ikke<br />

optimal, det ses tydeligt <strong>af</strong> køretiderne. Et nærmere kig på algoritmen <strong>af</strong>slører hvorfor:<br />

billedet bliver gennemsøgt for maksimum værdi for hvert hjørne, der ønskes.<br />

Som man kan, se er der lidt <strong>af</strong>vigelser i, hvor hjørnet bliver fundet, alt efter hvor stort vinduet<br />

er. Gaussfiltret glatter kanterne lidt ud, så støj bliver elimineret på bekostning <strong>af</strong> skarphed.<br />

Resultatet her er, at kanterne bliver mere udflydende, og et par enkelte fejlkanter forsvinder.<br />

Effekten <strong>af</strong> at variere størrelsen <strong>af</strong> vinduet er, at hjørner eller områder med "aktivitet" <strong>af</strong><br />

forskellig størrelse findes. Køretiderne er beregnet vægtet over tre forsøg, <strong>af</strong>vigelserne var<br />

optil ca. 20 ms. på de længste køretider, så en lavere køretid kan forventes i et samlet system<br />

(med featuretracker etc.)<br />

Alt i alt kan hjørnedetektoren siges at fungere glimrende. Hastigheden er dog ikke<br />

opmuntrende, der kan ganske givet optimeres en del, men at bringe den i op i real-time<br />

hastighed er nok en svær opgave.<br />

Test <strong>af</strong> featuretracker<br />

For at teste tracking <strong>af</strong> hjørneresponspunkterne er det nødvendigt at vurdere hvilke <strong>af</strong><br />

parametrene, der skal justeres på for at opnå fornuftige resultater (punkter fulgt korrekt).<br />

11<br />

Maskinen var en AMD Duron 750Mhz, billederne var 320 × 240 .<br />

Vinduesstørrelse Køretid (millisekunder).<br />

5 × 5<br />

227ms.<br />

7 × 7<br />

264ms.<br />

9 × 9<br />

300ms.<br />

11× 11<br />

343ms.<br />

15 × 15<br />

449ms.<br />

Tabel 2 Køretid <strong>af</strong> hjørnerespons som funktion <strong>af</strong><br />

vinduesstørrelsen.<br />

SIDE 57


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Figur 41 Tracking <strong>af</strong> simple geometriske objekter ( 5 × 5 vindue, ε = 8 ).<br />

Objekterne er flyttet 5 pixel over fire billeder (15 pixel i alt).<br />

For at bekræfte at track algoritmen (side 35) faktisk kan følge et sæt <strong>af</strong> hjørnepunkter over<br />

flere billeder, er en billedsekvens med simple bevægelse konstrueret. Output fra track<br />

algoritmen ses på Figur 41. Det var nødvendigt at justere ε op til 8, før stjernen blev fulgt,<br />

mens de to andre objekter kunne følges med ε sat til 5, større vindue blev prøvet med samme<br />

resultat. At stjernen kræver ε = 8 er imidlertid klart, hvis man regner diagonalens længde ud<br />

ved et 5× 5 kvadrat (fem pixel hen fem op) der er 50 ≅ 7,<br />

07 .<br />

Når der skal testes på et billede, der ikke er konstrueret, men indeholder virkelige data, er det<br />

en besværlig opgave at bestemme størrelsen <strong>af</strong> epsilon og hjørnerespons vinduet. Som det kan<br />

ses <strong>af</strong> Figur 42 giver det ikke mening at finde disse ved at øge hverken epsilon eller<br />

hjørnerespons vinduet for at bestemme en god værdi for disse. Man kan bemærke et<br />

sammenfald <strong>af</strong> standard<strong>af</strong>vigelsen ved ε = 5 , og det kan måske give et vink en fornuftig<br />

værdi.<br />

9<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

0 2 4 6 8 10<br />

Epsilon<br />

3x3 avg.<br />

3x3 std.<br />

5x5 avg.<br />

5x5 std.<br />

7x7 avg<br />

7x7 std.<br />

9x9 avg.<br />

9x9 std.<br />

Figur 42 Gennemsnitlig fundet punktforskydning og standard<strong>af</strong>vigelse som funktion <strong>af</strong> ε<br />

ved tracking over 4 billeder og 200 hjørnerespons.<br />

SIDE 58


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Data er indsamlet over en sekvens på fire billeder fra COIL (Nene et al. 1996). Figur 44 viser<br />

samme for 100 hjørnerespons, her kan man observere et knæk ved epsilon på fem, men ellers<br />

en stigning som før. Den gennemsnitlige <strong>af</strong>stand over den trackede sekvens som funktion <strong>af</strong><br />

hjørne antallet, ses på Figur 45. Af figuren kan man se, at den gennemsnitlige <strong>af</strong>stand <strong>af</strong>tager<br />

jo flere hjørner, der skal findes, hvilket skyldes, at flere hjørner opstår på grund <strong>af</strong> højlys og<br />

baggrund. Da højlys og baggrund ikke flytter sig, er de trackede punkter stationære og<br />

trækker derfor gennemsnittet ned. På Figur 43 kan man se, at nogle <strong>af</strong> de nederste punkter<br />

ikke har flyttet sig (et andet problem kan også ses omkring centrum, punkter der bevæger sig<br />

den forkerte vej). Da billedet er <strong>af</strong> en roterende sekvens ønskes kun de punkter, der flytter sig,<br />

Figur 43 Billede fra testsekvens data i Figur 42 er indsamlet <strong>af</strong>. Her<br />

er tracket med 9 × 9 vindue, og ε = 5 , ved 100 hjørneresponser.<br />

Baggrunden er farvet hvid (opr. sort). Billedsekvens fra COIL (Nene<br />

et al. 1996).<br />

så vendepunktet <strong>af</strong> <strong>af</strong>standen (ved ca. 60) er et godt bud på antallet <strong>af</strong> hjørnepunkter.<br />

Samme måling <strong>af</strong> hjørner for en sekvens <strong>af</strong> <strong>ansigter</strong> (4 billeder) kan ses i Figur 46, man kan se<br />

at pixel<strong>af</strong>standen mellem billederne er langt mindre end for COIL billedet. Tendensen er ikke<br />

helt den samme, hvilket skyldes, at de fleste punkter findes i ansigtet, der flytter sig og at der<br />

ikke er samme stationære punkter (se fx Figur 21 side 41). Man kan se en ændring omkring<br />

80, hvor standard<strong>af</strong>vigelsen begynder at stige, efter at have været næsten konstant. I dette<br />

tilfælde vil det sandsynligvis være et godt valg for antallet <strong>af</strong> hjørner, da det indikerer, at de<br />

resterende punkter kan være stationære eller fejltrack.<br />

Objekterne i COIL databasen er alle taget under samme lysforhold, og de har højlys områder,<br />

hvor blanke flader giver anledning til det. Objekterne er roteret 5 o for hvert billede, og som<br />

man kan se, giver det en pixelflytning på ca. 5. For den valgte tracking algoritme giver denne<br />

<strong>af</strong>stand og højlys pletterne ikke så gode resultater, der er det nødvendigt fx at fjerne <strong>af</strong>vigende<br />

punkter eller lignende.<br />

SIDE 59


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

10<br />

8<br />

6<br />

4<br />

2<br />

0<br />

0 2 4 6 8 10<br />

epsilon<br />

Figur 44 Gennemsnitlig punktforskydning og standard<strong>af</strong>vigelse som<br />

funktion <strong>af</strong> ε ved tracking over 4 billeder og 100 hjørnerespons for<br />

vindue på 9 × 9 pixels.<br />

Pixel<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

0 50 100 150<br />

Antal hjørner<br />

Gennemsnitlig<br />

<strong>af</strong>stand<br />

Standard<br />

<strong>af</strong>vigelse<br />

Figur 45 Gennemsnitlig tracket <strong>af</strong>stand som funktion <strong>af</strong> hjørneantal.<br />

Hjørneantallet er antallet <strong>af</strong> hjørnerespons i hver billede, der<br />

sammenlignes med, og ikke antallet <strong>af</strong> hjørner, der bliver tracket<br />

( 9 × 9,<br />

ε = 5 ).<br />

avg<br />

std<br />

SIDE 60


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Pixel<br />

1,4<br />

1,2<br />

0,8<br />

0,6<br />

0,4<br />

0,2<br />

Test <strong>af</strong> ansigtstracker<br />

1<br />

0<br />

0 50 100 150 200 250<br />

Antal hjørner<br />

Gennemsnitlig<br />

<strong>af</strong>stand<br />

Standard <strong>af</strong>vigelse<br />

Figur 46 Hjørnetrack over en tæt sekvens <strong>af</strong> <strong>ansigter</strong>. ( 9 × 9,<br />

ε = 5 ).<br />

Ansigtstrackeren bygger på, at farveseparationen går godt. Som det kan ses <strong>af</strong> figurerne, giver<br />

farveseparationen et godt bud på, hvad der er et ansigt, samtidig kan man se at farvedistributionen<br />

er forskellig, og at de givne farveparametre kun finder ansigtet korrekt ved<br />

første billede. Det ses regions separationen fint vælger den største sammenhængende region.<br />

SIDE 61


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Figur 47 Separation <strong>af</strong> ansigtsregionen for forskellige <strong>ansigter</strong> og lysforhold med<br />

samme farveparametre. Rektanglet markerer den størst fundne region.<br />

En test blev udført på fem billedserier, a hhv.<br />

100, 30, 50, 100 og 100 billeder med forskellig<br />

mængdebevægelse. Der blev beregnet<br />

gennemsnitlig højde og bredde <strong>af</strong> den fundne<br />

region samt standard<strong>af</strong>vigelsen. Gennemsnit <strong>af</strong><br />

X og Y position og standard<strong>af</strong>vigelse, samt<br />

maksimum og minimum værdier for X og Y.<br />

Alle målinger er i pixelkoordinater.<br />

Indholdet <strong>af</strong> sekvenserne er:<br />

B100 er et moderat nik, hvor der ses ind i<br />

kameraet og ses nedad i langsomt tempo.<br />

R30 er et nik efterfulgt er kig til venstre og til højre (øverste billede i Figur 47 er fra<br />

denne sekvens).<br />

R50 er kig på skærmen, mens der tales.<br />

B100-2 er stirren, uden meget hovedbevægelse.<br />

B100-3 er et stort nik.<br />

Gnm W Gnm H Std W Std H<br />

B100 119,9 167,9 2,0 5,3<br />

R30 103,4 144,2 5,8 7,5<br />

R50 107,7 170,3 3,9 2,6<br />

B100-2 121,5 163,3 1,7 5,4<br />

B100-3 121,0 151,7 5,0 29,6<br />

Tabel 3 Gennemsnitlig bredde og højde <strong>af</strong><br />

den fundne ansigtsregion.<br />

Ved B100-3 blev ansigtet ikke fundet korrekt for de billeder, hvor der ses mest nedad, hvilket<br />

Avg X Avg Y Std X Std Y Min X Max X Min Y Max Y<br />

B100 144,3 118,9 1,7 2,7 139,5 149,0 112,5 125,5<br />

R30 135,4 111,2 2,9 4,0 127,5 143,5 98,5 116,5<br />

R50 146,0 95,2 2,4 1,4 142,0 149,0 91,5 98,5<br />

B100-2 145,0 119,3 0,9 2,6 142,0 148,5 112,5 124,5<br />

B100-3 150,6 119,6 3,1 8,7 140,5 155,0 103,5 141,5<br />

Tabel 4 Gennemsnit, standard<strong>af</strong>vigelse, maksimum og minimum for<br />

ansigtsregionens X og Y koordinater (centrum).<br />

SIDE 62


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

også kan ses på standard<strong>af</strong>vigelsen for højden <strong>af</strong> den fundne region. Der er moderat<br />

bevægelse på alle billederne. Lysforholdene er ens for B100-3, B100-2 og B100 og R30 er<br />

den mørkeste <strong>af</strong> serierne. Standard<strong>af</strong>vigelserne viser, at der er lille forskel i størrelsen <strong>af</strong> den<br />

fundne region. Afvigelserne <strong>af</strong>spejler også billedsekvensernes indhold, fx er der tydeligvis<br />

ikke meget bevægelse <strong>af</strong> ansigtet i B100-2 sekvensen.<br />

Test <strong>af</strong> øjedetektor<br />

Gnm W Gnm Y Gnm A Std W Std Y Std A Fejl<br />

R30 43,23 143,9 2,918 12,22 39,63 3,435 2<br />

R50 50,34 131,8 4,694 2,84 1,581 1,149 0<br />

B100 49,4 128,1 5,414 19,05 50,71 4,422 12<br />

Tabel 5 Gennemsnit og <strong>af</strong>vigelse for <strong>af</strong>stand og vinkel mellem øjne<br />

og Y-position i ansigtsregionen.<br />

Tabel 5 viser en statistik over identifikation <strong>af</strong> øjne i ansigtsregionen. Sekvensen R50 blev<br />

inspiceret visuelt og havde korrekt position <strong>af</strong> øjne for hele sekvensen. Fejlkolonnen viser<br />

antallet <strong>af</strong> tilfælde, hvor algoritmen ikke kan finde kandidater for øjne. At sekvensen B100<br />

har en høj fejlandel skyldes, at der bliver båret briller. R30 sekvensen blev også inspiceret<br />

visuelt, og der var foruden de to fejl også tre tilfælde, hvor algoritmen fandt forkerte punkter<br />

for øjnene. R30 sekvensen har meget bevægelse og <strong>af</strong> de billeder der giver fejl, er en fejl pga.<br />

motionblur, og de andre fordi hovedrotation gør, at ansigtsregionen er for tæt på øjet.<br />

Algoritmen søger i et rektangel inde i den fundne ansigtsregion, for at undgå punkter fra hår<br />

og ansigtskant.<br />

Ved <strong>af</strong>prøvning <strong>af</strong> realtimetracking blev lamper drejet så der var diffust lys reflekteret fra en<br />

hvid væg. Lys i baggrunden blev begrænset så denne ikke gav anledning til "ansigtsfarvede"<br />

regioner. Opstillingen blev <strong>af</strong>prøvet både <strong>af</strong>ten og dag, hvor der var lys fra et vindue. Der blev<br />

prøvet med kameraets automatiske lowlight-boost slået til og fra. Dagslys havde dog en<br />

tendens til at give problemer med at separere ansigtet korrekt, hvis der var direkte dagslys på<br />

ansigtet. Ofte var det dog muligt at få drejet lamper, så ansigtet blev fundet korrekt.<br />

Ved god separtion <strong>af</strong> ansigtet, hvor baggrunden ikke gav anledning til regioner med<br />

ansigtsfarve, blev der opnået 10 billeder i sekundet.<br />

Ved mindre god separation faldt denne til 7 billeder i sekundet. R30 og R50 er optaget mens<br />

der var realtime separation. Øjepositionen har derfor en fejl på 6-17% (R30 og R50 samlet, og<br />

R30 alene), der <strong>af</strong>hænger <strong>af</strong> hovedets bevægelse.<br />

SIDE 63


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Test <strong>af</strong> to-spalte kamera<br />

For at teste to-spalte kameraet, kan man kun vurdere de konstruerede snit visuelt. Det kan<br />

Figur 48 Billedvolumen snittet på kryds, 142 o <strong>af</strong> billedsekvens på 30 fra COIL. Baggrunden er fjernet<br />

bagefter.<br />

imidlertid være svært at gengive den opfattede 3D effekt udfra enkeltbilleder.<br />

De mest overbevisende eksempler på metodens anvendelighed ses ved parallel snit, hvor<br />

synsvinklen ændres.<br />

Figur 48 viser ligesom Peleg (2000) et snit, der folder objekterne ud, så siderne kan ses<br />

samtidig med fronten. Et horisontalt snit i en ansigtssekvens gav en slags forstørrelse eller<br />

Figur 49 Horisontalt snit i en ansigtssekvens (R50), vinkel er 43 o og 32 o .<br />

forvanskningseffekt, hvor perspektivet blev påvirket, bemærk også baggrunden.<br />

SIDE 64


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Figur 50 Parallelt lodret snit i sidelæns bevægende kamera, søjle 60 og 70.<br />

Opsummering<br />

Testresultaterne giver et indblik i<br />

algoritmernes funktionsdygtighed. Der er<br />

løbende udført mindre test <strong>af</strong> de enkelte<br />

funktionaliteter, hvorefter en grundigere test er<br />

udført.<br />

Testen <strong>af</strong> MFFD er ligefrem, da en simpel<br />

<strong>af</strong>vigelse kan måles. Værre er det at teste<br />

hjørnedetektoren og featuretrackeren, hvor<br />

mange parametre kan justeres. En<br />

Figur 51 Parallelt lodret snit i sidelæns<br />

bevægende kamera, søjle 80.<br />

udtømmende test på repræsentative billeder for at finde optimale parametre, er derfor ikke<br />

nogen simpel opgave. Her er testet for at finde de mest åbenlyse <strong>af</strong>hængigheder og for at<br />

godtgøre, at koden virker som forventet.<br />

Resultaterne fra testen <strong>af</strong> ansigtsregion separationen viser, at tilnærmelsen til<br />

normalfordelingen <strong>af</strong> ansigtsfarver med en kvadratisk funktion fungerer ved visse lysforhold.<br />

Billederne og resultater viser også, at normalfordelingsfunktionen måske kan gøre det bedre.<br />

Øjedetektoren virker, men med en stor fejlprocent. Her er mulighed for at forbedre, hvis både<br />

ansigtsregionen bliver bestemt mere stabilt og en bedre geometrisk begrænsning bliver fundet.<br />

Snit i billedvolumen giver nogle interessante effekter, <strong>af</strong>hængig <strong>af</strong> hvordan billederne er taget.<br />

Snit på forskellige billedsekvenser blev <strong>af</strong>prøvet, og de mest interessante var ved sidelæns<br />

bevægende kamera.<br />

Der mangler her at prøve snit i billedvolumen, der er taget <strong>af</strong> et kamera, der roterer forskudt<br />

om sin akse, da dette også skulle give nogle interessante effekter (iflg. Peleg 2000).<br />

SIDE 65


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Diskussion<br />

Kunne indgangsvinklen have været en anden med større succes?<br />

Opgavens indgangsvinkel har været fra computervision og set på billedbaserede metoder. Det<br />

forslag, der kommer nærmest en løsnings <strong>af</strong> problemstillingen, er ikke en billedbaseret<br />

metode, men er baseret på metoder fra genkendelse <strong>af</strong> <strong>ansigter</strong>.<br />

Hvis startantagelsen havde været at se specifikt på <strong>ansigter</strong> og ikke visualisering <strong>af</strong> objekter<br />

fra en anden vinkel, så ville forløbet utvivlsomt have været et andet. Måske ville det have<br />

klarlagt en løsning, som var blevet implementeret. Men det kan man kun gætte på. Den<br />

erkendelse, der er opnået om egenskaberne ved de gennemgåede teknikker, ville i så fald ikke<br />

være opnået.<br />

At den foreslåede idé om at tracke ansigtet og tilpasse en 3D ansigtsmodel, er et godt bud på<br />

en løsning er et svært spørgsmål. En artikel, der ikke var kendskab til før til slut, giver et bud<br />

på, hvordan tracking <strong>af</strong> et ikke-stift legeme (som et ansigt) kan gøres (Bregler et al. 2000). En<br />

undersøgelse <strong>af</strong> denne er derfor også en mulighed, der bør undersøges videre. Det er heller<br />

ikke udelukket, at der er flere løsninger, hvor nogle indebærer teknikker, der ikke er med her.<br />

Kunne valget <strong>af</strong> værktøj have været bedre?<br />

Valget <strong>af</strong> Delphi/pascal i forhold til C viste sig at være både godt og dårligt. Det var en god<br />

idé, fordi kendskabet til Delphi i forvejen var stort. Det betyder meget at kunne programmere<br />

udfra hukommelsen og have faste skemaer for, hvordan et program bygges op. Kendskab til<br />

delphis objektmodel og et godt udviklingsmiljø med tilpassede genveje sparer en masse tid,<br />

når en idé skal efterprøves.<br />

Valget <strong>af</strong> Delphi viste sig at være en dårlig idé i forhold til anvendelsen <strong>af</strong> eksisterende kode i<br />

C eller C++. Det er godt nok muligt at konstruere headerfiler, så en DLL kan kaldes på kryds<br />

<strong>af</strong> programmeringssprogene, men den ene DLL, der blev konstrueret, gav en masse problemer<br />

før den virkede, og der var endda debug mulighed i DLL'en undervejs.<br />

Problemet med brug <strong>af</strong> eksisterende kode har også givet en masse viden. Valget <strong>af</strong> metoder<br />

har været nødt til at være velundersøgt, fordi en implementation var nødvendig, før metoden<br />

kunne <strong>af</strong>prøves. Implementationen <strong>af</strong> de forskellige metoder har også givet praktisk viden,<br />

som ikke ville været erfaret, hvis en færdig funktion kunne tages i brug med det samme.<br />

Valget <strong>af</strong> IPL har sparet meget tid, både i form <strong>af</strong> tid, der ellers skulle have været brugt på at<br />

implementere funktioner, som IPL håndterer, men også i form <strong>af</strong> den hastighedsgevinst man<br />

opnår.<br />

IPL's potentiale er tilmed ikke udnyttet helt. De generelle optimeringsmuligheder inkluderer,<br />

at danne brugerfunktioner med IPL, hvor en del <strong>af</strong> pixelbehandlingen bliver speedet op. Man<br />

SIDE 66


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

specificerer en pixelfunktion og så sørger IPL for at kalde den på en hensigtsmæssig hurtig<br />

måde. Metoden er ikke <strong>af</strong>prøvet her, men er en oplagt mulighed for at presse lidt ekstra<br />

hastighed ud.<br />

En <strong>af</strong> de ting man hæfter sig ved, når man arbejder med "naturlige" data, er den forskellighed,<br />

de kan optræde med. Under fx udviklingen <strong>af</strong> hjørnedetektoren og tracker, var der mange<br />

variable, man kunne justere på. Valg og vurderinger <strong>af</strong> hvilke værdier, der var passende,<br />

foregik på en ad-hoc vis, hvor simple statistik funktioner blev implementeret, hvor et<br />

gennemsnit eller standard<strong>af</strong>vigelse skulle bruges til vurdering. At få overblik over forskelle i<br />

disse data er en langsommelig proces, og det er let at overse en sammenhæng.<br />

En væsentlig forbedring <strong>af</strong> udviklingsprocessen kunne derfor være at implementere et<br />

statistikmodul, hvor <strong>af</strong>vigelser, <strong>af</strong>hængigheder osv. kan visualiseres ved gr<strong>af</strong>er. Beslutninger<br />

ville på den måde lettere kunne underbygges, og man ville evt. interaktivt kunne se forskellen<br />

ved forskellige valg.<br />

Er resultaterne tilfredsstillende?<br />

Hvilke problemer er ikke blevet løst? Hvad er blevet løst?<br />

Den overordnede problemstilling er ikke løst, det er ikke muligt at konstruere et "billede set<br />

fra skærmen" i en videokonference opstilling. Undervejs er der dog blevet konstrueret nye<br />

betragtninger <strong>af</strong> <strong>ansigter</strong> automatisk udfra en billedsekvens, begrænset til små vinkler, og et<br />

godt bud på en metode, der kan løse problemet, er opnået.<br />

Problemstillingen dækker over et bredt område <strong>af</strong> muligheder, og overvejelserne blev pga.<br />

bredden tidskrævende. At det er naturlige data er også en faktor, der er giver tidskrævende<br />

undersøgelser. På baggrund <strong>af</strong> at de valgte metoder er valgt blandt mange, er de opnåede<br />

resultater tilfredsstillende.<br />

Konklusion<br />

Dette opgavemæssigt ubestemte rejsemål har nået enden, og desværre uden muligheden for at<br />

gennemføre det, menneskeligt set, vel nok mest spændende aspekt ved projektet, nemlig om<br />

det ved teknisk snilde er muligt at forbedre samtaler over lange <strong>af</strong>stande. Muligheden for at få<br />

mere nærhed ind i en videokonference kunne forbedre samtaler fra automatisk at give den<br />

distance som vigende øjenkontakt giver, til måske at skabe en nærhed tæt op ad en samtale på<br />

kryds <strong>af</strong> et bord. Selvfølgelig stadig begrænset til kun at være ansigtsmimik uden det fulde<br />

kropssprog, der kunne være et fremtidigt mål at stræbe efter.<br />

SIDE 67


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Forskellige teorier og metoder er blevet gennemgået med henblik på at finde en metode til at<br />

indfange et ansigt med et webkamera og vise det fra en ny vinkel. I tre etaper er viden om<br />

opstillingen og metoders virkemåder blevet revideret, så en ny retning for undersøgelse er<br />

udstukket.<br />

Undervejs er en række nyttige værktøjer blevet implementeret. MFFD algoritmen til at udføre<br />

morfing med, viste sig også meget anvendelig til tilnærmelse til 3D punkter. Til 3D<br />

visualiseringen er en generel klasse, der letter initialisering <strong>af</strong> directX implementeret.<br />

Implementationen <strong>af</strong> hjørnedetektoren resulterede i et værktøj, der også kan benyttes til andre<br />

computervision problemer. Samtidig blev en række generelle hjælpefunktioner til IPL<br />

biblioteket implementeret, disse kunne senere anvendes under udviklingen <strong>af</strong> ansigtsdetektoren<br />

og beregningen <strong>af</strong> snit i to-spalte kameraet.<br />

Da der, så vidt vides, ikke eksisterer arbejder inden for området eller kommercielle<br />

programmer, der angriber lige præcis denne problemstilling, har selve fremgangsmåden for<br />

projektet et udforskende præg. Der var forud for projektets start, spredt viden om<br />

digitalbilledbehandling og 3D objektgenkendelse.<br />

På den baggrund, og med forskellige forslag til retninger at tage fra vejleder, er de dækkede<br />

områder ret brede. Selve problemstillingen er i kanten <strong>af</strong> flere specifikke emneområder.<br />

Det er vanskeligt fra starten at finde ud <strong>af</strong> præcis hvilke emneområder der skal søges i, når det<br />

er en problemstilling, der dækker flere områder. Det har vist sig under udviklingsprocessen, at<br />

havde indgangsvinklen været en anden end fra billedbehandling, computer vision og<br />

objektgenkendelse, så ville sporet måske hurtigere have ledt mod en brugbar idé.<br />

Projektet er blevet mere en undersøgelse <strong>af</strong> metoder, end hvad der var ventet fra start.<br />

Resultatet <strong>af</strong> undersøgelserne er, at de <strong>af</strong>prøvede billedbaserede (view morfing og view<br />

ekstrapolation) metoder til visualisering ikke er velegnede til problemet. To-spalte kameraet<br />

præsenterer en spændende ny metode til at visualisere statiske sceneopstillingen og natur,<br />

men egner sig i sin nuværende form ikke til webkamera opstillingen.<br />

En ting der er opnået er en solid bekræftelse <strong>af</strong>, at der er en masse muligheder forbundet med<br />

emneområdet.<br />

Perspektivering<br />

De teknikker opgaven har set på har et væld <strong>af</strong> mulige anvendelsesområder. Tospaltekameraet<br />

åbner for nye muligheder for augmented-reality, hvor en virtuel vandretur i<br />

naturomgivelser er muliggjort.<br />

SIDE 68


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

En fremtidsvision for metoder som disse, er at de kombineret med lyd og avancerede optage<br />

metoder kan benyttes til at give en fornemmelse <strong>af</strong> tilstedeværelse et andet sted. Dette åbner<br />

nye muligheder inden for både underholdning, kommunikation, teknik og videnskab.<br />

Tracking <strong>af</strong> <strong>ansigter</strong> kan man forestille sig anvendt til analyse <strong>af</strong> samtaler (hvor ser folk hen<br />

mens de taler?), eller måske som hjælpemiddel til handicappede (musen styres ved at "pege"<br />

med ansigtet / næsen).<br />

SIDE 69


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Litteraturliste<br />

Beier, T., & Neely, S. "Feature-based image metamorphosis" Proceedings on SIGGRAPH 92. In computer<br />

graphics 1992 pp. 35-42<br />

Brøndum, L & Monrad, J.D. (1993) "Statistik 1: Sansynlighedsregning og statistiske grundbegreber" 5. udgave,<br />

Den private ingeniørfond, ISBN 87-7381-016-9<br />

Blanz, V. & Vetter, T. (1999) "A morphable model for the synthesis of 3D faces" In Proc. ACM SIGGRAPH 99,<br />

pages 187-194, 1999<br />

Bregler, C., Hertzmann, A. & Biermann, H. (2000) " Recovering Non-Rigid 3D Shape from Image Streams", i<br />

CVPR, 2000.<br />

Bülthoff, H. H. & Edelman, S. (1992) “Psychophysical support for a 2-D view interpolation theory of object<br />

recognition” Proceedings of the National Academy of Science, vol. 89, p. 60-64, 1992.<br />

Choudhury, T., Clarkson, B., Jebara, T. & Pentland, A. (1998) "Multimodal person recognition using<br />

unconstrained audio and video" Technical Report TR-472, MIT Media-Lab., 1998.<br />

Coquillart, S. (1990) "Extended Free-Form Deformation : A Sculpturing Tool for 3D Geometric Modeling"<br />

Proceedings of SIGGRAPH '90 (Dallas, Tex., Aug. 6-10, 1990). In Computer Graphics, 24, 4<br />

(Aug. 1990), 187-196<br />

Edelman, S. & Weinshall D. (1991) "A self-organizing multiple-view representation of 3D objects" Biological<br />

Cybernetics 64, 209-219 (1991).<br />

Ezzat, T. & Poggio, T. (1996) "Facial analysis and synthesis using image-based models" Int. Conf. on Auto.<br />

Face and Gesture Recog., pp. 116-121, 1996.<br />

Foley, J.D., van Dam, A., Feiner, S.K. & Hughes, J.F. (1996) "Computer Graphics: principles and practice" 2ed<br />

in C, Addison Wesley.<br />

Forsey, D.R. & Bartels, R.H. (1988) "Hierarchical B-spline refinement" Computer Graphics (proc. SIGGRAPH<br />

88) , vol 22, no. 4, pp. 205-212, 1988.<br />

Gonzalez, R. C. & Woods, R. E. (1992) "Digital Image Processing", Addison-Wesley ISBN 0-201-50803-6<br />

Harris C. & Stephens M. (1988) "A combined corner and edge detector", Proc. 4th Alvey Vision Conf.,<br />

Manchester, UK, 1988.<br />

Horn, B.K.P. (1986) "Robot vision" MIT Press, ISBN 0-262-08159-8<br />

Intel (2000) "Intel image processing library reference manual" Intel corporation document no. 663791-005,<br />

http://developer.intel.com<br />

Intel (2001) "Intel Open Source computer vision library reference manual"<br />

http://www.intel.com/research/mrl/research/opencv/<br />

Jebara, T. & Pentland, A. (1997) "Parametrized Structure from Motion for 3D Adaptive Feedback Tracking of<br />

Faces". In IEEE Conference on Computer Vision and Pattern Recognition (CVPR'97), San Juan,<br />

Puerto Rico, June 1997.<br />

Klein, A., Sloan, P.P., Colburn, A., Finkelstein, A. & Cohen, M.F. (2001) "Video Cubism" Technical report<br />

MSR-TR-2001-45, Microsoft research 2001.<br />

SIDE 70


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Leach, G. (1992) "Improving Worst-Case Optimal Delaunay Triangulation Algorithms" 4th Canadian<br />

Conference on Computational Geometry 1992.<br />

Lee, S.-Y., Chwa, K.-Y., Shin, S.Y & Wolberg, G. (1995) "Image metamorphosis using snakes and free-form<br />

deformations" Proceedings on SIGGRAPG 95. In computer graphics 1995. pp.439-448.<br />

Lee, S.-Y., Wolberg, G. & Shin, S.Y (1997) "Scattered data interpolation with multilevel B-Splines" IEEE<br />

Trans. On Visualisation and Computer Graphics, Vol.3 No.3 1997.<br />

Lew, M. S., She, A. C. & Huang, T. S. (1995) "Intermediate views for face recognition" in V. Hlavac & R. Sára<br />

(eds.) proceedings CAIP'95 ISBN 3-540-60268-2 Springer-Verlag.<br />

Longuet-Higgins, H. C. (1981) "The reconstruction of a scene from two projections" in H.C. Longuet-Higgins<br />

(1987) "Mental processes – Studies in cognitive science" MIT Press, ISBN 0-262-12119-0<br />

Marr, D. (1982) "Vision: A computational investigation into the human representation and processing of visual<br />

information"<br />

McCuskey, M. (2001) "Special effects game programming with DirectX" Premier Press, ISBN 1-931841-06-3<br />

Messer, R. (1994) "Linear algebra : gateway to mathematics" HarperCollins, ISBN 0-06-501728-5<br />

Nene, S.A., Nayar, S. K. & Murase, H. (1996) "Columbia Object Image Library (COIL-20)" Technical Report<br />

No. CUCS-006-96<br />

Peleg, S., Rousso, B., Rav-Acha, A. & Zomet, A. (2000) "Mosaicing on Adaptive Manifolds" IEEE Trans. on<br />

pattern analysis and machine intelligence, 22(10):1144-1154, Oktober 2000.<br />

Peleg, S. (2002) "Perspective Unbound: The two-slit camera" Submitted to Siggraph 2002<br />

Pfeifer, R. & Scheier, C. (1999) "Understanding intelligence" MIT Press ISBN 0-262-16181-8<br />

Press, W.H., Flannery, B.P., Teukolsky, S.A. & Vetterling, W.T. (1989) "Numerical Recipies in Pascal"<br />

Cambridge University Press.<br />

Seitz, S.M. & Dyer, C.R. (1995) "Physically-valid view synthesis by image interpolation", in Proceedings of the<br />

visual scene representation workshop, Boston, pp.18-27. IEEE, 24 juni 1995.<br />

Seitz, S.M. & Dyer, C.R. (1996) "View Morphing" in Proceedings of SIGGRAPH96, 1996, pp.21-30.<br />

Shum, H. & Kang, S. (2000) "A review of image-based rendering techniques" i SPIE International Conference<br />

on visual communications and image processing, pp. 2-13, Perth, Australia, juni 2000.<br />

Sonka, M., Hlavac, V. & Boyle, R. (1999) "Image Processing, Analysis, and Machine Vision" 2nd ed. PWS<br />

Publishing, ISBN 0-534-95393-X<br />

Toegl, S. & Poggio, T. (1994) "Towards an example-based image compression architecture for videoconferencing"<br />

A.I. Memo No. 1494, M.I.T., Boston, MA, June 1994.<br />

Trucco, E. & Verri, A. (1998) "Introductory techniques for 3-D computer vision", Prentice Hall, ISBN 0-13-<br />

261108-2<br />

Werner, T., Hersch, R.D. & Hlavác, V. (1995) "Rendering Real-World objects without a 3-D model" in V.<br />

Hlavac & R. Sára (eds.) proceedings CAIP'95 ISBN 3-540-60268-2 Springer-Verlag.<br />

Werner, T., Pajdla, T. & Hlavác, V. (1997) "Visualizing 3-D Real-world scenes using view extrapolation" Czech<br />

technical university research report. No. K335-CMP-1997-137.<br />

Werner, T., Pajdla, T. & Hlavác, V. (1998) "Efficient 3-D scene visualization by image extrapolation" in<br />

European conf. computer vision, 1998.<br />

Wolberg, G. (1998) "Image morphing: a survey." The Visual Computer, 14(8/9):360-372, 1998.<br />

SIDE 71


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Yang, J., Stiefelhagen, R., Meier, U. & Waibel, A. (1998) "Real-time face and facial feature tracking and<br />

applications" In Proceedings of AVSP'98, pp. 79-84, Terrigal, Australia, 1998.<br />

Yang, J. & Waibel, A. (1996) "A Real-Time Face Tracker" in Proceedings of WACV'96 (Sarasota, Florida,<br />

USA)<br />

Zhang, R., Tsai, P.S., Cryer, J.E. & Shah, M. (1994) "Shape From Shading: A Survey" IEEE CVPR-94, juni<br />

1994, pp 377-384.<br />

.<br />

SIDE 72


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Appendiks<br />

Ordliste<br />

Liste <strong>af</strong> passende danske oversættelser til præcise engelske udtryk. I oversættelsen er det<br />

forsøgt at ramme den præcise definition, hvor der ikke allerede eksistere et dansk udtryk der<br />

er dækkende.<br />

Feature : kendetegn eller karakteristisk træk<br />

Morph (kort form <strong>af</strong> metamorphosis) : metamorfose eller forvandling.<br />

Tracking : Af track (efterspore - sætte spor) sporing eller eftersporing<br />

View : synsvinkel eller betragtning<br />

Warp : Fordrejning eller skævvridning (<strong>af</strong> billede)<br />

Augmented reality : Lige som virtual reality, men omgivelserne er ikke computerskabt, men<br />

en visualisering <strong>af</strong> et virkelig verdens scenario.<br />

Vejledning til eksempelprogrammer<br />

En række testprogrammer er blevet konstrueret undervejs under udviklingen. Programmerne<br />

er testet og udviklet under Windows 2000, og de fleste kræver Intel IPL og DirectX version<br />

8.1 bibliotekerne for at kunne kører. Afvikling under andre Windows versioner skulle være<br />

muligt, men er ikke testet.<br />

På den vedlagte Cd-rom er kildekode til programmerne, samt de nødvendige biblioteker for at<br />

køre dem. Oversatte versioner findes i bin kataloget og kan køres derfra. Billeder og<br />

billedsekvenser er også på Cd-rommen i kataloget imagedata.<br />

Test program til MFFD.<br />

Filnavn: tester2.exe<br />

Program til at teste mffd algoritmen. Man kan tegne spline net, og trække i punkterne så nettet<br />

deformeres.<br />

SIDE 73


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Figur 51 Skærmbillede fra tester2 programmet. Show log knappen viser<br />

statistik tal for deformeringen. Deform knappen opdater efter ændring <strong>af</strong><br />

netstørrelsen, der angives i tekstfelterne under. Det store tekstfelt<br />

indeholder nettets data og punktkoordinater.<br />

Imagetoolbox facefind og twoslit<br />

Filnavn: imagetoolbox.exe<br />

Programmet kan benyttes ved at hente enten et enkelt billede eller en sekvens. En tekstfil med<br />

filnavne specificere en sekvensen. For at initialisere snit skal en sekvens hentes ind først –<br />

bemærk at alle filerne da hentes ind, er der mange billeder kan det give hukommelsesproblemer.<br />

SIDE 74


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Figur 52 Skærmbillede fra image tool programmet<br />

Specver2 – Hjørnerespons og Hjørnetrack, MFFD og delaunay rekonstruktion.<br />

Filnavn: specver2.exe<br />

Programmet er forsøgt opdelt så funktionernes sammenhæng fremgår. Repræsentationen <strong>af</strong><br />

trackede punkter er en fil <strong>af</strong> single værdier med endelsen pts. Bemærk at der ikke bliver<br />

spurgt om man vil overskrive i nogle <strong>af</strong> programmerne – der bliver bare overskrevet!<br />

Figur 53 Skærmbillede fra Specver2 programmet.<br />

SIDE 75


RUNE ANDERSEN SYNSVINKELTRANSFORMATION AF ANSIGTER FORÅR 2002<br />

Videotest og realtime tracking<br />

Filnavn: Videotest.exe<br />

Program til at grabbe billeder fra et logitech web kamera. Programmet kan visualisere<br />

realtime track <strong>af</strong> et ansigt.<br />

Når programmet startes trykkes startvideo for at initialisere kameraet, derefter grab.<br />

Hvis ansigtet ikke findes med det samme, kan ændringer <strong>af</strong> lys prøves. Knappen calibrate<br />

beregner ny farve gennemsnit <strong>af</strong> den rektangel der er fundet.<br />

Programmet kan gemme en tekstfil med filnavne, og kan gemme en billedsekvens fortløbende<br />

numereret. Programmet kan ikke lukkes før tryk på grab stop.<br />

Specdx8 – mffd textur map<br />

Filnavn: dx8special.exe<br />

Hovedfunktionaliteten er erstattet <strong>af</strong> specver2, men programmet kan manipulere tekstur i 2D<br />

med MFFD.<br />

Intelimage – håndtrack<br />

Filnavn: intelimage.exe<br />

Hovedfunktionaliteten er erstattet <strong>af</strong> specver2, men programmet kan benyttes til at håndtracke<br />

billeder. Til det er knapperne openpicfile, loadpts og savepts de eneste der skal benytte. Nye<br />

punkter oprettes ved at trække fra det blå felt.<br />

Kildekode oversigt<br />

Koden er oversat <strong>af</strong> Delphi professional version 4.3. Men skulle kunne kører i højere<br />

versioner.<br />

Følgende oversigt over units, funktioner, procedure mm. er genereret udfra kommentarer i<br />

koden, baseret på pasdoc kommentar konvention (over procedure og funktions deklarationer).<br />

Der er løbende kørt en prettyprinter på koden som ordner indrykninger efter indlejringsniveau,<br />

så overblik bliver bedre.<br />

Oversigten er genereret med programmet pasdoc, der er et pascalkode dokumenteringssystem,<br />

i stil med javadoc til javakode.<br />

Da pasdoc genererer output i latex formatet, er typogr<strong>af</strong>ien for oversigten forskellig fra det<br />

øvrige dokument.<br />

SIDE 76

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!