Précédent   Forum des professionnels en informatique > Autres langages > Algorithmes > Traitement d'images
Traitement d'images Forum d'entraide sur le traitement d'images et l'analyse d'images et de vidéos. Avant de poster : Cours de traitement d'images
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/01/2012, 01h13   #1
Invité régulier
 
Femme
Inscription : janvier 2012
Messages : 79
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 79
Points : 9
Points : 9
Par défaut Détection de pluie par traitement d'image

Bonjour à tous,

Je suis étudiante en 4ième année d'école d'ingénieur. J'ai un projet à faire, détection de pluie au moyen d'un traitement d'image sur une webcam. Si j'arrive à le coder, il faudra que je cherche une facon de calculer le taux de luminosité, puis la présence de brouillard ou encore la présence de vent (en fixant un arbre par exemple). Ce que je vais faire c'est récupérer les images toutes les X secondes sur ma webcam et après les traiter.

Par contre je suis quasi débutante en Matlab et en C++. C'est pourquoi je viens demander votre aide et vos avis. Que me conseillerez vous d'utiliser entre ces 2 outils? Connaissez vous des livres ou n'importe quelle type de sources ou liens qui pourraient m'aider dans mon projet? Ou pourrais je trouver des codes qui ressemblerait à ce que je dois faire, à titre d'exemple?

Merci beaucoup.
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 16h00   #2
Modérateur
 
Avatar de ToTo13
 
Homme Guillaume
Chercheur en informatique
Inscription : janvier 2006
Messages : 4 403
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 33
Localisation : France

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

Informations forums :
Inscription : janvier 2006
Messages : 4 403
Points : 5 268
Points : 5 268
MatLab te permettra de prototyper rapidement. Si tu es débutante c'est certainement mieux.

Ta webcam est elle fixe et avec une résolution suffisante pour avoir un mouvement de pluie ?
Car si tu ne peux te baser que sur la luminosité, cela risque d'être extrêmement compliqué.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS.
- Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
ToTo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 20h34   #3
Invité régulier
 
Femme
Inscription : janvier 2012
Messages : 79
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 79
Points : 9
Points : 9
Je me suis mal exprimée.

Je pense que la résolution de la caméra sera suffisante (1280*1024). En fait, dans le principe, par rapport aux recherches que j'ai faites, je crois qu'il faudrait que je fasse ressortir le fond des images que je capture (ce qui ne bouge pas entre 2 images) et ainsi faire ressortir la pluie. Ensuite, transformer les pixels qui ne bougent pas en noir par exemple, et ceux qui bougent en vert, et aprés faire un calcul pour connaitre le taux de couleur verte à l'écran. Mais je ne sais pas du tout comment m'y prendre, et si c'est la bonne méthode.

Pour la luminosité, c'est quelque chose à part. En fait, je veux faire un programme qui a plusieurs fonctions:
-détection de la pluie
-détection du brouillard (aucune idée de comment faire sur le principe pour le moment)
-calcul du taux de luminosité (il doit y avoir une fonction pour ca?)
-détection du vent (par exemple si un arbre bouge constamment, on peut peut etre le faire ressortir)
...

Ma caméra est fixe.

Voila, donc il faudrait utiliser du matlab? La seule chose que je sais faire avec cet outil, c'est calculer des spectres donc y aurait il quelque chose qui pourrait m'aider?
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 10h11   #4
Modérateur
 
Avatar de ToTo13
 
Homme Guillaume
Chercheur en informatique
Inscription : janvier 2006
Messages : 4 403
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 33
Localisation : France

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

Informations forums :
Inscription : janvier 2006
Messages : 4 403
Points : 5 268
Points : 5 268
La différence entre deux images de pluie successives... va dépendre de la résolution de la webcam :
- trop faible => rien ne bouge
- trop élevée => tout bouge.
le souci du tout bouge, c'est que cela pourrait aussi être le cas lors du vent si tu ne parviens pas à trouver des points fixes.
Donc plutôt que de faire des différences entres images successives, tu pourrais prendre plusieurs images à des moments très différents et détecter des bâtiments ou autres choses fixes / lisses.

