• Aucun résultat trouvé

Contrôle automatique de caméra dans un visualisateur de combats navals en 3 dimensions

N/A
N/A
Protected

Academic year: 2021

Partager "Contrôle automatique de caméra dans un visualisateur de combats navals en 3 dimensions"

Copied!
95
0
0

Texte intégral

(1)

Contrôle automatique de caméra dans un visualisateur de

combats navals en 3 dimensions

par

Mathieu POISSON

Présenté au Département d'informatique en vue de l'obtention du grade de

maître ès sciences (M.Sc.)

FACULTÉ DES SCIENCES

UNIVERSITÉ DE SHERBROOKE

(2)

Le 20 juin 2014

le jury a accepté la thèse de Monsieur Mathieu Poisson dans sa version nale.

Membres du jury

Professeur Froduald Kabanza Directeur de recherche Département d'informatique

Madame Hengameh Irandoust Codirectrice de recherche

RDDC-Valcartier

Monsieur Abder Rezak Benaskeur Codirecteur de recherche

RDDC-Valcartier

Professeur Jean-Pierre Dussault Membre interne

Département d'informatique

Professeur Marie-Flavie Auclair-Fortier Président-rapporteur

(3)

Sommaire

Ce mémoire présente une solution au problème de contrôle de caméra hors-ligne dans un environnement en trois dimensions où se déroule une bataille navale. D'abord, une introduction du domaine est présentée, le but étant d'établir les fondations sur lesquelles se baseront l'ensemble des sections de ce document. Ensuite, une revue de la littérature est eectuée. Le contrôle de la caméra dans le domaine du cinéma est exploré. Diverses techniques de contrôle sont également présentées tout en discutant leur pertinence au problème. Une approche de planication par réseau de tâches hiérarchique est ultimement choisie comme solution.

Pour décrire cette solution, la modélisation du planicateur et de ses composantes est d'abord exposée. Par la suite, l'algorithme de planication est présenté. Une architecture de planication et d'exécution, intégrant l'algorithme de planication avec le contrôle bas-niveau de la caméra est aussi proposée. L'implémentation de cette architecture est ensuite discutée et illustrée à l'aide des résultats expérimentaux. La conclusion est suivie par une annexe décrivant les détails de l'implémentation.

(4)

Remerciements

J'aimerais d'abord remercier Froduald Kabanza d'avoir supervisé et dirigé mes tra-vaux lors des diérentes étapes de création de la solution et de ce document.

J'aimerais ensuite remercier Philipe Bellefeuille dont le mémoire a servi de base solide àla création de celui-ci.

J'aimerais aussi remercier Marie-Flavie Auclair-Fortier et Abder Rezak Benaskeur pour leurs conseils qui ont permis de grandement améliorer mon texte.

Finalement, je voudrais remercier mes proches pour leur soutien moral lors de mon passage àla maîtrise.

(5)

TABLE DES MATIÈRES

Sommaire iii

Remerciements iv

Table des matières iv

Liste des tableaux viii

Liste des gures ix

CHAPITRE 1  Introduction 2

1.1 Contrôle de caméra . . . 2

1.2 Visualisation de combats navals . . . 3

1.3 Spécications d'une caméra virtuelle . . . 6

1.4 Organisation du mémoire . . . 8

CHAPITRE 2 État de l'art 10 2.1 Caméra et cinématographie . . . 10

(6)

2.1.2 Déplacement de la caméra . . . 19

2.1.3 Agencement des prises de vue . . . 23

2.2 Approches de contrôle de la caméra . . . 24

2.2.1 Niveaux de contrôle simple . . . 25

2.2.2 Types de contrôle direct . . . 26

2.2.3 Contrôle assisté par navigation dans l'environnement avec évite-ment d'obstacles . . . 27

2.2.4 Contrôle automatique par optimisation et satisfaction de contraintes 28 2.2.5 Contrôle automatique par la planication avec des actions cinéma-tographiques . . . 30

CHAPITRE 3  Planication du contrôle de la caméra 36 3.1 Idée générale . . . 36

3.2 Modélisation des actions de contrôle de la caméra . . . 37

3.3 Modélisation des tâches de contrôle de la caméra . . . 39

3.4 Algorithme de planication par décomposition de tâches . . . 43

CHAPITRE 4  Architecture du système 45 4.1 Aperçu . . . 45

4.2 État interne . . . 45

4.3 Chargement du scénario . . . 47

4.4 Contrôleur central . . . 47

4.5 Communication avec le planicateur . . . 48

4.6 Connaissances . . . 49

(7)

4.8 Détection d'occultation . . . 51

CHAPITRE 5  Implémentation, Expérimentation et Résultats 52 5.1 Implémentation . . . 52 5.2 Expérimentation . . . 54 5.3 Résultats et analyse . . . 55 5.3.1 Temps de planication . . . 55 5.3.2 Résultats du scénario 1 . . . 57 5.3.3 Résultats du scénario 2 . . . 59 5.3.4 Résultats du scénario 3 . . . 60 5.3.5 Analyse complète . . . 61 CHAPITRE 6  Conclusions 63 Bibliographie 67

Annexe A  Liens vers les vidéos 68

Annexe B  La modélisation des tâches 69

Annexe C  Fichier de dénition du domaine 71

Annexe D  Fichier de dénition du problème 81

Annexe E  Fichier de dénition des événements 83

(8)

LISTE DES TABLEAUX

5.1 Temps d'exécution moyen des étapes de planication . . . 57 5.2 Métriques de comparaison entre les diérentes versions du premier scénario 58 5.3 Métriques de comparaison entre les diérentes versions du second scénario 60 5.4 Métriques de comparaison entre les diérentes versions du troisième scénario 61

(9)

LISTE DES FIGURES

1.1 Simulation de navigation dans l'armée américaine [18] . . . 4

1.2 Capture d'écran de SIMDIS . . . 6

1.3Degrés de liberté d'une caméra . . . 7

2.1 Visualisation de la composition d'un lm . . . 11

2.2 Exemple de type de plan neutre . . . 12

2.3Exemple de type de plan d'oiseau . . . 13

2.4 Exemple de type de plan à la première personne . . . 14

2.5 Exemple de type de plan par-dessus l'épaule d'une torpille . . . 15

2.6 Exemple de type de plan de face . . . 15

2.7 Exemple de type de plan en contre-plongée . . . 16

2.8 Exemple de type de plan dutch . . . 17

2.9 Visualisation des diérents zoom souhaités . . . 18

2.10 Vision selon la position . . . 19

2.11 Schéma illustrant la ligne d'intérêt . . . 21 2.12 Un exemple de HTN . . . 3 3

(10)

3.1 La racine du réseau . . . 40

3.2 La tâche qui nalise le plan . . . 40

3.3 Tâche permettant de montrer une nouvelle plateforme dans la simulation 41 3.4 Tâche permettant de montrer un changement de direction . . . 42

3.5 Tâche permettant de montrer la suite d'événements découlant d'un lance-ment de missile . . . 42

4.1 L'architecture générale de la solution . . . 46

5.1 L'interface oerte pour le contrôle manuel de la caméra . . . 53

5.2 La relation du temps de calcul en fonction de la complexité du scénario . 56 5.3 Les résultats du scénario 1 . . . 58

5.4 Les résultats du scénario 2 . . . 59

5.5 Les résultats du scénario 3 . . . 61

(11)

CHAPITRE 1

Introduction

Ce premier chapitre présente le problème qui sera traité dans ce document. Les outils utilisés dans celui-ci ainsi que quelques théories de base sur les caméras sont également présentées.

1.1 Contrôle de caméra

Le contrôle d'une caméra est un problème qui touche plusieurs secteurs diérents. Que ce soit dans l'industrie du cinéma, du documentaire, du contrôle de système de surveillance ou dans l'industrie du jeu vidéo, chaque domaine fait face à des problèmes qui touchent l'utilisation d'une caméra dans le but de créer des images qui passent une information choisie à la personne qui visionne. Ces images sont créées minutieusement pour inspirer au public diérentes émotions et réactions. La tâche est hautement tech-nique et est eectuée par des experts qui doivent non seulement savoir comment opérer manuellement la caméra mais aussi connaître le public et les acteurs pour produire un visitionnement satisfaisant.

Plusieurs dicultés peuvent être rencontrées. En eet, la position d'une ou de plu-sieurs caméras, la position des acteurs, l'éclairage de la scène et la composition de l'image doivent faire l'objet d'une attention particulière. Ce dernier doit s'eectuer pour chaque

(12)

image et chaque scène. La quantité de travail à laquelle font face les équipes de production de lm est donc considérable.

