IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement d'images Discussion :

Classification de terrain


Sujet :

Traitement d'images

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 24
    Points
    24
    Par défaut Classification de terrain
    Bonjour,

    Je travaille en se moment sur la classification de terrain. Une camera est montee sur une voiture et prends des photos du terrain qu'elle traverse.

    Le but serait de pouvoir classifier ces terrains. Exemple : Herbe, bitume, gravier...

    J'ai lu pas mal de paper, je croule un peu sous les differentes methodes, je ne sais pas vers laquelle je devrais me diriger.

    Je voulais au debut utiliser simplement les couleurs, le probleme est que cette technique n'est pas assez robuste a cause des ombres, eclairages etc.

    Donc je vois differentes methodes :
    - Filtre de Gabor
    - En utilisant les infos teintes / Saturation
    - Ondelettes
    ...

    En gros mon algorithme serait :
    Input Image => Transformation/filtrage => Classement a l'aide de SVM (Support Vector Machine)

    Donc voila si vous avez quelques idees sur quelle methode serait la plus adaptee... Cela m'aiderais sans doute a avancer...

    Merci
    Jonathan

    PS : desole pour les accentes

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    bonjour,

    ça ne nous dit pas quelles caractéristiques tu souhaites utiliser au final
    Il est effectivement plus souhaitable d'utiliser les proportions d'arbres, d'herbes, etc que les couleurs elles-mêmes.
    Mais pour cela il faut au préalable détecter ces différents éléments. Comment comptes tu faire ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    La camera est dirigee vers le sol. Donc mon image d'entree est soit de l'herbe, soit du sable, gravier, route etc.

    J'aimerais ne pas utiliser les couleurs, donc j'ai cree un filtre de gabor pour mettre en avant la texture de l'image.

    La je rencontre les problemes suivants:
    - Difficultes a defenir les parametres d'entres de Gabor (frequence, angles...)
    - Difficulte pour le traitement post gabor (local energy estimation). La plus part des papers utilisent une fonction non lineaire, le plus souvent une fonction carre. Puis un filtre passe bas gaussien. Moi ca ne me donne pas de tres bon resultats ;-(
    - Enfin je me demande comment je vais classer ca a l'aide de mon SVM car l'image output est en noir et blanc. Donc je sais pas quelle feature utilisee pour mon svm.

    Voila en gros :-/

    Si vous pouvez m'aider sur certains points ou donner votre avis... :-)

    Merci
    Jonathan

  4. #4
    Membre éclairé
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Points : 654
    Points
    654
    Par défaut
    tu filmes que le sol ?

    dans ce cas, tu peux soit filmer du goudron, soit de l'herbe, en gros. peut-être, je n'en suis pas sur, peux-tu essayer avec les contours plutôt que les textures ? je m'explique.

    en résumé (mais vraiment résumé :p) : passage noir/blanc, ouverture/fermeture + petit flou (on enlève les détails), détection des contours (voir méthodes disponibles) OU création d'objets connexes (ce serait des tâches noir).

    selon les caractéristiques moyennes des contours (longueur, épaisseur etc...) OU le nombre et la surface moyenne des tâches, tu peux, à mon avis, déterminer si c'est du goudron (sol assez lisse avec de petites aspérités) ou si c'est de l'herbe (formes plus allongés, plus grosses que des aspérités).

    enfin, perso, je serais allé dans cette direction. après, il est sûrement possible (et même je pense interessant et plus fiable) de coupler les textures, les formes et les couleurs ?
    "Computers are like Old Testament gods ; Lots of rules and no mercy"
    [ Les ordinateurs sont comme les dieux de l’Ancien testament ; Beaucoup de règles et aucune pitié. ] Joseph Campbell

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Citation Envoyé par Kichott Voir le message
    La camera est dirigee vers le sol. Donc mon image d'entree est soit de l'herbe, soit du sable, gravier, route etc.

    J'aimerais ne pas utiliser les couleurs, donc j'ai cree un filtre de gabor pour mettre en avant la texture de l'image.

    La je rencontre les problemes suivants:
    - Difficultes a defenir les parametres d'entres de Gabor (frequence, angles...)
    - Difficulte pour le traitement post gabor (local energy estimation). La plus part des papers utilisent une fonction non lineaire, le plus souvent une fonction carre. Puis un filtre passe bas gaussien. Moi ca ne me donne pas de tres bon resultats ;-(
    Là c'est purement du traitement d'image pour le moment, donc je déplace dans le forum adapté.
    Pour ce qui est du filtre de Gabor, je pense que PseudoCode répondra à tes questions lorsqu'il aura vu la discussion.

    Est ce que tu as essayé simplement un filtre de Kuwahara sur tes images. Avec un peu de chance, il te permettra de séparer les différentes parties de l'image.
    Mais si tu filmes du goudron, on peut l'isoler assez facilement. Il restera ensuite à différencier l'herbe et le gravier. Mais tout ceci ne nécessite pas forcément de passer par un filtre de Gabor.

    Je n'ai pas l'habitude du filtre de Gabor, donc je ne sais pas quelles sont les caractéristiques que tu obtiens en sortie
    Pour information, ne te focalise pas sur les SVM pour le moment, il est souvent mieux de commencer par des méthodes plus simples.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Là c'est purement du traitement d'image pour le moment, donc je déplace dans le forum adapté.
    Pour ce qui est du filtre de Gabor, je pense que PseudoCode répondra à tes questions lorsqu'il aura vu la discussion.
    Ah ? Je suis nommé responsable filtre de Gabor ?

    Bon sérieusement, les filtres de Gabor ne sont pas ce qui se fait de mieux pour faire de la classification. Pour de l'identification d'accord (genre iris de l'oeil) mais je les trouve sont trop "sensibles" pour de la classification.

    Je te conseille les indémodables coefficients d'Haralick qui malgré leur grand age restent de très bonnes caractéristiques. Leur problème étant (comme pour Gabor) qu'il faut choisir les échelles et les orientations. Généralement avec 3 échelles et 4 orientations on a des résultats pas trop mauvais.

    Sinon, je te conseille également la décomposition en ondelette (ou mieux multi-ondelette) en prenant comme caractéristiques la moyenne+variance de chaque bloc. C'est moins précis que Haralick mais c'est rapide a calculer. Ensuite il est toujours possible d'extraire d'autres caractéristiques des blocs(histogrammes, ou meme... coefficients d'Haralick )

    Pour information, ne te focalise pas sur les SVM pour le moment, il est souvent mieux de commencer par des méthodes plus simples.
    Tout a fait. Un classifieur "knn" ou "fisher" est déjà un bon début.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Merci pour cette reponse.

    Citation Envoyé par pseudocode Voir le message
    Je te conseille les indémodables coefficients d'Haralick qui malgré leur grand age restent de très bonnes caractéristiques. Leur problème étant (comme pour Gabor) qu'il faut choisir les échelles et les orientations. Généralement avec 3 échelles et 4 orientations on a des résultats pas trop mauvais.

    Sinon, je te conseille également la décomposition en ondelette (ou mieux multi-ondelette) en prenant comme caractéristiques la moyenne+variance de chaque bloc. C'est moins précis que Haralick mais c'est rapide a calculer.
    Je vais regarder la decomposition en ondelette (le filtre de Gabor ce n'est pas de la decomposition en ondelette?) ainsi que les coefficients d'Haralick...

    Ensuite il est toujours possible d'extraire d'autres caractéristiques des blocs(histogrammes, ou meme... coefficients d'Haralick )
    Quel type d'histogrammes ?
    Histogramme de la teinte et de la saturation ?

    Tout a fait. Un classifieur "knn" ou "fisher" est déjà un bon début>
    En fait j'utilise deja SVM pour un autre probleme donc cela ne sera pas trop un probleme. Tant qu'a faire j'aimerais bien utiliser le meme "classifieur"

    Re-Bonjour a tous,

    Bon j'ai etudie les coefficients de Haralick voila les differents coefficients que je vais calculer et entrer dans mon svm:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    % Autocorrelation: [2] (out.autoc)
    % Contrast: matlab/[1,2] (out.contr)
    % Correlation: matlab (out.corrm)
    % Correlation: [1,2] (out.corrp)
    % Cluster Prominence: [2] (out.cprom)
    % Cluster Shade: [2] (out.cshad)
    % Dissimilarity: [2] (out.dissi)
    % Energy: matlab / [1,2] (out.energ)
    % Entropy: [2] (out.entro)
    % Homogeneity: matlab (out.homom)
    % Homogeneity: [2] (out.homop)
    % Maximum probability: [2] (out.maxpr)
    % Sum of sqaures: Variance [1] (out.sosvh)
    % Sum average [1] (out.savgh)
    % Sum variance [1] (out.svarh)
    % Sum entropy [1] (out.senth)
    % Difference variance [1] (out.dvarh)
    % Difference entropy [1] (out.denth)
    % Information measure of correlation1 [1] (out.inf1h)
    % Informaiton measure of correlation2 [1] (out.inf2h)
    % Inverse difference (INV) is homom [3] (out.homom)
    % Inverse difference normalized (INN) [3] (out.indnc)
    % Inverse difference moment normalized [3](out.idmnc)
    Est-ce qu'il vous semblerait interessant de rajouter des parametres/histogrammes non base sur la matrice co-occurence ?

    Afin de prendre les couleurs en compte realise l'histogramme de H et V et l'intregrer aussi pour la classification qu'est ce que vous en pensez ?

    Leur problème étant (comme pour Gabor) qu'il faut choisir les échelles et les orientations. Généralement avec 3 échelles et 4 orientations on a des résultats pas trop mauvais.
    Je ne suis pas sur de moi mais en ce qui concerne l'echelle et l'orientation cela se fait au niveau de la co-occurence Matrice c'est bien cela ?
    Donc il faudrait faire la co-occurence matrice dans differentes directions et differentes echelles. Mais apres comment fusionner les resultats?

    Merci pour votre aide

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Kichott Voir le message
    Est-ce qu'il vous semblerait interessant de rajouter des parametres/histogrammes non base sur la matrice co-occurence ?
    Je te conseille soit d'ajouter "moyenne" et "variance", soit de normaliser tes valeurs suivant ces 2 indicateurs avant de calculer la matrice (suivant que tu veuilles ou non être invariant au changement d'éclairage).

    Afin de prendre les couleurs en compte realise l'histogramme de H et V et l'intregrer aussi pour la classification qu'est ce que vous en pensez ?
    Oui, c'est une bonne idée : par exemple calculer l'histogramme HSV 256-bin (c'est à dire en réduisant l'espace des couleurs a 16H*4S*4V). Regarde du coté des descripteurs MPEG-7 qui expliquent comment faire.

    Je ne suis pas sur de moi mais en ce qui concerne l'echelle et l'orientation cela se fait au niveau de la co-occurence Matrice c'est bien cela ?
    Oui. Pour calculer la matrice de co-occurence on regarde les 2 valeurs des pixels P1(x,y) et P2(x+a,y+b) pour tout x,y dans l'image.

    L'échelle et l'orientation sont donc définis par les 2 constantes "a" et "b". Pour avoir des variables plus habituelles, on peut poser : a = r.cos(theta) et b = r.sin(theta)

    Donc il faudrait faire la co-occurence matrice dans differentes directions et differentes echelles. Mais apres comment fusionner les resultats?
    Ah. Grande question non encore résolue.

    Personnellement, je prends la moyenne des coefficients de Haralick qui utilisent la même échelle. Cela m'assure une certaine invariance aux rotations. J'ai donc un vecteur de coefficients pour chaque échelle.

    Généralement je fais aussi une réduction de dimension sur les vecteurs en ne gardant que les coefficients significatifs (ceux qui ont une forte variance). Mais dans ton cas, les SVM s'en occuperont.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    j'aurai une petite suggestion si tu laisses tomber le filtre de Gabor : Les Run Length Matrix (GLRLM).
    Dans ton cas, je pense qu'elles seront plus efficaces que Haralick sur les matrices de cooccurrences. Pourquoi :
    - Les herbes auront une notion de direction dans la texture, ce qui est un des éléments caractérisés par les GLRLM.
    - Les graviers vont se caractériser par une texture plus ou moins fine (resp. grossière), donc là aussi elles conviennent très bien car tu n'auras que des segments courts.
    J'ai fait quelques tests sur des bases de données de textures (Brodatz et Ponce's group) et les GLRLM obtiennent des résultats bien meilleurs.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  10. #10
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    j'aurai une petite suggestion si tu laisses tomber le filtre de Gabor : Les Run Length Matrix (GLRLM).
    Dans ton cas, je pense qu'elles seront plus efficaces que Haralick sur les matrices de cooccurrences.
    Ah, oui : exact. J'avais pas vu les textures qu'il voulait classifier.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Merci pour vos réponses

    Citation Envoyé par pseudocode Voir le message
    Je te conseille soit d'ajouter "moyenne" et "variance", soit de normaliser tes valeurs suivant ces 2 indicateurs avant de calculer la matrice (suivant que tu veuilles ou non être invariant au changement d'éclairage).
    Oui je veux etre invariant au changement d'éclairage
    Donc si je souhaite être invariant je fais la moyenne des valeurs des niveaux de gris. Puis je normalise par rapport à cette valeur s'est bien cela ?

    Oui, c'est une bonne idée : par exemple calculer l'histogramme HSV 256-bin (c'est à dire en réduisant l'espace des couleurs a 16H*4S*4V). Regarde du coté des descripteurs MPEG-7 qui expliquent comment faire.
    Je vais regarder ça!

    Oui. Pour calculer la matrice de co-occurence on regarde les 2 valeurs des pixels P1(x,y) et P2(x+a,y+b) pour tout x,y dans l'image.

    L'échelle et l'orientation sont donc définis par les 2 constantes "a" et "b". Pour avoir des variables plus habituelles, on peut poser : a = r.cos(theta) et b = r.sin(theta)
    Ok donc je pensais faire différentes orientations suivant 0, 45, 90, 135, 180, 225, 270, 315.
    Après niveau taille r=1,2,3,4 cela suffit ?

    Personnellement, je prends la moyenne des coefficients de Haralick qui utilisent la même échelle. Cela m'assure une certaine invariance aux rotations. J'ai donc un vecteur de coefficients pour chaque échelle.
    Ok je vais sans doute faire la même chose alors. Mais comment faites vous pour ensuite choisir la meilleur échelle ?

    j'aurai une petite suggestion si tu laisses tomber le filtre de Gabor : Les Run Length Matrix (GLRLM).
    Ok je vais jeter un oeil à ça!
    Est-ce qu'il vous parraitrait intéressant d'utiliser Les Coefficients de Haralick et GLRM pour rentrer dans mon SVM ?

  12. #12
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Kichott Voir le message
    Oui je veux etre invariant au changement d'éclairage
    Donc si je souhaite être invariant je fais la moyenne des valeurs des niveaux de gris. Puis je normalise par rapport à cette valeur s'est bien cela ?
    Perso, je fais comme cela:

    En entrée:
    Nombre de pixel = N
    Valeur d'intensité du pixel "i" = V[i]

    Je calcule:
    Somme S = Somme{V[i]}
    SommeCarrée S2 = Somme{V[i]^2}
    Moyenne M = S / N
    Variance V = S2/N - M^2

    En sortie:
    VNormalisée[i] = (V[i]-M)/Racine(V)

    Pour récupérer des valeurs entre 0 et 255, je fais ensuite

    VCorrigée[i] = 128 + VNormalisée[i]*128

    que je convertis en entier, et limite entre 0 et 255.

    Ok donc je pensais faire différentes orientations suivant 0, 45, 90, 135, 180, 225, 270, 315.
    Après niveau taille r=1,2,3,4 cela suffit ?
    C'est trop car la relation de proximité entre les pixels est symétrique : si P1 est à coté de P2 (selon l'orientation theta), alors P2 est a coté de P1 (selon l'orientation theta+180°). Donc tu peux te limiter a des orientations entre 0 et 180°

    Ok je vais sans doute faire la même chose alors. Mais comment faites vous pour ensuite choisir la meilleur échelle ?
    Heu... je ne choisis pas. J'ai plusieurs vecteurs de coefficients (a différentes échelles) associés à mes échantillons. Ensuite l'algo de classification cherchera la meilleur correspondance entre tous ces vecteurs.

    L'algo peut très bien trouver que la meilleur correspondance est entre le vecteur "échelle 1" de l'image et le vecteur "échelle 4" de la base de référence. Ca veut juste dire que l'image est dézoomée 4 fois par rapport a ma base de référence.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  13. #13
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Merci encore pour cette reponse.

    En ce qui concerne l'algo Gray Level Run Length Matrix je n'ai pas trouve pour l'instant de bon documents theorique dessus.
    En attendant j'ai trouve le code implemente en matlab.

    J'ai les stats suivantes en output:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    - Short Run Emphasis
    - Long Run Emphasis
    - Gray-Level Nonuniformity
    - Run Length Nonuniformity
    - Run Percentage
    - Low Gray-Level Run Emphasis
    - High Gray-Level Run Emphasis
    - Short Run Low Gray-Level Emphasis
    - Short Run High Gray-Level Emphasis
    - Long Run Low Gray-Level Emphasis 
    - Long Run High Gray-Level Emphasis
    Donc je pensais utiliser comme entree pour mon SVM:
    - Les coefficients de Haralick
    - Les stats GLRM (cite au dessus)
    - Histogramme HSV 256-bin (faut juste que je vois comment on fait)

    Est-ce que cela vous semble bien ?

  14. #14
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Kichott Voir le message
    Donc je pensais utiliser comme entree pour mon SVM:
    - Les coefficients de Haralick
    - Les stats GLRM (cite au dessus)
    - Histogramme HSV 256-bin (faut juste que je vois comment on fait)

    Est-ce que cela vous semble bien ?
    Comme l'a dit ToTo13, si tu utilises la GLRLM tu ne devrais pas avoir besoin de Haralick.

    Pour l'histogramme HSV-256, tu convertis ta couleur (R,G,B) en (H,S,V) et tu fait une quantification de H sur 16 valeurs, S sur 4 valeurs et V sur 4 valeurs. La norme MPEG-7 préconise une quantification non-linéaire, mais une simple "règle de 3" devrait être suffisante.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  15. #15
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    si tu utilises la GLRLM tu ne devrais pas avoir besoin de Haralick.
    Ok Je me disais juste qu'avec plus d'infos dans mon SVM j'aurais de meilleurs résultats. Je vais tester les deux méthodes et voir laquelle fonctionne le mieux alors.

    Pour l'histogramme HSV-256, tu convertis ta couleur (R,G,B) en (H,S,V) et tu fait une quantification de H sur 16 valeurs, S sur 4 valeurs et V sur 4 valeurs. La norme MPEG-7 préconise une quantification non-linéaire, mais une simple "règle de 3" devrait être suffisante.
    J'ai trouvé peu d'infos sur les "MPEG-7 Color Descriptors". Plusieurs papers qui utilsent la norme mais peu d'explication théorique.

    En gros ce que j'ai compris:
    J'ai mes 3 matrices (H, S et V) codée entre 0 et 1
    Je convertis H sur 16 valeurs, S sur 4 et V sur 4 .
    Ensuite je calculte :
    H + V* 16 + S*64 (Ce qui me donne une valeur entre 0 et 255)
    Enfin je réalise l'histogramme

    Est-ce bien cela ?

    En sortie:
    VNormalisée[i] = (V[i]-M)/Racine(V)

    Pour récupérer des valeurs entre 0 et 255, je fais ensuite

    VCorrigée[i] = 128 + VNormalisée[i]*128

    que je convertis en entier, et limite entre 0 et 255.
    Qu'est ce que vous voulez dire par "Et limite entre 0 et 255"

    - Que pour toute valeur de V[i]<0 => V[i]=0 et V[i]>255 =>V[i]=255
    ou
    - min(V[i]) = 0 et max(V[i])= 255 et on recalcule toutes les valeurs

    si tu utilises la GLRLM tu ne devrais pas avoir besoin de Haralick
    Est-ce que pour GLRLM il y a le problème d'orientation et d'échelle ?
    D'ailleurs si quelqu'un a des références sur cet algorithme car j'ai pas trouvé grand chose :-/
    Je vais peut etre aller faire un tour du coté de la bibliothèque...


  16. #16
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Kichott Voir le message
    J'ai trouvé peu d'infos sur les "MPEG-7 Color Descriptors". Plusieurs papers qui utilsent la norme mais peu d'explication théorique.

    En gros ce que j'ai compris:
    J'ai mes 3 matrices (H, S et V) codée entre 0 et 1
    Je convertis H sur 16 valeurs, S sur 4 et V sur 4 .
    Ensuite je calculte :
    H + V* 16 + S*64 (Ce qui me donne une valeur entre 0 et 255)
    Enfin je réalise l'histogramme

    Est-ce bien cela ?
    Oui.

    Qu'est ce que vous voulez dire par "Et limite entre 0 et 255"

    - Que pour toute valeur de V[i]<0 => V[i]=0 et V[i]>255 =>V[i]=255
    ou
    - min(V[i]) = 0 et max(V[i])= 255 et on recalcule toutes les valeurs
    J'utilise la première méthode. Je ne suis pas bien sur que la deuxième te donne de l'invariance.

    Est-ce que pour GLRLM il y a le problème d'orientation et d'échelle ?
    D'ailleurs si quelqu'un a des références sur cet algorithme car j'ai pas trouvé grand chose :-/
    Orientation : oui.
    Echelle : surement. Faudrait demander a Toto13 comment on gère cela (lors du calcul de la matrice, ou en pré-filtrant l'image)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  17. #17
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    J'utilise la première méthode. Je ne suis pas bien sur que la deuxième te donne de l'invariance.
    J'ai réalisé la première méthode mais je perds pas mal d'infos... Beaucoup de pixels sont égaux à 0 ou 255. Ca fait plus une image en noir et blanc qu'en niveau de gris.

    Je pense pas mettre trompé à coder pourtant c'est bizarre :-/

    L'algo est juste? Je vais re-vérifier mon code demain.

    Orientation : oui.
    Echelle : surement. Faudrait demander a Toto13 comment on gère cela (lors du calcul de la matrice, ou en pré-filtrant l'image)
    Ok je vais essayer de voir si je peux trouver plus d'infos la dessus

  18. #18
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Kichott Voir le message
    J'ai réalisé la première méthode mais je perds pas mal d'infos... Beaucoup de pixels sont égaux à 0 ou 255. Ca fait plus une image en noir et blanc qu'en niveau de gris.

    Je pense pas mettre trompé à coder pourtant c'est bizarre :-/

    L'algo est juste? Je vais re-vérifier mon code demain.
    Tu peux normaliser plus fortement :

    VNormalisée[i] = (V[i]-M)/(K*Racine(V))

    avec K=2 ou 3
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  19. #19
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Merci pour tout

  20. #20
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Re-Bonjour,

    En fait j'ai encore une question.

    En pre-traitement pour etre invariant a la lumiere je realise la normalisation de l'image en niveau de gris ensuite j'exécute Haralick et GLRLM.

    Est-ce qu'il serait interessant de faire un pre-traitement similaire sur l'image RGB ou HSV pour ensuite realiser l'histogramme 256-BIN ?
    Je réalise le même traitement sur H, S et V séparément ?

    Merci Encore

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Deplacement + destruction de terrain en 2D
    Par osmose22 dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/01/2005, 15h00
  2. [opengl] [newbie] terrain
    Par grand's dans le forum OpenGL
    Réponses: 11
    Dernier message: 24/12/2004, 21h01
  3. Lissage terrain fractale
    Par nicolas66 dans le forum OpenGL
    Réponses: 3
    Dernier message: 20/12/2004, 19h50
  4. [Java3D]Construction de terrain
    Par zoulou1212 dans le forum 3D
    Réponses: 6
    Dernier message: 17/09/2004, 11h06
  5. Gestion des collisions - terrains
    Par Dranor dans le forum DirectX
    Réponses: 1
    Dernier message: 26/06/2003, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo