J'ai été envoyé ici à partir de cette question dans stackoverflow , veuillez m'excuser si la question vient trop spécifique et ce n'est pas dans les manières ici :)
La tâche consiste à trouver un verre contenant un liquide spécifique. Permettez-moi de vous montrer les images, puis de décrire ce que j'essaie de réaliser et comment j'essayais de le faire jusqu'à présent dans la description ci-dessous les images.
Les images : (il semble que j'ai besoin d'au moins 10 points de réputation pour publier des images et des liens, donc les liens devront faire :( sinon vous pouvez regarder la question de débordement de pile)
Une description détaillée : J'essayais d'implémenter un algorithme qui détecterait un verre d'une forme spécifique en opencv (le verre peut être transformé par un angle / distance de prise de vue différent). Il y aura également d'autres verres d'autres formes. Le verre que je recherche sera également rempli d'un liquide coloré qui le distinguera des verres contenant d'autres couleurs.
Jusqu'à présent, j'ai essayé d'utiliser l'extracteur de fonctionnalités SIFT pour essayer de trouver certaines fonctionnalités dans la vitre, puis les faire correspondre avec d'autres photos avec la vitre.
Cette approche ne fonctionnait que dans des conditions très spécifiques où j'aurais du verre dans une position très spécifique et le fond serait similaire aux images d'apprentissage. Le problème est également que le verre est un objet 3D et je ne sais pas comment en extraire des caractéristiques (peut-être plusieurs photos sous différents angles liés en quelque sorte?).
Maintenant, je ne sais pas quelle autre approche puis-je utiliser. J'ai trouvé quelques indices à ce sujet (ici /programming/10168686/algorithm-improvement-for-coca-cola-can-shape-recognition#answer-10219338 ) mais les liens semblent rompus.
Un autre problème serait de détecter différents "niveaux de vide" dans un tel verre, mais je n'ai même pas pu trouver le verre lui-même correctement.
Quelles seraient vos recommandations sur l'approche dans cette tâche? Serait-il préférable d'utiliser une manière différente de trouver la fonction d'objet 3D locale? Ou serait-il préférable d'utiliser une autre approche tout à fait? J'ai entendu parler d'algorithmes "apprenant" l'objet à partir d'un ensemble de plusieurs photos mais je n'ai jamais vu cela en pratique.
Tout conseil serait vraiment apprécié
la source
Réponses:
Le document référencé dans votre lien semble être celui-ci.
Le tableau 1 (inclus ci-dessous) présente un intérêt particulier. Les taux de précision ne sont pas excellents, bien qu'ils soient meilleurs que d'autres approches.
la source
Peut-être que ce document peut vous aider: http://ai.stanford.edu/~ang/papers/iros09-ScalableLearningObjectDetectionGPU.pdf
Bien qu'ils utilisent le système stéréo actif en plus des images 2D afin d'acquérir des images en profondeur, il est intéressant de voir comment ils utilisent les fonctionnalités basées sur les patchs, construisant un dictionnaire de l'objet avec de nombreux petits fragments, puis formant un classificateur. Vous pouvez peut-être ajouter ces fonctionnalités pour améliorer votre taux de détection.
la source
Il y a eu beaucoup de travail à ce sujet en ce qui concerne les logiciels de reconnaissance faciale. Par exemple, si vous remarquez sur Facebook lors du balisage des photos, l'emplacement des visages est encadré et vous est suggéré.
J'ai vu beaucoup de littérature sur la reconnaissance faciale dans les images utilisant des réseaux de neurones et une recherche rapide sur Google va sans aucun doute révéler une grande quantité d'informations sur le sujet. Ces réseaux prennent les pixels de l'image en entrée. Dans votre cas, la façon dont l'opacité change / la lumière se reflète sur la vitre peut être une bonne identification des caractéristiques que le réseau apprendra.
Un problème peut être le nombre de photos que vous devez utiliser comme données de formation et le prétraitement de celles-ci (c'est-à-dire l'identification des visages vous-même). S'il est impossible de le faire pour suffisamment d'images pour former suffisamment votre réseau, vous devrez rechercher des raccourcis dans la phase d'apprentissage. Ce document est pertinent pour ce que vous voulez faire: http://www.ll.mit.edu/publications/journal/pdf/vol04_no2/4.2.5.neuralnetwork.pdf
Heureusement, c'est un domaine très actif et une grande partie du code nécessaire à ce type de problème est facilement accessible en ligne.
Une fois que vous êtes en mesure d'identifier les verres sur les images, vous pouvez effectuer une analyse plus approfondie à partir de là.
la source