Reconnaissance de la valeur faciale des dés
Je suis en train de construire une application simple qui permettra de reconnaître les valeurs de deux dés à 6 faces. Je suis à la recherche de quelques indicateurs généraux, ou peut-être même un projet open source.
Les deux dés sera en noir et blanc, blanc et noir pips respectivement. Leur distance à la caméra sera toujours la même, mais leur position et de l'orientation sur la surface de jeu sera aléatoire.
Dés http://www.freeimagehosting.net/uploads/9160bdd073.jpg
(pas le meilleur exemple, la surface sera plus distincte de la couleur et les ombres auront disparu)
Je n'ai pas d'expérience préalable avec le développement de ce type de logiciel de reconnaissance, mais je suppose que le truc est d'abord d'isoler les visages en recherchant le profil carré avec un dominant blanc ou de couleur noire (le reste de l'image, c'est à dire la table/surface de jeu, sera nettement différentes couleurs), puis isoler les pips pour le comte. Les ombres seront éliminés par le haut vers le bas d'éclairage.
Je suis en espérant que le scénario décrit est si simple (lire: commune), il peut même être utilisé comme une “introduction” l'exercice pour les développeurs travaillant sur le ROC technologies ou similaires de la vision par ordinateur défis.
Mise à jour:
J'ai fait quelques recherches sur google et suis tombé sur cette vidéo qui, curieusement, est exactement ce que je cherche. Il semble également que c'est la OpenCV projet est mon meilleur résultat jusqu'à présent, je vais essayer de l'utiliser avec ce autre projet, OpenCVDotNet ou Emgu CV.
Mise à jour:
Toujours en difficulté, ne peut pas obtenir Emgu CV pour travailler.
Des idées, des pointeurs, des pensées, etc, sont toujours les bienvenues!
source d'informationauteur Jakob Gade
Vous devez vous connecter pour publier un commentaire.
Alors que l'image de la formation est "non trivial" @Brian a dit, qui seront effectivement un joli programme facile à écrire. Ce que vous devez faire est de développer haar classificateurs pour le dé. Vous aurez besoin de 6 classificateurs total. Les classificateurs sont la clé d'une bonne image recongnition, et de haar les classificateurs sont les meilleurs actuellement. Ils prennent beaucoup de temps à faire. Voici quelques liens pour vous familiariser avec haar cascades:
http://www.computer-vision-software.com/blog/2009/11/faq-opencv-haartraining/
http://www.cognotics.com/opencv/docs/1.0/haartraining.htm
http://note.sonots.com/SciSoftware/haartraining.html
Découvrez ce gars de la vidéo de youtube et ensuite télécharger sa source dans le lien qu'il donne dans la vidéo pour voir comment il a appliqué la cascade de fichiers dans EmguCV. Il aura quelque chose pour vous de construire.
http://www.youtube.com/watch?v=07QAhRJmcKQ
Ce site affiche le lien vers la source pour le joli petit outil qui ajoute un peu d'automatisation pour le recadrage des images et de la création de l'index des fichiers nécessaires à la création de l'haar cascades. J'ai utilisé il y a quelques mois, et je ne pouvais pas le faire fonctionner à droite, mais je l'ai modifié et il a travaillé beaucoup pour haar (pas HMM). Si vous voulez la version que j'ai modifié le post de retour et je vais l'obtenir pour vous.
http://sandarenu.blogspot.com/2009/03/opencv-haar-training-resources.html
Alors que j'ai peu d'assistance technique pour vous offrir, le créateur de la Dé-O-Matic mark II peut être en mesure de vous aider.
Bien,
Algorithmes pour la réalisation de la reconnaissance d'image avec un haut niveau d'abstraction (comme le type d'abstraction nécessaire pour produire des résultats fiables logiciels de reconnaissance d'écriture ou de logiciels de reconnaissance faciale) demeure l'un des problèmes les plus difficiles dans l'informatique d'aujourd'hui. Cependant, la reconnaissance des formes pour bien contrainte d'applications, comme l'application que vous avez décrit, est un jeu d'enfant et très amusant algorithmique problème.
Je dirais deux stratégies possibles pour la réalisation de votre tâche:
La première stratégie consiste à utiliser certains logiciels tiers qui peuvent prétraitement de votre image et de données de retour sur les images de bas niveau des composants. J'ai une certaine expérience à l'aide d'un logiciel appelé pixcavatorqui a un SDK ici. Pixavator sera le mien par le biais de votre image et de l'étude de l'écart entre les valeurs de couleur de chacun des pixels de revenir aux frontières de différents composants de l'image. Un logiciel comme pixcavator devrait être en mesure de facilement définir les limites de l'comopents dans votre image et, surtout, chacun des pips. Votre travail sera alors de la mine à travers les données que le logiciel tiers revient à vous et regarder pour les composants qui correspondent à la description de la petite circulaire partitions qui sont soit blanc ou noir. Vous serez en mesure de compter combien de ces composants de l'image cloisonnées et qui permet de retourner la quantité de pips en votre image.
Si vous êtes assez ambitieux pour travailler sur ce problème, sans l'utilisation de logiciels tiers, le problème est toujours résoluble. Essentiellement, vous aurez envie de définir une circulaire scanner qui est un ensemble de pixels en formation circulaire qui va parcourir votre image de tests à la recherche pour un pip (comme un œil peut analyser sur une image pour trouver quelque chose de caché dans l'image). Comme votre algorithmique “l'œil” est la numérisation sur l'image, il va prendre des ensembles de pixels de l'image (que l'on appellera des jeux de test) et en comparant avec un ensemble prédéfini de pixels (ce que nous allons appeler votre formation) et de la vérification pour voir si le jeu de test correspond à l'un des kits de formation au sein d'un prédéfini tolérance à l'erreur. Le moyen le plus facile pour exécuter un test comme ce serait tout simplement de comparer les données de couleur pour chaque pixel dans le jeu de test de chacun des pixels de l'ensemble de la formation pour en produire un troisième ensemble de pixels appelé votre divergence ensemble. Si les valeurs de votre divergence ensemble sont suffisamment petites (qui signifie que le test est suffisamment similaire à l'ensemble de la formation) vous pouvez définir la zone sur votre image pip et de passer à l'analyse d'autres parties de votre image.
Il prend un peu de deviner et vérifier pour trouver la bonne tolérance de l'erreur de sorte que vous attrapez chaque pip et vous n'avez pas le test est positif pour des choses qui ne sont pas pips.
Reconnaissance d'Image est non-trivial. Vous allez avoir à contraindre les données d'entrée, d'une certaine façon, et il semble que vous avez donné à cette réflexion.
Votre question m'a rappelé une blog de l'auteur de SudokuGrabqui est une application iPhone qui permet de prendre des photos d'un puzzle de Sudoku dans un journal, et de résoudre le casse-tête pour vous. Dans le post, il parle de plusieurs des questions que vous devrez faire face à la résolution de votre problème, et comment il a surmonté.
C'est une question similaire à La Reconnaissance de l'objet à partir de Modèles à qui j'ai fourni une réponse qui, je crois, pourrait être utile.
Bien que différents types de classificateurs sera probablement bien, je serais probablement essayer la méthode que j'ai décrite en premier. Les classificateurs sont souvent difficiles à mettre en œuvre et surtout à former correctement.
Aussi, quand les choses ne fonctionnent pas, il est très difficile de savoir d'où le problème est: est-il de la mise en œuvre du classificateur, avez-vous choisi la mauvaise méthode, sont les paramètres de mal, n'avez-vous pas former correctement, ou était-ce juste malchanceux?
Non, rester à l'écart de classificateurs, modèle d'appariement et de réseaux de neurones si le problème peut (facilement) être résolu à l'aide de simlpe méthodes de traitement d'images et de maths.
Une autre possibilité est d'abord à l'aide d'un plus générique de manipulation de l'image/algorithme de reconnaissance à cerner les dés positions, puis de faire pivoter et de redimensionner l'image à une certaine forme de standard (tels que, 512x512 pixels en niveaux de gris des images de dés qui ont été tourné à droite). Puis de tenter de former des 6 réseaux de neurones à reconnaître les différents numéros de dés sur l'écran. AForge.Net est un bon et solide de l'intelligence artificielle (y compris les réseaux de neurones) de la bibliothèque, et devrait vous obtenir un peu juste de la façon dont il.
Dans cette vidéo vous pouvez le voir assez bien le comportement que vous voulez, je pense. L'auteur est à l'aide de plusieurs dés blancs, mais il est de fournir le code (python/opencv) et peut-être vous pouvez construire votre projet.