Universit´ede Li`ege- Facult´edes sciences appliqu´ees Institut Montefiore - Service de t´el´ecommunications et d’imagerie

Travail de fin d’´etudes

G´en´eration automatique d’une base de donn´ees de silhouettes humaines au moyen d’un avatar humain tridimensionnel

Sebastien´ Pierard´ , 3ELIN

Jury : Professeur Marc Van Droogenbroeck Professeur Bernard Boigelot Professeur Fran¸cois-Xavier Litt

Promoteur : Professeur Marc Van Droogenbroeck

18 mai 2007 Remerciements

C’est avec un r´eelplaisir que je remercie tous ceux qui par leur en- seignement et leurs conseils ont contribu´e`ace travail de fin d’´etudes.Je remercie tout d’abord le Professeur M. Van Droogenbroeck qui m’a accord´e sa confiance et m’a permis de travailler sur un sujet aussi int´eressant qu’at- trayant. Je remercie ´egalement mes autres Professeurs pour tout ce qu’ils m’ont appris. J’adresse mes plus vifs remerciements `aMonsieur O. Bar- nich pour le temps qu’il m’a consacr´e,son aide pr´ecieuseet les perspec- tives int´eressantes qu’il a donn´ees`amon travail. Ma gratitude va ´egalement `aMonsieur S. Jodogne pour ses suggestions fructueuses. Enfin, j’adresse mes pens´eessinc`eres`atous ceux qui m’ont soutenu et encourag´epour l’´elaboration de ce travail, mes amis et mes parents.

1 Table des mati`eres

1 Introduction 7 1.1 Enonc´e.´ ...... 7 1.2 Petit historique du travail ...... 8

2 Le m´ecanismede projection 12 2.1 Le mod`eledu st´enop´e ...... 13 2.1.1 Passage dans le monde de la cam´era ...... 13 2.1.2 Projection sur le plan focal ...... 14 2.1.3 Passage aux coordonn´eesdiscr`etes ...... 15 2.1.4 Conclusion ...... 15 2.2 Etalonnage´ de cam´era ...... 16 2.2.1 D´eterminationde la matrice de projection ...... 16 2.2.2 Factorisation de la matrice de projection ...... 17 2.3 La cam´eravirtuelle de Pov-Ray ...... 19 2.3.1 Description des param`etresextrins`eques ...... 19 2.3.2 Description des param`etresintrins`eques ...... 20

3 Placement de l’avatar 22 3.1 D´efinitiondu probl`eme...... 23 3.1.1 D´efinitionde la distance dπ ...... 23 3.1.2 Lien avec la distance de Hausdorff dH ...... 25 3.1.3 Construction d’un ensemble S de positions ...... 26 3.1.4 Hypoth`esesde travail ...... 28 3.2 Premier ensemble de positions ...... 29 3.2.1 Premi`erefamille de surfaces ...... 29 3.2.2 Deuxi`emefamille de surfaces ...... 30 3.2.3 Troisi`emefamille de surfaces ...... 30 3.3 Deuxi`emeensemble de positions ...... 31 3.3.1 Premi`erefamille de surfaces ...... 31 3.3.2 Deuxi`emefamille de surfaces ...... 32 3.3.3 Troisi`emefamille de surfaces ...... 32 3.4 Troisi`emeensemble de positions ...... 33 3.5 Quatri`emeensemble de positions ...... 35

2 TABLE DES MATIERES` 3

3.6 Analyse des performances ...... 37

4 Orientation et pose de l’avatar 38 4.1 D´efinitiondu probl`eme...... 38 4.2 Orientation de l’avatar ...... 38 4.3 Choix des poses ...... 43 4.4 Ordre des choix ...... 45

5 MakeHuman et l’avatar 47 5.1 MakeHuman ...... 48 5.1.1 Introduction ...... 48 5.1.2 Le mod`ele...... 49 5.1.3 Le syst`emede pose ...... 50 5.1.4 Les ´evolutions pr´evues...... 51

6 Squelette de l’avatar 53 6.1 Apprentissage du squelette ...... 53 6.1.1 Notion de mod`elearticul´e ...... 54 6.1.2 Notion de squelette ...... 55 6.1.3 Apprentissage ...... 55 6.1.4 Enrichissement du squelette ...... 57 6.2 D´etectiondes poses illicites ...... 63 6.2.1 Premi`ereapproche ...... 64 6.2.2 Deuxi`emeapproche ...... 64 6.2.3 Optimisation ...... 66 6.3 Diminution du taux de rejet ...... 68 6.3.1 M´ethode a priori ...... 68 6.3.2 M´ethode a posteriori ...... 71 6.3.3 R´esultatsdes deux m´ethodes ...... 73

7 Le programme Silhouette 1.0 75 7.1 Approches al´eatoireet d´eterministe...... 75 7.2 Position et orientation de l’avatar ...... 76 7.3 Interaction avec MakeHuman ...... 77 7.4 Calcul des silhouettes ...... 78 7.5 Annotation des silhouettes ...... 79 7.6 Mode d’emploi ...... 81

8 Application, r´esultatset perspectives 87 8.1 Application ...... 87 8.2 Les diff´erentes bases de donn´ees...... 88 8.2.1 Les bases de donn´eesde silhouettes r´eelles...... 88 8.2.2 Les bases de donn´eesde silhouettes synth´etiques . . . 89 8.2.3 Les bases de donn´eeshybrides ...... 90 TABLE DES MATIERES` 4

8.3 R´esultats ...... 90 8.4 Perspectives ...... 93

Bibliographie 100

A Rappels d’alg`ebrelin´eaire 102 A.1 D´ecomposition en valeurs singuli`eres ...... 102 A.2 Moindres carr´eset pseudo-inverse ...... 102 A.3 Les ´equationshomog`enes ...... 103

B Solution de l’´equation3.36 104

C Solution de l’´equation6.11 105

D Segments et triangles 107 Table des figures

2.1 Passage dans le monde de la cam´era...... 13 2.2 Projection sur le plan focal...... 14 2.3 Passage aux coordonn´eesdiscr`etes...... 15 2.4 La cam´erade Pov-Ray ...... 19

3.1 Impact de l’indiff´erence`ala translation ...... 37

4.1 Exemple de distribution de points sur une sph`ere ...... 39 4.2 Influence d’un d´eplacement born´esur la projection d’un point 40 4.3 Orientations n´ecessairespour un d´eplacement local maximal . 42 4.4 Organisation globale propos´ee...... 46

5.1 L’avatar de MakeHuman 0.9 ...... 48 5.2 L’avatar de base de MakeHuman, dans sa pose initiale . . . . 49 5.3 La pose de l’Homme de Vitruve ...... 50 5.4 Habillage de l’avatar ...... 51 5.5 Ajout de cheveux `al’avatar ...... 52 5.6 Quelques param`etresfantaisistes ...... 52 5.7 Nouveau moteur de pose de MakeHuman ...... 52

6.1 Interaction avec la boˆıtenoire MakeHuman ...... 54 6.2 Exemple de mod`elearticul´e ...... 54 6.3 Mouvements impossibles `amod´eliserpar un mod`elearticul´e. 55 6.4 Squelettes associ´esau mod`elearticul´ede la figure 6.2 . . . . . 57 6.5 Calcul des tailles du mod`elearticul´ede la figure 6.2 . . . . . 58 6.6 Squelette de l’avatar de MakeHuman ...... 59 6.7 Exemple de pose illicite ...... 63 6.8 Les quatre positions relatives de deux triangles ...... 63 6.9 Illustration de la fonction d’entropie E (´equation6.15) . . . . 69 6.10 Illustration du principe de la m´ethode a priori ...... 70 6.11 Raisonnement menant `ala formule empirique 6.16 ...... 72 6.12 Impact de la r´einitialisationsur le taux de poses licites . . . . 73

7.1 Les trois modes de dessin de la projection ...... 79

5 TABLE DES FIGURES 6

7.2 Quelques annotations de silhouettes ...... 80 7.3 D´emarragede Silhouette 1.0 ...... 82 7.4 L’interface graphique de l’´etape d’apprentissage...... 82 7.5 Interface graphique du squelette ...... 83 7.6 La fenˆetrede configuration...... 84 7.7 Interface graphique de l’´etalonnagede cam´era...... 85 7.8 Interface graphique de la g´en´erationde silhouettes ...... 86

8.1 Plages des param`etresdans les diff´erentes bases de donn´ees.. 91 8.2 Echantillon´ de la base de donn´eesde r´ef´erence...... 94 8.3 Echantillon´ de la base de donn´eesde test ...... 95 8.4 Echantillon´ de la base de donn´eeso`useuls les doigts sont fix´es 96 8.5 Echantillon´ de la base de donn´ees A ...... 97 8.6 Echantillon´ de la base de donn´ees B ...... 98 Chapitre 1

Introduction

1.1 Enonc´e´

Dans le cadre de la conception de syst`emesde vid´eo-surveillance, il est int´eressant de disposer d’un syst`emepermettant la d´etectionet la locali- sation automatique des ˆetreshumains pr´esents devant les cam´eras.De tels syst`emesexistent et une partie d’entre-eux sont bas´essur la reconnaissance de la forme de silhouettes humaines.

Si on souhaite faire usage d’une technique d’apprentissage automatique pour la reconnaissance de ces silhouettes, on est amen´e`adevoir constituer une base de donn´eescomportant un grand nombre d’exemples de telles sil- houettes. C’est l`aun travail fastidieux et r´ep´etitifqu’il serait tr`esint´eressant de pouvoir automatiser.

Le but de ce travail est d’explorer les possibilit´esoffertes par l’utilisation d’un avatar humain tridimensionnel afin de g´en´ererautomatiquement une telle base de donn´eesou d’enrichir une base de donn´eesde silhouettes r´eelles.

Apr`esavoir fait une ´etudebibliographique afin de prendre connaissance des travaux existants dans le domaine, l’´etudiant devra choisir une m´ethode et proc´eder`ala g´en´erationde bases de donn´eescomportant soit des sil- houettes exclusivement synth´etiques,soit un m´elangede silhouettes synth´e- tiques et de silhouettes r´eelles.Il devra ensuite ´etudierl’impact de l’utilisa- tion de ces bases de donn´eessur les performances d’un syst`emede d´etection de personnes existant qui lui sera fourni.

7 CHAPITRE 1. INTRODUCTION 8

1.2 Petit historique du travail

Apr`esavoir effectu´eplusieurs jours de recherche sur plusieurs sites inter- net proposant des bases de donn´eesd’articles scientifiques, nous avons dˆu nous r´esoudre`aabandonner. En effet, soit la documentation sur le sujet est inexistante, soit la g´en´erationde silhouettes est un probl`emeexplor´edans d’autres disciplines auxquelles nous n’avons pas pens´e.Nous esp´erionsce- pendant obtenir de la documentation sur quelques sujets ponctuels.

Nous avons donc ´et´econtraints d’explorer le probl`emede mani`ererela- tivement empirique. Rapidement, quelques questions fondamentales se sont pos´ees.Outre la question de la mod´elisationde l’avatar, notre attention a ´et´eattir´eepar le nombre important de degr´esde libert´edu probl`eme.Il nous a sembl´eimpossible de mod´eliserde mani`erer´ealisteun avatar humain avec moins d’une vingtaine de param`etres,auquels il faut ajouter trois degr´es de libert´epour la position et trois autres pour l’orientation1. Supposons un instant faire varier chaque param`etrepar dix pas, il nous faudrait effectuer 1026 projections. A` titre de comparaison, `araison de 30 projections par se- conde, on obtiendrait 109 silhouettes par an. Un tel ensemble de silhouettes est donc impossible `aobtenir, mais ´egalement `astocker et `aexploiter.

D’ores et d´ej`a,nous pouvons dire qu’il est n´ecessairede r´eduirela di- mensionnalit´edu probl`emeau maximum. De plus, la pose de l’avatar ainsi que sa projection doivent ˆetrerapides.

R´eductionde la dimensionnalit´e On peut arriver `ar´eduirela dimensionnalit´edu probl`emeen jouant sur plusieurs tableaux. Voyons tout d’abord s’il est possible d’´eliminerquelques degr´esde libert´e.Si nous nous limitons aux poses «debout», l’avatar ne peut que pivoter autour de l’axe vertical, ce qui limite les degr´esde libert´erelatifs `al’orientation `aun seul. Ensuite, une personne marchant se d´eplacesur un plan (plus g´en´eralement une surface), et non dans l’espace tridimensionnel, ce qui permet ´egalement de gagner un degr´ede libert´esuppl´ementaire. Ce- pendant, au vu de la comparaison pr´ec´edente, diminuer de trois le nombre de degr´esde libert´ene permet pas de rendre le probl`emeenvisageable.

Une autre piste, consiste `aessayer de limiter le nombre de projections `a effectuer sans pour autant ´eliminerde dimensions au probl`eme.On peut par exemple tenter de ne g´en´ererque des silhouettes suffisamment diff´erentes les unes des autres, en utilisant comme crit`erela distance de Hausdorff.

1Le minimum acceptable est une dizaine de param`etres, mais dans ce cas, la mod´elisationne permettra pas `al’avatar de simuler la majorit´edes poses humaines. CHAPITRE 1. INTRODUCTION 9

On peut ´egalement ˆetreindiff´erent `al’´echelle et `ala position des silhouettes g´en´er´eespour en limiter le nombre. Ceci est int´eressant dans la mesure o`ula m´ethode d’apprentissage utilis´eepour reconnaˆıtreles silhouettes humaines est ind´ependante de ces variations. Pour finir, une piste plus int´eressante consiste `ase limiter aux silhouettes relatives aux poses dites «de marche». Dans ce cas, un grand nombre de poses ´evoqu´eespr´ec´edemment seront ´elimin´ees.

Compromis temps / g´en´eralit´e Un autre sujet de pr´eoccupation concerne la projection donnant nais- sance aux silhouettes. Nous y voyons un compromis entre, d’une part, un m´ecanismede projection g´en´eral,permettant de changer facilement d’avatar, et, d’autre part, un m´ecanismeoptimis´epour le type d’objet tridimensionnel utilis´e.Par exemple, le logiciel Pov-Ray permettrait aussi bien de projeter un avatar compos´ede cylindres et de sph`eresd´eform´esque de projeter un volume d´efinipar un maillage. La projection, r´eput´eelente avec de tels lo- giciels utilisant le lanc´ede rayons, peut ˆetrefortement acc´el´er´ee.En effet, il n’y a nul besoin de d´eterminerquel objet est situ´e`al’avant plan et sa couleur pour construire la silhouette2, et les effets atmosph´eriquespeuvent ˆetred´esactiv´es.En revanche, si nous nous restreignons `an’utiliser que des avatars sous forme de maillages, nous pouvons ´ecriredu code sp´ecialis´epour en obtenir la silhouette tr`esrapidement. La vitesse de traitement est donc obtenue au d´etriment de la g´en´eralit´ede la m´ethode.

Compromis temps / r´ealisme Un deuxi`emecompromis concerne le type d’avatar utilis´e.D’un cˆot´e, nous avons les maillages souples et r´ealistes,mais n´ecessitant la reprojec- tion totale `achaque nouvelle pose. De l’autre cˆot´e,les avatars compos´esde parties rigides sont moins r´ealistes,mais permettent d’optimiser le rendu. L’id´eeest de prendre chaque partie s´epar´ement, de la d´eplacerdans l’espace tridimensionnel et de l’orienter de diverses mani`erespour obtenir un en- semble suffisamment dense de ses silhouettes. Pour chaque pose, placement et orientation de l’avatar, il n’y aurait plus qu’`ar´ecup´ererles silhouettes par- tielles correspondant aux diverses parties, la silhouette globale ´etant obtenue en appliquant l’op´erateurbool´een ou `al’ensemble des silhouettes partielles. Une op´erationde fermeture serait alors utile pour ´eliminerles imperfections au niveau des joints. Un raffinement suppl´ementaire de la m´ethode consis- terait `aregrouper r´ecursivement deux silhouettes partielles, on obtiendrait alors un arbre des silhouettes. Ainsi n’y aurait-il plus besoin, par exemple,

2aux environs de la ligne 1792 de render.cpp CHAPITRE 1. INTRODUCTION 10 de recalculer la silhouette d’une jambe `achaque fois qu’elle se trouve dans la mˆemeposition. De plus, nous pourrions exploiter les sym´etrieshumaines pour limiter les parties `aprojeter, la jambe gauche et la jambe droite ´etant par exemple identiques `apremi`erevue.

Donnons, `atitre d’illustration du gain, les complexit´esalgorithmiques des diverses approches. Notons ddl le nombre de degr´esde libert´e, n le nombre de pas par param`etre, p le nombre de param`etres, m le nombre de morceaux, T le temps total d’ex´ecution, Ta le temps n´ecessaire`ala pro- jection de l’avatar, Te le temps n´ecessaire`ala projection d’un ´el´ement de l’avatar et Tou le temps requis pour fusionner deux silhouettes partielles. On a :

ddl Algorithme na¨ıf: T = O(Tan ) avec ddl = p + 6 = m + 5 6 ddl Avec segmentation : T = O(Ten + pToun ) 6 ddl Avec arborescence : T = O(Ten + Toun )

La derni`erecomplexit´em´eriteune petite explication. A chacun des m morceaux sont associ´ees n6 silhouettes. A chaque fois que l’on fusionne deux s1s2 ensembles de s1 et s2 silhouettes, on obtient n n6 silhouettes. Un arbre `a m feuilles ayant m − 1 noeuds internes, on effectuera m − 1 = p regrou- n6m m+5 ddl pements. Au total, n5p = n = n silhouettes seront ainsi obtenues. Pour connaˆıtrele nombre de ou `aeffectuer, il faut sommer le nombre de silhouettes associ´eesaux noeuds internes. La racine ayant nettement plus de silhouettes que les autres noeuds, nous pouvons les n´egliger.

Quoiqu’il en soit, nous voyons que la complexit´ereste exponentielle en le nombre de degr´esde libert´e.Seul un facteur constant a ´et´egagn´e,certes important, mais il ne nous permet pas de rendre le probl`emesoluble. Le faible gain s’inscrit donc comme opposant au r´ealisme.

Plan du travail Dans un premier temps nous allons nous concentrer sur le m´ecanisme de projection, en choisissant une mod´elisationet en mettant en ´evidence quelques-unes de ses propri´et´es.Puis, nous ferons un essai d’´etudedu m´e- canisme de projection en vue d’´evaluer l’impact de changements dans le mode tridimensionnel sur les modifications subies par la projection. L’im- pact sera mesur´een termes de la distance de Hausdorff. Cette ´etudesera men´eesans jamais faire d’hypoth`esesrestrictives sur l’objet manipul´e.Elle nous permettra d’obtenir des bornes sur le nombre d’endroits en lesquels doit ˆetreplac´eun objet pour garantir l’obtention d’une base de donn´ees CHAPITRE 1. INTRODUCTION 11 repr´esentative des diverses silhouettes observables au travers d’une cam´era donn´ee.Elle permettra ´egalement d’appr´ehenderla question du choix des orientations et poses `afaire prendre `al’avatar.

Globalement, cette approche est d´eterministe.On essaye d’obtenir toutes les silhouettes, `aun seuil de ressemblance pr`es.La caract´erisationse fait dans le monde bidimensionnel de la projection. A` cette approche s’oppose une d´emarche al´eatoiredans laquelle on essaye de r´epartirles diff´erentes poses selon une distribution voulue, par tirages al´eatoires.La caract´erisationse fait alors dans un espace de dimensionnalit´eimportante. Comme principal avan- tage de cette d´emarche, on note la facilit´etriviale `aobtenir un nombre voulu de silhouettes, puisqu’il suffit de faire autant de tirages que l’on souhaite de silhouettes. Cependant, la m´ethode utilise une distribution probabiliste qu’il n’est pas ais´ede d´efinirpour obtenir un certain nombre de caract´eristiques souhait´eesde la base de donn´ees.Comparativement, l’approche d´eterministe ne permet pas de d´eterminerun seuil de ressemblance tel que l’on obtienne un certain nombre de silhouettes, elle permettrait seulement de l’estimer. Nous verrons comment y parvenir lors de l’´etudede l’impact des change- ments dans le mode tridimensionnel sur les modifications subies par la pro- jection.

Dans un deuxi`emetemps, nous nous concentrerons sur l’impl´ementation d’un g´en´erateurde silhouettes r´ealistes.Nous choisirons d’utiliser un avatar sous forme de maillage pour son r´ealismeet un m´ecanismede projection optimis´epour garantir une certaine efficacit´e.Afin d’obtenir les silhouettes, nous utiliserons l’approche al´eatoire.Notons `ace sujet que nous pourrions aussi obliger l’avatar `ajouer une sc`enepr´ed´efinie,par exemple marcher en rond. Des logiciels tels que ou le script python Walk.O.Matic pour permettent d’y arriver. Chapitre 2

Le m´ecanismede projection

Sommaire 2.1 Le mod`eledu st´enop´e...... 13 2.1.1 Passage dans le monde de la cam´era ...... 13 2.1.2 Projection sur le plan focal ...... 14 2.1.3 Passage aux coordonn´eesdiscr`etes ...... 15 2.1.4 Conclusion ...... 15 2.2 Etalonnage´ de cam´era...... 16 2.2.1 D´eterminationde la matrice de projection . . . . . 16 2.2.2 Factorisation de la matrice de projection ...... 17 2.3 La cam´eravirtuelle de Pov-Ray ...... 19 2.3.1 Description des param`etresextrins`eques ...... 19 2.3.2 Description des param`etresintrins`eques ...... 20

Dans ce chapitre, nous commen¸conspar ´etudierle m´ecanismede pro- jection d’une cam´eraet le mod´elisonsavant d’´etudiercomment obtenir les param`etresdu mod`elepour une cam´eraquelconque. Ensuite, nous verrons bri`evement comment convertir le mod`eleen un ensemble de param`etres fr´equemment utilis´esdans les logiciels de graphisme tridimensionnel.

Deux mod`elesont ´et´eenvisag´es.Le mod`elede cam´eraaffine n’est va- lable que si l’objet observ´eest situ´e`agrande distance de la cam´era.Un tel mod`elene semble pas ad´equat,car les cam´erasobservant les personnes sont souvent plac´eesdans des pi`eceset couloirs de petites tailles. Les personnes ne se trouvent donc pas `agrande distance des cam´erasde surveillance. A` ce mod`ele,nous avons pr´ef´er´ele mod`eledu st´enop´e.

12 CHAPITRE 2. LE MECANISME´ DE PROJECTION 13

2.1 Le mod`eledu st´enop´e

Nous ´etudionsici une des mod´elisationsdu m´ecanismede formation d’image appel´eemod`eledu st´enop´e1. Celui-ci est particuli`erement adapt´e lorsque les conditions de Gauss2 sont respect´eespar le syst`emeoptique de la cam´era3. Ce m´ecanismepeut se scinder en trois ´etapes dont chacune est math´ematiquement un changement de base. On distingue en effet 4 rep`eres: ¡ ¢ • x y z le rep`eretridimensionnel ”monde” ¡ ¢(c) • x y z le rep`eretridimensionnel centr´esur le centre optique de la cam´era,dont l’axe des z(c) pointe dans la direction du regard et l’axe des y(c) pointe vers le dessus de la cam´era ¡ ¢(f) • ¡u v¢ le rep`erebidimensionnel dans le plan focal • u v le rep`erebidimensionnel dans le plan ”´ecran”

2.1.1 Passage dans le monde de la cam´era La premi`ere´etape consiste `aexprimer les coordonn´eesd’un point du monde tridimensionnel dans un rep`ereassoci´e`ala cam´era.Il s’agit de la composition d’une rotation et d’une translation.

y x @I@  @ @1 y(c)  @  6  @@R   −→ z  t  (c)  z @ @@R @@ x(c)

Fig. 2.1 – Passage dans le monde de la cam´era.

1connu dans le monde anglo-saxon sous l’appellation pin-hole model 2Les rayons traversent la lentille pr`esdu centre, et font un angle faible avec l’axe. 3Les objectifs dits ”grand angle” ne respectent pas ces conditions. CHAPITRE 2. LE MECANISME´ DE PROJECTION 14

On a :  (c)     x x tx (c) y  = R3×3 y + ty (2.1) (c) z z tz R est une matrice exprimant la rotation que doit subir le rep`ere ”monde” pour co¨ıncideravec le rep`ere ”cam´era”. Les colonnes de R sont les vecteurs de base du rep`ere ”monde” exprim´esdans la base ”cam´era”. Dans le cas o`uces deux rep`eressont orthonorm´es,les colonnes de R sont orthogonales deux `adeux, c’est `adire, RT R = I ⇔ R−1 = RT . Cette propri´et´eest tr`esint´eressante, c’est pourquoi nous allons nous restreindre `ades rep`eres orthonorm´esdans la suite.

2.1.2 Projection sur le plan focal Ensuite, on peut exprimer la projection du point sur un plan situ´e`aune distance f de la cam´era(la distance focale).