Le contrôle d'une caméra est par conséquent souvent un problème complexe notam-ment à cause de la diculté de résoudre plusieurs contraintes portant sur de nombreuses variables de positionnement en simultané. L'automatisation du contrôle de la caméra pa-raît alors dans bien des problèmes comme une voie bénéque. Par contre, chaque situation fait face à des problèmes de contrôle diérents. Par exemple, au cinéma, on positionne les acteurs dans la scène selon des actions précises alors que dans le jeu vidéo et le docu-mentaire on ne peut pas les déplacer puisqu'on veut montrer la scène telle quelle est en réalité. Une solution d'automatisation de caméra peut donc être singulière et dicilement applicable à d'autres problèmes que celui pour lequel elle a été créée.

C'est dans cette optique que ce document s'attaque à un problème précis de contrôle de caméra et de son automatisation. Le problème choisi est celui du contrôle d'une caméra virtuelle dans un environnement en trois dimensions où se déroule un combat naval et aérien. Plus précisement, la production hors-ligne d'un vidéo dans un tel visualisateur. Le document adopte une approche plus large dans la recherche de solution.

1.2 Visualisation de combats navals

La visualisation de combats navals est faite à l'aide d'un moteur 3D pour représenter une bataille crédible à des ns de formation et d'évaluation, tout en contrôlant automa-tiquement la caméra virtuelle. Le but est de créer un environnement 3D qui présente à l'utilisateur toute l'information qui est normalement présente dans une situation réelle.

Une partie de la formation des opérateurs et des ociers qui seront déployés sur des navires militaires est réalisée à l'aide des simulations. Ces simulations ont pour but d'accoutumer l'ocier à la prise de décision à laquelle il sera confronté dans l'exercice de ses fonctions. Les simulations doivent donc être crédibles et ecaces. Les scénarios utilisés doivent être lmés par une caméra virtuelle qui présente automatiquement à l'ocier toute l'information pertinente pour sa prise de décision. La gure 1.1 présente des ociers en cours de simulation utilisant un visualisateur. L'accent est donc mis sur la création hors-ligne de vidéo d'exercice. C'est-à-dire que la solution connait à l'avance

(13)

Figure 1.1  Simulation de navigation dans l'armée américaine [18]

tous les événements qui se produiront dans le scénario d'entrainement.

Un contrôle automatique de la caméra peut se faire en générant des prises de vue optimales tout en s'assurant que les éléments les plus importants dans la scène sont pré-sentés au moment où l'utilisateur doit prendre une décision. Une prise de vue est optimale lorsqu'elle permet à l'utilisateur de bien comprendre l'action dans une scène. Le fait que l'objet soit central et qu'il ne soit pas occulté par un autre sont les points principaux qui permettent d'obtenir une bonne scène. La sélection des scènes doit se faire quant à elle de façon à montrer le plus grand nombre possible d'événements importants pour l'utili-sateur. Il est aussi important de réduire le nombre de scènes utilisées pour ne conserver que celles utiles. Un trop grand nombre de scènes ne fait qu'augmenter la confusion chez l'utilisateur. Un moyen d'implémenter un contrôle automatique de la caméra est par la création d'un script fait par un expert. L'expert spécie alors, à l'avance, les diérentes prises de vue en fonction du temps et des objectifs de visualisation. Cette technique donne une solution idéale. Par contre, elle nécessite beaucoup d'heures-personnes et donne une

(14)

vidéo qui n'est pas réutilisable et qui doit être repensée lorsque les préférences de lmage changent. Toutefois, une solution de production automatique qui permet de préciser des préférences de lmage pourrait réduire le nombre d'heures de travail tout en s'approchant de la création idéale par un expert. Le mot idéal est utilisé pour représenter une version créée par un expert et qui sert d'étalon pour la création automatique. Une solution réuti-lisable et rapide de contrôle de la caméra est précisément l'objet de ce document. Une solution de contrôle automatique de la caméra dans un environnement de bataille navale est en eet présentée.

Les techniques qui sont abordées dans ce mémoire ont des applications plus larges que la visualisation de combat naval et peuvent être appliquées à la vision virtuelle générale, quelle que soit son application. Ce document traite de planication dite hors-ligne, c'est-à-dire que la planication se fait d'avance en connaissant complètement le déroulement des événements. Tout de même, une attention sera portée vers la possibilité de passer vers la planication ligne, aussi appelée planication en temps réel. La planication en-ligne n'obtient la connaissance des événements que lorsqu'ils se produisent. Le mémoire essaie, dans la mesure du possible, de garder une vision large des applications potentielles des sujets discutés dans ce document.

Le visualisateur SIMDIS a été choisi [23] dans le but de tester les idées apportées. Développé par la U.S. Naval Research Laboratory, SIMDIS est aussi utilisé par la Marine Royale Canadienne à des ns de formation. C'est un visualisateur pur, c'est-à-dire qu'il ne fait pas de simulation. Il prend un scénario constitué des positions de diérents acteurs dans le temps, et construit un environnement 3D qui peut être navigué intuitivement. Un exemple d'image créée par SIMDIS est présenté dans la gure 1.2.

SIMDIS ore une interface de plugiciel. Les plugiciels prennent la forme de librairies dynamiques codées en C++. À travers l'interface oerte, il est possible d'accéder aux contrôles de la caméra ainsi qu'aux diverses informations sur les plateformes qui com-posent la scène générée par le moteur 3D. Une librairie permettant de créer des interfaces graphiques est aussi oerte. SIMDIS a cependant l'inconvénient d'être propriétaire. Bien que gratuit, une licence doit être obtenue pour pouvoir le télécharger. L'implémentation de l'architecture de contrôle de la caméra maintient un découplage entre SIMDIS et le planicateur dans la mesure du possible.

(15)

Figure 1.2  Capture d'écran de SIMDIS

1.3 Spécications d'une caméra virtuelle

Tout au long de ce document, le terme caméra (virtuelle) sera utilisé. Bien qu'aucune caméra physique ne soit utilisée, c'est simplement intuitif de faire référence à l'objet virtuel qui capte lesimagescomme étant une caméra.

Dansle monde réel, lescamérascontrôléespar dessystèmesautomatiquessont res-treintes en mouvement. La diculté est de choisir parmi plusieurs de ces caméras, comme dans les systèmes de surveillance automatique par exemple [20]. Dans de tels systèmes, le but est de présenter à un agent de sécurité les images qui vont l'intéresser.

Le problème de contrôle d'une caméra virtuelle est foncièrement diérent. En eet, un environnement virtuel peut être imaginé comme étant lmé à l'aide d'une seule caméra

(16)

X Y Z

φ X

θ Z

ψ

(17)

Dans la gure 1.3, la cible de la caméra est représentée par une sphère. Dans le reste du document, la cible fera toujours référence à ce qui est lmé par la caméra. Les propriétés de la cible comme la position(Xo, Yo et Zo)et la vitesse seront utilisées dans la suite du

document. L'objet ici est représenté par une sphère simplement par soucis de simplicité, le rayon n'est donc pas important.

La caméra de SIMDIS possède une diérence majeure avec la représentation habi-tuelle des caméras virhabi-tuelles. Le zoom ne fait pas partie des paramètres modiables dans le visualisateur. Nous continuerons tout de même d'explorer les possibilités qu'ore le zoom en théorie, bien qu'il n'a pu être utilisé dans la partie expérimentale. Puisque SIM-DIS ne nous donne pas le contrôle du moteur, mais seulement un moyen de positionner la caméra, il a été impossible d'étendre le système pour ajouter le contrôle du zoom. Par conséquent, la caméra utilisée dans les expérimentations a seulement 6 variables de contrôle. Toutes les autres variables de contrôle de la caméra sont intactes et peuvent être utilisées comme dans n'importe quelle caméra virtuelle. Malgré cette limite, le choix a été fait de poursuivre avec SIMDIS étant donné sa notoriété dans le domaine mili-taire et aussi parce qu'il est malgré tout possible d'approximer l'eet d'un zoom par un grossissement de l'image produite avec des résultats relativement satisfaisants.

1.4 Organisation du mémoire

Le mémoire est organisé comme suit. Au prochain chapitre, une revue de la littérature est eectuée. Le contrôle de la caméra dans le domaine du cinéma est exploré. Ensuite, diverses techniques de diérents niveaux de contrôle de caméra sont revues. À la suite de cette revue, une approche par planication avec des HTN est choisie comme solution. Au chapitre 3, la modélisation du planicateur et de ses composantes est exposée. L'algorithme de recherche de solution est présenté.

Au chapitre 4, une architecture est proposée pour intégrer le planicateur avec le contrôle de la caméra dans un visualiseur. Chaque composante y est expliquée. La mé-thode de communication entre le planicateur et le visualisateur fait l'objet d'une section. Au chapitre 5, la création d'un prototype et des résultats oerts est analysée. La

