2010-06-22 1 views
0

L'appareil photo est à environ 5 pieds du sujet et lorsque je capture un cadre, je dois être en mesure de dire si le cadre a un humain dedans ou non.Comment identifier les modèles de type humain dans un flux webcam?

J'ai des plans compliqués pour l'implémenter, je me demande simplement si vous connaissez une solution existante que je peux utiliser.

+2

C'est une très grosse question. –

+1

http://www.face-rec.org/algorithms/ –

+0

En raison de la faible résolution et du manque d'algorithmes de reconnaissance de formes de travail, je dis que ce n'est pas possible. sauf si vous pouvez vivre avec la reconnaissance de changement de seuil d'une image à l'autre (l'être humain ne pourrait pas être distingué des autres objets). –

Répondre

3

Le problème que vous avez rencontré est en fait assez compliqué, et il a son propre domaine dédié: Vision par ordinateur.

Ceci est une chose assez courante que vous pourriez faire, et comme vous l'avez suggéré, vous ne devriez pas réinventer la roue. Je ne suis pas sûr s'il y a des algorithmes ou des projets open source qui circulent.

Je pense que votre meilleur pari est de commencer à chercher des articles académiques et des notes de cours en informatique.

Voici un papier: A Line-Scan Algorithm for Identifying the Human Body

1

OpenCV est un ensemble d'outils matures à utiliser pour commencer à travailler avec la vision par ordinateur. Notez, cependant, que c'est un problème très difficile, et les outils sont par conséquent difficiles à comprendre et à utiliser.

Si vous n'utilisez pas C++, OpenCV a peut-être été encapsulé pour que vous puissiez y accéder avec votre langue préférée. J'utilise Emgu CV avec C#: http://www.emgu.com/wiki/index.php/Main_Page.

+0

Je connais quelqu'un qui travaille avec OpenCV et tout ce que cette personne a dit depuis ses débuts, ce sont des obscénités dans différents tons. J'ai entendu que les klaxons OpenCV et VS s'affrontaient avec des erreurs frustrantes et obscures. Et que OpenCV lui-même a un code horrible et horrible. –

+0

@ rlb.usa - c'est peut-être vrai, mais je n'ai eu aucun problème avec ça. Bien sûr, je viens de le compiler et de l'utiliser comme une bibliothèque ... – codekaizen

+0

@ rlb.usa ce n'est définitivement pas vrai. OpenCV a un code hautement optimisé, et si vous n'avez aucune idée de pourquoi/comment le code est optimisé, vous pourriez avoir des problèmes à le comprendre. Néanmoins, la lecture des documents devrait suffire de toute façon. OpenCV fonctionne très bien avec VS et ne m'a jamais donné des "erreurs obscures" et je l'ai beaucoup utilisé – zerm

1

L'histogramme des gradients orientés est une technique utilisée pour détecter les humains: Wikipedia HoG

Autrement dit, l'algorithme reconnaît l'homme par la répartition des directions de gradient dans l'image: un cercle aurait une distribution de direction de gradient uniforme, parce que toutes les directions sont également fréquentes le long de la frontière. Un carré a une distribution avec quatre pics à 0 °, 90 °, 180 ° et 270 °, parce que c'est la seule direction de sa limite. Un humain a aussi un histogramme de direction distincte, et cet histogramme peut être reconnu par des algorithmes classiques d'apprentissage automatique comme une machine à vecteurs de support ou un réseau de neurones artificiels. Je pense que OpenCV contient une implémentation de l'algorithme HoG.

Questions connexes