Pour MatLab, il suffit d'appeler les bonnes fonctions en lisant la documentation.
En C, il te faut programmer beaucoup de choses toi même, même si tu utilises des bibliothèques telles que OpenCV.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS.
- Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
ToTo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 13h37   #5
Membre éclairé
 
Doctorant en informatique
Inscription : juin 2009
Messages : 244
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Doctorant en informatique

Informations forums :
Inscription : juin 2009
Messages : 244
Points : 347
Points : 347
Je rejoins Toto13, sur le fait qu'une analyse pixel à pixel risque d'être problématique. Tu devrais peut-être regarder du côté d'approche plutôt basée sur la texture. Cela devrait fonctionner au moins pour pour ce qui est de la pluie et du brouillard.

Pour le vent tu peux éventuellement faire de la texture "3D" (texture+temps).

Si tu as ensuite à ta disposition une base annotée assez grande, tu dois pouvoir faire de l'apprentissage.

Sinon, matlab étant un outils propriétaire et payant, tu peux aussi regarder du côté d'un environnement basé sur Python/numpy/scipy et quelques modules adaptés au traitement des images.
Alexis.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 19h06   #6
Invité régulier
 
Femme
Inscription : janvier 2012
Messages : 79
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 79
Points : 9
Points : 9
Merci pour vos réponses!

Donc, je vais utiliser Matlab, ça me semble être, de loin, la meilleure solution pour une novice comme moi.

Je viens de trouver une thèse sur le sujet, à propos de la détection de pluie.

http://perso.lcpc.fr/hautiere.nicola...re-prac10a.pdf

Ça commence à partir de la formule (8).

Effectivement, le taux d'erreur avec le principe que j'avais donné auparavant serait trop grand. Ici le principe serait de voir les régions les plus claires de l'écran, qui serait les gouttes de pluie.

La formule (8) représente un histogramme.

Encore une fois, je suis débutante en Matlab.

Savez vous comment retranscrire de façon très technique la partie sur la détection de pluie?
Y aurait-il des sources (livre, site internet, exemple..) qui expliquerai le traitement d'image avec Matlab? (quelque chose qui pourrait coller avec le projet ou même quelque chose d'assez général)
Et même question avec le principe sur la texture et la texture 3D?
Qu'entends tu par "une base annotée assez grande"?

Honnêtement, je ne sais pas trop par ou commencer, c'est pour ça que les questions peuvent sembler assez "bêtes", mais on m'a mise sur quelque chose qui semble assez compliquée avec un outil quasi-inconnu.. Je pense que ça ira quand je serais lancée
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 09h16   #7
Modérateur
 
Avatar de ToTo13
 
Homme Guillaume
Chercheur en informatique
Inscription : janvier 2006
Messages : 4 403
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 33
Localisation : France

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

Informations forums :
Inscription : janvier 2006
Messages : 4 403
Points : 5 268
Points : 5 268
Citation:
Envoyé par Ma29200 Voir le message
La formule (8) représente un histogramme.

Encore une fois, je suis débutante en Matlab.

Savez vous comment retranscrire de façon très technique la partie sur la détection de pluie?
Y aurait-il des sources (livre, site internet, exemple..) qui expliquerai le traitement d'image avec Matlab? (quelque chose qui pourrait coller avec le projet ou même quelque chose d'assez général)
Et même question avec le principe sur la texture et la texture 3D?
Qu'entends tu par "une base annotée assez grande"?

Honnêtement, je ne sais pas trop par ou commencer, c'est pour ça que les questions peuvent sembler assez "bêtes", mais on m'a mise sur quelque chose qui semble assez compliquée avec un outil quasi-inconnu.. Je pense que ça ira quand je serais lancée
Ici on s'occupe de la façon de faire :-)
Il y a un forum MatLab très dynamique qui t'aidera à implémenter tout ce que tu souhaites.

D'un point de vue méthode, j'ajouterai :
- si tu as des zones lisses / homogènes.
- appliquer un filtre de Gabor sur ces zones.
- regarder les écarts d'intégrale entre les moments sans et avec pluie.
- cela devrait être significatif.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS.
- Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
ToTo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 10h43   #8
Modérateur
 
