2017-02-21 1 views
1

Je suis novice dans TensorFlow. En fait, je teste des exemples de classification "Convolutional Neural Network" sur le site Web TensorFlow et explique comment CLASSIFIER les images d'entrée dans des classes prédéfinies, mais le problème est le suivant: je n'arrive pas à comprendre comment DÉTECTEZ plusieurs objets dans la même image. Par exemple j'ai eu une image d'entrée avec chat et chien et je veux que mon graphique affiche dans la sortie qu'ils sont tous les deux "un chat et un chien" dans l'image.Comment reconnaître plusieurs objets dans la même image

Répondre

5

Bonne question. Détecter plusieurs objets dans la même image est essentiellement un "problème de segmentation". Deux algorithmes sympas et populaires sont YOLO (Vous ne regardez qu'une seule fois) et SSD (Détecteur Multibox à un seul tir). J'ai inclus des liens vers eux en bas.

Je regarderais quelques vidéos sur le fonctionnement de YOLO, et je verrais si vous compreniez l'idée. Ensuite, lisez le document sur SSD, et voyez si vous comprenez pourquoi cet algorithme est encore plus rapide et plus précis.

Les deux algorithmes sont à un seul passage: ils regardent seulement l'image "une fois" et prédisent des cadres de délimitation pour les catégories qu'ils repèrent. Il y a des algorithmes plus précis, mais ils sont plus lents (ils choisissent d'abord beaucoup de points qu'ils veulent regarder, puis ils exécutent un classificateur uniquement sur ce point, ce qui fait qu'ils utilisent ce classeur plusieurs fois par image, ce qui est lent).

Comme vous l'avez dit vous êtes un débutant à Tensorflow, vous pouvez essayer ce code d'autres personnes faites: https://github.com/thtrieu/darkflow. Le readme très complet vous montre comment démarrer votre propre jeu de données. Bonne chance, et faites-nous savoir si vous avez d'autres questions, ou si ces algorithmes ne correspondent pas à votre cas d'utilisation.

+0

Excellente réponse et les liens que vous avez fournis étaient sur place! Je vous ai attribué la prime. Merci beaucoup de partager votre expertiese sur ce sujet! – JohnV

1

Une approche naïve pour ce que vous essayez de faire serait de classer les parties de l'image indépendamment.

Mais il existe de meilleures techniques pour la détection d'objets. En fait, il y a le TensorFlow Object Detection API, qui vous donne accès aux méthodes de détection d'objets les plus courantes, comme Faster R-CNN ou SSD.