(18)

réussite de la solution est discutée. De plus, des solutions sur le temps d'exécution ainsi qu'une discussion sur la solution apportée au problème de exibilité sont présentées.

Au chapitre 6, une conclusion est tirée. Un récapitulatif complet du mémoire est dressé. Une ouverture vers les travaux futurs y est faite pour diriger la continuation du projet global.

(19)

CHAPITRE 2

État de l'art

Ce chapitre présente les travaux qui ont été faits par le passé pour résoudre des pro-blèmes de contrôle de la caméra. La section 2.1 traite des connaissances dans l'industrie du cinéma. La section 2.2 traite des avancées dans le domaine du contrôle de caméra automatique et de la planication de ces contrôles.

2.1 Caméra et cinématographie

Cette section traite de l'utilisation de la cinématographie et de ses techniques pour établir les bases du problème de visualisation de combat naval, qui est le problème à résoudre. Il sera question du positionnement de la caméra, de son déplacement et de l'agencement des scènes.

2.1.1 Positionnement de la caméra

Il est important, en premier lieu, de présenter le domaine expert. L'exploration de l'ex-pertise du domaine du cinéma est importante pour bien comprendre comment une caméra est manipulée. Cela permet de s'assurer que la solution produite bénéciera de l'expertise

(20)

Figure 2.1  Visualisation de la composition d'un lm

développée par des experts. Premièrement, un lm est un ensemble de scènes [5]. Chaque scène sert idéalement à exprimer une seule idée. Les informations trop complexes doivent donc être divisées le plus possible en sous-ensembles de plusieurs scènes. Une scène est quant à elle une composition de plusieurs prises (shot). Une prise est une série d'images capturées une à la suite de l'autre sans coupure (cut). Lors d'une prise, une caméra peut être en mouvement mais celui-ci doit être uide (un mouvement qui n'est pas uide provoque une coupure). La gure 2.1 illustre la hiérarchie de ces concepts.

Types de plan

Plusieurs types de plan diérents peuvent être utilisés lors de la création d'une prise. Un type de plan est un sous-ensemble de l'espace de conguration d'une caméra. Les types de plan présentés ici proviennent de la théorie du cinéma [19]. Chacun d'eux est présenté de façon informelle et sa pertinence, dans le cas qui nous concerne, est analysée. Chaque type de plan est accompagné d'une image qui ore un exemple pour une meilleure compréhension. Finalement, est formellement présenté le sous-ensemble que représente le type de plan en donnant un système d'équations (linéaires ou non linéaires selon le cas) sur les variables de positionnement d'une caméra (Xc(t), Yc(t), Zc(t), φc(t), ψc(t) et θc(t) )

et bien souvent les variables de positionnement de l'objet lmé par la caméra (i.e. : Xo(t),

Yo(t) et Zo(t)). Chacune de ces variables est dépendantes du temps. La relation avec le

temps t est expliquée dans la partie sur les déplacements de la caméra. Les objets sont considérés comme atomiques. De plus, dans les descriptions suivantes l'objet est unique,

(21)

c'est-à-dire, que pour un type de plan un seul objet est considéré pour le positionnement de la caméra. Un type de plan est statique par rapport à l'objet qu'il lm. Les formules mathématiques sont constantes dans le temps. Donc, si la cible se déplace, la caméra se déplacera de façon équivalente.

Type de plan neutre (Neutral view)

Le type de plan de base est généralement lorsque la ligne d'horizon est visible et le sujet est placé au niveau des yeux. Ce type de plan permet de situer la hauteur relative et absolue de l'entité montrée dans la prise. C'est aussi la vision la plus naturelle, donc celle qui devrait être prise par défaut. La relation entre la position de la caméra (Xc(t), Yc(t), Zc(t)) et celle de la cible (Xo(t), Yo(t), Zo(t)) est dénie

par les équations suivantes : 

(Xc(t) − Xo(t))2+ (Yc(t) − Yo(t))2 = H,

Zc(t) = Zo(t), φc(t) = 0, ψc(t) = 0,

θc(t) = arctan( Yc(t) − Yo(t)

Xc(t) − Xo(t)).

H est une constante qui détermine la distance entre l'objet et la caméra sur le plan XY . La selection de la valeur de distance est l'objet de la prochaine section sur les

valeurs de cadrage.

(22)

Type de plan d'oiseau (Bird's-eye view )

La caméra est placée très haute et lme vers le bas. Ce type de type de plan est uti-lisé pour créer une vision d'ensemble qui permet d'établir un contexte géographique pour les prises qui suivront. Si la caméra n'est pas trop élevée, la vue peut donner un sentiment de supériorité par rapport au sujet. Ce type de plan est parfait pour montrer l'ensemble du scénario, que ce soit pour que l'utilisateur voit la formation de ses eectifs ou de celles de l'ennemi. La position de la caméra doit respecter les paramètres suivant pour ce type de plan,

Xc(t) = Xo(t), Yc(t) = Yo(t), Zc(t) = H,

φc = 0, θc = 0, ψc = −90◦.

L'objet est le centre de notre type de plan d'oiseau et H est la hauteur désirée.

Figure 2.3  Exemple de type de plan d'oiseau Type de plan à la première personne (First person view )

Place la caméra selon le type de plan de l'une des entités. Permet à la fois de situer la prise par rapport à ce dernier et de mettre l'emphase sur ses propres actions. Peut être très utile pour montrer à l'utilisateur ce qu'un bateau voit de son pont ou encore pour montrer l'action du type de plan d'un pilote qui survole une scène. La caméra doit respecter les équations suivantes pour être à la première personne.

(23)

φc(t) = φo(t), θc(t) = θo(t), ψc(t) = 0.

θo et φo sont les angles de rotation qui ont été appliqués à l'objet pour determiner

sa direction.

Figure 2.4  Exemple de type de plan à la première personne

Type de plan par-dessus l'épaule (Over-the-shoulder view )

La caméra est positionnée par-dessus l'épaule  d'une première entité et est focalisée sur une deuxième entité. Cela permet de lier les deux sujets ensemble et de les positionner l'un par rapport à l'autre. Peut être utilisé dans la même optique que la vision en première personne. Les équations suivantes établissent formellement la position relative que doit prendre la caméra,

Xc(t) = Xo(t) − (H ∗ sin(θo(t))),

Yc(t) = Yo(t) − (H ∗ cos(θo(t))),

Zc(t) = Zo(t), φc(t) = φo(t), θc(t) = θo(t), ψc(t) = 0.

Type de plan de face (Frontal view )

Ce positionnement de caméra permet à l'action de se diriger vers la caméra sans qu'elle ne se déplace. Donne un eet dynamique et de la perspective à une prise. Cette technique est utilisée pour intéresser la personne qui visionne sans pour autant ajouter une valeur à la prise. On peut donc ignorer ce dernier pour le présent

(24)

Figure 2.5  Exemple de type de plan par-dessus l'épaule d'une torpille

problème. Encore une fois, les équations sont présentées pour acher les contraintes eectuées sur la caméra,

Xc(t) = Xo(t) + (H ∗ sin(θo(t))), Yc(t) = Yo(t) + (H ∗ cos(θo(t))),

Zc(t) = Zo(t) + (R ∗ sin(φo(t))),

φc(t) = −φo(t), θc(t) = 180 + θo(t), ψc(t) = 0.

Le H est la distance entre la caméra et l'objet à lmer sur le plan XY et le R est la distance sur l'axe des Z.

Figure 2.6  Exemple de type de plan de face

