Rechercher : dans
Par :

[java] classifieur Kppv et weka

Dernière réponse le 9 jun 2009 à 22:39:36 detta, le 22 mar 2009 à 18:25:38 
 Signaler ce message aux modérateurs

Bonjour,
je sis en train de dévélopper une application permettant la reconnaissance des formes en java.j'utilise le classifieur Kppv, après le traitement des image je dois faire apprendre mon classifieur pour qu'il puisse les reconnaitre.pour cette raison ils m'ont dit que je dois utiliser le weka.
j'ai cherché sur internet sur la façon avec laquelle je peux l'exploiter dans mon application mais je n'ai arrivé à les comprendre à 100%.
si quelqu'un a utilisé le weka ou sait comment il peut etre utiliser ou a des documents utiles me répond.
merci d'avance pour votre aide.

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « [java] classifieur Kppv et weka » dans :
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
[Logiciel libre] Installation firefox 2.0+java+flash VoirInstallation firefox 2.0+java+flash en ligne de commande A. INTRODUCTION B. INSTALLATION FIREFOX 1. Création d'environnement 2. Téléchargement et vérification de la signature 3. Installation de Firefox 4. Démarrage de l'application C....
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...

1

buddha, le 7 avr 2009 à 11:34:03
  • +1

Je connais un peu weka et surtout je sais comment l'intégrer dans une application java. Si tu as toujours besoin d'aide fais moi signe.
Buddha

Répondre à buddha

2

detta, le 7 avr 2009 à 19:10:29

Slt,
merci bien, j'ai encore besoin d'aide Svp, éssayez de me repondre le plus proche possible.j'attends votre reponse et merci une autre fois.

Répondre à detta

3

Buddha, le 7 avr 2009 à 22:35:49

Ok, comme je t'ai dit je peux t'aider, donc envoie moi soit ton adresse mail, soit les questions et docs que tu as.
Buddha

Répondre à Buddha

4

detta, le 7 avr 2009 à 23:00:53

Ok merci mais je crois que c'est déconseillé de citer des informations personnelles telle que e-mail.alors j'esserai de vous expliquer ce que je veux exectement et si vous n'arriverez pas à me comprendre là je te donnerais mon e-mail.
je suis en train de realiser une tache permettant la reconnaissance des chiffres dans une image par le classicateur KPPV.
j'ai fait le traitement d'image et a partir d'une image binaire j'ai obtenu une matrice des 0 et 1 (les 1 forment les chiffres dans la matrice) j'ai parcouru cette matrice horizontalement et verticalement afin de calculer le nombre des 1 dans chaque colonne (projection verticale) et dans chaque ligne(projection verticale) et j'ai obtenu 2tableaux. Ces derniers sont l'entrée de mon systeme.
je veux maintenant savoir comment integré cette entrée dans mon classificateur sachant qu'il a besoin d'une base d'apprentissage pour la prendre comme référence pour reconnaitre les chiffres. ils m'ont dit qu'en utilisant le weka et en l'important je peux faire entrer les 2tablaux de projection.
mon probleme alors c'est comment faire apprendre le classificateur en utilisant le weka.
j'espere que vous avez bien cerné ce que je veux et que je peux trouver une solution chez vous.
merci d'avance

Répondre à detta

5

Buddha, le 8 avr 2009 à 15:58:21

Bonjour,
alors pour pouvoir utiliser des données afin de construire un classifieur il te faut déjà plusieurs exemples de chiffres. Il te faudra donc les matrices des 10 chiffres qui existent (0 1 2 3 4 5 6 7 8 9), pour pouvoir les entrer dans Weka. Mais il te faudra aussi des exemples de matrices qui ne représentent pas des chiffres.

Voilà comment je le ferais (mais ce n'est que mon point de vue et peut-être que d'autres avec plus de connaissances auront une meilleure technique):

-Je fabriquerais les matrices des 10 chiffres avec des variantes, puis une 20aines de matrices qui ne représentent pas des chiffres.

