IFT6145 - Vision tridimensionelle
Hiver 2004

TP 1: Calibration - Partie 1

Soit le modèle de caméra suivant (en géométrie projective):

(({{u}, {v}, {w}}))= M(({{X}, {Y}, {Z}, {1}}))
	où M est une matrice 3  x4

En utilisant (1) un modèle de caméra affine, (2) un modèle perspective obtenu par la methode directe, et (3) un modèle perspective obtenu par la methode indirecte,
calculez M à partir des quatre ensembles de points donnés plus bas. Les points p1,p2,p3,p4 sont les points 2D et les points q1,q2,q3,q4 sont les points 3D correspondants.

A. Illustrez les modèles de caméra obtenus en 3D à l'aide de la fonction "sceneCamera" vue dans le tp0.nb. Pour chaque ensemble de donnees, presentez les 3 cameras obtenues ensemble pour qu´on puisse comparer le resultat.

B. Pour chaque methode (1,2,3) et chaque ensemble de points (1,2,3,4), calculez l´erreur de reprojection. On definit cette erreur comme la somme des differences au carrees des points 2d originaux et des points 3d projetes par le model obtenu. Donc, si vous avez obtenu un modele M, l´erreur est     somme(i=1..N) (p_i - M.q_i)^2
Presentez les les erreurs dans un tableau.

Expliquez brièvement les différences (si il y en a) entre les résultats obtenus pour les trois methodes de calibration et aussi entre les 4 ensembles de points.

Pour le modèle perspective, utilisez l'algorithme direct de la section 6.2 (et aussi décrit dans les notes du cours).
Pour le modèle affine, utilisez l'algorithme associé à l'équation 6.17 du livre, qui est aussi décrit
dans les notes du cours.
Pour le modele perspective obtenu indirectement, utilisez votre modele affine et faite l´extraction des parametres selon la section 6.17 du livre.

Les images sont toujours de taille 256x256
Le centre de l'image est toujours (128,128). Pour la methode perspective indirecte, calculez le centre meme si il est deja connu. Vous pourrez verifier si la valeur est bonne ou non.

Les points de la caméra 1 ne contiennent aucun bruit.
Les points images des caméras 2 et 3 contiennent du bruit.
Les points images de la caméra 4 contiennent du bruit et une surprise.

Conseil: Pour calculer la décomposition en valeurs singulières (SVD), Mathematica vous offre la fonction "SingularValueDecomposition[""m""]"" ".
Notez que cette fonction ne retourne pas exactement la même décomposition que dans le livre.

Caméra 1

p1=(({{97.77040994597132`, 160.95718465673133`, 1}, {37.48878305823824`, 161.2090755679567`, 1}, {254.5636393236881`, 47.455161697397514`, 1}, {63.61543840192019`, 26.10106449539089`, 1}, {161.14610767336245`, 100.34645752333296`, 1}, {128.59861593718418`, 114.92567180684995`, 1}, {91.49776542053489`, 250.26147398590646`, 1}, {156.1585516100723`, 96.65791878192158`, 1}, {79.88637474317864`, 250.20136695334094`, 1}, {59.95147870141782`, 173.67729917522195`, 1}, {238.52845880037432`, 12.49631700402027`, 1}, {250.60623887930095`, 212.4273943049835`, 1}}));

q1=(({{5.988204704082243`, 17.53691210847948`, 15.718910616749394`}, {1.3810142878220535`, 16.941582734164395`, 16.134708876092112`}, {20.407963255538995`, 9.403092246262869`, 18.661552761877058`}, {4.166535829332172`, 8.036544664979983`, 19.64171151584383`}, {11.211780810446324`, 12.824268641001167`, 16.809421245135734`}, {7.549445263896633`, 12.045252808061313`, 14.43575306284274`}, {4.192719238275963`, 19.555032643275126`, 9.631133507278134`}, {11.536336594819588`, 13.4507848772329`, 18.269818746560922`}, {3.56909389120802`, 21.097116679919704`, 10.545034273462681`}, {3.097115985808984`, 21.37482635667398`, 18.308178302233035`}, {15.434365153376348`, 5.995122310067341`, 16.62677999446516`}, {16.298807107672893`, 18.16950029968594`, 8.612625337831444`}}));

Caméra 2

