• Aucun résultat trouvé

eCandy Evolutionary Camera Network Deploy

N/A
N/A
Protected

Academic year: 2021

Partager "eCandy Evolutionary Camera Network Deploy"

Copied!
135
0
0

Texte intégral

(1)

eCANDY

Evolutionary Camera Network Deploy

Mémoire présenté

à la Faculté des études supérieures de l'Université Laval dans le cadre du programme de maîtrise en génie électrique

pour l'obtention du grade de Maître es sciences (M.Sc.)

FACULTE DES SCIENCES ET DE GENIE UNIVERSITÉ LAVAL

QUÉBEC

2010

(2)

Les systèmes de surveillance vidéo comme méthode de prévention et de protection connaissent une popularité grandissante. Cependant, des études tendent à démontrer que le placement des caméras est généralement inadéquat, se soldant en des systèmes à efficacité limitée. Ce mémoire propose une méthode permettant le placement auto-matique d'un nombre variable de caméras dans un environnement arbitraire en vue d'en optimiser le coût et la performance. Nous développons une formulation de la problématique pouvant servir à l'expression générale de plusieurs problèmes de pla-cement de caméras. Les problèmes sont résolus grâce à un algorithme évolutionnaire, utilisant une représentation à taille variable, qui produit en sortie un ensemble de solu-tions exprimant les compromis possibles entre le coût et la performance. L'analyse qua-litative des solutions est réalisée à l'aide de trois paradigmes de visualisation développée pour ce projet. Nous analysons trois problèmes concrets résolus par l'algorithme.

(3)

Ce mémoire porte sur des travaux de recherche dont l'idée et les concepts ont d'abord vu le jour à l'Institut National d'Optique. Je tiens d'abord à remercier 1TNO qui sans aucun doute concrétisa ma carrière en recherche en m'offrant un premier stage après seulement une année de baccalauréat, puis en poursuivant son appui tout au long de mes études. Je tiens particulièrement à remercier les chercheurs Pascal Bourqui, Michel Robert et Benoît Debaque qui m'auront grandement aidé dans mes débuts en recherche et à qui je dois la grande majorité de mes aptitudes dans le domaine la vision numérique. Je tiens aussi à remercier mon directeur de recherche, Marc Parizeau, qui m'aura guidé avec brio dans la réalisation de ma maîtrise et dans le développement de mes aptitudes à la recherche. Je le remercie aussi de m'avoir partagé sa passion du calcul haute performance qui permit la réalisation du modèle d'algorithmes évolutionnaires à mémoire distribuée présenté au chapitre 3. Je tiens aussi à souligner le support indéniable du professeur Christian Gagné qui tout au long de ce projet m'aura transmis une part de ses connaissances sur les algorithmes évolutionnaires.

Finalement, je tiens à remercier 1TNO et mon directeur de recherche pour leur soutien financier tout au long de ma maîtrise.

(4)
(5)

Resume ii Avant-Propos iii

Table des matières vii Table des algorithmes viii Liste des tableaux ix Table des figures xii

1 Introduction 1 1.1 Placement de capteurs 3 1.2 Méthodes d'optimisation 6 1.2.1 Algorithmes voraces G 1.2.2 Programmation linéaire 7 1.2.3 Recuit simulé 7 1.2.4 Algorithmes génétiques 8 1.3 Objectifs de recherche 8 1.4 Plan du mémoire 9 2 Problématique 11 2.1 Environnement 12 2.1.1 Obstacle 12 2.1.2 Zone 13 2.1.3 Algorithmes 15 2.2 Capteurs 21 2.2.1 Modèle physique de Tsai 21

2.2.2 Caméra et réseau 21

2.3 Positionnement 24 2.4 Evaluation de la performance 28

(6)

2.4.2 Évaluation de l'erreur 30 2.4.3 Évaluation de la précision 31 2.5 Fonctions objectifs 32 2.6 Représentation 32 2.7 Conclusion 33 Algorithmes évolutionnaires 36 3.1 Introduction 36 3.1.1 Algorithmes génétiques 38

3.2 Algorithmes évolutionnaires distribués 38 3.2.1 Modèle à mémoire partagée 39 3.2.2 Modèle à mémoire distribuée 43 3.3 Optimisation d'un réseau de caméras 53

3.3.1 Représentation 54 3.3.2 Opérateurs 55 3.3.3 Multi-objectifs 58 3.3.4 Algorithme GO 3.4 Conclusion G2 Méthodes de visualisation 64 4.1 Textuel - XML G4 4.2 Graphique 2D - SVG 05 4.3 Graphique 3D - Google SketchUp 68

4.4 Conclusion 70 Expérimentations 74 5.1 Problèmes 74

5.1.1 Problème 1 : le cube 75 5.1.2 Problème 2 : le stationnement 77

5.1.3 Problème 3 : la salle d'exposition 80

5.2 Protocole expérimental 84

5.3 Résultats 85 5.3.1 Problème 1 : le cube 85

5.3.2 Problème 2 : le stationnement 95 5.3.3 Problème 3 : la salle d'exposition 100

5.4 Conclusion 112 Conclusion 115 6.1 Contributions 115 6.2 Perspectives 117

(7)
(8)

2.1 Inclusion d'un point dans un polygone 16 2.2 Recherche des zones contenant un point 17 2.3 Récupération de la valeur d'un attribut associé à un point 19

2.4 Échantillonnage d'une zone 20 2.5 Échantillonnage d'une hiérarchie de zones 20

2.6 Échantillonnage de l'environnement 21 2.7 Inclusion d'un point dans le champ de vue d'une caméra 28

2.8 Calcul d'intersection du rayon entre un point et une droite et les murs. 30

2.9 Calcul de l'erreur de reconstruction 3D en un point 31

3.1 Algorithme évolutionnaire de base «38

3.2 Patron d'opérateur 40 3.3 Algorithme génétique utilisé dans le cadre du projet 62

(9)

3.1 Distribution des tâches en fonction du rang pour N — 12, e = 3 49

3.2 Opérateurs de transmission 53 5.1 Paramètres des zones du problème 1 76

5.2 Paramètres de l'obstacle du problème 1 76 5.3 Paramètres du modèle de caméra utilisé pour le problème 1 77

5.4 Paramètres des zones du problème 2 78 5.5 Paramètres de l'obstacle du problème 2 78 5.6 Paramètres des modèles de caméras utilisés pour le problème 2 7<S

5.7 Paramètres des obstacles du problème 3 80 5.8 Paramètres des zones du problème 3.1 81 5.9 Paramètres des zones du problème 3.2 81 5.10 Paramètres des modèles de caméras utilisés pour le problème 3 82

5.11 Paramètres de l'algorithme évolutionnaire propres à chaque problème. . 85 5.12 Paramètres des caméras d'une solution couvrant toutes les zones du

problème 1.1 89 5.13 Paramètres des caméras d'une solution couvrant toutes les zones du

pro-blème 1.2 95 5.14 Paramètres des caméras d'une solution couvrant tous les points du

pro-blème 2 à faible coût 97 5.15 Paramètres des caméras d'une solution couvrant tous les points du

pro-blème 3.1 à faible coût 105 5.16 Paramètres des caméras d'une solution au problème 3.2 ayant une

(10)

2.1 Hiérarchie de zones 12 2.2 Exemples d'obstacles 13 2.3 Exemples de hiérarchies de zones, (a) Aucun recoupement entre les zones

sœurs, (b) Chaque zone est fille de la précédente, (c) Recoupement partiel

entre les zones sœurs 18 2.4 Ordre prefix de l'échantillonnage d'une hiérarchie de zones 19

2.5 Exemple de positionnement en fonction des contraintes 26 2.6 Direction du déplacement pour les 3 cas de figure 27

2.7 Exemple de fichier XML d'un scénario 34 3.1 Subdivision en deux tâches concourantes 40 3.2 Utilisation du générateur de nombres pseudo-aléatoires distribué. . . . 42

3.3 Topologie des communications 45 3.4 Communications durant l'initialisation des GNPA 45

3.5 Communications durant l'initialisation des dèmes 46

3.6 Communications durant l'évolution 47 3.7 Communications des journaux 48 3.8 Exemple de croisement en deux points 56

3.9 Exemple de mutation gaussienne 57 3.10 Exemple de mutation par l'ajout d'un bloc 57