-Je ferais donc une instance pour chaque pixel de ton image avec comme valeurs possibles 0 ou 1, puis une instance résultat avec comme valeur vrai ou faux (pour dire que c'est bien une image ou non).

-Je fabriquerais donc mes exemples par rapport à ça (chacune des matrices seront transformées en instances).

-Je réunirais tous mes exemples dans une classe "instances" puis je fabriquerais mon classifieur par rapport à "instances".

-Puis pour me servir de cet arbre, je prendrais une image dont je veux tester si elle représente un chiffre ou non, je la soumettrai à l'arbre qui devra deviner si oui ou non c'est bien un chiffre.

Voilà ma méthode, mais je suis sûr qu'un réseau de neurones ferait 100 fois mieux le travail mais je suis encore en train d'apprendre son fonctionnement.

Pour la partie technique (code java) je peux très bien t'aider car je vois exactement comment je coderais ça, il faudrait juste que tu trouves les matrices représentants des chiffres et autres.

Dis moi si tu veux en savoir + et surtout si tu comprends mon raisonnement.

Buddha

Répondre à Buddha

6

Buddha, le 8 avr 2009 à 16:04:43

Une variante possible serait effectivement de prendre non pas pixel par pixel mais colonne par colonne et de soumettre le nombre de pixel rempli dans chaque colonne (ce que tu proposais).
Buddha

Répondre à Buddha

7

detta, le 9 avr 2009 à 00:44:13

Salut,
merci bien pour votre aide, j'ai vraiment trop besoin de cette explication.j'ai compris ce que vous avez ecrit sauf que je veux savoir a quoi sert les matrices des images qui ne sont pas des chiffres.
en plus apres la construction des instances, svp,pouvez-vous m'expliquer ce que je dois ferai.
pour le code je vous donner un exemple sur comment je fais les instances disez moi si c'est juste donc je continue sinon envoyez moi le code que vous parait le meilleur pour resoudre mon probleme :
avant tout je fais une classe par exemple je l'appelle "instances", puis je declare les attributs, qui sont en fait les nombres des 1 pour chaque colonne pour la projection horizontale et pour chaque ligne pour la projection verticale, via l'instruction :
public class instances{
public instances() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}

String result;
public instances(float[]car) {
Attribute Attribute1 = new Attribute("projection horizontale 0");
Attribute Attribute2 = new Attribute("projection horizontale 1");
......//jusqu'à la fin des attributs de la projection horizontale.
Attribute Attribute31 = new Attribute("projection verticale 0");
Attribute Attribute32 = new Attribute("projection verticale 1");
......//jusqu'à la fin des attributs de la projection verticale.
puis je declare une autre classe ou je mettrai les 10classes que j'ai(pour chaque chiffre je fais une classe par exemple classe 1 pour les 1, classe 2 pour le 2.....):
FastVector fvClassVal = new FastVector(10);
fvClassVal.addElement("classe1");
fvClassVal.addElement("classe2");
fvClassVal.addElement("classe3");
..................
Attribute ClassAttribute = new Attribute("theClass", fvClassVal);
par la suite j'ajouterai les attributs a la classe adéquate :
par exemple la classe des 1 contient 10 formes differents :
FastVector fvWekaAttributes = new FastVector(60);//car on 3Oattributs pour l'Horizontale et 3O pour verticale
fvWekaAttributes.addElement(Attribute1);
fvWekaAttributes.addElement(Attribute2);
.............
fvWekaAttributes.addElement(Attribute31);
fvWekaAttributes.addElement(Attribute32);
.............

fvWekaAttributes.addElement(ClassAttribute);

// Create an empty training set
Instances isTrainingSet = new Instances("Rel", fvWekaAttributes, 10);

// Set class index
isTrainingSet.setClassIndex(60);
// Create the first instance
Instance iExample = new Instance(61);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(0),0);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(1),0);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(2),0);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(3),0);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(4),0);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(5),3);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(6),10);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(7),12);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(8),7);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(9),5);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(10),5);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(11),6);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(12),4);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(13),5);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(14),5);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(15),4);
iExample.setValue((Attribute)fvWekaAttributes.elementAt(29),0);//fin attributs horizontale
iExample.setValue((Attribute)fvWekaAttributes.elementAt(30),0);//debut attribut verticale
iExample.setValue((Attribute)fvWekaAttributes.elementAt(31),0);
............
iExample.setValue((Attribute)fvWekaAttributes.elementAt(59),0);

iExample.setValue((Attribute)fvWekaAttributes.elementAt(60), "classe1");
ainsi de suite pour les autres classes.
// add the instance
isTrainingSet.add(iExample);//pour la classe 1.
....
si ce code vous parait bien fait disez moi comment je le continuerai et comment je fabriquerai mon classifier par rapport "instances".
SVP, meme ce code cava pouvez vous m'envoyer votre code pour plus d'information peut etre il me parait le plus adéquat pour mon application.
merci d'avance.

Répondre à detta

8

Buddha, le 11 avr 2009 à 14:30:24

Bonjour,
je cherche le code et je t'envoie mes résultats je pense fin de semaine prochaine, car je suis pas mal occupé avant.
Buddha

Répondre à Buddha

9

toumi23, le 2 jun 2009 à 12:58:27

Bonjour
j'ai besoin d'aide pour fair un rapport sur le fonctionnement des clasifieurs weka si tu peux m'aider je sera reconaissante.
merci

Répondre à toumi23

10

detta, le 9 jun 2009 à 19:59:23

Salut,
j'ai utilisé le weka et mon travail a été limité au classifieur KPPV j'ai une idée sur son fonctionnement mais les autres classifieurs non. si tu veux encore mon aide répondez moi et je vous donnerez tous ce que je connais sur ce classifieur.Merci

Répondre à detta

11

toumi23, le 9 jun 2009 à 20:07:10

Oui bien sur j'ai besoin de ton aide

Répondre à toumi23

12

 toumi23, le 9 jun 2009 à 22:39:36
  • +1

Oui bien sur que j'ai besoin de ta reponse

Répondre à toumi23
Collection CommentÇaMarche.net