Type de plan en contre-plongée (Worm's-eye view )

(25)

au sol et lme la cible avec un angle vers le haut. Ce type de plan permet de créer un sentiment d'infériorité ou de peur face au sujet qui paraît plus gros et menaçant. Pour la visualisation des activités navales, il ne semble pas approprié de susciter la peur chezl'opérateur. Par conséquent, ce type de plan ne sera pas considéré. Voici tout de même, les équations qui donnent la position de la caméra relative dans ce type de plan,  (Xc(t) − Xo(t))2+ (Yc(t) − Yo(t))2 < H, Zc(t) = Zo(t) + (R ∗ sin(φo(t))), θc(t) = arctan( Yc(t) − Yo(t) Xc(t) − Xo(t)), φc(t) = −φo(t), ψc(t) = 0.

Ici, φ est un angle constant avec lequel les objets sont lmés, H est la distance entre la caméra et l'objet à lmer sur le plan XY et le R est la distance sur l'axe des Z.

Figure 2.7  Exemple de type de plan en contre-plongée

type de plan dutch (Dutch view)

Un type de plan où la ligne d'horizon est en angle, lmée avec un  roll  positif. Ce type de plan permet de créer une impression de chaos ou d'inconfort et suggère au spectateur que quelque chose va mal ou n'est pas à sa place. Comme le type de plan en contre-plongée, ce type de plan tente d'instaurer un sentiment négatif et

(26)

ne permet pas de faciliter le passage d'information vers l'observateur. Il sera donc exclu.

Ce type de plan peut être n'importe quel autre tant que le roll n'est pas zéro. Donc, la seule contrainte à respecter est ψc = 0.

Figure 2.8  Exemple de type de plan dutch

Valeurs de cadrage

La valeur de cadrage détermine la distance entre la caméra et l'objet lmé. Les 5 va-leurs de cadrage les plus courantes sont utilisées pour catégoriser les diérentes distances possibles. On tente ici de dénir les types lorsque les objets lmés sont des entités dans un environnement naval (par exemple, des bateaux, des avions, des missiles, des collines ou des bâtiments) plutôt que des humains.

Gros plan extrême (Extreme close up) est une vue d'extrêmement près qui ne montre qu'une petite partie de la cible.

Gros plan (Close up) est une vue de près qui ne montre pas l'environnement autour de la cible.

Vue normale (Normal shot) est une vue qui montre la cible et une petite partie de son entourage.

Vue large (Long view) est une vue de la totalité de la cible de loin.

Vue large extrême (Extreme long view ) est une vue distante de la cible qui montre très bien son entourage.

(27)

Figure 2.9  Visualisation des diérents zoom souhaités

Ces cinq valeurs de cadrage sont habituellement utilisées dans le cinéma ou pour lmer des humains. Le gros plan et son extrême sont utiles pour voir le visage d'un acteur ; ils ne devraient pas (ou très peu) être utiles pour lmer des bateauxou des avions. Les trois autres seront les plus utilisés. Pour créer ces diérents cadrages, il sura de faire varier le H déni dans les équations de la section précédente. Les valeurs exacte de H pour les diérents cadrages sont choisies de façon manuelle lors de la production de la solution automatique de façon à reproduire les cadrages de la gure 2.9.

Jusqu'à maintenant, seulement sixdes sept variables ont été touchées. Celle qui manque est le zoom (ou le champ de vision) permettant de contrôler le champ de vision d'une scène. La gure 2.10 illustre l'eet sur la profondeur introduit par le déplacement de la caméra par rapport à l'utilisation d'un zoom. Dans les deuximages, le bateau 1 occupe le même espace. Cet eet est dû au zoom plus grand dans la prise du bas. En eet, le bateau 2 est très petit dans l'image du haut, comme un humain le verrait. Par contre le bateau 2 ne paraît pas beaucoup plus petit que le 1 dans l'image du bas.

Étant donné que SIMDIS ne permet pas l'usage du zoom sur un objet, celui-ci sera simplement approximé par un rapprochement de la caméra vers l'objet. Dans cette ap-proximation, l'eet de distorsion de la perspective introduit par les déplacements est

(28)

Figure 2.10  Vision selon la position

obligatoire.

2.1.2 Déplacement de la caméra

Cette section traitera de la variation de la conguration d'une caméra dans le temps. Une fois un type de plan et une valeur de cadrage choisis, il faut choisir un type de mouvement pour créer une prise. Le ratio de délement, la ligne d'intérêt, le déplacement de la caméra dans une prise et le séquençage particulier de prises, c'est-à-dire de la création de scènes sont discutés.

Le ratio de délement de la caméra concerne le temps écoulé entre chaque image achée et celui écoulé dans la réalité. C'est un aspect très important en cinématographie. Ce concept est représenté par le rapport du temps qui s'est écoulé en réalité entre la prise de deux images et le temps entre l'achage de ces deux images. Le ratio normal, un rapport égal à 1, est le plus utilisé. Le ratio de déroulement de l'action plus lent,

(29)

rapport inférieur à 1, peut aussi être utilisé pour mettre l'accent sur une action précise et s'assurer que le spectateur a compris ce qui se passe. Un ratio plus rapide, un rapport supérieur à 1, peut être utilisé pour condenser l'action de manière à obtenir une vision d'ensemble ou encore pour passer plus rapidement sur un vide.

Dans le cas présent, le rapport de délement du temps sera constant à 1. La raison principale de ce choixest le souci de conserver un rapport documentaire avec les évé-nements qui se produisent. La seconde raison est la volonté de conserver un problème simple pour les premières étapes de ce projet. Il est tout de même possible d'imaginer, un peu à l'image de la diusion de sports, l'utilisation de périodes mortes pour acher des reprises de faits intéressants qui ont soit été manqués par les prises en temps réel ou qui doivent être revues sous un angle diérent. Dans ce cas, l'utilisation de vitesses de délement diérentes est envisageable. Le dé serait alors de connaître (ou reconnaître) les périodes de temps mort pour les utiliser sans pour autant prendre du retard sur l'ac-tion en temps réel. Au départ, cette facette sera évitée, la possibilité sera réévaluée une fois qu'un système plus complet et utilisable aura été produit.

La ligne d'intérêt est une ligne imaginaire utilisée en théorie du cinéma (aussi appelée règle des 180 degrés). Cette ligne est normalement donnée par le mouvement de l'acteur lmé ou par la ligne d'interaction entre deuxacteurs dans une prise. La règle dicte qu'une fois la prise établie ; on doit toujours lmer du même côté de la ligne d'intérêt. Le but est de permettre à l'observateur de garder les mêmes repères tout au long de la prise.

Par exemple, si une otte comportant trois bateaux en ligne l'un derrière l'autre est lmée comme dans la gure 2.11, lors de la prise 0, l'observateur établit ses repères et une ligne d'intérêt qui traverse les trois bateauxest formée. Dans les prises 1, 2 et 3, les repères de l'observateur tiennent toujours, alors que la prise 4 brise ceux-ci (les bateaux 1 et 3 verront leurs positions inversées de gauche à droite dans la prise 4).

Voici quelques types de déplacements de caméra apportés à une caméra qui sont utilisés en cinéma pour donner du dynamisme auxprises lmées. Dans la description de chacun des mouvements lorsqu'une variable est dite constante elle est ne change plus une fois sa valeur déterminée par le type de plan une première fois. Les valeurs Xcf(t), Ycf(t),

(30)

t Xcf(t) Xc(t) X X Xcf(t) = Xc(t0) Ycf(t) = Yc(t0) Zcf(t) = Zc(t0) φcf(t) = φc(t0) θcf(t) = θc(t0) ψcf(t) = ψc(t0) t0 Xcf(t) = Xc(t) Ycf(t) = Yc(t) Zcf(t) = Zc(t) φcf(t) = φc(t) θcf(t) = θc(t) ψcf(t) = ψc(t)

(31)

Panoramique : Cette prise provient d'une caméra à une position constante, mais ef-fectuant une rotation incrémentale permettant de suivre le déplacement d'une en-tité. Ce mouvement peut être utilisé si on veut montrer qu'une entité en mouve-ment a passé près d'une autre entité statique (par exemple, un avion qui passe près d'un bateau). Les variables de contrôle de la caméra Xcf(t), Ycf(t), Zcf(t)

doivent être statiques dans le temps. Les équations suivantes décrivent leurs re-lations avec t, Xcf(t) = Xc(t0), Ycf(t) = Yc(t0), Zcf(t) = Zc(t0). La variable

θcf(t) doit changer pour suivre l'objet en mouvement. Ce qui donne l'équation

θcf(t) = arctan(XYcfcf(t)−Y(t)−Xoo(t)(t)). Les variables φcf(t) et ψcf(t) ne sont pas aectées ce

qui est décrit ainsi ; φcf(t) = φc(t) et ψcf(t) = ψc(t).

Arc : Un mouvement de caméra qui tourne autour de son sujet en gardant une distance constante. Pourrait être utilisé pour montrer une formation de navires sous tous ses angles. Pour ce type de mouvement, la distance entre l'objet lmé et la caméra ainsi que φcf(t) doivent être constantes. Les variables Xcf, Ycf et θcf varient de

façon à faire un cercle autour de l'objet et en le gardant toujours en vue. Ce qui donne les équations suivantes pour décrire la nouvelle position de la caméra,

Xcf(t) = Xc(t0) sin(2πCt), Ycf(t) = Yc(t0) cos(2πCt), Zcf(t) = Zc(t), φcf(t) =

φc(t), ψcf(t) = ψc(t) et θcf(t) = arctan(XYcfcf(t)−Y(t)−Xoo(t)(t)).

Zoom : Une prise où le mouvement est créé par un zoom de plus en plus prononcé (ou de moins en moins). Pour ce faire, la valeur de H dans les équations de type de plan vont changer. Augmenter la valeur va créer un zoom vers l'extérieur et la diminuer créera un mouvement vers l'intérieur. Les variables nales sont calculées dièrament pour le zoom. En eet, chaque variable est recalculé selon les équations prescrite par le type de plan choisi. Dans ce recalcul, H(t) remplace H. L'équation

H(t) = h + Ct dicte comment la distance varie dans le temps. h est la valeur de

distance à t = 0 et C est une constante qui donne la vitesse et la direction du deplacement. Le choix de C sera fait de façon subjective dans la solution produite. Dollies : Un mouvement de caméra qui change le point de vue de la caméra de façon constante. Par exemple, dans le "dolly out", la caméra commence dans une position neutre pour aller vers une position éloignée et surélevée. On passe donc d'une vision neutre à une vision d'÷il d'oiseau de façon graduelle sans coupure. Ce déplacement

(32)

pourrait être utilisé comme transition entre un type de plan neutre et un type de plan à vol d'oiseau. Ce mouvement ne sera pas utilisé dans le contexte de ce document. Par contre, son utilisation pourrait être bénéque lors de travaux futurs. Découverte : Un mouvement de caméra qui s'arrête sur un élément qui n'était jusque là pas visible. Celui-ci permet de créer un eet de surprise et un focus sur cet objet. Ce mouvement ne sera pas utilisé dans le contexte de ce document.

2.1.3 Agencement des prises de vue

Plusieurs prises mises une à une peuvent fournir ensemble plus d'informations que la somme de chacune d'elle prise individuellement. Le domaine du cinéma dénit plusieurs agencement de prises et d'utilisation de transitions entre diérentes scènes. Une transition peut être vue comme une scène qui permet un changement moins brusque entre deux scènes critiques.

Prise de pont (Bridge shot)

Une prise qui est placée seulement pour faire le lien entre deux autres. Par exemple, elle permet de situer géographiquement la dernière par rapport à la première en déplaçant la caméra de la prise se terminant vers la prise qui débute. Une transition directe pourra sembler brusque et peu naturelle, alors qu'une transition par une séquence de pont va utiliser plus de temps et donc pourrait être vue comme une perte d'ecacité.

Prise insérée (Insert shot)

Une prise qui est placée à l'intérieur d'une prise plus longue. Elle est le plus souvent utilisée pour mettre l'emphase sur une action qui compose la prise sans être visible. Par exemple, dans une prise montrant une poursuite automobile, on insère une prise montrant l'acteur appuyant sur la pédale d'accélération. Cette prise ne sera pas utilisée puisqu'elle est dicile à utiliser sans briser le rythme de la vidéo. Prise d'angle inverse (Inverted angle shot)

(33)

dans un dialogue, on alterne pour montrer le visage de l'acteur qui parle. Cela crée un lien plus fort entre les deux acteurs aux yeux du spectateur. Peut être utilisé pour que l'observateur comprenne qu'un avion se déplace vers un bateau en alternant des point de vue de l'avion se déplaçant et du bateau. On peut donc montrer une destination même si le bateau n'est pas visible du point de vue de l'avion et vice versa.

Une action cinématographique représente une façon de lmer une scène, c'est-à-dire, une façon d'exprimer des agencements de prises de vue pour lmer. Autrement dit, une action est une préférence quant à la façon de lmer. Ici nous approchons le problème de contrôle automatique d'une caméra comme un problème de spécication d'actions et ensuite d'interprétation en tenant compte de contraintes liées au contrôle de la caméra et de l'environnement. Bien que ce soit un sujet traité dans la littérature, aucune fonction objectif à optimiser ne sera ajoutée.

2.2 Approches de contrôle de la caméra

Le contrôle de la caméra a souvent été approché dans la littérature. Les deux pro-chaines sections font état des techniques qui ont été proposées par le passé. La première section fait la revue des diérents niveaux d'automatisation direct utilisés pour contrôler la caméra. Bien que le niveau de contrôle soit dicté par le problème, une exploration som-maire des autres niveaux permet de connaître les techniques utilisées et de s'en inspirer pour le développement de la solution. La seconde section s'attarde spéciquement sur les techniques qui sont utilisées pour un contrôle automatisé d'une ou de plusieurs caméras. Plusieurs techniques seront abordées avec diérents degrés de pertinence au problème qui nous intéresse, à savoir, visualiser les combats navals.

Tout d'abord, il est important de spécier les dicultés et les spécications du contrôle de caméra. Tous les niveaux de contrôle font face à des problèmes récurrents. Ces pro-blèmes sont ceux d'assurer que la composition de l'image soit adéquate. Pour ce faire, l'occultation de la cible par un objet doit être minimisée que ce soit en terme de pour-centage de l'objet qui est occulté ou le nombre de prises qui contiennent une occultation de la cible. L'objet lmé doit composer un bon pourcentage de l'image produite, dénie

(34)

selon la valeur de cadrage, et la caméra doit suivre l'action selon le type de déplacement employé. Tous ces problèmes sont dépendants du choix de la composition et de la cible choisie. Pour les niveaux automatiques de contrôle un problème additionnel est de faire ces choix. Une explication plus complète de ces problèmes est oerte dans les sections suivantes.

2.2.1 Niveaux de contrôle simple

Les techniques de contrôle de la caméra qui seront vues dans cette section sont dites "simples". La simplicité qui est dénotée ici est par rapport à la vision à long terme dans la création d'images. Cette section se penche sur les techniques qui se contentent de respecter des critères immédiats sur l'image à créer. Les critères sont dits immédiats parce qu'ils ne prennent en compte que le moment présent pour leurs évaluations. La prochaine section se penchera sur les contrôles avec planication donc qui orent une vision à long terme dans la création des images et donc qui vont plus loin que les critères immédiats.

Comme mentionné auparavant ces techniques de contrôle font face à des problèmes de composition de l'image à produire. Au-delà de l'occultation et de la position centrale de l'objet lmé le reste des critères qui détermines la qualité d'une image par rapport à une autre sont subjectifs. C'est pour cela que l'évaluation de ces techniques se fera plus sur l'expressivité et la complexité de la solution que sur la qualité des images produites. Les niveaux de contrôle simples seront divisés en trois catégories sur une échelle d'automatisation du contrôle de la caméra allant du 1) niveau direct (aucune assistance), 2) passant par le niveau assisté (ou semi-automatique) 3) le niveau automatique (ou complètement automatique) [9]. Le niveau direct de contrôle de la caméra consiste à donner le contrôle complet à l'utilisateur. Pour faciliter la manipulation, plusieurs types de contrôles directs ont été créés. Le contrôle assisté tente d'aider l'utilisateur dans le contrôle de la caméra en prennant en charge une partie des contrôles. Finalement, le contrôle automatique vise à ce que l'utilisateur ne soit plus impliqué pour contrôler la