p2=(({{101.71035460187619`, 242.06150243941852`, 1}, {216.02229687037982`, 3.999387317305876`, 1}, {77.31271161830318`, 209.2040333198538`, 1}, {222.29588626205086`, 103.36203669891955`, 1}, {245.1504177274976`, 25.8889091205244`, 1}, {202.2357172430929`, 70.70802867780485`, 1}, {115.25386978797366`, 110.03792790446886`, 1}, {12.459392001598012`, 65.56265835925521`, 1}, {164.58495035014354`, 24.543785223590923`, 1}, {187.55013491897714`, 162.8750164343836`, 1}, {102.76709457498161`, 232.1497289268266`, 1}, {160.18088725166376`, 254.5788275382488`, 1}}));

q2=(({{12.674927231755026`, -7.013029223268119`, 21.37020437331409`}, {6.4709344849298045`, -17.21852361915352`, 9.945795289447652`}, {9.207757188975716`, -6.718123837860483`, 19.710490739422077`}, {9.491933180605574`, -11.58695984162533`, 10.641252665155548`}, {7.1676218472433915`, -13.287214506844345`, 7.971912683198832`}, {8.05396299316177`, -13.559058404195543`, 11.327775675467882`}, {6.706376486428324`, -11.301884012829493`, 16.123375580202406`}, {1.0102698239066814`, -7.380180075109805`, 14.802823092269488`}, {5.353106869104745`, -15.720188074321797`, 12.38506819374236`}, {12.235776490431354`, -11.528340351437393`, 14.899451146826149`}, {10.620514157214561`, -5.9245252002958475`, 18.120362169247944`}, {12.3209840600864`, -5.310588607597017`, 15.08485775245232`}}));

Caméra 3

p3=(({{27.426478887321863`, 37.99225783560396`, 1}, {157.10910997827597`, 4.291838120638559`, 1}, {21.752267177142045`, 30.131740199209602`, 1}, {86.79926491498976`, 67.7597863078248`, 1}, {157.82699154785635`, 143.2672008948214`, 1}, {5.669544768774435`, 225.74829767842732`, 1}, {111.63093147109315`, 188.59101242577862`, 1}, {148.17245755277608`, 184.0025770592557`, 1}, {90.81169670922787`, 99.84634853899368`, 1}, {151.97373234680435`, 85.47530955370176`, 1}, {106.19057175929389`, 122.47654840785717`, 1}, {208.41415145975927`, 37.685021993159836`, 1}, {179.19367046206037`, 68.81968385755764`, 1}, {70.84139786270345`, 214.7013462431992`, 1}, {141.83732631383015`, 134.704186729588`, 1}, {115.101417034752`, 219.62202529055892`, 1}, {6.672039094025823`, 15.585667111162946`, 1}, {185.00312542568614`, 171.51677718931612`, 1}, {226.67854121157998`, 60.658963104542536`, 1}, {13.581935632495927`, 189.38114257007516`, 1}, {162.30653983325675`, 196.22848903983035`, 1}, {172.89168748372387`, 208.03736597660014`, 1}, {43.89459620527416`, 38.01918175876541`, 1}, {72.69787123176648`, 81.45050675956713`, 1}, {102.64338228209145`, 57.271151832613334`, 1}}));