Inscription : août 2007
Messages : 3 582
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3 582
Points : 4 410
Points : 4 410
Pour MATLAB, d'un point de vue général, la et les tutoriels du site sont une bonne introduction, ensuite pour entrer plus dans le détail, la documentation de MATLAB est très bien fournie. Si tu as accès à une bibliothèque universitaire, tu y trouveras peut-être des livres sur MATLAB ou sur le traitement d'images.
__________________
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


La nature est un livre écrit en langage mathématique. Galilée.
magelan est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 17h02   #9
Invité régulier
 
Femme
Inscription : janvier 2012
Messages : 79
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 79
Points : 9
Points : 9
Merci pour vos réponses.

Je vais voir un peu sur le forum Matlab pour la partie technique!
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 18h10   #10
Invité régulier
 
Femme
Inscription : janvier 2012
Messages : 79
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 79
Points : 9
Points : 9
http://www.developpez.net/forums/att...1&d=1328461585

Est ce que cette théorie vous semble correcte?

Je suis en train d'étudier 2 autres théories en même temps:
- Une avec Gabor évoqué ici, mais je suis bloqué par la détection des zones lisses (techniquement)
- Une avec la fft, on fait une fft d'avec et sans pluie, et les soustrait pour faire apparaitre le bruit blanc, qui devrait etre la pluie.

Qu'en pensez vous?
Fichiers attachés
Type de fichier : pdf Pluie.pdf (385,2 Ko, 28 affichages)
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 11h07   #11
Modérateur
 
Avatar de ToTo13
 
Homme Guillaume
Chercheur en informatique
Inscription : janvier 2006
Messages : 4 403
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 33
Localisation : France

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