3.11 Exemple de mutation par le retrait d'un bloc 58 3.12 Distribution de la probabilité d'application des opérateurs (il

4.1 Exemple d'une solution au format XML 66 4.2 Exemple de graphique 2D d'un environnement 67 4.3 Exemple de graphique 2D d'un réseau déployé dans un environnement. 68

4.4 Exemple d'environnement en 3D 69 4.5 Gestion des attributs d'un obstacle 70 4.6 Exemple d'environnement 3D avec des points de repère 71

4.7 Vues de chacune des caméras telles que positionnées à la figure 4.3. . . 72

5.1 Vue 2D de référence du problème 1 75 5.2 Vue 3D de l'environnement du problème 2 77

(11)

5.3 Vue 2D de référence du problème 2 79 5.4 Solution optimale d'Erdem et Sclaroff pour le problème 2 80

5.5 Vue 3D de l'environnement du problème 3 81 5.6 Solution optimale d'Erdem et Sclaroff pour le problème 3 82

5.7 Vue 2D de référence du problème 3 83 5.8 Exemple d'un front de Pareto obtenu pour le problème 1.1 80

5.9 Évolution des moyennes des statistiques de la performance des solutions

du problème 1.1 88 5.10 Évolution des moyennes des statistiques du coût des solutions du

pro-blème 1.1 88 5.11 Solution couvrant toutes les zones du problème 1.1 89

5.12 Quatre exemples de combinaisons de trois caméras trouvées par

l'algo-rithme durant une expérience pour le problème 1.1 90 5.13 Exemple d'un front de Pareto obtenu pour le problème 1.2 91

5.14 Évolution des moyennes des statistiques de la performance des solutions

du problème 1.2 92 5.15 Évolution des moyennes des statistiques du coût des solutions du

pro-blème 1.2 92 5.16 Solution couvrant toutes les zones du problème 1.2 93

5.17 Exemples de combinaisons de caméras trouvées par l'algorithme durant

une expérience pour le problème 1.2 94 5.18 Exemple d'un front de Pareto obtenu pour le problème 2 96

5.19 Solution couvrant tous les points pour un coût minimum pour le problème

2 97 5.20 Vues de chaque caméra de la solution couvrant tous les point de

l'envi-ronnement au plus faible coût 98 5.21 Évolution des moyennes des statistiques de la performance des solutions

du problème 2 99 5.22 Évolution des moyennes des statistiques du coût des solutions du

pro-blème 2 100 5.23 Solution couvrant le plus de points pour un coût minimum pour le

problème 2 101 5.24 Exemples de réseaux trouvés par l'algorithme durant une expérience pour

le problème 2 102 5.25 Exemple d'un front de Pareto obtenu pour le problème 3.1 103

5.26 Solution couvrant tous les points pour un coût minimum pour le problème

3.1 104 5.27 Évolution des moyennes des statistiques de la performance des solutions

(12)

5.28 Évolution des moyennes des statistiques du coût des solutions du

pro-blème 3.1 106 5.29 Solution offrant la meilleure performance pour un coût minimum pour le

problème 3.1 107 5.30 Exemples de réseaux de caméras performants pour le problème 3.1. . . 108

5.31 Exemple d'un front de Pareto obtenu pour le problème 3.2 109 5.32 Évolution des moyennes des statistiques de la performance des solutions

du problème 3.2 110 5.33 Évolution des moyennes des statistiques du coût des solutions du

pro-blème 3.2 110 5.34 Solution du problème 3.2 ayant une performance de 100% pour le plus

faible coût 111 5.35 Exemples de réseaux de caméras performants pour le problème 3.2. . . 113

(13)

Introduction

Les deux dernières décennies ont été considérablement marquées par une augmen-tation de l'installation de systèmes de surveillance servant à la protection du public et à la prévention d'actes criminels. L'une des raisons notoires de cette hausse est l'appli-cation des technologies numériques aux systèmes de surveillance. L'usage de caméras numériques entraîna une baisse considérable des coûts liés à l'installation de systèmes de surveillance, et favorisa donc son accessibilité. La démocratisation de ces technolo-gies est à un point tel qu'un produit utilisé pour effectuer la surveillance d'un édifice commercial peut aussi être retrouvé chez un particulier.

L'efficacité des systèmes de surveillance par caméras à prévenir ou à résoudre des actes criminels est aussi souvent abordée pour justifier la mise en place de tels systèmes. L'un des exemples les plus connus de déploiement de réseaux de caméras à grande échelle est Londres. La ville a déployé de vastes systèmes de surveillance dans les différents environnements les plus populeux et les plus à risque. Parmi ces environnements, on compte la ligne centrale de métro comprenant 34 stations surveillées par 500 caméras [30, p.7], l'aéroport Heathrow et son stationnement surveillée par plus de 200 caméras [30, p.9], ainsi que de nombreux sites touristiques tels que les zoos et les musées où l'on peut retrouver entre 11 et 140 caméras.

L'efficacité de ces déploiements massifs de caméras est cependant remise en cause. Il s'avère que les performances des systèmes de caméras installés, à Londres par exemple, soient bien en deçà des performances attendues [2]. L'une des causes de ces piètres performances est le positionnement inadéquat des caméras dans l'environnement de-vant être surveillé. Le design des réseaux de caméras est souvent réalisé sans égard aux propriétés optiques du système et se solde en un ensemble de caméras n'obser-vant pas correctement les régions d'intérêt. Le design est aussi souvent effectué dans

(14)

l'unique objectif de réduire les coûts d'installation, causant des régions d'intérêt non observées. Un exemple d'échec de ce type de design se produisit à l'aéroport Heathrow au milieu des années 1990. Un vol de plus d'un million de livres ne fut pas observé, car les caméras installées dans les stationnements de l'aéroport étaient en fait de fausses caméras installées à peu de frais [30, p.9].

La valeur des images saisies par ces systèmes est indéniable et leurs applications sont multiples. La plupart des études de systèmes de surveillance par caméras vidéo consistent justement aux développements de nouveaux algorithmes permettant l'ex-traction de l'information de ces images. Les applications sont multiples, elles vont de la reconnaissance de visages [50] au tracking d'objets [49]. Les performances de ces systèmes logiciels dépendent de la qualité et de la pertinence des images produites. Or, le faible nombre d'études s'intéressant au design de systèmes de surveillance par caméras vidéo et les insuccès relevés entre autres à Londres tendent à démontrer qu'il existe un manque au niveau de la méthodologie du design de ces systèmes, et plus particulièrement au niveau du positionnement des caméras.

Le design de ces systèmes implique l'exploration d'un domaine de recherche très vaste. Les composantes de cet espace peuvent être par exemple les modèles de caméras, les positions spatiales et angulaires des caméras, et le nombre de caméras. Étant donné le nombre élevé de valeurs que peut prendre chacune de ces variables, on assiste à une explosion combinatoire lors de la recherche de l'optimum. Il peut donc être parti-culièrement ardu pour un designer de pareil système d'effectuer une exploration sans biais du domaine et d'en extraire l'optimum. De plus, l'objectif de l'exploration du do-maine est double soit la minimisation du coût de déploiement et la maximisation de la performance du réseau. Puisqu'aucun des deux objectifs ne prévaut sur l'autre et que les deux objectifs sont fortement contradictoires, il peut exister plus d'un optimum. Cette contradiction entre les objectifs et la présence de plusieurs solutions contribuent davantage à la difficulté du problème. Il nous apparaît donc évident que le design de réseaux de caméras dans un cadre de surveillance nécessite l'assistance d'un système d'optimisation qui à partir d'une représentation de l'environnement, de contraintes et d'une connaissance des caméras disponibles, puisse soumettre au designer un ensemble de solutions optimales au sens de Pareto. Le designer n'aurait par la suite qu'à choisir le compromis satisfaisant le mieux ces besoins en matière de sécurité et d'économie.

À la lumière de ces observations, nous proposons donc dans ce mémoire une approche nouvelle permettant une assistance automatisée dans le cadre d'un déploiement de réseau de caméras. Plus particulièrement, nous proposons : un formalisme de représen-tation du problème incluant l'environnement, les contraintes économiques, stratégiques et matérielles; une méthode d'optimisation multi-objectifs, qui à partir du formalisme,

(15)

produit un ensemble de solutions offrant différents degrés de compromis à l'usager ; et finalement des outils de visualisation des solutions aidant le designer à déterminer la meilleure solution à son problème.

À la section 1.1, nous présentons les travaux antérieurs effectués dans le domaine du placement automatique de réseaux de capteurs. Par la suite, à la section 1.2, nous présentons une revue des méthodes d'optimisation pouvant potentiellement être em-ployées en vue d'effectuer l'optimisation du placement d'un réseau de caméras. À la section 1.3, nous introduisons les objectifs de recherche fixés, et finalement, nous ter-minons à la section 1.4 par la présentation du plan du mémoire.

1.1 Placement de capteurs

Un problème de positionnement très étudié en géométrie computationnelle est le Art Gallery Problem (AGP). Il consiste à déterminer le nombre minimum de gardes nécessaires permettant de couvrir complètement une galerie d'art représentée par un polygone simple. Un garde dispose d'un champ de vue sur 360 degrés, et d'une visibilité infinie. Le problème fut d'abord introduit par Chvàtal [6], qui démontra que pour un polygone à N côtés, au plus [yj gardes sont nécessaires. Lee et Line démontrèrent que le problème était de la classe des problèmes NP-complet [28]. O'Rourke rassembla dans son livre l'ensemble des variantes de l'AGP [36], et plus récemment Urrutia rédigea un compte-rendu des travaux effectués depuis O'Rourke [45]. Le problème fut étendu afin de considérer des modèles de terrains 3D [3, 29]. Ce problème est aussi NP-complet [7]. Étant donné la complexité algorithmique de la recherche d'une solution, les hypothèses quant à la forme de l'environnement et à la visibilité des gardes, l'application des résultats obtenus par les théorèmes développés pour l'AGP au monde de la surveillance est très limitée.

Le domaine des réseaux de capteurs dans un objectif de surveillance fait l'ob-jet de plusieurs études étant donné son lien critique avec la sécurité du public. Ro-mer répertorie les contraintes liées au design de réseaux de capteurs, ainsi que leurs différentes applications possibles [41]. Plus particulièrement, les besoins en matière de surveillance par caméras vidéo ont été étudiés pour les ports [39], les gares de métro et et de trains [39, 15], les établissements commerciaux [40], ou encore les stationnements [32, 37]. Pavlidis et Morellas détaillent dans [37] le design d'un prototype de système de surveillance, et de son implementation dans un contexte réel. Ils ne proposent toutefois pas de méthode permettant l'optimisation automatique du positionnement des caméras en fonction d'objectifs précis.

(16)

L'optimisation du placement d'un réseau de caméras dans un contexte de sur-veillance est un domaine toutefois très peu étudié comparativement à l'ensemble des sous-domaines de la surveillance par caméra. Les quelques études effectuées sur le sujet écartent généralement de la problématique certains aspects fondamentaux au design d'un réseau de caméras de surveillance ou encore simplifient la problématique à un point tel que les résultats ne peuvent être appliqués en pratique.

Nous avons relevé les principaux travaux réalisés dans le cadre du placement auto-matique d'un réseau de caméras. Nous présentons ici ces travaux ainsi que les lacunes que nous avons identifiées et que nous chercherons à combler dans le cadre de ce projet. Dans son article A design methodology for selection and placement of sensors in multimedia surveillance systems [38], Ram présente une méthodologie permettant le placement de caméras et de capteurs infrarouges dans un contexte multimédia. L'ob-jectif de l'article est de fournir une boîte noire permettant à un usager l'optimisation d'un réseau de capteurs. L'usager entre la géométrie de la région à surveiller, les types de capteurs, la tâche à effectuer, et les performances à obtenir, et reçoit en sortie l'en-semble optimal de capteurs et leur positionnement. L'optimisation s'effectue en deux étapes, où chaque étape a pour but l'optimisation d'un seul objectif. Il optimise d'abord le placement des caméras, puis le nombre de capteurs de mouvement nécessaires. La métrique de performance du réseau de caméras est basée sur la probabilité de voir un point dans un plan. L'étude se limite strictement à des environnements convexes. Les positions de caméras sont discrétisées le long de la région à surveiller. Puisqu'ils uti-lisent un modèle de caméra Pan-Tilt-Zoom (PTZ), aucune optimisation n'est réalisée au niveau de l'orientation des caméras.

Erdem et Sclaroff présentent quant à eux une méthode d'optimisation de place-ment de caméras dans des environneplace-ments planaires quelconques [12]. Leur but est de déterminer le positionnement et le nombre optimal de caméras pour une région ob-servée. Ils définissent, en plus de la région à observer, des contraintes spécifiques à la tâche à effectuer, ainsi qu'un ensemble de modèles de caméras à utiliser. Un environ-nement peut contenir des zones ayant des contraintes supplémentaires de résolution. Ils utilisent un modèle de caméra omnidirectionnelle disposant d'un champ de vue sur 360 degrés. Ils utilisent au plus deux modèles de caméra disposant de focales différentes par problème. Leur environnement étant entièrement planaire, le calcul de visibilité des caméras ne considère pas la hauteur des obstacles. L'optimisation est réalisée sur la position des caméras et sur le nombre de caméras. Les positions auxquelles les caméras peuvent être placées sont discrétisées avant d'effectuer l'optimisation.

(17)

Scia-roff [48]. Par contre, ils utilisent plutôt une caméra modélisée par un cône projeté dans le plan. La visibilité est déterminée en discrétisant l'environnement en tuile carrée, si le centre de la tuile est vu, toute la tuile est considérée comme vue. Les tuiles peuvent dis-poser d'une importance variable afin d'en garantir la couverture. L'optimisation cherche à maximiser le nombre de tuiles vues tout en réduisant le nombre de caméras. Étant donné qu'ils utilisent un seul modèle de caméra, ils ne considèrent pas les coûts des caméras, ni les coûts d'installation. L'optimisation linéaire s'effectue en deux étapes. D'abord, les caméras sont positionnées dans l'environnement, puis la direction optimale de chaque caméra est déterminée en fonction de sa position. Leur approche ne permet pas de trouver les compromis possibles entre la couverture des tuiles et le nombre de caméras disposées en une seule optimisation.

Murray lui s'intéresse à des environnements pleinement 3D [34]. Ces derniers sont décrits à l'aide de modèles de type geographic information system (GIS). Les caméras utilisées sont des PTZ, et la couverture des caméras est modélisée comme l'ensemble de l'espace pouvant potentiellement être vu par la caméra si un opérateur la contrôlait. L'optimisation s'effectue selon un seul objectif soit la maximisation de l'espace poten-tiellement couvert par les caméras. Le nombre de caméras est fixé avant l'optimisation. Le coût des solutions n'est pas optimisé directement. Seule la position des caméras est optimisée, et les positions possibles sont préalablement discrétisées. Kim poursuit les travaux de Murray [26] et cherche à résoudre le problème de la couverture primaire et secondaire. Il cherche à assurer que les régions couvertes par les caméras soient cou-vertes par au moins deux caméras à la fois. Il utilise un algorithme évolutionnaire pour déterminer l'indice des positions des caméras installées dans l'environnement. Dans les deux articles, la couverture est déterminée à partir de points discrétisés au sol.

Horster et Lienhart présentent dans deux articles une approche par programmation linéaire pour l'optimisation du positionnement d'un réseau de caméras. Dans un pre-mier article [22], ils cherchent à déterminer le nombre minimum de caméras permettant de couvrir complètement un espace à une fréquence d'échantillonnage donnée. L'opti-misation est réalisée sur la position et l'orientation des caméras. Les positions et les orientations possibles sont préalablement discrétisées. Les caméras sont modélisées par un triangle dont l'usager doit paramétrer la base et la hauteur. L'environnement est échantillonné selon une résolution régulière unique. Ces points servent à déterminer le pourcentage de couverture dans le plan d'un réseau de caméras. Les environnements étudiés ne comprennent aucun obstacle puisque le modèle de caméra ne considère pas les occlusions. L'optimisation n'a qu'un seul objectif : trouver la configuration cou-vrant tous les points échantillonnés dans l'environnement avec un nombre minimum de caméras.

(18)

Dans leur second article [23], ils améliorent la représentation de l'environnement en ajoutant des obstacles et en considérant l'occlusion des caméras. L'environnement peut aussi être muni de zones dont l'importance peut être variée en modifiant la résolution d'échantillonnage. Le modèle de caméra demeure le même modèle simpliste, et le posi-tionnement est toujours discret. Ils proposent aussi une interface graphique permettant de définir visuellement le problème. Cependant, l'usager possédant déjà un CAD de son environnement doit néanmoins redessiner entièrement son environnement dans l'appli-cation pour définir son problème. Les environnements y sont définis en seulement 2 dimensions, et il n'existe pas la possibilité d'établir les dimensions physiques réelles de l'environnement et des obstacles.

1.2 Méthodes d'optimisation

La résolution du problème auquel on s'intéresse implique la recherche des meilleures solutions parmi un ensemble de solutions candidates. Les méthodes d'optimisation décrivent comment rechercher une solution parmi les candidats. Le théorème du No-Free lunch (NFL) [46, 47] démontre que n'importe quel algorithme est équivalent à un autre lorsque leurs performances sont calculées sur l'ensemble de tous les problèmes. Autrement dit, un algorithme performant bien sur une classe de problèmes donnée sera surclassé par un second algorithme sur l'ensemble des autres classes de problèmes. Le choix d'une méthode d'optimisation doit donc s'effectuer en fonction des performances d'un algorithme sur la classe du problème d'intérêt.

1.2.1 Algorithmes voraces

Les algorithmes voraces consistent à toujours choisir la solution donnant le meilleur résultat localement dans l'espoir de trouver l'optimum global [8]. Ainsi les choix ef-fectués par un algorithme vorace dépendent des choix passés, mais ne considèrent pas les choix futurs. Cette méthode d'optimisation performe bien lorsque le problème peut être décomposé en un ensemble de sous-problèmes. L'algorithme réduit donc le problème en une série de sous-problèmes résolus un à un, sans reconsidérer la validité de ses choix passés. Cette caractéristique appliquée à des problèmes dont la fonction objectif contient plusieurs optimums locaux se soldant par une absence de garantie de convergence. Dans certains cas, l'algorithme peut même en arriver à déterminer seulement la pire solution au problème [1].

(19)

1.2.2 Programmation linéaire

La programmation linéaire consiste à optimiser un objectif qui est une fonction linéaire de variables soumises à un ensemble de contraintes linéaires exprimées sous la forme d'égalités ou d'inégalités [9]. Lorsque les variables sont discrètes, on parle de programmation linéaire en nombre entier. L'usage de variables discrètes permet la représentation d'un vaste ensemble de problèmes comprenant des discontinuités. La résolution de ce type de problème fut démontrée comme NP-complet [25]. Plusieurs des problèmes NP-complets peuvent donc être exprimés comme des problèmes de pro-grammation linéaire en nombre entier. Les problèmes de propro-grammation linéaire ne disposent que d'une seule fonction objectif linéaire. Dans la mesure où un problème im-plique plusieurs objectifs, la fonction d'optimisation consiste en une somme pondérée des objectifs. L'usage d'une somme pondérée implique plusieurs désavantages résumés dans [42]. Premièrement, la détermination a priori de la valeur des poids, peu importe la technique utilisée, ne garantit pas nécessairement que la solution finale sera acceptable. Deuxièmement, il est impossible d'obtenir des solutions se trouvant dans une région non convexe du front de Pareto. Troisièmement, la variation constante et continue des poids ne garantit d'aucune façon une distribution uniforme des points le long du front de Pareto. Elle ne garantit pas non plus la représentation exacte et complète de l'ensemble optimal de Pareto.

1.2.3 Recuit simulé

Le recuit simulé s'appuie sur une analogie au principe métallurgique du recuit pour effectuer une recherche de la solution optimale [27]. Un paramètre de température détermine la proximité de la recherche entre la solution courante et la prochaine solu-tion. Plus la température est élevée, plus la recherche est aléatoire. Plus la température est faible, plus la prochaine solution sera proche de la solution actuelle. Le degré de température est réduit graduellement au fil des itérations. Contrairement aux algo-rithmes voraces, il est cependant possible de sélectionner une solution dont la perfor-mance est inférieure à celle de la solution actuelle, ce qui évite à l'algorithme de bloquer sur un optimum local. Cependant, les performances du recuit simulé sont liées à la di-mension du problème, et pour des problèmes disposant de vastes espaces de recherche, les algorithmes évolutionnaires perforaient généralement mieux [35].

(20)

1.2.4 Algorithmes génétiques

Parmi les algorithmes évolutionnaires, l'une des techniques les plus utilisées pour ef-fectuer l'optimisation de problème complexe demeure les algorithmes génétiques fondés sur le principe de la sélection naturelle [33]. Certaines caractéristiques propres aux al-gorithmes génétiques en font une technique de recherche et d'optimisation appropriée au problème d'intérêt. Premièrement, l'émergence de plusieurs solutions alternatives au problème est favorisée par l'emploi d'une population de solutions. Cette technique peut donc faciliter l'exercice d'une prise de décision en offrant plusieurs solutions al-ternatives à un problème donné. Deuxièmement, aucune présomption quant à la taille, la forme, l'unimodalité, ou la continuité de l'espace de recherche ne doit être effectuée pour permettre à un algorithme génétique de converger [33]. L'usage d'une population permet aussi aux algorithmes génétiques de bien performer lorsque la fonction objectif est bruitée, comparativement aux techniques d'optimisation employant une seule solu-tion à chaque itérasolu-tion qui ont tendance à demeurer coincer sur des optimums locaux. Troisièmement, l'usage de techniques multi-objectifs élitistes tel que NSGA [11] permet un excellent compromis entre l'exploration du domaine de recherche et l'exploitation des solutions découvertes. En effet, l'algorithme génétique doit mettre également l'ac-cent sur les solutions non dominées dans la population (exploitation) et la préservation de la diversité des solutions (exploration). Finalement, contrairement à l'usage d'une somme pondérée, l'usage d'algorithmes génétiques multi-objectifs garantissent par les mécanismes de préservation de la diversité, une couverture uniforme du front de Pareto, et ce, sans égard à sa convexité [10].

1.3 Objectifs de recherche

Les objectifs de premier ordre ont pour but de pallier les manques laissés par les travaux précédents

1. Effectuer le positionnement sur un domaine continu. Nous n'effectuerons aucune discrétisation du domaine du positionnement spatial et angulaire des caméras. De tous les articles revus à la section précédente, tous effectuent une discrétisation préalable du domaine du positionnement des caméras. De plus, le positionnement angulaire est rarement considéré puisque dans la plupart des cas, des caméras disposant d'un champ de vue sur 360 degrés sont utilisées. Le formalisme uti-lisé permettra aussi l'application de contraintes de positionnement. Cependant, contrairement aux articles précédents, ces contraintes seront définies sur un

(21)

do-maine continu.

2. Déployer une méthode d'optimisation multi-objectifs optimisant le coût et la per-formance des réseaux de caméras. Contrairement aux approches par programma-tion linéaire avec somme pondérée [12, 23, 34, 48], notre approche proposera à l'usager un ensemble de solutions illustrant les différents compromis entre le coût et la performance du réseau pour son environnement, sans avoir à relancer les calculs avec des paramètres différents.

3. Proposer un formalisme simple et tridimensionnel permettant la représentation du problème et de l'environnement. Certains articles négligent ou simplifient certains aspects fondamentaux à la représentation du problème tels que le champ de vue des caméras, ou la hauteur des obstacles [12, 23, 48]. Ceci a pour effet de limiter les applications réelles des résultats obtenus pour ces représentations. Notre for-malisme sera simple, mais complet, et permettra de définir rapidement un large ensemble de problèmes de positionnement de caméras dans un environnement polygonal 3D.

Les objectifs de second ordre consistent à proposer des améliorations ou des outils qui ne sont pas essentiels, mais dont l'usage peut grandement faciliter la tâche du déploiement d'un réseau de caméras.

1. Développer des outils permettant l'exploitation de l'aspect massivement parallèle des algorithmes évolutionnaires dans le but d'attaquer des problèmes de placement de capteurs qui soient plus complexes que ce qui est généralement étudié, tout en maintenant un temps de calcul raisonnable.

2. Développer des méthodes de visualisation des environnements et des solutions au problème de placement de caméras afin de faciliter l'interprétation de la qualité des solutions.

1.4 Plan du mémoire

Le premier chapitre consiste en la présente introduction au domaine du placement de caméras. Nous y avons présenté une brève introduction de l'état du domaine de la surveillance par caméra vidéo, et des problèmes engendrés par les techniques de conception actuel. Nous avons par la suite effectué une revue de l'état de l'art du positionnement automatique de caméras, et des méthodes d'optimisation. Nous avons conclu cette introduction en énumérant les objectifs de recherche que nous proposons pour ce mémoire, et qui permettront de combler les lacunes des approches proposées par les articles que nous avons revus.

(22)

Le second chapitre présente le formalisme que nous avons développé pour représenter un large ensemble de problèmes de déploiement de caméras de surveillance. Nous y intro-duisons d'abord les concepts d'environnement, de zones et d'obstacles qui constituent la pierre angulaire de la représentation d'un problème de déploiement de réseaux de caméras. Nous présentons ensuite le modèle de caméra utilisé, les fonctions objectifs et les différents algorithmes utilisés pour représenter le problème.

Le troisième chapitre présente la méthode évolutionnaire d'optimisation employée pour résoudre le problème de placement de caméras. Dans la première section du cha-pitre, nous introduisons d'abord la théorie derrière les algorithmes évolutionnaires et les algorithmes génétiques. Dans la seconde section du chapitre, nous présentons deux modèles de parallélisation d'algorithmes évolutionnaires et nous décrivons le détail de l'implémentation de ces algorithmes. Finalement, nous présentons l'algorithme élitiste permettant l'optimisation de réseaux de caméras.

Le quatrième chapitre présente les outils de visualisation du problème de déploie-ment de caméras et de ces solutions. Nous y présentons trois paradigmes de visualisation des problèmes et de leurs solutions soit une méthode textuelle, visuelle 2D et visuelle 3D.

Le cinquième chapitre rassemble les résultats produits par les outils présentés préala-blement dans le mémoire. Nous présentons d'abord trois problèmes illustrant la flexi-bilité du formalisme et la puissance des outils développés. Nous décrivons ensuite le protocole expérimental utilisé pour réaliser les résultats. Finalement, nous analysons les résultats obtenus pour chacun des problèmes.

Le dernier chapitre conclut le mémoire. Nous y effectuons une revue de l'ensemble du mémoire, et analysons les contributions apportées par la recherche effectuée. Nous terminons le mémoire par une ouverture sur les perspectives futures qui pourraient être abordées lors d'une éventuelle continuation de ce projet.

(23)

Problématique

Nous cherchons à résoudre un problème fondamental au domaine de la surveillance, soit la manière la plus économique et précise de surveiller un environnement d'intérêt. Le but est donc de trouver un compromis entre le coût des installations de surveillance et la performance du système dans le cadre d'un scénario donné.

La recherche de l'optimum nécessite une représentation claire et simple du problème que l'on cherche à résoudre. Nous proposons donc dans ce chapitre un formalisme permettant de représenter un vaste ensemble de problèmes de placement de caméras. L'étude se limite à des caméras disposant d'une position et d'un champ de vue fixe. Ces caméras seront placées dans des environnements polygonaux tridimensionnels.

Nous présentons d'abord le concept d'environnement à la section 2.1. Il s'agit de la représentation physique et stratégique du problème que l'on cherche à résoudre. Nous présentons, à la section 2.2, la représentation des capteurs incluant le modèle optique utilisé pour déterminer le champ de vue d'une caméra. À la section 2.3, nous poursuivons avec la description de l'algorithme permettant de contraindre le positionnement des caméras. Les algorithmes permettant de quantifier la performance d'une solution pour un problème donné sont décrits à la section 2.4. À partir des algorithmes de mesure de performance, nous présentons les deux fonctions objectifs permettant d'évaluer un réseau à la section 2.5. L'assemblage de ces éléments forme un problème de placement de caméras dont le formalisme est décrit à la section 2.6.

(24)

Environnement

Zone 1 Zone 2 ... Zone N Zone 2.1 ... Zone 2.i

FIGURE 2.1 - Hiérarchie de zones.

2.1 Environnement

L'environnement représente la région polygonale que l'on souhaite surveiller. La région d'intérêt peut être décomposée en une hiérarchie de zones dont l'environne-ment est la racine. Cette hiérarchie permet aux zones d'hériter des attributs de leur parent qu'elles ne redéfinissent pas elles-mêmes. L'environnement étant la racine de la hiérarchie, elle doit définir tous les attributs d'une zone. La figure 2.1 illustre une hiérarchie de zones pour un environnement arbitraire. L'environnement regroupe aussi l'ensemble des obstacles présents dans la région d'intérêt. Un obstacle est défini comme tout élément pouvant réduire la visibilité d'une caméra.

Afin de simplifier le formalisme, on pose l'hypothèse que les frontières de l'envi-ronnement forment un rectangle, et que le sol est planaire. Les zones et les obstacles peuvent être des polygones quelconques, et permettent donc de modifier librement la géométrie de l'environnement.

2.1.1 Obstacle

Un obstacle est constitué d'une base polygonale de laquelle s'élèvent des murs rec-tangulaires orthogonaux au sol. La base polygonale des obstacles se trouve dans le plan z = 0. La hauteur des murs est fixe et identique pour chaque mur d'un même obstacle. Les murs sont opaques, il est donc impossible pour une caméra de voir au travers. Ce-pendant, puisque la hauteur des obstacles est finie, il est possible de voir au-dessus. Les murs d'un obstacle peuvent servir de points d'ancrage pour le positionnement d'une caméra. La hauteur à laquelle la caméra peut être ancrée est définie par un intervalle propre à chaque obstacle. La figure 2.2 illustre quelques obstacles.

(25)

(a) Obstacle 1 (b) Obstacle 2 (c) Obstacle 3

(d) Obstacle 1 - vue 2D (e) Obstacle 2 - vue 2D (f) Obstacle 3 - vue 2D

FIGURE 2.2 - Exemples d'obstacles.

En résumé, un obstacle est défini par les attributs suivants : - Une base polygonale : P.

- Une hauteur : h.

- Une possibilité d'installation : b. - Un intervalle de hauteur d'ancrage :

•* — [Lmim -*maxj

= {x e R+ | 0 < Im i n < x < Im a x < h}

2.1.2 Zone

Une zone est une région polygonale virtuelle permettant de définir des attributs propres à une section de l'espace devant être surveillée. Ces attributs peuvent être hérités d'une zone à l'autre s'il existe un lien de parenté entre elles. Le lien de parenté entre deux zones est défini en fonction de l'inclusion d'une zone dans l'autre : une zone est la fille d'une seconde si et seulement si l'ensemble de ses sommets sont inclus dans cette dernière. Puisque l'environnement définit la totalité de la région qu'on cherche à surveiller, toutes les zones héritent de l'environnement.

(26)

Une zone est définie seulement par un polygone P. Chaque zone peut définir un ou plusieurs attributs de la région circonscrite par son polygone P. Les attributs disponibles sont les suivants :

coût d'installation - c : définit le coût d'installation d'une caméra dans cette zone. Lorsqu'une caméra est ancrée à un obstacle, le coût d'installation correspond à celui de la zone dans laquelle se trouve l'obstacle.

importance stratégique - t : définit l'importance accordée à la surveillance de cette zone. L'échelle de valeurs est définie par l'usager, et les valeurs sont relatives entre elles.

erreur de reconstruction 3D - e : définit l'erreur maximale de reconstruction 3D qui soit acceptable pour cette région. Si la valeur de l'erreur est inférieure ou égale au maximum toléré, la performance est maximale, sinon, la performance décroît en fonction de l'erreur. La fonction sera présentée à la section 2.4.3. possibilité d'installation - b : définit la possibilité d'installation d'une caméra

ailleurs que sur la paroi d'un obstacle. Ce paramètre booléen ; lorsqu'il est vrai, exprime la possibilité qu'une caméra soit ancrée à un plafond ou un poteau virtuel. Dans le cas contraire, le paramètre indique qu'une caméra doit nécessairement être ancrée à un obstacle pour se trouver dans cette zone.

intervalle de hauteur d'ancrage - / : définit l'intervalle de hauteur à laquelle une caméra peut être installée si b est vrai. / est un intervalle réel strictement positif, tel que :

•* [^mini -Lmax\

= {X G K+ | 0 < Im i n < X < Imax}

résolution d'échantillonnage - A : définit la résolution des points échantillonnés dans la zone. Pour déterminer la visibilité de l'environnement, on l'échantillonne selon une résolution régulière A. Si A = 0, aucun point n'est échantillonné. Si cet attribut n'est pas redéfini, la zone hérite des points échantillonnés dans la zone parente. Il s'agit d'un second mécanisme permettant de moduler l'importance d'une zone et le temps nécessaire au calcul de la visibilité.

Environnement

L'environnement est un cas particulier d'une zone. En plus de définir tous les attri-buts pouvant être définis par une zone, l'environnement possède un ensemble d'obstacles O, ainsi qu'un ensemble S comprenant les points échantillonnés dans l'environnement et ses zones filles.

(27)

L'environnement étant la racine d'une hiérarchie de zones, on définit des fonctions permettant de déterminer la valeur de chaque attribut d'une zone associée à un point P

- Pc(p) : retourne le coût d'installation en cette position.

- Fe(p) : retourne l'erreur de reconstruction 3D désirée en cette position. - Ft(p) : retourne l'importance stratégique de cette position.

- P&(p) : retourne s'il est possible d'installer une caméra à cette position. - P/(p) : retourne l'intervalle de hauteur d'installation à cette position.

2.1.3 Algorithmes

Les fonctionnalités de l'environnement sont rendues possibles grâce à l'implémen-tation de différents algorithmes que nous présentons dans les sous-sections suivantes. Le premier algorithme détermine si un point se trouve à l'intérieur d'un polygone. Le second algorithme détermine à l'intérieur de quelles zones se trouve un point, et le dernier algorithme échantillonne la hiérarchie de zones de l'environnement en considérant la présence d'obstacles.

Point dans un polygone

Tous les éléments composant un environnement ont une forme polygonale. De plus, on s'intéresse à la visibilité de points dans cet environnement, on doit donc définir un algorithme permettant de déterminer l'inclusion d'un point dans un polygone. L'un des algorithmes les plus efficaces pour ce type de test est basé sur le principe des indices [21]. Il permet de traiter des polygones convexes ou concaves.

L'indice u(r, C) d'un point r pour une courbe fermée C(t) = (x(t),y(t))T,t G [a,b],C(a) = C(b) correspond au nombre de révolutions effectuées autour de r en se déplaçant le long de C, dans la mesure où r n'est pas le long de C, autrement l'indice n'est pas défini. À partir de ce principe d'indice, Hormann propose une formulation optimisée permettant de déterminer si un point r est à l'intérieur d'un polygone P. Un polygone P est défini comme une liste de n sommets ordonnés dans le sens antihoraire Pi, P2, • • • , Pn-, Pn+i = P\- Pf correspond à la coordonnée x du sommet Pj. L'équation 2.2 est utilisée pour vérifier le sens des sommets d'un polygone P.

(28)

1 N AIRE(P)

= ^ [ W i - W ] (

Z1

)

t = l „ r ^ s f horaire si A I R E ( P ) < 0; , 4 SENSSOMMET(P) = { (2.2) [anti-horaire, si A I R E ( P ) > 0.

Nous présentons ici une version légèrement modifiée de l'algorithme de Hormann. Contrairement à ce dernier, nous considérons les points le long du périmètre du poly-gone comme étant à l'intérieur du polypoly-gone. L'algorithme retourne vrai si le point r est à l'intérieur du polygone P, et faux dans le cas inverse. Cette implementation de l'algorithme d'Hormann est décrite par ISINSIDE.

ISINSIDE(P, r) 1 if Px = rx and Pf = ry then 2 r e t u r n TRUE 3 u><-0 4 for i <— 1 to n do 5 if Pf+i = ry then 6 if Pf+1 = rx then 7 r e t u r n TRUE

8 elseif Pf = ry and (Pf+1 > rx) = (Pf < rx) then

9 return TRUE

10 if (Pf < ry) ^ (Pf,, < ry) then

11 if Pf > rx then

12 if Pf+1 > rx then

13

u i - u + 2x(F&

1

>Pf)-l

14 elseif (det(i) > 0) = (Pf+l > Pf) then

15 w ^ w + 2 x (Pf+l > Pf) - 1 16 elseif Pf+l > rx t h e n 17 if (det(i) > 0) = (Pf+1 > Pf) then 18 u <- u + 2 x (Pf+1 > Pf) - 1 19 i < - i + l 20 if u mod 2 = 0 then 21 r e t u r n TRUE

22 else return FALSE

(29)

Recherche

Puisque les zones sont structurées sous la forme d'un arbre N-aire, on utilise un algorithme de recherche en profondeur pour parcourir l'arbre afin de déterminer toutes les zones de l'environnement qui incluent un point r. Lors de cette recherche, le dernier enfant correspond à l'enfant le plus à droite, et le frère précédent correspond au frère de gauche. Cette recherche nous permet par la suite d'identifier la valeur de l'attribut associé à un point. L'algorithme de recherche des zones contenant un point est détaillé

par FINDZONES.

L'algorithme FINDZONES reçoit en argument une zone Z et un point r. La fonction

retourne une liste de zones contenant le point. Le premier élément de la liste correspond à la zone la plus à gauche et la plus profonde de la hiérarchie. Le dernier élément de la liste est la racine de la hiérarchie contenant le point. Pour tout point à l'intérieur de l'environnement, le dernier élément de la liste sera toujours l'environnement.

FINDZONES(Z, r) 1 if IslNSiDE(j9o/-y#on[Z],r) then 2 x <— last-child[Z] 3 L < - 0 4 while x ^ NIL do 5 L -f- L U FINDZONES(X, r) 6 x <— previous-sibling[x] 7 L x L U Z 8 return L 9 return 0

Algorithme 2.2: Recherche des zones contenant un point.

La figure 2.3 présente les trois situations possibles lors d'une recherche dans une hiérarchie de zones. Le premier exemple en (a) est le cas le plus simple où toutes les zones filles sont distinctes. Les attributs d'un point se trouvant dans une zone seront donc égaux à ceux définis pour cette zone. Les attributs qui ne sont pas redéfinis par la zone seront égaux aux valeurs définies par la zone mère.

Le second exemple en (b) montre le cas où la hiérarchie est linéaire : chaque zone a une ou aucune fille, et aucune sœur. La zone 2 est incluse dans la zone 1, elle hérite donc des attributs de la zone 1 et de la zone mère. Ainsi, les attributs d'un point se retrouvant dans la zone 2 ont comme valeurs celles redéfinies par la zone 2, puis par la

(30)

Zone mere Zone mère

Zonel Zone 2

Zone mère Zone mère

i

Zone mère Zone 1 Zone 2 Zone 1 1

Zone 2

Zone 1 Zone 2

(a) (b) (c)

FIGURE 2.3 - Exemples de hiérarchies de zones, (a) Aucun recoupement entre les zones

sœurs, (b) Chaque zone est fille de la précédente, (c) Recoupement partiel entre les zones sœurs.

zone 1, et finalement les valeurs restantes correspondent aux attributs de la zone mère. Le troisième exemple en (c) montre le cas où deux zones sœurs se recoupent. Pour le cas où un point se trouve à la fois dans les deux zones filles, il existe trois possibilités. Si un attribut n'est redéfini que dans l'une ou l'autre des zones, le point hérite de cette valeur. Si aucune des deux zones ne redéfinit l'attribut, la valeur correspond à celle de la zone mère. Finalement, si les deux zones redéfinissent un même attribut de la zone mère, le point héritera de la valeur de l'attribut tel que défini par la zone la plus à gauche de l'arbre, c'est-à-dire la zone 1.

A partir de l'algorithme FINDZONES, on est en mesure de déterminer la valeur de l'attribut d'un point se trouvant dans une zone. L'algorithme de recherche de l'attribut est détaillé par GETATTRIBUTE. L'algorithme prend en argument une zone membre

d'une hiérarchie Z et un point r, et retourne la valeur de l'attribut associé au point.

Échantillonnage

L'algorithme permettant d'échantillonner un polygone quelconque consiste à d'abord trouver le rectangle d'aire minimum englobant le polygone ayant ses arêtes parallèles aux axes des abscisses et des ordonnées. Le rectangle est par la suite échantillonné selon la résolution A propre à la zone. Lorsqu'un point est échantillonné, on vérifie s'il se trouve à l'intérieur du polygone, si oui il est ajouté à la liste des points échantillonnés.

(31)

G E T A T T R I B U T E ( Z , r) 1 L <- FINDZONES(Z, r)

2 while L ^ 0 do

3 x <- DEQUEUE(L)

4 if attri6wfe[x] ^ NIL then 5 return attribute[x] 6 r e t u r n NIL

Algorithme 2.3: Récupération de la valeur d'un attribut associé à un point. Le périmètre d'une zone n'est pas échantillonné. L'algorithme prend en argument une zone Z retourne la liste des points échantillonnés. Cet algorithme est décrit par SAMPLE.

L'échantillonnage d'une hiérarchie est décrit par l'algorithme 2.5. Ce dernier prend en argument une zone Z et une liste L qui contiendra l'ensemble des points. Pour une zone racine, la liste est vide. L'algorithme filtre d'abord tous les points de la liste inclus dans la zone, et ce, seulement si une résolution d'échantillonnage est définie pour la zone. La zone est ensuite échantillonnée. Finalement, l'algorithme est appelé sur le premier enfant de la zone, puis sur ses frères. L'échantillonnage est donc réalisé selon un ordre prefix; pour la hiérarchie présentée à la figure 2.4 l'ordre serait : Zone mère, Zone 1, Zone 1.1, Zone 1.2, Zone 2.

1. Zone mère

2. Zone 1 5. Zone 2 3. Zone 1.1 4. Zone 1.2

FIGURE 2.4 - Ordre prefix de l'échantillonnage d'une hiérarchie de zones.

L'environnement dispose d'un ensemble d'obstacles dont les murs sont opaques. On doit donc retirer tous les points échantillonnés qui se retrouvent à l'intérieur des obstacles. L'échantillonnage spécifique à l'environnement est présenté par l'algorithme 2.6. L'algorithme reçoit un environnement E et ajoute à sa liste de points les points échantillonnés en fonction de la hiérarchie de zones et des obstacles. On échantillonne d'abord la hiérarchie de zones dont l'environnement est la racine. On filtre ensuite les points se trouvant dans les obstacles.

(32)

SAMPLE(Z)

1 P «— polygon[Z] 2 Zmax <- maXig[i,„] /-f

3 ï/max «- maxie[i,„] f f

4 •Tmin «- mini6[lin] f f

5 2/min <- minie[i,n] J-f

6 L < - 0 7 A f- A[Z] 8 if A = 0 then 9 return L 10 for x <— xmjn + A to xmax — A do 11 for j/ <- 2/min + A to ymax - A do 12 r f- (X,Î/) 13 if ISINSIDE(P, r) then 14 L <- L U r 15 X <- £ + A 16 y-f-y + A 17 return L

Algorithme 2.4: Échantillonnage d'une zone.

SAMPLEHIERARCHY(Z, L)

1 if A[Z] ^ NIL then 2 for p in L do 3 if IslNSiDE(po/t/pon[Z],p) then 4 L < - L \ { p ] 5 L <- L U S A M P L E ( Z ) 6 x <—first-child[Z] 7 while x ^ NIL do 8 SAMPLEHIERARCHY(X, L) 9 x <— nexf-s^/mgfx]

(33)

SAMPLEENVIRONMENT(P) 1 SAMPLEHIERARCHY(P, points[E}) 2 for O in obstacles[E] do 3 for p in points[E] do 4 if IslNSiDE(po%on[0],p) then 5 points[E] <— points[E] \ { p }

Algorithme 2.6: Échantillonnage de l'environnement.

2.2 Capteurs

Dans le cadre de ce mémoire, nous nous intéressons à des capteurs optiques pas-sifs à position et orientation fixe, autrement dit des caméras de surveillance fixes. Les caméras déployées peuvent correspondre à différents modèles disponibles sur le marché. On définit un modèle de caméra comme un ensemble de valeurs de paramètres in-trinsèques. Les paramètres intrinsèques d'une caméra correspondent à ceux identifier par le modèle physique de Tsai [44]. En plus du modèle physique de Tsai, on pose les hypothèses 2.2.1 à 2.2.5. Le mécanisme d'optimisation effectue le choix des modèles de caméra et détermine leurs propriétés extrinsèques. Les propriétés extrinsèques sont la position et la direction d'une caméra.

Hypothèse 2.2.1. Chaque capteur est disponible en nombre illimité. Hypothèse 2.2.2. Le modèle de caméra utilisé est la caméra perspective.

Hypothèse 2.2.3. La position du centre optique de la caméra correspond à l'origine du référentiel caméra.

Hypothèse 2.2.4. Les facteurs de distorsion de la lentille ne sont pas pris en compte. Hypothèse 2.2.5. Les pixels du capteur optique sont carrés.

2.2.1 Modèle physique de Tsai

Le modèle de caméra utilisé est basé sur le modèle de Tsai. Dans ce modèle, une caméra est décrite par les paramètres intrinsèques suivants :

- La longueur focale de la lentille (mm) : /

(34)

- La résolution du capteur optique (pixel) : pw x ph

- La coordonnée pixel du centre du capteur optique : (u0, v0) - Le facteur d'agrandissement en x (pixel/mm) : ku = \/h - Le facteur d'agrandissement en y (pixel/mm) : kv = \fh - Le facteur de non-orthogonalité des pixels : suv.

Le facteur de non-orthogonalité n'est pas considéré puisqu'en vertu de l'hypothèse 2.2.5, les pixels sont carrés. On obtient donc que suv = 0. De plus, en vertu de l'hy-pothèse 2.2.3, la coordonnée pixel du centre du capteur optique correspond exactement au centre du capteur optique. On obtient donc que (u0, v0) = j —, — J. Les paramètres sont regroupés dans la matrice des paramètres intrinsèques A.

(2.3)

k'uj 0 £w~ 2 0 k v j 2

0 0 1

La caméra est aussi décrite par les paramètres extrinsèques suivants : - Le vecteur de translation : t.

- La matrice de rotation 3 x 3 : R.

Initialement, la caméra est positionnée à l'origine et dirigée vers le sol : La position de la caméra : p =

La direction de la caméra : d =

0 0 0

1 T

0 0 - 1

La position est fournie sous la forme d'une coordonnée monde (x, y, z), et la direction sous la forme de deux angles, soit l'élévation 6 et l'azimut 0. L'élévation correspond à une rotation par rapport à l'axe des X du référentiel monde, et l'azimut une rotation par rapport à l'axe des Z.

Ces informations doivent être traduites sous leur forme matricielle, afin de produire le vecteur de translation t et la matrice de rotation R. Puisqu'une caméra est initia-lement positionnée à l'origine, le vecteur de translation t correspond tout simpinitia-lement à —p. Quant à la matrice de rotation, elle doit être calculée de la façon suivante. La première rotation est effectuée selon l'azimut, puis est effectuée celle selon l'élévation. Les rotations en azimut sont effectuées dans le sens antihoraire, mais puisque la caméra regarde le sol, les rotations en azimut seront perçues comme étant dans le sens horaire. Une matrice est associée à chaque rotation, puis la matrice résultante est calculée.

Z =

cos(4>) —sin(<p) 0 sin(<p) cos(4>) 0

0 0 1

(35)

E = 1 0 0 0 cos(it — 6) —sin(it — 6) 0 sin(n — 6) cos(it — 6) 1 0 0 0 -cos(6) -sin(0) 0 sin(d) -cos(0) (2.5) R = EZ = cos(0) — sin(0) 0 - cos(0) sin(0) — cos(0) cos(0) — sin(#)

sin(#) sin(0) sin(0) cos(0) — cos(0)

(2.6)

À partir de la matrice des paramètres intrinsèques, de la matrice de rotation et de la position d'une caméra, on peut déterminer la position dans l'image d'un point 3D. Selon le modèle, le point image i = u v 1 correspondant à un point 3D monde w pour un capteur positionné est donné par la relation suivante

i = AR(w + t) (2.7) su sv s ">uj 0 cu U KVJ Cv 0 0 1

cos(4>) —sin((j))cos(0) —sin(4>)sin(6) sin((f>) cos (cp)cos(9) cos(cj))sin(9)

0 -sin(0) cos(6)

wx + tx

Wy + t y

wz + tz

(2.8)

À l'aide du modèle, il est aussi possible de déterminer une coordonnée monde à partir d'un point image si le plan dans lequel se situe le point dans le référentiel monde est connu. Puisque dans le cadre de ce mémoire, tous les points sont mesurés dans le plan z = 0, il est possible d'utiliser cette relation. Le point monde s'exprime comme un point sur une droite définie par :

w = s ( A R )_ 1i - t (2-9)

Pour trouver le point exact, il faut trouver l'intersection entre le plan dans lequel se trouve le point et la droite définie par l'équation précédente. Le plan est défini par l'équation suivante :

n • p = h (2.10)

En remplaçant p par w dans l'équation 2.10, puis on isolant s, on obtient la solution de l'intersection du plan et de la droite, soit :

s = [(AR)"h + t - n

(36)

On associe à l'équation 2.7 une procédure permettant de déterminer les coordonnées images d'un point monde p pour une caméra c : WORLDTOIMAGE(C, p) ; et à l'équation

2.9, une procédure permettant de déterminer les coordonnées monde dans le plan z = 0 d'un point image i pour une caméra c, IMAGETOWORLD(C, i).

2.2.2 Caméra et réseau

À partir du modèle de Tsai et des hypothèses, on définit un modèle de caméra comme étant un ensemble unique de valeurs pour les paramètres suivants :

- La longueur focale de la lentille (mm) : /

- La hauteur d'un pixel du capteur optique (mm) : h - La résolution du capteur optique (pixel) : pw x ph - Le coût de la caméra ($) : c

Pour un problème de placement de capteurs donné, on définit un ensemble de modèles de caméras disponibles comme l'ensemble B. Un réseau de caméras est défini comme un ensemble C de n caméras c*. Chaque caméra correspond à un modèle bt de l'ensemble B dont on a fixé la position et la direction. Une caméra faisant partie d'un réseau est définie par :

- Le modèle de la caméra : i tel que bt G B - La position dans l'espace : p = (x, y, z) - La direction : (6, 0)

2.3 Positionnement

Les caméras d'un réseau C doivent être positionnées de manière à respecter les contraintes imposées par l'environnement et ses zones filles. Afin de respecter ces con-traintes, nous avons développé un algorithme déterminant la position contrainte d'une caméra étant donné une position et une direction arbitraire dans l'environnement. L'al-gorithme travaille dans le plan z = 0. La position finale de la caméra est déterminée en fonction des coordonnées (x, y) et de l'angle d'azimut 9.

L'algorithme recherche la position la plus près de la position initiale qui respecte les contraintes de positionnement de l'environnement. La figure 2.5 illustre le fonctionne-ment de l'algorithme. La figure 2.5(a) illustre la situation initiale fournie à l'algorithme. Les polygones de couleurs représentent des zones ou des obstacles offrant la possibilité d'ancrer une caméra. La caméra est représentée par le cercle vert muni d'une flèche. La

(37)

flèche indique la direction de la caméra dans le plan. Si la zone dans laquelle se trouve la caméra permet l'installation, la recherche de position se termine après l'étape 2.5(a). La seconde étape consiste à chercher, pour chaque arête constituant les polygones des obstacles et des zones, le point le plus près de la position initiale. Ces positions représentent les candidates potentielles au titre de position finale pour la caméra. Elles sont représentées par des cercles marquées d'une croix à la figure 2.5(b). Il y a seule-ment 11 positions, puisque l'une des positions candidates est la même pour deux arêtes (polygone en bas à droite de l'image, coin supérieur gauche).

L'algorithme procède ensuite au filtrage des positions potentielles. On conserve d'abord seulement les coordonnées se trouvant derrière la caméra. La région derrière la caméra correspond à la région grisée à la figure 2.5(c). Les positions devant la caméra sont soustraites de l'ensemble des candidats parce qu'on tente autant que possible de maintenir ce qui était vu par la caméra à sa position initiale. L'algorithme effectue par la suite un second filtrage en retirant des positions restantes toutes les positions pour lesquelles la caméra pointerait vers un obstacle. On cherche ainsi à éviter de placer une caméra en face d'un mur. À la figure 2.5(d), on suppose que les polygones se trouvant derrière la caméra sont des obstacles.

On détermine ensuite parmi les positions restantes laquelle est la plus proche de la position initiale. Dans l'exemple, cette position est illustrée par la seule candidate restante à la figure 2.5(e). Finalement, la caméra est placée à la position finale 2.5(f).

Puisque l'on considère que le centre optique de la caméra correspond à l'origine du référentiel caméra, la position finale de la caméra n'est pas exactement le point choisi le long de l'arête du polygone. Comme cette arête peut correspondre à un mur, ou à la frontière d'une zone, on applique un léger déplacement à la position finale. Les zones dans lesquelles il est possible d'installer une caméra sont inclusives, alors que les zones empêchant l'installation d'une caméra sont exclusives.

Si la coordonnée choisie se trouve sur une arête appartenant à un obstacle, on applique un déplacement vers l'extérieur de l'obstacle dans une direction orthogonale à l'arête. Si l'arête appartient à une zone inclusive, le déplacement est effectué vers l'intérieur de la zone dans une direction orthogonale à l'arête. En revanche, si la zone est exclusive, et que le parent de la zone est une zone inclusive, le déplacement s'effectuera plutôt vers l'extérieur de la zone. Si la zone et sa mère sont exclusives, l'arête n'est pas retenue. La figure 2.6 résume la direction du déplacement en fonction de la situation.

(38)

(a) Position initiale. (b) Calcul des 11 positions candidates.

(c) Élimination des candidates devant la (d) Éliminations des 2 candidates pointant vers caméra. un obstacle.

(e) Sélection de la candidate le plus près parmi (f) Position finale, les 5 restantes.

(39)

Zone exclusive

î

Zone exclusive Obstacle -Zone exclusive

i

(a) Direction du déplacement pour un obstacle.

Zone exclusive

T

Zone inclusive

ï

(b) Direction du déplacement pour une zone inclu-sive. Zone inclusive

î

Zone inclusive Zone exclusive Zone inclusive

i

(c) Direction du déplacement pour une zone exclu-sive ayant une zone incluexclu-sive comme parent.

(40)

2.4 Evaluation de la performance

Afin de déterminer la performance d'un réseau de caméras C, on doit d'abord déter-miner la visibilité de l'environnement par le réseau à partir des points échantillonnés. On doit ensuite déterminer l'erreur de reconstruction 3D réalisée en chaque point, puis la précision en fonction de l'erreur tolerable en chaque point. La performance est obtenue par la somme des produits de la précision par l'importance stratégique en chaque point. On présente d'abord à la section 2.4.1 les algorithmes développés permettant de déterminer la visibilité de l'environnement par le réseau. On présente ensuite l'algo-rithme d'évaluation de l'erreur en fonction des points vus à la section 2.4.2, puis fina-lement le calcul de précision à la section 2.4.3.

2.4.1 Évaluation de la visibilité

La visibilité d'une caméra est influencée par ses paramètres intrinsèques et ex-trinsèques ainsi que par les obstacles présents dans l'environnement. On doit d'abord déterminer quels points se trouvent dans le champ de vue d'une caméra. Pour ce faire, on emploie l'équation 2.8 permettant de déterminer les coordonnées images d'un point de l'environnement. Un point est visible si ses coordonnées images sont à l'intérieur de la résolution du capteur optique de la caméra. L'algorithme 2.7 détermine si un point p se trouve dans le champ de vue d'une caméra c.

ISIMAGING(C,P)

1 u <- WORLDTOIMAGE(C, p)

2 if ux > 0 and ux < px and uy > 0 and uy < py then 3 return TRUE

4 else return FALSE

Algorithme 2.7: Inclusion d'un point dans le champ de vue d'une caméra.

Puisque les points échantillonnés sont singuliers, et que l'on effectue une projection dans le plan image d'une caméra pour déterminer s'ils sont visibles, tout point se trou-vant à l'intérieur du champ de vue d'une caméra est défini comme visible. Ainsi, si un point se trouve infiniment loin de la caméra, et qu'il existe une projection du point sur

(41)

le plan optique de la caméra, le point sera considéré comme vu. Pour éviter cette in-exactitude, on ajoute au formalisme la possibilité de déterminer la résolution minimale en z que doit avoir un point pour être vu.

Pour déterminer si un point est visible à partir de cette spécification, on calcule, pour un point donné dans l'espace, un second point en ajoutant un delta en z. On effectue ensuite la projection dans le plan optique des deux points. On calcul ensuite la distance entre les deux points images. Si le rapport entre la distance entre les deux points images et le delta en z est supérieur ou égal à la résolution minimale, le point

est visible ; sinon, il n'est pas visible. Si la résolution minimale est définie comme étant

0, on retrouve le cas où tout point se trouvant dans le champ de vue d'une caméra est

visible.

Les murs des obstacles n'ont pas tous une incidence sur la visibilité des caméras

dans l'environnement. On rappelle les hypothèses suivantes : 1. Les régions d'intérêt sont au sol.

2. Il n'y a pas de point à observer à l'intérieur des obstacles.

3. Un obstacle est composé de murs rectangulaires ayant tous la même hauteur. 4. Aucun point ne peut se trouver à l'extérieur de l'environnement.

5. L'environnement est de forme rectangulaire.

En vertu des hypothèses 1, 2 et 3, on détermine que seules les faces de côtés des obstacles influencent le calcul de visibilité. De plus, en vertu des hypothèses 4 et 5, tout mur longeant le périmètre de l'environnement peut être négligé lors du calcul de visibilité. Finalement, si deux murs ont les mêmes coordonnées aux quatre sommets, ou encore qu'un mur s'inscrit entièrement dans un second, le mur inclus ou équivalent au second peut être négligé lors du calcul de visibilité.

A partir des conclusions précédentes, on peut filtrer les murs des obstacles dont la contribution au calcul de visibilité est négligeable afin d'accélérer les calculs. On définit donc un ensemble de murs W incluant seulement les murs influençant la visibilité des réseaux de caméras déployés dans l'environnement.

À partir de cet ensemble de murs, on peut déterminer s'il existe un mur entre une

caméra c et un point p. Pour ce faire, on emploie un algorithme basé sur le principe du tracé de rayons (algorithme 2.8). Le principe consiste à tracer un segment de droite entre l'origine de la caméra et le point. On vérifie ensuite pour chaque mur de l'ensemble W, s'il existe une intersection entre le plan défini par le mur et la droite.

(42)

la caméra. Finalement, si l'intersection fait partie du segment, on vérifie qu'elle est à l'intérieur des frontières du mur. Si ces trois conditions sont respectées, le point n'est pas visible, et l'algorithme s'arrête ; sinon, l'algorithme poursuit sa recherche parmi les murs restants de l'ensemble. Si aucune intersection n'est découverte avec aucun mur, le point est visible par la caméra c.

RAYTRACING(C, p) 1 o «— origin[c] 2 if (o — p).n = 0 then 3 r e t u r n TRUE 4 for wall in W do 5 n <— normal[wall] 6 P <— polygon[wall] 7 «s t i ( P [ 0 ] - o ) . n ( p - o ) . n if t > 0 then 9 i «— o + t(p — o) 10 if ISINSIDE(P, i) then 11 r e t u r n FALSE 12 return TRUE

Algorithme 2.8: Calcul d'intersection du rayon entre un point et une droite et les murs.

En somme, pour qu'une caméra puisse voir un point en fonction du formalisme posé : le point échantillonné doit premièrement avoir une projection valide dans le plan image du capteur optique de la caméra ; ensuite, la résolution en z du point doit être au minimum celle paramétrée pour le problème; et finalement, le segment de droite entre l'origine de la caméra et le point ne doit pas être coupé par un mur. On définit par une procédure ISVISIBLE(C, p) l'appel consécutif aux trois conditions précédentes

permettant de déterminer si une caméra c voit un point p.

2.4.2 Évaluation de l'erreur

Sachant qu'un point est vu par une caméra, on peut ensuite déterminer l'erreur de reconstruction 3D en ce point. Puisque tous les points échantillonnés se trouvent dans le plan z = 0, une seule caméra suffit pour effectuer la reconstruction.

Références

Documents relatifs

A titre de comparaison, nous avons utilisé une variante de la méthode GRG [1], [2], qui passe pour la plus rapide des méthodes existantes (voir les expériences numériques

B et D sont les points optimaux respectivement pour la première et la deuxième fonction économique; F réalise simultanément le maximum pour les deux fonctions économiques mais n'est

Page 1 sur 10 Le Fonds Mondial pour la Nature (WWF) recherche un consultant(e) pour Analyse des moteurs de l’érosion de la biodiversité et des secteurs économiques impactant au

C'est à cette œuvre d'efficience et d'unité que nous allons nous attaquer, avec, nous l'espérons, l'aide et la sympathie de tous ceux qui rêvent encore d'une

prenaient conscience de ce devoir moral, notre coopérative pourrait alors assumer son rôle en toute indépendance et réduire au strict minimum les compromis,

démontrer que sans cette conception de l’action syndicale, c’était l’application du plan initial du PDG de Moulinex avec 800 licenciem ents supplémentaires ; c’était

On dispose de deux types de méthodes de résolution d’un programme linéaire, méthode du simplexe a complexité exponentielle et méthodes de points intérieurs qui

A chaque lieu de l’établissement son identité, sa spécificité, ses activités en relation avec le contexte, (présence du professeur-documentaliste, capacité d'accueil du