RDV+DIAL chat illimit� dans ta r�g!
no save
Assistance
Achat
News

Forum | programmation
Programmer un réseau de neurones
franky*, le lun. 20 déc. 2004 à 18:51:37
Eh ben dis-donc !
T'as les moyens, si tu peux t'offrir un laser pour la coupe E=M6 ! ;-)
T'es dans quelle équipe ? Une école ?

En tous cas, t'embêtes pas, si tu décide d'utiliser un RN pour la reconnaissance, tu n'auras pas assez de puissance ou de temps (calcul !) pour utiliser un laser... Et inversement !

Mais l'idée du RN est très intéressante dans ce cas : l'apprentissage peut être aussi long que tu veux, mais une fois que ton réseau est entraîné, il est relativement rapide.

La première solution qui me vient en tête pour ton problème s'appelle la rétinotopie (toujours si tu veux chercher de la doc) : ça consiste en une carte de reconnaissance type Kohonen (j'explique après), mais l'entrée n'est pas la même pour tous les neurones -> c'est très utile si ta caméra te renvoie beaucoup de pixels, alors que tu veux gagner du temps en n'ayant que "peu" de neurones.
Une seule autre solution concurrente (pour moi ! Mais à vérifier...) : tu peux toujours utiliser une carte de Kohonen, mais avec un très gros prétraitement des données, bien bourrin pour gagner du temps de calcul ensuite.
A la réflexion, c'est même la 2ème solution la meilleure (ne serait-ce que parce que tu n'auras pas le temps d'étudier la première...)
Donc demande-toi ce qui différencie (à tes yeux, mais de manière facilement implémentable !) une quille de tout ce que voit le robot sinon, et traite chaque image de manière à laisser apparaitre cette différence.

Le but est de passer d'une image de (au pif) 300*300 pixels de ta caméra à une image 8*8 par exemple, sans perte d'information capitale (déjà, c'est pas gagné !)

Ensuite, Kohonen :
Commence par rechercher tout ce que tu peux sur "les cartes auto-organisatrices", parce que le cours serait un peu long ici ! Si tu as encore des questions après, je pourrai t'aider.
Ce qu'il faut savoir en gros : le principe de kohonen est une façon d'organiser une carte de neurones (plane dans ton cas) de manière à ce que chacun s'active plus que les autres lorsqu'une certaine configuration se présente, et surtout que 2 neurones proches sur la carte aient des configurations d'activation privilégiées (prototypes) proches !
Mais ce n'est qu'un principe, et il ne faut surtout pas tenter de le programmer tel quel ! En fait, il existe des algorithmes très simples qui simulent cette organisation, et c'est ça qui nous intéresse.

L'énorme intérêt pour toi de cette méthode, c'est qu'elle est "auto-organisatrice", c'est-à-dire qu'elle ne correspond pas à un apprentissage supervisé. Donc tu n'auras pas besoin de développer tout un jeu d'entraînement, mais seulement de présenter au réseau des données (pré-traitées comme expliqué avant), et de le laisser s'organiser.

Ce que tu vas obtenir, c'est une carte de neurones (Ex. 8*8 comme avant, peut-être plus), dans laquelle chaque neurone correspondra à une position de la quille (n'oublies pas de présenter des exemples où il n'y a pas de quille !). Comme tu n'auras pas supervisé l'apprentissage, tu auras toutes les chances que ce soit un réseau "à droite" (selon ton implémentation) qui s'active lorsque la quille est à gauche de l'image, mais quitte à tourner l'image dans tous les sens, les neurones s'activeront exactement suivant la position de la quille sur l'image !

D'où une petite réflexion : si les quilles sont au niveau du sol et que ta caméra ne monte pas ni ne descend, tu n'as pas besoin de créer une carte en 2 dimension, mais seulement 1 ! Et au lieu d'avoir 64 neurones, tu pourras te contenter d'en prendre 8, ou plutôt une quinzaine pour avoir un minimum de précision (sans oublier le cas absence de quille !!!).

Une fois que tu sais quel neurone s'active dans quel cas, ça devient très simple de diriger ton robot.

Par contre, 2 problèmes pour cette méthode :
Elle permet d'obtenir la direction d'une quille mais pas ses coordonnées ! Plutôt que de compliquer l'algo, on peut imaginer que tu places la caméra très haut et "regardant vers le bas" (ou l'inverse !), et on se retrouve avec le pb de la carte en 2 dimensions (par exemple si ton prétraitement fait ressortir la base des quilles, le réseau pourra "replacer" cette base dans l'image).
Pb 2 : si toute une équipe compte sur toi pour faire une méthode de reconnaissance correcte, en temps limité, c'est très chaud, alors fait en sorte qu'une autre méthode de secours soit développée en parallèle.

Je te laisse encore me tenir au courant,

A+

Eléctions : Bush filled his SOUl with HOpe
Précédenttotolito
déc. 04
totolito
déc. 04
Suivant
REPONSES
Obeet
oct. 04
franky*
déc. 04
tafiscobar
déc. 04
xavier
déc. 04
franky*
déc. 04
Totolito
déc. 04
franky*
déc. 04
totolito
déc. 04
franky*
déc. 04
totolito
déc. 04
Version Web
Réalisé par RedShift
no save