Vous êtes sur la page 1sur 72

Universit Bordeaux 1, Master 1, mention Informatique,

2007/2008
INF466 - Projet de Programmation
Mmoire nal
Analyse de mouvement
humain 3D base dextraction
de squelette gomtrique
Fabrice Corlouer, Elamine Bellamine, Simon Gabet, Thomas Dumartin
4 Avril 2008
Charg de TD : Pascal Desbarats
Client : Jean-Sbastien Franco
Rsum
Lanalyse du mouvement humain est un sujet complexe de part
la varit des situations et lanatomie du corps de lindividu. En ef-
fet, le corps humain est un objet 3D, dot darticulations comportant
plusieurs degrs de libert, et capable deectuer une innit de mou-
vements vitesse variable. Cette complexit soulve un problme inter-
essant en vision par ordinateur qui est de trouver des reprsentations
simplies qui permettent danalyser et dinterprter toutes les infor-
mations quelles contiennent. Il est donc ncessaire dutiliser un mo-
dle ayant lavantage de pouvoir contenir de nombreuses informations
concernant le mouvement, et de conserver les proprits topologiques
et gomtriques de la forme analyse. De cette manire, le modle
de squelette permet de reprsenter un humain en mouvement com-
portant toutes les caractristiques cites prcdemment. Nous avons
implment des techniques intermdiaires qui sont lextraction de sil-
houette, la reprsentation volumtrique ainsi quun amincissement to-
pologique, dans le but dobtenir la reprsentation nale de notre projet
qui est le squelette cinmatique. Ces direntes reprsentations tridi-
mensionnelles du mouvement humain sont aches via une plate-forme
de visualisation graphique.
mots-cls : squelettisation, capture de mouvement, reconstruction
3D, amincissement topologique.
Abstract
The human motion analysis is a complex subject, because of the va-
rious situations and the anatomy of the persons body. Actually, the
human body is a 3D object, with articulations which have few degrees
of freedom, and which be able to do an innity of moves at variable
speed. That complexity lead us to nd simplied techniques of repre-
sentations, which allow us to analyze and interpret every informations
that it contains. It is necessary to use a model which can contains
many informations about the movement and which be able to hang on
the geometricals and topologicals properties of the considerate form.
So, the skeletal model aord to represent a human in movement with
all the attributes we talk above. In order to obtain the nal skeletal
model, we have made three intermediates techniques, the silhouette ex-
traction, the visual hulls, and a thinning algorithm to extract a voxel
skeleton. These tridimensionnals representations of human motion are
displayed by a graphical interface.
keywords : skeletal model, motion capture, 3D rebuild, voxel thin-
ning.
2
3
Table des matires
1 Introduction au domaine dapplication 9
1.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 La capture de mouvement . . . . . . . . . . . . . . . . . . . . 10
1.2.1 La capture mcanique . . . . . . . . . . . . . . . . . . 10
1.2.2 La capture magntique . . . . . . . . . . . . . . . . . . 11
1.2.3 La capture optique marqueurs . . . . . . . . . . . . . 11
1.2.4 Synthse . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.5 Les systmes de capture optique sans marqueurs . . . 12
1.3 La squelettisation . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.3 Dnitions et proprits . . . . . . . . . . . . . . . . . 14
1.3.4 Algorithme damincissement topologique . . . . . . . . 16
1.4 Domaines dapplication . . . . . . . . . . . . . . . . . . . . . 17
2 Analyse de lexistant 20
2.1 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.1 Semocap . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.2 Commentaires . . . . . . . . . . . . . . . . . . . . . . . 22
2.2 Mthodes et algorithmes . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 Extraction de silhouette . . . . . . . . . . . . . . . . . 22
2.2.2 Amincissement topologique . . . . . . . . . . . . . . . 23
2.3 Grimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4 Synthse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 Introduction au projet 26
3.1 Buts et priorits . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 Cahier des charges 30
4.1 Besoins non fonctionnels . . . . . . . . . . . . . . . . . . . . . 30
4.1.1 Domaine daction . . . . . . . . . . . . . . . . . . . . . 30
4
4.1.2 Robustesse . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.3 Vitesse dexcution . . . . . . . . . . . . . . . . . . . . 31
4.1.4 Ralisme du rsultat . . . . . . . . . . . . . . . . . . . 31
4.1.5 Extensibilit . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.6 Ergonomie . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . 32
4.2.1 Chargement dimages . . . . . . . . . . . . . . . . . . 32
4.2.2 Pr-traitement des donnes . . . . . . . . . . . . . . . 33
4.2.3 Visualisations . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.4 Changement de vue de la camra . . . . . . . . . . . . 33
4.2.5 Modication des paramtres . . . . . . . . . . . . . . . 34
4.2.6 Sauvegarde du squelette . . . . . . . . . . . . . . . . . 34
4.3 Moyens logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5 Architecture et structures de donnes 36
5.1 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . 36
5.2 Description du diagramme . . . . . . . . . . . . . . . . . . . . 38
5.2.1 Application . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2.2 Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2.3 Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2.4 Exception . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2.5 Comparaison avec larchitecture prvue . . . . . . . . 43
5.3 Diagramme de squence . . . . . . . . . . . . . . . . . . . . . 44
5.4 Structures de donnes . . . . . . . . . . . . . . . . . . . . . . 44
6 Algorithmes 46
6.1 Mthodes existantes . . . . . . . . . . . . . . . . . . . . . . . 46
6.1.1 Mthodes SAP par modlisation statistique . . . . . . 46
6.1.2 Mthode de soustraction de deux images conscutives 49
6.1.3 Mthode retenue . . . . . . . . . . . . . . . . . . . . . 50
6.2 Description de lalgorithme utilis . . . . . . . . . . . . . . . . 51
6.3 Implmentation logicielle . . . . . . . . . . . . . . . . . . . . . 54
6.3.1 ImageBack . . . . . . . . . . . . . . . . . . . . . . . . 54
6.3.2 Silhouette . . . . . . . . . . . . . . . . . . . . . . . . . 55
7 Tests et rsultats 56
7.1 Tests sur lextraction de silhouette . . . . . . . . . . . . . . . 56
7.2 Risques encourus . . . . . . . . . . . . . . . . . . . . . . . . . 61
8 Extensions 62
8.1 Etat des lieux . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2 Extensions possibles . . . . . . . . . . . . . . . . . . . . . . . 63
8.3 Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5
9 Bilan du projet 67
9.0.1 Organisation et dicultes . . . . . . . . . . . . . . . . 67
9.0.2 Utilisation des bibliothques . . . . . . . . . . . . . . . 67
9.0.3 Conlusion . . . . . . . . . . . . . . . . . . . . . . . . . 68
Bibliographie 70
A Utilisation de lapplication 71
6
Table des gures
1.1 Systme prosthtique de capture de mouvement (source : http ://www.animazoo-
europe.com/ - projet Gipsy) . . . . . . . . . . . . . . . . . . . 11
1.2 Exemple de squelette cinmatique obtenu laide de limage
correspondante (source : [MBR06]) . . . . . . . . . . . . . . . 14
1.3 Exemples de squelettes pour des formes simples. (source :
http ://fr.wikipedia.org/wiki/Squelettisation) . . . . . . . . . . 15
1.4 Illustration de lamincissement topologique : gauche la grille
de voxel reprsentant lobjet original et droite la mme grille
ayant subi lapplication de lalgorithme (source :
http ://fr.wikipedia.org/wiki/Squelettisation) . . . . . . . . . . 17
1.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1 Le modle biomcanique dvelopp par Semocap an dint-
grer les proprits spciques pour chaque personne. (source :
www.riam.org/riam/upload/posters/Semocap.pdf ) . . . . . . . 21
2.2 Capture de linterface iPoseR Semocap (source : [Kno07] ) . . 22
3.1 Schma de la structure du systme de traitement des images . 28
3.2 Schma du fonctionnement . . . . . . . . . . . . . . . . . . . . 29
6.1 Reprsentation graphique de lespace RGB. ( source : http ://xa-
vier.hubaut.info/coursmath/doc/thcoul/rgb.jpg) . . . . . . . . 47
6.2 Reprsentation graphique de lespace HSV par un cne. (source :
http ://www.aqra.ca/IMG/jpg/HSV_cone.jpg) . . . . . . . . . 48
6.3 Rsultat obtenu par une soustraction de deux images conscu-
tives.
a)image(temps t0) b)image(temps t1) c)rsultat
de la dtection du mouvement non seuill. . . . . . . . . . . . 50
7.1 Test gnration modle statistique (visible2D)
a)image originale b)modle statistique . . . . . . . . . . . . . 57
7.2 Test extraction de silhouette a)image origine b)rsultat de lex-
traction SAP (visible2D) . . . . . . . . . . . . . . . . . . . . . 58
7
7.3 Variation des seuils H,S,V
(seuilR,seuilG,seuilB,seuilH,seuilS,seuilV)
a) (0.5, 2.0, 1.0, 12.0, 25.0, 0.0) ; b) (2.0, 2.0, 2.0, 2.0, 25,
0)
c) (2.0, 2.0, 2.0, 12.0, 8.0, 0.0) ; d) (3.0, 3.0, 3.0, 10, 20,1.0) 59
7.4 application doprations morphologiques
a) 1 rosion et 1 dilatation b)2 dilatation et 2 rosions . . . . 60
7.5 application doprations morphologiques
a) 1 rosion, 1 dilatation, 2 dilatations et 1 rosion
b)1 rosion, 1 dilatation, 2 dilatations, 1 rosion, 2 rosions
et 2 dilatations . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8
Chapitre 1
Introduction au domaine
dapplication
1.1 Prsentation
L analyse de mouvement humain associe la notion de squelette
gomtrique font rfrence l analyse de formes . En eet la personne
dont le mouvement est analys peut tout fait tre identi comme une
forme, de plus la squelettisation est par dnition un outil danalyse (et de
codage) de formes, plus prcisment une reprsentation simplie pour la
reconnaissance de formes. De nos jours, nous avons de plus en plus besoin
dobtenir des informations sur la forme du corps humain, et cela dans plu-
sieurs secteurs, notamment dans la conception de vtements, dhabitacles
dautomobile, de postes de pilotage, ou encore la conception de prothses.
Depuis longtemps, les chercheurs en vision par ordinateur traitent le pro-
blme de la reconnaissance de formes base de modles.
Ces vingt dernires annes, nous trouvons dans la littrature plusieurs
travaux portant sur la reconnaissance dobjet 3D de forme libre. Les tests ef-
fectus sont raliss soit avec des images de synthse, soit dans des conditions
contrles o des problmes omniprsents dans les scnes 3D relles (e.g. le
fond, les ombrages) sont rarement pris en compte. Une nouvelle approche qui
utilise le squelette des objets comme descripteur de formes a t dveloppe
an de pouvoir prendre en comptes ces dirents problmes. Il existe de
nombreuses applications pour les squelettes dobjets 2D et 3D dans le traite-
ment dimages (codage, compression,...) et dans la vision par ordinateur en
gnral. En eet, nous retrouvons dans le squelette de lobjet lensemble de
sa structure topologique et galement la plupart des informations contenues
dans la silhouette de la forme analyse. Un autre avantage quil faut signaler,
cest le fait que de nature les squelettes ont une structure de graphe.
9
Dans cette introduction, an de comprendre lintrt de notre projet et
den dlimiter le cadre, nous allons tout dabord faire un tour dhorizon des
mthodes de capture de mouvement humain existantes. Puis nous allons
prsenter le principe de squelettisation et introduire lalgorithme damincis-
sement topologique dont nous allons nous servir. Ensuite nous tudierons les
domaines dapplication de lanalyse de mouvement humain base de sque-
lettisation an dillustrer notre travail. Enn, nous introduirons notre projet
laide des direntes mthodes et techniques que nous allons utiliser.
1.2 La capture de mouvement
Les recherches menes sur linteractivit homme-machine et la ralit
virtuelle sont lorigine de divers systmes de capture qui existent de nos
jours. Elles donnent naissance divers priphriques dentres tels que les
souris 2D et 3D, les joysticks, les crans tactiles, les tablettes graphiques, les
gants de donnes, les visiocasques, les dirents capteurs(i.e. magntiques,
optiques, ultrasons), ou encore la reconnaissance de forme. Ces techniques
ont t mises en place dans un premier temps pour instaurer un langage
gestuel direct entre lhomme et la machine, et voluent maintenant vers lac-
quisition de donnes pour la reproduction parfaite du mouvement dun tre
humain. Ainsi, que ce soit dans lindustrie du jeu, du lm, ou encore pour la
mdecine ou la biomcanique, les systmes de capture de mouvement sont
dune grande aide.
Il existe trois grandes catgories de capture de mouvement : mcanique,
magntique et optique, qui sont amplement dcrites dans la thse [Kno07].
Nous allons nous contenter ici de dresser un petit historique et un bilan
concis de ces systmes an de bien cerner le cadre de notre projet.
1.2.1 La capture mcanique
Au dbut des annes 80, Tom Calvert, professeur en informatique, xe des
potentiomtres sur un corps humain pour des tudes de chorgraphie et pour
dtecter les anomalies du mouvement du corps. A partir dun exo-squelette
constitu de potentiomtres, placs sur le corps dun tre humain, le systme
capture les angles de exion entre les articulations des dirents membres. On
les appelle systmes prosthtiques. Mme si ces systmes semblent imposants,
ils sont cependant encore utiliss en raison de leur faible cot, leur abilit
ainsi que leur facilit dutilisation. Toutefois le principal dsavantage de ce
systme reste la gne occasionne pour lacteur, ainsi il nest pas recommand
pour la capture de mouvements rapides et/ou amples.
10
Fig. 1.1 Systme prosthtique de capture de mouvement (source :
http ://www.animazoo-europe.com/ - projet Gipsy)
1.2.2 La capture magntique
En 1992, la socit Protozoa utilise de nouveaux systmes pour lanima-
tion dun personnage de dessin anim, entirement anim partir dun sys-
tme de capteurs magntiques disposs sur un acteur rel. Pour lanimation
du personnage, la capture magntique rvle son principal avantage sur la
capture optique : la visualisation en temps rel du personnage virtuel anim,
car les donnes des capteurs sont traites en temps rel. Contrairement aux
systmes prosthtiques, la capture magntique constitue un faible encom-
brement pour lacteur. De plus la visualisation des mouvements en temps
rel est un atout pour le gain de temps. Cependant il existe des contraintes,
tout dabord les objets mtalliques peuvent provoquer des imprcisions dans
les mesures, et ltendue des champs magntiques posent des problmes au
niveau de lenvironnement dacquisition.
1.2.3 La capture optique marqueurs
Les annes suivantes, les premiers systmes de capture optique voient
le jour. En 1983, Ginsberg et Maxwell ( MIT ) utilisent le Op-Eye, un des
premiers systmes de capture optique, pour leurs recherches. Ils obtiennent
en temps rel lanimation dun personnage virtuel en basse dnition, par-
tir de deux camras et de diodes places sur les membres dun acteur rel.
11
Les systmes de lpoque rvlent les premiers problmes lis au matriel
et la technique. Les camras ont une rsolution et une frquence dchan-
tillonnage trop faible. En 1989, Motion Analysis exprimente son systme de
capture optique sur la chanteuse virtuelle Dozo . Le systme a pour objec-
tif dobtenir un mouvement raliste sur lensemble du corps du personnage.
La tche savre laborieuse cause du manque dexprience et de la jeunesse
du systme de lpoque. Mais le rsultat laisse prsager un avenir certain.
De nos jours, Motion Analysis propose un des systmes les plus performants
et prcis du march.
Ces systmes fonctionnent partir de marqueurs (diodes ou pastilles) r-
chissants placs sur un acteur suivi par au moins deux cameras qui dtectent
les marqueurs. A partir des images fournies par les camras, un logiciel cal-
cule les positions 3D de chacun des marqueurs. Ce systme constitue un
faible encombrement pour lacteur qui doit juste porter de petits marqueurs.
Cependant, il possde de grosses contraintes, tout dabord au niveau de len-
vironnement, il faut un espace parfaitement contrl (fond vert / bleu), et
certaines couleurs sont proscrire an de permettre un meilleur suivi des
marqueurs (pastilles rchissantes de couleurs, diodes). De plus, en terme
de cot du matriel ncessaire, ces systmes deviennent peu rentables. Mme
sils permettent toutefois dobtenir des rsultats ables et prcis, le processus
consomme normment de temps. Les animations extrmement ralistes de-
mandent en eet une priode de post-production qui peut prendre plusieurs
jours pour une seule minute danimation.
1.2.4 Synthse
De nos jours, les systmes de capture de mouvement les plus utiliss res-
tent les systmes prosthtiques, puis les systmes capteurs optiques avec
marqueurs qui ont fait leur preuve dans le monde de lanimation. Les sys-
tmes marqueurs ont t trs largement utiliss ds les premires dcou-
vertes dans ce domaine, mais possdent actuellement de grosses dicults,
lors de la dtection, la reconstruction et le suivi des marqueurs ainsi que la
reconstruction des trajectoires des articulations du corps.
1.2.5 Les systmes de capture optique sans marqueurs
Lvolution du matriel informatique et du matriel vido sest extr-
mement acclre depuis des annes et a pouss de nombreux chercheurs a
soulever le problme de la capture de mouvement directement depuis des
vidos en nutilisant aucun marqueur. Ce systme prsente de nombreux
avantages : le cot de lacquisition en terme de moyens nanciers est nor-
mment rduit. De plus on voit disparatre les contraintes vestimentaires de
lacteur (du sportif, du patient, selon le domaine dapplication) et galement
12
les ports dquipement sur la personne. Lapproche gnrale de cette acquisi-
tion du mouvement est de considrer un simple modle cinmatique (sans les
paramtres des jonctions ou articulations ) et denregistrer ces modles
avec les donnes provenant des vidos (squences dimages) an de pouvoir
suivre ces paramtres et assurer un suivi du mouvement. La comparaison
entre les systmes marqueurs et sans marqueurs est dcrite prcisment
dans [Kno07].
Dans le cadre de notre projet, nous allons aller dans cette direction en
utilisant une mthode de capture de mouvement par systme optique sans
marqueurs. La description prcise dune technique danalyse de mouvement
humain base dextraction de squelette qui utilise ce type de systme est
dveloppe dans [MBR06]. Nous reviendrons sur cette technique dans notre
introduction au projet (cf. Chapitre 3).
1.3 La squelettisation
1.3.1 Introduction
Pour toute application ncessitant de caractriser un modle 3D par sa
forme, en particulier dans le monde de lanimation, on cherche une repr-
sentation structure qui dcrit le mieux possible la morphologie de lobjet
analys, ou dans notre cas du corps humain. Dcrire un objet par une repr-
sentation de type squelette constitue une tape importante pour certaines
applications lies au traitement des images ou la reconnaissance de formes.
En eet lavantage essentiel du squelette est de prserver, en grande partie,
la structure topologique des objets ainsi que les informations contenues dans
leur contour. Le squelette permet galement de capturer au mieux la forme
de lobjet, pour correspondre un squelette au sens anatomique. Un tel sque-
lette peut ensuite servir de support pour de multiples utilisations, comme
animer lobjet, trouver des proprits de la forme 3D, ou la comparer une
autre reprsentation an de la ranger dans une base de donnes par exemple.
De plus, les squelettes prsentent quelques proprits trs intressantes, qui
seront exposes dans la section suivante (Dnitions et proprits).
Les raisons voques au-dessus expliquent en partie pourquoi cest une m-
thode qui a gagn lintrt de nombreux chercheurs. Dans cete partie, nous
allons dabord expliquer rapidement les origines de la squeletisation. Ensuite,
nous exposerons certaines dnitions et proprits concernant la squeletti-
sation qui seront utiles la comprhension de notre projet. Enn, depuis
lintroduction du concept de squelette en tant que descripteur de formes,
plusieurs algorithmes de squelettisation ont t proposs dans la littrature.
Nous allons en tudier un en particulier connu sous le nom damincissement
13
topologique, que nous allons utiliser dans la partie nale de notre projet, et
qui constitue obtenir une reprsentation cinmatique dun squelette comme
le modle ci-dessous.
Fig. 1.2 Exemple de squelette cinmatique obtenu laide de limage cor-
respondante (source : [MBR06])
1.3.2 Historique
Le concept de squelette a t introduit pour la premire fois par H. Blum
en 1964 dans [Blu64], en vue de crer un nouveau descripteur de formes.
Il utilise le concept de feu de prairie, cest--dire, des feux provenant des
points de contour de lobjet et qui se propagent vers lintrieur vitesse
constante. Le squelette est alors form par les points o les fronts de ces
feux sintersectent. Ces points sont aussi appels points dextinction. Une
autre dnition donne par L. Calabi en 1965 considre le problme dun
point de vue topologique. Cette dnition est base sur le concept de boules
maximales. Il dnit le squelette dun objet comme tant lensemble des
centres de ses boules maximales. Une boule incluse dans un objet est dite
maximale sil nexiste pas dautres boules incluses dans lobjet la contenant
entirement.
Depuis la dernire dcennie, de nouvelles dnitions (qui seront exposes
dans la prochaine section) et approches du squelette ont vu le jour. Elles
seront exposes dans la section qui suit. Cela a permis un certain engouement
pour la technique de squelettisation. Celle-ci sest ouverte de nombreux
domaines dapplication, que nous dtaillerons dans la section 1.4.
14
1.3.3 Dnitions et proprits
Formellement, un squelette est une reprsentation gomtrique dun objet
dans une dimension infrieure. Il permet de dcrire dune manire compacte
les proprits dun objet, en particulier sa forme.
Fig. 1.3 Exemples de squelettes pour des formes simples. (source :
http ://fr.wikipedia.org/wiki/Squelettisation)
Dans le plan, le squelette dun objet est un ensemble de lignes passant
en son milieu appel axe mdian ( medial axis ). Dans un espace tridi-
mensionnel, il existe deux types de squelettes : les squelettes surfaciques
( mdial surfaces ) et les squelettes curvilignes. Les premiers sont consti-
tus dun ensemble de voxels de lobjet qui forment une surface dpaisseur
unit et les seconds sont constitus dun ensemble de voxels de lobjet qui
forment une courbe dans lespace de largeur unit, souvent appels squelettes
homotopiques. Cest de ce type de squelettes dont il sagit dans notre projet.
Les squelettes prsentent quelques proprits intressantes. La plupart sont
nonces dans [Mer04], nous allons les rappeler :
Invariance par translation et rotation : Le squelette est invariant par
translation et rotation. tant donn une translation ou une rotation
g et un objet X. Soit S(X) le squelette de lobjet X. Nous avons
S(g(X)) = g(S(X)).
Rversibilit : A partir des points du squelette et des rayons des boules
maximales, il est possible de reconstruire la forme. Ainsi la squelettisa-
tion est rversible condition davoir mmoris en chaque point p du
squelette, le rayon r(p) de la boule maximale centre en p. La fonction
r est appele fonction dtanchit.
Structure de graphe : Sous certaines hypothses de rgularit, il est pos-
sible de montrer que le squelette a une structure de graphe, o les
noeuds sont considrs comme des articulations et les artes comme
des os. Ainsi, les techniques issues de la thorie de graphes peuvent
tre appliques directement aux objets.
Homotopie : Le squelette est topologiquement equivalent lobjet origi-
nal, autrement dit il a le mme nombre de composantes connexes, le
15
meme nombre de trous et de cavits que lobjet original. Dans le plan,
deux objets homotopes ont le mme aspect et justie lutilisation du
squelette comme descripteur de formes.
Minceur : Le squelette est topologiquement mince, cest--dire quil a un
pixel dpaisseur, sauf aux jonctions pour lesquelles un pixel ne sut
pas garantir lhomotopie.
Localisation : Le squelette est situ au centre de lobjet.
1.3.4 Algorithme damincissement topologique
A lheure actuelle, il existe plusieurs manires de calculer un squelette.
Voici les principales :
Par simulation des dplacements des fronts donde dun feu de prairie
(cf. Historique).
Par extraction des lignes de crtes dans une carte de distance. Une carte
de distance est une image, ou chaque point est associ la distance
entre ce point et le bord le plus proche. Les lignes de crtes reprsentent
les maxima locaux.
Par amincissement topologique. Nous allons dtailler cette mthode
dans ce qui suit.
Par calcul analytique des axes mdians. Cette technique consiste
modliser le contour de lobjet par des objets dont le squelette est
connu (des polygones) puis rassembler les squelettes pour obtenir le
squelette global.
Les direntes techniques de squelettisation peuvent tre classes en deux
catgories. Les mthodes discrtes, telles que lamincissement topologique,
le feu de prairie , les champs de potentiel et les cartes de distances. Et les
mthodes continues, essentiellement bases sur lutilisation du diagramme de
Vorono. Dans le cas de lutilisation de cette dernire mthode, le squelette
obtenu est topologiquement quivalent lobjet car la reprsentation des ob-
jets par leur contour conserve implicitement ces notions, il est de plus centr
et n car on utilise une reprsentation continue. Cependant, cette mthode
peut poser des problmes lors des passages entre les domaines continus et
discrets. De plus, la complexit des algorithmes et les temps de calculs sont
normes pour de grandes images. On peut en revanche sintresser aux m-
thodes discrtes, plus faciles mettre en oeuvre et surtout plus rapides, et en
particulier un algorithme appel amincissement topologique (connu aussi
sous le nom de voxel thinnning ). Nous utilisons cet algorithme dans notre
projet.
16
Cet algorithme prend en entre une image volumique 3D qui est constitue
de voxels (VOlumetric piCTure ELement), la plus petite entite composant
une image 3D (tout comme le pixel dans une image 2D). Lamincissement
topologique consiste retirer au fur et mesure les voxels du contour de
la forme, tout en prservant ses caractristiques topologiques. Pour ce faire
il part du contour initial de lobjet, tudie la connexit de chaque voxel du
contour dans un voisinage, et enlve ceux dont la suppression naecte pas
la topologie de lobjet. Le squelette est obtenu en rodant itrativement les
couches frontires de lobjet (dans notre cas du corps humain). Les points
supprimables sont enlevs soit successivement, soit en parallle, ou encore
laide doprations morphologiques. Ces mthodes conduisent un squelette
homotope lobjet (ou au corps humain) par construction, mince, gomtri-
quement reprsentatif mais pas forcment centr.
Fig. 1.4 Illustration de lamincissement topologique : gauche la grille
de voxel reprsentant lobjet original et droite la mme grille ayant subi
lapplication de lalgorithme (source :
http ://fr.wikipedia.org/wiki/Squelettisation)
1.4 Domaines dapplication
Lanalyse de mouvement base dextraction de squelette gomtrique
possde de nombreuses applications dans des domaines qui ne sont pas for-
cment tous lis linformatique, comme on pourrait le penser.
Lanimation en gnral reste le domaine de prdilection de la capture
de mouvement, celle-ci tant de plus en plus utilise. Avec les grandes pro-
ductions cinmatographiques et des jeux-vidos, ainsi que pour les sries
17
tlvises, on essaie de crer des images de synthse o les personnages vir-
tuels doivent tre les plus semblables possibles aux tres humains. Ceci nest
pas juste valable au niveau de lapparence mais surtout au niveau des mou-
vements des personnes. Cependant les systmes existants, essentiellement
de capture optique, ncessitent des moyens nanciers et dquipement trs
lourds, et posent de grosses contraintes sur les conditions de travail (lieux
adquats la capture, quipements sur les personnes...).
Au niveau de la ralit virtuelle, lutilisation de capture de mouvement
laisse entendre que la reprsentation du squelette soit crdible et assez dle
par rapport lanatomie humaine. Certains programmes dentranement mi-
litaire utilisant la ralit virtuelle se servent de cette technique an de recrer
des environnements dangereux, et ainsi optimiser le dplacement des soldats
dans ces environnements.
En mdecine, la modlisation permet de voir en quoi un handicap in-
uence une consommation nergtique supplmentaire, et ventuellement de
trouver des solutions viables an de compenser ou rduire cet handicap (par
exemple une prothse plus adapte chaque personne). Certaines mthodes
de traitement et de rhabilitation du corps humain utilisent la capture de
mouvement base de squelettisation. Il y a galement des liens entre la
mdecine et lanthropomtrie, an de vrier lvolution des mouvements et
de certains membres du corps humain. Par exemple, la squelettisation peut
tre utilise pour prvenir une malformation hrditaire du membre (e.g. une
jambe) dun jeune enfant, et ainsi localiser facilement le symptme.
Dans le domaine sportif, on sintresse galement la consommation
nergtique. Le but ici est de dterminer les techniques les plus performantes
pour excuter une action, un geste, an doptimiser le mouvement dans le
but datteindre de meilleures performances physiques. Outre la recherche de
performances sportives, la squelettisation peut tre utilise pour la prven-
tion des blessures, ou encore pour prparer un retour lactivit an de
vrier les eets de soins orthopdiques sur des athltes.
Pour ce qui est du design, la capture de mouvement utilisant la squeletti-
sation a un rle jouer, principalement pour amliorer lergonomie dobjets
que lhomme utilise, de la manette de jeux-vidos aux chaussures que lon
porte. Par exemple, la socit Lectra (Cestas - Gironde) utilise cette m-
thode an de procder une dcoupe automatique prcise de vtements, en
utilisant un modle 3D cinmatique pour le test de ces textiles. Cela peut
permettre de trouver des coupes originales, et aussi dconomiser les tissus
utiliss pour la conception de vtements.
18
La biomcanique est aussi concerne, an dobtenir une meilleure com-
prhension des mouvements humains, ce qui nous permet de dvelopper des
modes mcaniques plus conformes au corps, plus dles. Le domaine militaire
sintresse naturellement de prs cette approche.
Il existe sinon quelques applications en compression de modles et ux
3D, ainsi quen architecture et en urbanisme, dans le cadre danalyse mor-
phologique, laide de la squelettisation. Le mouvement et le comportement
danimaux peut galement tre analys et compris avec cette mthode.
Fig. 1.5
Illustration des principaux domaines dapplication de la capture de
mouvement base dextraction de squelette gomtrique : (a) lanima-
tion (source : http ://yeknan.free.fr/blog/images/dappersoft/ ) (b) la
ralit virtuelle (source :http ://www.inrialpes.fr/grimage/photos/ )
(c) la mdecine (source : http ://mediatheque.ep.ch/albums-
alliance/Informatique-Communications/ ) (d) le domaine sportif
(source : http ://www.vicon.com/applications/sports.html ) (e) le design
(source : http ://technology.newscientist.com)
19
Chapitre 2
Analyse de lexistant
An de bien dlimiter les frontires de notre projet, nous nous sommes
uniquement intresss aux travaux existant dans le cadre de la capture de
mouvement optique sans marqueurs.
2.1 Interface
2.1.1 Semocap
La socit Artefacto en collaboration avec Asica LINRIA Rhne-Alpes
et luniversit de Rennes a dvelopp un logiciel nomm Semocap
1
. Ce
projet vise dvelopper un systme de capture de mouvement conomique
en terme de ressources et dquipement. Il possde des similarits avec notre
projet puisque le schma global de traitement est quasi-identique. La seule
dirence notable est que nous allons utiliser un modle biomcanique bien
moins labor que celui utilis dans le projet Semocap (gure ci-dessous).
Ce projet nous apporte des informations sur les problmes lis la capture
et la modlisation de mouvement humain.
1
http://www.artefacto.fr/semocap/
20
Fig. 2.1 Le modle biomcanique dvelopp par Semocap an
dintgrer les proprits spciques pour chaque personne. (source :
www.riam.org/riam/upload/posters/Semocap.pdf )
Semocap permet dacher plusieurs rsultats de reprsentations, comme
les images avec les silhouettes ou le modle 3D projet dans les images,
comme le dmontre limage ci-dessous. Cette gure nous donne des ides
concernant linterface de visualisation des reprsentations. Concernant lim-
plmentation des techniques de reprsentations tridimensionnelles, rien nest
clairement expliqu.
21
Fig. 2.2 Capture de linterface iPoseR Semocap (source : [Kno07] )
2.1.2 Commentaires
Linterface propose par Semocap est surement celle la plus proche de
notre logiciel, mme si elle permet de nombreux rglages supplmentaires
(e.g.sauvegarde des chiers, possibilit dappliquer des textures ou autres
taitements aux images, multiples reprsentations). Les travaux concernant
lextraction du squelette depuis une capture de mouvement sans marqueurs
sont assez rcents, cest pourquoi il nous a t dicile de trouver dautres
logiciels proposant nos caractristiques auxquels nous comparer. Toutefois,
nous avons tudi de nombreux travaux publis sur le sujet nous informant
des mthodes et algorithmes utiliser dans le cadre de notre projet. Cest
ce que nous allons voir dans la section suivante.
2.2 Mthodes et algorithmes
2.2.1 Extraction de silhouette
Principe Lextraction de silhouette, comme son nom lindique, permet
dextraire dune image la silhouette dun acteur en ne gardant que les points
appartenant son corps et colore dune couleur dirente le fond et lacteur.
Cette tape est primordiale en terme de qualit an davoir de bons rsultats
22
pour les reprsentations suivantes. Concernant cette extraction, plusieurs al-
gorithmes ont t tudis. Tout dabord, un algorithme interessant est celui
dcrit dans [TFJT]. Le but de ce projet est de pouvoir enregistrer avec trois
camras les mouvements dun acteur, pour pouvoir crer un personnage vir-
tuel aux mouvements ralistes. Une des tapes du projet est donc lextraction
de la silhouette, sur laquelle nous nous sommes atards. Pour cela, 4 ltres
ont t implments :
Dirence : cration dune image reprsentant la dirence entre limage
de fond (sans lacteur) et limage tmoin (avec lacteur).
Erosion : deux rosions conscutives permettent de supprimer les pixels
noirs entours en 4-voisinage par des pixels blancs.
Dilatation : contraire de lrosion, permet de supprimer les pixels blancs
entours en 4-voisinage par des pixels noirs.
Suppression des amas de pixels : permet de ne garder que le plus gros
amas de pixels et dupprimer le reste. Statistiquemet, la silhouette est
contenue dans cet amas. Cet algorithme rcursif est le plus dicile
implmenter.
Commentaires Cette technique, relativement simple implmenter et
faible en complexit, ne permet pas dobtenir des rsultats corrects dans
notre cas. Elle est utilise dans le cas de capture de muvement dans des
conditions bien pariculires : fond blanc, acteur habill en noir,... En eet,
nous devons utiliser un algorithme qui puisse extraire une silhouette malgr
la couleur du fond et des vtements de lacteur. Nous nous sommes alors
penchs sur la technique labore dans [Lem03]. Cette mthode correspond
nos besoins car malgr sa complexit assez consquente, elle permet dli-
miner les ombres tout en prservant la forme de lacteur. Etant donne que
cest cette mthode qui a t retenue, nous la dtaillons largement dans le
chapitre Algorithmes.
2.2.2 Amincissement topologique
Le principe de cet algorithme a t prsent dans lintroduction au do-
maine dapplication. Nous avons retenu un logiciel existant, compos de 3
modules : Binvox, Thinvox et Viewvox
2
, permettant respectivement la cra-
tion dun chier de type grille de voxel, la lecture de ce chier pour lamin-
cissement topologique de la grille quil contient, et enn la visualisation de
ces chiers. Le module Thinvox nous interesse particulirement car cest lui
qui procde lamincissement dune grille de voxels. Ce programme, dont
les sources sont consultables, se base sur la mthode aborde dans [PK99].
2
http://www.cs.princeton.edu/~min/thinvox/
23
2.3 Grimage
Les quipes Perception, Moais, Evasion et le service SED de Grenoble
Rhne-Alpes ont ralise une plate-forme immersive appel Grimage [?]. Elle
associe modlisation 3D multi-camras, simulation physique et calcul paral-
lle pour de nouvelles applications immersives 3D sans marqueurs.
Plusieurs camras vido calibres lment en continu lespace dinteraction.
Pour chaque jeu dimages acquises, le systme utilise les informations 2D is-
sues de chaque camra pour calculer un modle 3D des objets rels de la
scne. Le calcul des modles 3D seectue sans recourir des marqueurs.
Lutilisateur na pas besoin de squiper de capteurs passifs ou actifs. Le sys-
tme ne ncessite pas non plus de phase dapprentissage ou de reconnaissance
des objets prsents dans lespace dinteraction. Il nest ainsi pas limit par
les objets ou personnes quil peut reconstruire en 3D. Cest une dirence
importante de Grimage par rapport des systmes de capture de mouvement
qui permettent de suivre les marqueurs dont est quip lutilisateur, mais ne
fournissent pas de modle 3D global de cet utilisateur.
Les modles 3D des objets rels sont calculs par lalgorithme EPVH
Exact Polyhedral Visual Hull dvelopp par Edmond Boyer et Jean-
Sbastien Franco de lquipe Perception de lINRIA Rhne-Alpes. Cet algo-
rithme calcule lenveloppe visuelle des objets partir des silhouettes issues
des ux vidos. Une enveloppe visuelle est le rsultat de lintersection des
cnes issus de la projection dans lespace 3D des silhouettes 2D vues par
les camras. Lalgorithme EPVH est exact, la projection du modle 3D cal-
cul sur les images provenant des camras produit des silhouettes qui cor-
respondent exactement celles des objets rels vues par les camras. Ces
modles 3D sont ensuite envoys vers la simulation pour le calcul des in-
tractions avec les objets virtuels. Pour lachage lcran, les silhouettes
sont aussi textures par plaquage des informations photomtriques issues des
camras.
Les mthodes et techniques utilises dans le projet Grimage sont de grande
envergure et runissent plusieurs spcialits informatiques (gnie logiciel,
image multimdia, ralit virtuelle). On notera certaines similitudes avec
notre projet, notamment au niveau des algorithmes dextraction de silhouettes,
de reconstruction denveloppe volumtrique. La dirence notable rside
dans le fait que cette plateforme permet une analyse et une reconstruction
en temps rel, elle permet deectuer des simulations physiques trs prcises.
Les algorithmes utiliss sont adaptables et permettent une intgration dans
des applications interactives telles que la ralit virtuelle.
24
2.4 Synthse
La squelettisation, et de manire plus gnrale la capture de mouvement
sans marqueurs, fait encore lobjet de nombreuses recherches et exprimen-
tations lheure actuelle, en raison de sa nouveaut. Parmi ces chercheurs,
le groupe Perception de lINRIA Rhne-Alpes de Grenoble
3
est spcialise
dans linterprtation des images et vidos en terme de reprsentation visuelle
tridimensionnelle. De nombreux travaux ont donc t eectus et publis.
On pourra citer notamment larticle de Clment Mnier, Edmond Boyer, et
Bruno Ran [MBR06] ainsi que la thse de David Knossow [Kno07]. Ces dif-
frents travaux nous permettent dobtenir des informations techniques quant
aux marches suivre, aux algorithmes de squelettisation et autres mthodes
utiliser. Cependant les chanes de traitements ne sont pas les mmes pour
lamincissement topologique car nous nutilisons pas la mthode de laxe
mdian ( mdial axis [BB04] ) mais plutt une mthode damincissement
topologique ( voxel thinning ).
3
http ://perception.inrialpes.fr/
25
Chapitre 3
Introduction au projet
3.1 Buts et priorits
Dans notre projet, nous allons aborder une mthode de capture de mou-
vement par systme optique sans marqueurs. Le but de ce projet est de per-
mettre la visualisation de reprsentations tridimensionnelles via une interface
graphique. Nous allons procder en suivant un schma global de traitement
de Mnier et al. [MBR06], dont la marche suivre est explique dans la
prochaine section. Toutefois il y a une dirence essentielle entre le fonction-
nement de [MBR06] et celui de notre projet : nous utilisons un algorithme
damincissement topologique en travaillant sur des grilles de voxels an dob-
tenir le modle du squelette, alors que [MBR06] utilise la transformation de
laxe mdian ( mdial axis transform ).
Le but majeur constitue pouvoir visualiser une reprsentation du sque-
lette dune personne laide dimages reprsentant une squence vido. Luti-
lisateur du logiciel doit pouvoir visualiser les direntes tapes de la construc-
tion du squelette, savoir la silhouette, lenveloppe volumtrique de celle-ci,
et la grille de vixels associe amincie. Ces reprsentations, obligatoires an de
vrier la bonne construction du squelette gomtrique nal, doivent pouvoir
tre visualises toutes en mme temps que les images sources.
La plus grande priorit est de pouvoir visualiser au moins une des reprsen-
tations cites prcedemment travers une interface graphique ainsi que les
images sources. Lutilisateur doit pouvoir contrler la lecture de ces images
en mme temps que celle des reprsentations, que nous obtenons laide des
techniques suivantes.
26
3.2 Principe
Le point de dpart est un jeu de donnes contenant les images qui pro-
viennent de ux vido dont la position relative des camras ainsi que leurs
paramtres de projection sont connus. Dans un premier temps, nous proc-
dons lextraction de la silhouette de lhumain analyser. Pour cela, nous
utilisons dabord les images provenant du jeu de donnes ne contenant pas
lhumain que nous devons reprsenter. Nous calculons alors la moyenne des
composantes (RGB) de chaque pixel composant chacune des images. Ensuite,
nous observons les images contenant lhumain, et comparons chaque pixel de
limage avec la valeur moyenne trouve prcdemment. Ceci nous permet
donc disoler la silhouette du fond. Cette tape peut rencontrer quelques
dsagrments d au bruit dans les images, do la ncessit de pouvoir agir
sur la manire dont on compare les pixels des images contenant lhumain
par rapport aux autres. La thse [Fra05] nous fournit de nombreuses infor-
mations sur cette tape, que nous dcrivons dans le chapitre Algorithmes et
structures de donnes.
Ensuite, nous cherchons obtenir lenveloppe volumtrique partir de
lextraction de silhouette eectue prcdemment. Elle est obtenue par pro-
jection, cette notion est largement expose dans [Lau94], dont nous rappelons
le principe. Pour un moment t donn, et pour chaque camra, on projette
chaque pixel qui constitue la silhouette dune mme scne sur une grille de
voxel, laide de la matrice de projection de chaque camra contenue dans
les jeux de donnes fournis.
Puis, nous allons eectuer une opration damincissement topologique
de la reprsentation volumtrique an dobtenir un squelette intermdiaire,
comme expliqu plus en dtail dans le chapitre prcedent.
Enn, la dernire tape de la reconstruction du squelette tant trs com-
plexe, cette tche a t dnie comme optionnelle par le client. Elle consiste
a crer un modle de squelette comportant 22 degrs de libert. Puis nous
faisons correspondre ce modle avec le modle intermdiaire an daner sa
reprsentation. Lultime tape du projet est de mettre en place et visualiser
une reprsentation du squelette cinmatique susamment dle par rapport
lanatomie du corps humain. Si le temps nous le permet, nous tenterons
dintgrer dautres fontionnalits comme la possibilit dagir sur les visua-
lisations laide de paramtres comme le niveau damincissement, ou bien
denregistrer une squence du modle de squelette.
27
Fig. 3.1 Schma de la structure du systme de traitement des images
3.3 Fonctionnement
Ci-dessous, le schma du fonctionnement rsumant la description prc-
dente.
28
Fig. 3.2 Schma du fonctionnement
29
Chapitre 4
Cahier des charges
Dans ce chapitre, nous allons tout dabord exposer les besoins fonction-
nels et non fonctionnels de notre projet. Pour une meilleure clart des infor-
mations, les tests de validation ainsi que les risques sont introduits dans la
description de nos besoins. Cela permet dvaluer limportance des besoins
ainsi que leurs dicults. Ensuite, nous prsenterons les moyens logiciels qui
seront employs au cours de nos travaux. En ce qui concerne les tests des be-
soins fonctionnels nous allons utiliser des tests botes noires , de plus an
de suivre lvolution dune analyse le systme est dot de points de contrle
situs aprs chaque phase importante de lanalyse. Ces derniers points seront
abords dans le chapitre Tests et rsultats.
4.1 Besoins non fonctionnels
4.1.1 Domaine daction
Lanalyse du mouvement humain (suivi de sa reconstruction) se fait
partir dun lot dimages provenant dune scne vido prise avec plusieurs ca-
mras direntes positions. Ces images sont au format .png. Ceci est notre
domaine daction. Les paramtres des camras dont les images proviennent
sont fournis sous forme de matrice de projection (matrice 3x4) et cela pour
chaque camra. Le domaine daction est dni par des images provenant dun
ux vido, le risque tant que les images soient lourdes, et que le traitement
soit donc considrablement ralenti. Cest pourquoi il est propos de choisir
certains rglages intervenant dans la chane de traitement, comme la prci-
sion de lanalyse eectue. En eet les jeux de donnes utiliss dans le cadre
de notre projet sont assez volumineux (quelques GigaOctets). Les ressources
matrielles prvues pour le dveloppement de lapplication sont les ordina-
teurs du CREMI, cependant linstallation des bibliothques ncessaires y est
dicile, il faut donc prvoir de travailler laide de nos ordinateurs person-
nels ou utiliser des mdias amovibles (e.g. disques durs externes).
30
4.1.2 Robustesse
De plus, la robustesse est un paramtre important. Lors dun chargement
de donnes ou du traitement, le logiciel gre certaines erreurs par exceptions.
En eet le traitement est compos de plusieurs phases et il est donc impor-
tant de savoir exactement do provient l(les) erreur(s) dans la chane de
traitement au cas ou lon obtient une erreur, un rapport dincidents doit tre
ainsi gnr automatiquement. Ainsi chaque tape importante, des tests
sur la justesse des donnes sont eectus, ainsi que sur le chargement de
chiers. Le traitement par exception permet alors au logiciel dviter de se
terminer anormalement, de prvenir lutilisateur dun disfonctionnement et
des erreurs que le programme a rencontr. Ceci permet galement dobserver
les reprsentations qui nont pas provoques dexceptions.
4.1.3 Vitesse dexcution
Aussi, pour le confort de lutilisateur ainsi quune bonne perception des
mouvements, les squences des reprsentations ont une vitesse dachage
suprieure ou gale 10 images par seconde (dans le cas dune carte gra-
phique standard, de type Geforce 6600). Si lachage nest pas satisfaisant
ou trop lent pour lutilisateur, des rglages de dtails et doptimisation sont
disponibles. Enn, le client demande que le logiciel ore un temps de r-
ponse infrieur 1 seconde. A la vue des techniques actuelles, il est tout
fait possible de respecter ce temps de rponse.
4.1.4 Ralisme du rsultat
Ensuite, le but de ce logiciel et de permettre danalyser les mouvements
humains. Pour permettre une analyse pertinente, le logiciel doit assurer la
caractristique dachage suivante : les reprsentations sont ralistes vis vis
de la forme et des mouvements de lhumain analys. Cela signie quun eort
tout particulier doit tre ralis sur limplmentation des algorithmes propres
chaque reprsentation. Un compromis doit tre fait entre ce besoin et le
prcdent, car loptimisation du rsultat en terme de qualit peut accrotre
fortement la complexit de nos algorithmes, tant donn le nombre important
dimages traiter. Celui-ci est de lordre de 8000 images dans notre jeu de
donnes.
On peut facilement tester la robustesse du programme, en provoquant des
problmes volontairement. Par exemple, on peut fournir un jeu de donnes
dont les images sont au mauvais format, ou bien si lon donne des rglages
totalement incohrents. Le programme doit tre capable de continuer fonc-
tionner et de ne pas se terminer anormalement. La robustesse du programme
peut etre aussi teste en essayant des commandes qui ncessitent des initia-
lisations pralables qui nont pas t eectues, comme par exemple essayer
31
de lancer la vido avant de lavoir charge. Ce genre de problme doit tre
gr par le systme dexceptions.
4.1.5 Extensibilit
Enn, lorsque lutilisateur souhaitera tester direntes techniques de re-
prsentations qui nont pas t implmentes, lajout de ces nouvelles tech-
niques, ainsi que leurs utilisations ne poseront pas de problme, do le soucis
dextensibilit. Cela est possible notamment grce larchitecture des classes
proposes. Lutilisateur peut ainsi, sil le souhaite, appliquer un traitement
spcique un type de reprsentation sans tre oblig de modier et dadap-
ter une grande partie du code.
4.1.6 Ergonomie
Linterface est ergonomique pour un utilisateur expriment dans le do-
maine de limagerie numrique. Il est possible quun novice ncessite un
temps dadaptation an dutiliser correctement le logiciel. Linterface est
faonne de sorte que lutilisateur ait une accessibilit rapide aux direntes
reprsentations, ainsi qu lobservation de la position des camras, ou bien
le rglage des dirents paramtres (tel que la vue de laquelle on souhaite
observer la scne par exemple). An de faciliter lutilisation du logiciel, plus
particulirement pour un novice, le logiciel possde un comportement par
dfaut, cest a dire quil est possible de lutiliser sans eectuer de rglages.
Ainsi le chargement des images et des paramtres des camras seront les
seules tches obligatoires eectuer.
Lergonomie du logiciel peut tre teste travers un sondage sur plusieurs
membres du CREMI, qui pourront juger si le programme est susamment
facile dutilisation. Le sondage portera sur direntes caractristiques lies
ce besoin, telle que la facilit daccs aux commandes, la visibilit des para-
mtres courant, lecacit et la simplicit de naviguer travers les direntes
reprsentations, mais aussi la navigation dans les images du jeu de donnes.
4.2 Besoins fonctionnels
4.2.1 Chargement dimages
La mthode danalyse que nous utilisons se droule en trois phases in-
termdiaires pour nalement aboutir sur une reprsentation simplie du
personnage sous forme dun squelette. Linterface que nous proposons per-
met de visualiser les reprsentations graphiques issues des direntes phases
de lanalyse. Les squences vido qui sont analyses doivent tre au format
32
.png
1
et accompagnes dun chier texte contenant les paramtres des cam-
ras. Ce format dimage apparat comme le meilleur compromis entre lgret
et qualit, de plus il est utilis sur les plates-formes de capture multi-camras
telle que la plate-forme "Grimage"
2
.
4.2.2 Pr-traitement des donnes
Aprs avoir charg les donnes (squences vido, paramtres des camras)
lutilisateur a la possibilit de lancer une analyse immdiatement grce un
comportement par dfaut de linterface. Cela signie quun pr-chargement
des images et au moins dune partie des reprsentations doit tre fait avant
de pouvoir lancer lanalyse des images.
4.2.3 Visualisations
Au niveau de lachage, lutilisateur choisit les direntes phases quil
souhaite observer. Elles peuvent tre visualises ensemble dans une mme
fentre ou individuellement en plein cran. Cette option est juge facultative
par le client. A cela sajoute le ux vido original, celui-ci est constamment
visible en parallle des autres visualisations, il est parfaitement synchronis
avec les direntes reprsentations, de plus une analyse trame par trame
devient possible grce une bote de contrle temporel similaire un lecteur
vido standard (lecture, stop, pause, suivant, prcdent).
4.2.4 Changement de vue de la camra
Les squences utilises sont lmes avec plusieurs camras simultan-
ment, ce qui ore la possibilit davoir plusieurs angles de vue, lutilisateur
peut ainsi choisir la camra qui servira de point de vue gnral pour les di-
rentes reprsentations, pour faciliter cela les camras sont reprsentes dans
un espace 3D ce qui permet de voir trs rapidement leur emplacement. De
plus, il est possible deectuer des dplacements dans lespace 3D des scnes,
cest dire des rotations et/ou translations de camras autour dune recons-
truction an de pouvoir lobserver sous dirents angles,ainsi quune fonction
de zoom. Cela est possible avec lutilisation de la bibliothque QGLViewer.
3
1
[RFC2083]
2
plate-forme de capture multicamras sans marqueurs de lINRIA Rhnes-A1pes : http:
//www.inrialpes.fr/grimage/
3
Bibliothque en C++ base sur QT poluvant manipuler lOpenGL : http://artis.imag.
fr/Software/QGLViewer/
33
4.2.5 Modication des paramtres
En ce qui concerne la prcision des rsultats, le systme possde un com-
portement par dfaut permettant un rapport prcision/rapidit moyen. A
chaque phase de la chane de traitement certaines variables clefs agissent di-
rectement sur la prcision, lutilisateur peut donc en modier la valeur pour
aner la prcision des reprsentations. Ces rglages peuvent tre ensuite
sauvegards pour une rutilisation ultrieure. Pour des raisons de commo-
dit les informations relatives aux rglages actifs sont constamment visibles,
ainsi que la rsolution, le nombre dimages par seconde. Ce besoin est jug
optionnel par le client mais il peut petre interessant de limplmenter.
4.2.6 Sauvegarde du squelette
Enn, le rsultat et le but de lanalyse, cest dire la squence reprsen-
tant le squelette gomtrique nal, peut tre sauvegarde. Cest une fonc-
tionnalit que nous ajouterons si il nous reste du temps avant la n du projet.
Il est toujours utile de garder les rsultats pour dventuelles comparaisons
ou de futures rutilisations dans dautres applications, comme par exemple
la cration dun personnage virtuel ou dun squelette danimation partir
du squelette enregistr.
4.3 Moyens logiciels
Les squences dimages utilises pour le dveloppement sont des squences
prcalibres publiques sur le web. Elles sont disponibles sur le site de lquipe
Perception de lINRIA Rhne-Alpes : https://charibdis.inrialpes.fr.
Concernant le choix du langage dimplmentation, du fait que lon travaille
sur la bibliothque dinterface graphique OpenGL, il apparat bien plus int-
ressant de choisir le C ou le C++. De plus ce sont des langages dj rpandus
dans le domaine de limagerie numrique. Par contre, le C++ est un langage
objet, contrairement au C qui est impratif, et qui donc ne propose ni poly-
morphisme ni hritage. Dans un soucis de respect du besoin dextensibilit,
il savre plus pratique de pouvoir utiliser ces deux proprits. En eet, ils
facilitent grandement lajout de nouvelles techniques de reprsentation tridi-
mensionelle puisque les classes dj existantes ncessiteront peu de modi-
cations. De plus, nous utilisons la bibliothque logicielle QT, dveloppe en
C++, qui ore des outils an de faire notre interface graphique, et facilite
laccs aux donnes et la gestion des les dexcution. Cette bibliothque
comporte galement lavantage dune excellente portabilit.
Les traitements dimages ncessaires la ralisation du logiciel, comme le
chargement dimages partir de vido, ou lextraction de silhouette, vont
34
tre dlgus une bibliothque : OpenCV
4
. Il sagit dune bibliothque
spcialise dans le traitement dimage et la vision par ordinateur en langage
C/C++, optimise et propose par Intel pour Windows et Unix. Elle com-
prend un trs grand nombre de fonctions qui correspondent nos besoins,
des plus simples (i.e. macros daccs rapide aux pixels) aux plus complexes
(i.e. calibrage de camras)
Pour faciliter limplmentation de la visualisation, et donc de linterface,
le logiciel peut sappuyer sur une bibliothque existante : libQGLViewer.
Cest une bibliothque base sur Qt et OpenGL qui permet de grer trs
simplement la camra, la souris et louverture des fentres OpenGL. Elle
compile sur toute architecture (Unix / MacOS / Windows).
Toutes les applications et bibliothques utilises lors de ce projet sont
Open Source, e qui nous permet dutiliser les sources notre guise.
4
Open Source Computer Vision : http://opencvlibrary.sourceforge.net/
35
Chapitre 5
Architecture et structures de
donnes
5.1 Diagramme de classes
36
5.2 Description du diagramme
Comme indiqu sur le diagramme, larchitecture de notre logiciel se com-
pose de quatre parties (regroupement dune ou plusieurs classes) direntes,
que nous allons dtailler dans ce qui suit. Certaines relations entre les classes
sont colorises pour une meilleure visibilit. La couleur rouge dsigne len-
semble des classes qui dpendent de MainGUI, et la couleur bleue dsigne
lensemble des classes qui dpendent dException.
5.2.1 Application
Application est un ensemble de classes qui constitue la base de larchitecture
de notre logiciel. Cet ensemble compose linterface graphique, qui est gn-
re par la bibliothque logicielle QT. Son rle est de permettre lachage
des dirents objets (qui correspondent aux direntes tapes du traitement
ncessaire pour la reconstruction du squelette humain) en sappuyant sur
libQGLViewer
1
Application regroupe les classes en rapport direct avec la
cration de linterface, les actions la concernant et les dirents modules
dachage dinformation ou dimages. Ce dossier contient les classes Main-
GUI, ActionsGUI, Settings, Viewer et Strings.
MainGUI : Cette classe hrite de la classe QMainWindow de la biblio-
thque QT. Elle contient tous les lments ncessaires la cration et laf-
chage de linterface, comme les menus, la barre doutils, et les dirents
1
http ://artis.imag.fr/Software/QGLViewer/
38
widgets. Enn, elle associe les dirents contrles de linterface aux actions
concernes. Pour cela, nous avons spar celles-ci en deux sous-groupes, Ac-
tionsGUI et Settings. Chacune de ces classes hritent de QMainWindow.
MainGUI a des dpendances avec tous les autres chiers se trouvant dans
application pour la simple raison que chacune de ces classes participent
llaboration de linterface.
ActionsGUI : Nous avons rassembl ici toutes les mthodes permettant
dagir sur la video, cest dire son chargement, et toutes les actions en rap-
port avec la manipulation de la squence vido (play, pause, next, previous,
stop). Pour cela, ActionsGUI a des dpendances avec toutes les classes, ex-
cept les classes concernant les direntes reprsentations, puisquelles sont
gres par DataGUI. Celles-ci sont dues au fait que les actions dveloppes
ici ont besoins dinformations calcules et/ou obtenues grce aux mthodes
des autres classes (telle que le nombre dimage par seconde dni, ncessaire
pour laction play() ). Le cas de ThreadDisplay est dirent, cette d-
pendance est du notre besoin de rapidit concernant le temps de rponse
et la vitesse dachage. ThreadDisplay nous permet donc deectuer les ac-
tions de manire plus ecace. La dpendance la classe Exception a pour
simple but de rpondre notre besoin de robustesse. En eet, nous avons
besoin deectuer des relevs dexceptions quand cest ncessaire, celles-ci
tant dnit dans la classe Exception.
Settings : Comme son nom lindique, cette classe soccupe de toutes les
actions concernant les rglages. Ceux-ci concernent la vitesse dachage, et
la rsolution des images. Nous avons prfr crer une classe Settings part
an de permettre un ajout ais de nouveaux paramtres de rglages pour
rpondre notre besoin dextensibilit. De plus, nous avions prvu des r-
glages supplmentaires pour certaines formes (telle que la taille de la grille
de voxel utilise pour lenveloppe volumtrique et le squelette cinmatique),
mais par manque de temps nous navons pas pu implmenter dautres repr-
sentations que la silhouette. Cest pourquoi nous avons prfr ne laisser que
les rglages que lon utilise. Cette classe ne possde comme dpendance que
la classe MainGUI et Exception. La premire est ncessaire pour accder aux
dirents objets composant linterface. La dpendance Exception se justie
de la mme manire que prcdemment.
Viewer : An de permettre des mouvements de camras dans les dirents
modles en trois dimensions, nous avons cr une classe Viewer qui hrite de
QGLViewer. La silhouette et la squence vido de depart ne sont quen deux
dimensions, mais nous les achont galement avec Viewer, dautant plus que
les mouvements de camras (qui nont pas de rel intrt sur une image en
deux dimension) peuvent tre gs. Cette classe dnit un objet permettant
39
dallier QT et la bibliothque openGL. Cette dernire est simple dutilisation
et trs utile pour acher ce que lon souhaite lcran, aussi bien en deux
dimensions quen trois. Viewer ne comporte aucune dpendance.
ThreadDisplay : Pour obtenir un temps de rponse susament valable,
ainsi que facilit et acclrer les direntes actions de linterface li la-
chage des squences vido, nous avons cr une classe ThreadDisplay. Celle-ci
hrite de la classe de QT QThread qui gre les threads avec les objets de la bi-
bliothque QT. La classe ThreadDisplay dpend des classes MainGUI, Data
et Exception. Les objets (des Viewer) qui acheront les squences sont d-
nis dans la classe MainGUI, cest pourquoi cette dpendance est ncessaire.
La classe Data quant elle est justie par le fait que toutes les donnes des
squences sont gres par elle. Enn, dirents problmes peuvent survenir
au sein de cette classe, cest pourquoi la classe Exception est requise.
Strings : Dans le but davoir un accs simple la plupart des chaines de
caractres apparaissant dans linterface, nous avons cr une classe permet-
tant de les dnir directement. Cette classe ne possde aucune dpendance.
5.2.2 Data
Data regroupe toutes les classes permettant de rcuprer les donnes nces-
saires aux direntes tapes de la reconstruction du squelette humain ainsi
que leur gestion, et les mthodes permettant de les obtenir.
40
Data : Il nous fallait une classe permettant de grer les dirents types
de donnes, et qui donne un accs simple celles-ci pour toutes les classes.
Nous avons cr une classe Data permettant de grer toutes les images et
les rpertoires utilises pour le traitement, et qui donne un accs au nombre
dimage composant la vido, au chemin amenant au rpertoire de la video,
et aux images. Le constructeur de Data nest appel quune fois, lors du
chargement des images an de garder en mmoire dans des tableaux des
informations cites prcdemment. La classe Data ne comporte que deux
dpendances, qui sont Exception et MainGUI. La justication de celles-ci
est la mme que prcdemment. Nous avons choisi des tableaux car ils sont
simples dutilisation et susament rapide daccs pour notre utilisation.
DataGUI : Pour nous permettre de grer les direntes formes et deec-
tuer les direntes initialisations, nous avons cr la classe DataGUI. Elle
ne contient actuellement que les mthodes concernant lextraction de sil-
houette. Elle se charge de grer laccs aux objets Silhouette, ImageBack et
Data. Cette classe comporte six dpendances. Tout dabord MainGUI pour
accder certains objets de linterface, et Strings pour accder direntes
chaines de caractres apparaissant dans linterface. Puis, Exception pour g-
rer les exceptions et les acher. La classe Data est galement ncessaire, an
daccder aux images et aux rpertoires. Aussi, DataGUI dpend de toutes
les classes permettant dobtenir les direntes reprsentations, telle que la
silhouette.
Cette partie regroupe galement les dirents types de rprsentations,
qui sont galement traits comme des types de donnes . Nous avons cr
une classe objet par type de reprsentations, savoir Silhouette, VoxelGrid,
Skeleton (les classes VoxelGrid et Skeleton ne sont malheureusement quen
projet, et ne seront pas prsent ici). Les classes de celles-ci ont pour but
de les dnir et de proposer les mthodes permettant de les obtenir(e.g la
fonction extract() de la silhouette). Actuellement seule la classe Silhouette
est exploitable, les autres reprsentations nayant pas t implmentes
par manque de temps.
Silhouette : Lextraction de silhouette fait parti des reprsentations de-
mandes. Nous avons cr cette classe dans le but de construire les sil-
houettes. Cette classe contient la mthode dextraction, ainsi quune fonc-
tion permettant dobtenir les images de fond (ImageBack). Silhouette dpend
donc de ImageBack, an de pouvoir raliser lextraction, ainsi que de Data,
pour permettre daccder aux images. Nous navons pas jug utile deetuer
de relev dexceptions dans cette classe, seuls les appels aux mthodes de
Data sont susceptibles de rencontrer des problmes.
41
ImageBack : Comme nous lexpliquons dans notre chapitre sur les al-
gorithmes utiliss, nous calculons ici les statistiques et les images de fond
ncessaires lextraction de la silhouette. Pour accder aux images, cette
classe dpend de la classe Data.
Ce type darchitecture o lon divise les mthodes de traitements en sous-
classes et par type de donnes nous permet de rpondre au besoin dextensibilit.
En eet, lajout dune nouvelle mthode de traitement pour un type de don-
ne quelconque va ncessiter peu de modications dans le code. Si le type de
donne existe dj, il faudra essentiellement ajouter une classe hritant dun
type de donne existant et rednir les mthodes de traitement comme on
le souhaite. Si le type de donnes nexiste pas, il faudra en crer un nouveau
qui contiendra son tour toutes les mthodes permettant de le traiter.
Cette partie nous a pos de nombreuses dicultes, notamment parce que
les donnes traites sont nombreuses, mais galement trs diverses. De plus,
nous navons implment au nal que la partie extraction de silhouette. Par
manque de temps nous navons pu nir les classes VoxelGrid et Skeleton,
mais nous avons prfr raliser la structure que lon souhaitait mettre en
place.
5.2.3 Cameras
Nous dnissons ici des objets Cameras qui sont utiliss par les ActionsGUI.
Une liste de Cameras est cre pour une question de facilit dimplmen-
tation, en eet elle permet dobtenir le nombre de camras prsentes dans
la squence vido charge, et dassocier un numro chacune delles, an
de pouvoir les grer individuellement. La classe Cameras comporte deux d-
pendances, Exception et MainGUI, justies de la mme manire que pour
Settings.
42
5.2.4 Exception
An de rpondre notre besoin de robustesse, nous avons implment plu-
sieurs classes dexceptions. Elles sont actuellement au nombre de six, mais en
ajouter de nouvelles de poseraient pas de soucis. Ces exceptions se contentent
de composer un message derreur. Chacune de ces classes hrite de Exception,
an de gnraliser le traitement. La classe Exception se charge dacher le
message derreur dans le rapport dincident (onglet Incidents Report de
linterface). Les mthodes et fonctions des classes prcdentes peuvent ainsi
lever des exceptions contenues ici.
5.2.5 Comparaison avec larchitecture prvue
Larchitecture prvue initialement na pas t totalement respecte. En
eet, nous avions prvu que ce soit la partie application qui gre les ex-
ceptions, alors que la plupart nos classes en ont besoin. Aussi, nous avions
prvu une classe abstraite de forme. Nous avons vite oubli cette ide, et
nous avons simplement cr une classe par reprsentation, chacune delle h-
rite de la classe Data. Par manque de temps nous navons implment que
la classe Silhouette. Peut-tre avec plus de temps nous aurions mis en place
une gnricite dans lutilisation des direntes reprsentations, mais nous
avons prfr assurer lutilisation de la silhouette plutt que de commencer
mettre en place une classe gnrique. Toutefois cela reste un objectif pour
lusage futur de notre application.
43
5.3 Diagramme de squence
Le diagramme de squence suivant prsente les direntes tapes qui se
droulent durant un chargement de squence vido.
5.4 Structures de donnes
Tout dabord, du lutilisation du langage C++, nous avons t amens
utiliser lorsque ctait ncessaire les types de donnes de la STL ( Stan-
dard Template Library ), en particulier le type string qui est compatible
avec le type QString de QT. Au lieu dutiliser des tableaux, nous avons tent
dutiliser des vector de la STL, seulement laccs et laectation dune va-
riable dans un tableau ont t plus aises, cest pourquoi nous utilisons des
tableaux, mme si ils nont quune seule dimension.
An de nous familiariser avec QT, nous avons utilis autant que possible
les dirents types que proposent cette bibliothque, par exemple pour laccs
aux chiers, avec QDir, QFile et QTextStream qui proposent des fonctions
appropries aux traitements voulus. De plus les fonctions QT permettent de
grer facilement les erreurs, ce qui participe notre besoin de robustesse.
Bien entendu, pour la cration de linterface, nous avons utilis un grand
44
nombre dobjets de la bibliothque QT, ce qui nous a permis de rpondre
notre besoin dergonomie.
En ce qui concerne le processus de calcul des reprsentations, nous avons
exploit un grand nombre de structure de la bibliothque OpenCV, la plus
utilise tant IplImage*, qui est la structure gnrale dune image sous OpenCV.
Ceci nous a permis de facilement raliser des traitements sur les images. De
plus les nombreux paramtres de cette structure nous permettent de jouer
sur la qualite des images (telle que le nombre de bits codant chaque pixel) ce
qui nous permet, travers des tests de trouver un compromis entre qualite
du rsultat et vitesse dexcution.
45
Chapitre 6
Algorithmes
Dans cette section nous allons aborder les direntes mthodes dextrac-
tion de silhouette bases sur une soustraction de larrire-plan (SAP) par
modlisation statistique. La soustraction darrire-plan forme une grande fa-
mille de techniques de detection de mouvement. De plus, elle est une des
plus utilises cause de sa simplicit algorithmique et de sa complexit suf-
sament acceptable pour lutilite quon en a.
Nous allons uniquement prsenter les algorithmes dextraction de silhouette
et non pas ceux portant sur les autres reprsentations comme cela tait prvu
car nous navons pas pu les implmenter.
6.1 Mthodes existantes
Dans cette section nous allons prsenter plusieurs techniques dextrac-
tion de silhouette, chacune dentre elles possdent des performances et une
complexit direntes.
6.1.1 Mthodes SAP par modlisation statistique
Le principe de ces techniques reposent sur une estimation statistique de
la scne, la silhouette sera detecte par la comparaison dune image test, dite
tmoin , et du modle statique calcul auparavant. Lutilisation de cette
mthode ncessite tout de mme certaines contraintes, les camras utilises
pour lmer la scne doivent tre immobiles, de plus la scne doit rester
statique (il ne doit pas y avoir de changement dans la scne (le fond)). Les
variations de luminosits sont tolres dans la mesure o elles ne sont pas trop
brutales. De plus cette mthode possde plusieurs types dimplmentation
qui varient selon les capteurs utiliss pour capturer la scne.
46
Visible (2D) : Cette catgorie contient des mthodes de soustraction
darrire-plan utilisant des images 2D dans le spectre visible. Un des mo-
dles de couleur le plus frquemment utilis pour la modlisation statistique
est le RGB. Cet espace de couleur est modlis par un cube o chacun des
axes du rfrentiel reprsente une composante de base, soient le rouge (R),
le vert (G) et le bleu (B) comme le montre la gure ci-dessous. Une couleur
particulire est donc un point lintrieur (ou aux frontires) du cube et co-
de par trois nombres pouvant prendre une valeur comprise dans lintervalle
[0, 255].
Fig. 6.1 Reprsentation graphique de lespace RGB. ( source : http ://xa-
vier.hubaut.info/coursmath/doc/thcoul/rgb.jpg)
La technique de base consiste modliser larrire-plan partir de plu-
sieurs images acquises squentiellement. Pour chaque pixel de limage, ainsi
que pour chacun des canaux (R, G et B), une moyenne et un cart-type
sont calculs. Chaque pixel est classi comme appartenant la silhouette
ou au fond. Lorquun pixel test doit tre classi, il faut tout dabord
lui soustraire la moyenne correspondante dans le modle statistique. Il sera
alors tiquet comme un pixel appartenant la silhouette seulement si la
valeur absolue du rsultat dpasse un certain multiple de lcart-type corres-
pondant.
Dautres espaces de couleurs peuvent tre utiliss pour la modelisation
darrire-plan, comme YUV ou bien HSV. Ce dernier est souvent utilis pour
la dtection de silhouette pour son invariance la luminosit, il est represent
par un cne (voir gure ci-dessous). Laxe principal V (Value) reprsente la
luminance, elle varie entre 0 et 100%; langle procure la couleur pure (teinte)
47
H (Hue) mais peut tre normalis et varier entre 0 et 100%. La distance par
rapport laxe central fournit la saturation (i.e intensit de la couleur) S
(Saturation) parfois appele puret .
Fig. 6.2 Reprsentation graphique de lespace HSV par un cne. (source :
http ://www.aqra.ca/IMG/jpg/HSV_cone.jpg)
Dautres mthodes de SAP par modlisation statistique existent mais ne
sont pas traites ici puisque leurs gains de performance et de complexit sont
trs nettement ngligeables.
Thermographie infrarouge (2D) : Dans cette mthode dextraction on
utilise des images en niveau de gris en entre. La valeur des pixels repr-
sentent les tempratures observes dans la scne et captures par un proced
de thermographie infrarouge. En ce qui concerne les algorithmes de dtection
et de modlisation, ils sont quasiment identiques mis part lespace de cou-
leur. En eet ici on ne traite plus quune seule composante ce qui simplie
le traitement de limage. Le point fort de cette mthode est son invariance
la luminosit, car les valeurs reprsentent les tempratures observes et un
changement de luminosit nagit pas sur ces valeurs, ce qui rend cette m-
thode robuste un changement dclairage pendant la capture de la scne,
permettant ainsi une utilisation nocturne. Son point faible rside dans le fait
que le matriel ncessaire pour eectuer une capture thermographique infra-
rouge est trs couteux. Depuis quelques annes des nouveaux systmes plus
abordables commencent apparatre et permettront dans quelques annes la
conception de systmes thermographique infrarouge un prix relativement
abordable. De plus les images captures ont une rsolution trs faible ce qui
provoque une perte importante dinformation de limage.
48
Information de profondeur (3D) : Lutilisation dinformations tridi-
mensionnelles (e.g capteur stroscopique) permet la ralisation dune sous-
traction darrire-plan trs ecace. Pour cette mthode nous avons besoin,
comme pour les mthodes prcdentes, de calculer un modle statistique de
larrire-plan. Dans ce cas le modle statistique va contenir des valeurs de
distances entre les direntes composantes de la scne et la camra. Un point
sera classi comme appartenant la silhouette lorsquil sera une distance
dirente de celle trouve dans le modle statistique. Cependant cette m-
thode necssite normment de puissance de calcul et du matriel spcialis
et trs couteux.
6.1.2 Mthode de soustraction de deux images conscutives
Cette mthode est extrmement simple et possde une complexit ex-
cellente, son principe est simple, il sut de faire une soustraction de deux
images conscutives. Plus prcisement on soustrait une image acquise un
instant T
n
par une autre prise linstant T
n+k
, o k vaut gneralement 1.
Sil ny a aucun mouvement dans limage T
n+k
, limage resultante va tre
vide, ce qui sexplique par le fait quil ny a pas de changement radical de
couleur et dintensit des pixels. Ces deux images sont quasiment identiques,
la seule dirence quelles possdent est du au bruit gnr par les equipe-
ments de capture. Dans le cas o une image contient un mouvement la valeur
des pixels frontires devraient changer radicalement de valeur ce qui aura
pour rsultat de faire apparatre les mouvements eectus dans la scne.
49
Fig. 6.3 Rsultat obtenu par une soustraction de deux images conscutives.
a)image(temps t0) b)image(temps t1) c)rsultat de la dtection
du mouvement non seuill.
Cette mthode possde de nombreux avantages, elle ncessite trs peu
de ressources en terme de puissance de calcul. De plus elle ne ncessite au-
cune initialisation de modle contrairement aux mthodes statistiques. Ceci
la rend trs rapide, une soustraction demandant trs peu de calcul, cette m-
thode serait donc parfaite au niveau du temps dexcution et de la complexit
pour une utilisation en temps rel. Cependant les rsultats obtenus ne sont
pas aussi loquants que ceux utilisant un modle statistique darrire-plan.
Pour pouvoir exploiter ces rsultats et an de dterminer une silhouette, un
traitement supplmentaire, plus particulirement un seillage, est indispen-
sable. Malgrs cela, la qualit du rsultat nest pas assez satisfaisante pour
que nous retenions cette mthode.
6.1.3 Mthode retenue
Pour determiner quelle mthode nous allons utiliser, un compratif des
avantages et inconvenients des direntes mthodes est necessaire, bien quau-
cune dentre elles ne respecte compltement les exigences de nos besoins.
Nous allons voir laquelle sen approche le plus.
Parmi les mthodes compares ici nous pouvons dj exclure la mthode
SAP (infrarouge 2D), les contraintes matrielles nous empchant de lutili-
ser. Nous avons besoin dimages captures avec un equipement dimagerie
infrarouge, hors nous travaillons avec des images RGB. En ce qui concerne
la mthode SAP (visible 3D), elle respecte nos besoins en ce qui concerne
50
Mthode Avantages Inconveniants
SAP - Algorithme peu complexe - Ombres non rejetes
- Rsultats clairs - Initialisation/scne statique
(visibe 2D) - Classication simple
SAP - Idem (Visible 2D)
Thermographie - Eclairage faible ou nul - Initialisation/scne statique
(infrarouge 2D) - Robustesse leclairage - Cot lev du matriel
- Robustesse aux ombres - Faible rsolution des images
SAP
information de - Information de profondeur -Initialisation/scne statique
profondeur -Robustesse aux ombres - Complexit et calculs
(visible 3D) - Plusieurs camras
Soustraction -Flexibilit dutilisation - Mouvement obligatoire
dimages - Souplesse dinitialisation - Dtection incomplte
conscutives - Faible complexit de - Ombres non rejetes
l algorithme de base
Tab. 6.1 Tableau comparatif des direntes mthodes de dtection de
silhouette
llimination des ombres et sa prcision, mais cependant sa complexit leve
et la puissance de calcul ncessaire son utilisation ne correspond pas nos
critres. La dtection de la silhouette par soustraction dimages conscutives
possde dexcellents avantages tant sur le plan de la souplesse dinitialisation
que sur le plan de la faiblesse de la complexit de son algorithme. Cependant
le manque de prcision de sa dtection est un dfaut trop important pour
quon la retienne. Nous allons donc utiliser la SAP par modlisation statique
2D, ceci dans le spectre visible de lespace RGB. A cette SAP, on associe une
SAP (visible 2D) dans lespace HSV, an de supprimer les ombres.
6.2 Description de lalgorithme utilis
La mthode retenue de soustraction darrire-plan regroupe les tech-
niques bases sur lutilisation dimages 2D dans le spectre visible. Celle-ci
apparait comme la plus interessante pour notre projet. Lalgorithme de sous-
51
traction darrire-plan (visible 2D) possde deux tapes importantes. Tout
dabord une initialisation obligatoire de notre modle statistique puis une
dtection de la silhouette. Il est important de prciser que les donnes que
nous allons calculer vont tre stockes dans des images, rendant ainsi leur
accs plus facile.
Initialisation : Linitialisation possde deux phases. Dans un premier
temps nous allons modliser larrire plan avec les N premires images de
la squence vido. A partir de ces images, on calcule lintensit moyenne
de chaque canal de chaque pixel. La formule (1.0) nous permet de calculer
lintensit moyenne dun pixel donn .

c
(x, y) =
1
N

N
i=0
I
ic
(x, y) (1.0)
o I est la Iime image dinitialisation , N quantits dimage utilises, c
le canal slectionn.
Ensuite nous allons calculer lcart-type pour chaque pixel (i.e pour
chacun de ses canaux).Cet interval va nous servir de seuil de dtection dans
la second tape. Cette opration ncessite habituellement le stockage des N
premires images. Pour contourner cette contrainte, reduire le consommation
despace mmoire et la puissance de calcul, deux accumulateurs sont utiliss.
Soient S(x, y) pour stocker la somme des intensits des pixels et SC(x, y)
pour emmagasiner la somme des carrs. Ces deux accumulations vont tre
executes successivement ce qui ne ncessitera donc quun seul des N images
utilises pour modliser larrire-plan.
Une fois cette phase nie, les carts-types peuvent alors tre calculs en
appliquant lquation 1.1. Par ailleurs, nous rutilisons S(x, y) pour le calcul
de SC(x, y) ce qui nous vite des oprations supplmentaires et superues.

c
(x, y) =

SC
c
(x,y)
N
(
S
c
(x,y)
N
)
2
(1.1)
Extraction de lavant-plan : Pour extraire une silhouette dans une image,
il faut dabord lui soustraire le modle de larrire-plan. Chaque pixel dont
la dirence en valeur absolue dpasse la valeur est ensuite classi
comme tant un pixel appartenant la silouette. La variable reprsente
une certaine fraction de lcart-type. Ce paramtre va nous permettre de
xer un niveau dexclusion, rendant lextraction plus ou moins prcise selon
la valeur de ce paramtre. Cette valeur sera situe dans linterval [2.0,4.0],
passer outre cet interval engendrera une perte de prcision signicative. Un
masque de la silhouette peut alors tre gnr pour chaque canal laide de
lquation 1.2 :
m
c
(x, y) =

1 si |I
c
(x, y)
c
(x, y)| >
c
(x, y)
0 autrement
(1.2)
52
o m
c
(x, y) reprsente le masque de la silhouette pour un canal
c
et
I
c
(x, y) limage dentre analyser.
Dans cette quation nous reprsentons le masque de la silhouette pour un
seul canal, dans notre projet nous utilisons des images avec 3 canaux (RGB),
nous allons donc combiner les trois masques m
r
(x, y), m
g
(x, y),m
b
(x, y)
laide dun oprateur ET logique. Ainsi lorsque lappartenance dun pixel
est dtecte sur les 3 canaux on classie le pixel comme appartenant la
silhouette.
M(x, y) = m
r
(x, y) m
g
(x, y) m
b
(x, y) (1.3)
Une fois cette opration complte nous allons nous attaquer la sup-
pression des ombres. Pour ce faire nous allons convertir limage traiter
et le modle statistique darrire-plan dans lespace HSV. Nous allons donc
soustraire de notre nouvelle image traiter le modle statistique converti
dans lespace HSV. Les pixels ombrs devraient possder une couleur quasi-
identique avec une luminosit plus faible. Nous allons utiliser la formule 1.4
pour complter le masque de la silhouette.Ici
m
h
(x, y) = |I
h
sv
h
(x, y)
h
sv
h
(x, y)| < seuilH
m
s
(x, y) = |I
h
sv
s
(x, y)
h
sv
s
(x, y)| < seuils
m
v
(x, y) = |I
h
sv
v
(x, y)
h
sv
v
(x, y)| > seuilV
o m
h
(x, y) reprsente le masque hsv de la silhouette pour le canal H(teinte),
m
s
(x, y) reprsente le masque hsv de la silhouette pour le canal S (Saturation)
m
v
(x, y) reprsente le masque hsv de la silhouette pour le canal S (Luminance)
I
h
sv
h
(x, y) limage dentre dans lespace HSV pour le canal H.
I
h
sv
s
(x, y) limage dentre dans lespace HSV pour le canal S.
I
h
sv
v
(x, y) limage dentre dans lespace HSV pour le canal V.
M
h
sv(x, y) =

0 sim
h
(x, y) m
s
(x, y) m
v
(x, y)
1 autrement
(1.4)
Les seuils ont taient xs de manire avoir un rendu maximal, seuilH=12,
seuilS=25, seuilV=0.
Une fois ces deux oprations compltes, il reste ncessaire deectuer
certaines oprations morphologiques an dliminer le bruit et les fausses
dtections. Pour ce faire, nous appliquons une rosion puis une dilation,
puis, deux dilatations et deux rosions, et nalement deux rosions et deux
dilations. Lors de nos tests, nous nous sommes rendus compte que lapplica-
tion de deux rosions suivi de deux rosions supplmentaires navait pas les
53
eets que quatre rosions successives. De ce fait le nombre doprations mor-
phologiques se trouve lev, ce qui a des consquences sur la complxit de
notre algorithme. Finalement, lcart-type et le modle statistique ne sont
pas ajust ou mis jour pendant lexcution de lalgorithme, mis part
lorsque lon change le nombre dimages que lon utilise pour initialiser le
modle statistique.
6.3 Implmentation logicielle
An de raliser la soustraction de larrire-plan, nous avons cr deux
classes C++ en utilisant certaines fonctions de la bibliothques OpenCV
dIntel, la classe ImageBack et la classe Silhouette.
6.3.1 ImageBack
La classe ImageBack possde les fonctions ncessaires pour initialiser
et mettre jour le modle statistique. An de pouvoir interagir avec cette
classe, certaines fonctions ont t cres. Principales fonctions publiques :
On rappelle que le modle statistique ainsi que les carts-types sont sto-
cks dans des image de type IplImage* (type de la bibliothque OpenCV).
getIntervalImage : Rcupration de limage contenant les carts-types.
getAverageImage : Rcupration du modle statistique.
getAverageHsvImage : Rcuperation du modle statistique converti
dans lespace HSV.
getBgImage : Rcuperation dune image de fond ou le personnage nap-
parat pas. On lui applique une extraction, puis une soustration de
celle-ci sur le masque de la silhouette nous permet de supprimer un
grande partie des bruits.
setBgImage : Extraction eectue sur une image ne contenant aucun
acteur, an dobtenir un masque des bruits les plus persistants.
setNbrOfBgImages : Modie le nombre dimages utilis pour initialiser
le modle statistique, ce qui nous permet de mettre jour lensemble
des statistiques de larrire-plan
Toutes ces statistiques sont calcules linitialisation et sont conserves
en mmoire pendant toute la dure de lutilisation de lapplication.
Optimisation : Il faut rappeler que la scne a t capture sous plusieurs
angles (plusieurs camras), ce qui implique que pour chaque camra un mo-
dle statistique, un cart-type seront calcul. Ceci rend linitialisation plus
longue et plus complexe, lutilisation de threads devrait nous permettre dac-
croitre la vitesse dinitialisation.
54
6.3.2 Silhouette
Cette classe contient les fonctions pour extraire une silhouette, elle contient
une seul fonction publique. La premire extraction se fait lors de lappel au
constructeur qui va retourner le masque de la silhouette. La fonction Upda-
teSilhouette(uint newImgCpt) ; va nous permettre dincrmenter le numro
de limage traiter.
Optimisation : Lapplication successive doprations morphologiques sur
le masque augmente le temps de calcul et donc la complexit de cette classe,
il nous a parut vident quune nouvelle mthode de nettoyage du bruit nous
permettrait de rduire considrablement la complexit et le temps de calcul
dune extraction.
55
Chapitre 7
Tests et rsultats
7.1 Tests sur lextraction de silhouette
Dans cette section, nous allons pouvoir observer quelques rsultats obte-
nus avec la mthode de soustraction darrire-plan par modlisation statis-
tique (SAP visible 2D), ainsi que certains tests eectus en faisant varier les
paramtres de notre algorithme.
Dans un premier temps, nous verions si la SAP fonctionnne correcte-
ment.
56
Fig. 7.1 Test gnration modle statistique (visible2D)
a)image originale b)modle statistique
On gnre le modle statistique on voit bien ici quil est calcul correc-
tement il ressemble beaucoup limage originale, on ne tient pas compte du
personnage mais de larrire-plan. Quelques lgres dirences apparaissent
sur la partie infrieure de limage au niveau du cercle blanc. Ces petites dif-
frences sont normales, il faut se remmorer que le modle statistique est la
moyenne de toutes les images de fond. Et ces dirences correspondent
aux bruits gnrs par les camras.
Extraction de silhouette.
Nous appliquons une extraction sur une squence contenant un tre hu-
main, ainsi nous allons pouvoir observer le resultat de la mthode SAP visible
2D.
57
Fig. 7.2 Test extraction de silhouette a)image origine b)rsultat de lex-
traction SAP (visible2D)
On peut observer le rsultat sur limage b), on constate que la silhouette
est eectivement extraite mais cependant les ombres rsistent notre m-
thode dextraction. Pour la suite de notre projet nous avons besoin dextraire
des silhouettes de bonnes qualites o lombre napparait pas, nous allons
utiliser les images de lespace HSV (image originale en HSV et modle sta-
tistique en HSV). Pour que les deux methodes se compltent on va inclure
le test sur les images HSV dans le test des images RGB tels que :
si M(x,y) = 1 (quation 1.3)
alors
si M_hsv(x,y) =0 (quation 1.4)
alors I(x,y) appartient silhouette
sinon I(x,y) nappartient pas silhouette
finsi
sinon I(x,y) appartient silhouette
finsi
I : Image dentre M_hsv : Masque HSV de la silhouette M : Masque RGB
de la silhouette
58
Fig. 7.3 Variation des seuils H,S,V
(seuilR,seuilG,seuilB,seuilH,seuilS,seuilV)
a) (0.5, 2.0, 1.0, 12.0, 25.0, 0.0) ; b) (2.0, 2.0, 2.0, 2.0, 25, 0)
c) (2.0, 2.0, 2.0, 12.0, 8.0, 0.0) ; d) (3.0, 3.0, 3.0, 10, 20,1.0)
On voit bien sur ces gures les eets des seuils sur la prcision de la sil-
houette, le seuil S agit plus particulirement sur la detection de lombre plus
il est petit et plus lombre est concidre comme appartenant la silhouette,
le seuilH agit plus particulirement sur larrire-plan lorquil est trop petit,
il laisse apparatre des pixels de larrire-plan alors que sil est trop grand le
rsultat sera trs dgag.
nettoyage des bruits
An dobtenir une silhouette dune bonne prcision nous allons appliquer
59
des oprations morphologiques sur cette dernire an den supprimer un
maximum.
Fig. 7.4 application doprations morphologiques
a) 1 rosion et 1 dilatation b)2 dilatation et 2 rosions
60
Fig. 7.5 application doprations morphologiques
a) 1 rosion, 1 dilatation, 2 dilatations et 1 rosion
b)1 rosion, 1 dilatation, 2 dilatations, 1 rosion, 2 rosions et 2 dilatations
On se rend compte que selon lordre dans lequel nous appliquons ces
transformations, le rsultat ne sera pas le mme. Nous nous sommes aussi
aperu que eectuer deux oprations successives
7.2 Risques encourus
La ralisation dun projet dune telle envergure pour la premire fois dans
notre scolarit nous fait faire face une srie de risques. Le risque majeur
dun tel projet est justement de ne pas arriver le nir. Cest malheuresement
notre cas. Nous reviendrons sur ce risque dans le chapitre Bilan
61
Chapitre 8
Extensions
8.1 Etat des lieux
A ce jour, certaines fonctionnalits sont compltes, mais malheuresement,
dautres non. Les fonctionnalits ci-dessous sont compltes :
Le chargement des images.
Lachage des images.
Lachage de la silhouette.
Le changement de vue de la camra.
Le chargement des paramtres de calibration des camras.
Seulement, par manque de temps et cause de la dicult du projet que
nous avons mal gr, nous navons pas pu en arriver bout. Dans le chapitre
suivant, nous expliquons nos dicults et les raisons du retard que nous
avons pris dans le dveloppement de lapplication.
Voici la liste des fonctionnalits prvues mais non implmentes, ou encore
incompltes :
Les mthodes de reprsentations 3D restantes : reprsentation volum-
trique, grille de voxel amincie et squelette gomtrique.
Lachage de ces visualisations.
Laectation des rglages. Nous avons nanmoins implment le coeur
des rglages avec des fonctions de sauvegarde, de chargement, de mo-
dication des paramtres, mais par manque de temps et parceque ce
ntait pas une priorit, nous navons pas encore pu raliser laecta-
tion des rglages sur les visualiseurs.
Nous avions prvu une checkbox an de pouvoir mettre une des
reprsentations en plein cran, mais nous le lavons pas implment.
Toutefois nous lavons laiss dans linterface pour un usage ultrieur.
62
Comme vous pouvez le constater, nous navons pas encore eu le temps
dimplmenter des fonctionnalits importantes pour lextraction du squelette.
Nous allons tout de mme essayer dajouter quelques fonctionnalits dici la
clture dnitive du Projet de Programmation.
8.2 Extensions possibles
Malgr le manque de fonctionnalits et la dicult dimplmentation,
nous prvoyons de revenir sur le projet dans un avenir proche, la vue de
lintret de ce sujet. Notre but sera donc simplement de nir le dveloppe-
ment du logiciel tel que nous lavions prvu. Nous pensons aussi intgrer
une hirarchie de threads pour le calcul des reprsentations acher, an de
permettre un pr-chargement et un achage plus rapide compar au temps
de rponse actuel. Une fonctionnalit interessante serait de pouvoir enregis-
trer nimporte quelle reprsentation sous forme dimages an de construire
un ux vido lisant les images. Ceci serait prvu en vue dune rutilisation
du squelette gomtrique en squuelette danimation par exemple.
63
8.3 Planning
Nous avons prouv quelques dicults respecter le planning initia-
lement annonc. Tout dabord, lapprentissage des bibliothques OpenCV,
QGLViewer et QT nous a pris un temps bien plus important que prvu. Dans
un premier temps, la bibliothque OpenCV, meme si une documentation re-
lativement dtaill existe, elle nest pas particulirement claire, ni accessible.
Ensuite, QT et QGLViewer nous ont pos des dicults du fait que ce sont
des outils rcents. De ce fait, les documentations trouves ne correspondent
pas toujours avec les versions que lon utilise, ou bien ne sont pas susa-
ment prcises. De plus, nous navions fait que trs peu de programmation en
langage C++, quelques subtilites qui dirent du langage JAVA (que nous
avions beaucoup plus utilis auparavant) ou du langage C nous ont pris du
temps supplmentaire.
Chapitre 9
Bilan du projet
Aprs avoir travailler sur ce projet plusieurs mois, nous revenons sur les
direntes tapes de sa production, de ce que nous sommes satisfait davoir
accompli et ce que nous aurions voulu faire direment.
9.0.1 Organisation et dicultes
Le PdP (Projet de Programmation) nous a mis pour la premire fois de-
puis le dbut de nos tudes dans une relle situation de projet long terme
(relatif la dure des semestres). Contrairement aux projets que nous avions
eectu prcdemment, certains problmes rcurrents, telle que la diculte
sorganiser et plannier ecacement les direntes tches aectuer, ou
bien le soucis du travail en groupe, se sont avrs bien plus pnalisant qu
laccoutum. En eet, nous avons surement mal jug la quantite de tra-
vail eectuer, ou plus exactement, sous-estim la dicult des direntes
tches. Par exemple, nous avions initialement prvu que lalgorithme dex-
traction de silhouette et toute la classe la concerne serait achevs en un peu
plus dune semaine. Or, les direntes mthodes dextraction auquelles nous
avions pens nont pas donn de rsultat susament convaincant. Il nous a
donc fallu trouver direntes faon de procder, pour nir par trouver celle
actuellement implmente. Ensuite, nous navions jamais eectu de travail
en quipe quatre, tous les autres projets que nous avions lhabitude de
faire taient raliss deux. La rpartition des tches na certainement pas
t aussi ecace quil aurait fallu. Il nous est arriv plusieurs fois de nous
retrouver travailler plusieurs sur une mme classe, au lieu de disperser
de manire plus judicieuse les eectifs.
9.0.2 Utilisation des bibliothques
Les bibliothques que nous avons utilises, savoir principalement QT4
et OpenCV, furent diciles apprhender. Leur apprentissage fut laborieux,
mais reprsente une des satisfactions du projet. En eet, mme si certaines
67
dicultes se posent toujours quant leur utilisation, il savre quelles nous
seront trs certainement utiles prochainement. De plus, nous suivons tous
actuellement un cursus en master Image&Son, ces bibliothques sont donc
idales pour lorientation que nous avons choisi.
9.0.3 Conlusion
Ce projet fut trs enrichissant, pour les points vus prcdemment, et
principalement pour la dcouverte du travail et de limplication ncessaire
pour un projet consquent. Le temps est un facteur primordial, que lon
se doit de maitriser an de pouvoir eectuer tout le travail prvu. Nous
regrettons seulement de ne pas avoir pu raliser toutes les fonctionnalits
que nous avions prvu, limitant quelque peu lusage de lapplication. Le
projet nous ayant vivement intrss, nous aurions voulu disposer de temps
supplmentaire an dachever toutes les fonctionnalits initialement prvues,
dautant plus que nous nous en sentons capables.
Bibliographie
[BB04] D. Brunner and G. Brunnett. Automatic bone generation for cha-
racter animation using the discrete medial axis transformation.
In Tagungsband Virtuelle und Erweiterte Realitt, 1. Workshop
der GI-Fachgruppe VR/AR,, pages 339350, 2004.
[Blu64] H. Blum. A transformation for extracting new descriptors of
shape. In In Symposium on Models for the Perception of Speech
and Visual Form, volume 2, pages 139146, 1964.
[CKBH00] Kong Man Cheung, Takeo Kanade, J.-Y. Bouguet, and M. Holler.
A real time system for robust 3d voxel reconstruction of human
motions. In Proceedings of the 2000 IEEE Conference on Compu-
ter Vision and Pattern Recognition (CVPR 00), volume 2, pages
714720, June 2000.
[FB05] Jean-Sbastien Franco and Edmond Boyer. Fusion of multi-view
silhouette cues using a space occupancy grid. Technical Report
5551, INRIA, April 2005.
[Fra05] Jean-Sbastien Franco. Modelisation 3D a partir de silhouettes
images. PhD thesis, Institut National Polytechnique de Grenoble,
Grenoble, France, December 2005.
[Kno07] David Knossow. Paramtrage et Capture Multicamras du Mou-
vement Humain. Phd. manuscript, INPG, INRIA, 655 avenue de
lEurope, 38330 Montbonnot, April 2007.
[Lau94] A. Laurentini. The visual hull concept for silhouette-based
image understanding. IEEE Trans. Pattern Anal. Mach. Intell.,
16(2) :150162, 1994.
[Lem03] Alexandre Lemieux. Systme didentication de personnes par
vision numrique. Masters thesis, Dcembre 2003.
[MBR06] Clment Mnier, Edmond Boyer, and Bruno Ran. 3d skeleton-
based body pose recovery. In Proceedings of the 3rd International
Symposium on 3D Data Processing, Visualization and Transmis-
sion, Chapel Hill (USA), june 2006.
[Mer04] Djamel Merad. Reconnaissance 2D/2D et 2D/3D dobjets partir
de leurs squelettes. PhD thesis, 2004.
69
[PK99] Kalman Palagyi and Attila Kuba. Directional 3d thinning using 8
subiterations. In DCGI 99 : Proceedings of the 8th International
Conference on Discrete Geometry for Computer Imagery, pages
325336, London, UK, 1999. Springer-Verlag.
[TFJT] A Trouve, S. Fayolle, S. Juillard, and A. Trebuchet. Technical
report.
Annexe A
Utilisation de lapplication
Nous avons tach de raliser une application simple dutilisation, seule-
ment le nombre de paramtres et de chiers ncessaires son fonctionnement
complique quelque peu son utilisation. Les images des squences vidos des
direntes camras doivent respecter une certaine organisation. Un dossier
racine, dans lequel se trouve un dossier pour chacune des camras de la s-
quence que lon souhaite traiter. Dans chacun des dossiers de camras se
trouvent toutes les images de la camra concerne, classes par chronologie
de la squence. Le dossier racine ne doit contenir que les dossiers des ca-
mras, si un autre chier et/ou dossier est prsent dans le dossier racine, il
sera interprt comme une camra par lapplication, ce qui aura pour cons-
quence de provoquer un mauvais traitement. Nous ne sommes pas parvenus
viter ce genre de comportement. Les chiers de contenant les matrices de
projections des camras, ainsi que leurs coordonnes, ne ncessitent aucune
organisation particulire.
Mis part ce problme darborescence des chiers, lapplication est rela-
tivement simple dutilisation. Grce notre gestion des exceptions, lappli-
cation na aucune raison de se terminer anormalement, mme si lon essait
deetuer des actions illogiques.
Une fois lapplication lance, nous avons la possibilit de rgler certains
rglages, telle que le nombre de frame par seconde. Malheureusement nous
navons pas eu le temps de rendre utile ce type de rglage. Il est ais de
mettre des rglages par dfaut. Les rglages courant peuvent tre enregistrs
dans un chier laide de laction (nous avons cr un type .stg ), et ce
chier pourra tre charg plus tard. Toutes ces commandes sont accessibles
dans Settings se trouvant dans la barre de menu, ou bien en utilisant les
raccourcis clavier associs, ou encore avec les boutons de la barre doutils.
71
Nous avons aussi la possibilit de charger les paramtres des camras (ma-
trice de projection et coordonnes de chacune des camras). Les direntes
informations relatives aux camras sont disponibles dans longlet Camera
(ou les raccourcis clavier, la barre doutils). Par manque de temps nous
navons pas exploit ces donnes. Aussi, la conguration du nombre de ca-
mras utilises (nombre de point de vue de la squence) seectue durant
le chargement des paramtres des camras. Nous avons mis 8 camras par
dfaut car cest le nombre qui a t utilis dans la principale squence sur
laquelle nous avons travaill.
Enn, an de visualiser une squence vido ainsi que son extraction (les
autres reprsentations ntant pas disponibles), il est ncessaire de charger
les images. Les commandes se situent dans longlet File (raccourci clavier
et bouton dans la barre doutils sont galement disponibles). Un fentre de
dialogue demande alors de slectionner le rpertoire ou se trouve les dossiers
des images de chaque camra. Aprs avoir slectionn le dossier, une fentre
de dialogue apparat, il faut entrer un entier en paramtre. Ce nombre cor-
respond au nombre dimages qui seront utilises pour calculer les statistiques
de limage de fond (la dmarche est explique dans le chapitre Algorithme).
Ce nombre inue normment sur la vitesse de calcule, et videmment, plus
il est important, plus les calculs seront long seectuer.
Une fois toutes ces actions accomplies, on peut observer la squence video,
ainsi que les silhouettes obtenues. On peut controler les squences laide
des commandes dans le menu Video Stream (des raccourcis clavier et des
boutons dans la barre doutils sont disponibles). Nous avons mis en place
les commandes Stop , Pause , Play , Next Frame , et Previous
Frame

Vous aimerez peut-être aussi