IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement d'images Discussion :

compter le nombre de personnes présentes


Sujet :

Traitement d'images

  1. #41
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    merci, je vais essayer tout ca.

  2. #42
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Alors pour le seuillage dynamique :
    J'ai pensé à utiliser l'histogramme des images de différence.

    Voici 4 histogrammes des images de différence entre le fond et l'image courrante.
    Les valeurs de seuil optimal sont représentées par le petit triangle en bas (en dessous de ces valeurs je commence à avoir du bruit).
    De gauche a droite : aucune zone de bougée, puis une petite zone, puis une plus grande etc... Ce qui représente en fait un différent nombre de personnes dans le champ de la caméra.

    A premiere vue, trouver le bon seuil ne semble pas si évident car il faut se placer un peu avant la forte augmentation du nombre de pixels. Mais ni trop près ni trop loin. Et dans le dernier cas c'est encore plus dur.

    Si vous avez d'autres idées?
    Images attachées Images attachées  

  3. #43
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par pasdeface Voir le message
    Si vous avez d'autres idées?
    Utiliser constamment la valeur "30".

  4. #44
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    ouais
    Mais ca marchera bien avec cette caméra et dans la piece ou je fait des tests...
    Et comme ca doit marcher avec n'importe quelle caméra dans n'importe quel endroit pas sur que "30" soit toujours la bonne valeur.

  5. #45
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par pasdeface Voir le message
    ouais
    Mais ca marchera bien avec cette caméra et dans la piece ou je fait des tests...
    Et comme ca doit marcher avec n'importe quelle caméra dans n'importe quel endroit pas sur que "30" soit toujours la bonne valeur.
    Dans ce cas la, il faut faire un calibrage automatique. Il faut calculer la valeur de "seuil" optimale lorsqu'il n'y a aucun mouvement.

  6. #46
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Dans ce cas la, il faut faire un calibrage automatique. Il faut calculer la valeur de "seuil" optimale lorsqu'il n'y a aucun mouvement.
    Le problème, et on le voit un peu sur les histogrammes, c'est que sans mouvement la luminosité ne change pratiquement pas, alors que avec mouvement, ca peut faire changer la luminosité totale percue par le capteur caméra, donc il va légerement s'auto ajuster (plus il fait sombre plus il s'ouvre), et donc le seuil optimal ne sera pas le meme avec personne ou avec du mouvement.



    Finalement passer en espace HSV ne semble pas si bien que ca, pour deux raisons :
    1- La "complexité" de la conversion YUV -> HSL

    2- Si on regarde la représentation HSL :

    On voit que si la luminosité diminue (et la raison pour laquelle je choisi cet espace c'est d'etre insensible à ce changement), l'espace de représentation d'une couleur est plus petit.
    Donc entre deux luminosités différente, une même couleur n'aura pas forcément la même valeur en pratique, car la projection d'un couleur d'une luminosité à l'autre n'est pas bijective.
    Ca parait logique de toute facon, vu que plus il fait sombre moins les couleurs sont "visibles"... il peut pas y avoir de miracle

  7. #47
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonsoir,

    Citation Envoyé par pseudocode Voir le message
    Ah ok. Effectivement il faut 2 passes (= 4 balayages) pour que ça converge.
    Bienvenue dans le monde passionnant de l'étiquetage des composantes connexes !!
    Désolé, j'avais laché un peu cette discussion et je viens de voir ça en la regardant.

    Je suis un peu étonné (peut être n'ai je rien compris), mais j'utilise pour ma part deux algorithmes d'étiquetage des composantes connexes :
    - le premier récursif qui ne nécessite qu'un seul balayage.
    - le deuxième itératif qui nécessite deux balayages, mais qui a l'avantage de ne pas faire exploser la pile selon les cas.

  8. #48
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par pasdeface Voir le message
    Le problème, et on le voit un peu sur les histogrammes, c'est que sans mouvement la luminosité ne change pratiquement pas, alors que avec mouvement, ca peut faire changer la luminosité totale percue par le capteur caméra, donc il va légerement s'auto ajuster (plus il fait sombre plus il s'ouvre), et donc le seuil optimal ne sera pas le meme avec personne ou avec du mouvement.
    Dans ce cas, comme tu le présentais, il va falloir faire du seuillage dynamique. As tu deja essayé quelques methodes de seuillage ?

    La "complexité" de la conversion YUV -> HSL
    Si tes images sont deja en YUV, inutile de passer par HSL. Tu n'a qu'a forcer la composante Y à 0.5.

  9. #49
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Je suis un peu étonné (peut être n'ai je rien compris), mais j'utilise pour ma part deux algorithmes d'étiquetage des composantes connexes :
    - le premier récursif qui ne nécessite qu'un seul balayage.
    - le deuxième itératif qui nécessite également qu'un seul balayage.
    Generalement les algo une-passe ne sont pas beaucoup plus performant qu'un algo deux-passes. Je ne sais pas quel est ton algo une-passe mais generalement ca revient a faire du suivi de contour ce qui coute aussi cher qu'un union-find.

  10. #50
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Dans ce cas, comme tu le présentais, il va falloir faire du seuillage dynamique. As tu deja essayé quelques methodes de seuillage ?
    J'etais parti sur le seuillage par entropie mais ca ne s'applique pas vraiment à mon cas en fait, puis j'avais pensé à faire un seuillage sur l'histogramme c'est pourquoi j'avais posté des captures de différents histogramme mais ca ne semble pas la bonne solution. Je vais donc en chercher d'autres.

    Pour l'espace de couleur de travail je vais regarder ca.

    Merci

  11. #51
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Tu peux poster les images de differences completes (pas juste les histogrammes) pour qu'on puisse t'aider ?

  12. #52
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Tu peux poster les images de differences completes (pas juste les histogrammes) pour qu'on puisse t'aider ?
    Oui je pourrais lundi, mais la elles sont prises dans d'assez bonnes conditions et les améliorations que je veux apporter maintenant sont pour des cas plus difficiles.
    Je les postes avant mon seuillage je suppose?

  13. #53
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par pasdeface Voir le message
    Oui je pourrais lundi, mais la elles sont prises dans d'assez bonnes conditions et les améliorations que je veux apporter maintenant sont pour des cas plus difficiles.
    Je les postes avant mon seuillage je suppose?
    Oui, avant le seuillage ca serait bien.

  14. #54
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Bonsoir,
    Je suis un peu étonné (peut être n'ai je rien compris), mais j'utilise pour ma part deux algorithmes d'étiquetage des composantes connexes :
    - le premier récursif qui ne nécessite qu'un seul balayage.
    - le deuxième itératif qui nécessite deux balayages, mais qui a l'avantage de ne pas faire exploser la pile selon les cas.
    L'algorithme que j'utilise finalement nécessite un balayage pour une numérotation temporaire des composantes connexes et la construction de la table d'équivalence, puis un balayge pour faire la numérotation finale.

    Citation Envoyé par pseudocode
    Si tes images sont deja en YUV, inutile de passer par HSL. Tu n'a qu'a forcer la composante Y à 0.5.
    J'ai essayé de faire la différence sur u et v seulement (abs(u2-u1) + abs(v2-v1))/2 et ca marche très mal, une personne présente est presque fondue dans le bruit.

    Oui, avant le seuillage ca serait bien.
    http://cjoint.com/data/bCkObESV3j.htm
    Voila une image de différence, elles est intéressente car le vetement de mes épaules a un peu la meme teinte que le sol et il est difficile de le faire ressortir.

  15. #55
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par pasdeface Voir le message
    Voila une image de différence, elles est intéressente car le vetement de mes épaules a un peu la meme teinte que le sol et il est difficile de le faire ressortir.
    Et le seuillage entropique ca ne suffit pas ?

    Nom : entropythreshold.png
Affichages : 338
Taille : 2,9 Ko

  16. #56
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Et le seuillage entropique ca ne suffit pas ?
    J'ai peut etre mal compris le seuillage par entropie alors. D'après ce que j'ai lu (Notamment sur ce post) Cela consiste à maximiser le nombre de pixels noirs et le nombre de pixels blanc, en faisant une recherche sur tous les seuils possibles.
    Donc en fait avoir une répartition égale des pixels noirs et pixels blanc.

    Ca me pose deux problèmes :
    * Mon but est de seulement faire ressortir des zones de présence, donc il doit y avoir peu de pixels blanc si il y a personne ou une faible présence
    * Temps de calcul très élevé si il faut calculer 255 entropies pour une image avec 255 niveaux de gris (255 seuils possibles en théorie)

  17. #57
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par pasdeface Voir le message
    J'ai peut etre mal compris le seuillage par entropie alors. D'après ce que j'ai lu (Notamment sur ce post) Cela consiste à maximiser le nombre de pixels noirs et le nombre de pixels blanc, en faisant une recherche sur tous les seuils possibles.
    Donc en fait avoir une répartition égale des pixels noirs et pixels blanc.
    http://www.istanbul.edu.tr/eng/ee/je...is62/62008.pdf

    La formule décrite au 2.2 a été implémentée en Java dans ImageJ.

    Ca me pose deux problèmes :
    * Mon but est de seulement faire ressortir des zones de présence, donc il doit y avoir peu de pixels blanc si il y a personne ou une faible présence
    C'est un peu le principe de l'entropie.

    * Temps de calcul très élevé si il faut calculer 255 entropies pour une image avec 255 niveaux de gris (255 seuils possibles en théorie)
    Effectivement il faut calculer l'entropie pour le Noir et pour le Blanc puis chercher la meilleure séparation. Mais ce n'est pas si coûteux que cela.

  18. #58
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    super l'article explique très bien et le code en java va bien me servir
    J'avais pas reussi à trouver d'explication sur le seuillage par entrpoie.

  19. #59
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Alors le suillage par entropie est pas mal du tout effectivement.
    Seul petit problème : quand il n'y a pas de mouvement du tout, alors j'obtient des seuils trop bas et je capture trop de bruit.
    Bon c'est sur une érosion et il n'y aurait surement plus rien, mais c'est dommage quand meme.
    Ca doit venir de la méthode de maximisation de l'entropie. Et je ne veux pas fixer une limite basse à mon seuil car je retomberai sur les problèmes d'un seuil fixe différent selon les situations.

  20. #60
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par pasdeface Voir le message
    Et je ne veux pas fixer une limite basse à mon seuil car je retomberai sur les problèmes d'un seuil fixe différent selon les situations.
    Hum... ca veut dire qu'il va falloir décider si le seuil "calculé" par l'algo du seuillage entropique est cohérent.

    On pourrait evaluer la distribution de la motié haute de l'histogramme (au dessus du seuil). Si la variance est "trop" grande, alors c'est que les pixels au dessus du seuil sont du bruit.

Discussions similaires

  1. [PHP 5.3] Compter le nombre de personnes
    Par Marc31 dans le forum Langage
    Réponses: 15
    Dernier message: 26/06/2014, 10h23
  2. [AC-2010] Calculer le nombre de personnes présentes sur des tranches horaires
    Par kader daret dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 21/02/2014, 18h26
  3. fonction pour compter le nombre de personne dans une tranche d'age
    Par djo007 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/02/2012, 00h03
  4. Compter le nombre de personnes
    Par nander dans le forum Langage SQL
    Réponses: 8
    Dernier message: 12/03/2008, 10h56
  5. Réponses: 1
    Dernier message: 01/05/2007, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo