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 :

Amélioration d’algorithmes de comparaison d'image


Sujet :

Traitement d'images

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Amélioration d’algorithmes de comparaison d'image
    bonjour,


    je suis en train de faire un projet qui consiste à comparer une image de basse par rapport à une nouvelle image acquise par une caméra, pour détecter les changements qui apparaissent. Pour l'instant l’algorithme que j'ai mis en place consiste à mettre mes 2 images en niveaux de gris, ensuite je fais une soustraction des 2 images puis une érosion pour trouver la différence qu'il y a entre les 2 images. Le problème c'est que je dois pouvoir aussi détecter un objet blanc sur un fond blanc, en réalité mon algorithme arrive à détecter la différence mais pour ce faire je dois diminuer ma tolérance (proche de null) et alors mon algorithme commencé à détecter tous est n'importe quoi, le moindre changement fait des ravages

  2. #2
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Pour pallier à ton problème, il faudrait comparer pixel par pixel ligne par lignes en RGB
    Mais ça pourrait être plus long. et ça ne marchera qu'avec du .bmp
    Quand à comparer du blanc sur du blanc, il vaudra mieux oublier.
    Savoir pour comprendre et vice versa.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci d'avoir pris la peine de répondre,

    pour plus de précisions, mes traitements sont faits en .Bmp et je parcoure mon image pixel par pixel pour faire la soustraction des 2 images pour ne garder que la différence.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Si c'est juste pour savoir s'il y a une différence et que tu ne fais rien avec la différence, ce serait plus simple de comparer les trois valeurs R G B entre images
    Tu peux les comparer ensemble ou séparément ça ne doit pas changer grand-chose pour le temps
    Savoir pour comprendre et vice versa.

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    la manipulation que je fais après avoir trouvé la différence entre les 2 images consiste juste à afficher dans la nouvelle image la différence en une couleur transparente, le problème c'est que l'intensité des pixels change en fonction de divers paramètres ( l'éclairage ,.... ) et si je fais une bête comparaison de pixel sens tenir compte de rien, je détecte des choses bonnes comme étaient mauvaises. pour essayer de diminuer l'impact de la luminosité j'ai fait une égalisation d'histogramme mais ça change pas grand-chose. et je dois comparer mes images en temps réel avec 30 FPS

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    regarde du cote du flot optique
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  7. #7
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Amélioration d’algorithmes de comparaison d'image
    Bonjour,

    La difficulté de ton projet appelle quelques questions.
    Citation Envoyé par pommeKiwi Voir le message
    ... Le problème c'est que je dois pouvoir aussi détecter un objet blanc sur un fond blanc ...
    1°) Y a-t-il d'autres choses à éliminer, présentes sur l'image, sombres ou colorées ?

    2°) L'objet (mobile ?) à suivre présente-t-il la même nuance de blanc que le décor ? Ses contours - nécessairement discernables à l'oeuil - ne sont-ils pas un peu plus sombres ?

    3°) Les teintes sont-elles altérées localement par l'éclairage, qui peut donner des reflets, ou des zones de luminosité très différentes ?

    La conversion en niveaux de gris nivelle les écarts de couleur, de sorte que ce que l'on peut faire apparaître par la suite est dépourvu de signification.

    Ne pourrait-on pas envisager au contraire une exaltation des écarts de couleur par rapport au blanc (ou tout autre teinte, d'ailleurs) par intervention de la transformation qui à tout triplet (r, v, b) en fait correspondre un autre (r1, v1, b1) par exemple par les relations:
    r1 = r0 - K*(r0 - r)
    v1 = v0 - K*(v0 - v)
    b1 = b0 - K*(b0 - b)
    avec (K > 1), r0 = v0 = b0 = 255 (1)
    et pour ne pas sortie du domaine [0 ; 255] ajouter les corrections
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF (R1>255) THEN R1:= 255;
    IF (R1<0) THEN R1:= 0;   // etc ...
    (1) D'autres calculs sont envisageables, comme celui-ci qui permet d'éviter les zones de gris en conduisant à des points plus éloignés de la diagonale principale du cube des couleurs: r0 = v0 = b0 = (r + v + b)/3
    (fonction d'arrondi ici indispensable).


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    J'avais fait un truc comme ça il y a une quinzaine d'années années : A partir d'une Webcam, je gardais une image par seconde, ou une image toutes les 5 secondes, et je les comparais, pour détecter une présence anormale. Grosse galère. Entre 2 images consécutives, tous les pixels changent, même s'il ne se passe rien. A cause de légères variations de luminosité d'autre part. Mais il me semble qu'il y avait aussi des micro-mouvements. Le coin d'un meuble était au pixel (x,y) sur une image, et au pixel (x+1,y) sur l'image d'après. Sans raison. Il fallait donc traiter aussi ce genre de problème. Je ne connaissais pas à l'époque, mais depuis, j'ai entendu parler des "filtres de Soebel". Regarde cette piste.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Amélioration d’algorithmes de comparaison d'image
    Les éventuelles teintes du blanc devraient être accentuées par l'utilisation de la fonction homographique
    y = 255*x/(255*(K+1) - K*x) , fonction croissante de (x) sur [0 ; 255], qui vérifie:
    F(0) = 0; F(255) = 255 et F(x) < x sur ]0 ; 255[ .

    Le nouvel indice de couleur r1 = Round(y) pourrait ainsi s'exprimer en fonction de l'ancien (r = x).

    Pour éviter des "irisations" (terme sans doute inapproprié) dépourvues de signification, faire le calcul sur une couleur moyenne locale; par exemple pour le pixel de coordonnées (x, y) au centre d'un carré (3×3):
    Pm(x, y) = Round(a*P(x, y) + b*(P(x+1, y) + P(x-1, y) + P(x, y+1) + P(x, y-1)) + c*(P(x+1, y+1) + P(x+1, y-1) + P(x-1, y+1) + P(x-1, y-1))) , avec
    a = 4/16 = 1/4 ; b = 2/16 = 1/8 ; c = 1/16 .


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  10. #10
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    je les comparais, pour détecter une présence anormale.
    Si c'est vraiment pour faire cela, un réseau de neurone doit être parfait. Un micro-mouvement de caméra ne ressemble pas à un intrus rentrant dans la pièce.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci pour toutes vos réponses, je vais voir ce que je peux faire. je vous tiens au courant.

  12. #12
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    j'ai un peux regarder ce que c'est les réseaux de neurones et je pense que cela ne va pas être possible de le mettre en place. Car si j'ai bien compris les réseaux de neurones est à machine learning, donc je vais avoir une sorte de dictionnaire qui va me permettre d'indiquer si l'image est bonne aux mauvaises. plus j'aurais entraîné mon algorithme plus j'aurais un dictionnaire conséquent plus mon traitement sera robuste. j'ai 2 problèmes avec cela, le premier c'est l'apprentissage car je développe une application pour un banc d'essais moteurs et je dois détecter si y a des FOD (toute chose qui pourrait endommager le moteur). Et le problème est que le client veut une application qui fonctionne directement. De plus, au début l'algorithme risque de se tromper et c'est à moi de faire une correction manuelle, le problème est que l’entreprise au je travaille et le banc d'essais sont fortement éloigné (Belgique - France) donc je ne peux pas m'y rendre pour faire de la correction ( et il ne faut pas compter sur le personnel sur place pour faire quoi que ce soit). De plus la camera qui fait l'acquisition peut changer de place pour des raisons diverses ( rare mais ça peut arriver) dès lors il faudra recommencer l’apprentissage.

    Le second problème que je voie c'est que le traitement risque de prendre du temps ( pas sure), et je dois pouvoir faire du 30 FPS et avec grand maximum 1 second de décalage.

    plus de détaille :

    L’éclairage ne varie pas beaucoup car c'est une pièce close ( pas de fenêtre, ...).
    Les objets peuvent être en mouvement.
    Les objets non pas de forme, couleur, ... spéciale.
    Je dois pouvoir détecter des petits objets ( petite vise) comme des grands .
    L'application doit être totalement fonctionnelle quand il est donné au client, et il doit pouvoir être mis dans n'importe quel banc d'essai.
    L'image de base sera la première image que la camera aura acquis.
    Le contexte ( le fond, .... ) du banc d'essai peut changer et je n'ai pas beaucoup d'informations à ce sujet.
    un objet en FOD ( pas bon) peut avoir la même couleur qu'un objet non FOD (bon), pas exactement la même couleur mais très très fortement proche.

  13. #13
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Citation Envoyé par pommeKiwi Voir le message
    j'ai un peux regarder ce que c'est les réseaux de neurones et je pense que cela ne va pas être possible de le mettre en place.
    Si tu te décourages toi-même, alors la messe est dite.
    Citation Envoyé par pommeKiwi Voir le message
    je vais avoir une sorte de dictionnaire
    Il faut que tu comprennes que tu ne va pas apprendre à ton robot à faire quelque chose mais apprendre à apprendre. Tu ne lui donnes pas de dictionnaire. Il se le crée.
    Citation Envoyé par pommeKiwi Voir le message
    qui va me permettre d'indiquer si l'image est bonne aux mauvaises
    Et si elle est mauvaise ? Le banc d'essai s'arrête automatiquement ?
    Citation Envoyé par pommeKiwi Voir le message
    Et le problème est que le client veut une application qui fonctionne directement.
    Où est le problème ? Ton logiciel marchera sans toi.
    Citation Envoyé par pommeKiwi Voir le message
    De plus, au début l'algorithme risque de se tromper
    Au pire, le banc s'arrête. Ce n'est pas grave. C'est le client qui l'a voulu.
    Mais il n'y a pas de raison de penser que le système ne marchera pas. Courage !
    Citation Envoyé par pommeKiwi Voir le message
    et c'est à moi de faire une correction manuelle
    Non. Tu ne dois pas intervenir.
    Citation Envoyé par pommeKiwi Voir le message
    , il faudra recommencer l’apprentissage.
    Ce n'est pas un problème. Qu'est-ce qui lance ton programme ?
    Citation Envoyé par pommeKiwi Voir le message
    Le second problème que je voie c'est que le traitement risque de prendre du temps ( pas sure), et je dois pouvoir faire du 30 FPS et avec grand maximum 1 second de décalage.
    Quel appareil fait le traitement ? Quelle est la résolution de l'image ? Quelle est la taille, en pixels de ton FOD ?

    Quelle base de travail as-tu ? Une ou des vidéos avec un moteur et un FOD ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  14. #14
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par pommeKiwi Voir le message
    j'ai un peux regarder ce que c'est les réseaux de neurones et je pense que cela ne va pas être possible de le mettre en place. Car si j'ai bien compris les réseaux de neurones est à machine learning, donc je vais avoir une sorte de dictionnaire qui va me permettre d'indiquer si l'image est bonne aux mauvaises. plus j'aurais entraîné mon algorithme plus j'aurais un dictionnaire conséquent plus mon traitement sera robuste. j'ai 2 problèmes avec cela, le premier c'est l'apprentissage car je développe une application pour un banc d'essais moteurs et je dois détecter si y a des FOD (toute chose qui pourrait endommager le moteur). Et le problème est que le client veut une application qui fonctionne directement. De plus, au début l'algorithme risque de se tromper et c'est à moi de faire une correction manuelle, le problème est que l’entreprise au je travaille et le banc d'essais sont fortement éloigné (Belgique - France) donc je ne peux pas m'y rendre pour faire de la correction ( et il ne faut pas compter sur le personnel sur place pour faire quoi que ce soit). De plus la camera qui fait l'acquisition peut changer de place pour des raisons diverses ( rare mais ça peut arriver) dès lors il faudra recommencer l’apprentissage.

    Le second problème que je voie c'est que le traitement risque de prendre du temps ( pas sure), et je dois pouvoir faire du 30 FPS et avec grand maximum 1 second de décalage.

    plus de détaille :

    L’éclairage ne varie pas beaucoup car c'est une pièce close ( pas de fenêtre, ...).
    Les objets peuvent être en mouvement.
    Les objets non pas de forme, couleur, ... spéciale.
    Je dois pouvoir détecter des petits objets ( petite vise) comme des grands .
    L'application doit être totalement fonctionnelle quand il est donné au client, et il doit pouvoir être mis dans n'importe quel banc d'essai.
    L'image de base sera la première image que la camera aura acquis.
    Le contexte ( le fond, .... ) du banc d'essai peut changer et je n'ai pas beaucoup d'informations à ce sujet.
    un objet en FOD ( pas bon) peut avoir la même couleur qu'un objet non FOD (bon), pas exactement la même couleur mais très très fortement proche.
    En apparté: Il y a une bonne centaine d'année que des millions de moteurs fonctionnent sans surveillance; et on se demande qu'est-ce qui pourrait bien endommager un moteur hormis un incendie ou une inondation ???????? En plus, qui dit "moteur" dit vibrations; après: Soit le moteur est confiné, et dans ce cas il ne craint rien; soit il y a des parties mobiles et dans ce cas l'image est variable. C'est pas gagné...Ou on comprend pas tout.
    Savoir pour comprendre et vice versa.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2007, 23h35
  2. comparaison deux images
    Par nicolovitch dans le forum Windows
    Réponses: 3
    Dernier message: 27/04/2007, 17h25
  3. Comparaison d'images
    Par Atomikx dans le forum Multimédia
    Réponses: 4
    Dernier message: 12/04/2007, 14h42
  4. Comparaison d'images
    Par marion400 dans le forum Images
    Réponses: 6
    Dernier message: 03/01/2007, 18h08
  5. Comparaison d'images
    Par tmator dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 27/07/2005, 15h06

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