s @ ¨¨ @ ¨¨ @¨¨ ¨s¨@ ¨¨ @ (c) ¨ (f)@ y ¨ v ¨¨ @ @ ¨ @ @ 6 ¨ @ 6 @ ¨ @ ¨ @ z(c)  ¨ @ @ @@R f @@R x(c) @ u(f) @ @ @ @ @ @ @ @

Fig. 2.2 – Projection sur le plan focal.

On a : f f u(f) = x(c) v(f) = y(c) (2.2) z(c) z(c) CHAPITRE 2. LE MECANISME´ DE PROJECTION 15

2.1.3 Passage aux coordonn´eesdiscr`etes La derni`ere´etape exprime le changement de rep`eredans le plan pour aboutir aux coordonn´eessur l’´ecran.

v(f) v 6 ¢ v0 ¢ ¢ ¢ -u(f) ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢¢ ¢ ¢ 1 6 θ kv ?¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ - u - u 1 0 ku

Fig. 2.3 – Passage aux coordonn´eesdiscr`etes.

On a :

v(f) u = (u(f) − )k + u v = v(f)k + v (2.3) tan θ u 0 v 0

Les param`etres ku et kv sont appel´es facteurs d’agrandissement et (u0, v0) est la coordonn´eede la projection du centre optique sur le plan image.

ku En posant suv = − tan θ , on obtient :

     (f) su ku suv u0 su (f) sv =  0 kv v0 sv  (2.4) s 0 0 1 s Souvent, la matrice de cellules photosensibles peut ˆetreconsid´er´eequasi- rectangulaire. Le param`etre suv est alors n´eglig´eet devient nul.

2.1.4 Conclusion L’utilisation de coordonn´eeshomog`enespermet d’´ecrirele mod`eledu st´enop´esous forme de relation lin´eaire: CHAPITRE 2. LE MECANISME´ DE PROJECTION 16

          t x su k s u f 0 0 0 x u uv 0  R t  y sv =  0 k v  0 f 0 0  3×3 y   (2.5) v 0  t  z s 0 0 1 0 0 1 0 z 0 0 0 1 1         t x su α S u 0 x u uv 0  R t  y ⇔ sv =  0 α v 0  3×3 y   (2.6) v 0  t  z s 0 0 1 0 z 0 0 0 1 1       x su m m m m 11 12 13 14 y ⇔ sv = m m m m    (2.7) 21 22 23 24 z s m m m m 31 32 33 34 1 avec :

αu = f ku αv = f kv Suv = f suv (2.8) Les ´equationsse simplifient fortement lorsque l’on travaille dans le rep`ere associ´e`ala cam´era.En effet, la matrice R devient unit´eet le vecteur t s’annule. De plus, il est souvent acceptable de n´egligerle facteur de non orthogonalit´e suv. Le m´ecanismede projection prend alors la forme suivante :

x y u = u + α v = v + α (2.9) 0 u z 0 v z

2.2 Etalonnage´ de cam´era

2.2.1 D´eterminationde la matrice de projection Etalonner´ la cam´era4 consiste `aretrouver la matrice de projection M. La m´ethode que nous utiliserons se base sur une mise en relation manuelle de points de l’image avec les points correspondants de l’espace tridimensionnel. D’autres m´ethodes sont possibles.       x su m m m m 11 12 13 14 y sv = m m m m    21 22 23 24 z s m m m m 31 32 33 34 1 La d´eterminationde la matrice M ne requiert la d´eterminationque de 11 5 param`etres . En effet, on montrera que le vecteur (m31m32m33) est unitaire,

4connu dans le monde anglo-saxon sous l’appellation camera calibration 5cinq correspondances et demi suffisent donc pour d´eterminerla matrice M CHAPITRE 2. LE MECANISME´ DE PROJECTION 17 ce qui ´elimineun degr´ede libert´e.La matrice M n’est donc pas d´efinie`aun facteur pr`es,comme les ´equationssuivantes pourraient le faire penser :

m x + m y + m z + m u = 11 12 13 14 (2.10) m31 x + m32 y + m33 z + m34 m x + m y + m z + m v = 21 22 23 24 (2.11) m31 x + m32 y + m33 z + m34 Ces ´equationspeuvent se r´e´ecriresous la forme suivante :

(m31 u − m11)x + (m32 u − m12)y + (m33 u − m13)z + (m34 u − m14) = 0

(m31 v − m21)x + (m32 v − m22)y + (m33 v − m23)z + (m34 v − m24) = 0

Ces deux ´equationssont lin´eairesen les param`etresde la matrice de pro- jection. L’utilisation de n correspondances procure 2n ´equationsqui peuvent ˆetremises sous forme matricielle :

0 1 2 3 m11 x1 y1 z1 1 0 0 0 0 −u1x1 −u1y1 −u1z1 −u1 B m12 C 6 x2 y2 z2 1 0 0 0 0 −u2x2 −u2y2 −u2z2 −u2 7 B C 6 7 B m13 C 6 7 B C 6 ...... 7 B m14 C 6 ...... 7 B C 6 ...... 7 B m21 C 6 7 B C 6 xn yn zn 1 0 0 0 0 −unxn −unyn −unzn −un 7 B m22 C 6 7 B C = 0 6 0 0 0 0 x1 y1 z1 1 −v1x1 −v1y1 −v1z1 −v1 7 B m23 C 6 7 B C 6 0 0 0 0 x2 y2 z2 1 −v2x2 −v2y2 −v2z2 −v2 7 B m24 C 6 7 B C 6 ...... 7 B m31 C 4 ...... 5 B m C ...... @ 32 A m33 0 0 0 0 xn yn zn 1 −vnxn −vnyn −vnzn −vn m34

2.2.2 Factorisation de la matrice de projection Ensuite, cette matrice est factoris´eeafin de mettre en ´evidenceles pa- ram`etresintrins`equeset les param`etresextrins`eques.Alors que les pre- miers d´ecrivent la cam´eraelle-mˆeme,les seconds d´ecrivent sa position. Cette ´ecriturepermet de donner plus ais´ement une signification aux diff´erents pa- ram`etres,et indique qu’il n’est pas obligatoire de recalibrer compl`etement une cam´eralorsqu’elle est d´eplac´ee(seules trois correspondances sont alors n´ecessaires).

      m11 m12 m13 m14 αu Suv u0 tx m21 m22 m23 m24 =  0 αv v0  R3×3 ty m31 m32 m33 m34 0 0 1 tz | {z } | {z } param`etresintrins`eques param`etresextrins`eques

Une premi`erefa¸conde mener `abien cette factorisation repose sur le th´eor`emed’orthonormation de Graham-Schmidt. Posons : CHAPITRE 2. LE MECANISME´ DE PROJECTION 18

m1 = (m11 m12 m13) r1 = (r11 r12 r13) m2 = (m21 m22 m23) r2 = (r21 r22 r23) m3 = (m31 m32 m33) r3 = (r31 r32 r33) La factorisation peut alors se d´ecomposer en deux :

            m1 αu Suv u0 r1 m14 αu Suv u0 tx m2 =  0 αv v0 r2 m24 =  0 αv v0 ty m3 0 0 1 r3 m34 0 0 1 tz Que l’on r´e´ecritsous la forme suivante :

m1 = αur1 + Suvr2 + u0r3 m14 = αutx + Suvty + u0tz

m2 = αvr2 + v0r3 m24 = αvty + v0tz

m3 = r3 m34 = tz

En utilisant le fait que :

|r1| = |r2| = |r3| = 1

r1 • r2 = r2 • r3 = r3 • r1 = 0 Nous obtenons l’algorithme suivant : r3 := m3 v0 := m2 . r3 av := +/- | m2 - v0 r3 | r2 := ( m2 - v0 r3 ) / av u0 := m1 . r3 suv := m1 . r2 au := +/- | m1 - suv r2 - u0 r3 | r1 := ( m1 - suv r2 - u0 r3 ) / au tz := m34 ty := ( m24 - v0 tz ) / av tx := ( m14 - suv ty - u0 tz ) / au L’autre fa¸conde mener `abien cette factorisation repose sur une d´ecomposition QR. En effet,

      m11 m12 m13 αu Suv u0 r11 r12 r13 m21 m22 m23 =  0 αv v0 r21 r22 r23 m31 m32 m33 0 0 1 r31 r32 r33       m33 m23 m13 r33 r23 r13 1 v0 u0 ⇔ m32 m22 m12 = r32 r22 r12 0 αv Suv m31 m21 m11 r31 r21 r11 0 0 αu CHAPITRE 2. LE MECANISME´ DE PROJECTION 19

Cette derni`ere´equationest une d´ecomposition matricielle en un pro- duit d’une matrice orthogonale et d’une matrice triangulaire sup´erieure,par d´efinitionappel´eed´ecomposition QR et dont il existe des algorithmes pour la r´ealiser.

2.3 La cam´eravirtuelle de Pov-Ray

La description de la cam´eradans un logiciel de rendu 3D ne se fait pas n´ecessairement en sp´ecifiant la matrice de projection. A titre d’exemple, nous voyons ici le cas du logiciel Pov-Ray (version 3.6). Comment passer des param`etresintrins`equeset extrins`eques`aceux du logiciel ?

Fig. 2.4 – La cam´erade Pov-Ray, http ://www.povray.org/documentation/

2.3.1 Description des param`etresextrins`eques La position de la cam´era La commande location permet d’introduire la position de la cam´era.Cette position peut se calculer ais´ement. En effet, on sait que la ¡ ¢(c) cam´eraest situ´eeen 0 0 0 . Il suffit donc d’inverser le premier chan- gement de rep`ere´evoqu´e:       0 t x     x x t 0  R t  y x   =  3×3 y   ⇔ R y + t  = 0 0  t  z y z z t 1 0 0 0 1 1 z CHAPITRE 2. LE MECANISME´ DE PROJECTION 20

      x tx tx −1 T ⇔ y = −R ty = −R ty z tz tz

La direction de la cam´era La commande look_at permet de sp´ecifierles coordonn´ees d’un point vers lequel la cam´eraest point´ee.Le lieu de ces points est la droite support´eepar l’axe z du rep`ereassoci´e`ala cam´era.Seule la demi- droite correspondant aux z n´egatifsnous int´eresse,car il s’agit des points situ´esdevant la cam´era.

      0 t x       x x t 0 0  R t  y x   =  3×3 y   ⇔ R y + t  = 0 k  t  z y z z t k 1 0 0 0 1 1 z

          x 0 tx 0 tx −1 T ⇔ y = R 0 − ty = R 0 − ty avec k < 0 z k tz k tz

Une autre mani`erede sp´ecifierla direction suivie par le regard de la cam´eraconsiste `adonner `aPov-Ray un vecteur donnant la direction. La syntaxe est direction . La longueur de ce vecteur est la distance focale f, distance entre le foyer de la cam´eraet le plan de projection. On a :

          x 0 tx tx 0 T T T ⇔ y = R  0  − ty + R ty = R  0  z −f tz tz −f

2.3.2 Description des param`etresintrins`eques La d´efinitiondu plan de projection Le plan de projection est, en Pov-Ray, un losange centr´esur la direction −−−→ du regard. Il se d´efinitgrˆaceaux deux vecteurs right et up−→ qui repr´esentent les cˆot´esde celui-ci. La longueur de ceux-ci d´efinitle ratio largeur/hauteur de l’image produite. Leur sens permet de retourner l’image par sym´etrie axiale. CHAPITRE 2. LE MECANISME´ DE PROJECTION 21

−−−→ ¡−−−−−−→¢w right = RT 1 0 0 rendu (2.12) αu ¡−−−−−−−−−−−−→¢ h up−→ = RT cos θ sin θ 0 rendu (2.13) αv sin θ −−−−−−−−−→ T ¡ 1 ¢hrendu = R tan θ 1 0 (2.14) αv ³−−−−−−−−−−→´ T Suv hrendu = R − α 1 0 (2.15) u αv

La distance focale Ce qui importe, ce sont les angles d’ouverture horizontal et vertical ainsi que le format de rendu. Ceux-ci sont caract´eris´espar les rapports suivants : −−−→ −−−→ |right| |up−→| |right| , , f f |up−→| −−−→ Les grandeurs |right|, |up−→| et f sont ainsi d´efinies`aun facteur d’´echelle pr`es.Par commodit´e,on prend f = 1. Chapitre 3

Placement de l’avatar

Sommaire 3.1 D´efinitiondu probl`eme...... 23

3.1.1 D´efinitionde la distance dπ ...... 23 3.1.2 Lien avec la distance de Hausdorff dH ...... 25 3.1.3 Construction d’un ensemble S de positions . . . . 26 3.1.4 Hypoth`esesde travail ...... 28 3.2 Premier ensemble de positions ...... 29 3.2.1 Premi`erefamille de surfaces ...... 29 3.2.2 Deuxi`emefamille de surfaces ...... 30 3.2.3 Troisi`emefamille de surfaces ...... 30 3.3 Deuxi`emeensemble de positions ...... 31 3.3.1 Premi`erefamille de surfaces ...... 31 3.3.2 Deuxi`emefamille de surfaces ...... 32 3.3.3 Troisi`emefamille de surfaces ...... 32 3.4 Troisi`emeensemble de positions ...... 33 3.5 Quatri`emeensemble de positions ...... 35 3.6 Analyse des performances ...... 37

22 CHAPITRE 3. PLACEMENT DE L’AVATAR 23

3.1 D´efinitiondu probl`eme

La question fondamentale ´etudi´eedans ce chapitre concerne la d´eter- mination des diff´erents points de l’espace tridimensionnel E3 en lesquels l’avatar doit ˆetreplac´e.En effet, ni d´eplacerl´eg`erement l’avatar lorsqu’il est loin de la cam´era,ni le d´eplaceramplement lorsqu’il en est proche ne sont des strat´egiesacceptables. La densit´edes points en lesquels l’avatar devrait ˆetreplac´en’est pas uniforme dans l’espace.

Malheureusement, aucun r´esultatsatisfaisant n’a pu ˆetretrouv´edans la litt´erature.La th´eoriequi suit a ´et´e´etabliepour pallier `ace manque. Elle n’a nullement la pr´etention d’ˆetreparfaite. D’ailleurs, elle donne clairement des r´esultatssous-optimaux.

Nous nous attacherons `ad´eterminerles positions dans quatre situations diff´erentes. Nous ´etudieronsles cons´equencesde l’ajout d’une indiff´erence`a la translation ainsi qu’`ala dilatation des silhouettes. Le but ´etant d’obtenir un ensemble de positions o`ul’avatar doit ˆetreplac´eafin d’obtenir une base de donn´eesde silhouettes `ala fois riche et la moins redondante possible pour limiter sa taille et le temps requis pour la g´en´erer.

3.1.1 D´efinitionde la distance dπ Pour r´epondre `ala question pos´ee,on commence par d´efinirune distance dπ(Π, V, p1, p2) comme ´etant la distance euclidienne maximale parcourue par les projections des points du volume V lorsqu’il est translat´ede p1 `a p2, le syst`emeprojectif ´etant d´efinipar la fonction de projection Π : R3 → R2. Lorsqu’aucune confusion n’est possible, on la notera simplement dπ(p1, p2) ou encore dπ.

dπ(Π, V, p1, p2) = max de(Π(p + p1), Π(p + p2)) (3.1) p∈V

Le fait que dπ soit ou non une distance au sens math´ematiqued´epend de Π et de V . En effet, pour que la propri´et´ede s´eparationsoit remplie, il est n´ecessaireet suffisant que

3 ∀p1, p2 ∈ R , ∀p ∈ V, Π(p + p1) = Π(p + p2) ⇒ p1 = p2 (3.2) CHAPITRE 3. PLACEMENT DE L’AVATAR 24

D´emonstration. Commen¸conspar remarquer que la distance euclidienne est une distance au sens math´ematique. 1. positivit´e

∀p ∈ V, de(Π(p + p1), Π(p + p2)) ≥ 0 par positivit´ede de

⇒ max de(Π(p + p1), Π(p + p2)) ≥ 0 ⇔ dπ ≥ 0 p∈V 2. sym´etrie

dπ(Π, V, p1, p2) = max de(Π(p + p1), Π(p + p2)) p∈V

dπ(Π, V, p2, p1) = max de(Π(p + p2), Π(p + p1)) p∈V

par sym´etriede de , dπ(Π, V, p1, p2) = dπ(Π, V, p2, p1) 3. s´eparation • p1 = p2 ⇒ dπ(Π, V, p1, p2) = 0

par s´eparationde de , p1 = p2 ⇒ ∀p ∈ V, de(Π(p+p1), Π(p+p2)) = 0

dπ(Π, V, p1, p2) = max 0 = 0 p∈V

• dπ(Π, V, p1, p2) = 0 ⇒ p1 = p2

dπ(Π, V, p1, p2) = max de(Π(p + p1), Π(p + p2)) = 0 p∈V

⇒ ∀p ∈ V, de(Π(p + p1), Π(p + p2)) = 0 par positivit´ede de

⇒ ∀p ∈ V, Π(p + p1) = Π(p + p2) par s´eparationde de

⇒ p1 = p2 par hypoth`ese 4. in´egalit´etriangulaire

dπ(Π, V, p1, p2) + dπ(Π, V, p2, p3)

= max de(Π(p + p1), Π(p + p2)) + max de(Π(p + p2), Π(p + p3)) p∈V p∈V

≥ max (de(Π(p + p1), Π(p + p2)) + de(Π(p + p2), Π(p + p3))) p∈V

≥ max de(Π(p + p1), Π(p + p3)) par in´egalit´etriangulaire de de p∈V

≥ dπ(Π, V, p1, p3) CHAPITRE 3. PLACEMENT DE L’AVATAR 25

Sous l’hypoth`ese3.2, nous avons donc

3 + ∀x, y ∈ R : dπ(x, y) ∈ R (positivit´e) (3.3) 3 ∀x, y ∈ R : dπ(x, y) = dπ(y, x) (sym´etrie) (3.4) 3 ∀x, y ∈ R : dπ(x, y) = 0 ⇔ x = y (s´eparation) (3.5) 3 ∀x, y, z ∈ R : dπ(x, z) ≤ dπ(x, y) + dπ(y, z) (in´egalit´etriang.) (3.6)

Voyons `apr´esent sous quelles conditions la relation 3.2 est satisfaite avec le mod`eledu st´enop´e.Ayant n´eglig´ele facteur de non-orthogonalit´e et travaillant dans le rep`ereassoci´e`ala cam´era,la fonction de projection prend la forme suivante :

