12
votes

Où commencer la reconnaissance manuscrite à l'aide du réseau de neurones?

J'essaie d'en savoir plus sur les réseaux de neurones pendant un moment et je peux comprendre des tutoriels de base en ligne. Maintenant, je souhaite développer une reconnaissance manuscrite en ligne à l'aide du réseau de neurones. Donc, je n'ai aucune idée où commencer? Et j'ai besoin d'une très bonne instruction. Enfin, je suis programmeur Java.

Que suggérez-vous que je fais?


0 commentaires

11 Réponses :


3
votes

Regardez une partie du projet flottant autour du net:


0 commentaires

15
votes

Démarrer simple avec reconnaissance de caractères sur le base de données UNIPEN .

Vous devrez extraire des caractéristiques pertinentes des données de trajectoire brutes afin de former ce que l'on appelle communément un "vecteur de fonctionnalité". Par exemple, vous pouvez rééchantillonner les données à l'aide d'un schéma d'interpolation pour vous retrouver avec n tuples, chaque tuple contenant des informations telles que:

  • Position
  • Orientation
  • vélocité
  • accélération
  • courbure
  • etc

    Une fois que vous avez un vecteur de fonctionnalité de taille fixe, vous l'utilisez comme entrée sur votre réseau neuronal. Essayez les réseaux MLP pour un début.

    Vous devrez expérimenter afin de décider des fonctionnalités les mieux.

    Si vous devez commencer à obtenir des fonctionnalités d'extraction des données d'encre, consultez Toolkit LIPI de HP (Note que leurs reconnaissants n'utilisent pas de réseaux de neurones toutefois).

    Vous pouvez également consulter ce 15 étapes pour mettre en œuvre un didacticiel de réseau de neurones .


1 commentaires

Je suis désolé je ne peux pas dire grand chose à dire: / à cause d'une NDA



0
votes

réseau neuronal [si je ne me trompe pas] fonctionnerait sur l'interprétation des modèles, Vous fournissez des entrées à votre programme et le programme recherche de ce modèle dans un ensemble de stockage stocké. Les motifs et basés sur la correspondance fournissent une possible match.

Dans votre cas, les dimensions des motifs pourraient être des données telles que la vitesse + la direction. ou seulement direction, etc

J'ai fait une petite simulation d'un bot neural qui discute sur mon site de la même manière.

Plus le programme "apprend", plus il fournit des réponses précises.


0 commentaires

11
votes

Introduction aux réseaux de neurones pour Java est un bon livre d'introduction et comprend un exemple de reconnaissance de l'écriture manuscrite.

 text alt


1 commentaires

L'exemple utilise des réseaux Kohonen et offre une mauvaise précision cependant






2
votes

Gardez à l'esprit que si votre objectif est de reconnaître que ces personnages, votre performance restera et tombera en fonction de la qualité et de la sélection des fonctionnalités d'entrée . .

Il est absolument essentiel de choisir les fonctions appropriées et de préproduction (c'est-à-dire que vous débarrasser des fonctionnalités de bruit, des données étrangères, des fonctions en double ou fortement corrélées) autant que vous pouvez . D'après mon expérience, vous obtiendrez de nombreuses performances de la mise en œuvre la plus ennuyeuse et la plus plaine du voisin avec de bonnes fonctionnalités que d'un algorithme de pointe avec des fonctionnalités moins bien sélectionnées.

Pour vous, cela signifie retarder la lecture la littérature nette neurale pour l'instant (enlevez simplement une implémentation de la boîte à étagère en noir) et de lire sur quel type de traitement de l'image, etc. Processus réels . Si vos données peuvent inclure des informations de pression et de vitesse, tout le mieux. Quelque chose comme une chaleur LDA peut être illustratif pour voir initialement quelles caractéristiques importantes et qui ne le font pas.

Pour la classification de base, il existe des tonnes d'algorithmes décents. La plupart travaillent juste bien et travailleront très bien pour vous. La partie difficile ne consiste pas à choisir ni à modifier l'algorithme, il est en évitant le scénario des ordures à ordures.


0 commentaires

0
votes

Si vous recherchez des concepts, je suggère Brainnet,

Réseaux neuronaux - Partie I: Un système de reconnaissance d'écriture manuscrite simple dans .NET

http://amazedsaint.blogspot.com /2008/01/nural-networks-par-i-simple.html

Brainnet vous aidera à

  • Obtenez une compréhension équitable concernant les neurones et les réseaux de neurones
  • gagne un bon concept concernant les systèmes intelligents
  • Apprenez à jouer avec cette bibliothèque de réseau de neurones pour l'utiliser dans votre projets.
  • Comprenez comment développer des programmes de réseau neuronal cool

0 commentaires

0
votes

Je vous suggère de commencer à partir de la reconnaissance des chiffres manuscrits pour les raisons suivantes:

  • La tâche est bien définie
  • Il y a une très bonne base de données de chiffres manuscrits mentionnés ci-dessus ( mnist )
  • Il y a beaucoup d'algorithmes implémentés testés sur ce problème
  • L'une des approches les plus performantes de ce problème est des réseaux de neurones convolutionnels qui ont même été utilisés dans des applications commerciales. Il y a peu d'implémentations disponibles, y compris C ++, Cuda, Matlab, Python. Malheureusement, je ne connais aucune implémentation de Java.

0 commentaires