Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RÉSEAU DE NEURONES ARTIFICIELS POUR LA RECONNAISSANCE DE CERCLES , RECTANGLES ET TRIANGLES


Information sur la source

Catégorie :Divers Classé sous : reconnaissance, formes, dessinées, apprentissage, neurones Niveau : Expert Date de création : 10/02/2008 Date de mise à jour : 14/02/2008 18:36:07 Vu / téléchargé: 7 950 / 802

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Ben tout est dans le titre : c'est un réseau de neurones artificiels de type MLP ( perceptron multi-couches ) qui permet ici de reconnaitre des formes dessinées par l'utilisateur à l'écran ( pour le moment 3 types : cercles , rectangles/carrés , et triangles ), mais qui peut être utilisé pour des lettres, chiffres...

Ce réseau n'est pas parfait à 100%, il fait des petites erreurs de temps en temps, mais c'est du au fait que je n'ai pas encore eu le temps de lui donner une base de donnée plus grande ( 256 modèles ici ) ni de le laisser apprendre plus longtemps ( mais ça vous pouvez le faire , ça fait partie des fonctionnalités du programme d'ailleurs ).

Le code n'est peut-être pas très optimisé, donc si vous avez des remarques là-dessus elles sont bienvenues...
 

Source

  • contient l'executable à renommer en .exe à la place de .ex_
contient l'executable à renommer en .exe à la place de .ex_

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

13 février 2008 17:51:18 :
Améliorations et corrections du code ( notamment remplacement de la fonction Plot par Line ce qui est beaucoup mieux au niveau graphique... )
14 février 2008 18:36:07 :
correction de la fonction de chargement des modèles pour l'apprentissage.

Commentaires et avis

signaler à un administrateur
Commentaire de marsipulami le 11/02/2008 18:42:09

Bonjour et merci
J'ai un petit problème, je n'arrive pas a dessiner avec la souris
merci pour la réponse

signaler à un administrateur
Commentaire de Renfield le 13/02/2008 11:35:07 administrateur CS

superbe idée que de dessiner en noir sur du bleu foncé (chez moi)
en effet, vu que tu utilises une couleur de fond, on ne voit pas forcement grand chose, au final

ces divisions sont des abérations :
X / 15, Y / 15

passes avec un 16/9 tu verra le résultat (Screen.TwipsPerPixelX et son ami Y sont là pour ca...)


Ajoutes 'Option Explicit' en haut de tes modules
Forces le dans les options 'Declaration de variables obligatoire'
évitera certains oublis

pour le dessin, utilises Line plutot que PSet :

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbLeftButton Then
        Picture1.CurrentX = X
        Picture1.CurrentY = Y
    End If
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbLeftButton Then
        Picture1.Line -(X, Y), RGB(0, 0, 0)
        addpointtoelement X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY ' Ajoute un point à la sous-matrice correspondante
    End If
End Sub

signaler à un administrateur
Commentaire de Pingujedi01 le 13/02/2008 17:43:10

oui en effet j'avais voulu changer la couleur de fond en blanc mais je ne m'en suis rendu compte qu'après avoir posté la source.
Pour la fonction line je ne l'avais jamais remarqué jusqu'à présent mais tu as raison : elle est beaucoup plus pratique que plot...

Ensuite pour ce qui est du 16/9 je n'y avait pas du tout pensé en fait !

Bref merci pour ces remarques ( c'est en faisant des erreurs qu'on apprend après tout ! ) , je vais actualiser ma source corrigée.

-> Marsupilami : ton problème vient du dessin lui-même où du fait qu'il ne lance pas la phase de test quand tu appuies sur le bouton correspondant ? Parce que j'ai remarqué que les décimales étant des virgules dans le fichier POIDS.CFG et CFG.txt ( vu que sur mon ordi, les décimales sont représentées par des virgules ), ça engendre un problème de lecture si elles sont représentées par des points sur ton ordi, et qu'il faut ainsi changer les virgules en points.

signaler à un administrateur
Commentaire de Renfield le 13/02/2008 22:31:20 administrateur CS

mes remarques sont là pour te faire avancer, je cherche pas a "casser" quiconque
ravi de voir que ca a fonctionné

signaler à un administrateur
Commentaire de marsipulami le 14/02/2008 09:07:13 8/10