0 αupx 0 αupx u =u0 + u = u0 + 0 (3.7) pz pz 0 αvpy 0 αvpy v =v0 + v = v0 + 0 (3.8) pz pz Sous quelles conditions la relation 3.2 est-elle satisfaite ? On a : ( u + α px+p1x = u + α px+p2x 0 u pz+p1z 0 u pz+p2z Π(p + p1) = Π(p + p2) ⇔ py+p1y py+p2y v0 + αv p +p = v0 + αv p +p ( z 1z z 2z px+p1x px+p2x αu = 0 ou = ⇔ pz+p1z pz+p2z α = 0 ou py+p1y = py+p2y v pz+p1z pz+p2z

Si la matrice de projection M n’est pas d´eg´en´er´ee, αu 6= 0 et αv 6= 0. Alors, Π(p + p1) = Π(p + p2) ⇔ (p + p1) ∝ (p + p2) (3.9) Tenant compte que cette relation doit ˆetrevalable pour tout p de V , on conclut que soit tous les points de V sont align´es,soit p1 = p2. La seule fa¸conque tous les points d’un parall´el´epip`edesoient align´esest que deux de ses dimensions soient nulles. Autrement dit, dπ sera une distance au sens math´ematiquesi la projection est non d´eg´en´er´ee,et que V n’est pas un segment de droite. Dans le cas contraire, V peut ˆetrealign´evers la cam´eraet toute translation radiale de V ne produira aucun d´eplacement de la projection.

3.1.2 Lien avec la distance de Hausdorff dH

La distance dπ borne la distance parcourue par le bord de la silhouette de V . En effet, consid´eronsdeux silhouettes S1 et S2 du mˆemeavatar plac´e en des endroits diff´erents. A chaque point de V sont associ´es,par projection, un point s1 de S1 et un point s2 de S2. Si la distance euclidienne les s´eparant est au maximum dπ alors, ∀s1 ∈ S1 et ∀s2 ∈ S2, CHAPITRE 3. PLACEMENT DE L’AVATAR 26 '$ '$ s1  @I s s©dπ dR@π s s2 s s1 s2 &% &% de(s1, s2) ≤ dπ de(s2, s1) ≤ dπ

S2 ⊆ S1 ⊕ Ddπ S1 ⊆ S2 ⊕ Ddπ

On a ainsi, n M M o dH (S1,S2) = min r | S1 ⊆ S2 Dr,S2 ⊆ S1 Dr ≤ dπ (3.10)

Autrement dit, la distance de Hausdorff caract´erisant la diff´erence entre les deux silhouettes S1 et S2 est born´eepar la distance maximale parcourable par les projections des points de V .

dH (Π(V, p1), Π(V, p2)) ≤ dπ(Π, V, p1, p2) (3.11) o`u [ Π(V, p) = Π(p + p1) (3.12) p1∈V

3.1.3 Construction d’un ensemble S de positions On cherche `aconstruire un sous-ensemble S de points de R3 tel que, si on se donne une tol´erancede ε pixels,

3 ∀x ∈ R , ∃y ∈ S : dH (Π(V + x), Π(V + y)) ≤ ε (3.13) Nous avons vu que cette condition sera remplie notamment si

3 ∀x ∈ R , ∃y ∈ S : dπ(Π, V, x, y) ≤ ε (3.14) Dans ce but, on va g´en´ererun ensemble de surfaces tel que tout point 3 ε de R soit distant au plus de 3 d’une surface. Au sein de chaque surface, on va construire un ensemble de courbes tel que tout point de la surface ε soit distant au plus de 3 d’une de ces courbes. Enfin, sur chaque courbe, on choisira un ensemble de points garantissant que tout point de la courbe soit ε au maximum ´eloign´ede 3 d’un des points de l’ensemble. L’union de tous les ensembles de points choisis formera le sous-ensemble de R3 recherch´e.

D´emonstration. On peut trouver un chemin, allant de tout point de R3 `a un des points choisis, tel qu’il se d´ecompose en les trois ´etapes suivantes : 1. aller du point `ala surface la plus proche ; 2. se d´eplacersur la surface vers la courbe la plus proche ; 3. se d´eplacersur la courbe vers le point le plus proche. CHAPITRE 3. PLACEMENT DE L’AVATAR 27

ε La distance parcourue dans chacune de ces ´etapes est au maximum de 3 . Par la propri´et´ed’in´egalit´etriangulaire, on a ainsi construit, pour tout point de R3, un chemin de longueur inf´erieureou ´egale`a ε, le menant `aun des points de l’ensemble construit.

Il nous reste `avoir comment construire un ensemble de surfaces tel que d´ecritci-dessus. La construction des ensembles de courbes et de points est un probl`emeanalogue. La construction d’un ensemble de surfaces distantes ε les unes des autres de 2 3 est incorrecte. En revanche, la cr´eationd’un en- ε semble de surfaces distantes les unes des autres de 3 dont on ne garde qu’une surface sur deux est une bonne mani`erede proc´eder.

Remarque. La fa¸conde proc´ederd´ecriteci-dessus n’utilise que les propri´et´es d’in´egalit´etriangulaire et de sym´etriede la distance. En pratique, pour dπ, il n’y a pas besoin de montrer 3.2 pour que cette m´ethode soit applicable. Dans la suite, nous ne ferons plus la distinction entre surfaces, courbes et points. En effet, nous consid´ereronsles courbes comme ´etant l’intersection de deux ”familles” de surfaces et les points comme ´etant obtenus par l’inter- section de trois ”familles” de surfaces. Nous parlerons ainsi exclusivement de ”familles” de surfaces.

La m´ethode employ´eedans la suite¡ peut se¢ r´esumercomme suit. On choisit arbitrairement une direction dx dy dz de d´eplacement du vo- lume V¡ . Les diff´erentes¢ surfaces seront construites it´erativement. Pour tout point x y z de la surface, on va rechercher une borne de la modification subie (donn´eepar¡ la distance¢ dπ) par¡ la silhouette du volume V¢ lorsqu’il est d´eplac´edu point x y z au point x + dx y + dy z + dz :      x x + dx dπ Π,V, y , y + dy ≤ F (dx, dy, dz) (3.15) z z + dz Souhaitant garantir que la nouvelle surface construite ne soit pas distante ε de plus de 3 de la surface courante,      x x + dx ε d Π,V, y , y + dy ≤ (3.16) π 3 z z + dz ¡ ¢ On choisira donc le point¡ de la nouvelle¢ surface x + dx y + dy z + dz en adaptant la norme de dx dy dz pour qu’elle soit telle que F (dx, dy, dz) ε vaille 3 . CHAPITRE 3. PLACEMENT DE L’AVATAR 28

3.1.4 Hypoth`esesde travail

Pour d´efinircompl`etement la distance dπ, il faut sp´ecifierla relation de projection Π et le volume V avec lesquels nous travaillons.

Afin de simplifier au maximum l’expression de la fonction Π, on va tra- vailler dans le monde associ´e`ala cam´era.Il ne s’agit nullement d’une res- triction, un changement de base permettant ais´ement d’obtenir les positions exprim´eesdans le rep`eremondial. Ensuite, on va n´egligerle param`etre Suv de la cam´era.Souvent, la valeur de ce param`etresera faible et une telle approximation n’aura pas de cons´equences.

En ce qui concerne V , un choix pratique est une boˆıteparall´el´epip´edique centr´ee`al’origine et de dimensions 2∆x×2∆y ×2∆z. Ses dimensions seront choisies de telle mani`ereque l’avatar soit compl`etement inscrit dans celle-ci.1 Ce choix a notamment pour cons´equenceque la th´eoried´ecriteci-dessous est g´en´erale,et peut s’appliquer `ad’autres avatars que celui utilis´edans le cadre de ce travail.

On notera (x, y, z) le centre de la boˆıtedans sa position de r´ef´erenceet 0 0 0 (px, py, pz) un de ses points. De mˆeme,(x , y , z ) sera le centre de la boˆıte 0 0 0 dans sa position test´eeet (px, py, pz) son point correspondant `a(px, py, pz). Enfin, (dx, dy, dz) est le vecteur d´eplacement entre les deux positions.

0 px = x + δx et px = px + dx avec − ∆x ≤ δx ≤ ∆x (3.17) 0 py = y + δy et py = py + dy avec − ∆y ≤ δy ≤ ∆y (3.18) 0 pz = z + δz et pz = pz + dz avec − ∆z ≤ δz ≤ ∆z (3.19)

Ayant n´eglig´ele facteur de non-orthogonalit´e,le m´ecanismede projection devient sym´etriquepar rapport aux plans x = 0 et y = 0. On peut se contenter de rechercher les positions dans x ≥ 0, y ≥ 0, les autres ´etant g´en´er´eespar sym´etrie.De plus, l’avatar ne sera visible que s’il est situ´e devant la cam´era.On se restreint un peu plus en imposant que z + ∆z ≤ 0.

x ≥ 0 y ≥ 0 z ≤ −∆z (3.20)

1V est connu sous le nom de bounding box de l’avatar. CHAPITRE 3. PLACEMENT DE L’AVATAR 29

3.2 Premier ensemble de positions

Consid´erons,pour commencer, le probl`emede base o`ul’on ne tient pas compte d’une invariance `ala translation ni `ala dilatation.

translation 3D avatar 1 / avatar 2 ll lll lll projection inutile lll lll lllprojection lll ( vlll silhouette La fonction de projection est la suivante :

0 αupx 0 αupx u =u0 + u = u0 + 0 (3.21) pz pz 0 αvpy 0 αvpy v =v0 + v = v0 + 0 (3.22) pz pz

La distance dπ prend la forme suivante : p 0 2 0 2 dπ = max (u − u) + (v − v) (3.23) p∈V +x sµ µ ¶¶ µ µ ¶¶ 0 2 0 2 px px py py = max αu 0 − + αv 0 − (3.24) p∈V +x pz pz pz pz

3.2.1 Premi`erefamille de surfaces Etudions´ la modification de silhouette subie par une translation selon l’axe des x. Les surfaces seront obtenues it´erativement. On a dx ≥ 0, dy = 0 et dz = 0.

αupx 0 αu(px + dx) u =u0 + u = u0 + (3.25) pz pz αvpy 0 αvpy v =v0 + v = v0 + (3.26) pz pz

p d = max (u0 − u)2 + (v0 − v)2 π ¯ ¯ ¯ ¯ ¯αudx¯ |αu||dx| |αu|dx ε = max ¯ ¯ = = = (3.27) pz min |pz| −(z + ∆z) 3 ε z + ∆z xn = xn−1 + dx = xn−1 − (3.28) 3 |αu|

La r´esolutionde cette ´equationaux r´ecurrencesdonne, si x0 = 0, ε n xn = − (z + ∆z) = a(z + ∆z) avec a ≤ 0 (3.29) 3 |αu| CHAPITRE 3. PLACEMENT DE L’AVATAR 30

3.2.2 Deuxi`emefamille de surfaces Etudions´ la modification de silhouette subie par une translation selon l’axe des y. Les surfaces seront obtenues it´erativement. On a dx = 0, dy ≥ 0 et dz = 0. En proc´edant de mani`ereanalogue `ace qui a ´et´efait pour la premi`erefamille, on obtient si y0 = 0, ε n yn = − (z + ∆z) = b(z + ∆z) avec b ≤ 0 (3.30) 3 |αv|

3.2.3 Troisi`emefamille de surfaces Etudions´ la modification de silhouette subie par une translation selon l’axe des z, mais sous les contraintes x = a(z + ∆z) et y = b(z + ∆z) avec a et b n´egatifs.Les surfaces seront ´egalement obtenues it´erativement. On a dx = a dz, dy = b dz et dz ≤ 0. µ 0 ¶ 0 0 0 px px pxpz − pxpz u − u = αu 0 − = αu 0 pz pz pzpz (px + a dz)pz − px(pz + dz) a dz pz − px dz = αu 0 = αu 0 pzpz pzpz a pz − px a δz − a ∆z − δx = dz αu 0 = dz αu (3.31) pzpz (z + δz + dz)(z + δz) max |a δz − a ∆z − δx| max |u0 − u| ≤ −dz |α | (3.32) u min |(z + δz + dz)(z + δz)| Pour maximiser le num´erateur,il faut que les signes de chaque terme soient identiques et que δx et δz¡ soient¢ d’amplitude¡ maximale.¢ Le deuxi`eme terme ´etant positif, on obtient δx δz = −∆x −∆z . Minimiser le d´e- nominateur revient `aprendre un δz de signe oppos´e`acelui de z et de z +dz. D’o`u δz = ∆z. On a donc, ∆x − 2a∆z max |u0 − u| ≤ −dz |α | (3.33) u (z + ∆z + dz)(z + ∆z) De fa¸consimilaire, on obtient : ∆y − 2b∆z max |v0 − v| ≤ −dz |α | (3.34) v (z + ∆z + dz)(z + ∆z) Il s’en suit que, p d = max (u0 − u)2 + (v0 − v)2 π q ≤ (max |u0 − u|)2 + (max |v0 − v|)2 q 2 2 2 2 αu (∆x − 2a∆z) + αv (∆y − 2b∆z) ≤ |dz| (z + ∆z)(z + ∆z + dz) K(a, b) ε ≤ |dz| = (3.35) (z + ∆z + dz)(z + ∆z) 3 CHAPITRE 3. PLACEMENT DE L’AVATAR 31

Et donc, (z + ∆z)2 z = z + dz = z − n−1 (3.36) n n−1 n−1 K(a,b) zn−1 + ∆z + ε/3 dz devant ˆetren´egatif,nous avons la condition limite suivante :

K(a, b) z > − − ∆z (3.37) ε/3

Il est montr´een annexe B que la solution de cette ´equationaux r´ecurrences est donn´eepar :

2 n(z0 + ∆z) K(a, b) zn = z0 − = avec C = (3.38) n(z0 + ∆z) + C ε/3

3.3 Deuxi`emeensemble de positions

Le but recherch´eici ´etant de minimiser le nombre de projections `aef- fectuer, il est possible de raffiner le r´esultatpr´ec´edent. La projection d’un objet ´etant plus lente qu’une translation de silhouette, nous souhaiterons faire abstraction de la position lors de l’´evaluation de la diff´erenceentre deux silhouettes.

translation 3D avatar 1 / avatar 2

projection inutile projection   silhouette 1o silhouette 2 translation 2D A cette fin, modifions la relation de projection pour que les silhouettes soient toujours centr´ees,c’est `adire que les silhouettes sont translat´eespour que le point central de V soit projet´e`al’origine.

³ ´ ¡ ¢ ³ ´ u = u + α px − u + α x = α px − x (3.39) 0 u pz 0 u z u pz z ³ ´ ¡ ¢ ³ ´ v = v + α py − v + α y = α py − y (3.40) 0 v pz 0 v z v pz z

3.3.1 Premi`erefamille de surfaces Etudions´ la modification de silhouette subie par une translation selon l’axe des x. Les surfaces seront obtenues it´erativement. On a x0 = 0, dx ≥ 0, dy = 0 et dz = 0. CHAPITRE 3. PLACEMENT DE L’AVATAR 32

µ 0 0 ¶ µ ¶ 0 px px x x 1 1 αudxδz u − u = αu 0 − + − 0 = αudx − = − pz pz z z pz z z(z + δz) µ 0 0 ¶ 0 py py y y v − v = αv 0 − + − 0 = 0 pz pz z z

p |α |dx|δz| |α |dx∆z ε d = max (u0 − u)2 + (v0 − v)2 = max u = u = π z(z + δz) z(z + ∆z) 3 (3.41)

ε/3 xn = xn−1 + dx = xn−1 + z(z + ∆z) (3.42) |αu|∆z ε n a xn = z(z + ∆z) = cz (z + ∆z) avec c = − ≥ 0 (3.43) 3 |αu|∆z ∆z

3.3.2 Deuxi`emefamille de surfaces Etudions´ la modification de silhouette subie par une translation selon l’axe des y. Les surfaces seront obtenues it´erativement. On a y0 = 0, dx = 0, dy ≥ 0 et dz = 0. Par analogie avec la premi`erefamille, ε n b yn = z(z + ∆z) = d z(z + ∆z) avec d = − ≥ 0 (3.44) 3 |αv|∆z ∆z

3.3.3 Troisi`emefamille de surfaces Etudions´ la modification de silhouette subie par une translation selon l’axe des z, mais avec les contraintes x = cz(z + ∆z) et y = dz(z + ∆z). Les surfaces seront ´egalement obtenues it´erativement. On a dz ≤ 0. µ ¶ µ ¶ u0 − u p0 x0 p x = x − − x − α p0 z0 p z u µ z ¶ z µ ¶ x0 + δx x0 x + δx x = − − − z0 + δz z0 z + δz z z0δx − x0δz zδx − xδz = − z0(z0 + δz) z(z + δz) δx − c(z0 + ∆z)δz δx − c(z + ∆z)δz = 0 − z + δz µ z + δz¶ µ ¶ 1 1 z0 z = (δx − cδz∆z) − − cδz − z0 + δz z + δz z0 + δz z + δz (δx − cδz∆z)(z − z0) + cδz2(z − z0) = (z0 + δz)(z + δz) cδz∆z − cδz2 − δx = dz (3.45) (z + δz + dz)(z + δz) CHAPITRE 3. PLACEMENT DE L’AVATAR 33

¯ ¯ max |cδz∆z − cδz2 − δx| max ¯u0 − u¯ ≤ −dz|α | (3.46) u min |(z + δz + dz)(z + δz)| Pour maximiser le num´erateur,il faut que les signes de chaque terme soient identiques et que δx et δz¡ soient¢ d’amplitude¡ maximale.¢ Le deuxi`eme terme ´etant n´egatif,on obtient δx δz = ∆x −∆z . Minimiser le d´eno- minateur revient `aprendre un δz de signe oppos´e`acelui de z et de z + dz. D’o`u δz = ∆z. On a donc,

¯ ¯ ∆x − 2a∆z max ¯u0 − u¯ ≤ −dz|α | (3.47) u (z + ∆z + dz)(z + ∆z) et par un d´eveloppement similaire, ¯ ¯ ∆y − 2b∆z max ¯v0 − v¯ ≤ −dz|α | (3.48) v (z + ∆z + dz)(z + ∆z)

Ces r´esultatssont identiques `aceux obtenus au point 3.2.3. Le reste du d´eveloppement est identique et on conclut en rappelant que

2 n(z0 + ∆z) K(a, b) zn = z0 − = avec C = (3.49) n(z0 + ∆z) + C ε/3

3.4 Troisi`emeensemble de positions

Dans les sections pr´ec´edentes, nous avons construit un ensemble de po- sitions et l’avons r´eduiten tenant compte de l’invariance vis-`a-visde la position. Dans cette section, on va tenter l’ajout d’une invariance `al’´echelle.

translation 3D avatar 1 / avatar 2

projection inutile projection   silhouette 1o silhouette 2 dilatation Une question qui se pose concerne l’expression de l’invariance `ala dila- tation. Faut-il mettre les deux silhouettes `aune taille donn´eeavant de les comparer ou est-il pr´ef´erablede ne changer la taille que d’une seule ? Si l’on consid`ereque le but est de g´en´ererun ensemble de silhouettes `apartir des- quelles il est possible par dilatation de retrouver toutes les silhouettes `aune certaine tol´erancepr`es,la deuxi`emeproposition est `achoisir. On introduit donc un nouveau param`etre σ (par facilit´e,on travaille avec u0 et v0 nuls) :

0 0 u − u px px = 0 − σ (3.50) αu pz pz CHAPITRE 3. PLACEMENT DE L’AVATAR 34

0 0 v − v py py = 0 − σ (3.51) αv pz pz Le choix du facteur σ n’est pas trivial. On peut par exemple imaginer de calculer la distance dπ s´eparant deux silhouettes en fonction de ce param`etre, puis de le choisir tel qu’il la minimise. Cette technique appliqu´eeaux deux premi`eresfamilles donne σ = 1, mais son application `ala troisi`emefamille complique consid´erablement les calculs et semble en pratique inutilisable.

Une autre strat´egieconsiste `aconsid´ererla taille d’une projection comme ´etant inversement proportionnelle `al’´eloignement de l’objet. Celle-ci vaut, dans notre cas, o`u V est un parall´el´epip`ederectangle, en moyenne z. Choisir z pour σ la valeur z0 devrait diminuer dπ, mais sans pour autant la minimiser. Remarquons que dans le cas des deux premi`eresfamilles, z0 = z ⇒ σ = 1, ce qui correspond `al’optimum. Cette strat´egiea l’avantage de ne pas compliquer excessivement les calculs. z σ = (3.52) z0 Il reste `a´etudierla modification de la troisi`emefamille de surfaces.

µ 0 ¶ 0 0 0 0 px z px pxz pz − pxzpz u − u = αu 0 − 0 = αu 0 0 pz z pz z pzpz (px + a dz)(z + dz)pz − pxz(pz + dz) = αu 0 0 z pzpz a dz (z + dz)pz + px dzpz − px dzz = αu 0 0 z pzpz a(z + dz)(z + δz) + (a(z + ∆z) + δx)δz = αudz 0 0 z pzpz az(z + dz) + a((z + dz) + (z + ∆z))δz + δxδz = αudz 0 0 (3.53) z pzpz

≤0 ≥0 z }| { z }| { 0 max | az(z + dz) + a((z + dz) + (z + ∆z)) δz + δxδz| max |u −u| ≤ −dz |αu| 0 0 min |z pzpz| ¡ ¢ ¡ ¢ Le num´erateursera maximis´epour δx δz = ∆x −∆z . La minimi- sation du d´enominateurse fait en prenant δz = ∆z. On a donc,

−az(z + dz) + a(2z + dz + ∆z)∆z + ∆x∆z max |u0 − u| ≤ dz |α | u (z + dz)(z + ∆z)(z + dz + ∆z) µ ¶ dz ∆x∆z − 2az(z + dz) ≤ |α | + a (3.54) u z0 (z + ∆z)(z + dz + ∆z) CHAPITRE 3. PLACEMENT DE L’AVATAR 35

Sym´etriquement, on a : µ ¶ dz ∆y∆z − 2bz(z + dz) max |v0 − v| ≤ |α | + b (3.55) v z0 (z + ∆z)(z + dz + ∆z) Et donc,

s 2 0 2 0 2 αu(∆x∆z + a(z∆z + z ∆z + ∆z − zz )) 2 0 2 0 2 + αv(∆y∆z + b(z∆z + z ∆z + ∆z − zz )) ε d ≤ dz = (3.56) π z0(z0 + ∆z)(z + ∆z) 3

s 2 2 2 2 αu(∆x∆z + a(2z∆z + dz∆z + ∆z − z − zdz)) 2 2 2 2 + αv(∆y∆z + b(2z∆z + dz∆z + ∆z − z − zdz)) ε d ≤ dz = π (z + dz)(z + dz + ∆z)(z + ∆z) 3 (3.57) La r´esolutionde cette ´equationpour obtenir dz en fonction de ε n´ecessite la r´esolutiond’une ´equationdu quatri`emedegr´e.Bien entendu, seules les solutions r´eellesn´egatives nous int´eressent.

3.5 Quatri`emeensemble de positions

Pour finir, tentons d’utiliser simultan´ement l’indiff´erencevis-`a-visde la position et de la dilatation.

translation 3D avatar 1 / avatar 2

projection inutile projection

 translation 2D  silhouette 1o silhouette 2 et dilatation 0 µ 0 0 ¶ µ ¶ u − u px x px x = 0 − 0 − σ − (3.58) αu pz z pz z

0 µ 0 0 ¶ µ ¶ v − v py y py y = 0 − 0 − σ − (3.59) αv pz z pz z z Tout comme dans la section pr´ec´edente, nous choisissons σ = z0 . Pour les deux premi`eresfamilles, z0 = z ⇒ σ = 1. Celles-ci ne seront donc pas affect´eespar l’ajout du param`etre σ et seront identiques `acelles obtenues pour le deuxi`emeensemble de positions. Il reste `a´etudierla modification de la troisi`emefamille de surfaces. CHAPITRE 3. PLACEMENT DE L’AVATAR 36

µ ¶ µ ¶ u0 − u p0 x0 p x = x − − σ x − α p0 z0 p z u µ z ¶ z µ ¶ x0 + δx x0 x + δx x = − − σ − z0 + δz z0 z + δz z z0δx − x0δz zδx − xδz = − σ z0(z0 + δz) z(z + δz) δx − c(z0 + ∆z)δz δx − c(z + ∆z)δz = 0 − σ z + δz µ z + δz¶ µ ¶ 1 1 z0 z = (δx − cδz∆z) − σ − cδz − σ z0 + δz z + δz z0 + δz z + δz (δx − cδz∆z)(δz(1 − σ) + z − σz0) − cδz(zz0(1 − σ) + δz(z0 − σz)) = (z0 + δz)(z + δz)

z dz 0 0 z02−z2 z+z0 Puisque σ = z0 , 1 − σ = z0 et z − σz = 0 et z − σz = z0 = dz z0 .

u0 − u (δx − cδz∆z)(δzdz) − cδz(zz0dz + δzdz(z + z0)) = 0 0 αu z (z + δz)(z + δz) −czz0δz + δxδz − c(z + z0 + ∆z)δz2 = dz (3.60) z0(z0 + δz)(z + δz)

≤0 ≥0 z }| { z }| { max | −czz0 δz + δxδz −c(z + z0 + ∆z) δz2| max |u0 − u| ≤ |dz||α | u min |z0(z0 + δz)(z + δz)| czz0∆z + ∆x∆z − c(z + z0 + ∆z)∆z2 ≤ dz|α | u z0(z0 + ∆z)(z + ∆z) ∆x∆z + a(z∆z + z0∆z + ∆z2 − zz0) ≤ dz|α | u z0(z0 + ∆z)(z + ∆z) µ ¶ dz ∆x∆z − 2azz0 ≤ |α | + a (3.61) u z0 (z0 + ∆z)(z + ∆z)

Sym´etriquement, on a : µ ¶ dz ∆y∆z − 2bzz0 max |v0 − v| ≤ |α | + b (3.62) v z0 (z0 + ∆z)(z + ∆z) Ces bornes ´etant similaires `acelles obtenues pour le troisi`emeensemble, le r´esultatsera identique. CHAPITRE 3. PLACEMENT DE L’AVATAR 37

3.6 Analyse des performances

10 10 premier ensemble de positions 9 deuxieme ensemble de positions 10

8 10

7 10

6 10

5 10

4 10

nombre de positions necessaires 3 10

2 10

1 10 −1 0 1 10 10 10 precision voulue (ε)

Fig. 3.1 – Impact de l’indiff´erence`ala translation

La figure 3.1 illustre l’impact de l’ajout d’une indiff´erence`ala transla- tion. Le premier ensemble de positions que nous avons obtenu, sans cette indiff´erence,est vraiment tr`esgrand et inutilisable. L’ajout de l’indiff´erence (deuxi`emeensemble de positions) donne `al’ensemble une taille raisonnable. Il est tr`esprobable que l’indiff´erence`al’´echelle limite ´egalement fortement la taille de l’ensemble, et que la combinaison de ces deux d´esint´eressements donne un ensemble de petite taille.

Les donn´eesillustr´ees`ala figure 3.1 ont ´et´eobtenues pas la m´ethode d´ecritepr´ec´edemment. Nous y avons consid´er´eune boˆıtelimite de 50 cm × 180 cm × 20 cm, correspondant `acelle d’une personne debout et face `ala cam´era.Concernant cette derni`ere,nous avons utilis´edes valeurs ty- piques pour ses param`etres: une image produite de 640 × 480 pixels, l’image ´etant centr´eesur l’axe optique. La taille typique d’une cellule photosensible d’un capteur CCD variant entre 4 µm et 16 µm, une valeur moyenne donne k = 105 m. Si l’on consid`ereune distance focale de 10 cm comme raison- nable, αu = αv = 10000 est un bon choix. Enfin, nous avons uniquement comptabilis´eles poses telles que la projection de la boˆıtesoit enti`erement incluse dans l’image de la cam´era.

Avant de passer `al’´etudede l’orientation de l’avatar, une remarque s’im- pose. Dans ce chapitre, nous avons toujours born´eles diverses valeurs pour garantir que la base de donn´eescontienne toutes les silhouettes possibles, `a une certaine tol´erancepr`es.Le nombre de positions r´eellement n´ecessaires peut d`eslors ˆetrede loin inf´erieurau nombre de positions propos´eespar la m´ethode pr´esent´ee. Chapitre 4

Orientation et pose de l’avatar

Sommaire 4.1 D´efinitiondu probl`eme...... 38 4.2 Orientation de l’avatar ...... 38 4.3 Choix des poses ...... 43 4.4 Ordre des choix ...... 45

4.1 D´efinitiondu probl`eme

Nous consid´erons`apr´esent que l’avatar est situ´e`aposition fixe et cher- chons `acaract´eriserles diff´erentes orientations dans lesquelles il est n´ecessaire de le placer pour obtenir un ensemble suffisamment vari´e,mais le moins dense possible, de silhouettes. La th´eorie´etablies’´etend´egalement aux choix des poses.

4.2 Orientation de l’avatar

L’orientation d’un corps rigide dans un espace tridimensionnel n´ecessite trois degr´esde libert´es.Si nous pla¸cons,par la pens´ee,l’avatar dans une sph`ere,nous pouvons l’orienter partiellement en choisissant un point de la sph`erepour indiquer la direction dans laquelle se situe la tˆete.Il faut en- suite sp´ecifierun angle, pour l’empˆecher de tourner librement autour de l’axe choisi.

Si nous ne faisons aucune hypoth`eseconcernant la g´eom´etriede l’ava- tar, les diff´erents points choisis sur la sph`ere se doivent d’ˆetrer´epartis ´equitablement. Il s’agit l`ad’un probl`emecomplexe. Plusieurs crit`eresde

38 CHAPITRE 4. ORIENTATION ET POSE DE L’AVATAR 39 r´epartitionexistent. L’un d’entre eux consiste, une fois le nombre de points fix´es,`amaximiser la plus petite distance s´eparant deux points sur la sph`ere. Il s’agit du probl`emede Tammes. Comme pour bon nombre d’autres crit`eres, on observe exp´erimentalement que les points sont les centres d’hexagones, sauf pour quelques-uns qui sont le centre de pentagones. Ceci est illustr´e`a la figure 4.1

Fig. 4.1 – Exemple de distribution de points sur une sph`ere

Vu la difficult´edu probl`eme,nous allons supposer que l’avatar est dans une position ”debout”. Ainsi, l’orienter consiste `ale faire tourner autour de son axe ”vertical” et `achoisir quelques-uns des angles de rotation. R´epartir ces angles est un probl`emeplus simple, que l’on peut comparer au choix de points r´epartisuniform´ement sur un cercle.

Encore faut-il connaˆıtrede nombre d’orientations `autiliser. L’id´eede base est de d´eterminerune distance maximale que peut parcourir un point quelconque de l’avatar pour garantir que sa silhouette de subisse pas un changement trop important. Notre raisonnement se base sur la figure 4.2. On y consid`ereun d´eplacement born´eet on ´etudieson impact sur la projec- tion d’un point pour diverses positions. On constate que l’influence maximale est obtenue pour le point ayant une abscisse et une ordonn´eemaximales (en valeurs absolues) et ayant une profondeur la plus faible possible.

Nous allons, dans un premier temps, fixer¡ l’amplitude¢ du d´eplacement¡ ¢ `a d. Nous ´etudieronsun d´eplacement du point x y z au point x0 y0 z0 . Nous chercherons ensuite une borne du d´eplacement dπ subi par la projec- tion du point. La valeur de l’amplitude du d´eplacement sera obtenue en exprimant l’inf´eriorit´edu d´eplacement de la projection par rapport `ala dis- tance de Hausdorff souhait´ee.Pour ce faire, commen¸conspar¡ utiliser¢ les ¡coordonn´eessph´eriquespour¢ exprimer que la distance entre x y z et x0 y0 z0 vaut d : CHAPITRE 4. ORIENTATION ET POSE DE L’AVATAR 40

x

z

Fig. 4.2 – Influence maximale, d’un d´eplacement born´ed’un point, sur sa projection. Le carr´erepr´esente la bounding box de l’objet ´etudi´e.

  x0 = x + d sin φ cos θ y0 = y + d sin φ sin θ (4.1)  z0 = z + d cos φ Par in´egalit´etriangulaire, ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ x y z x y z x0 y z x0 y0 z d ¡ ¢ ≤ d ¡ ¢ + d ¡ ¢ + d ¡ ¢ π x0 y0 z0 π x0 y z π x0 y0 z π x0 y0 z0 (4.2)

¡ ¢ s µ ¶ x y z x + d sin φ cos θ x 2 d ¡ ¢ = α2 − + 0 π x0 y z u z z ¡ ¢ d x y z = |α | | sin φ cos θ| = d ¡ ¢ | sin φ cos θ| u |z| π x − d y z ¡ ¢ s µ ¶ x0 y z y + d sin φ sin θ y 2 d ¡ ¢ = 0 + α2 − π x0 y0 z v z z ¡ ¢ d x y z = |α | | sin φ sin θ| = d ¡ ¢ | sin φ sin θ| v |z| π x y − d z ¡ ¢ s µ ¶ µ ¶ x0 y0 z x0 x0 2 y0 y0 2 d ¡ ¢ = α2 − + α2 − π x0 y0 z0 u z0 z v z0 z ¯ ¯ p ¯ 1 1¯ = α2 x02 + α2y02 ¯ − ¯ u v ¯z0 z ¯ CHAPITRE 4. ORIENTATION ET POSE DE L’AVATAR 41

¡ ¢ Etant´ donn´eque le point x y z a une abcisse maximale, une or- donn´eemaximale et une profondeur minimale, on a les in´egalit´essuivantes :

z − d ≤ z0 ≤ z < 0 0 ≤ |x0| ≤ |x| 0 ≤ |y0| ≤ |y| (4.3) Appliquons-les :

2 02 2 02 2 2 2 2 αux + αvy ≤ αux + αvy (4.4)

1 1 1 1 0 ≤ − ≤ − (4.5) z0 z z − d z Ainsi, on arrive `ala conclusion que :

¡ ¢ ¯ ¯ ¡ ¢ x0 y0 z p ¯ 1 1¯ x y z d ¡ ¢ ≤ α2 x2 + α2y2 ¯ − ¯ = d ¡ ¢ (4.6) π x0 y0 z0 u v ¯z − d z ¯ π x y z − d

La relation 4.2 devient donc, ¡ ¢ ¡ ¢ x y z x y z d ¡ ¢ ≤ d ¡ ¢ | sin φ cos θ| π x0 y0 z0 π x − d y z ¡ ¢ x y z + d ¡ ¢ | sin φ sin θ| π x y − d z ¡ ¢ x y z + d ¡ ¢ (4.7) π x y z − d

Cette expression peut ˆetrevue comme le produit scalaire des vecteurs

µ ¡ ¢ ¡ ¢ ¡ ¢ ¶ x y z x y z x y z d ¡ ¢ d ¡ ¢ d ¡ ¢ π x − d y z π x y − d z π x y z − d

et ¡ ¢ | sin φ cos θ| | sin φ sin θ| 1 Le produit scalaire ´etant donn´epar le produit des normes des vecteurs multipli´epar le cosinus de l’angle entre ceux-ci,

` ´ s ` ´ ` ´ ` ´ x y z x y z x y z x y z √ d ` ´ ≤ d2 ` ´ + d2 ` ´ + d2 ` ´ 2 π x0 y0 z0 π x − d y z π x y − d z π x y z − d ` ´ „ ` ´ ` ´ ` ´ « x y z x y z x y z x y z d2 ` ´ ≤ 2 d2 ` ´ + d2 ` ´ + d2 ` ´ π x0 y0 z0 π x − d y z π x y − d z π x y z − d „ « d2 d2 d2 = 2 α2 + α2 + (α2 x2 + α2 y2) = F 2(d) (4.8) u z2 v z2 u v z2(z − d)2 CHAPITRE 4. ORIENTATION ET POSE DE L’AVATAR 42

d

theta

2 Delta y

2 Delta x

Fig. 4.3 – D´eterminationdu nombre d’orientations n´ecessairesen fonction du d´eplacement local maximal d.

Une simulation num´eriquea montr´eque le facteur 2 serait inutile. Nous souhaitons garantir que dπ ≤ ε. Nous avons obtenu une borne du type ∂ dπ ≤ F (d), il nous reste donc `amonter que ∂d F (d) > 0 et imposer que d ≤ F −1(ε). En effet,

−1 d ≤ F (ε) ←→ F (d) ≤ ε −→ dπ ≤ ε (4.9) ∂ dπ≤F (d) ∂d F (d)>0 ∂ Montrons que ∂d F (d) > 0 :

∂ α2 + α2 α2 x2 + α2y2 2d(z − d)2 + d22(z − d) F (d) = u v 2d + u v (4.10) ∂d z2 z2 (z − d)4 α2 + α2 α2 x2 + α2y2 2d(z − d)z = u v 2d + u v > 0 (4.11) z2 |{z} z2 (z − d)4 | {z } >0 | {z } | {z } >0 ≥0 >0 La plus grande valeur de d telle que d ≤ F −1(ε) est obtenue en r´esolvant l’´equation F (d) = ε. Il s’agit d’une r´esolutiond’une ´equationdu quatri`eme degr´e.Une fois d connu, on d´eterminele nombre d’orientations n´ecessaires. Le raisonnement est illust´e`ala figure 4.3, pour une rotation autour de l’axe des z. Nous avons :

2 2 2 θ 2 d 4(∆x + ∆y) sin ≤ d ⇔ θ ≤ 4 arcsin q (4.12) 4 2 2 2 ∆x + ∆y   π n =   (4.13) ∠  √ d  2 arcsin 2 2  2 ∆x+∆y On peut ´egalement se servir du d´eplacement local maximal d pour choisir les poses. CHAPITRE 4. ORIENTATION ET POSE DE L’AVATAR 43

4.3 Choix des poses

Commen¸conspar ´emettreune hypoth`ese.A chaque param`etre i de pose correspond une rotation£ rigide.¤ L’angle de rotation est donn´esous forme d’un intervalle : θi,min θi,max . On suppose ´egalement la connaissance de la distance maximale ri des points mobilis´es`al’axe de rotation.

Nous travaillerons avec la distance curviligne maximale ai parcourue par les points de l’objet : ai = |θi,max − θi,min|ri (4.14)

Supposons que nous souhaitions faire prendre ni valeurs au param`etre i. Les ni(≥ 1) angles correspondants sont donn´espar : µ ¶ θi,max − θi,min 1 θi,j = θi,min + j − avec j ∈ [1, ni] (4.15) ni 2 Maintenant, imaginons que l’on ait un ensemble de silhouettes de l’avatar mis dans les diverses poses, comme d´ecritci-dessus. La question qui se pose est l’obtention d’une borne de la modification de la silhouette si on observe le mˆemeavatar au mˆemeendroit, orient´ede la mˆememani`eremais dans une pose quelconque. Si l’on veut ramener l’avatar dans une pose connue, il faudra modifier cons´ecutivement le param`etre i de chaque articulation pour lui faire prendre un des angles θi,j. La distance totale parcourue par les points de l’objet est obtenue en sommant les distances parcourues lors de la modification de la valeur de chaque param`etre.Calculons-en une borne majorante :

ai di = (4.16) 2ni Les diff´erentes grandeurs ´evoqu´eesjusqu’`apr´esent sont sch´ematis´eesci- dessous : CHAPITRE 4. ORIENTATION ET POSE DE L’AVATAR 44

Nous avons maintenant tous les ´el´ements n´ecessairespour poser le probl`eme de la d´eterminationdes ni : X X a Y d ≤ ε ⇔ i ≤ 2ε n est minimal (4.17) i n i i i i i

ε = cste ≥ 0(∈ R) ai = cste ≥ 0(∈ R) ni ≥ 1(∈ Z) (4.18) Il s’agit d’un probl`emed’optimisation `avaleurs enti`eres.C’est donc un probl`emecomplexe. Nous allons essayer ´etablirune heuristique `apartir de la solution en valeurs r´eelles.Voici comment ´etablircette derni`ere,en notant N le nombre de param`etresde pose :

XN a a i = 2ε ⇔ n = 1 (4.19) 1 PN a ni 2ε − i i=1 i=2 ni YN QN a1 i=2 ni ni = P (4.20) 2ε − N ai i=1 i=2 ni ! ! ! ! YN YN XN YN XN ∂ ∂ ai ∂ ai ni = 0 ⇔ a1 ni 2ε − = a1 ni 2ε − ∂nj ∂nj ni ∂nj ni i=1 i=2 i=2 i=2 i=2 0 1 ! ! YN XN YN @ A ai aj ⇔ a1 ni 2ε − = a1 ni 2 ni n i=2,i6=j i=2 i=2 j

N a X a ⇔ j = 2ε − i = K ∀j ∈ [1,N] nj ni i=2 a ⇔ j = K = 2ε − (N − 1)K nj a 2ε ⇔ j = K = nj N N ⇔ n = a ∀i ∈ [1,N] i 2ε i

Pour obtenir rapidement le nombre de valeurs `aconsid´ererpour chaque param`etre,on utilisera l’heuristique suivante : © § N ¨ª – prendre ni = max 1, 2ε ai ; – trier les param`etrespar ordre croissant de ai ( ouP de ni ); – pour chaque param`etre,d´ecr´ementer n tant que ai ≤ 2ε ; i i ni – calculer les θi,j en fonction des ni.

Cette heuristique permet d’automatiquement d´eterminerles param`etres qui ont le moins d’influence. Les param`etres i n´egligeablesse verront at- tribuer une valeur ni ´egale`a1. Malheureusement, pour l’avatar que nous utiliserons dans la suite, qui poss`ede105 param`etresde poses, le nombre de CHAPITRE 4. ORIENTATION ET POSE DE L’AVATAR 45

Q poses demand´ees( i ni) devient gigantesque.

L’heuristique pr´ec´edente n’est pas id´eale.Pour le comprendre, consid´erons un point de la main gauche de l’avatar. Lorsqu’on modifie la pose de l’avatar pour le placer dans une pose connue, le point consid´er´en’est pas d´eplac´e par toutes les articulations ; entre autres, les articulations du bras gauche, de la nuque et des jambes ne doivent pas rentrer en compte. Le squelette de l’avatar, pr´esent´eau chapitre 6, permettrait de d´eterminerune hi´erarchie entre les articulations et ainsi diminuer fortement le nombre de poses.

4.4 Ordre des choix

Il serait donc th´eoriquement possible de choisir les poses, positions et orientations `afaire prendre `al’avatar. Il reste `asavoir dans quel ordre doivent ˆetrefaits les choix. Le choix de la pose et de l’orientation conditionne la taille de la boˆıtelimite ; le nombre de positions peut ainsi ˆetrer´eduitpour certaines poses. En revanche, le choix de la position influence fortement le nombre de poses et d’orientations `afaire prendre `al’avatar. Clairement, le choix des positions doit se faire en premier lieu en tenant compte de la plus grande boˆıtelimite, puis pour chaque position, on doit d´eterminerles poses et orientations. L’orientation ne limite pas les poses, mais le choix d’une pose peut r´eduirela taille de la boˆıtelimite et ainsi le nombre d’orientations n´ecessaires.On privil´egieradonc les choix dans l’ordre :

Placement

Pose

Orientation

L’organisation globale propos´eeest illustr´ee`ala figure 4.4. On se sert des param`etresde projection obtenus par ´etalonnaged’une cam´era.Ces pa- ram`etresservent `ala d´eterminationdes positions, poses, et orientations `a faire prendre `al’avatar. L’avatar est d´efinipar son apparence. On en cal- cule les dimensions pour d´eterminerla taille de la boˆıtelimite, ainsi qu’un squelette permettant de d´eterminerun bon ensemble de poses. On commen- cerait alors par d´eterminerun ensemble de positions ; pour chacune d’entre elles, on sp´ecifieraitles poses. On obtiendrait alors un objet tridimension- nel repr´esentant l’avatar qu’il ne reterait plus qu’`aorienter. Pour toutes les configurations, la projection serait effectu´eeen vue d’obtenir les silhouettes qui seraient tri´eespour ´eliminercelles redondantes. CHAPITRE 4. ORIENTATION ET POSE DE L’AVATAR 46

Fig. 4.4 – Organisation globale propos´ee. Chapitre 5

MakeHuman et l’avatar

Sommaire 5.1 MakeHuman ...... 48 5.1.1 Introduction ...... 48 5.1.2 Le mod`ele...... 49 5.1.3 Le syst`emede pose ...... 50 5.1.4 Les ´evolutions pr´evues...... 51

Le but du travail ´etant de g´en´ererdes silhouettes `apartir d’un ava- tar humain tridimensionnel, nous avions besoin d’une telle mod´elisationde personnes, de pr´ef´erencela plus r´ealistepossible. En particulier, nous sou- haitions ´eviterdes silhouettes anguleuses. R´ealiserune telle mod´elisation par nous-mˆemes´etaitimpensable en un temps raisonnable.

Les mod´elisationshumaines disponibles se r´epartissent en trois cat´egories. D’un cˆot´e,on a des mod`elessous forme de fichiers importables dans des envi- ronnements de mod´elisation3D tels que Pov-Ray, Blender, Maya, etc . . . Ces mod`elespeuvent alors ˆetreretouch´es,associ´es`ades squelettes et anim´essui- vant une s´equencepr´ed´etermin´ee.Evolver1 permet de cr´eerde tels mod`eles. D’un autre cˆot´ese trouvent des applications proposant une mod´elisation interactive de l’avatar dont il ne reste alors plus qu’`aeffectuer le rendu. Parmi ces logiciels, notons Poser2, MakeHuman, . . . Enfin, il existe la norme H-Anim3, standard permettant la description de personnages 3D anim´es et destin´e`arendre compatibles les personnages virtuels avec les diff´erents

1http ://www.darwindimensions.com/content/product.jsp 2http ://www.e-frontier.com/ 3http ://www.h-anim.org/

47 CHAPITRE 5. MAKEHUMAN ET L’AVATAR 48 syst`emesde mod´elisation,animation et visualisation tels que VRML4

Assez rapidement, nous nous sommes focalis´essur le projet open-source MakeHuman dont l’annonce de la version 0.9 ´etaitprometteuse. Nous n’avons pas ´et´ed´e¸cus.Apr`esavoir d´emontr´edes possibilit´esoffertes, cet avatar a ´et´e choisi et nous n’avons gu`ereinvestigu´eles autres possibilit´es.

5.1 MakeHuman

L’avatar choisi est celui du projet MakeHuman5.

Fig. 5.1 – L’avatar de MakeHuman 0.9

5.1.1 Introduction MakeHuman est historiquement une suite de scripts python pour r´ealiser des personnages avec Blender. Aujourd’hui, il est devenu un programme C++ open-source, existant pour plusieurs syst`emesd’exploitation, destin´e `amod´eliserdes humano¨ıdestridimensionnels r´ealistes.

Outre les possibilit´esde mod´elisationoffertes, il permet de faire prendre `al’avatar une pose voulue et d’en obtenir un rendu ou d’exporter le maillage au format WaveFrontObject .obj. L’apparence et la pose peuvent toutes deux ˆetresauvegard´eessous forme de fichiers .bs et restaur´ees`apartir de ceux-ci. Il s’agit de fichiers textes associant les valeurs `achaque param`etreutilis´e.

4Virtual Reality Markup Language http ://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-VRML97/ 5Portail : http ://www.makehuman.org Documentation : http ://makewiki.aleppax.it/pmwiki/pmwiki.php Code source : http ://sourceforge.net/project/showfiles.php ?group id=150931 CHAPITRE 5. MAKEHUMAN ET L’AVATAR 49

La version 0.9 ne contient pas moins de 2972 param`etresd’apparence et 105 param`etresde pose.

Fig. 5.2 – Le programme MakeHuman 0.9 et l’avatar de base, dans sa pose initiale.

5.1.2 Le mod`ele Le mod`elede MakeHuman est ce que l’on peut qualifier d’humano¨ıde universel, un maillage pouvant ˆetred´eform´epour obtenir quasiment n’im- porte quelle apparence imaginable.

MakeHuman permet ainsi de cr´eerune large panoplie d’humano¨ıdes,de l’enfant `al’adulte, de l’homme `ala femme, du maigre `al’ob`eseen passant par de tr`esnombreuses variantes et options de fantaisie telles que cornes, dentitions et asym´etriesdignes de bandes dessin´ees.

Le maillage d’origine avait ´et´eoptimis´epour limiter le nombre de faces et de points. Depuis lors, il a ´et´ecorrig´eet le nombre de facettes et de noeuds a augment´epour devenir humano¨ıdeuniversel. Voici quelques caract´eristiques du maillage actuel :

Nombre de noeuds : 10936 Nombre de faces triangulaires : 470 Nombre de faces quadrangulaires : 10387 CHAPITRE 5. MAKEHUMAN ET L’AVATAR 50

La question de la pose initiale de l’avatar n’est apparemment pas tri- viale. La premi`ereversion de MakeHuman adopta partiellement la position foetale, en raison de l’angle interm´ediairepris par les diverses articulations, l’espoir ´etant de limiter l’erreur de pose via la r´eductiondes angles parcou- rus. En pratique, cependant, ce choix s’est r´ev´el´einad´equat.C’est pourquoi aujourd’hui, la pose classique de l’homme de Vitruve est utilis´ee: debout, les pieds joints et les bras ´ecart´es`al’horizontale.

Fig. 5.3 – d’apr`esWikipedia : ¿ L’Homme de Vitruve (ou homme vitruvien) est le nom commun´ementdonn´eau croquis Etude´ de proportions du corps humain selon Vitruve r´ealis´epar L´eonard de Vinci aux alentours de 1492À.

5.1.3 Le syst`emede pose Le syst`emede pose actuel (QuickPose) n’est pas id´ealpour r´ealiserdes animations, mais devrait ˆetreremplac´edans le futur par un syst`emeplus complexe le permettant. Cependant, le syst`emeactuel est suffisant pour travailler pose par pose. La fa¸conactuelle de proc´ederest principalement une application d’une matrice de rotation tridimensionnelle rigide autour de l’articulation. Cependant, pour obtenir un r´esultatsatisfaisant, le maillage est pr´ealablement d´eform´epar transformation lin´eaire.

Cette transformation est ´etabliepar le moteur musculaire de Make- Human. Il s’agit d’un ”syst`emeexpert” capable d’apprendre, `apartir de CHAPITRE 5. MAKEHUMAN ET L’AVATAR 51

Fig. 5.4 – Fonctionnalit´esfutures de MakeHuman : habits. source : Blog des d´eveloppeurs de MakeHuman http ://www.dedalo-3d.com/public/blog/index.php maillages cr´e´espar des artistes, le comportement musculaire lors de mou- vements de l’ossature du corps. Le degr´ede r´ealismeet la pr´ecisionne sont donc pas fix´es,mais augmenteront avec le nombre et la qualit´edes exemples servant `al’apprentissage.

5.1.4 Les ´evolutions pr´evues A terme, le logiciel devrait inclure un moteur de pose hautement r´ealiste bas´esur une simulation quasi-parfaite du syst`ememusculaire et du sque- lette. De plus, il devrait se compl´eterpar un ensemble d’outils permettant d’habiller les personnages et de leur cr´eerune chevelure. CHAPITRE 5. MAKEHUMAN ET L’AVATAR 52

Fig. 5.5 – Fonctionnalit´esfutures de MakeHuman : cheveux. source : Blog des d´eveloppeurs de MakeHuman http ://www.dedalo-3d.com/public/blog/index.php

Fig. 5.6 – Fonctionnalit´es futures de MakeHuman : des param`etres d’apparence permettant d’obtenir des personnages encore plus fantaisistes. source : Blog des d´eveloppeurs de MakeHuman http ://www.dedalo-3d.com/public/blog/index.php

Fig. 5.7 – Fonctionnalit´esfutures de MakeHuman : nouveau moteur de pose bas´esur une mod´elisationfine du squelette et de la musculature humaine. source : Blog des d´eveloppeurs de MakeHuman http ://www.dedalo-3d.com/public/blog/index.php Chapitre 6

Squelette de l’avatar

Sommaire 6.1 Apprentissage du squelette ...... 53 6.1.1 Notion de mod`elearticul´e ...... 54 6.1.2 Notion de squelette ...... 55 6.1.3 Apprentissage ...... 55 6.1.4 Enrichissement du squelette ...... 57 6.2 D´etectiondes poses illicites ...... 63 6.2.1 Premi`ereapproche ...... 64 6.2.2 Deuxi`emeapproche ...... 64 6.2.3 Optimisation ...... 66 6.3 Diminution du taux de rejet ...... 68 6.3.1 M´ethode a priori ...... 68 6.3.2 M´ethode a posteriori ...... 71 6.3.3 R´esultatsdes deux m´ethodes ...... 73

6.1 Apprentissage du squelette

Dans sa version actuelle, MakeHuman ne fournit pas de squelette au maillage. De mˆeme,bien que les param`etressoient clairement nomm´es,l’en- semble et les noms de ceux-ci ne sont pas fix´es.Afin de permettre une ´evolution du logiciel, on se doit donc de consid´ererle programme MakeHu- man comme ´etant une boˆıtenoire dont l’unique entr´eeest une liste de pa- ram`etresavec les valeurs associ´eeset dont l’unique sortie fournit un maillage de l’avatar. Afin de contrˆolercette boˆıtenoire de mani`ereutile, il convient tout d’abord d’apprendre son comportement.

L’avatar va ˆetremod´elis´epar un mod`elearticul´e`apartir duquel on va d´eterminerun squelette, permettant de calculer certaines valeurs ca-

53 CHAPITRE 6. SQUELETTE DE L’AVATAR 54

{ ( PARAMETRE , VALEUR ) , ... } MAKEHUMAN MAILLAGE

Fig. 6.1 – Interaction avec la boˆıtenoire MakeHuman ract´erisant les param`etres.Il nous faut donc, dans un premier temps, d´efinir ces deux notions.

6.1.1 Notion de mod`elearticul´e

C A 1 4 3 B 2 D 5 6 E

Fig. 6.2 – Exemple de mod`elearticul´e

D´efinition. Nous appellerons mod`elearticul´eun ensemble de parties ri- gides interconnect´eespar des charni`eres.Dans la suite, nous noterons les diff´erentes parties par des naturels et les charni`erespar des lettres majus- cules. Nous nous restreindrons aux mod`elesarticul´esacycliques et connexes, c’est-`a-diretels qu’entre deux parties il existe un et un seul chemin.

La motivation `ad´efinircette notion tient en la similitude qu’on remarque en premi`ereapproximation entre un humano¨ıdeet un tel mod`ele.Les articu- lations sont mises en correspondance avec autant de charni`eresqu’elles ont de degr´esde libert´e.Les parties rigides sont quant `aelles `acomparer avec les parties du corps sans articulation. Le point le plus d´elicatconcerne les mouvements de torsion qui peuvent ˆetreobserv´es,par exemple, aux avant- bras.

De tels mod`elessont pr´esents dans la litt´erature.Le lecteur trouvera sans aucun doute un parall´elismeint´eressant entre la notion de mod`elearticul´e et la mod´elisationen boˆıtesarticul´ees´elastiquement qu’utilisent Felzensz- walb et Huttenlocher. CHAPITRE 6. SQUELETTE DE L’AVATAR 55

Fig. 6.3 – Diff´erents mouvements de l’avatar de MakeHuman qu’il est im- possible de mod´eliserpar un mod`elearticul´e: mouvements des points de l’omoplate suite au mouvement du bras ; torsion de l’avant-bras ; contrac- tion simul´eedes muscles jumeaux lors de l’´etirement du pied, qui ne peut ˆetremod´elis´eepar la rotation au niveau de la cheville.

6.1.2 Notion de squelette D´efinition. Le squelette d’un mod`elearticul´eest une arborescence binaire dont les feuilles correspondent aux parties rigides et les noeuds internes aux charni`eresdu mod`elearticul´e.L’arborescence est telle que le sous-arbre de droite d’une charni`ereforme le squelette du sous-mod`elearticul´emaximal mu par celle-ci.

6.1.3 Apprentissage La liste des param`etrespeut ˆetrer´ecup´er´eedynamiquement en listant les fichiers .target du r´epertoire share/makehuman/. Le sous-r´epertoire targets/ contient les d´efinitionsdes param`etresd’apparence et rotations/ contient les d´efinitionsdes param`etresde pose. Les param`etresde MakeHuman va- rient de 0 `a1 ou de -1 `a1. Dans le premier cas, on trouvera 1 fichier .target dont le nom concorde avec le nom du param`etre.Dans le deuxi`emecas, il y a en plus un deuxi`emefichier .target dont le nom correspond au nom du param`etresuivi du caract`ere’-’.

Dans une premi`erephase, on d´eterminepour chaque param`etrede pose l’ensemble des points du maillage qu’il influence. Ceci est r´ealis´een fixant la valeur des autres param`etres(par exemple `a0) et en r´ecup´erant le maillage pour les deux valeurs extrˆemesdu param`etreconsid´er´e.La comparaison des coordonn´eesdes points des deux maillages donne l’information d´esir´ee. CHAPITRE 6. SQUELETTE DE L’AVATAR 56

Dans un deuxi`emetemps, on va faire l’hypoth`eseque l’information r´e- cup´er´eeconcerne un mod`elearticul´eet que les param`etresde pose corres- pondent aux charni`eresde ce mod`ele.Le mod`elearticul´eest alors r´ecursivement scind´een deux sous-mod`elespar le choix d’une charni`ere,l’un d’eux ´etant mobilis´epar celle-ci et l’autre ´etant fixe.

Nous organisons les param`etresdans un arbre binaire exprimant la hi´erarchie entre les articulations correspondantes. La racine de l’arbre correspond `a l’articulation principale. Celle-ci est choisie en prenant le param`etrein- fluen¸cant le plus grand nombre de points.

Une fois l’articulation principale choisie, nous classons les autres en deux cat´egories: celles influenc´eespar l’articulation principale et les autres. Afin que notre d´emarche soit robuste, nous utilisons l’algorithme suivant :

Soient deux articulations A et B :

1. notons NA le nombre de points influenc´espar l’articulation A ;

2. notons NB le nombre de points influenc´espar l’articulation B ;

3. notons NI le nombre de points influenc´espar les articulations A et B. Trois cas peuvent se pr´esenter :

1. NA < NB et NA < NI ⇒ A est mobilis´eepar B.

2. NB < NA et NB < NI ⇒ B est mobilis´eepar A.

3. NI < NA et NI < NB ⇒ A et B sont ind´ependantes.

Une fois la r´epartitiondes articulations restantes en deux cat´egoriesef- fectu´ee,on s´electionneles articulations qui ne sont pas influenc´eespar l’ar- ticulation principale que l’on attribue au fils de gauche. Les articulations influenc´eesseront, quant-`aelles, attribu´eesau fils de droite. Chaque fils qui se voit attribuer au moins une articulation devient la racine du sous-squelette appris `apartir de cet ensemble d’articulations.

Exemple. Consid´eronsle mod`elearticul´edede la figure 6.2 `a5 charni`ereset 6 parties rigides tel que la d´ependance des points par rapport aux articulations est donn´eedans le tableau ci-dessous : groupes de points articulations 1 2 3 4 5 6 A XVVVVV B XXVVXX C XXXVXX D XXXXVV E XXXXXV CHAPITRE 6. SQUELETTE DE L’AVATAR 57

L’application de l’algorithme pr´ec´edent aboutira `ala conclusion que : 1. E est moblis´eepar D qui est elle-mˆememobilis´eepar A 2. C est moblis´eepar B qui est elle-mˆememobilis´eepar A

Une ind´eterminationsubsiste sur l’arbre binaire construit, selon qu’on choisit B ou D en premier lieu comme articulation principale du sous- squelette. Les deux solutions sont pr´esent´ees`ala figure 6.4.

A A

C 1 D 1 B A 1 4 3 B 2 B E D C D 5 2 C 5 6 6 2 E 3 4 E

3 4 5 6

Fig. 6.4 – Squelettes associ´esau mod`elearticul´ede la figure 6.2

6.1.4 Enrichissement du squelette Nous allons placer dans l’arbre repr´esentant le squelette diverses donn´ees num´eriquesutiles `asa caract´erisation: taille des parties mobilis´eespar les diverses articulations et angles de rotations associ´es.Ces donn´eessont n´ecessairespour estimer les articulations les plus importantes et leur attri- buer un poids.

Taille des parties mobilis´ees Nous souhaitons connaˆıtrela distance maximale entre l’axe de rotation et les points mobilis´es.Si nous ne voulons pas calculer l’axe de rotation, nous pouvons utiliser la taille de la partie mobilis´eepar une articulation, d´efinie comme ´etant la plus grande distance s´eparant deux points mobilis´espar l’articulation. Si le maillage est suffisamment dense, et qu’il y a des points `aproximit´ede l’axe de rotation, cette taille borne la quantit´erecherch´ee. Dans bon nombre de cas, l’exag´erationsera faible. CHAPITRE 6. SQUELETTE DE L’AVATAR 58

A A = = max max C 1 D 1 B A 1 4 3 B 2 B E D C D + + 5 2 C 5 6 6 2 E 3 4 E

3 4 5 6

Fig. 6.5 – Calcul des tailles du mod`elearticul´ede la figure 6.2

Lorsque la partie mobilis´eecontient des articulations, nous nous pla¸cons dans le cas le plus d´efavorable, o`utoutes les articulations sont align´ees. Nous pouvons alors calculer la taille r´ecursivement en partant des feuilles de l’arbre. Pour chaque partie rigide, on calcule sa taille. La taille d’une articulation est obtenue en sommant la taille de la partie rigide qu’elle est la seule `amobiliser avec le maximum des tailles des articulations qu’elle mobilise. Exemple. Par exemple, pour le mod`elearticul´edes figures 6.2 et 6.4, nous obtenons :

taille(A) = taille(2) + max(taille(B), taille(D)) taille(B) = taille(3) + taille(C) taille(C) = taille(4) taille(D) = taille(5) + taille(E) taille(E) = taille(6)

Nous voyons que la valeur s’obtient en parcourant syst´ematiquement l’arbre `apartir de l’articulation dont on souhaite connaˆıtrela taille de la partie mobilis´ee,en allant au fils de droite puis toujours au fils de gauche. On obtient la taille en sommant la taille de la feuille avec le maximum des tailles des noeuds internes par lesquels on passe. Cela est illustr´e`ala figure 6.5. Nous remarquons que le r´esultatobtenu est identique pour les divers arbres ´equivalents.

Angle de rotation des articulations Pour chaque articulation, nous allons calculer l’angle qu’elle est capable de d´ecrire.Rappelons que nous avons obtenu, lors du calcul du squelette, CHAPITRE 6. SQUELETTE DE L’AVATAR 59

360 upper torso/torso2 rot1 340 lower torso/torso3 rot3 360 upper torso/torso2 rot3 340 lower torso/torso3 rot2 360 upper torso/torso2 rot2 320 neck/neck rot1 300 head/head rot3 300 head/head rot1 300 head/head rot2 280 left collar/l collar rot2 280 left collar/l collar rot3 280 left collar/l collar rot1 240 left upper arm/l upper arm rot3 240 left upper arm/l upper arm rot2 240 left upper arm/l upper arm rot1 160 left lower arm/l lower arm rot1 080 left hand/l hand rot3 080 left hand/l hand rot1 080 left hand/l hand rot2 063 left pollex 1/l pollex1 rot1 063 left pollex 1/l pollex1 rot3 062 left pollex 2/l pollex2 rot2 062 left pollex 2/l pollex2 rot1 061 left pollex 3/l pollex3 rot1 072 left ringfinger 1/l ringfinger1 rot2 072 left ringfinger 1/l ringfinger1 rot3 071 left ringfinger 2/l ringfinger2 rot2 070 left ringfinger 3/l ringfinger3 rot2 066 left forefinger 1/l forefinger1 rot2 066 left forefinger 1/l forefinger1 rot3 065 left forefinger 2/l forefinger2 rot2 064 left forefinger 3/l forefinger3 rot2 069 left middlefinger 1/l middlefinger1 rot2 069 left middlefinger 1/l middlefinger1 rot3 068 left middlefinger 2/l middlefinger2 rot2 067 left middlefinger 3/l middlefinger3 rot2 075 left littlefinger 1/l littlefinger1 rot2 075 left littlefinger 1/l littlefinger1 rot3 074 left littlefinger 2/l littlefinger2 rot2 073 left littlefinger 3/l littlefinger3 rot2 200 left upper leg/l upper leg rot3 200 left upper leg/l upper leg rot2 200 left upper leg/l upper leg rot1 120 left lower leg/l lower leg rot1 040 left foot/l foot rot1 040 left foot/l foot rot3 040 left foot/l foot rot2 024 left footfinger 4 1/l foot 4 1 rot1 023 left footfinger 4 2/l foot 4 2 rot1 030 left footfinger 1 1/l foot 1 1 rot1 029 left footfinger 1 2/l foot 1 2 rot1 028 left footfinger 2 1/l foot 2 1 rot1 027 left footfinger 2 2/l foot 2 2 rot1 026 left footfinger 3 1/l foot 3 1 rot1 025 left footfinger 3 2/l foot 3 2 rot1 022 left footfinger 5 1/l foot 5 1 rot1 021 left footfinger 5 2/l foot 5 2 rot1

Fig. 6.6 – Squelette de l’avatar de MakeHuman. Pour la clart´e,les pa- ram`etresde droite ont ´et´eomis (ils sont obtenus par sym´etrieavec leur homologue de gauche). CHAPITRE 6. SQUELETTE DE L’AVATAR 60 les coordonn´eesdes points du maillage lorsque la valeur du param`etrecor- respondant `al’articulation ´etaitminimale et maximale. C’est grˆace`aces donn´eesque nous allons estimer l’angle de rotation.

Nous commen¸conspar ne garder que les points influenc´es.Nous faisons l’hypoth`eseque la modification subie par la partie du maillage s´electionn´ee est une combinaison d’une rotation, d’une translation et d’une mise `al’´echelle. Cette transformation est donc lin´eaire,repr´esent´eepar la matrice M :

 0     x m11 m12 m13 m14 x  0     y  m21 m22 m23 m24 y 0 = (6.1) z  m31 m32 m33 m34 z 1 0 0 0 1 1 Soit, en supprimant de la matrice M les valeurs connues, et en tenant compte de tous les points :

 0 0      x1 x2 ... m11 m12 m13 m14 x1 x2 ...  0 0      y1 y2 ... = m21 m22 m23 m24 y1 y2 ... (6.2) 0 0 z1 z2 ... m31 m32 m33 m34 z1 z2 ... La r´esolutionde cette ´equationau sens des moindres carr´esnous donne les valeurs de la matrice M. En pratique, nous n’observons pas une rotation pure (cf. figure 6.3). Afin d’´epurerl’ensemble de points `apartir desquels la transformation est calcul´ee,nous appliquons l’algorithme d’Expectation-¡ ¢ Maximization. La transformation M est appliqu´ee`achaque¡ point x¢ y z et nous¡ regardons¢ si le r´esultatest plus proche du point x y z ou du point x0 y0 z0 . Nous ne consid´eronsalors plus comme influenc´esque les seconds. Nous r´ep´etonsl’op´erationd’estimation de la matrice M avec ce nouvel ensemble de points tant qu’il n’y a pas convergence de l’ensemble de points.

Une fois la convergence atteinte, nous allons essayer de mettre en ´evidence la matrice de rotation. Or, puisque nous avons suppos´eque modification est une combinaison d’une rotation, d’une translation et d’une mise `al’´echelle, la matrice M peut se d´ecomposer comme ceci :

        m11 m12 m13 m14 0 1 0 0 δx αx 0 0 0 m m m m   R 0 0 1 0 δ   0 α 0 0  21 22 23 24 =    y  y  m31 m32 m33 m34  0 0 0 1 δz   0 0 αz 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 | {z } | {z } | {z } rotation translation dilatation o`u R est une matrice de rotation (matrice orthogonale). En regroupant les matrices de translation et de dilatation, CHAPITRE 6. SQUELETTE DE L’AVATAR 61

      m11 m12 m13 m14 0 αx 0 0 δx m m m m   R 0  0 α 0 δ   21 22 23 24 =    y y (6.3) m31 m32 m33 m34  0  0 0 αz δz  0 0 0 1 0 0 0 1 0 0 0 1

La d´ecomposition ´ecritesous cette forme n’est rien d’autre qu’une d´ecomposition QR. La matrice R est donc obtenue en calculant la d´ecomposition QR de   m11 m12 m13 m21 m22 m23 m31 m32 m33 La rotation ayant trois degr´esde libert´e,elle est d´efiniepar un angle θ £−−−−−−→¤ £ ¤ autour d’un vecteur x y z . C’est l’id´eedu quaternion i j k ω :

θ θ i = x sin j = y sin (6.4) 2 2 θ θ k = z sin ω = cos (6.5) 2 2 On peut montrer que la matrice de rotation R ´equivalente est donn´ee par :   1 − 2j2 − 2k2 2ij − 2kω 2ik + 2jω R =  2ij + 2kω 1 − 2i2 − 2k2 2jk − 2iω  (6.6) 2ik − 2jω 2jk + 2iω 1 − 2i2 − 2j2 Pour obtenir l’angle de rotation, il faut passer de la matrice R au qua- ternion. Pour ce faire, on utilise l’algorithme suivant : CHAPITRE 6. SQUELETTE DE L’AVATAR 62

/* * Trace ( R ) = R11 + R22 + R33 + 1 * = 4 − 4 xˆ2 − 4 yˆ2 − 4 z ˆ2 * = 4 − 4 sinˆ2 ( t /2 ) * =4 cosˆ2 ( t /2 ) * R21 − R12 = ( 2yz + 2wx ) − ( 2 yz − 2wx ) * = 4 w x * =4cos(t/2)x * S=1/2sqrt ( tr (R) )=1/4 | cos ( t / 2 ) | * ( R21 − R12 ) S = +− x */

final double trace = m00 + m11 + m22 + 1.0 ;

// NOTE : La trace R11 + R22 + R33 + 1 vaut 4 cosˆ2 ( t / 2 ). // Elle est donc toujours positive mais peut ˆetre petite. // Pour ´eviter les erreurs num´eriques, on proc`ede autrement // si elle est petite ...

i f ( t r a c e > 0.005 ) { s= 0.5 / sqrt ( trace ) ; x = ( m21 − m12 ) * s ; y = ( m02 − m20 ) * s ; z = ( m10 − m01 ) * s; w=0.25/s; }

/* * 1 + m00 − m11 − m22 = 1 + (1−2y2−2z2 ) − (1−2x2−2z2 ) − (1−2x2−2y2 ) * = 4 x2 * s =2 sqrt ( 1+m00 − m11 − m22 ) = 4 x * m01 + m10 = ( 2xy − 2wz )+( 2xy+2wz )=4 x y */

// NOTE : La valeur 1.0 + m00 − m11 − m22 vaut 4 xˆ2. // Lavaleur 1.0 − m00 + m11 − m22 vaut 4 yˆ2. // Lavaleur 1.0 − m00 − m11 + m22 vaut 4 zˆ2. // Elles sont donc toujours positives mais peuvent ˆetre petites // On choisit la plus grande ...

e l s e i f ( m00 > m11 && m00 > m22 ) { s = 2 . 0 * sqrt ( 1.0 + m00 − m11 − m22 ) ; // 4 x x = 0 . 2 5 * s; y=(m01+m10)/s; z=(m02+m20) / s ; w=(m12 − m21 ) / s ; } e l s e i f ( m11 > m22 ) { s = 2 . 0 * s q r t ( 1 . 0 − m00 + m11 − m22 ) ; // 4 y x=( m01+m10 ) / s ; y=0.25 * s ; z=(m12+m21) / s ; w=(m02 − m20 ) / s ; } e l s e { s = 2 . 0 * s q r t ( 1 . 0 − m00 − m11 + m22 ) ; // 4 z x=(m02+m20) / s ; y=(m12+m21) / s ; z = 0 . 2 5 * s ; w = ( m01 − m10 ) / s ; } CHAPITRE 6. SQUELETTE DE L’AVATAR 63

6.2 D´etectiondes poses illicites

Nous regrettons que MakeHuman puisse met- tre l’avatar dans une pose incoh´erente telle que pr´esent´ee`ala figure 6.7. A priori, cela n’est pas gˆenant puisqu’il y a de grandes chances que la silhouette r´esultante soit proche de celle d’une pose correcte. Il serait cependant int´eressant de pouvoir d´etecterune telle situation, afin de ne pas enregistrer de silhouettes quand cela se pro- duit.

La m´ethode propos´eetente de d´etecterlors- qu’un maillage s’auto-intersecte. Les facettes `a plus de trois cˆot´essont d´ecompos´eesen triangles, de telle mani`ere`atransformer le maillage en un maillage ne contenant que des faces triangulaires. On se ram`eneainsi au probl`emede la d´etection d’intersection entre deux triangles dans un espace tridimensionnel.

Deux triangles peuvent ˆetredans quatre posi- tions relatives diff´erentes. Elles sont repr´esent´ees `ala figure 6.8. Seules les situations (a) et (b) sont consid´er´eescomme ´etant des intersections. Cette figure nous inspire le crit`eresuivant : Fig. 6.7 – Pose illicite

Proposition. Deux triangles s’intersectent si et seulement si le point de perc´ee d’une arrˆetede l’un dans de plan support´epar l’autre y est inclus.

(a) (b) (c) (d)

Fig. 6.8 – Les quatre positions relatives de deux triangles

Le probl`emeauquel nous nous sommes ramen´esconsiste en la d´etection des intersections entre un segment de droite et un triangle. CHAPITRE 6. SQUELETTE DE L’AVATAR 64

6.2.1 Premi`ereapproche Exprimons l’existence d’une intersection entre le triangle ABC et le seg- ment PQ. Ce sera le cas s’il existe un point X appartenant aux deux. Leurs ´equationssont ´etablies`al’annexe D :

 ½  a ≥ 0, b ≥ 0, c ≥ 0  X ∈ ABC ⇔ X = aA + bB + cC avec ½ a + b + c = 1  p ≥ 0, q ≥ 0  X ∈ PQ ⇔ X = pP + qQ avec p + q = 1 Il y aura donc intersection si :   0 ≤ p ≤ 1 pP + (1 − p)Q = aA + bB + (1 − a − b)C avec a ≥ 0, b ≥ 0  a + b ≤ 1 R´esolvons ce syst`emepour trouver a, b, c, p, q :

p(P − Q) + a(C − A) + b(C − B) = C − Q       Px − Qx Cx − Ax Cx − Bx p Cx − Qx ⇔ Py − Qy Cy − Ay Cy − By  a = Cy − Qy  (6.7) Pz − Qz Cz − Az Cz − Bz b Cz − Qz Il s’agit d’un syst`emede trois ´equations`atrois inconnues. Il poss`ede donc z´eroou une solution. On obtient ainsi le cri`eresuivant : Le segment PQ intersecte le triangle ABC si et seulement si le syst`eme6.7 a une solution telle que 0 ≤ p ≤ 1, a ≥ 0, b ≥ 0 et a + b ≤ 1.

6.2.2 Deuxi`emeapproche Nous proposons d’utiliser une transformation lin´eaire L ramenant le tri- angle dans le plan xy.

 −→ ¡ ¢T  p1 −−→ 0 0 0      L  ¡ ¢ p1x p2x p3x 0 1 0 −→ T     p2 −−→ 1 0 0 ⇔ M ∗ p1y p2y p3y = 0 0 1 (6.8)  L ¡ ¢  −→ T p1z p2z p3z 0 0 0  p3 −−→ 0 1 0 L Il y aura intersection entre le segment et le triangle si et seulement si il y a intersection entre le segment et le plan contenant le triangle, et la trans- formation lin´eaireappliqu´ee`ace point est dans le triangle (0, 0),(0, 1),(1, 0). L’´equationdu plan contenant le triangle est donn´eepar :

¡−−−−−−→¢ −→ −→ −→ −→ ax + by + cz + d = 0 avec a b c = (p2 − p1) ∧ (p3 − p1) (6.9) CHAPITRE 6. SQUELETTE DE L’AVATAR 65

La d´eterminationdes¡ coefficients¢ de l’´equationlin´eaire L n´ecessitel’in- version de la matrice p1 p2 p3 dont le d´eterminant peut s’annuler lorsque les trois sommets du triangle sont align´esou lorsque le plan de support du triangle passe par l’origine (apparition d’une relation lin´eaireentre les coor- donn´eesdes sommets). Pour ´evitercela, nous commen¸conspar translater le plan suivant sa normale :  −→ ¡−−−−−−→¢  0 −→  p1 = p1 − k a b c ¡−−−−−−→¢ −→0 −→ p = p2 − k a b c (6.10)  2 ¡−−−−−−→¢  −→0 −→ p3 = p3 − k a b c On cherche alors la matrice M telle que

 ¡ ¢ −→0 T  p1 −−→ 0 0 0      L p0 p0 p0 0 1 0  −→ ¡ ¢ 1x 2x 3x 0 T  0 0 0    p2 −−→ 1 0 0 ⇔ M ∗ p1 p2 p3 = 0 0 1 (6.11)  L y y y  −→ ¡ ¢T 0 0 0 0 0 0  0 p1z p2z p3z p3 −−→ 0 1 0 L

Comme d´emontr´edans¡ l’annexe C,¢ la valeur de k rendant unitaire le 0 0 0 d´eterminant de la matrice p1 p2 p3 est donn´eepar

¯ ¯ ¯ ¯ ¯p0 p0 p0 ¯ ¯p p p ¯ ¯ 1x 2x 3x ¯ D − 1 ¯ 1x 2x 3x ¯ ¯p0 p0 p0 ¯ = 1 ⇔ k = avec D = ¯p p p ¯ ¯ 1y 2y 3y ¯ a2 + b2 + c2 ¯ 1y 2y 3y ¯ ¯ 0 0 0 ¯ ¯p p p ¯ p1z p2z p3z 1z 2z 3z ¡ ¢ (6.12) 0 0 0 Dans ce cas, la matrice p1 p2 p3 est inversible et on a :

   0 0 0 −1 0 1 0 p1x p2x p3x    0 0 0  M = 0 0 1 p1y p2y p3y (6.13) 0 0 0 0 0 0 p1z p2z p3z

 0 0 0 0 0 0 0 0 0 0 0 0  p1z p3y − p3z p1y p1x p3z − p3x p1z p1y p3x − p3y p1x  0 0 0 0 0 0 0 0 0 0 0 0  ⇔ M = p1y p2z − p2y p1z p1z p2x − p2z p1x p1x p2y − p2x p1y (6.14) 0 0 0

L’algorithme na¨ıfd´eterminant si un maillage s’auto-intersecte est ainsi : CHAPITRE 6. SQUELETTE DE L’AVATAR 66

1. transformer le maillage en un maillage triangulaire ; 2. pour chaque facette, d´eterminerl’´equationdu plan la contenant, le facteur de translation k et les 6 coefficients de la matrice M ;

3. pour chaque couple de faces fa et fb, d´eterminersi les deux facettes s’inter- sectent (a) en calculant pour chaque arˆeteson intersection avec le plan support´e par le triangle duquel elle ne fait pas partie ; ¡−−−−−−→¢ (b) en appliquant au point obtenu la translation −k a b c ; (c) en projetant le point translat´edans le plan xy par la relation L ; (d) en d´eterminant si le point obtenu est dans le triangle (0, 0),(0, 1),(1, 0) ; 4. conclure en se demandant si on a trouv´edeux facettes qui s’intersectent.

Cet algorithme est relativement efficace. En effet, le point 1 peut ˆetreef- fectu´eune fois pour toutes, puisque seuls les noeuds sont susceptibles d’ˆetre modifi´es.De plus, les op´erationscoˆuteusesont ´et´ereport´eesdans la phase lin´eaire(point 2), ne laissant qu’une charge de calcul r´eduitelors de la phase quadratique (point 3). Il y a cependant moyen de faire mieux.

6.2.3 Optimisation En pratique, les diverses facettes du maillage ne sont que rarement proches les unes des autres. Tester si deux facettes sont proches est nette- ment moins cˆouteuxque de tester si les facettes s’intersectent. Pour chaque facette, en plus de ce qui est mentionn´eau point 2 ci-dessus, on calcule sa boˆıtelimite1. Au point 3, on commence par v´erifiersi les deux boˆıteslimites ont une intersection. Si tel n’est pas le cas, il ne sert `arien de tester si les deux facettes s’intersectent.

Grouper les facettes proches les unes des autres en paquets est un raf- finement suppl´ementaire de la m´ethode. Si l’on pouvait couper le maillage en n parties de mˆemetaille de sorte qu’il soit impossible de trouver deux faces s’intersectant sans ˆetredans la mˆemepartie, alors seuls les couples de facettes au sein d’une mˆemepartie resteraient `aconsid´erer.Le troisi`eme point de l’algorithme d´ecritci-dessus serait alors n fois plus rapide.

Jung, Shin et Choi proposent dans leur article l’utilisation d’une struc- ture en buckets. Ils calculent la boˆıtelimite du maillage qu’ils scindent r´e- cursivement en deux selon sa plus grande dimension. Les facettes `acheval sur la limite sont dupliqu´eesafin de se retrouver dans les deux buckets. Le m´ecanismes’arrˆeted`esqu’il ne reste qu’un certain nombre arbitraire- ment pr´ed´efinide faces au sein d’un bucket, ou lorsque toutes les facettes

1Axis Aligned Bounding Box CHAPITRE 6. SQUELETTE DE L’AVATAR 67 r´esultantes sont `acheval sur la limite. Les tests d’intersections sont alors r´ealis´esentre facettes appartenant au mˆemegroupe (bucket). Nous avons test´ecette m´ethode, qui s’est r´ev´el´eeinadapt´eepour plusieurs raisons :

– la r´epartitionen buckets est `arecommencer chaque fois que le maillage change ; – le nombre d’ensembles de facettes peut devenir important, n´ecessitant beaucoup de m´emoire,un temps important pour leur allocation et lib´eration; – le fait que certaines facettes se retrouvent dans plusieurs groupes im- plique que certaines intersections seront d´etect´eesplusieurs fois, ren- dant difficile un comptage de celles-ci ; – les groupes ainsi form´essont sans signification, ce qui est regrettable puisque que cela rend difficile l’interpr´etationde l’ensemble d’intersec- tions trouv´ees; – un nombre important d’intersections parasites entre facettes voisines est d´etect´e.

L’approche choisie se base quant `aelle sur l’information contenue dans le squelette appris. L’avatar ´etant pilot´epar 105 param`etres,le squelette classe les noeuds du maillage en 106 classes, les feuilles du graphe, suivant l’ensemble d’articulations les mouvant. Par rapport au mod`elearticul´e,ces classes correspondent aux parties ind´eformables.Ces classes peuvent tr`es bien convenir pour d´ecrireles diff´erents groupes de facettes. Celles ´etant d´efiniessur des points appartenant `aplusieurs classes2 sont ignor´eeslors de la d´etectiond’intersections car elles sont situ´eesau niveau d’une articulation, zone du maillage susceptible d’ˆetred´et´erior´eeet donnant naissance `ades in- tersections parasites. A l’oppos´ede la m´ethode de Jung, aucune intersection n’est recherch´eeau sein d’un mˆemegroupe, une partie d’un mod`elearticul´e ne pouvant pas avoir d’intersection avec elle-mˆeme.Les intersections entre facettes sont donc recherch´eesentre groupes diff´erents, pour autant que les boˆıteslimites des groupes ne soient pas dissoci´ees3.

Comparativement `al’approche de Jung et al., la r´epartitiondes facettes triangulaires en groupes peut se faire une fois pour toutes, le squelette ´etant invariant `ala pose. Ici, il n’y a que 106 groupes de facettes, et aucune facette ne se retrouve dans plusieurs groupes. Il est ainsi possible de dire combien d’intersections ont ´et´etrouv´ees4, ainsi que les zones entre lesquelles il y a

23710 facettes triangulaires sont dans ce cas. 3Cette pr´ecisionest importante. Sans elle, l’algorithme serait O(n2), tout comme l’al- gorithme na¨ıftestant les intersections entre chaque paire de facettes. 4Bien ´evidemment, d`esqu’une intersection a ´et´etrouv´eeentre deux zones, il n’est plus n´ecessairede v´erifiers’il y a intersection entre d’autres facettes de ces zones. Cependant, il peut ˆetreint´eressant d’avoir un estimateur de l’importance de la collision. CHAPITRE 6. SQUELETTE DE L’AVATAR 68 intersection.

Enfin, remarquons que le rejet des silhouettes correspondant aux poses illicites peut poser probl`eme,d`esque l’on restreint les poses prenables par l’avatar. Ainsi, le troisi`emeorteil est par d´efauten collision avec les deux doigts voisins. Fixer les param`etresdes orteils `aleur valeur par d´efaut(0), conduirait `aun rejet de toutes les silhouettes. On voit ici une application directe de la possibilit´ede connaˆıtreles parties entres lesquelles il y a inter- section. Une autre application sera ´etudi´ee`ala section 6.3.2.

Avant de passer `al’´etudede techniques permettant de r´eduirele taux de rejet, une derni`ereremarque s’impose. L’algorithme que nous venons de d´ecrirene garantit rien. Certaines situations de collisions peuvent paraˆıtre licites, notamment si l’intersection se situe au niveau d’une articulation ou lorsque les limites des facettes d’une partie correspondent tout juste `ala sur- face de l’autre partie. De telles situations seront cependant exceptionnelles. De plus, certaines situations licites peuvent ˆetred´etect´eescomme illicites, de par la d´egradationengendr´eepar la transformation appliqu´eeau maillage pour le rendre triangulaire. Ces situations seront cependant proches de si- tuations de collisions, de telle sorte que ces erreurs sont sans gravit´e.

6.3 Diminution du taux de rejet

La d´etectiondes poses illicites permet de n’enregistrer une silhouette que lorsque l’avatar est dans une pose correcte. Cependant, avant de d´eterminer si la pose envisag´eeest licite, il est n´ecessairede r´ecup´ererle maillage, ce qui prend un temps non n´egligeable.De plus, il se peut que le taux de rejet des poses soit important. Dans ce cas, le d´ebitde silhouettes produites se r´eduitde mani`ereinacceptable.

Afin de limiter la quantit´ede poses illicites, deux m´ethodes ont ´et´een- visag´ees.La premi`eretente de n’essayer une pose que si ses chances d’ˆetre licite sont suffisamment ´elev´ees.La seconde essaye de corriger la position de l’avatar lorsque celle-ci est impossible. Les deux m´ethodes peuvent ˆetre ´eventuellement combin´ees.

6.3.1 M´ethode a priori L’observation du caract`erelicite ou non des poses essay´eespr´ec´edemment fournit une information utile pour guider le choix d’une nouvelle pose. La cr´eationd’une base de donn´eesregroupant les param`etresdes poses essay´ees pr´ec´edemment ainsi que leur classe (licite ou non) est alors n´ecessaire. CHAPITRE 6. SQUELETTE DE L’AVATAR 69

Afin de pouvoir comparer une pose avec celles enregistr´eesdans la base de donn´ees,il est n´ecessairede d´efinirune distance entre poses. Nous note- rons d+ la distance de la pose envisag´eepar rapport `ala pose licite la plus similaire et d− la distance de la pose envisag´eepar rapport `ala pose illicite la plus semblable.

Le but sera d’augmenter la densit´ede tuples licites tout en ´evitant de choisir des poses trop similaires. Un compromis doit ainsi ˆetre´etablientre 5 d+ et d−. Cela peut se faire en maximisant l’entropie suivante :

E = min{τd+, d−} (6.15)

E T

d+ d-

Fig. 6.9 – Illustration de la fonction d’entropie E (´equation6.15)

Le param`etre τ permet de r´eglerla distance moyenne entre les poses licites par rapport `acelle entre les poses illicites. Un exemple est illustr´e `ala figure 6.10. On peut remarquer que l’utilisation de la m´ethode pour τ = 1 force les diff´erents points `as’´ecarterles uns des autres. La croissance de τ a manifestement l’effet escompt´e.Cependant, une valeur trop ´elev´ee de τ risque de provoquer l’oubli de certaines r´egionstrop petites d’instances positives. Le choix d’une valeur de τ est donc ´egalement un compromis.

Cette m´ethode a trois inconv´enients majeurs. Premi`erement, le choix de la distance `autiliser n’est pas ´evident. Alors que le choix d’une distance eu- clidienne est naturel pour des points dans un espace bidimensionnel (exemple de la figure 6.10), une telle distance ne semble pas adapt´ee`al’espace `a105 dimensions des poses de l’avatar. Deuxi`emement, aucun moyen pour fixer τ automatiquement n’a ´et´etrouv´e.Troisi`emement, il n’est pas raisonnable de m´emoriserune base de donn´eestelle qu’envisag´eeci-dessus. En effet, sa taille risque d’augmenter tr`esrapidement, rendant son stockage difficile et rendant la d´eterminationde d+ et de d− de plus en plus lente. Il est donc n´ecessairede limiter la taille de la base de donn´eesainsi que de pr´evoir un m´ecanismede remplacement des tuples.

5On parle d’entropie car cette quantit´eest d’autant plus faible que la pose est proche d’une pose dont on connaˆıt la classe. La valeur de E refl`etedonc l’incertitude sur la l´egitimit´ede la pose. CHAPITRE 6. SQUELETTE DE L’AVATAR 70

(a) (b)

(c) (d)

(e) (f)

Fig. 6.10 – Illustration de la m´ethode a priori dans un espace euclidien bidimensionnel : (a) limite des deux classes ; (b) r´esultatd’un tirage al´eatoire [ 54 % de + ] ; (c) r´esultatde la m´ethode pour τ 2 = 1 [ 51 % de + ] ; (d) r´esultatde la m´ethode pour τ 2 = 2 [ 63 % de + ] ; (e) r´esultatde la m´ethode pour τ 2 = 5 [ 77 % de + ] ; (f) r´esultatde la m´ethode pour τ 2 = 10 [ 85 % de + ]. CHAPITRE 6. SQUELETTE DE L’AVATAR 71

6.3.2 M´ethode a posteriori On peut essayer de corriger une pose d´etect´eecomme ´etant illicite en une pose licite. La motivation de cette d´emarche tient en la constatation suivante. Consid´eronsdeux tirages al´eatoirescons´ecutifsdes param`etresde pose. Imaginons qu’`ala suite du premier, l’avatar ait ses deux mains s’inter- sectant, il est ainsi en une position prohib´ee.Si l’on refait un nouveau tirage al´eatoired’une pose, on a de grandes chances d’aboutir de nouveau dans une position illicite, mais cette fois par exemple `acause des pieds. Il est clair que les chances d’aboutir `aune position licite seraient augment´eessi on pouvait garder les pieds dans la position du premier tirage. Il convient donc de ne refaire un tirage al´eatoireque des param`etresassoci´esaux poignets, coudes et ´epaules.

Algorithmiquement, il faut d´eterminerles parties de l’avatar entre les- quelles il y a collision, puis d´eterminerquels sont les param`etresayant une influence sur la position relative de ces parties et leur associer une nouvelle valeur par tirage al´eatoire.Les articulations mobilisant une certaine par- tie sont obtenues en parcourant l’arbre repr´esentant le squelette depuis la feuille correspondant `acette partie jusqu’`ala racine et en ne gardant que les noeuds internes atteints par la droite.

Illustrons ceci au travers d’un exemple. Consid´eronsqu’une intersection a ´et´ed´etect´eeentre les parties 4 et 5 du mod`elearticul´epr´esent´e`ala figure 6.2. Il est clair que seules des modifications apport´ees`ala position des arti- culations C, B et D ont une chance de ramener le mod`elearticul´edans une position licite. Ces articulations sont celles mobilisant soit la partie 4, soit la partie 5, exclusivement. En effet, A, B, C sont les articulations mobilisant la partie 4 et A, D sont celles mobilisant la partie 5. L’articulation A n’est d’aucun int´erˆetpuisqu’elle mobilise les deux parties, ne modifiant alors pas leur position relative.

En th´eorie,l’algorithme d´ecritci-dessus doit toujours amener, apr`esquel- ques it´erations,le mod`elearticul´edans une position licite. L’impossibilit´e d’y arriver impliquerait l’inexistence d’une configuration s´eparant les deux parties en collision. Il n’y aurait alors aucune configuration licite du mod`ele articul´e.

En pratique cependant, on observe que l’algorithme d´ecritci-dessus peut de temps en temps aboutir `aun blocage. La nature du probl`emen’est pas claire. On peut remettre en cause la pr´ecisionde l’algorithme de d´etection des collisions, tout autant que l’ad´equationdu mod`elearticul´eavec l’avatar (les articulations ne sont pas ponctuelles et les mouvements de torsion sont approxim´escomme des rotations). CHAPITRE 6. SQUELETTE DE L’AVATAR 72

Fig. 6.11 – Illustration du raisonnement menant `ala formule empirique 6.16.

Afin de garantir l’impossibilit´ede blocage du programme, une possi- bilit´ede repartir d’un nouveau tirage al´eatoirea ´et´eintroduite `achaque it´eration.Le programme pourra la choisir avec une certaine probabilit´ede r´einitialisationd´etermin´eedynamiquement.

Si cette probabilit´eest trop faible, l’algorithme risque d’aboutir `aune situation de quasi blocage dont il aura du mal `asortir, mettant ainsi l’ava- tar dans beaucoup de poses incorrectes. Le taux de silhouettes g´en´er´eessera alors faible, et tendra vers z´erosi la probabilit´ede r´einitialisationtend elle- mˆemevers z´ero.Si elle est grande, l’algorithme aura rarement le temps de corriger la pose avant de se r´einitialiser.A la limite, quand la probabilit´e devient certaine, le taux de silhouettes g´en´er´eestend vers le taux brut, la m´ethode ´etant alors d´esactiv´ee.Le taux optimal est obtenu pour une proba- bilit´ede r´einitialisationinterm´ediaire.Ce raisonnement est illustr´egraphi- quement `ala figure 6.11.a.

Intuitivement, si l’avatar se trouve dans une pose illicite et que la pro- babilit´eque cela arrive est inf´erieure`a0.5, on ne souhaitera pas corriger sa pose, mais on pr´ef´ererar´einitialiserle processus avec une nouvelle pose al´eatoire.A l’oppos´e,plus la probabilit´eque cela arrive est grande, plus on pr´ef´ereracorriger la pose, tout en veillant `apouvoir repartir d’une nouvelle pose de temps en temps. La figure 6.11.b illustre ce raisonnement, pour la r`egleempirique suivante :

pr´einitialisation = min { 1 , 0.1 + 1.8 taux brut } (6.16) CHAPITRE 6. SQUELETTE DE L’AVATAR 73

0.7 SANS CONTRAINTES DOIGTS FIXES 0.6 B.D. A B.D. B

0.5

0.4

0.3

0.2 TAUX DE POSES CORRECTES

0.1

0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 PROBABILITE DE REINITIALISATION

Fig. 6.12 – Taux de poses licites obtenus en fonction de la probabilit´ede r´einitialisationpour quatre ensembles de poses. Les cercles pointent les taux maximaux, et les carr´espointent les taux obtenus grˆace`ala formule 6.16. Remarquez la similitude entre ces taux (ordonn´ee)qui constitue une justifi- cation a posteriori de la formule 6.16.

6.3.3 R´esultatsdes deux m´ethodes Les proportions donn´eesdans les tableaux ci-dessous correspondent aux taux de poses correctes rencontr´ees( 1 - taux de rejet ). Ils ont ´et´eobtenus en comptant le nombre de poses licites obtenues parmi 10000 poses tir´ees al´eatoirement. Nous avons test´eles taux pour diverses restrictions de l’en- semble de poses. Elles seront d´ecritesen d´etailsau chapitre 8.

Explicitons le param´etrageutilis´epour la m´ethode a priori. Nous avons utilis´eune base de donn´eesde maximum 2500 tuples, et une valeur de τ ´egale `a2, 0. La distance entre les tuples est une distance euclidienne pond´er´eedans l’espace `a105 dimensions des param`etresde poses. Les poids sont choisis comme ´etant le produit entre l’angle parcouru par l’articulation et la taille de la partie mobilis´ee,par unit´edu param`etre.Ainsi, plus une articulation est importante, plus elle sera associ´ee`aun poids ´elev´e. CHAPITRE 6. SQUELETTE DE L’AVATAR 74

Avatar compl`etement libre sans m´eth. a posteriori avec m´eth. a posteriori sans m´eth. a priori 0.25 % 2.61 % avec m´eth. a priori 0.15 % 2.36 %

Doigts contraints `aune pose fixe sans m´eth. a posteriori avec m´eth. a posteriori sans m´eth. a priori 10.51 % 15.22 % avec m´eth. a priori 8.93 % 13.95 %

Cas de la base de donn´ees A sans m´eth. a posteriori avec m´eth. a posteriori sans m´eth. a priori 49.99 % 51.43 % avec m´eth. a priori 52.33 % 52.61 %

Cas de la base de donn´ees B sans m´eth. a posteriori avec m´eth. a posteriori sans m´eth. a priori 0.40 % 0.98 % avec m´eth. a priori 0.37 % 1.09 %

De mani`ere´evidente, la m´ethode a posteriori a toujours un impact po- sitif. Dans certains cas, il est mˆemesignificatif : elle permet de d´ecuplerla vitesse d’obtention des silhouettes voulues lorsque l’avatar est compl`etement libre.

Les r´esultatssont nettement moins encourageants en ce qui concerne la m´ethode a priori. On observe un faible gain dans certains cas, mais surtout un impact n´egatiflorsque les taux sont initialement faibles. Comme men- tionn´eci-dessus, la d´eterminationdu param`etre τ est probl´ematique.Cepen- dant, nous sommes enclins `apenser que le probl`emeprovient du choix de la distance utilis´ee.Pour l’illustrer, consid´eronsune pose illicite `acause d’un chevauchement entre deux doigts. Les articulations fautives ont malheureu- sement un poids faible. Si les autres articulations sont dans une configuration proche d’une pose pr´ec´edemment d´etect´eecomme licite, la nouvelle pose sera erron´ement class´eecomme ´etant licite. La distance utilis´een’est donc pas ad´equate.

En conclusion, nous conseillons de toujours utiliser la m´ethode a poste- riori. En revanche, nous d´econseillonsl’utilisation de la m´ethode a priori tant qu’une meilleure distance n’a pas ´et´etrouv´ee,bien que le principe ait ´et´ed´emontr´ecorrect par la figure 6.10. Chapitre 7

Le programme Silhouette 1.0

Sommaire 7.1 Approches al´eatoireet d´eterministe ...... 75 7.2 Position et orientation de l’avatar ...... 76 7.3 Interaction avec MakeHuman ...... 77 7.4 Calcul des silhouettes ...... 78 7.5 Annotation des silhouettes ...... 79 7.6 Mode d’emploi ...... 81

D´ecrivons `apr´esent le programme mis au point. Nous l’avons appel´e Silhouette 1.0.

7.1 Approches al´eatoireet d´eterministe

A l’oppos´ede l’approche d´eterministe´etudi´eeaux chapitres 3 et 4, nous approchons le probl`emeselon une vue al´eatoire.Les diff´erentes poses seront tir´eesau sort suivant une distribution uniforme des diff´erents param`etres dans un sous-intervalle. L’avantage principal de cette approche est sa sim- plicit´e`ag´en´ererun nombre donn´ede silhouettes, car il suffit de faire au- tant de tirages al´eatoiresque l’on souhaite de silhouettes. Comparativement, avec l’approche d´eterministe,il aurait fallu estimer la tol´eranceen terme de la distance de Hausdorff entre les diff´erentes silhouettes, telle qu’on ob- tienne le nombre souhait´ede silhouettes, ce qui est beaucoup plus complexe `amettre en oeuvre. On pourrait reprocher `ala m´ethode de se baser sur une distribution uniforme. Il ne s’agit cependant pas d’une restriction, car nous pouvons combiner divers ensembles de silhouettes, obtenus avec des intervalles diff´erents pour les param`etres,dans la proportion ad´equatepour

75 CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 76 simuler une distribution voulue.

Il convient de remarquer la diff´erencefondamentale existant entre les ap- proches d´eterministeset al´eatoires.Alors que la premi`eretente de r´epartir uniform´ement les poses dans l’espace bidimensionnel des silhouettes et ainsi fournir certaines garanties quant aux caract´eristiquesdes bases de donn´ees produites, la seconde cherche `aespacer les poses prises dans un sous-espace de l’espace `a105 dimensions des param`etresde poses. Les caract´eristiques des bases de donn´eesproduites seront diff´erentes, les utilisations qui peuvent en ˆetrefaites sont donc ´egalement diff´erentes.

L’approche d´eterministefournit une base de donn´eescontenant toutes les silhouettes, `aune certaine tol´erancepr`es.L’approche al´eatoirene le garantit pas, mais tend `ay mettre les silhouettes de ”toutes” les poses. L’approche d´eterministeserait donc id´ealepour servir de base `al’apprentissage automa- tique de la caract´erisationdes silhouettes, si seulement la base de donn´ees ´etaitg´en´erableen un temps raisonnable. En revanche, l’approche al´eatoire est id´ealepour l’apprentissage de la relation liant la pose `ala silhouette. Nous esp´eronsen plus qu’elle puisse ´egalement remplacer dignement l’ap- proche d´eterministepour l’apprentissage automatique de la caract´erisation des silhouettes.

7.2 Position et orientation de l’avatar

Afin de simplifier davantage le probl`eme,nous allons faire l’hypoth`ese que nous ne sommes pas int´eress´espar les silhouettes obtenues lorsque l’ava- tar est tr`esproche de la cam´era,ni lorsqu’il est sur le cˆot´edu champ de vision. Dans ce cas, l’approximation classique consid`ereque les silhouettes sont simplement translat´eeset dilat´eesdans le plan image. C’est pourquoi nous consid´ereronsl’avatar `aune position fixe.

Si besoin en est, l’approche al´eatoirepourrait ˆetre´egalement appliqu´ee aux positions. Il faudrait alors d´eterminerune densit´ede probabilit´ead´equate. Une piste serait d’utiliser les r´esultatsobtenus lors de l’´etudede l’approche d´eterministe.On mettrait en correspondance la densit´ede probabilit´ere- cherch´eeavec la densit´ede positions souhait´eeen chaque point de l’espace tridimensionnel. Celle-ci pourrait ˆetreapproxim´eepar le nombre de poses et d’orientations n´ecessairesen ce point ainsi que par la densit´ede positions.

En ce qui concerne l’orientation, nous consid´eronsl’avatar dans une po- sition ”debout”. Il tournera donc uniquement autour de l’axe vertical z. Afin de ne pas devoir manipuler chaque point du maillage, on pr´ef´ererad´eplacerla cam´erapour obtenir le mˆemer´esultat.Si l’on souhaite une rotation d’angle CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 77

¡ ¢ θ, et l’avatar plac´een x y z , il suffit de calculer la nouvelle matrice de projection par :       p cos θ sin θ 0 x su x p  − sin θ cos θ 0 y sv = M 0  y avec M 0 = M   p   0 0 1 z s z 1 0 0 0 1 car           p0 p0 cos θ sin θ 0 x p su x x x p0  p0  − sin θ cos θ 0 y p  sv = M  y avec  y =    y p0  p0   0 0 1 z p  s z z z 1 1 0 0 0 1 1

7.3 Interaction avec MakeHuman

Nous souhaitions interagir avec MakeHuman pour r´ep´etitivement placer l’avatar dans une pose voulue et r´ecup´ererle maillage. Malheureusement, MakeHuman est uniquement pilotable `ala souris. Il n’accepte aucun argu- ment au d´emarrage,il n’est pas scriptable et il passe par des fichiers pour toutes ses op´erationsd’entr´ees/sorties.MakeHuman n’est donc pas utilisable tel quel.

A` l’´epoque o`unous avons d´ebut´ece projet, MakeHuman 0.9 (la premi`ere version r´eellement utilisable) venait de voir le jour. Aucune documentation n’´etaitdisponible, le code-source n’´etaitabsolument pas comment´eet le fo- rum des d´eveloppeurs n’existait pas encore. Nous avons donc dˆunous plonger assidˆument dans le code-source de MakeHuman pour comprendre comment interagir avec celui-ci.

Le programme MakeHuman se base sur deux biblioth`eques, animorph et mhgui. Nous avions besoin des fichiers de donn´eesfournis avec MakeHuman, ainsi que de la biblioth`eque animorph. C’est cette derni`erequi contient le code n´ecessaire`atransformer le maillage pour faire prendre `al’avatar l’ap- parence voulue, ainsi que le code du moteur de pose. Le programme Make- Human ainsi que la biblioth`eque mhgui ne nous sont d’aucune utilit´e; cette derni`eresert seulement pour l’interface graphique.

Il nous fallait donc cr´eerune couche logicielle pour pouvoir communi- quer entre les deux applications. Le programme MakeHuman ´etant ´ecriten C++ et souhaitant d´evelopper Silhouette en Java, l’interface entre les deux programmes devait ˆetrecompos´eede deux modules. Nous avons test´etrois m´ecanismesd’interfa¸cage. CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 78

La premi`ereinterface mise au point ´etaitrudimentaire. Du cˆot´enatif, il s’agissait d’un programme prenant en argument les noms des fichiers .bs de description de la pose et de l’apparence ainsi que celui du fichier .obj dans lequel le maillage doit ˆetreenregistr´e.Du cˆot´eJava, nous ´ecrivionsles deux fichiers .bs, faisions un exec pour lancer le programme avec les bons param`etres,et une fois celui-ci termin´e,nous lisions le fichier .obj pour ob- tenir le maillage. Cette premi`ereinterface ´etaitparticuli`erement inefficace, car le temps n´ecessaire`al’initialisation du maillage est important compara- tivement au temps requis pour placer l’avatar dans la pose voulue.

La deuxi`emeinterface mise au point est une am´eliorationde la premi`ere. Cette fois, le module natif est initialis´eune fois pour toutes et la communica- tion entre les deux modules se fait via sockets unix. Les diff´erentes donn´ees transitent toujours via fichiers, mais nous n’enregistrons plus les normales aux facettes dans le fichier .obj, faisant passer la taille des fichiers enregistr´es de 1.8 Mo `a775 Ko. Cette fa¸conde proc´ederest suffisamment rapide. Nous l’avons nomm´eeMakeHumanLight. On peut cependant vouloir transf´erer les donn´eesvia la communication r´eseau,mais il y a moyen de faire encore mieux.

La troisi`emeinterface r´ealis´eese base sur JNI (Java Native Interface). L’appel de fonctions d´efiniesen Java ex´ecutedu code natif. Ainsi, il n’y a plus besoin de lancer un autre programme. La biblioth`equecontenant le code natif utilise directement la biblioth`eque animorph. Les donn´eestransi- tant entre la partie native et la partie Java ne passent par fichiers. Nous ne devons plus ´ecrirele maillage sous forme d’un fichier .obj. Cette interface ne n´ecessitedonc plus la conversion des nombres en chaˆınesde texte, d’o`u un gain important en rapidit´eet pr´ecision.Cette interface est appel´eeMa- keHumanJni, elle est nettement plus rapide que MakeHumanLight grˆaceau fait que nous ne devons plus d´ecoder le fichier .obj.

7.4 Calcul des silhouettes

Le calcul de la silhouette se fait `apartir du maillage. Chaque noeud est d’abord projet´e.Ensuite, la boˆıtelimite des projections est calcul´ee,ce qui permet de s’allouer l’image dans laquelle la silhouette sera dessin´ee.

La premi`eretechnique envisag´eeconsistait en le dessin du polygone1 re- liant les points projet´esde chaque facette. Dans une deuxi`emephase, un remplissage ´etaitr´ealis´e.Les figures 7.1.a et 7.1.b illustrent respectivement ces deux ´etapes. On peut remarquer que cette m´ethode est inad´equate,bou- chant des trous qui ne devraient pas l’ˆetre.

1L’algorithme utilis´epour le trac´edes segments est celui de Bresenham. CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 79

C’est pourquoi la technique a ´et´eraffin´ee.Les silhouettes de chaque fa- cette sont dessin´eess´epar´ement par la premi`erem´ethode, et l’ensemble est superpos´e.Le r´esultatest illustr´e`ala figure 7.1.c.

Dans le cas o`ul’on souhaite obtenir des silhouettes annot´ees,8 sil- houettes sans annotation sont cr´e´eespar la deuxi`emem´ethode, une pour chaque super-classe de facettes. Chaque silhouette binaire produit alors un bit du code de la silhouette annot´ee.

(a) (b) (c)

Fig. 7.1 – Trois modes de dessin : (a) dessin en fil de fer ; (b) dessin en fil de fer rempli ; (c) silhouette.

7.5 Annotation des silhouettes

La connaissance du squelette a, comme nous l’avons vu, de nombreuses applications dans le cadre de l’interaction avec MakeHuman. Une autre ap- plication, beaucoup plus int´eressante en pratique bien qu’initialement inat- tendue, est l’annotation des silhouettes produites.

Rappelons que le squelette appris permet de classer les noeuds du maillage de l’avatar en 106 classes. Celles-ci correspondent aux parties rigides du mod`elearticul´eassoci´e`al’avatar. Par extension, le squelette permet la clas- sification des facettes du maillage d’apr`esles classes associ´eesaux sommets. CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 80

Une facette peut se trouver dans autant de classes qu’elle a de sommets.

Lors de la g´en´erationde la silhouette, on peut ainsi associer `achaque pixel les classes des facettes projet´eesdont il fait partie2. Chaque pixel doit alors ˆetrecod´esur au moins 106 bits, chaque bit sp´ecifiant l’appartenance du pixel `aune classe. Sans compression, une silhouette de 640x480 pixels n´ecessiterait3975 ko, ce qui est beaucoup trop important.

Fig. 7.2 – Quelques annotations de silhouettes

Il nous semble raisonnable de coder chaque pixel sur un octet. Ce choix nous impose une restriction `a8 super-classes, qui peuvent ˆetreobtenues en groupant les classes entre elles. Pour les applications classiques, c’est suffisant. On peut en effet choisir des super-classes telles que tˆete,torse, bras gauche, main gauche, bras droit, main droite, jambe gauche et jambe droite qui sont les diff´erentes parties susceptibles d’ˆetresouhait´eesmises en ´evidence.

A titre d’illustration, consid´eronsune hypoth´etiqueapplication `al’an- notation des silhouettes. Supposons que l’on ait `anotre disposition une base de donn´eescontenant des silhouettes annot´eespar les 8 super-classes cit´ees ci-dessus. La mise au point d’un syst`emeavec lequel l’utilisateur peut inter- agir avec les mains n´ecessiteleur situation dans la sc`enefilm´ee.Un moyen d’y parvenir r´esideen l’extraction de la silhouette par soustraction d’arri`ere

2Nous adoptons une approche dans laquelle plusieurs classes peuvent ˆetreassoci´ees`a un pixel, prenant en consid´erationtoutes les facettes, mˆemecelles `al’arri`eredu maillage. Une autre approche aurait ´et´ede ne consid´ererque les facettes du devant de l’avatar, par rapport `ala cam´era,mais aurait n´ecessit´eun algorithme suppl´ementaire d’´eliminationdes facettes cach´ees. CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 81 plan, identification de la silhouette la plus ressemblante contenue dans la base de donn´eeset construction du masque ad´equaten s´electionnant les pixels dont les bits correspondant aux mains sont actifs. Bien sˆur,des tech- niques plus ´evolu´eespourraient ˆetreutilis´ees,comme l’apprentissage d’un mod`eledonnant la position et la taille des zones correspondant `achaque main `apartir de caract´eristiquesde la silhouette.

Remarque :

Du point de vue pratique, un d´etailreste `aconsid´erer.L’enregistrement des silhouettes, dans un format tel que BMP, permet de coder chaque pixel sur un octet, et une table associe `achaque code la couleur `aafficher. Comment choisir cette table ?

Premi`erement, il serait souhaitable de ne pas ˆetreoblig´ede relire le fichier soi-mˆeme pour r´ecup´ererl’annotation (code du pixel). On souhaite que l’annotation soit facilement r´ecup´erablelorsque la lecture du fichier se fait grˆace`aune fonction fournissant le code couleur RVB de chaque pixel. Cela implique que les bits de code se retrouvent tels quels dans le code RVB.

Deuxi`emement, il serait pratique que l’annotation soit visiblement marqu´ee.C¸a requiert l’espacement maximal des couleurs ; autrement dit que chaque bit du code influence fortement la couleur.

Afin de g´en´ererla table efficacement tout en respectant les deux points de vue pr´ec´edents, nous avons choisi de g´en´ererla table `apartir de la r`eglesuivante, n’effectuant que des d´ecalagesbinaires :

code = c7 c6 c5 c4 c3 c2 c1 c0

R = c7 c6 c5 c4 c3 c2 c1 c0

V = c4 c3 c2 c1 c0 c7 c6 c5

B = c1 c0 c7 c6 c5 c4 c3 c2

7.6 Mode d’emploi

Apr`esavoir affich´eun panneau de d´emarrage,le programme demande `al’utilisateur de s´electionnerun fichier de description de corps. Il s’agit d’un fichier .bs obtenu en exportant les param`etresd’apparence de l’avatar mod´elis´egrˆace`aMakeHuman3. Si vous souhaitez simplement utiliser l’ap- parence par d´efaut,faites annuler.

Une fois les caract´eristiquesd’apparence connues, le programme effec- tue un apprentissage du squelette de l’avatar. Cette op´erationprend moins d’une dixaine de secondes, un peu plus si l’utilisateur laisse la case preview coch´ee(cette case est situ´eeau bas de la fenˆetre).Lorsqu’elle est coch´ee, les diff´erentes poses prises par l’avatar au cours de l’apprentissage sont des- sin´ees.Une barre de progression indique l’´etatd’avancement de l’apprentis- sage.

3Veillez `aˆetredans le mode morphing pour obtenir ce fichier. Si vous ˆetesen mode pose, vous obtiendrez un fichier .bs avec les param`etresde pose et non d’apparence ! CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 82

(a) (b)

Fig. 7.3 – (a) Le panneau de d´emarragedu programme. (b) L’invite de s´electiondu fichier d’apparence.

Fig. 7.4 – L’interface graphique de l’´etape d’apprentissage.

Une fois l’apprentissage du squelette effectu´e,il est affich´esous la forme d’un arbre r´etractiledans une nouvelle fenˆetre(figure 7.5 a). On y retrouve ´egalement, outre les noms des param`etres,les diff´erentes parties rigides ainsi que quelques donn´eesquantitatives telles que l’intervalle de valeurs admis- sibles pour chaque param`etre,le nombre de points contenu dans chaque partie, le nombre de points mobilis´espar chaque articulation, les tailles des parties rigides, une borne sur les tailles des parties mobilis´eespar les diff´erentes articulations ainsi qu’une estimation num´eriquede l’importance des param`etres.

De plus, l’utilisateur peut attribuer une classe aux diff´erentes parties rigides. Ce sont elles qui d´efinissent la couleur dans laquelle apparaˆıtrala partie dans la silhouette si elle est annot´ee.Un clic sur une case color´eefait apparaˆıtreun petit menu (figure 7.5 b) avec les huit choix possibles. Par d´efaut,les parties rigides ont ´et´eclassifi´eescomme tˆete,torse, bras gauche, CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 83 main gauche, bras droit, main droite, jambe gauche et jambe droite.

Enfin, cette interface permet aussi de restreindre l’intervalle de valeurs parmi lesquelles les param`etresseront tir´esau sort. Pour ce faire, un clic sur le bouton situ´een regard d’un param`etrefait apparaˆıtreune petite fenˆetre dans laquelle il est possible de restreindre l’intervalle au moyen de deux cur- seurs (figure 7.5 c).

(a) (b)

(c)

Fig. 7.5 – (a) L’interface graphique montrant le squelette. (b) Le menu de choix de classe pour une partie rigide. (c) La fenˆetrepermettant de r´eglerl’intervalle du param`etre.

Une fois les diff´erents r´eglagessouhait´es,une nouvelle fenˆetreapparaˆıt (figure 7.6). Elle permet de r´ealiserla configuration de l’´etape de g´en´eration de la base de donn´ees.Les diff´erents param`etressont class´esen trois cat´egories.

Premi`erement viennent les choix concernant les poses. L’utilisateur a le choix entre les restrictions ayant ´et´eutilis´eespour r´ealiserles quatre bases de donn´ees´evoqu´eespr´ec´edemment et la restriction personnalis´eeayant ´et´e configur´ee`al’´etape pr´ec´edente.

Ensuite viennent les param`etresd´ecrivant la cam´era.Elle est sp´ecifi´ee CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 84 par sa matrice de projection. Veillez `ace qu’elle regarde vers l’origine, car l’avatar y sera plac´e.De plus, veillez `ace qu’il n’y ait pas de param`etresinfi- nis ou NaN dans sa d´efinitionsous peine d’avoir un comportement ind´efini. Enfin, sachez qu’il faut ´ecartersuffisamment la cam´erade l’origine pour qu’elle ne puisse jamais se retrouver `al’int´erieurde l’avatar. En effet, la sil- houette serait alors de taille infinie et un manque de m´emoiresurviendrait. Un bouton permet d’obtenir la matrice de projection via un ´etalonnagede cam´era.Nous y reviendrons dans la suite. Enfin, notez qu’une matrice de projection par d´efautest propos´ee.C’est elle qui a ´et´eutilis´eepour obtenir les diff´erentes silhouettes tout au long du travail. Elle convient pour l’avatar d’apparence par d´efaut.

Enfin, arrivent les param`etressp´ecifiant les caract´eristiquesde la base de donn´ees`aproduire. On y retrouve notamment le nombre de silhouettes sou- hait´ees,l’option permettant ou non d’annoter les silhouettes, la possibilit´e d’enregistrer toutes les silhouettes ou seulement les silhouettes correspon- dant aux poses licites, et dans ce cas, la possibilit´ed’activer ou non les m´ethodes d’acc´el´eration a priori et a posteriori.

Fig. 7.6 – La fenˆetrede configuration.

Dans le cas o`ul’utilisateur souhaite obtenir la matrice de projection via un ´etalonnagede cam´era,une premi`erefenˆetre(figure 7.7 a) permet de s´electionnerl’image `apartir de laquelle l’´etalonnagedoit ˆetreeffectu´e.Veillez `as´electionnerun fichier qui est est une image dans un format classique, tel que jpg ou gif4. Un fois l’image choisie, une deuxi`emefenˆetre(figure 7.7 b) permet de sp´ecifierles coordonn´eesbidimensionnelles et tridimensionnelles des six points participant `al’´etalonnage.A chaque point est associ´eun cur- seur pointant sur le pixel correspondant de l’image. Ces curseurs peuvent ˆetred´eplac´esavec la souris. La matrice de projection est mise `ajour et factoris´eeen temps r´eel.Une fois l’´etalonnageeffectu´e,vous reviendrez au

4La restriction provient des capacit´esdu toolkit par d´efautde Java `acomprendre les diff´erents formats. CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 85 panneau de configuration.

(a) (b)

Fig. 7.7 – Interface graphique de l’´etalonnagede cam´era: (a) s´electionde l’image `apartir de laquelle travailler ; (b) choix des positions des 6 points servant `al’´etalonnage.

D`esque la configuration est termin´ee,la g´en´erationde la base de donn´ees commence. Les fichiers seront enregistr´esdans /tmp/output/. Aucun fichier ne sera produit si ce r´epertoire n’existe pas. Il est pr´ef´erablequ’il soit ini- tialement vide, mais le programme ne devrait normalement ´ecraseraucun fichier s’y trouvant. Un fichier .xml repr´esentant le squelette est g´en´er´eainsi qu’un autre regroupant les diff´erents param`etres(targets) avec les valeurs des bornes extrˆemeset des bornes restreintes. Pour chaque silhouette pro- duite, un fichier .bs est g´en´er´eavec la pose correspondante, et la silhouette est enregistr´eedans un fichier .bmp. Ainsi, il est possible de retrouver toutes les donn´eesde base `apartir desquelles les silhouettes ont ´et´eproduites.

Suivant que les poses illicites soient ou non exclues, une fenˆetrediff´erente apparaˆıtra(figures 7.8 a et b). L’interface permet de visualiser les silhouettes produites, si demand´e.Une case `acocher situ´eeen bas de la fenˆetreper- met d’acter la pr´evisualisation.Les silhouettes montr´eesne refl`etent pas l’orientation de l’avatar lorsque l’interface utilis´eeest celle correspondant au souhait d’´ecarterles poses illicites. Dans ce cas, les silhouettes produites peuvent diff´ererdes silhouettes affich´ees.Aucune des deux interfaces ne per- met de montrer les silhouettes annot´ees.Une barre de progression indique l’avancement de la tˆache.

D’une mani`ereg´en´erale,on passe d’une fenˆetre`al’autre grˆace`aun bou- ton OK situ´een bas `adroite. La fermeture d’une fenˆetreprovoque l’arrˆetdu programme. Une jauge de la m´emoireutilis´eepar les diff´erents objets Java CHAPITRE 7. LE PROGRAMME SILHOUETTE 1.0 86

(a) (b)

Fig. 7.8 – Interface graphique de la g´en´erationde silhouettes : (a) lorsque seules les poses valides sont gard´ees;. (b) lorsque toutes les poses sont gard´ees. est r´eguli`erement mise `ajour dans la barre de titre des fenˆetres.Notons au passage que la quantit´ede m´emoireconsomm´eene tient pas compte de la m´emoireutilis´eepar MakeHuman. Chapitre 8

Application, r´esultatset perspectives

Sommaire 8.1 Application ...... 87 8.2 Les diff´erentes bases de donn´ees ...... 88 8.2.1 Les bases de donn´eesde silhouettes r´eelles. . . . . 88 8.2.2 Les bases de donn´eesde silhouettes synth´etiques . 89 8.2.3 Les bases de donn´eeshybrides ...... 90 8.3 R´esultats ...... 90 8.4 Perspectives ...... 93

Dans ce chapitre, nous nous int´eresserons`aune application pratique du g´en´erateurde silhouettes mis au point, nous d´emontrerons son utilit´eet pr´esenterons quelques pistes de recherche potentiellement int´eressantes. Ce chapitre sera ´egalement l’occasion de d´ecrireen d´etailsles diff´erentes bases de donn´eesavec lesquelles nous avons travaill´e.

8.1 Application

La g´en´erationautomatique de silhouettes humaines synth´etiquesa no- tamment une forte utilit´edans le domaine de la vid´eo-surveillance. En effet, de tels syst`emesimpliquent la d´etectionde personnes pr´esentes devant des cam´eras.Un tel syst`emeest d´evelopp´epar le service de T´el´ecommunications et d’Imagerie de l’Ulg.

Dans une premi`ere´etape, les diff´erentes images composant le flux vid´eo sont binaris´ees,mettant en ´evidenceles pixels appartenant `al’avant-plan.

87 CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 88

Ensuite, un ´eclatement en parties connexes fait apparaˆıtreles silhouettes des diff´erents objets de l’avant-plan. Celles-ci sont alors finalement classifi´eesen silhouettes humaines ou non.

Pour ce faire, les silhouettes sont remplies avant de leur appliquer un op´erateurmorphologique donnant l’ensemble des rectangles inscrits maxi- maux non recouvrants. A ce niveau, aucune information n’est perdue. Un certain nombre de ces rectangles sont alors choisis al´eatoirement, typique- ment entre 100 et 200. Ils sont caract´eris´espar 6 grandeurs avant d’ˆetreclas- sifi´esau moyen d’une forˆetd’arbres extrˆemement al´eatoires(extra-trees). La d´ecisionest prise selon que la majorit´edes arbres votent ou non pour une silhouette humaine.

Le mod`eleclassificateur est construit par apprentissage d’une base de donn´eesde silhouettes pr´ealablement classifi´ees.Puisque cette m´ethode est invariante `ala fois `ala position de la silhouette au sein de l’image et `asa taille, la base de donn´eesde silhouettes utilis´eepeut ˆetreobtenue pas un g´en´erateurindiff´erent `ala translation et `ala dilatation des silhouettes. La m´ethode utilis´eepour obtenir un ensemble de positions au chapitre 3 est ainsi ad´equate.

8.2 Les diff´erentes bases de donn´ees

Dans le cadre du travail, nous avons ´et´eamen´es`atravailler avec plusieurs bases de donn´eesde silhouettes, que nous d´ecrivons dans cette section. Elles se r´epartissent principalement en deux cat´egories: celles contenant des sil- houettes synth´etiques,et celles contenant des silhouettes r´eelles.

8.2.1 Les bases de donn´eesde silhouettes r´eelles Dans le cadre de la d´etectionde personnes dans un flux vid´eo,les bases de donn´eesutilis´eescontiennent deux ensembles de silhouettes : – un ensemble de silhouettes humaines (positifs) ; – et un ensemble de silhouettes non humaines (n´egatifs).

Deux bases de donn´eesde silhouettes r´eellesavaient ´et´econstitu´eesma- nuellement : – une base de donn´eesd’apprentissage (1245 positifs, 1924 n´egatifs); – et une base de donn´eesde test (1535 positifs, 1212 n´egatifs). CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 89

8.2.2 Les bases de donn´eesde silhouettes synth´etiques Afin d’´evaluer l’impact de notre g´en´erateurpour le probl`emeconsid´er´e, nous avons constitu´equelques bases de donn´ees.L’application du mod`ele appris `ala base de donn´eesde test, ´evoqu´eeci-dessus, a fourni des r´esultats objectifs. Pour constituer les diff´erentes bases de donn´ees,nous avons re- group´e,d’une part, les silhouettes humaines fournies par notre g´en´erateur (en utilisant l’avatar par d´efaut)avec, d’autre part, les silhouettes non hu- maines de la base de donn´eesde r´ef´erence.Voyons `apr´esent quels ensembles de silhouettes ont ´et´etest´es.

Nous avons commenc´epar g´en´ererune base de donn´eescontenant des sil- houettes de l’avatar non contraint. Chaque param`etreest choisi al´eatoirement suivant une densit´ede probabilit´euniforme dans l’intervalle des valeurs ad- mises par MakeHuman pour celui-ci. Puis, en vue de diminuer le taux de rejet, nous avons contraint les doigts des mains et des pieds `aune position fixe. Un ´echantillon de cette base de donn´eesest repr´esent´e`ala figure 8.4. Clairement, la distribution de ces silhouettes ne correspond pas du tout `a une distribution naturelle de silhouettes humaines. L’impact de cette base de donn´eesn’a donc pas ´et´etest´e.

Afin d’y rem´edier,une nouvelle base de donn´eesa ´et´econstitu´ee.Comme auparavant, chaque param`etreest choisi suivant une densit´ede probabi- lit´euniforme, mais cette fois, dans un sous-intervalle des valeurs possibles. Les sous-intervalles ont ´et´ed´etermin´esmanuellement grˆace`al’interface gra- phique de MakeHuman, pour contraindre l’avatar `ase trouver dans une position de marche. Les plages acceptables pour les param`etresdes jambes, du torse et de la tˆeteont donc ´et´erestreintes. Celles correspondant aux ar- ticulations des bras restent inchang´eesdans la mesure o`uun marcheur peut placer librement ses bras sans pour autant perdre l’´equilibre.Un ´echantillon de cette base de donn´eesest repr´esent´e`ala figure 8.5. Dans la suite, nous noterons cette base de donn´ees A.

Une fois test´een ”live” le mod`eleobtenu par apprentissage de cette derni`erebase de donn´ees,nous nous sommes rendus compte que les sil- houettes de personnes ayant les bras le long du corps n’´etaient jamais re- connues comme ´etant des silhouettes humaines. C’est pourquoi nous avons d´ecid´ede contraindre encore plus les poses de l’avatar pour obtenir de telles silhouettes. De plus, le torse nous semblait avoir une souplesse trop impor- tante. Cette fois, ce sont donc les param`etresdu torse, des ´epauleset des bras qui ont vu leur plage se r´eduire.La figure 8.6 montre un ´echantillon de la nouvelle base de donn´ees.Dans la suite, nous la noterons B.

Un comparatif des valeurs pouvant ˆetreprises par les diff´erents pa- CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 90 ram`etresdans les diverses bases de donn´eesest fourni `ala figure 8.1.

8.2.3 Les bases de donn´eeshybrides Utilis´eeseule, la base de donn´ees B avait de meilleures performances que la la base de donn´ees A. Cependant, le fait d’avoir contraint davantage la position des bras a une cons´equencen´efaste.Plus aucune silhouette avec les bras en l’air ne se trouve dans l’ensemble d’apprentissage. Si l’on rencontre de telles silhouettes, les chances de les classer comme humaines sont faibles.

Nous avons donc eu la curiosit´ed’essayer des bases de donn´eeshybrides, construites en m´elangeant dans diverses proportions les bases de donn´ees A et B. Th´eoriquement, il s’agit de changer la distribution statistique des poses. En combinant une infinit´ede bases de donn´ees,il y aurait moyen d’obtenir toute distribution voulue.

8.3 R´esultats

Nous qualifions de positives les silhouettes humaines et de n´egatives les silhouettes non humaines. Rappelons que A est la base de donn´eesun peu restreinte et que B est la base de donn´eefort restreinte. Voici les r´esultats obtenus :

% de positifs reconnus % de n´egatifsreconnus b.d. de r´ef´erence 83.06 % 99.01 % 2000 A 16.16 % 94.72 % 1000 A + 1000 B 31.73 % 97.19 % 2000 B 39.61 % 99.17 % 2000 A + 1000 B 43.13 % 92.57 % 2000 A + 2000 B 60.46 % 91.17 % 3500 B 61.43 % 98.27 % 2000 A + 3500 B 73.63 % 88.37 %

Au vu de ces r´esultats,plusieurs conclusions peuvent ˆetredonn´ees.

Premi`erement, nous remarquons que la base de donn´ees B utilis´eeseule a permis de construire un meilleur mod`eleque la base de donn´ees A. Nous mettons ceci en relation avec le fait que la base de donn´eesde test contient des silhouettes de poses proches de celles utilis´eespour construire la base de donn´ees B. On aurait ainsi, `apremi`erevue, int´erˆet`aconstruire une base de donn´eesd’apprentissage refl´etant la distribution probabiliste des poses que le syst`emedevra reconnaˆıtre. CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 91

param`etre libre doigts fixes b.d. A b.d. B 360 upper torso/torso2 rot1 340 lower torso/torso3 rot3 360 upper torso/torso2 rot3 340 lower torso/torso3 rot2 360 upper torso/torso2 rot2 320 neck/neck rot1 300 head/head rot3 300 head/head rot1 300 head/head rot2 280 left collar/l collar rot2 280 left collar/l collar rot3 280 left collar/l collar rot1 240 left upper arm/l upper arm rot2 240 left upper arm/l upper arm rot3 240 left upper arm/l upper arm rot1 160 left lower arm/l lower arm rot1 080 left hand/l hand rot3 080 left hand/l hand rot1 080 left hand/l hand rot2 063 left pollex 1/l pollex1 rot1 063 left pollex 1/l pollex1 rot3 062 left pollex 2/l pollex2 rot{1,2} 061 left pollex 3/l pollex3 rot1 072 left ringfinger 1/l ringfinger1 rot{2,3} 071 left ringfinger 2/l ringfinger2 rot2 070 left ringfinger 3/l ringfinger3 rot2 066 left forefinger 1/l forefinger1 rot{2,3} 065 left forefinger 2/l forefinger2 rot2 064 left forefinger 3/l forefinger3 rot2 069 left middlefinger 1/l middlefinger1 rot{2,3} 068 left middlefinger 2/l middlefinger2 rot2 067 left middlefinger 3/l middlefinger3 rot2 075 left littlefinger 1/l littlefinger1 rot{2,3} 074 left littlefinger 2/l littlefinger2 rot2 073 left littlefinger 3/l littlefinger3 rot2 200 left upper leg/l upper leg rot3 200 left upper leg/l upper leg rot2 200 left upper leg/l upper leg rot1 120 left lower leg/l lower leg rot1 040 left foot/l foot rot1 040 left foot/l foot rot3 040 left foot/l foot rot2 024 left footfinger 4 1/l foot 4 1 rot1 023 left footfinger 4 2/l foot 4 2 rot1 030 left footfinger 1 1/l foot 1 1 rot1 029 left footfinger 1 2/l foot 1 2 rot1 028 left footfinger 2 1/l foot 2 1 rot1 027 left footfinger 2 2/l foot 2 2 rot1 026 left footfinger 3 1/l foot 3 1 rot1 025 left footfinger 3 2/l foot 3 2 rot1 022 left footfinger 5 1/l foot 5 1 rot1 021 left footfinger 5 2/l foot 5 2 rot1

Fig. 8.1 – Les diff´erents param`etresde pose de l’avatar, avec leurs plages dans les diff´erentes bases de donn´ees.Les intervalles sont tous repr´esent´es par rapport `a[ -1 , +1 ]. Pour la clart´ede la table, les param`etresde droite ont ´et´eomis (ils sont obtenus par sym´etrieavec leur homologue de gauche) et certaines lignes identiques ont ´et´eregroup´ees.Remarquez que le param`etre 026 left footfinger 3 1/l foot 3 1 rot1 est forc´e`ala valeur 0.085 pour rendre le maillage licite. CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 92

Deuxi`emement, nous constatons la faible influence (11 %) de la base de donn´eesd’apprentissage utilis´eesur la reconnaissance des silhouettes non humaines. On peut se demander si ce n’est pas dˆu`ala similitude des objets non-humains test´esavec ceux utilis´esafin de r´ealiserl’apprentissage. Quoi qu’il en soit, il en r´esulteque l’on peut tenter diverses bases de donn´eesen ne se souciant que de l’impact sur la reconnaissance des silhouettes humaines.

Troisi`emement, il est clair que l’augmentation du nombre de silhouettes humaines utilis´eeslors de l’apprentissage a un impact positif. Ce ph´enom`ene est plus marqu´epour la base de donn´ees B que A. Manifestement, nous n’avons pas atteint le seuil de surapprentissage. Il serait int´eressant de faire davantage de tests pour d´eterminerla proportion id´ealedes bases A et B dans la base hybride, ainsi que pour mettre en ´evidencele nombre optimal de silhouettes `autiliser.

Il faut relativiser les r´esultatsobtenus, qui paraissent `apremi`erevue excellents, et ce pour plusieurs raisons.

D’un cˆot´e,sans aucune connaissance a priori de la proportion de sil- houettes humaines contenues dans la s´equencede test, un mod`eleidentifiant al´eatoirement une silhouette comme humaine, avec une probabilit´ede 50 %, reconnaˆıtraitcorrectement les silhouettes humaines dans 50 % des cas. Du point de vue du nombre de silhouettes humaines reconnues comme telles, les quatre premiers ensembles de silhouettes donnent des r´esultatsm´ediocres. La m´ethode utilis´eeavec un ensemble inad´equatd’apprentissage se r´ev`ele donc particuli`erement mauvaise.

De l’autre cˆot´ese pose la question de la g´en´erationde l’ensemble de silhouettes non humaines n´ecessaire`al’apprentissage. L’id´ealserait d’avoir l’ensemble compl´ementaire de celui contenant les silhouettes humaines. Ce- pendant, il comporterait alors un nombre prohibitif d’´el´ements. D’autre part, essayer de mettre au point un g´en´erateurde silhouettes non humaines semble irr´ealisable,vu les difficult´esrencontr´eeslors de la mise au point d’un g´en´erateurde silhouettes humaines, ensemble qui est bien mieux ca- ract´erisable.

Heureusement, quelques pistes existent pour am´eliorerle processus de d´etection.Voyons-en deux, qui peuvent ´eventuellement ˆetrecombin´ees.

Premi`erement, le classificateur utilis´eprend sa d´ecisionsur base du vote majoritaire des diff´erents arbres. Si l’utilit´evis´eeest l’enregistrement des seules parties de s´equencesvid´eoqui sont susceptibles de contenir une per- sonne, on pourrait caract´eriserune silhouette avec une probabilit´ed’ˆetre humaine, en fonction du nombre relatif d’arbres qui la consid`erent comme CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 93 telle. Lors de la classification, on pourrait garder les parties de s´equences contenant des silhouettes dont la probabilit´ed’ˆetrehumaine est sup´erieure `aun seuil arbitraire. Ce seuil est d’autant plus inf´erieur`ala moiti´eque l’on souhaite une haute probabilit´ede garder toutes les parties de s´equences contenant une personne.

Deuxi`emement, nous avons travaill´een classifiant chaque silhouette s´e- par´ement. Or, pour un syst`emede surveillance, l’int´erˆetserait de d´eterminer globalement si la s´equenceobserv´eecontient une personne. La d´ecisionde- vrait ainsi ˆetreprise sur l’ensemble des silhouettes observ´eespour un mˆeme ´el´ement de l’avant plan. L’utilisation d’une m´ethode de suivi (tracking) de- vrait ainsi gommer les quelques poses non reconnues, du moins si la personne n’est pas immobile.

Enfin, quelques diff´erencessont visibles entre les silhouettes obtenues lors de la reconnaissance et celles g´en´er´eeset utilis´eeslors de l’apprentis- sage. Par exemple, les premi`eressont plus ”´epaisses”que les secondes, de par la pr´esencede vˆetements sur la personne passant devant la cam´era. L’utilisation d’une version future de MakeHuman devrait pallier `acet in- conv´enient puisque celui-ci devrait inclure des outils pour habiller l’avatar. Une autre piste d’investigations concerne l’apparence de l’avatar, que nous avons gard´eeinitiale. Inclure des variations entre homme et femme et faire varier la corpulence enrichirait la base de donn´eesd’apprentissage.

8.4 Perspectives

Tout au long du projet, nous avons essay´ede rester les plus ind´ependants possible par rapport `aMakeHuman. Il est donc envisageable de substituer `a l’avatar de MakeHuman un avatar personnalis´e.Aujourd’hui, il est possible d’obtenir un avatar ressemblant `aune personne en quelques minutes. Il y au- rait donc moyen d’obtenir un meilleur mod`elesi les personnes `areconnaˆıtre sont connues `al’avance.

D’autres perspectives int´eressantes concernent l’information qui peut ˆetreextraite des silhouettes humaines. Nous avons clairement illustr´el’uti- lit´ede l’annotation des silhouettes, permettant de retrouver efficacement n’importe quelle partie souhait´eed’une silhouette (par exemple la tˆeteou les mains) en identifiant la silhouette la plus ressemblante de la base de donn´ees.Bien ´evidemment, on peut imaginer faire utilisation de m´ethodes d’apprentissage `ace niveau.

Dans le mˆemeordre d’id´ees,le logiciel Silhouette enregistre syst´emati- CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 94

Fig. 8.2 – Echantillon´ de la base de donn´eesde r´ef´erence CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 95

Fig. 8.3 – Echantillon´ de la base de donn´eesde test CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 96

Fig. 8.4 – Echantillon´ de la base de donn´eeso`useuls les doigts sont fix´es CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 97

Fig. 8.5 – Echantillon´ de la base de donn´ees A CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 98

Fig. 8.6 – Echantillon´ de la base de donn´ees B CHAPITRE 8. APPLICATION, RESULTATS´ ET PERSPECTIVES 99 quement les donn´eesconcernant la pose `apartir de laquelle la silhouette a ´et´eg´en´er´ee.L’inversion de cette relation permettrait de retrouver les poses possibles correspondantes `aune silhouette donn´ee.On voit ici un int´erˆet ´enorme`al’´eliminationdes poses illicites lors de la g´en´erationde la base de donn´ees.Les possibilit´esoffertes par cette d´emarche inverse sont nom- breuses. En effet, elle permettrait d’aider `al’analyse des mouvements d’une personne.

Enfin, soulignons l’utilit´eactuelle du travail dans la recherche.

D’un cˆot´e,la cr´eationd’une base de donn´eesde silhouettes avec des ca- ract´eristiquesdonn´eesest devenue faiblement coˆuteuseen temps humain, bien que le temps machine n´ecessairepuisse ˆetreimportant lorsque seule les poses licites sont souhait´ees.Obtenir 2000 silhouettes ´etaithier un vrai tra- vail titanesque ; aujourd’hui automatis´e,il est devenu facilement r´ealisable. Ainsi pourrons-nous cr´eerdes bases de donn´eesplus riches et obtenir de meilleurs mod`eles.

De l’autre cˆot´e,l’analyse des performances d’un syst`emede reconnais- sance ´etaitjusqu’aujourd’hui une ´evaluation plutˆotqualitative, voire mˆeme biais´ee.En effet, les silhouettes servant `al’apprentissage ´etaient acquises par le mˆemem´ecanismeque celles devant ˆetreclass´ees.Aujourd’hui les deux proc´ed´essont devenus distincts, rendant ainsi l’analyse des performances des syst`emesde reconnaissance rigoureusement quantitative. Bibliographie

[1] Olivier Barnich. D´etection de personnes dans des s´equences vid´eo. Travail de fin d’´etudesde DEA en Sciences Appliqu´ees.Universit´ede Li`ege,2006 [2] Olivier Barnich, S´ebastienJodogne, and Marc Van Droogenbroeck. Robust analysis of silhouettes by morphological size distributions. Ad- vanced Concepts for Intelligent Vision Systems (ACIVS 2006) of Lec- ture Notes on Computer Science, 12 pages. Springer Verlag, Antwer- pen, Septembre 2006. [3] Pedro F. Felzenszwalb, Daniel P. Huttenlocher. Pictorial Structures for Object Recognition [4] E.B. Saff et A.B.J.Kuijlaars. Distributing many points on a sphere. Mathematical Intelligencer, Springer-Verlag New York, Volume 19, n°1, pp 5-11, 1997 [5] Wonhyung Jung, Hayong Shin et Byoung K. Choi. Self-intersection Removal in Triangular Mesh Offsetting. Computer-Aided Design & Applications, Vol. 1, pp 477-484, 2004 [6] David A. Forsyth, Jean Ponce. Computer Vision : A Modern Ap- proach. Pearson Prentice Hall, International Edition, 2003 [7] Radu Horaud et Olivier Monga. Vision par ordinateur, outils fonda- mentaux Editions Herm`es,deuxi`eme´edition,1995 http ://perception.inrialpes.fr/people/Horaud/ livre-hermes.html [8] Wikip´edia. Etalonnage´ de cam´era http ://fr.wikipedia.org/wiki/Calibration de cam%C3%A9ra [9] William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling. Numerical Recipes in C : The Art of Scientific Computing Cambridge University Press, 2`eme ´edition,1992. http ://www.nrbook.com/b/bookcpdf.php [10] POV-Ray : Documentation http ://www.povray.org/documentation/ [11] MakeHuman v0.9 : un g´en´erateur d’humains en 3D. Pratique, n°40 pp. 50-56 et n°41 pp. 46-49, 2007

100 BIBLIOGRAPHIE 101

[12] Manuel Bastioni. The MakeHuman Muscle Engine System : Intro- duction http ://www.dedalo-3d.com/public/dev/articles/ 05 10 13 EN MH Muscle Engine System Intro.pdf [13] Manuel Bastioni. MakeHuman 0.8 Beta Release : The Humanoid 3D Model http ://makewiki.aleppax.it/pmwiki/pmwiki.php/ User/TheHumanoid3DModel [14] Developer Notes. description Of The Quick Pose System http ://makewiki.aleppax.it/pmwiki/pmwiki.php/ Developer/DescriptionOfTheQuickPoseSystem [15] Naveed Ahmed, Edilson de Aguiar, Christian Theobalt, Marcus Ma- gnor, HansPeter Seidel. Automatic Generation of Personalized Hu- man Avatars from Multiview Video ACM Symposium on Virtual Rea- lity Software and Technology (VRST), 2005 Annexe A

Rappels d’alg`ebrelin´eaire

A.1 D´ecomposition en valeurs singuli`eres

Toute matrice A de taille m × n avec m ≥ n peut ˆetred´ecompos´eesous la forme A = UWV T avec :

– U de taille m × n dont les colonnes sont orthonorm´ees( U T U = I ) – W une matrice diagonale de taille n dont les ´el´ements sont les valeurs singuli`eresde A – V de taille n × n telle que V T V = VV T = I

On peut montrer que les carr´esdes valeurs singuli`eresde la matrice A ´egalent les valeurs propres de AAT et que les colonnes de V sont les vecteurs propres correspondants.

A.2 Moindres carr´eset pseudo-inverse

Nous serons amen´es`ar´esoudredes syst`emeslin´eaires Ax = y. Envisa- geons la r´esolutionau sens des moindres carr´es.On cherche `aminimiser la fonction d’erreur E =| Ax − y |2= (Ax − y)T (Ax − y). On souhaite avoir :

T ∂E ∂(Ax − y) T T 0 = = 2 (Ax − y) = 2(Aei) (Ax − y) = 2ai (Ax − y) ∂xi ∂xi

o`u ai est la i`emecolonne de A. Cette relation est valable pour i = 1, . . . q. Regroupant ces q ´equations,on obtient :

AT (Ax − y) = 0 ⇔ AT Ax = AT y ⇔ x = (AT A)−1AT y La matrice (AT A)−1AT est appel´eela pseudo-inverse de U. La d´ecomposition en valeurs singuli`erespermet de calculer cette matrice de mani`erenum´eriquement plus stable. Si A = UWV T , on a :

102 ANNEXE A. RAPPELS D’ALGEBRE` LINEAIRE´ 103

(AT A)−1AT = (VW T U T UWV T )−1VW T U T = (VW 2V T )−1VWU T

= (V −T W −2V −1)VWU T = VW −1U T

A.3 Les ´equationshomog`enes

Dans le cas des ´equationshomog`enes Ax = 0, la solution x = 0 est triviale. Minimiser la fonction d’erreur pr´esent´eeci-dessus n’a de sens que si on impose une contrainte sur x. On peut montrer que sous la contrainte |x| = 1, la solution du probl`emeest donn´eepar le vecteur propre associ´e `ala valeur propre minimale de AT A. Une fois encore, la d´ecomposition en valeurs singuli`erespermet de calculer la solution de mani`erenum´eriquement plus stable. En effet, on peut montrer que les carr´esdes valeurs singuli`eres de la matrice A ´egalent les valeurs propres de AT A et que les colonnes de V sont les vecteurs propres correspondants. La solution est donc simplement le vecteur colonne de V associ´e`ala valeur singuli`ereminimale. Annexe B

Solution de l’´equation3.36

Proposition. Si, pour tout n ∈ Z ∩ [1, m],

2 (zn−1 + ∆z) zn = zn−1 − (zn−1 + ∆z) + K Alors, pour tout n ∈ Z ∩ [0, m],

2 n(z0 + ∆z) zn = z0 − n(z0 + ∆z) + K D´emonstration. On proc`edepar induction. La proposition est trivialement v´erifi´eepour n = 0. Pour 1 ≤ n ≤ m,

2 (zn−1 + ∆z) zn = zn−1 − zn−1 + ∆z + K ³ ´2 K(z0+∆z) (n − 1)(z + ∆z)2 (n−1)(z +∆z)+K = z − 0 − 0 0 K(z0+∆z) (n − 1)(z0 + ∆z) + K + K (n−1)(z0+∆z)+K 2 2 2 (n − 1)(z0 + ∆z) 1 1 K (z0 + ∆z) = z0 − − (n − 1)(z0 + ∆z) + K K (n − 1)(z0 + ∆z) + K n(z0 + ∆z) + K 2 µ ¶ (z0 + ∆z) K = z0 − (n − 1) + (n − 1)(z0 + ∆z) + K n(z0 + ∆z) + K 2 µ ¶ (z0 + ∆z) (n − 1)n(z0 + ∆z) + nK = z0 − (n − 1)(z0 + ∆z) + K n(z0 + ∆z) + K 2 n(z0 + ∆z) = z0 − n(z0 + ∆z) + K

104 Annexe C

Solution de l’´equation6.11

Proposition. La valeur de k qui rend unitaire la d´eterminant ¯ ¯ ¯ ¯ ¯x1 − k a x2 − k a x3 − k a¯ ¯ ¯ ¯y1 − k b y2 − k b y3 − k b¯ (C.1) ¯ ¯ z1 − k c z2 − k c z3 − k c lorsque −−−→ −−−−−−−−→ −−−−−−−−→ a x − x x − x 2 1 3 1 −→ b = y2 − y1  ∧ y3 − y1  6= 0 (C.2) c z2 − z1 z3 − z1 vaut ¯ ¯ ¯ ¯ ¯x1 x2 x3¯ D − 1 ¯ ¯ k = 2 2 2 avec D = ¯y1 y2 y3¯ (C.3) a + b + c ¯ ¯ z1 z2 z3 D´emonstration. On souhaite avoir ¯ ¯ ¯ ¯ ¯x1 − k a x2 − k a x3 − k a¯ ¯ ¯ 1 = ¯y1 − k b y2 − k b y3 − k b¯ ¯ ¯ z1 − k c z2 − k c z3 − k c En d´eveloppant le d´eterminant, cette ´equationpeut se r´e´ecriresous la forme

⇔ 1 = (x1 − k a)(y2 − k b)(z3 − k c) − (x1 − k a)(y3 − k b)(z2 − k c)

+ (x2 − k a)(y3 − k b)(z1 − k c) − (x2 − k a)(y1 − k b)(z3 − k c)

+ (x3 − k a)(y1 − k b)(z2 − k c) − (x3 − k a)(y2 − k b)(z1 − k c) En distribuant les diff´erents termes et en remarquant que les termes en ab, bc, ca et abc s’annulent deux par deux, on obtient

⇔ 1 = D −k a y2 z3 − k b x1 z3 − k c x1 y2 + k a y3 z2 + k b x1 z2 + k c x1 y3

−k a y3 z1 − k b x2 z1 − k c x2 y3 + k a y1 z3 + k b x2 z3 + k c x2 y1

−k a y1 z2 − k b x3 z2 − k c x3 y1 + k a y2 z1 + k b x3 z1 + k c x3 y2

105 ANNEXE C. SOLUTION DE L’EQUATION´ 6.11 106

Divisons les deux membres par k, 1 − D ⇔ = −a y z − b x z − c x y + a y z + b x z + c x y k 2 3 1 3 1 2 3 2 1 2 1 3 −a y3 z1 − b x2 z1 − c x2 y3 + a y1 z3 + b x2 z3 + c x2 y1

−a y1 z2 − b x3 z2 − c x3 y1 + a y2 z1 + b x3 z1 + c x3 y2 et regroupons les termes en a, ceux en b et ceux en c, 1 − D ⇔ = a(y z + y z + y z − y z − y z − y z ) k 3 2 1 3 2 1 2 3 3 1 1 2 + b(x1 z2 + x2 z3 + x3 z1 − x1 z3 − x2 z1 − x3 z2)

+ c(x1 y3 + x2 y1 + x3 y2 − x1 y2 − x2 y3 − x3 y1)

1 − D ⇔ = −a [(y − y )(z − z ) − (z − z )(y − y )] k 2 1 3 1 2 1 3 1 −b [(z2 − z1)(x3 − x1) − (x2 − x1)(z3 − z1)]

−c [(x2 − x1)(y3 − y1) − (y2 − y1)(x3 − x1)]

Enfin, remarquons que   a = (y2 − y1)(z3 − z1) − (z2 − z1)(y3 − y1) b = (z − z )(x − x ) − (x − x )(z − z )  2 1 3 1 2 1 3 1 c = (x2 − x1)(y3 − y1) − (y2 − y1)(x3 − x1) ce qui permet de r´e´ecrirel’´equationsous la forme 1 − D ⇔ = −a2 − b2 − c2 k D − 1 ⇔ k = a2 + b2 + c2 Annexe D

Segments et triangles

Les ´equationsd’un segment de droite et d’un triangle sont obtenues en utilisant les coordonn´eesbarycentriques. Commen¸conspar ´etablirla premi`ere.

A M B

Le point M appartiendra au segment si et seulement si : −−→ −−→ AM = kAB avec k ∈ [0, 1] −→ −→ −→ −→ ⇔ M − A = k(B − A) −→ −→ −→ ⇔ M = (1 − k)A + kB (D.1) Utilisons ce r´esultatpour ´etablirl’´equationd’un triangle.

A

M P

B C

Pour tout point P du triangle ABC, il doit exister un point M apparte- nant au segment AB tel que P appartienne au segment MC :

( −→ −→ −→ M = (1 − α)A + αB avec α ∈ [0, 1] −→ −→ −→ P = (1 − β)M + β C avec β ∈ [0, 1] −→ −→ −→ −→ ⇔ P = (1 − β)(1 − α)A + (1 − β)αB + β C ½ −→ −→ −→ −→ a ≥ 0, b ≥ 0, c ≥ 0 ⇔ P = aA + bB + cC avec (D.2) a + b + c = 1

107