Détection d'un objet en verre rempli


10

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)

entrez la description de l'image ici

entrez la description de l'image ici

entrez la description de l'image ici

entrez la description de l'image ici

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é


une solution finale avec un exemple complet de code source en C #?
Kiquenet

wow c'est une demande assez spécifique. le problème n'a pas encore de solution et je n'investirai pas plus de temps pour le résoudre. Je crois, à en juger par l'article mentionné ici, que les fondements scientifiques n'auront pas de solution très bientôt non plus, car l'algorithme suggéré avait des taux de précision très médiocres. de toute façon, puisque ce projet était pour mon travail, j'ai fini par discuter d'un compromis avec un client, car la tâche est irréelle à accomplir de nos jours. utilisé des détecteurs de fonction de type haar réguliers pour «tout ce qui ressemble à une tasse», puis sélectionné des teintes jaunes pour détecter la bière. pas la tâche d'origine
user1916182

Réponses:



0

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.


je ne pense pas que ce travail puisse être très bien utilisé dans la pratique sauvage. le robot décrit dans l'article nécessite un capteur de profondeur pour détecter les informations de profondeur ... pas très pratique pour transporter un kinect lors de la prise de photos aléatoires sur un téléphone portable ou quelque chose ... mais oui, les fonctionnalités basées sur les patchs sont une approche très intéressante!
user1916182

-1

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à.


cela est complètement hors de propos
user1916182

Intéressant, vous devriez dire cela. Quoi qu'il en soit, voici un lien vers les algorithmes de détection utilisés par Facebook basés sur les réseaux de neurones. Bonne chance, github.com/facebookresearch/Detectron .
rwolst
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.