Informations forums :
Inscription : janvier 2006
Messages : 4 403
Points : 5 268
Points : 5 268
Citation:
Envoyé par Ma29200 Voir le message
http://www.developpez.net/forums/att...1&d=1328461585
Est ce que cette théorie vous semble correcte?
Je ne vois pas réellement de différence au niveau des tracés :-(
As tu une idée de la quantification exacte.


Citation:
Envoyé par Ma29200 Voir le message
- Une avec Gabor évoqué ici, mais je suis bloqué par la détection des zones lisses (techniquement)c, qui devrait etre la pluie.
Si tu n'es pas trop contrainte en temps, tu peux utiliser les Gray Level Size Zone Matrix sur certains point de l'image afin de voir s'ils correspondent à des zones homogènes/lisses.
Une technique plus rapide (mais un peu moins performante en général) c'est de faire une granulométrie.

Tu devrais pouvoir trouver des candidats en appliquant un "Ultimate Opening" : on regarde quelle taille d'élément structurant est nécessaire pour faire disparaître un pixel / une zone. Une zone homogène / lisse disparaîtra d'un seul coup et tous les pixels la contenant auront la même valeur associée.
Un petit filtre médian au préalable devrait pouvoir supprimer un peu de bruit pour rendre d'avantage robuste le procédé.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS.
- Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
ToTo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2012, 17h53   #12
Invité régulier
 
Femme
Inscription : janvier 2012
Messages : 79
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 79
Points : 9
Points : 9
J'ai choisi de réaliser quelque chose de plus simple: Je fais une analyse pixel par pixel de la différence entre 2 images successives (ca donne du noir sur ce qui change pas et du degré de blanc sur ce qui change) et puis je reconnais une certaine figure qui est 2 pixels clair en vertical et 8 pixels noirs (4X2) de chaque cotés. Cela représente une goutte de pluis, puis je fais le décompte de ce phénomène. S'il apparait assez de fois; c'est qu'il pleut.J'ai testé sur des images, cela marche, il faut maintenant tester en direct..
Qu'en pensez vous?
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2012, 19h23   #13
Modérateur
 
Avatar de ToTo13
 
Homme Guillaume
Chercheur en informatique
Inscription : janvier 2006
Messages : 4 403
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 33
Localisation : France

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

Informations forums :
Inscription : janvier 2006
Messages : 4 403
Points : 5 268
Points : 5 268
Citation:
Envoyé par Ma29200 Voir le message
J'ai choisi de réaliser quelque chose de plus simple: Je fais une analyse pixel par pixel de la différence entre 2 images successives
Qu'empiriquement il y a toujours un moment où cette méthode ne fonctionne pas :-(
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS.
- Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
ToTo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2012, 19h29   #14
Invité régulier
 
Femme
Inscription : janvier 2012
Messages : 79
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 79
Points : 9
Points : 9
C'est à dire? Avec des images à fortes résolutions?
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2012, 10h18   #15
Modérateur
 
Avatar de ToTo13
 
Homme Guillaume
Chercheur en informatique
Inscription : janvier 2006
Messages : 4 403
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 33
Localisation : France

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

Informations forums :
Inscription : janvier 2006
Messages : 4 403
Points : 5 268
Points : 5 268
Citation:
Envoyé par Ma29200 Voir le message
C'est à dire? Avec des images à fortes résolutions?
Variations de luminosité, contraste, etc.
Le vent risque aussi de produire des erreurs.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS.
- Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
ToTo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2012, 10h27   #16
Membre éclairé
 
Doctorant en informatique
Inscription : juin 2009
Messages : 244
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Doctorant en informatique

Informations forums :
Inscription : juin 2009
Messages : 244
Points : 347
Points : 347
Peut-être que par contre calculer des descripteurs de texture sur les images différence pourrait apporter quelque chose...
Alexis.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2012, 19h59   #17
Invité régulier
 
Femme
Inscription : janvier 2012
Messages : 79
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 79
Points : 9
Points : 9
Ben si on prend 2 images qui se suivent à 1 seconde d'écart... Les variations de luminosité et de contraste ne devrait pas influer non? Puisqu'elles seraient quasi inexistantes à 1 sec d'écart..
Pour le vent, oui, il faudrait viser à reconnaitre plusieurs type de phénomène..

Pour le moment, ce que j'ai réalisé c'est: (N= foncé, B= clair, X=non analysé)
NNNNBNNNN
NNNNBNNNN
NNNNBNNNN

il faudrait faire en plus:
NNNNBNNNN
XNNNNBNNNN
XXNNNNBNNNN

XXNNNNBNNNN
XNNNNBNNNN
NNNNBNNNN

ect...

Descripteurs de texture?
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2012, 10h52   #18
Membre éclairé
 
Doctorant en informatique
Inscription : juin 2009
Messages : 244
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Doctorant en informatique

Informations forums :
Inscription : juin 2009
Messages : 244
Points : 347
Points : 347
Tu peux par exemple utiliser les Local Binary Patterns (LBP). Le principe est le suivant:
  1. Pour chaque pixel tu échantillonnes P points dans l'image régulièrement répartis sur un cercle de rayon R autour du pixel.
  2. Ensuite tu applique un seuillage à chaque échantillon basé sur la valeur du pixel central.
  3. Tu obtiens donc des valeurs binaires organisée circulairement. En les dépliants tu récupère une série de 0 et de 1 qui peuvent être interprétée comme un entier encodé sous forme binaire. C'est le code de ton pixel.
  4. Pour décrire une texture sur une région d'une image tu comptes le nombre d'occurrence de chaque code (tu fais l'histogramme des codes).

Il existe des variantes de ce principe, notamment une qui consiste à ne garder que les codes "uniformes" c'est à dire qui n'ont pas plus de deux changements de valeur dans les séries de 0 et 1 ou encore la variante "invariante par rotation" qui consiste à remplacer chaque code par le code correspondant à la permutation circulaire donnant le plus petit entier.

Typiquement l'association de ces deux variantes détecte les organisations correspondant à des lignes ou à des coins.

En comparant les statistiques des codes tu dois pouvoir déterminer s'il pleut ou pas voir même si tu n'as pas l'invariance par rotation, la direction du vent.

Un document complet sur les LBP et un autre plus synthétique...
Alexis.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h42.


 
 
 
 
Partenaires

Hébergement Web