q3=(({{-5.340393927195958`, 1.332603041202422`, 21.904844903274522`}, {1.091524774799837`, -3.862407364717046`, 17.40594806680241`}, {-4.878355743403322`, 0.6105275696180598`, 18.671926142324907`}, {-0.6961062703024453`, 0.870207951559829`, 25.658429041872775`}, {4.65381540371955`, 2.705812270045627`, 16.179944199908665`}, {-0.8564980740838654`, 10.80989436437415`, 16.165645300261517`}, {3.6718010727672654`, 6.650913888635571`, 16.590727182430225`}, {5.825496366715861`, 5.724573799156077`, 18.336162031990742`}, {0.3941732248688575`, 2.658083355871154`, 17.167161283372387`}, {3.6074280721136494`, -0.06711170189272059`, 20.056626227347653`}, {1.7729899905038802`, 3.208276583591283`, 16.527602074432714`}, {5.168923053078409`, -4.111442458959051`, 18.16029525829526`}, {4.34160224186245`, -1.4974913177492966`, 17.664954717949485`}, {1.8341738101781309`, 7.760336865140139`, 14.400427847777918`}, {3.460195058121993`, 2.7195578360721875`, 14.79837820154177`}, {5.196360246492975`, 8.322282315371599`, 17.49431207396867`}, {-6.512598607885255`, 0.5002109585934126`, 19.999721540126114`}, {7.471629381870183`, 3.8444766601762463`, 16.92723154428786`}, {8.942312501953266`, -4.868577345353999`, 23.094379845823713`}, {-1.2701863927170454`, 9.64945157914096`, 18.338633564614316`}, {9.201618278935777`, 7.384813627452697`, 22.62051196697861`}, {9.192309464957864`, 6.929823686159899`, 20.520961665213168`}, {-4.749672798426645`, 0.1802141546303316`, 23.946779918475375`}, {-1.2912889783724246`, 2.09421039280862`, 19.798297385641124`}, {-0.13568670906574573`, -0.591298106571706`, 23.72582204107242`}}));

Caméra 4

p4=(({{200.85938384262712`, 101.81657041957975`, 1}, {74.1176141636288`, 32.63236224374679`, 1}, {226.47969804410366`, 4.945623117595234`, 1}, {141.78542412188972`, 160.080815731581`, 1}, {148.7405522560559`, 222.4415392790458`, 1}, {223.72136781829101`, 156.2830111527492`, 1}, {124.27112929438128`, 41.1481191049944`, 1}, {220.64676090889344`, 193.00325286842673`, 1}, {34.1051159453228`, 117.47210945566549`, 1}, {144.90661600443838`, 0.8779946994595975`, 1}, {130.75928947171965`, 145.04916988637441`, 1}, {54.52301171019309`, 229.77272747158244`, 1}, {127.0603243294251`, 84.17113725989165`, 1}, {9.29133696607405`, 221.7432379086346`, 1}, {221.9812287190911`, 250.72681804317108`, 1}, {39.02695320462787`, 52.40444507907274`, 1}, {214.19926382469407`, 173.5272313985886`, 1}, {102.26923699422096`, 207.63688967269775`, 1}, {80.04973491303481`, 206.44542364415366`, 1}, {169.95297686808013`, 103.45848607223807`, 1}, {67.60708726725896`, 85.36527717814378`, 1}, {221.81156490504736`, 95.64008699152654`, 1}, {245.7788470282759`, 2.558230728195879`, 1}, {38.70160476173153`, 188.0563858506615`, 1}, {146.97175513264017`, 120.69578000131372`, 1}}));

q4=(({{4.865944312395479`, 0.17392406842801333`, 18.310480182344975`}, {-3.865165515314541`, 5.096540307628092`, 20.890002500696006`}, {1.3957731912713496`, -6.318384154933747`, 25.383866324397985`}, {8.767195071950747`, 6.764368819117494`, 22.523973911928376`}, {11.72671522881848`, 9.430634386685412`, 17.666827593762395`}, {9.486268872173936`, 0.740082620183685`, 17.838070977057672`}, {-0.9497144054646727`, 2.2765337132132575`, 19.969790611139583`}, {15.324254995906486`, 2.5825657788051264`, 20.696029784257643`}, {0.07817547789711636`, 13.253499603435975`, 22.953366428752474`}, {-2.128600945883347`, -0.749664422265274`, 22.065198292620572`}, {6.6689114450266676`, 7.12993883047417`, 21.24812774186113`}, {4.864556275859275`, 11.351862152586897`, 12.724511002445174`}, {2.3460319860077776`, 4.67727070900616`, 24.646873319153684`}, {4.597678293633341`, 17.07523450221833`, 16.033614800592456`}, {10.85392225597552`, 1.3523795105505756`, 12.844682750681859`}, {-4.461562734602047`, 10.247521935793282`, 26.354101410313667`}, {13.621938185998122`, 2.343293528272246`, 22.11557945083677`}, {9.251159079939804`, 12.250192446157284`, 19.379985366014857`}, {8.371329640382205`, 14.043633205719821`, 19.936067496935493`}, {5.676189292559823`, 2.1778397511816547`, 22.588223823009425`}, {-0.6689497510525528`, 9.059885795391876`, 24.588700766478297`}, {8.560151656811989`, -2.094788881518889`, 24.53312196368369`}, {1.5062801550533484`, -6.131304267693803`, 21.236933004154903`}, {3.6667839240764213`, 13.165847532623317`, 16.72147363040085`}, {3.2110412449503314`, 3.329752021063586`, 15.099366151988342`}}));