Question

Disons que j'ai un petit bitmap qui contient un seul chiffre (0..9) par écrit à la main.

Est-il possible de détecter le chiffre à l'aide d'un (deux couches) perceptron?

Y at-il d'autres possibilités de détecter un seul chiffre de bitmaps en plus d'utiliser des réseaux de neurones?

Était-ce utile?

La solution

Nourrir chaque pixel d'une image bitmap directement dans un réseau de neurones nécessite beaucoup de formation, et ne fonctionne pas bien pour la manipulation de mise à l'échelle ou la rotation de l'image.

Pour aider le réseau de neurones effectuer une bonne classification, vous devez effectuer quelques étapes de pré-traitement.

  • Normaliser l'image:
    • Régler le contraste et la luminosité de sorte que l'histogramme de l'image correspond à une image de référence.
    • Brouiller l'image, pour supprimer le bruit.
    • convertir en noir et blanc, en utilisant un certain seuil.
    • Trouver la zone de délimitation de la forme, l'échelle à une taille prédéfinie.
  • Calculer diverses caractéristiques de l'image qui peut être utilisé pour différencier un chiffre d'un autre:
    • nombre d'Euler de l'image - vous indique combien de « trous » il sont en forme (par exemple, deux trous pour le chiffre 8).
    • Le nombre de pixels blancs (la zone du chiffre)
    • composantes principales de l'ensemble des coordonnées des pixels blancs - vous indique comment « allongé "la forme est.
    • ... d'autres fonctionnalités que vous pouvez penser qui ont tendance à avoir des valeurs similaires pour les chiffres similaires.

Les principaux composants peuvent également être utilisés pour normaliser la rotation de la forme, de sorte que le plus grand axe est vertical.

Les caractéristiques sont ce que vous nourrissez dans le réseau de neurones pour la classification, pas les pixels.

Autres conseils

Voici un lien vers une base de données énorme de chiffres écrits à la main. La première page a également des données de performance relative pour de nombreuses méthodes différentes dont 2 couches réseaux de neurones. Cela devrait vous donner un bon départ: base de données MNIST chiffres et de la performance

Vous pouvez également consulter travail de Geoff Hinton restreint Boltzmann Machines qu'il dit assez bien exécute, et il y a une bonne conférence explicative sur son site (très regardable).

Voici une Matlab exemple programme qui utilise un réseau de neurones formés pour détecter un seul chiffre (taille de l'image fixe à 28 * 28).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top