(35)

caméra. Son rôle est limité à exprimer ce qu'il veut voir et comment il voudrait le voir. L'utilisateur demeure donc néamoins parmi les centres d'intérêt puisque les images sont produites pour lui. Les prochains paragraphes discutent ces trois niveaux plus en détails.

2.2.2 Types de contrôle direct

Le contrôle "oeil en main"(eyeball in hand) [25] est le contrôle le plus naturel. Il consiste en un contrôle où l'utilisateur déplace la caméra directement. Tous les mouve-ments qu'il eectue sont appliqués à la caméra. Il peut eectuer des translations de la caméra ainsi que des mouvements pour changer l'orientation de celle-ci.

Le prochain type de contrôle de caméra est le "monde en main"(world in hand) [25]. Dans ce type de contrôle, la caméra est considérée comme étant xe et les actions de l'utilisateur déplacent le monde autour de cette caméra. Cette technique est surtout utilisée dans les outils de visualisation de cartes (googlemap par exemple) et de globes (google earth par exemple). L'utilisateur peut donc eectuer une rotation, une translation ou une homothétie (agrandir ou rapetisser) sur le monde.

D'autres techniques de contrôle direct qui tentent de simplier le contrôle pour l'utili-sateur existent. Deux de ces techniques sont la métaphore de l'avion ou du marcheur. La première voit la caméra comme un avion [25] . Elle possède donc une vitesse constante qui est contrôlée par l'utilisateur. Ensuite, l'utilisateur ne fait que changer la direction de la caméra pour qu'elle "vole" dans cette direction. Bien qu'on simplie le contrôle de la caméra, on complexie l'observation d'objets qui sont statiques dans le monde.

L'autre métaphore, celle du marcheur, voit la caméra comme un personnage que l'utilisateur doit contrôler [25]. La caméra va donc rester à une distance constante du sol. Des contrôles tirés des jeux vidéo à la première personne sont donc appliqués. Encore une fois, bien que l'on simplie le contrôle de la caméra, cette solution n'est applicable que si les objets que l'utilisateur veut voir sont tous à la même hauteur. Les deux métaphores sont donc applicables que dans certain cas précis alors que "oeil en main" et "monde en main" restent complexes.

