Automatique spotting des logos dans les images de documents (mid project presentation) (final year project - Zakaria MELK)
1. Soutenance de mi-parcours
Automatique spotting des logos
dans les images de documents
Etudiant : Encadrants :
Muhammad Muzzamil Luqman
Zakaria MELK Jean-Yves Ramel
Dimosthenis Karatzas
PFE 2011-2012
ID : 5
2. Plan
Présentation du projet
Objectifs
Architecture du système
Description de l’existant
Avancement du projet
Planning
Modules développés
2
3. Présentation du projet
Objectifs
Automatique 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
Tobacco800 database
3
4. Objectif 1
Graph embedding
• 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).
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
4
5. Objectif 2
Système d’indexation des images de documents
Architecture fonctionnelle
Mode
« Apprentissage »
Base de données
Mode
« Spotting»
Logo
Résultats
5
6. Mode Apprentissage « Learning »
Mode
« Apprentissage »
Base de données
Prétraitement des graphes
Entrée L'ajout des attributs de vraissemblance et de l'homogéinité
local au graphe
Une collection d'images de documents
Extraction des cliques (sous-graphes de 2 noeuds)
Prétraitement des images
Un ensemble d'opérations pour améliorer la qualité des images
initiales (ex: Binarisation, segmentation, ...) 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
Vectorisation dimension pour toutes les cliques du même graphe)
La décomposition de l'image en un ensemble d'objets énumérés
(vecteurs, courbe, arcs, ...)
Groupement des VFCs en classes (Clustering)
un algo de clustering
Construction de graphe
Une représentation des objets repérés lors de la
vectorisation sous forme d'un graphe évalué (ajout des Sortie
attributs des nœuds et des arcs)
La mise en Œuvre d'un La création d'un index
classificateur •Image vs graphe vs cliques vs
(vecteurs + classes)
6
7. Mode Spotting
Résultats
Logo
Entrée
Un logo sélectionné dans l'image de document
Extraction des cliques (sous-graphes de 2 noeuds)
Prétraitement de l'image sélectionnée
Encapsulation explicite des graphes dans des vecteurs
Un ensemble d'opérations pour améliorer la qualité du logo
sélectionné (ex: Binarisation, segmentation, ...) 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)
Vectorisation
La décomposition du logo en un ensemble d'objets énumérés Classification des VFCs
(vecteurs, courbe, arcs, ...)
Classifier les VFCs selon les classes déjà calculées lors de la phase
d'apprentissage en utilisant un classificateur
Construction de graphe
Une représentation des objets repérés lors de la vectorisation
Recherche dans l'index
sous forme d'un graphe évalué (ajout des attributs des noeuds calculer le score des combinaisons des cliques correspondant à la requête
et des arcs) . Un score de 1 signifie que le sous-graphe trouvé correspond à 100% à
l'image requête
Prétraitement du graphe Sortie
L'ajout des attributs de vraissemblance et de l'homogéinité Localiser le sous-graphe requête dans les graphes résultat (Colorier la
local au graphe zone recherchée dans les images en sortie)
7
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.
8 8
11. Objectifs
Automatique 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
11
12. Modules développés
La classe : Graph
Graph.java
• Parseur GXL
Doc1.gxl (GXL java API)
• Calcul de degré
des nœuds AG1 = (V1,E1,Uv,UE)
Doc2.gxl • Ajout de la AG2 = (V2,E2,Uv,UE)
Entrée ressemblance des Sortie
AG3 = (V3,E3,Uv,UE)
arcs pour les
… nœuds
…
• Ajout de la AGe = (Ve,Ee,Uv,UE)
ressemblance des AGm = (Vm,Em,Uv,UE)
DocE.gxl
nœuds pour les
arcs
DocM.gxl • Fonctions pour le
calcul de la
ressemblance
• …
12
13. Modules développés
La classe : PreLearning <<use>> Graph.java
PreLearning.java
• Lecture des
graphes contenus
dans un répertoire
• Ajout de la
ressemblance
pour chaque Sortie listNumNodesAttributes
Entrée
graph listNumEdgesAttributes
directoryPath listSymbNodesAttributes
• Construire pour
chaque attribut la listSymbEdgesAttributes
liste de ses
valeurs dans tous
les graphes
• …
13
14. Modules développés
La classe : Learning
Learning.java
listNumNodesAttributes • getInitCrispInterval Sortie listNodesFuzzyIntervals
Entrée listEdgesFuzzyIntervals
listNumEdgesAttributes • getFuzzyTrapzInterval
listSymbNodesAttributes • Utilisation de la listNodesCrispIntervals
listSymbEdgesAttributes librairie « nrc.fuzzy » listEdgesCrispIntervals
• …
14