20
Automatique spotting des logos dans les images de documents Etudiant : Zakaria MELK Soutenance de mi-parcours Encadrants : Muhammad Muzzamil Luqman Jean-Yves Ramel Dimosthenis Karatzas PFE 2011-2012 ID : 5

Automatique spotting des logos dans les images de documents (mid project presentation) (final year project - Zakaria MELK)

Embed Size (px)

Citation preview

Automatique spotting des logos dans les images de documents

Etudiant :

Zakaria MELK

Soutenance de mi-parcours

Encadrants :

Muhammad Muzzamil Luqman

Jean-Yves Ramel

Dimosthenis Karatzas

PFE 2011-2012

ID : 5

Présentation du projet

Objectifs

Architecture du système

Description de l’existant

Avancement du projet

Planning

Modules développés

2

Plan

3

Présentation du projet

Tobacco800 database

ObjectifsAutomatique spotting des logos dans les images de documents

• Encapsulation des graphes (Graph Embedding )

• Système d’indexation des images de documents• Tabacco800 : - 1290 images de documents

- Complexité réelle

4

Objectif 1

• Une méthode pour transformer, des graphes attribués, en vecteurs

numériques Recherche de sous-graphe par encapsulation explicite de graphes : Application à la localisation de contenu dans

les images de documents graphiques, Luqman, M., Brouard, T., Ramel, J., & Llados, J. (2011).

Fuzzy Multilevel Graph Embedding, , Luqman, M., Ramel, J., Llados, J. & Brouard, T.. (2011).

Graph embedding

10 9 1,97 0,03 1 0 0 3 0 0 0 0 3 0 0 0 3 0 0 0 3 0 2 1 0 0 0 0 1 0 2 0 2,31 0,69 0 0 3 0 0 0 1 1 1 0 0 0 3 0 0 2 1

5

Objectif 2

Mode

« Apprentissage »

Mode

« Spotting»

Base de données

Résultats

Système d’indexation des images de documentsArchitecture fonctionnelle

Logo

6

Mode

« Apprentissage »

Base de données

Mode Apprentissage « Learning »

Entrée

Une collection d'images de documents

Prétraitement des images

Un ensemble d'opérations pour améliorer la qualité des images initiales (ex: Binarisation, segmentation, ...)

Vectorisation

La décomposition de l'image en un ensemble d'objets énumérés (vecteurs, courbe, arcs, ...)

Construction de graphe

Une représentation des objets repérés lors de la vectorisation sous forme d'un graphe évalué (ajout des

attributs des nœuds et des arcs)

Prétraitement des graphes

L'ajout des attributs de vraissemblance et de l'homogéinitélocal au graphe

Extraction des cliques (sous-graphes de 2 noeuds)

Encapsulation explicite des graphes dans des vecteurs numériques (VFCs)

Affecter un vecteur, appelé Vecteur Flou de Caractéristiques, à chaque clique d'ordre 2 (les vecteurs doivent être de même

dimension pour toutes les cliques du même graphe)

Groupement des VFCs en classes (Clustering)

un algo de clustering

Sortie

La mise en Œuvre d'un

classificateur

La création d'un index

•Image vs graphe vs cliques vs (vecteurs + classes)

7

Mode SpottingRésultats

Logo

Entrée

Un logo sélectionné dans l'image de document

Prétraitement de l'image sélectionnée

Un ensemble d'opérations pour améliorer la qualité du logo sélectionné (ex: Binarisation, segmentation, ...)

Vectorisation

La décomposition du logo en un ensemble d'objets énumérés (vecteurs, courbe, arcs, ...)

Construction de graphe

Une représentation des objets repérés lors de la vectorisation sous forme d'un graphe évalué (ajout des attributs des noeuds

et des arcs)

Prétraitement du graphe

L'ajout des attributs de vraissemblance et de l'homogéinité local au graphe

Extraction des cliques (sous-graphes de 2 noeuds)

Encapsulation explicite des graphes dans des vecteurs numériques (VFCs)

Affecter un vecteur, appelé Vecteur Flou de Caractéristiques, à chaque clique d'ordre 2 (les vecteurs doivent être de même dimension pour

toutes les cliques du même graphe)