Le problème du au fond bleu, je ne voyais pas le dessin.
Par contre sur ta nouvelle version, l'apprentissage ne fonctionne plus
il indique impossible de charger les modèles fin .....
Programme très intéressant

signaler à un administrateur
Commentaire de Pingujedi01 le 14/02/2008 18:36:55

oui j'ai et trouvé pourquoi, c'est à cause du "j" : en fait j étant déjà utilisé pour compter le nombre de neurones de sortie par la fonction set_prototype , il ne peut pas être utilisé en parallèle pour indiquer le numéro du modèle... je viens de réparer ça.

signaler à un administrateur
Commentaire de PWM63 le 18/02/2008 14:25:39

Source intéressante.
Reste plus qu'à mettre la reconnaissance des caractères :)

signaler à un administrateur
Commentaire de eedy31 le 16/04/2008 00:33:04

Bonjour Pingujedi01,
J'arrive, après lecture du livre de Claud Touzet que tu nous conseilles en commentaire de source, à comprendre comment l'ensemble fonctionne mais je ne comprend pas quels sont les critères qui t'ont ammené à fixer un seuil d'activation (THRESHOLD) de 0.5 et pas une autre valeur.
Aussi, qu'est ce qui t'as ammené à choisir un reseau neuronal où la couche d'entrée est connectée à la 2ème mais aussi à la couche de sortie...aurais-tu pu choisir un reseau MLP du type 1ère couche->2ème couche->3ème couche mais sans la connection 1->3, avec les mêmes resultats?

Merci d'avoir partagé ta source qui m'a permis de voir concrêtement une application aux réseaux de neurones :D.

eedy.

signaler à un administrateur
Commentaire de Pingujedi01 le 21/04/2008 18:46:44

Pour être franc j'ai choisi ce type de réseau simplement parce que c'est le seul type que l'on a pu voir en cours... Pour le 0.5, il s'agit d'une valeur empirique fixée entre 0 et 1, et il se trouve que 0.5 donnait les meilleures performances au réseau... mais il faut le déterminer "expérimentalement"...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Reconnaissance de formes [ par cedricbi ] Par exemple j'ai une image (où on a déjà extrait les contours), sur cette image il y a une balle (transformé en qq de resemblant a un cercle) et il y comment faire des boutons de commande de diffénretes formes sous vb6? [ par lordskyser1 ] bonjour,je débute en vb et je voudrais savoir comment faire des boutons de commandes de formes variées, j'en ai marre des vieux boutons carrés!connais combobox list() pb de reconnaissance [ par bergamotte ] Bonjour,En fait, j'ai un petit programme ou j'utilise une combobox et la fonction list().Lorsque je le lance avec le formulaire il me met en surbrilla Reconnaissance vocale [ par Alexandre Gauthier ] Salut!J'aimerais programmé sous Vb un programme de protection pour mon portatif... Saisie d'un mot de passe puis reconnaissance vocale. Je recherche u création de formes géometriques avec draw.. [ par niala007 ] lorsque j'utilise drawrectangle par exemple dans un picture box si une autre fenetre apparait devant le picturebox le rectangle que j'avais dessiné s' help, apprentissage VB avec outlook [ par balawoo ] Bonjour les Gurus,Je cherche à transmettre de facon automatique tous les messages recus d'une personne en particulier avec un compte particulier.Merci VB.NET Dessin de formes dans une Form... [ par Tungsten ] Salut,Je cherche qq qui pourrait m'indiquer ou se trouve le control dans la boite à outils dans VB.NET 2002 permettant de dessiner des lignes, carrés, Reconnaissance vocale?!? [ par TaZ83 ] Salut,j'aurais voulu savoir si il était possible de faire en vb6 un programme qui lorsque ont dit par exemple; "internet" il lance internet explorer?? Cryptographie [ par blackspine ] Bonjour!J' apprends la programmation en autodidacte depuis un an et demi. J' ai débuté l' apprentissage grâce à une petite merveille: "La programmatio Reconnaissance vocale ( DTW ) [ par sydesys ] Bonjour,Je suis à la recherche d'un algo sur la DTW (Dynamic Time Wrappin) Si l'un de vous à des infos sur le sujet se serait sympat de me les faires


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.