(36)

2.2.3 Contrôle assisté par navigation dans l'environnement avec

évitement d'obstacles

Ceci nous amène au contrôle assisté qui tente d'aider l'utilisateur dans le contrôle de la caméra en prenant en charge une partie des contrôles. Deux types de visions diérentes du contrôle assisté existent, ceux basés sur l'exploitation des connaissances des objets à lmer, par exemple une connaissance exacte de la géométrie de l'objet, et ceux basés sur l'exploitation des connaissances de l'environnement dans lequel la caméra doit évoluer, par exemple une connaissance des points importants àlmer. Ces types de vision ont en commun qu'ils évitent les collisions et les obstacles dans l'environnement, en plus d'autres contraintes de visualisation et de navigation.

Un exemple de techniques basées sur l'exploitation de la connaissance des objets est la hover-cam [14]. Il s'agit d'une caméra qui utilise ses connaissances des objets pour conserver une distance minimale par rapport àl'objet. La caméra évite ainsi les collisions et les problèmes de "clipping", une situation qui arrive lorsque la caméra est placée à l'intérieur d'un objet et qui cause des problèmes àl'algorithme qui détermine quelles objets àinclure dans l'image. La caméra otte donc autour des objets d'où le nom de hover-cam.

Les techniques basées sur les connaissances de l'environnement sont les plus utilisées. L'exemple le mieux connu de cette approche est la division par cellule [10]. Un algorithme est utilisé pour diviser l'environnement en plusieurs parties intéressantes àl'aide des connaissances de l'environnement dans lequel la caméra évolue. Ensuite, un algorithme de planication de chemin est utilisé pour trouver un chemin de caméra qui lie les zones adjacentes. L'utilisateur n'a qu'àsélectionner la zone dans laquelle il veut aller et le chemin prédéterminé est utilisé. Cette technique est surtout utilisée dans les problèmes de visite virtuelle. En eet, cette solution est surtout utile dans les cas où l'environnement est statique et les zones importantes sont facilement identiables (par exemple : un musée virtuel).

(37)

2.2.4 Contrôle automatique par optimisation et satisfaction de

contraintes

Le dernier niveau de contrôle de la caméra est l'automatisation complète du contrôle. Autrement dit, l'utilisateur n'est plus impliqué pour contrôler la caméra. Son rôle est limité à exprimer ce qu'il veut voir et comment il voudrait le voir. L'utilisateur demeure néanmoins parmi les centres d'intérêt puisque les images sont produites pour lui. L'éva-luation d'une bonne vidéo doit donc être augmentée. Il n'est plus susant de produire des images qui sont visuellement plaisantes mais il faut aussi choisir la cible du lmage de façon à maximiser l'information passée. Dans le cas de la visualisation de combats navals, l'information représentent les événements qui sont montrés. La maximisation de cette quantité ce fait en montrant donc le plus d'événement important possible lors d'un vidéo. La façon exacte de représenter ce critère dépendra de la technique de contrôle.

Le premier type de contrôle automatique est l'approche réactive [9]. Les approches réactives sont directes. Elles réagissent directement au changement d'état de l'environne-ment par le changel'environne-ment de la conguration de la caméra. Une correspondance est créée entre le positionnement de la caméra et la propriété de l'image produite. Des règles sont ensuite produites pour dicter les propriétés attendues de l'image. À chaque changement de l'environnement, l'algorithme applique un changement équivalent à la conguration de la caméra. Cette technique est aussi appelée "technique par servo" de par son lien avec le contrôle de robot qui a inspiré sa création. La faiblesse de cette technique est le manque de vision à long terme. Puisque la technique est purement réactive, il est impos-sible de créer des agencements de caméras en planiant les futurs mouvements. Un autre problème est la complexité de créer une correspondance ecace entre les déplacements de la caméra et les caractéristiques des images produites.

Plusieurs autres techniques de contrôle automatique de la caméra peuvent être vues comme des techniques de satisfaction de contraintes ou d'optimisation sous contraintes. L'approche par satisfaction de contraintes consiste à créer une série de contraintes sur la position de la caméra et sur l'image produite [3, 6]. Ensuite, pour chaque image que la caméra doit créer, une conguration de caméra qui respecte toutes les contraintes

(38)

