merci, je vais essayer tout ca.
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?
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.
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 la, il faut faire un calibrage automatique. Il faut calculer la valeur de "seuil" optimale lorsqu'il n'y a aucun 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
Bonsoir,
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.
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
Tu peux poster les images de differences completes (pas juste les histogrammes) pour qu'on puisse t'aider ?
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.
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.Envoyé par pseudocode
http://cjoint.com/data/bCkObESV3j.htmOui, avant le seuillage ca serait bien.
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.
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)
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.
C'est un peu le principe de l'entropie.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
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.* 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)
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.
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.
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager