last-svn-commit-14-g45cefb4 Group Millet2008 documentation files.

* green/doc/annotating: New directory. * green/doc/annotating/class.txt: New hierarchy description. * green/doc/annotating/testMillet2008.txt: New result interpretations. * green/doc/annotating/syntheseMillet2008.txt: New feature extractions. * green/demo/annotating/class.txt: Remove this obsolete file. --- milena/sandbox/ChangeLog | 10 + milena/sandbox/green/demo/annotating/class.txt | 33 --- milena/sandbox/green/doc/annotating/class.txt | 42 +++ .../green/doc/annotating/syntheseMillet2008.txt | 283 ++++++++++++++++++++ milena/sandbox/green/doc/annotating/testMillet2008 | 69 +++++ 5 files changed, 404 insertions(+), 33 deletions(-) delete mode 100644 milena/sandbox/green/demo/annotating/class.txt create mode 100644 milena/sandbox/green/doc/annotating/class.txt create mode 100644 milena/sandbox/green/doc/annotating/syntheseMillet2008.txt create mode 100644 milena/sandbox/green/doc/annotating/testMillet2008 diff --git a/milena/sandbox/ChangeLog b/milena/sandbox/ChangeLog index ffbc6e3..2fecbe3 100644 --- a/milena/sandbox/ChangeLog +++ b/milena/sandbox/ChangeLog @@ -1,3 +1,13 @@ +2009-12-16 Yann Jacquelet <jacquelet@lrde.epita.fr> + + Group Millet2008 documentation files. + + * green/doc/annotating: New directory. + * green/doc/annotating/class.txt: New hierarchy description. + * green/doc/annotating/testMillet2008.txt: New result interpretations. + * green/doc/annotating/syntheseMillet2008.txt: New feature extractions. + * green/demo/annotating/class.txt: Remove this obsolete file. + 2009-12-16 Yann Jacquelet <jacquelet@lrde.epita.fr> Correct typo into directories. diff --git a/milena/sandbox/green/demo/annotating/class.txt b/milena/sandbox/green/demo/annotating/class.txt deleted file mode 100644 index ec7e92e..0000000 --- a/milena/sandbox/green/demo/annotating/class.txt +++ /dev/null @@ -1,33 +0,0 @@ -Dans scribo les classes de documents sont: - -- image seule (photo) -- courrier manuscrit -- courrier dactylographié -- facture ou feuille organisée sous forme de tableau -- article de journal -- document composite -- infographie (logo, carte, dessin vectoriel) -- slide (copie d'écran ou sauvegarde au format image) - - -Où se situent les faxes ? - - -Description d'un fax: -- ratio l/L assimilable à du A4 ou US Letter -- nombre de couleurs très petit, < 1000 -- plutôt du N & B, mais quelques faxes sont en couleurs -- généralement un % élevé de blanc (la page vierge) - - -Description d'un article de journal: -- nombre élevés de couleurs (> 10 000) en général -- quelques articles de conférences autour de 5000 - - -Description des photos: -- un nombre très élevé de couleurs -- ratio non A4, non US Letter - - - diff --git a/milena/sandbox/green/doc/annotating/class.txt b/milena/sandbox/green/doc/annotating/class.txt new file mode 100644 index 0000000..0fa5cf9 --- /dev/null +++ b/milena/sandbox/green/doc/annotating/class.txt @@ -0,0 +1,42 @@ +Dans scribo les classes de documents sont: + +- image seule (photo) +- courrier manuscrit +- courrier dactylographié +- facture ou feuille organisée sous forme de tableau +- article de journal +- document composite +- infographie (logo, carte, dessin vectoriel) +- slide (copie d'écran ou sauvegarde au format image) + +Le problème avec cette hiérarchie c'est quelle induit une connaissance +fonctionnelle des images traitées et que les extracteurs de primitives font +plutôt ressortir des informations relatives à la nature de l'image. + +Par exemple, les slides peuvent contenir aussi bien du texte, que des photos +ou des cliparts. C'est une forme de "composite" par définition. + +Où se situent les faxes ? + + +Description d'un fax: +- ratio l/L assimilable à du A4 ou US Letter +- nombre de couleurs très petit, < 1000 +- plutôt du N & B, mais quelques faxes sont en couleurs +- généralement un % élevé de blanc (la page vierge) + + +Description d'un article de journal: +- nombre élevés de couleurs (> 10 000) en général +- quelques articles de conférences autour de 5000 + + +Description des photos: +- un nombre très élevé de couleurs +- ratio non A4, non US Letter + + +Google hiérarchie: +- line drawing +- clipart +- photo diff --git a/milena/sandbox/green/doc/annotating/syntheseMillet2008.txt b/milena/sandbox/green/doc/annotating/syntheseMillet2008.txt new file mode 100644 index 0000000..b7b3648 --- /dev/null +++ b/milena/sandbox/green/doc/annotating/syntheseMillet2008.txt @@ -0,0 +1,283 @@ + +Millet utilise un certain nombre de descripteurs (p 65, Chapitre 3) +pour l'annotation automatique. Son objectif est de formuler une +annotation automatique simple à partir de descripteurs de bas niveaux +qui permettent de réaliser l'opération en moins de 10 secondes. + +L'auteur présente dans le chapitre 4, p 77 l'arbre de classification +et l'utilisation précise qu'il fait de ces descripteurs. + + +Reconnaissance des images de clipart versus photographies +Reconnaissance des images Noir & Blanc versus Couleur +Reconnaissance Interieur versus Exterieur +Autre reconnaissance cartes, photos, peintures. + + + /---------Image------------\ + | | + v v + /-------+------+-------\ /-------+----------\ + | | | | | | | + v v | v v v v +Carte Clipart | Peinture Couleur N&B N&B colorisé + | + v + /----Photo----------\ + | | + v | + /----------\ | + | | | + v | v +Intérieur | Visages + | + v + /-----Extérieur------\ + | | + v v + /-----\ /-----\ + | | | | + v v v v +Jour Nuit Nature Urbain + + +Note: +----- +Lorsque d'un concept, on part de sa droite et de sa gauche, il s'agit en fait +de tests différents effectués en parallèles (ex.: Image, Photo, Extérieur). + +Lorsqu'on aboutit à une bifurcation et qu'il ne s'agit pas d'un concept, cela +correspond à un seul test dont les résultats sont répartis dans des classes +différentes. + +Fax +Magazine + + + +ANNEXE 1 : SYNTHESE DESCRIPTEURS MILLET +======================================= + +* RGB-64 +-------- +Chaque composante est quantifiée sur 4 valeurs (4x4x4 = 64), puis on construit +l'histogramme à 64 composantes. + + +* TSVal +------- +A partir de l'espace RGB d'origine, on effectue +la transformation. Attention les composantes ne sont pas quantifiées +de la même manière (18 valeurs pour la teinte [17 + 1 pour le +négatif], Val et S sont quantifiées sur 3 valeurs +chacunes. L'histogramme obtenu dans cet espace contiendra 162 +composantes. + +Val = max(R,G,B) +S = [max(R,G,B) - min(R,G,B)] / max(R,G,B) + +Si R = max(R,G,B) +Alors T = 60 * (G-B) / [max(R,G,B) - min(R,G,B)] + +Si G = max(R,G,B) +Alors T = 60 * (2 + (B-R) / [max(R,G,B) - min(R,G,B)]) + +Si B = max(R,G,B) +Alors T = 60 * (4 + (R-G) / [max(R,G,B) - min(R,G,B)]) + + +* RGB-64-9 +---------- +L'image est décomposée en 9 sous images identiques, puis on applique le +descripteur RGB-64. L'histogramme obtenu est la concaténation des 9 +histogrammes soit un histogramme résultant à 576 composantes. + + +* BIC +----- +L'image est quantifiée en 216 couleurs (RGB-216) 6 valeurs par couleur. On +distingue ensuite les pixels du bord des pixels intérieurs. Les pixels +intérieurs ont la même couleur que leurs 4-voisins. Un histogramme est crée +pour chaque groupe de pixels. Puis on concatène +les histogrammes en un seul de 432 composantes. + + +* LEP +----- +On construit une image de gradient avec un sobel 3x3, puis cette image est +seuillée à 100 et devient donc binaire. On étiquette les configurations +obtenues avec un masque 3x3 classique (convolution). Il existe 2^9 +configurations possibles. On construit alors un histogramme à 512 composantes. + +masque de convolution pour l'identification de la configuration: +001 002 004 +008 256 016 +032 064 128 + + +* GABOR +------- +Très coûteux, la réponse de 24 filtres sur une image 300x300 est de l'ordre de + 1s. On utilise ici des filtres de taille 8x8. + +F(x,y) = [1 / (2 PI sigma_x sigma_y)] + * exp[(-1/2)(x^2/sigma_x^2 + y^2/sigma_y^2)] * exp[j2 PI Wx] + +sigma_x et sigma_y sont des paramètres d'échelles. +W permet de changer l'orientation. + +Il existe une formule pour trouver les coefficients des filtres une fois que +l'on a déterminé le nombre d'orientations et d'échelles utilisées. On ne +retiendra, en sortie de filtre, que la variance et l'énergie. L'auteur +préconise d'utiliser 6 directions et 4 échelles. + + +--------------GABOR---------MATLAB---------------------------------------------- +function gb=gabor_fn(sigma,theta,lambda,psi,gamma) + +sigma_x = sigma; +sigma_y = sigma/gamma; + +% Bounding box +nstds = 3; +xmax = max(abs(nstds*sigma_x*cos(theta)),abs(nstds*sigma_y*sin(theta))); +xmax = ceil(max(1,xmax)); +ymax = max(abs(nstds*sigma_x*sin(theta)),abs(nstds*sigma_y*cos(theta))); +ymax = ceil(max(1,ymax)); +xmin = -xmax; ymin = -ymax; +[x,y] = meshgrid(xmin:xmax,ymin:ymax); + +% Rotation +x_theta=x*cos(theta)+y*sin(theta); +y_theta=-x*sin(theta)+y*cos(theta); + +gb=exp(-.5*(x_theta.^2/sigma_x^2+y_theta.^2/sigma_y^2)).*cos(2*pi/lambda*x_theta+psi); + +http://matlabserver.cs.rug.nl/cgi-bin/matweb.exe +Gabor Filters. Tech. rep., 2002. +--------------GABOR---------MATLAB---------------------------------------------- + + +* PROJECTION +------------ +L'image est redimentionnée en 100x100. Un coup de Sobel 3x3, puis une +binarisation avec s=100. On considère les moitiées verticales puis +horizontales. Pour les moitiées verticales, on réalise la somme sur chacune +des lignes, on obtient alors un vecteur de taille 100. +Pour les moitiées horizontales, on réalise les sommes des colonnes. On obtient +alors un vecteur taille 100. Les 4 sous vecteurs obtenus peuvent être +concaténés pour former un unique descipteur de 400 composantes. + + + +ANNEXE 2 : SYNTHESE CLASSIFICATION MILLET +========================================= + + +* Reconnaissance des images de clipart versus photographies +----------------------------------------------------------- + +Construire l'histogramme de l'image, éliminer toutes les couleurs peu +représentées et ensuite les comptées. Moins de 50 couleurs / 256, c'est un +clipart, plus de 150 / 256 c'est une photographie. Entre les deux, indécision. +D'après l'auteur, le test n'est pas complètement fiable et peu être évincé, tout +dépend de la qualité de la compression des cliparts. + +Diviser l'image en 16 imagettes (4x4), calculer la suite pour chaque imagette. +Trouver le maxima de l'histogramme (noté p)/ p = argmax H(x), x in [0,255]. +Puis on calcule un sigma autour du pic. + +sigma^2 = Sum(p-1,p-5) r(x) pour p > 250 +sigma^2 = Sum(p+1,p+5) r(x) pour p < 005 +sigma^2 = (1/2) (Sum(p-1,p-5) r(x) + Sum(p+1,p+5) r(x)) pour les autres p + +r(x) = ((H(x)/H(p)) * (x-p))^2 + + +Le descripteur de l'image entière est alors le maximum des 16 sigma^2. Si le +pic est resseré, c'est plutôt un clipart (< 5), sinon plutôt une photographie +(> 40). Le seuil est fixé à 15. + + + +* Reconnaissance des images Noir & Blanc versus Couleur +------------------------------------------------------- + +Achromatisme (en passant par TSVal) + +si |R - G| < s +et si |R - B| < s alors R ~ G ~ B +et si |G - B| < s + +==> T = -1 +==> Val = (R + G + B)/3 + +L'auteur propose s = 0,03 + +Une image est dite Noir & Blanc (donc Achromatique) si + de 99% des pixels le +sont. Le test peut être appliqué aux images étiquetées comme des cliparts, ou +des photographies. + + +Faible saturation: + +On établit l'histogramme de la saturation de l'image (0 à 255). Si plus de 95% +des pixels sont inférieurs à une saturation de 100, alors l'image est faiblement +saturée. Ce test ne s'applique sur les photographies, surtout pas aux cliparts. + + +Dominance de la teinte (image jaunie): + +On construit l'histogramme de la teinte (0 à 255). On localise le maximum de +l'histogramme. Si + de 95% des pixels ont une distance < 20 du maximum, alors +l'image est considérée comme Noir & Blanc et on peut donner sa teinte dominante. +De plus il faut qu'au moins 50% des pixels soient faiblement saturés. + +T = -1 Achromatisme + 0 <= T < 14 Rouge + 14 <= T < 29 Orange + 29 <= T < 45 Jaune + 45 <= T < 113 Vert +113 <= T < 149 Cyan +149 <= T < 205 Bleu +205 <= T < 235 Violet +235 <= T < 242 Rose, Magenta +242 <= T < 255 Rouge + + + 0 <= V < 82 Noir + 82 <= V < 179 Gris +179 <= V < 255 Blanc + + +Pour un pixel (S, Val) +si |184 - S| + |65 - Val| < |255 - S| + |125 - Val| alors marron sinon orange. + +Et encore +si la teinte est jaune et Val < 80 alors vert sinon jaune. + + + +* Reconnaissance Interieur versus Exterieur +------------------------------------------- + +Utilisation des descripteurs LEP et RGB-64. Expérience avec un kpp ~ 80%. Puis +expérimentation avec un SVM ~ 90% de réussite. Finalement, inclusion dans le SVM +de LEP, RGB-64, TSVal-125, projection, Bic, Gabor. + + + + +* Localisation des visages +-------------------------- + +Une semaine d'apprentissage, 5 secondes pour leur localisation. Je ne suis pas +sûr que cette méthode soit pertinente pour notre contexte applicatif. + + + +* Autre classification +---------------------- + +Utilisation de SVM et de tous les descripteurs possibles comme pour Interieur +versus Exterieur. diff --git a/milena/sandbox/green/doc/annotating/testMillet2008 b/milena/sandbox/green/doc/annotating/testMillet2008 new file mode 100644 index 0000000..a5cf22d --- /dev/null +++ b/milena/sandbox/green/doc/annotating/testMillet2008 @@ -0,0 +1,69 @@ +Dans le cadre de nos recherches, nous testons le classifieur de +Millet2008 pour la classification des images en clipart ou en +photographies. Deux tests sont proposés, le premier est basé sur le +nombre de couleurs de l'image après un seuillage de l'histogramme de +façon à éliminer les couleurs de faible contribution; le second test +consiste à extraire le pic de l'histogramme et à mesurer une +"variance" normalisée autour de ce pic. Le premier test part du +principe que les photographies possèdent de très nombreuses couleurs, +tandis que les cliparts n'en ont que quelques unes. Le test n'est pas +toujours vérifié. Le second test s'intéresse à la nature de +l'histogramme. L'idée étant de montrer qu'un histogramme continu, donc +avec une "variance" élevé autour du pic principal est plutôt +représentatif des phtotographies, alors qu'une "variance" faible tient +d'avantage du clipart (peu de couleurs, couleurs isolées). Selon +l'auteur, ce second test donne de très bon résultats. Il peut être +affiné en divisant l'image en 16 sous parties et en analysant chacune +des imagettes avec la technique décrite ci-dessus. Dans ce cas, la +"variance" de l'image est le max des "variances" des imagettes. Les +repères suivnt sont donnés par l'auteur, "variance" < 5 pour les +clipart et "variance" ~ 40 pour les photographies (seuil fixé à 15). + + +Test A (Nombre de couleurs dans l'histogramme): +----------------------------------------------- + + +Test B ("Variance" autour du pic principal): +-------------------------------------------- + +bill: Les images de factures contiennent un ensemble d'informations +groupés sous forme de tableau. Il peut y avoir plusieurs tableaux, +visibles ou non. Pour la pupart des histogrammes observés, +l'information en niveau de gris montre un grand pic blanc sans +voisinage ou avec un voisinage de taille insignifiante. Toutes les +factures devraient être classées comme des cliparts sauf exception. + +deux images sortent du lot: +- bill17.ppm => 12.7828 +- bill23.ppm => 17.2565 + +bill17 contient des dégradés qui viennent épaissir le pic blanc, du +coup le voisinage autour du pic devient plus important. + +bill23 contient un logo et une image de fond en transparence sur le +tableau. Par ailleurs, certains textes sont sur un fond +composite. Tous ces éléments viennent épaissir le pic blanc. + +Résultat : 29 images / 30 passent le test + + +photo: Les images de l'AFP ont la particularité d'être cadré serré +pour faire ressortir un élément clé de la scène photographiée. On +s'attend, d'après l'auteur à obtenir une "variance" proche de 40 (seuil ~ 15). + +5 vrai positifs: +- photo01 ==> 42.9224 +- photo10 ==> 48.0298 +- photo25 ==> 33.6833 +- photo27 ==> 42.9025 +- photo28 ==> 43.5689 + +des scores faibles: +- + + + + +Test C ("Variance" sur les 16 imagettes): +----------------------------------------- \ No newline at end of file -- 1.5.6.5
participants (1)
-
green