Synsvinkeltransformation af ansigter
Synsvinkeltransformation af ansigter
Synsvinkeltransformation af ansigter
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