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

OpenCV Discussion :

Détection d'incendie ou de fumée


Sujet :

OpenCV

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Détection d'incendie ou de fumée
    Bonjour a tous,

    dans le cadre d'un projet concernant des détections de plusieurs types d'incidents, il m'est demandé une détection d'incendie.

    j'ai réussi a mettre en œuvre une détection de couleur ( rouge dans mon cas ) pour la détection d'incendie, mais le résultat n'est pas très convaincant ...

    j'ai donc repensé l'algorithme, plutôt que de détecter un pixel dépassant un taux entre 0 et 255, j'ai imaginé une détection de fumée... mais j'ai beaucoup plus de mal a le mettre en place, une fumée étant difforme et de couleurs différentes ...

    quelqu'un aurait un lien ou des idées de modifications a faire ?


    J'ai egalement lu sur ce forum qu'il est possible de detecter des voitures a l'aide des haar mais je ne trouve aucune info a ce sujet


    merci

  2. #2
    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
    Bonjour,

    je pense que le forum "Traitement d'images" aurait été plus approprié à ta question.

    Est ce que tu as déjà des images contenant des flammes ?
    Si oui, est ce que tu as essayé de changer d'espace de couleur : HLS, HSV, YCbCr ?
    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, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs 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.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    il doit y avoir moyen avec une soustraction d'image mais c'est vrai que ca ne te dira que si quelque chose à changé sur ton image et rien d'autre. La méthode fonctionne dans des cas particulier d'image selon l'ampleur de l'incendie et la vue (vue aerienne par exemple).

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci de vos reponses

    j'ai comme contrainte l'utilisation de la librairie opencv donc je me suis dis que c'etait le meilleur endroit pour poster ^^

    je peux effectivement convertir les couleurs avec les fonctions d'opencv adequat, mais que puis je faire ensuite ?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    hum ben un histogramme par exemple, ou tu track une plage de couleur en supposant que le feu est une plage de couleur, sinon ca dépend d'ou tu cherche le feu, si il est censé y avoir personne, tu peux tracker un changement d'image (soustration de 2 frame) ou un flow dans l'image aussi. Tout dépend de ta configuration ou se situe la caméra, l'environnement, la taille du feu....

  6. #6
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    salut et merci de ta reponse

    j'ai plusieurs etapes realisées:
    prendre une photo a la webcam
    appliquer un ROI ( Region of Interest ) pour garder la partie qui m'interesse
    j'ai appliqué un filtre pour etirer l'histogramme, pour lisser et enfin pour binariser,

    je voudrai maintenant recuperer le nombre de pixel noir qui sont sur l'image binarisée, afin de pouvoir en deduire la taille a l'aide de seuil ( exemple: si nombre pixel noir < 50 alors c'est un "petit feu", si nombre < a 300 c'est un incendie, etc ( on peut appliquer ca a une detection de n'importe quoi d'autre selon ce qu'on decide dans le ROI ) )

    je sais embriquer deux boucles for pour parcourir l'image mais je sais pas recuperer le nombre de pixel noirs pour les placer dans un int qu'on comparera apres aux seuils pour deduire ce qui est detecté

    sinon deuxieme methode possible ( pas de contraintes ), faire la difference avec une image "modele" ou il y'a rien, et en deduire qu'il y a un objet detecté. probleme, je n'arrive pas a utiliser cvSub, je trouve aucun sample qui marche...

    merci

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    tu trouveras ton bonheur ICI

    avec la fonction elle retourne la couleur du pixel.

  8. #8
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    yes j'avais suivi ce topic,
    mais beaucoup d'erreurs inattention dans les codes,
    et apparemment la version finale qui a été postée ( avant la question suivante concernant la droite ) n'a pas fonctionné chez moi

    je la met en place des que je rentre chez moi et je poste le code :-)

    merci snowpy en tout cas

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int nb_pixel = 0;
    pixel=255;
    for (int i=0; i < monImage->height; i++)
    {
    	for (int j=0; j < monImage->width; j++)
    	{
                       //si le pixel est blanc alors:
                       if( cvGet2D(monImage,i,j) == pixel)
                       {
                           nb_pixel++; 
                       }
    	}
    }
    ca, ca fonctionne très bien pas de souci normallement, il suffit de modifier la valeur de pixel en fonction de la couleur (255 c'est noir mais je suis pas très sur pour ca à tester)

    NB: n'oubli pas le split en début de code

  10. #10
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    CvHistogram* Histogramme;
    double NbPtBlanc;
    int TailleHistogramme=256;
    Histogramme=cvCreateHist(1,&TailleHistogramme,CV_HIST_ARRAY);
    cvCalcHist(&img_bin,Histogramme);
    NbPtBlanc=cvQueryHistValue_1D(Histogramme,255);
    cout << "Point blancs: " << NbPtBlanc << endl;


    a l'air de fonctionner

  11. #11
    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
    Citation Envoyé par tbrjerome Voir le message
    je peux effectivement convertir les couleurs avec les fonctions d'opencv adequat, mais que puis je faire ensuite ?
    Je pense que tu peux regarder si le feux et/ou la fumée se segmente mieux dans ces espaces de couleurs.
    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, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs 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.

Discussions similaires

  1. Recherche algorithme détection de fumée
    Par Bzc.Bzh dans le forum Traitement d'images
    Réponses: 6
    Dernier message: 28/04/2008, 15h44
  2. Détection MySql
    Par gjullien dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/08/2003, 18h15
  3. Faire un panache de fumée sous Flash ?!
    Par benj63 dans le forum Flash
    Réponses: 5
    Dernier message: 14/08/2003, 17h27
  4. Détections avec WebBrowser
    Par Wazo_Sportive dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/08/2002, 19h32
  5. Détection de 2 touches appuyées
    Par cyrose dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 16h25

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