Ce stage a pour but de développer un modèle de recherche d’informations basé sur une double information de contenu et de localisation géographique des images, de retrouver les situations
Trang 1INSTITUT DE LA FRANCOPHONIE POUR L’INFORMATIQUE
LABORATOIRE INFORMATIQUE, IMAGE ET INTERACTION
UNIVERSITE DE LA ROCHELLE
MEMOIRE DE FIN D’ETUDE
Master d’informatique
Option Intelligence artificielle & multimédia
Sujet : Indexation et recherche d’image par le contenu et par la localisation géographique
Encadrement : Jean-Marc OGIER
Alain BOUCHER NGUYEN Nhu Van
Réalisé par : LAI Hien Phuong
Promotion 13, IFI
Hanọ, Septembre 2009
Trang 2TABLE DES MATIERES
REMERCIEMENTS 3
RESUME 4
ABSTRACT 5
LISTE DES FIGURES 6
LISTE DES TABLEAUX 7
CHAPITRE 1 – INTRODUCTION 8
1.1 P ROBLEMATIQUE 8
1.2 M OTIVATION 9
1.3 O BJECTIFS 10
1.4 C ONTRIBUTION 10
1.5 E NVIRONNEMENT DE STAGE 11
CHAPITRE 2 – ETAT DE L’ART 12
2.1 I NDEXATION MULTIDIMENSIONNELLE 12
2.1.1 Partitionnement des données 12
2.1.2 Partitionnement de l’espace 17
2.2 T RAVAUX SIMILAIRES 19
2.2.1 SnapToTell [11][12][13][14] 19
2.2.2 MobiLog [15] 22
CHAPITRE 3 – SR-TREE 24
3.1 P RESENTATION DU SR- TREE 24
3.2 I NSERTION DANS LE SR- TREE 26
3.3 S UPPRESSION DANS LE SR- TREE 29
3.4 R ECHERCHE DANS LE SR- TREE 29
CHAPITRE 4 – SYSTEME DE RECHERCHE D’INFORMATIONS BASE SUR UNE DOUBLE INFORMATION DE CONTENU DES IMAGES ET DE LOCALISATION GEOGRAPHIQUE 31
4.1 H YPOTHESES 31
4.2 A PPROCHE PROPOSEE 32
4.2.1 Structuration des données 32
4.2.2 Manipulation dans les SR-tree 36
4.3 I MPLEMENTATION DU SYSTEME 40
4.3.1 Préparation des données 40
4.3.2 Environnement de programmation 41
4.3.3 Système construit 41
CHAPITRE 5 – ANALYSE DES RESULTATS 43
5.1 S CENARIO 1 : ATTRIBUTION DES NIVEAUX D ’ URGENCE 43
5.2 S CENARIO 2 : DETERMINATION DES MONUMENTS PROCHES DU SINISTRE 45
5.3 S CENARIO 3 : DETERMINATION DES SINISTRES PROCHES D ’ UN MONUMENT 46
5.4 S CENARIO 4 : DETERMINATION DES SINISTRES PROCHES D ’ UN SINISTRE 47
5.5 S CENARIO 5 : DETERMINATION DES SINISTRES SIMILAIRES A UN AUTRE SINISTRE 48
CHAPITRE 6 – CONCLUSIONS ET PERSPECTIVES 49
REFERENCES 51
Trang 3REMERCIEMENTS
Je tiens à remercier tout particulièrement M Jean-Marc OGIER, mon superviseur
de stage au laboratoire L3I de l’université de La Rochelle, et M Alain BOUCHER, mon co-superviseur de stage à l’IFI Ils ont su orienter mon travail dans les bonnes directions tout en me laissant une large autonomie Je les remercie également pour leur gros travail pour corriger ce rapport de stage
Mes remerciements s’adressent également à M NGUYEN Nhu Van qui m’a aidé dans la configuration l’environnement de programmation Mon travail bénéficie aussi son travail de thèse de la recherche d’image par le contenu
Je remercie aussi M CHU Thanh Quang, un thésard du laboratoire MSI Ce travail est en grande partie dû à ses conseils sur les Systèmes d’Information Géographique (SIG)
Je tiens à remercier également tous les membres du laboratoire L3I qui m’ont accueilli et ont créé un environnement idéal dans lequel j’ai travaillé pendant six mois de stage
Je voudrais aussi adresser mes remerciements à tous les professeurs de l’IFI qui m’ont donné des connaissances et des expériences efficaces pendant ma scolarité à l’IFI
Merci également à tous ceux que j’oublie mais qui d’une manière ou d’autre manière m’ont permis de bien terminer mon stage
Trang 4du sinistre Il fournit au l’utilisateur une vue globale sur la concentration des situations d’urgence dans la ville ainsi que leur niveau d’urgence En répondant des scénarios de test
différentes pour le projet de recherche IDEA (Images of natural Disasters from robot
Exploration in urban Area) [1], ce système apporte une grande perspective de devenir un outil efficace pour aider l’opérateur humain à donner rapidement des bonnes décisions de secours dans des situations de post-catastrophe naturelle
Trang 5ABSTRACT
This memoir presents the advantage of combining visual content information of images/videos and geographical location information in the construction of a decision support system in a situation of post-natural disaster With the performance for nearest neighbor queries in the area of multidimensional data and for spatial data structuring, the SR-tree structure [2] is chosen for structuring the images simultaneously in location space and visual content space The proposed approach also uses the SR-tree structure to organize various monuments in the city that are registered in the data of Geographic Information System (GIS) in the form of polygons The proposed system responds well to the objective of finding emergencies in the city and of giving them an urgency level depending not only on the geographical proximity of similar events but also on the monuments which are around the position of emergency situation It provides an overview on the concentration of emergencies in the city and their urgency level In responding to different test scenarios for the IDEA (Images of natural Disasters from robot Exploration in Urban Area) research project [1], this system has a great perspective
to become an effective tool that helps the human operator providing rapidly the rescue decisions in emergency situations of post-natural disaster
Trang 6LISTE DES FIGURES
Figure 1 - B-tree 13
Figure 2 - R-tree 14
Figure 3 - SS-tree 16
Figure 4 - SR-tree 17
Figure 5 - Kd-tree 18
Figure 6 - LSD-tree 19
Figure 7 - Architecture client/serveur du système SnapToTell 20
Figure 8 - Localisation hiérarchique des scènes de Singapour 21
Figure 9 - Screen shots de la composition de blog sur un téléphone portable 22
Figure 10 - Exemple de blog du système TraveLog 23
Figure 11 - Structure SR-tree 25
Figure 12 - Détermination des régions par l'intersection des rectangles et des sphères 25
Figure 13 - Structuration des données par des SR-tree 35
Figure 14 - Interface du système 41
Figure 15 - Symboles des sinistres 42
Figure 16 - Symboles des monuments 42
Figure 17 - Groupes des situations d’urgence dans la ville 44
Figure 18 - Groupes des feux dans la ville 44
Figure 19 - Résultat des sinistres d'un groupe 45
Figure 20 - Résultat des monuments proches d'un feu 46
Figure 21 - Résultat des sinistres proches d'un bâtiment 47
Figure 22 - Résultat des sinistres proches d'un sinistre 47
Figure 23 - Résultat des sinistres les plus similaires avec un sinistre quelconque 48
Trang 7LISTE DES TABLEAUX
Table 1 - Niveaux d'urgence correspondant à chaque type de monument 38 Table 2 - Base d'images des sinistres 40
Trang 8Chapitre 1 – Introduction
1.1 Problématique
Aujourd’hui, les catastrophes naturelles apparaissent avec une fréquence de plus en plus élevée à cause du changement du climat global Plusieurs projets de recherche sont réalisés afin de développer les outils d’aide à la décision dans des situations de post-catastrophe naturelle en zone urbaine et de fournir des informations précises en temps réel
au centre de gestion et aux équipes de secours Les images collectées partout dans une ville décrivant les sinistres différents sont une source d’information sur laquelle on peut
se baser pour donner des décisions de secours efficaces A partir de quelques images, l’opérateur humain peut facilement donner des décisions efficaces et exactes Mais avec
un très grand nombre d’images (c’est le cas des situations urgences), il nous faut avoir un système qui traite automatiquement ces images pour aider l’opérateur humain à donner rapidement des décisions de secours
Alors, le contexte de ce sujet de stage est le projet IDEA (Images of natural
Disasters from robot Exploration in urban Area) [1] financé par le programme STC-Asie (MAE/CNRS/INRIA) et avec comme partenaire le LORIA-QGAR (Nancy, France), l’université de La Rochelle (France), l’IFI (Hanoi, Vietnam), le VAST-IOIT (Hanoi, Vietnam) et l’université de Kuala Lumpur (Malaisie) Afin de résoudre le problème abordé ci-dessus, dans ce projet, on utilise les techniques de vision par ordinateur, de reconnaissance des formes et de recherche d’informations multimédias sur les images collectées pour aider à donner des décisions de secours Ce stage bénéficie aussi le travail
de thèse de NGUYEN Nhu Van, en co-direction entre l’université de La Rochelle, l’IFI et
le LORIA-QGAR
L’entrée d’un système de traitement automatique des images d’aide à la décision dans une situation de post-catastrophe naturelle doit être les images décrivant les sinistres contenant en même temps les informations de localisation géographique qui nous permet
de déterminer la localisation de chaque sinistre Supposons qu’il y a un réseau de caméras implantées partout dans une ville (caméras de surveillance routière, caméras installées sur des édifices, caméras mobiles des robots, des avions, etc) ; ces caméras sont toujours actives après une catastrophe naturelle, elles prennent automatiquement des photos et les envoient vers une centrale collectant des informations nécessaires aux secours On peut aussi collecter les images, les vidéos provenant des téléphones portables des gens sur place L’information géographique de ces images peut être de type GPS ou autre (adresses civiques par exemple) Il y a aussi les images qui n’auront pas cette localisation ou qui
Trang 9pourront avoir une marge d’erreur sur la localisation précise Mais en effet, il n’y a pas encore une base d’images pour le projet IDEA, donc, une des tâches pour ce stage est de construire au fur et à mesure une base d’images des types de sinistres différents pour tester et trouver une façon pour simuler les informations de localisation géographique des images Pour les types de l’information géographique différents, il nous faut les traiter de façons différentes Par exemple, pour les images ayant une adresse civique, il nous faut tout d’abord transformer cette adresse en information de type GPS (latitude et longitude) pour savoir ou se trouve le sinistre sur le plan de la ville ; pour les images qui n’ont pas les informations géographiques, on peut essayer de trouver s’il y a dans le contenu de l’image les informations indiquant la position de l’image (le nom de la rue, un monument célèbre, etc) Pour pouvoir traiter tous les cas différents, c’est un grand travail Donc, dans
le cadre de ce stage, on suppose que toutes les images ont les informations de localisation géographique de type GPS (latitude et longitude)
Ce stage a pour but de développer un modèle de recherche d’informations basé sur une double information de contenu et de localisation géographique des images, de retrouver les situations d’urgence dans une ville (feu, blessés, bâtiments endommagés,…)
et d’attribuer un niveau d’urgence pour chaque situation en fonction de la proximité géographique d’événements similaires En fait, on a deux espaces différents, l’un pour la représentation du contenu de l’image et l’autre pour la localisation géographique En effet, il y a pas mal de travaux concernant la recherche d’images par le contenu, dont le travail de thèse de NGUYEN Nhu Van Alors, dans ce stage, on peut bénéficier de la façon de décrire le contenu de l’image de son travail Le problème ici est comment on peut organiser les informations du contenu de l’image et les informations de localisation géographique dans deux espaces pour pouvoir trouver les situations d’urgences et pour leur attribuer un niveau d’urgence A l’égard de l’attribution d’un niveau d’urgence ici, on
ne compte pas la nature de chaque sinistre représenté dans les images (par exemple, un grand feu ou un petit feu) car c’est aussi un grand problème On compte ici la proximité géographique d’événements similaires, la proximité des sinistres avec des types de monuments différents (hôpital, maison, grand bâtiment, etc.) L’aspect interactif du système (retour de pertinence) n’est pas traité dans le cadre de ce stage, l’utilisateur pourra seulement réaliser quelques actions simples avec le système comme demander à trouver les sinistres qui sont similaires avec un sinistre dans une image quelconque, trouver les sinistres qui sont proches d’un hôpital, etc
1.2 Motivation
On peut constater que le climat global change de jour en jour, cela provoque l’augmentation des catastrophes naturelles complexes dans tout le monde, elles causent
Trang 10beaucoup de dégâts sérieux pour l’humain Des coordinations efficaces des équipes de secours peuvent diminuer considérablement les dégâts surtout les morts C’est pour cette raison qu’il est nécessaire d’avoir un bon système d’aide à la décision dans une situation
de post-catastrophe naturelle
D’ailleurs, il y a actuellement plusieurs travaux sur la recherche d’images par le contenu mais pas beaucoup de travaux sur la recherche d’image se basant en même temps sur les informations du contenu de l’image et sur les informations de localisation géographique Les travaux existants sont appliqués surtout dans les applications de tourisme, le cas de l’aide à la décision pour les secours comme dans le projet IDEA reste une application nouvelle
1.3 Objectifs
Les objectifs de ce travail de stage sont :
• Construire une base d’images de sinistres différents
• Simuler les informations géographiques pour ces images
• Déterminer une façon pour organiser les informations des images dans deux espaces de contenu visuel et de l’information géographique pour pouvoir manipuler ensemble ces deux espaces afin de trouver les situations d’urgences et d’attribuer un niveau d’urgence pour chaque image
• Proposer une façon pour déterminer un niveau d’urgence pour chaque sinistre en se basant sur la proximité des situations similaires et sur l’importance des monuments autour de chaque sinistre
Pour vérifier et valider le modèle, il faut donner des scénarios différents pour IDEA qui identifient et décrivent des situations ó on peut montrer un intérêt de rechercher des images en combinant localisation et contenu image et faire des tests basés sur ces scénarios
1.4 Contribution
En combinant les images de feux provenant du TPE de l’étudiant BUI The Quang
de la promotion 14 de l’IFI avec les images trouvées sur l’internet sous licence « Créative Commons », j’ai déjà construit une base d’images de cinq types de sinistres différents (feux, bâtiments endommagés, routes endommagées, blessés et inondations) pour IDEA, chaque type contient de 300 à 350 images J’ai aussi simulé les informations de localisation géographique pour ces images en attribuant pour chaque image des coordonnées de latitude et de longitude, les coordonnées pouvant être attribuées soit au hasard, soit selon les groupes de proximité
Trang 11Dans le cadre de ce stage, on a implémenté avec succès la structuration par partitionnement des données SR-Tree [2] pour organiser les descriptions du contenu visuel des images et les descripteurs externes d’informations géographiques des images pour faciliter et accélérer la recherche des images similaires dans l’espace du contenu et le calcul de la proximité entre des situations dans l’espace de localisation géographique en évitant des comparaisons exhaustives avec tous les éléments de la base D’ailleurs, dans la phase d’attribution d’un niveau d’urgence pour chaque image de sinistre, on considère non seulement la proximité des situations similaires mais aussi les descriptions symboliques des monuments à proximité des sinistres (hôpital, maison, bâtiment, école) qui sont utilisées souvent dans les systèmes d’informations géographiques (SIG)
1.5 Environnement de stage
Ce stage est réalisé au Laboratoire Informatique, Image et Interaction (L3I) de l’Université de La Rochelle, France dans le contexte du projet de recherche IDEA
(Images of natural Disasters from robot Exploration in urban Area) [1] financé par le
programme STC-Asie (MAE/CNRS/INRIA) L’IFI et l’université de La Rochelle sont deux partenaires du projet Avec l’objectif de développer un système d’aide à la décision utilisant le traitement d’images et la vision par ordinateur dans des situations de post-catastrophe naturelle, ce projet se concentre à quatre thèmes principaux : localisation dans une ville à partir des indices des images ; détermination de l’état de dommage des bâtiments et des infrastructures ; détection de l’état des victimes humaines et aide à la décision basée sur les images Le travail de ce stage appartient surtout au dernier thème
Trang 12Chapitre 2 – Etat de l’art
Comme nous avons vu dans le chapitre 1, le but de ce stage est de développer un modèle de recherche d’informations basé sur une double information de contenu visuel de l’image et de localisation géographique pour retrouver des situations d’urgence dans une ville (feux, blessés, bâtiments endommagés, etc.) et puis d’attribuer un niveau d’urgence
en fonction de la proximité géographique d’événements similaires Alors, chaque image a deux descripteurs différents, l’un représentant le contenu visuel de l’image (descripteur interne) et l’autre représentant l’information de localisation géographique A l’égard de la représentation du contenu visuel de l’image, on bénéficie du travail de thèse de NGUYEN Nhu Van qui représente le contenu visuel de chaque image par un vecteur de caractéristiques Et à l’égard de la localisation géographique, chaque image est représentée par les coordonnées de latitude et de longitude Il est question maintenant de manipuler ces deux espaces pour soit retrouver des événements similaires visuellement, soit trouver des événements qui sont proches géographiquement pour réaliser les objectifs
de ce stage Pour que le système soit exploitable, le temps de réponse doit être acceptable Donc, il est nécessaire d’organiser des données dans les deux espaces pour pouvoir réduire le temps de réponse en réduisant le nombre de calculs de distance à effectuer Dans ce stage, on s’intéresse sur les techniques d’indexation multidimensionnelle qui vont être présentées dans la première partie de ce chapitre Dans la deuxième partie, on va voir comment on combine les informations du contenu de l’image et de localisation géographique dans quelques applications actuelles
2.1 Indexation multidimensionnelle
Les techniques principales d’indexations multidimensionnelles visent à regrouper les descripteurs de base et à les englober dans des cellules faciles à manipuler (hiérarchie) [3] Cela nous permet d’éviter de considérer tous les descripteurs dans la base lors d’une recherche en considérant seulement les groupes ou les paquets les plus pertinents et enfin,
on travaille seulement avec les descripteurs dans les paquets sélectionnés
Il y a deux grandes catégories de techniques de création de cellules : partitionnement des données et partitionnement de l’espace
2.1.1 Partitionnement des données
Les techniques de partitionnement de données créent des cellules en se basant sur
la distribution des descripteurs et leur proximité relative dans l’espace Dans cette catégorie, on trouve des techniques comme B-tree, la famille R-tree[5][6][7], SS-tree[8], SR-tree[2], X-tree [4], etc
Trang 13a B-tree : Balanced-tree (Bayer et McCreight, 1972) [3]
C’est un arbre balancé qui nous permet de structurer des données selon l’une des dimensions Un nœud qui n’est pas la racine d’un arbre B-tree d’ordre m contient entre m/2 et m nœuds fils Toutes les feuilles sont au même niveau et contiennent l’information
Un nœud quelconque qui a k nœuds fils a k-1 éléments en ordre croissant qui sont les valeurs de séparation divisant les valeurs de l’axe choisi des nœuds fils
Figure 1 - B-tree
Pour la recherche, on part de la racine Cette structure nous permet de vérifier s’il existe ou non un élément dans la base, mais elle ne convient pas pour trouver les éléments qui sont proches d’une entrée quelconque parce que chaque nœud interne contient seulement les valeurs de séparation selon un seul axe
b La famille R-tree : Rectangle-tree [3][5][6][7]
Dans la famille R-tree, on trouve trois structures R-tree [5], R+-tree[6] et tree[7] L’idée de base de cette approche est l’indexation des objets spatiaux par des rectangles englobants minimums Dans le contexte de l’indexation multidimensionnelle,
R*-on utilise des rectangles englobants multidimensiR*-onnels (hyper-rectangle) Le principe de cette famille est l’hiérarchie d’hyper-rectangles englobants et non-disjoints correspondant
à la distribution des données par un arbre équilibré, les données étant au niveau des feuilles [3]
Trang 14Figure 2 - R-tree
Un arbre R-tree a les propriétés suivantes [5] :
• Au niveau des feuilles, le rectangle englobant est le rectangle minimum recouvrant les vecteurs de données appartenant à ce nœud Chaque nœud feuille contient au maximum M et au minimum m≤M/2 éléments de données
• Tous les nœuds, sauf la racine, qui ne sont pas des feuilles ont entre m et M nœuds fils ; le rectangle englobant de ces nœuds est le rectangle minimum qui englobe les rectangles englobants des nœuds fils
• Le nœud racine a au moins deux fils sauf quand il est une feuille Le rectangle englobant du nœud racine recouvre tous les vecteurs de données de la base
• Toutes les feuilles sont au même niveau
Un rectangle englobant est déterminé par deux points S(s1,s2,…,sn) et T(t1,t2,…,tn) ; pour chaque élément X(x1,x2,…,xn) appartenant à ce rectangle, on a :
si ≤ xi ≤ ti avec ∀i ∈ [1,n]
Pour rechercher toutes les données appartenant à un rectangle Q quelconque, on réalise la recherche à partir du nœud racine, en descendant aux nœuds fils qui ont le rectangle englobant intersectant le rectangle et ainsi de suite jusqu’à ce qu’on rencontre les nœuds feuilles Au niveau des nœuds feuilles, on retourne toutes les données appartenant au rectangle Q
La création d’un arbre R-tree est réalisée en ajoutant au fur et à mesure des vecteurs dans l’arbre L’algorithme exact pour l’insertion d’un nouvel élément (vecteur) dans l’arbre est dans [5] ; l’idée principale est de partir du nœud racine, puis de descendre
Trang 15pour trouver la feuille ó ajouter le nouvel élément A chaque nœud, on choisit le nœud fils avec le rectangle englobant le plus petit Lorsqu’on trouve une feuille pour ajouter l’élément, s’il est plein, on doit le diviser en deux feuilles différentes en minimisant la surface totale des deux nouveaux rectangles englobants (division exhaustive, cỏt quadratique ou linéaire [5]) Le rectangle englobant de chaque nœud est créé et mis à jour
au cours de l’insertion des éléments dans l’arbre pour qu’il soit le rectangle le plus petit possible qui recouvre tous les éléments dans le sous-arbre de ce noeud
La structure R-tree est dédiée à la recherche par intervalles, elle convient pour l’indexation des données spatiales Lors de la recherche, on peut gagner du temps car on
ne doit pas considérer tous les éléments dans la base, on considère seulement les nœuds fils ayant le rectangle englobant qui intersecte l’intervalle entré Mais la possibilité d’intersection entre les rectangles augmente quand le nombre de dimensions est grand Dans ce cas, le parcours séquentiel peut être plus efficace
Les structures R+-tree [6] et R*-tree [7] sont données pour optimiser la recherche
en minimisant le chevauchement des rectangles englobants La structure R+-tree évite le recouvrement entres les rectangles en divisant chaque rectangle qui recouvre un autre rectangle en plus petits rectangles jusqu’à ce qu’il n’y a plus de recouvrement Cela peut faire augmenter la hauteur de l’arbre mais on peut gagner du temps en réduisant le nombre de sous-arbres à visiter La structure R*-tree minimise le recouvrement entre les rectangles et minimise aussi le volume des rectangles en appliquant, quand on veut ajouter un nouveau fils à un nœud plein, le mécanisme de réinsérer quelques nœuds fils
du nœud plein avant de le diviser en deux avec l’espoir de trouver des meilleurs positions pour les nœuds à réinsérer R*-tree est la structure ayant le plus de succès dans la famille R-tree [7][2] Les expérimentations [7] montrent qu’un SR-tree peut être utilisé efficacement pour l’organisation des données multidimensionnelles et des données spatiales
c SS-tree : Similarity Search Tree (1996) [3][8]
Le SS-tree [8] est une structure d’indexation de similarité qui regroupe les vecteurs
de caractéristiques suivant la similarité entre eux La mesure de similarité utilisée ici est la distance euclidienne dans le cas ó les poids de toutes les dimensions dans le vecteur de caractéristiques sont pareils
La structure de SS-tree ressemble à celle du R-tree mais on remplace dans chaque nœud le rectangle englobant par une sphère englobante représentée par un centre et un rayon Les données sont toujours au niveau des feuilles Le centre de la sphère englobante
Trang 16d’un nœud est le centre de gravité de tous les éléments dans le sous-arbre de ce nœud Au niveau des feuilles, la sphère englobante recouvre les éléments appartenant à cette feuille,
le rayon de la sphère englobante est égal à la distance entre le centre et le point le plus loin Et au niveau d’un nœud interne, la sphère englobante recouvre les sphères englobantes de tous les nœuds fils de ce nœud, le rayon de la sphère est toujours supérieur
ou égal à la distance entre le centre et le point le plus loin parmi les points dans le arbre de ce nœud
d SR-tree : Sphere/Rectangle Tree (1997) [3][2]
L’idée du SR-tree (Sphere/Rectangle Tree) est de combiner les deux structures tree et SS-tree en identifiant la région de chaque nœud par l’intersection du rectangle englobant et de la sphère englobante Pour chaque nœud dans l’arbre SR-tree, on détermine :
R*-• Un rectangle englobant recouvre tous les éléments (vecteurs) dans le sous-arbre de
ce nœud Ce rectangle est déterminé comme dans le cas du R-tree
• Une sphère englobante recouvre tous les éléments dans le sous-arbre de ce nœud Cette sphère est déterminée comme dans le cas du SS-tree
Un élément (vecteur) pourra être inclus dans le sous-arbre d’un nœud quelconque s’il appartient à la région déterminée par l’intersection du rectangle englobant et de la sphère englobante de ce nœud
Trang 17Figure 4 - SR-tree
En combinant le rectangle englobant et la sphère englobante (ou plus précisément l’hypercube et l’hypersphère dans le contexte de données de grande dimension), on garde l’avantage du comportement en grande dimension du SS-tree et on peut diminuer le recouvrement entre les nœuds par rapport aux cas du R*-tree et du SS-tree en créant des régions de petits volumes et de petits diamètres [2] Cela accroît la performance des requêtes des plus proches voisins pour les données de haute dimensionalité [2] Cela implique aussi que cette structure est utile pour les applications d’indexation de similarité des images/vidéos
e X-tree (1996) [4]
Le X-tree est une variance de la structure R*-tree Elle améliore la performance du R*-tree en utilisant l’algorithme de partitionnement minimisant le recouvrement et le mécanisme des super-noeuds qui ont plus de nœuds que les nœuds normaux [4][2] Les super-noeuds sont utilisés si le recouvrement généré quand on ajoute un nouveau fils dans
un nœud plein est plus petit que celui lorsqu’on divise ce nœud en deux nouveaux nœuds Les expérimentations [4][2] montrent que la performance du X-tree pour les requêtes par
point (point query) est beaucoup meilleure que celle du R*-tree
2.1.2 Partitionnement de l’espace
A l’égard des techniques de partitionnement de l’espace, on divise directement l’espace multidimensionnel en cellules plus ou moins complexes et régulières Quelques techniques de ce type sont KD-tree [3], KDB-tree [9], LSD-tree [10], etc
Trang 18a KD-tree (Bentley, 1979) [3]
Le KD-tree (k-dimensional tree) organise les données dans un espace à k
dimensions On structure les données sous la forme d’un arbre binaire A chaque niveau,
on partitionne l’espace en deux sous-espaces successivement selon chaque dimension
Figure 5 - Kd-tree
Un arbre KD-tree a des propriétés suivantes :
• La racine est la boîte englobante de tout l’espace
• Un nœud correspond à un plan séparateur et deux pointeurs pointant vers deux sous-espaces construits par le plan
• Une feuille correspond à la liste des objets de la base appartenant à l’espace de ce nœud
On peut couper l’espace en deux au milieu par le plan médian, couper à la position
de l’objet médian ou au hasard Cette structure permet la recherche par intervalles ou par plus proches voisins Elle permet d’accélérer le traitement des données multidimensionnelles L’avantage de cette structure pour la recherche dépend de la concentration des données dans l’espace
b KDB-tree [9]
Le KDB-tree [9] est une structure d’indexation pour les vecteurs multidimensionnels Elle combine les propriétés du KD-tree et du B-tree en organisant les données sous forme d’un arbre balancé qui partitionne à chaque niveau l’espace de recherche en deux sous-espaces successivement selon chaque dimension La disjonction entre les nœuds de même niveau dans l’arbre KDB-tree implique un seul chemin dans la
recherche par point (point query) Mais dans le KDB-tree, lorsqu’on divise une région
d’un nœud intermédiaire selon un axe, on doit aussi diviser les régions des sous-nœuds
Trang 19selon cet axe, cela pouvant créer des nœuds vides ou presque vides Cela implique une diminution de la performance du KDB-tree dans le cas des requêtes par intervalles ou les requêtes par plus proches voisins
c LSD-tree : Local Split Decision tree [10]
Le LSD-tree (Local Split Decision tree) [10] est une structure de données qui
supporte efficacement l’accès vers les objets géométriques Comme d’autres structures, le LSD-tree partitionne l’espace de données récursivement en deux sous-espaces séparés à une position arbitraire La position pour diviser est choisit pour atteindre l’optimal local, c'est-à-dire le choix de la position pour la division dépend seulement du bloc de l’espace qu’on divise, et non pas des bornes des autres blocs C’est pour cette raison que l’on
appelle cette structure Local Split Decision tree
La structure du LSD-tree ressemble à celle du KD-tree Chaque nœud de l’arbre enregistre la dimension et la position pour la division
Figure 6 - LSD-tree
2.2 Travaux similaires
2.2.1 SnapToTell [11][12][13][14]
SnapToTell est un système qui fournit de l’information multimédia aux touristes en
se basant sur les images prises par des téléphones portables et sur l’information de localisation Imaginez que vous être en train de voyager et que vous voyez un beau site
Trang 20(un lac, un monument, un sculpture, etc.) et que vous voulez avoir les informations concernant ce site Vous pouvez prendre une photo de ce site utilisant votre téléphone portable et l’envoyer à un fournisseur de service de SnapToTell Le fournisseur de service
va vous envoyer ensuite les informations décrivant ce site sous la forme un message multimédia (MMS) et/ou un message texte
L’idée de ce système est d’utiliser l’information de localisation géographique du téléphone portable de l’utilisateur pour déterminer le contexte de l’utilisateur Mais la position seule de l’utilisateur ne nous permet pas de déterminer son intention car le monument qui l’intéresse peut être éloigné de plusieurs centaines de mètres Alors, après avoir eu l’information du contexte de l’utilisateur, le système va rechercher dans la base
de données les images les plus proches visuellement de l’image requête pour trouver le site qui intéresse l’utilisateur Notez qu’on fait la recherche seulement parmi les images autour du positionnement de l’utilisateur La base de données de ce système collecte les images de tous les sites célèbres d’un pays (ici, Singapour), chaque site correspondant à plusieurs images prises à plusieurs distances différentes, de plusieurs points de vue différents
Figure 7 - Architecture client/serveur du système SnapToTell
L’architecture client/serveur est utilisée pour le système SnapToTell Le client est
un téléphone portable intégrant un appareil photo et supportant les MMS La requête envoyée vers le serveur par le client peut être l’image de la scène ou le vecteur de description du contenu visuel de l’image (par exemple, un histogramme de couleurs) Le serveur SnapToTell reçoit l’image avec l’information de localisation géographique du téléphone mobile de l’utilisateur grâce à l’opérateur du réseau mobile A partir du
Trang 21positionnement de l’utilisateur, le serveur recherche dans la base de données l’image la plus proche visuellement parmi les images autour de la localisation de l’appareil mobile
A l’égard de la base de données, on construit une base d’images de scènes différentes de Singapour Chaque image contient l’information GPS de la scène, l’information de localisation géographique ici étant localisée hiérarchiquement à trois niveaux : Singapour est divisé en plusieurs zones, chaque zone contenant plusieurs lieux
et chaque lieu correspondant à quelques scènes Chaque scène est caractérisée par des photos prises à plusieurs distances, plusieurs points de vue et plusieurs conditions de luminosité, elle correspond aussi à une description textuelle et/ou une description audio qui sont les informations à retourner pour l’utilisateur lors de chaque requête
Figure 8 - Localisation hiérarchique des scènes de Singapour
Ainsi, chaque fois qu’on reçoit une requête, on utilise tout d’abord l’information de localisation géographique pour diminuer le nombre d’images à rechercher, puis on recherche l’image la plus proche visuellement pour déterminer la scène Notez que l’on utilise un seuil pour déterminer s’il y a une scène correspondant à l’image requête ou non
Le vecteur de caractéristiques visuelles de l’image ici est l’histogramme des couleurs
Trang 222.2.2 MobiLog [15]
MobiLog (Mobile Blogging automation) [15] est une plateforme qui est proposée
pour automatiser partiellement la saisie de données des blogs écrits à partir d’un téléphone mobile et le système TraveLog [15] est une application de cette plateforme Notez que ce système utilise les résultats du système Snap2Tell abordé dans la partie précédente
L’idée de ce système est qu’un utilisateur prend des images d’une scène intéressante en voyageant et il veut écrire un blog en utilisant son téléphone mobile pour partager son voyage Le système va l’aider à ajouter automatiquement les informations concernant le contexte (l’heure, la location, le climat), les informations personnelles d’utilisateur (le nom, la date de naissance) et les informations du contenu des images (description de la scène)
Figure 9 - Screen shots de la composition de blog sur un téléphone portable
Trang 23On peut trouver les informations du contexte en se basant sur le temps de la création des images, sur la position du téléphone mobile (GPS) et sur l’information du climat obtenue à partir des serveurs correspondants Les informations personnelles de l’utilisateur sont obtenues à partir de son profil Pour avoir la description de la scène, le serveur TraveLog envoie les images ajoutées dans le blog par l’utilisateur vers le serveur Snap2Tell [2.2.1] A partir des mots-clés dans la description reçue du serveur Snap2Tell,
le système peut chercher les sites web concernés en utilisant les moteurs de recherche Web et les lister dans le blog Un autre but de ce système est d’améliorer la qualité des images dans le blog en utilisant la technique d’égalisation d’histogramme ou en remplaçant les images de mauvaise résolution par des images de bonne résolution d’une même scène (différents points de vue, différentes conditions de lumière) trouvées par le service de Snap2Tell La figure suivante donne un exemple de blog proposé par le système TraveLog :
Figure 10 - Exemple de blog du système TraveLog
Trang 243.1 Présentation du SR-tree
La structure SR-tree est basée en même temps sur la structure de la famille R-tree [5][6][7] et celle de SS-tree [8] Elle regroupe des avantages de la famille R-tree et de SS-tree en déterminant une région d’un nœud par l’intersection du rectangle englobant minimal et de la sphère englobante minimale des données dans le sous-arbre de ce nœud Pourquoi combiner les hypercubes et les hypersphères ? Dans la stratégie de création du R-tree, on essaie de minimiser le volume des hyper-rectangles Mais dans certain cas, un hypercube peut avoir une plus grande diagonale que celle d’un hypercube ayant un plus petit volume Les rectangles de grande diagonale peuvent provoquer plus de recouvrement entre des nœuds En créant le SS-tree, on essaie de minimiser le diamètre des hypersphères tandis que les hypersphères occupent un grand volume pour un petit diamètre dans le cas de grande dimensionalité L’intersection du rectangle englobant et de
la sphère englobante permet d’obtenir une région plus petite que celles du R-tree et du SS-tree D’ailleurs, dans la stratégie pour minimiser le diamètre, l’intersection donne des régions de petits volumes pour un petit diamètre, et donc, permet de réduire la superposition des régions
Un arbre SR-tree a les propriétés suivantes :
• Les données sont au niveau des feuilles C'est-à-dire que le rectangle englobant et
la sphère englobante d’un nœud feuille sont respectivement le rectangle minimal et
Trang 25la sphère minimale recouvrant les vecteurs de données appartenant à ce nœud Chaque nœud feuille contient au maximum ML et au minimum mL≤ML/2 éléments
de données
• Tous les nœuds qui ne sont pas les feuilles sauf la racine ont entre mN et MN nœuds fils ; le rectangle englobant et la sphère englobante de ces nœuds recouvrent respectivement les rectangles englobants et les sphères englobantes des nœuds fils
• Le nœud racine a au moins deux fils sauf quand il est une feuille Le rectangle englobant et la sphère englobante du nœud racine recouvre tous les vecteurs de données de la base
• Toutes les feuilles sont au même niveau
Figure 11 - Structure SR-tree
Figure 12 - Détermination des régions par l'intersection des rectangles et des sphères
La structure d’un nœud du SR-tree est comme suit :
struct SRElement {
SRElement child_array_ptr ;
Trang 26Int num_children ; Int num_point ; Int height ;
Float radius ; Float centroid[D] ; Float s[D] ;
Float t[D] ; DATA data_ptr ; }
Avec :
• child_array_ptr est la liste des pointeurs pointant vers les nœuds fils de ce nœud
• num_children est le nombre des nœuds fils de ce nœud mN ≤ num_children ≤ MNavec mN et MN sont les nombres minimal et maximal des nœuds fils de chaque nœud
• num_point est le nombre total des éléments (vecteurs) dans le sous-arbre de ce
nœud
• height est la hauteur de ce nœud
• D est la dimension des données dans l’arbre
• La sphère englobante S de ce nœud est déterminée par un rayon radius et un centre
centroid qui est le centre de gravité des vecteurs dans le sous-arbre de ce nœud
• Le rectangle englobant R de ce nœud est déterminé par deux points s et t Pour
chaque élément e dans le sous-arbre de ce nœud, on a si≤ei≤ti avec ∀i : 1≤ i ≤D
• Chaque nœud feuille correspondant à un élément (vecteur) de la base Si c’est un
nœud feuille, data_ptr est le pointeur qui point vers les données de type DATA
correspondant à cette feuille Par exemple, dans le cas des images, DATA est un type de données déterminant les informations correspondant à une image comme le nom de l’image, les données de localisation géographique, les données du contenu visuel, le type du sinistre, etc
La création d’un arbre SR-tree est réalisé en insérant au fur et à mesure les données dans le SR-tree
3.2 Insertion dans le SR-tree
L’algorithme d’insertion d’un nœud dans un SR-tree est basé sur celui du SS-tree [8] La première étape d’insertion est d’ajouter le nœud à insérer dans la liste des nœuds à réinsérer et puis, insérer les nœuds dans la liste jusqu’à ce que la liste soit vide