est trouvées. Le problème est que cette technique est rigide. Une conguration est soit bonne ou mauvaise, on ne peut établir entre deux congurations valables laquelle est la meilleure [9]. Il faut donc s'assurer que les contraintes ne soient ni trop contraignantes (risque de n'avoir aucune solution possible) ni trop permissive (risque d'avoir trop de congurations possibles) et ce dans tous les cas possibles.

L'idée derrière l'optimisation sous contraintes est d'utiliser des équations à maximiser plutôt que des inéquations à respecter [4]. Le but est donc de créer des valeurs qui doivent être maximisées, comme la visibilité de l'objet cible. Le problème de cette technique est qu'il est impossible de garantir que certaines congurations ne seront pas utilisées. La technique est aussi très vulnérable aux minimums et maximums locaux qui peuvent produire de mauvais résultats ou utiliser des congurations que l'on voudrait prohiber.

La solution généralement utilisée est en fait un amalgame des techniques de respect de contraintes et de maximisation. Des inéquations sont utilisées pour représenter les règles strictes qui doivent être respectées à tout moment et des équations à maximiser sont aussi utilisées pour diérencier les congurations valables. Le problème de cette technique est que, comme la technique servo, elle ne possède aucune vision à long terme. Il est très dicile, voir même impossible, de diriger la caméra selon le passé ou le futur pour créer une cohésion dans les images produites.

Le but de ce survol était de vérier si une technique de contrôle de la caméra tradi-tionnellement employée en infographie serait utilisable pour résoudre le problème énoncé. Il s'avère qu'aucune de ces techniques n'est entièrement satisfaisante. En eet, malgré le fait que les techniques de contrôle direct et assisté soient rejetées par la façon dont le problème a été amené, cette section illustre que leur utilisation n'aurait pas été susante pour simplier les contrôles de la caméra dans le domaine choisi. En ce qui concerne les techniques automatiques, une vision à long terme manque pour que leur utilisation soit ecace. Les techniques de planication seront abordées dans la prochaine section pour tenter d'ajouter le discernement qui manque aux techniques automatiques.

(39)

2.2.5 Contrôle automatique par la planication avec des actions

cinématographiques

Les techniques d'automatisation qui ont été vues dans la section précédente sont de bas niveau. Le but de ces techniques est de créer des images qui respectent certains critères immédiats sur la composition de l'image comme les techniques par contraintes qui doivent respecter des règles de positionnement de la caméra. Il manque à ces techniques la capacité d'assurer une cohérence globale entre les diérentes images. Dans cette optique, cette section étudiera les possibilités oertes par les algorithmes de planication de tâches, les algorithmes de planication de chemins, ainsi que les architectures cognitives. L'objectif dans chaque cas est de donner une cohérence globale à une séquence de prises de vues dans un lm. Dans ce cas-ci, le rôle de la planication ou de l'architecture cognitive est de créer des images qui, entre elles, formeront un tout cohérent selon des buts et des contraintes spéciées au planicateur.

La première technique qui a été considérée est une combinaison d'un algorithme de planication de tâches et d'un algorithme de planication de chemins dans un environ-nement avec obstacles, exposée dans [5]. Dans ce document, des images sont produites à des ns didactiques pour le contrôle du Bras-Robot Canadien sur la station spatiale internationale. Le but est donc de créer un lm qui explique à un opérateur un moyen de déplacer le Bras-Robot Canadien pour arriver à une destination cible. Un planicateur de chemins est utilisé pour déterminer les mouvements du Bras-Robot. Ce chemin est ensuite divisé en scènes du vidéo. Finalement, une planication de tâches est eectuée pour déterminer la façon de lmer chaque scène. Pour ce faire, le système utilise l'algo-rithme de planication de tâches TLPlan. Le rôle de TLPlan est de sélectionner à l'aide de logique temporelle les composantes de chaque scène en fonction de ce que l'on veut lmer (le but) et en tenant compte des idiomes (les contraintes temporelles) [12].

Les composantes des scènes sont le type, le placement, le cadrage, le côté et la durée. Le type est en fait le déplacement de caméra utilisé. Le placement de la caméra est le niveau de hauteur de la caméra par rapport à la cible. Le cadrage correspond aux cinq niveaux dénis plus tôt dans ce document. Le côté est la position par rapport à la ligne

(40)

d'intérêt et la durée est le temps que dure la scène.

À l'aide d'actions cinématographiques, c'est-à-dire de séries de scènes prédéterminées, TLPlan établit les valeurs des composantes pour chaque scène. Pour évaluer la valeur qualitative d'une scène, un détecteur d'occultations est utilisé. Le pourcentage de l'objet lmé qui est visible dans chaque image est utilisé comme valeur objectif. Ce choix prend tout son sens dans le contexte d'un environnement où la principale diculté est d'éviter l'occultation de la cible. Une grande partie de ce document est inspiré par ce travail. L'architecture utilisée ainsi que les actions sur lesquelles le planicateur travaille ont servi de base. Dans le but d'explorer de nouvelles solutions, un autre planicateur a toutefois été choisi.

La deuxième approches considérée est une application des algorithmes de recherche de chemins avec évitement d'obstacles [17]. Habituellement, la solution consiste à établir des points importants que la caméra doit visiter [15]. Ensuite, un algorithme de recherche de chemin établit un chemin pour la caméra qui visite chacun de ces points. Ces techniques sont utilisées habituellement dans les cas où les points d'intérêt sont statiques et la caméra doit faire un survol de chacun. Cette technique est similaire à celle par division en cellules vue plus tôt. Une diérence majeure existe tout de même et c'est pourquoi elle est présentée ici. En eet, dans le cas de la division par cellule, le choix des endroits à visiter était laissé à l'utilisateur. Pour la technique de planication présentée ici, ce choix est fait par le planicateur. La transition se fait dicilement dans le cas d'un problème où les points d'intérêts varient grandement dans le temps et dans l'espace. De plus, le fait que le chemin n'est pas nécessairement continu dans l'espace (jump cut) augmente la complexité vers un niveau qui est jugé trop grand pour être entrepris.

Une autre technique considérée est l'utilisation d'une architecture cognitive appelée BDI pour "Belief, Desire, Intention" [21]. BDI est une technique de raisonnement auto-matique, fondée sur une théorie de la cognition, répandue dans le domaine des systèmes multiagents. Chaque agent BDI possède un système de croyances, désirs et intentions. Les croyances d'un agent sont ses connaissances. Elles sont individuelles. Chaque agent possède des croyances possiblement diérentes qui peuvent être incomplètes ou impar-faites. Les désirs représentent les buts de l'agent. Les désirs peuvent être concurrents et même opposés. Par exemple, un agent peut avoir les désirs de se rendre à un point X et

(41)

de conserver son énergie. Donc, contrairement à un but, un désir peut être annulé tem-porairement par d'autres désirs. Les intentions de l'agent représentent le plan d'action qu'il suivra dans les instants suivants. Une boucle d'exécution BDI est composée ainsi ; génération des options, délibération sur les options, mise à jour des intentions, exécu-tion de l'intenexécu-tion, obtenexécu-tion des nouveaux événements et, enn, suppression des désirs impossibles ou ratés. Cette boucle s'exécute à l'inni pour chaque agent en parallèle.

Les solutions de planication multiagents ont été utilisées dans le milieu de la caméra pour contrôler des systèmes de caméra de surveillance [24]. L'utilisation du multiagents dans un tel cas se fait naturellement puisque chaque caméra est indépendante, donc repré-sente un agent. Ceux-ci se contrôlent selon leurs connaissances et intentions personnelles. Un système central peut être ajouté pour contrôler l'échange d'information entre chaque agent, et pour déterminer qui obtient l'écran. Des systèmes de "tracking" ou de détection divers peuvent être facilement adaptés à l'intérieur de chaque agent [8]. Malheureusement, cette solution est dicile à exporter vers un modèle à une seule caméra comme celui qui concerne ce document. Les avantages du multiagents sont perdus puisque l'on a un seul agent "naturel". Sans la partie multiagents, il ne reste qu'un modèle très simpliste de planication. Ce modèle a donc été jugé insusant pour les buts du problème attaqué.

La conclusion de cette revue de littérature est de retenir une solution largement inspirée de [5], le point commun étant l'utilisation des idiomes. Il y a cependant deux diérences majeures. D'un côté, les objets lmés ne sont pas des bras-robots, ce qui fait que la planication des trajectoires d'un corps articulé n'est pas essentielle dans notre cas. D'un autre côté, nous avons opté pour une spécication des idiomes par un réseau de tâches hiérarchique ou HTN (Hierarchical Task Network ) [16], plutôt que par des formules de logique temporelle. Cela nous amène donc à utiliser un algorithme de planication de tâches HTN plutôt que TLPlan. Le choix de HTN par rapport à la logique temporelle relève d'une quête expérimentale. L'objectif était de voir dans quelle mesure cette approche permet de mieux spécier les idiomes pour l'expert du domaine et donne lieu à une planication plus ecace. Comme il sera expliqué dans le chapitre suivant, vu la complexité du contrôle de la caméra, nous avons opté pour une décomposition du contrôle en diérents niveaux. D'où l'idée de voir si cette décomposition est facilement et ecacement formalisable à l'aide des HTNs.

(42)
(43)

condition est une condition qui doit être remplie après l'exécution de l'action. L'action "Pay Builder" aura comme post-condition que le coût des travaux soit soustrait au total de l'argent disponible. Les tâches possèdent leurs propres conditions en plus de celles des actions qui les composent. HTN a aussi été utilisé avec succès dans des domaines dynamiques où la replanication est nécessaire [2].

De façon plus formelle, HTN utilise les dénitions de logique du premier ordre de va-riable, constante, fonction, prédicat, terme, atome, conjoncture et de clause de Horn [16]. Un état (state) est un ensemble d'atomes et un ensemble d'axiomes (axiom set) est un ensemble de clauses de Horn. Une tâche (task) est une liste de la forme (s t1t2. . . tn),

où s est le symbole de la tâche (le nom qui la représente) et t sont les arguments sous forme de terme logique. Une tâche est primitive, nommée action, si son symbole débute par un point d'exclamation. Sinon c'est une tâche complexe.

Un opérateur est une expression (: operator h D A), où h est une tâche primitive, D et A (Délétion et Addition) des ensembles d'atomes contenant aucune autre variable que celles dans h. Par exemple, voici un opérateur pour mettre un bloc sur une table :

(:operator (!putdown ?block) ((holding ?block))

((ontable ?block) (handempty)))

Le but d'un opérateur est de représenter une action h. Si cette action h est exécutée, les atomes de D seront supprimés de l'état du monde et les atomes de A seront ajoutés. Une méthode est une expression de la forme (: method h C T ), où h est une tâche complexe, C les conditions et T une liste de tâches. Par exemple, voici une méthode pour libérer le dessus d'un bloc :

(:method (make-clear ?y) ((on ?x ?y))

((make-clear ?x)

(44)

Cette méthode a comme condition que X soit sur Y . Les tâches à exécuter sont donc ; 1) de libérer X, 2) d'enlever X de Y et 3) de lâcher X.

Le but d'une méthode est de représenter le fait que si C est satisfait par l'état du monde alors h peut être eectué en réalisant les tâches T dans l'ordre présenté.

Un problème de planication est un tuple P = (S, T, D) où S est l'état du monde, T une liste de tâches et D un ensemble axiomes, d'opérateurs et de méthodes.

Finalement, un plan est une liste ordonnée d'opérateurs. Ces opérateurs constituent les actions qui doivent être eectuées pour résoudre le problème.

La nature hiérarchique de la résolution de problème HTN, tout comme celle de la création d'un lm, suggère que la création d'un modèle HTN du contrôle de la caméra sera naturelle. La possibilité de créer plusieurs versions d'une même vidéo par l'utilisation de diérents coûts comme préférences a aussi été pris en compte. Ces deux facteurs ont donc dirigé le choix de solution vers un planicateur HTN.

(45)

CHAPITRE 3

Planication du contrôle de la caméra

Ce chapitre présente la solution choisie au problème de planication. L'idée géné-rale est présentée et les détails de la modélisation en HTN sont discutés. Finalement, l'algorithme de planication utilisant la modélisation est expliqué.

3.1 Idée générale

L'approche de planication du contrôle de caméra procède en deux temps. En eet, la complexité du contrôle global de caméra est trop grande pour espérer eectuer une planication directe des positions de caméra. Le but est donc de créer deux couches de contrôle. Une première couche qui contrôlera la caméra directement à l'aide d'actions primaires, et une seconde qui sera un planicateur qui devra trouver une suite composée de ces actions primaires. Cela aura comme eet de simplier la planication et de rendre possible la création d'images qui composent un tout sans devoir planier directement chacune d'elles.

La première partie consiste donc à dénir quelles seront les actions primaires et la seconde de trouver une technique de planication qui permettra une modélisation na-turelle. Les actions choisies sont grandement basées sur la section 2.1 qui touche à la théorie de la cinématographie. Une action sera une prise, c'est-à-dire une série d'images

(46)

qui se dénissent par une cible, une prise de vue, un type de mouvement et une valeur de cadrage. La modélisation de ces actions dans le cadre du planicateur choisi sera le sujet de la section 3.2.

Ce qui nous amène à justier le choixde la technique de planication HTN. C'est la technique qui paraît la plus naturelle pour évoluer avec des actions qui doivent se composer en diérentes scènes de façon hiérarchique. L'idée générale est de construire un HTN décrivant les idiomes de caméra créés pour lmer des actions précises. Pour chaque événement qui se produit dans la scène, une série de techniques de lmage possibles (c'est-à-dire une série d'idiomes) sera dénie. Le planicateur devra donc choisir parmi chacune des techniques pour produire un plan valide.

La suite de ce chapitre explique l'algorithme de planication. Le chapitre 4, dédié à l'architecture du système, explique comment l'algorithme est intégré avec un visualiseur 3D pour permettre un contrôle automatique de la caméra selon des idiomes spéciés à priori par un expert.

3.2 Modélisation des actions de contrôle de la caméra

Les actions de contrôle de caméra seront le point de transition entre le planicateur et le contrôleur de la caméra. Les actions seront donc la nalité du planicateur, c'est-à-dire que le planicateur devra terminer son exécution avec une suite d'actions primaires qui seront passées au contrôleur de caméra. Les actions doivent donc être simples et ato-miques. Pour ce faire, nous considèrerons une action comme une sélection d'une prise de vue, d'une cible et d'une valeur de cadrage. Une seule action peut être exécutée à la fois. On utilise donc le planicateur pour spécier des prises de vues. Le rôle du planicateur est de sélectionner des prises de vue qui s'agencent entre elles tout en maximisant l'infor-mation passée à l'utilisateur. Le rôle du contrôleur quant à lui est simplement de prendre les prises une à une et de les appliquer sans se soucier de ce qui vient après ou avant.

Une action possède donc plusieurs champs. Premièrement, la cible principale, c'est-à-dire la plateforme qui doit se trouver au centre de l'image produite et deuxièmement, le temps à laquelle elle débute. Ce temps spécie à quel moment l'action précédente se termine et quand l'action prend le contrôle. Troisièmement, la valeur de cadrage,

(47)

c'est-à-dire la grosseur de la cible dans l'image produite. Dernièrement, le type de mouvement dénit comment la caméra se déplace pendant que l'action conserve le contrôle avant de le céder.

L'operateur HTN qui suit est un exemple d'action primaire utilisée dans la modélisa-tion.

(:operator (!neutral ?dis ?mov ?plat ?current-time) ((distance ?dis) (movement ?mov) (platform ?plat) (time ?current-time) (not (time-used ?current-time))) ()

((time-used ?current-time)) 0)

!neutral est le symbole de cette action. ?dis est la distance à laquelle la caméra sera placée. ?mov et le type de mouvement utilisé dans la scène. ?plat est la cible lmée par la caméra. ?current-time est le temps auquel l'action sera eectuée. La seconde et la troisième ligne sont les pré-conditions. Une vérication est faite pour s'assurer que chaque paramètre correspond au bon type et que le temps ne soit pas occupé par une autre action. Les parenthèses vides sont la partie de délétion qui n'est pas utilisée pour cette action. La ligne suivante est la post-condition qui sera appliquée après l'execution de l'action. Le 0 représente le coût lié à l'exécution de l'action.

Les actions seront exécutées sous forme d'inéquations à respecter. Ces inéquations ont déjà été construites dans la section cinématographique de la revue de littérature. Les points faibles de la technique par respect de contraintes seront contrebalancés par le planicateur. En eet, le planicateur devra choisir, parmi une série de contraintes, lesquelles seront appliquées et à quel moment. Le problème de vision à long terme est donc réglé par le planicateur qui, du même coup, règle le problème de diérenciation entre plusieurs congurations valables. Les techniques de maximisation n'ont pas été choisies pour la complexité combinatoire qu'elles apportent. Il est jugé beaucoup plus simple d'utiliser de simples contraintes géographiques sur la caméra plutôt que de faire un calcul de maximisation. Le gain de la maximisation est minimal puisque les points négatifs ont déjà été réglés.

(48)

Comme mentionné dans le chapitre précédent, chaque action possède des pré-conditions ainsi que des post-conditions. Les pré-conditions dictent les conditions qui doivent être remplies pour que l'action puisse être exécutée. Si une pré-condition n'est pas remplie, l'action ne peut tout simplement pas être exécutée. Un plan qui contiendrait une action qui a une fausse pré-condition au moment où cette action doit être exécutée serait un plan invalide. La pré-condition attribuée aux actions de ce modèle est que la caméra soit libre au moment où l'on veut exécuter l'action. Certaines actions de contrôle du planicateur, des actions vides qui permettent de simplier la modélisation, ont comme pré-condition qu'un événement doit s'être produit. Les post-conditions sont des conditions qui doivent être vraies après que l'action se soit exécutée selon le planicateur. La principale post-condition des actions présentées ici est que la caméra soit considérée comme utilisée pour le temps choisi de l'action. Les pré-conditions et les post-conditions sont appliquées sur des états internes du planicateur et ne modient en rien l'action qui est posée par le contrôleur de la caméra.

3.3 Modélisation des tâches de contrôle de la caméra

Les tâches de contrôle sont quant à elles un intermédiaire qui permet de dénir l'inter-action entre les diérentes l'inter-actions et les diérentes sous-tâches. Une tâche se divise donc en une suite d'actions et de sous-tâches qui doivent s'exécuter dans l'ordre. Une tâche peut posséder plusieurs décompositions diérentes. Chaque décomposition possède ses pré-conditions et post-conditions qui sont héritées des actions qui sont comprises dans l'arbre de ses actions et sous-tâches. Le but est donc de créer un arbre de tâches qui permet de résoudre le problème de sélection d'action de caméra de par sa décomposition. Dans la gure B.1 on peut voir le réseau proposé dans son ensemble. Les rectangles représentent des tâches et les cercles des actions. Les rectangles qui ont un cadre plus large représentent seulement la racine d'une tâche considérée importante. Un lien pointillé signie une division de l'action supérieure et un lien uni signie une suite dans l'ordre des actions. Les cadres pointillés englobent une sous-division ayant plusieurs actions. Par exemple, dans la gure 3.1, on peut voir que get-plan peut se sous diviser en 4 actions possibles. Chacune d'elle s'exécute puis retourne vers get-plan à l'exception de

(49)

Figure 3.1  La racine du réseau

get-plan-nalize. La récurion est représentée par la répétition de get-plan plutôt que des èches vers le haut pour bien montrer l'ordre d'execution.

Comme expliqué plus haut, get-plan possède quatre enfants dont trois retournent vers get-plan lorsque exécutés. Le but étant, de façon récursive, d'exécuter show-new-platform, show-platform-shift et show-shot jusqu'à ce qu'il n'y aie plus rien à montrer et que par la suite on passe vers get-plan-finalize pour, comme son nom l'indique, naliser le plan.

La gure 3.2 montre comment l'action get-plan-finalize se développe pour naliser le plan trouvé précédemment. Comme auparavant, l'action se fait de manière récursive. World-overview tente de trouver des périodes de temps qui n'ont pas été attribuées au-paravant et les utilise pour créer des vues d'ensemble qui vont servir à placer l'action. Une fois toutes les périodes libres comblées, une action vide est utilisée pour terminer la

Figure

Figure 1.1  Simulation de navigation dans l'armée américaine [18]
Figure 1.2  Capture d'écran de SIMDIS
Figure 2.1  Visualisation de la composition d'un lm
Figure 2.2  Exemple de type de plan neutre
+7

Références

Documents relatifs

Le principe de ces méthodes consiste à s'intéresser, non plus à la valeur atteinte en une période par la somme cumulée des erreurs, mais à la variation de cette variable, autrement

nourriture: 4/15, chauffage: 1/15; loyer: 3/15; voiture: 1/7; divers: 2/5 Quelles sont les sommes dépensées pour chaque rubrique. combien dépense-t-elle

Pile : on considère une pile constituée d’une électrode de cuivre plongeant dans une solution de sulfate de cuivre de concentrations [Cu 2+ ] = 0,1 mol.L -1 et d’une électrode

Montrer que P et Q sont sécant suivant une droite D dont on déterminera une

Pour cela, il les choisit simultanément et au hasard du côté gauche de son armoire. 2) Lorsqu’il ne voyage pas, pour déterminer la cravate qu’il portera dans la

Equipe Projet Communauté Ressources Offre

[r]

Les alliages de semiconduc- teurs les plus utilisés sont : l’InGaAs (sensible entre 0,9 et 1,7µm (bande SWIR), l’InSb (sensible entre 3 et 5µm (bande MWIR)), les multipuits