Classification des VFCs

Classifier les VFCs selon les classes déjà calculées lors de la phase d'apprentissage en utilisant un classificateur

Recherche dans l'indexcalculer le score des combinaisons des cliques correspondant à la requête . Un score de 1 signifie que le sous-graphe trouvé correspond à 100% à

l'image requête

Sortie

Localiser le sous-graphe requête dans les graphes résultat (Colorier la zone recherchée dans les images en sortie)

8 8

Présentation du projet

Description de l’existant

VectoGraph

Un logiciel en C++ développé par [J.Y.Ramel RFAI, LI] permettant à partir d’une image « bmp

monochrome » de donner une représentation sous forme d’un graphe

Weka

Un logiciel développé en Java qui offre un contenu scientifique important surtout pour les

chercheurs dans le domaine de l’apprentissage automatique.

Avancement du projet

9

10

Planning

Prévisionnel

11

ObjectifsAutomatique spotting des logos dans les images de documents

• encapsulation des graphes (Graph Embedding ) : Une

méthode pour transformer, des graphes attribués, en

vecteurs numériques

10 9 1,97 0,03 1 0 0 3 0 0 0 0 3 0 0 0 3 0 0 0 3 0 2 1 0 0 0 0 1 0 2 0 2,31 0,69 0 0 3 0 0 0 1 1 1 0 0 0 3 0 0 2 1

• Système d’indexation des images de documents

12

Modules développés

AG1 = (V1,E1,Uv,UE)

AG2 = (V2,E2,Uv,UE)

AG3 = (V3,E3,Uv,UE)

AGe = (Ve,Ee,Uv,UE)

AGm = (Vm,Em,Uv,UE)

Doc1.gxl

Doc2.gxl

DocE.gxl

DocM.gxl

• Parseur GXL

(GXL java API)

• Calcul de degré

des nœuds

• Ajout de la

ressemblance des

arcs pour les

nœuds

• Ajout de la

ressemblance des

nœuds pour les

arcs

• Fonctions pour le

calcul de la

ressemblance

• …

La classe : Graph

Graph.java

Entrée Sortie

13

Modules développés

listNumNodesAttributes

listNumEdgesAttributes

listSymbNodesAttributes

listSymbEdgesAttributes

• Lecture des

graphes contenus

dans un répertoire

• Ajout de la

ressemblance

pour chaque

graph

• Construire pour

chaque attribut la

liste de ses

valeurs dans tous

les graphes

• …

La classe : PreLearning

PreLearning.java

Entrée Sortie

Graph.java<<use>>

directoryPath

14

Modules développés

• getInitCrispInterval

• getFuzzyTrapzInterval

• Utilisation de la

librairie « nrc.fuzzy »

• …

La classe : Learning

Learning.java

Entrée SortielistNumNodesAttributes

listNumEdgesAttributes

listSymbNodesAttributes

listSymbEdgesAttributes

listNodesFuzzyIntervals

listEdgesFuzzyIntervals

listNodesCrispIntervals

listEdgesCrispIntervals

15

Modules développés

La classe : GraphEmbedded

GraphEmbedded.java

Entrée Sortie

listNodesFuzzyIntervals

listEdgesFuzzyIntervals

listNodesCrispIntervals

listEdgesCrispIntervals

AG1 = (V1,E1,Uv,UE)

AG2 = (V2,E2,Uv,UE)

AG3 = (V3,E3,Uv,UE)

AGe = (Ve,Ee,Uv,UE)

AGm = (Vm,Em,Uv,UE)

FSMV1

FSMV2

FSMV3

….

FSMVe

FSMVm

FSMV (Fuzzy Structural Multilevel Feature Vector)

Graph.java

• EmbeddingNumericAttributes

• EmbeddingSymbolicAttributes

• setSignature

16

Modules développés

Diagramme de classes

spottingLogo.model spottingLogo.logic

GraphAttributes

ErrConst

Interval

GraphEmbedded

Learning

PreLearning

<<use>><<use>>

1…*

1…*

17

Architecture techniquedu système

Planning prévisionnel

18

Planning respecté

19

Gestion de projet

20

MERCI POUR VOTRE ATTENTION