Traitement d’images : concepts avancés Morphologie mathématique (cas fonctionnel) : Erosion, dilatation, ouverture et fermeture fonctionnelles, Filtres alternés séquentiels, Ligne de partage des eaux. Classification (approches globales) : Modèles markoviens, Estimation de paramètres. Estimation de mouvement : Cas d’un mouvement rigide, Flot optique.
Comparaison de 2 images 2 types de changements : Apparition / disparition / modification des caractéristiques (radiométriques, forme) d’objets analyse d’1 image ‘différence’ : classification ‘changement’ / ‘non changement’ Mouvement / déplacement de la scène/d’objets Recherche d’1 mouvement global ici seulement cas des transformations 2D Recherche d’1 champ de déplacements image du Flot optique Application : recalage d’images, compensation mouvement global caméra, etc. Application à la surveillance : vidéosurveillance, monitoring en télédétection, etc. Application : estimation mouvement global caméra, détection de cibles en mouvement, etc.
Comparaison de 2 images : a priori Quel a priori rajouter pour guider la solution ? Transformation globale : Tous les pixels de la scène ont subit le même mouvement modèle rigide Champ de déplacements : Les pixels de la scène peuvent avoir des mouvements indépendants modèle non rigide Mais les déplacements varient lentement régularisation Affectant TOUS les pixels de l’image : translation, rotation, homothétie, affinité
Transformations 2D rigides : Translation+rotation+homothétie Translation (vecteur t0=(x0,y0) ) M’=M+t0 Rotation (centre 0, angle j) M’=(s.eij).M Homothétie (centre 0, rapport s) coordonnées polaires M(r,q)=r.eiq M’=s.rei(q +j) coordonnées log-polaires M(r,q)=logr+iq M’= logr+logs+i(q+j) 2 combinaisons de transformations élémentaires : translation t0 puis r, rotation+homothétie, M’=(M+t0).r =M.r+t0.r rotation+homothétie puis translation M’=M.r +t0=(M+t0.r-1).r On peut toujours appliquer (corriger) d’abord la rotation+homothétie puis la translation
Rappel : TF d’1 image
Corrélation de phase Estimation d’une translation entre 2 images Soit f1 et f2 deux images égales à une translation (dx,dy) près : f2(x,y) =f1(x−dx,y−dy) Soit F1 et F2 leurs transformées de Fourier respectives : F2(u,v) = F1(u,v)e−j2p(u/M.dx+v/N.dx) Alors : En prenant la transformée de Fourier inverse, on obtient un pic de dirac en (dx,dy), correspondant aux paramètres de translation. Exemple : (© wikipédia) ‘spectre de puissance croisé normalisé’ (SPCN) Réduction des effets de bords en filtrant (e.g. Hamming) les images préalablement
Corrélation de phase : exemple TF inverse du SPCN (177,133) (325,307) Pic en (0,377) Images 452452 (251,133) Validation : (251,132)-(177,133)=(75,0) (400,307)-(325,307)=(75,0) Et : 452-377=75 (400,307)
Fourier-Mellin Estimation d’une rotation+homothétie entre 2 images Invariant de Fourier-Mellin = extension de la corrélation de phase pour obtenir les paramètres de rotation et changement d’´echelle. Soit g1 et g2 deux images égales à une rotation d’angle j et un changement d’échelle de s près et G1 et G2 leurs TF respectives : g2(x,y) =g1(s(x.cosj +y.sinj), s(−x.sinj +y.cosj)) Passage en coordonnées log-polaires la rotation+changement d’échelle devient 1 translation Estimable par corrélation de phase : Propriétés Transformée de Fourier : rotation rotation de même angle homothétie de rapport s homothétie de rapport s-1 u=rcosq, v=rsinq
Estim. d’1 transfo. rigide 2D entre 2 images Calcul des TF des 2 images g1 et g2 G1(u,v) et G2(u,v) Passage en coordonnées log-polaires pour les 2 TF G1(log r,q) et G2(log r,q) Calcul des TF des 2 im. G1(log r,q) et G2(log r,q) G1(u,v) et G2(u,v) Calcul du SPCN de G1(log r,q) et G2(log r,q) SPCNlogpolaire Calcul de la TF inverse du SPCNlogpolaire TF-1(SPCNlogpolaire) Estimation des paramètres de la rotation-homothétie comme les coordonnées du pic de TF-1(SPCNlogpolaire) (log a,j) Application de la rotation d’angle -j & de l’homothétie de rapport a-1, à l’image g2 h2 Calcul de la TF de h2 H2(u,v) Calcul du SPCN de G1(u,v) et H2(u,v) SPCN2 Calcul de la TF inverse du SPCN2 TF-1(SPCN2) Estimation des paramètres de la translation comme les coordonnées du pic de TF-1(SPCN2) (tx, ty) Application de la translation (-tx,-ty) , à l’image h2 h1 g1
Invariant de Fourier-Mellin : ex.1 TF inverse du SPCNlogpolaire (153,212) (387,298) Pic en (86,482) Images 512512 (305,183) (194,305) Validation : rotation d’angle 60° 86/512360 facteur d’échelle = 0.7
Invariant de Fourier-Mellin : ex.2
Invariant de Fourier-Mellin : ex.2
Transformations d’ordre supérieur Couples de points se correspondant dans les 2 images Sélection de points d’amer : Manuellement (identification de points homologues dans les deux images) Automatiquement (cf. cours de mise en correspondance de primitives) Estimation de la transformation Système d’équations linéaires à résoudre Critère des moindres carrés : solution donnée par la matrice pseudo-inverse : limite : sensibilité aux outliers RANSAC (RANdom Sampling Consensus) principe : Symétrique positive, & définie si inversible sélection aléatoire d’1 sous-ensemble de points ; calcul de la solution pour ce sous-ensemble ; calcul du critère de consensus (e.g. nombre de points dans l’ens. complet à une distance inférieure à un seuil) réitération tant que non satisfaisant de :
Projection d’1 image vers l’autre : stratégie d’interpolation Projection I12 de l’image 1 I1 dans la géométrie de l’image 2 I2 : Soit T la transformation de l’image 1 vers l’image 2, et T-1 celle de l’image 2 vers l’image 1 ; Pour chaque pixel (i2,j2) de l’image 2, Calculer ses coordonnées antécédentes sur le pavé correspondant à l’image 1 : (x,y) = T-1(i2,j2) En déduire les coordonnées des pixels antécédents dans l’image 1 : {(i1,k,j1,k)/ dist2D((x,y),(i1,k,j1,k))<s} ; e.g. pour s=1, 4 voisins : Calculer le niveau de gris du pixel (i2,j2) selon l’interpolation à l’ordre choisi : I12(i2,j2) = I({I1(i1,k,j1,k)/ dist2D((x,y),(i1,k,j1,k))<s})
Projection d’1 image vers l’autre Projection I12 de l’image 1 I1 dans la géométrie de l’image 2 I2 : Soit T la transformation de l’image 1 vers l’image 2, et T-1 celle de l’image 2 vers l’image 1 ; Pour chaque pixel (i2,j2) de l’image 2, Calculer ses coordonnées antécédentes sur le pavé correspondant à l’image 1 : (x,y) = T-1(i2,j2) En déduire les coordonnées des pixels antécédents dans l’image 1 : {(i1,k,j1,k)/ dist2D((x,y),(i1,k,j1,k))<s} ; e.g. pour s=1, 4 voisins : Calculer le niveau de gris du pixel (i2,j2) selon l’interpolation à l’ordre choisi : I12(i2,j2) = I({I1(i1,k,j1,k)/ dist2D((x,y),(i1,k,j1,k))<s}) Interpolations : Ordre 0 plus proche voisin Ordre 1 bilinéaire 2 interpolation linéaires successives : Ordre 6 bicubique (en ) surface encore plus lisse…
Ré-échantillonnage d’image : exemple plus proche voisin bilinéaire
Flot optique Applications : suivi d’objets, détection de mouvement, etc… Pb: Soit 2 images acquises à t et t+1. Quel est le champ des vitesses associé à l’image ? Sous-pb : Quel est le champ des vecteurs de déplacement apparent de chaque objet de l’image entre t et t+1 ? Définitions : Mouvement apparent local : s=(x,y)S, t, (vxt, vyt) représente la vitesse apparente de s à t. Mvt apparent : vecteur selon Z Flot optique = champ de mouvement apparent Idéalement, le vecteur (vxt,vyt) représente la projection sur le plan image du vecteur vitesse 3D (VXt, VYt , VZt) des points de la scène. Mvt réel : rotation autour de Z
Flot optique : formulation (I) Soit f(x,y,t) l’image vue comme une fct donnant la ‘brillance’ (niv. de gris) d’un objet en (x(t),y(t)) à t Hypothèse de base = conservation de la ‘brillance’ des objets au cours du temps En pratique, minimisation de la norme (L1) : avec régularisation du champ des vitesses Éviter ces solutions !
Flot optique : formulation (II) Ajout d’1 terme de régularisation énergie à minimiser : (*) avec Horn & Schunk (1981) : Weickert & Schnörr (2000) : et l’énergie est intégrée sur 1 domaine spatio- temporel W W[0,T] dans (*)
Flot optique : résolution (I) Rappel : soit 1 fct J dépendant d’1 fct f et de sa dérivée première : alors 1 extremum de J (s’) est la fct f(x) qui satisfait l’équation d’Euler-Lagrange Cas Horn & Schunck et (**) On pose f=f0+ef1, avec f1 quelconque nulle sur les bords de W. Alors si f0 est 1 minimum, la dérivée de J par rapport à e est nulle en e=0 : . Or :
Flot optique : résolution (II) Approximation du Laplacien et des dérivées 1ères par filtrage linéaire : avec et En remplaçant dans le système (**) Que l’on résout de façon itérative (n numéro d’itération):
Flot optique : analyse de résultats Principalement valeurs à 0 (noir) Valeurs non nulles (2) au niveau de la carrosserie Principalement valeurs à 0 (gris) Quelques valeurs non nulles au niveau des roues Image des valeurs de u Image des valeurs de v
Flot optique : exemples de résultats Différence signée u v Alpha=5
Flot optique : exemples de résultats Différence signée u v Alpha=10
Flot optique : approche hiérarchique Dérivées (1ères et 2ndes) estimées sur des fenêtres de taille 33 ou 222 estimation du flot valide que pour des déplacemets ‘petits’. approche hiérarchique : principe : Image 1 Image 2 Calcul de u&v u=u(N-1) v=v(N-1) Sous échantillonnage N-1 N-1 compensation du mouvement Calcul de u&v u=2u(N-1)+u(N-2) v=2v(N-1)+v(N-2) N-2 N-2 Sous échantillonnage Compensation du mouvement Niveau 0 Niveau 0 Calcul de u&v u=2u(1)+u(0) v=2v(1)+v(0)
Flot optique : analyse de résultats (204,277) (212,286) v6 u7 Image des valeurs de u Image des valeurs de v
Flot optique : exemples de résultats
Flot optique : exemples de résultats
Flot optique : informations dérivées Cas d’une caméra statique : flot permet d’estimer les mouvements des objets de la scène segmentation de la scène par le mouvement suivi (tracking) des objets Cas d’une caméra embarquée : flot permet d’estimer le mouvement dominant de la scène foyer d’expantion egomotion de la caméra les objets de la scène non statiques trajectoires des objets non statiques
Modèle d’acquisition de scène Modèle sténopé = pin-hole projection perspective f Z y Y f : distance focale de la caméra En coordonnées homogènes : Rq : Modèle sténopé complet : Matrice de passage du repère 3D de la scène à celui 3D de la caméra (translation+rotation 3D) Projection sur le plan image kx, ky facteurs d’agrandissement des pixels, cx, cy coord. du la projection du centre optique de la caméra sur l’image
Norme des vecteurs déplacement inversement proportionnelle à Z Foyer d’expansion FOE Définition : FOE = point (S) de convergence des directions des mouvements apparents locaux lors d’un déplacement de la caméra dans une scène statique. Si la caméra se déplace à la vitesse (-dX/dt,-dY/dt,-dZ/dt)= (-X’,-Y’,-Z’), alors tous les points de la scène sont à la même vitesse (X’,Y’,Z’) Cas centre optique caméra se projette au centre de l’image Norme des vecteurs déplacement inversement proportionnelle à Z Modèle Pin-hole expression du flot (u,v) en un pixel (x,y)
Points d’intérêt et flot optique Finalement le calcul du flot optique revient à : identifier les couples de pixels susceptibles d’appartenir à un même objet dans les 2 images à t et à t+1 définir 1 critère d’association des pixels sélectionner la ‘bonne’ sol. parmi des sol. multiples définir un critère de régularisation du champ des déplacements Il existe une approche duale de l’approche variationnelle présentée, à savoir une approche locale (Lucas&Kanade 1981 approches par corrélation) Principe : flot estimé aux points où il est estimable a priori non dense Complémentarité par rapport à l’approche variationnelle dense vision humaine : petits mouvements analyse flot optique dense grands mouvements mise en correspondance de points caractéristiques Hyp.: Champ de mouvement est constant sur une petite région Mesure de confiance basée sur la texture de l’image
Détection de changement : Problèmes Pb 1 : soit 1 image de fond, et 1 image acquise à 1 instant t. Quels sont les objets apparus ou disparus par rapport au fond ? Pb 2 : Soit 2 images acquises à t et t+1. Quels sont les objets ayant bougé entre t et t+1 ? Seul cas traité ici : caméra fixe tous les changements détectés sont imputables à des apparitions / disparitions / mouvements d’objets
Détection de changement : Approche générale Création d’1 image des données D Niveau d’information considéré : Valeur absolue des différences des niveaux de gris Différence signée des niveaux de gris Différence (absolue ou non) d’images de primitives : contours… Classification de l’image D Nombre de classes : 2 : ‘changement’ vs ‘non changement’ k : ‘non changement’, ‘changement de type 1’,…, ‘changement de type k-1’ Prise en compte de l’information spatiale Classifications markoviennes (vs ponctuelles) Décision niveau ‘fenêtre’ On cherche 1 solution qui soit : Robuste au bruit, aux changements d’illumination Automatique
Création d’1 image des ‘données- changements’ D
Classification de l’image D Cas 2 classes Classe ‘non changement’ ~ Normale centrée variance s Classe ‘non changement’ ~ quelconque !!! Attention au terme d’attache au données Exemple : cas d’1 classe changement bimodale supposée monomode termes attache aux données Classification aveugle Image des labels ‘vérité’ Image données Paramètres classification Classification MRF-ICM (itération 1) énergies avec terme voisinage
Décision A Contrario Principe de Helmholtz : modélisation du cas où il n’y a rien (modèle ‘naïf’) et contradiction éventuelle de ce modèle Cas de la détection de changements : Classe ‘non changement’ modèle naïf (& Classe ‘non changement’ non modélisée !) Estimation de la ‘vraisemblance’ de l’observation sous hyp. du modèle naïf Décision sur la valeur de probabilité ~ tests a contrario de Fisher sur le “nombre de fausses alarmes” 1 structure est présente dans 1 groupe d’objets quand la configuration de ces derniers ne peut arriver par simple hasard (sauf exception). Introduit en TI par A. Desolneux (2000)
Exemple 1 : détection basée sur les valeurs radiométriques de pixels Modèle naïf : En l’abs. de changements, l’image différence est un champ aléatoire de variables indépendantes gaussiennes centrées L’erreur quadratique cumulée sur 1 sous-ensemble de pixels Wi : a 1 fct de répartition qui suit une loi du c2. Critère NFA : principe : mesurer le degré d’étonnement d’1 observation NFA = où |E| est un ‘nombre de tests’ Significativité maximale : 1 évènement est e-significatif si son NFA est <e On cherche les sous-ensemble de pixels Wi de significativité max., i.e. de NFA minimal Ex. : pour 1 pièce supposée non truquée, il n’est pas vraiment étonnant de ne pas tirer ‘face’ sur 1 tirage aléatoire ; par contre il est très étonnant de tirer 0 fois ‘face’ sur 10 tirages aléatoires ! Conversion d’1 proba. en 1 nombre de fausses alarmes
de dimensions fixées e.g. 1010, 1020, 2010, 2020) Exemple 1 : résultats Cas où Wi est quelconque sur l’ensemble des pixels de l’image : |E| = et Cas où Wi est 1 fenêtre rectangulaire de nk pixels : |E| = et de dimensions fixées e.g. 1010, 1020, 2010, 2020)
Exemple 2 : détection basée sur les labels L’image de données est 1 image de labels l0 l0 {‘changement’=‘C’, ‘non changement’=‘NC’, ‘indéterminé’=‘I’} l0 attribué au niveau pixel erreurs Modèle naïf : En l’abs. de changements, les labels l0=‘changements’ sont répartis uniformément sur l’image Le # de pixels labelisés ‘C’, |{‘C’}Wi|, dans 1 sous-ensemble compact de |Wi| pixels suit une loi binômiale : Résultats : Étiquettage sur valeur de gradient Étiquettage par méthode 1.1
Bibliographie H. Maître, Le traitement des images, Hermès éditions. J.-P. Cocquerez & S. Philipp, Analyse d’images : filtrage et segmentation, Masson éditions. S. Bres, J.-M. Jolion & F. Lebourgeois, Traitement et analyse des images numériques, Hermès éditions.