FR2736742A1 - Procede de mesure de deplacements dans une sequence d'images - Google Patents
Procede de mesure de deplacements dans une sequence d'images Download PDFInfo
- Publication number
- FR2736742A1 FR2736742A1 FR9508509A FR9508509A FR2736742A1 FR 2736742 A1 FR2736742 A1 FR 2736742A1 FR 9508509 A FR9508509 A FR 9508509A FR 9508509 A FR9508509 A FR 9508509A FR 2736742 A1 FR2736742 A1 FR 2736742A1
- Authority
- FR
- France
- Prior art keywords
- image
- displacement
- region
- regions
- gradient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S3/00—Direction-finders for determining the direction from which infrasonic, sonic, ultrasonic or electromagnetic waves, or particle emission, not having a directional significance, are being received
- G01S3/78—Direction-finders for determining the direction from which infrasonic, sonic, ultrasonic or electromagnetic waves, or particle emission, not having a directional significance, are being received using electromagnetic waves other than radio waves
- G01S3/782—Systems for determining direction or deviation from predetermined direction
- G01S3/785—Systems for determining direction or deviation from predetermined direction using adjustment of orientation of directivity characteristics of a detector or detector system to give a desired condition of signal derived from that detector or detector system
- G01S3/786—Systems for determining direction or deviation from predetermined direction using adjustment of orientation of directivity characteristics of a detector or detector system to give a desired condition of signal derived from that detector or detector system the desired condition being maintained automatically
- G01S3/7864—T.V. type tracking systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Electromagnetism (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Image Processing (AREA)
Abstract
Le procédé consiste à segmenter (1, 2, 3) chaque image en régions homogènes en délimitant chaque région par les lignes de crête du relief formé par le gradient de luminance de chaque point de l'image, et à mesurer le déplacement d'une région entre une image N et une autre image M de la même séquence par déplacement et corrélation dans l'image M d'une fenêtre exinscrite à la région dans l'image N. Applications: veille optronique.
Description
L'invention se rapporte au domaine de la vision par ordinateur, et plus particulièrement à la discrimination d'objets mobiles par rapport au fond d'une scène observée en vue de l'acquisition, de la poursuite et de l'identification automatiques de ces objets. Elle trouve son application dans le domaine de la surveillance, de la veille optronique et des dispositifs de conduite automatique de tir.
La détection et l'extraction d'un objet présupposent que celui-ci possède des caractéristiques qui, par mise en oeuvre de critères spécifiques, le distingue du fond de la scène dans laquelle il se trouve.
Ce sont en premier lieu des critères basés sur le contraste qui peuvent être mis en oeuvre parce qu'ils sont plus simples à formaliser et à intégrer dans une électronique temps réel. Dans une image infrarouge l'observation d'une zone brillante sur un fond plus sombre est généralement révélatrice de la présence d'un objet motorisé donc chaud. Toutefois dans certaines conditions d'observation notamment météorologiques, I'imagerie visible, mais aussi l'imagerie infra-rouge ne se prêtent pas toujours à l'emploi de critères aussi rudimentaires.En effet, d'autres structures de la scène peuvent posséder des apparences très voisines de celles des objets d'intérêts et générer des fausses alarmes. II est possible de compléter et d'affiner les critères de contraste, mais cette voie, outre le fait qu'elle impose la disponibilité d'informations précises sur les cibles, conduit rapidement à une complexité croissante qui risque d'être difficilement maitrisable à terme.
Par analogie au système visuel humain qui repère rapidement les objets mobiles, une deuxième classe de critères particulièrement robustes et efficaces exploite l'information de mouvement. De façon élémentaire, la comparaison ,point à point (par différence) de deux images prises à des instants successifs permet la mise en évidence des zones mobiles.
Cependant, I'utilisation d'une méthode aussi simple mène aux difficultés suivantes: - Si la ligne de visée de l'imageur est mobile par rapport au fond, les deux
images doivent être recalées préalablement à l'opération de comparaison
point à point pour éviter les fausses détections sur des contours de la
structure formant le fond. Ce recalage peut être effectué par une simple
translation, mais aussi par rotation ou grossissement.
images doivent être recalées préalablement à l'opération de comparaison
point à point pour éviter les fausses détections sur des contours de la
structure formant le fond. Ce recalage peut être effectué par une simple
translation, mais aussi par rotation ou grossissement.
- En fonction de l'amplitude du déplacement de la cible, mais aussi du
contraste cible/fond, seule une partie (parfois faible) de la cible peut être
détectée; - Enfin, si la scène contient plusieurs objets animés de vitesses
différentes, plusieurs délais inter-images doivent être appliqués.
contraste cible/fond, seule une partie (parfois faible) de la cible peut être
détectée; - Enfin, si la scène contient plusieurs objets animés de vitesses
différentes, plusieurs délais inter-images doivent être appliqués.
Les publications récentes comme celle de la revue THOMSON-CSF n" 1 de Mars 1993 font état de méthodes d'estimation du mouvement en chaque point d'une image reposant sur la mise en correspondance de blocs.
Certaines de ces méthodes calculent une fonction d'intercorrélation dans une fenêtre glissante qui occupe successivement toutes les positions à l'intérieur du champ analysé. Pour chaque position de la fenêtre de calcul, la forme de la fonction d'intercorrélation est analysée et la localisation de son minimum donne accès à la valeur du déplacement local. Ce dernier peut être attribué au point central de la fenêtre. Cependant pour des raisons de volume de calculs à effectuer, mais aussi parce que les zones de luminance uniforme sont impropres à la mesure par corrélation, il est généralement fait appel à un schéma multirésolution, c'est-à-dire, à une décomposition pyramidale des images par filtrages ou sous-échantillonnages successifs,
I'estimation du mouvement étant réalisée à chaque niveau de la pyramide.
I'estimation du mouvement étant réalisée à chaque niveau de la pyramide.
Une fois le champ de vitesse calculé, il est possible d'en faire une segmentation pour distinguer les différents objets de la scène, mais cette opération reste relativement compliquée à mettre en oeuvre.
Le but de l'invention est de pallier les inconvénients précités.
A cet effet, I'invention a pour objet un procédé de mesure des déplacements dans une séquence d'images caractérisé en ce qu'il consiste à segmenter chaque image en régions homogènes en délimitant chaque région par les lignes de crête du relief formé par le gradient de luminance de chaque point de l'image, et à mesurer le déplacement d'une région entre une image N et une autre image M de la même séquence par déplacement et corrélation dans l'image M d'une fenêtre exinscrite à la région dans l'image
N.
N.
La segmentation de l'image en régions homogènes permet d'isoler les objets ou parties d'objets qui sont également très faiblement contrastés par rapport au fond.
L'ajustement de la fenêtre de corrélation à la taille de la région permet de ne prendre en compte que les pixels appartenant soit à une zone de l'objet en mouvement, soit à un élément de fond. Ainsi la mesure du déplacement d'une partie d'un objet ou de sa totalité, n'est pas perturbée par les éléments du fond et permet une estimation plus précise de celui-ci.
L'invention a principalement pour avantages qu'elle permet:
- une réduction des volumes de calcul pour la mesure des déplacements élémentaires; le calcul d'une fonction de corrélation étant répété autant de fois qu'il y a de régions dans l'image.
- une réduction des volumes de calcul pour la mesure des déplacements élémentaires; le calcul d'une fonction de corrélation étant répété autant de fois qu'il y a de régions dans l'image.
-un contournement des problèmes posés par le traitement des zones uniformes car les bords de régions participent obligatoirement à la mesure du déplacement,
- et une mise en oeuvre coopérante des critères de contraste et de mouvement.
- et une mise en oeuvre coopérante des critères de contraste et de mouvement.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard des dessins annexés qui représentent:
La figure 1 une illustration du procédé de segmentation de l'image en régions selon l'invention.
La figure 1 une illustration du procédé de segmentation de l'image en régions selon l'invention.
Les figures 2a, 2b et 2c des graphes illustrant le procédé de lissage mis en oeuvre dans l'invention.
Les figures 3a à 3d des graphes illustrant le procédé de segmentation en régions selon l'invention.
La figure 4 un organigramme illustrant le procédé de mesure du déplacement des régions de l'image selon l'invention.
La figure 5 un organigramme illustrant le procédé de segmentation dynamique selon l'invention.
La figure 6 une illustration du procédé de mesure de déplacement d'une région d'image par corrélation d'une fenêtre selon l'invention.
Le procédé de mesure des déplacements dans une séquence d'images se déroule selon l'invention en trois étapes, une première étape de segmentation statique de l'image en régions, une deuxième étape de mesure du déplacement dans l'image de chaque région et une troisième étape dite de segmentation dynamique de l'image.
La segmentation statique de l'image en régions partitionne chaque image selon des ensembles de points formant des régions homogènes pour une ou plusieurs de leurs caractéristiques telles que l'intensité lumineuse, la texture etc. Ainsi avec ce processus deux régions voisines apparaissent distinctes lorsqu'elles diffèrent par une au moins de leurs caractéristiques.
Le but est de décomposer un objet mobile par rapport au fond de l'image en une ou plusieurs régions. Le procédé de segmentation statique de l'image en région se déroule de la façon représentée à la figure 1 suivant trois étapes consistant, dans une étape 1, à calculer le module du gradient de l'image analysée, dans une étape 2, à lisser l'image du module de gradient obtenue, et dans une étape 3, à appliquer un opérateur de morphologie dit de partage des eaux pour repérer les lignes de crêtes présentes dans l'image du module de gradient définie à la première étape.
Le calcul de l'image du module de gradient de l'étape 1 est effectué de façon connue en utilisant plusieurs filtres dérivateurs.
A titre d'exemple, ce calcul peut avoir lieu en utilisant un filtre récursif à réponse impulsionnelle infinie de type Canny-Deriche pour la qualité du résultat obtenu de préférence, à un filtre à réponse impulsionnelle finie de type Sobel par exemple.
Comme le filtre de Canny-Deriche ne permet la détection de contours que dans une direction de l'image, il est nécessaire d'appliquer son filtrage à la fois selon les directions horizontales et verticales de celle-ci.
Or comme l'application d'un filtre de ce type dans une direction horizontale ou verticale de l'image introduit des discontinuités artificielles dans l'autre direction, il est nécessaire d'effectuer un lissage dans la direction qui lui est orthogonale.
Ce lissage est réalisé en utilisant un filtre exponentiel du deuxième degré dont la bande passante est réglée en agissant sur le terme exponentiel "alpha" de sa fonction de transfert. Plus "alpha" est grand (supérieur à 1) plus les détails seront apparents. A contrario plus alpha est petit et plus les contours sont lissés.
Un algorithme de lissage pouvant être mis en oeuvre est fourni en
Annexe 1.
Annexe 1.
Une fois l'opération de lissage effectuée le calcul du module du gradient sur tous les points de l'image lissée est alors exécuté selon l'algorithme de dérivation fourni en annexe 2.
Le lissage par reconstruction géodésique qui est effectué à l'étape 2 vise à réduire l'influence du bruit dans l'image en lissant les petites aspérités du module de gradient. Ce lissage est effectué de la manière représentée aux figures 2a à 2c par une opération de morphologie mathématique appliquée sur le relief de l'image du module de gradient. Dans son principe, cette opération consiste à construire une image f en soustrayant à l'image originale g du module du gradient une valeur constante relativement faible.
Le relief qui en résulte et qui est obtenu par érosion successive sert alors de masque pour la reconstruction de l'image original. Ainsi la reconstruction de l'image apparaît comme la limite de la récurrence suivante: RO=g
Rn+1=sup((Rn~H),f) où Rn~H désigne l'érodé de Rn de l'élément structurant H.
Rn+1=sup((Rn~H),f) où Rn~H désigne l'érodé de Rn de l'élément structurant H.
A titre d'exemple sur la figure 2a, il a été représenté une courbe du gradient g d'un signal d'image monodimensionnel suivant laquelle des maximum d'amplitude de niveau de gris délimitent 8 régions R1 à R8. Sur la figure 2b, la courbe f est obtenue de la courbe g en soustrayant un niveau constant de gris à la courbe g. La limite de la récurrence Rn se confond alors avec le relief de la courbe f excepté dans les vallées qui sont considérées comme inondées par analogie à l'hydrographie en formant des lacs, et la profondeur de ces lacs correspond à la constante de lissage.Le résultat apparaît sur la figure 2c qui représente la courbe du gradient g lissée, et qui montre que les régions initiales R1 à R8 ont été réduites en seulement 5 régions R'1 à R'5 avec les correspondances suivantes:
R'1 o R1
R'2 U R2+R3
R3 Q R4+R5
R'4 # R6
R5 > R7+R8
Un algorithme permettant d'obtenir ce résultat est fourni en annexe 3.
R'1 o R1
R'2 U R2+R3
R3 Q R4+R5
R'4 # R6
R5 > R7+R8
Un algorithme permettant d'obtenir ce résultat est fourni en annexe 3.
L'opération de segmentation en régions par ligne de partage des eaux qui est effectuée à l'étape 3 a pour but de rechercher les lignes de crête de l'image module du gradient pour permettre d'affecter une même étiquette à tous les pixels d'une même région entourée par une ligne de crête. L'ensemble des lignes de crête ainsi obtenu forme alors un réseau entièrement connecté, qui peut être appelé par analogie à l'hydrographie "ligne de partage des eaux". En poursuivant cette analogie chaque "bassin versant" du réseau constitue alors une région de valeur de luminance homogène formée de pixels possédant des valeurs de luminance voisines.
Le principe de l'algorithme mis en oeuvre est illustré aux figures 3a à 3d, où il est considéré une coupe du relief d'une image 3D. Suivant le modèle représenté on considère que chaque vallée du relief est en communication avec de l'eau dont le niveau augmente progressivement.
Chaque fois que l'eau menace de franchir la limite d'un bassin versant, il est construit une digue pour séparer les bassins, et l'opération prend fin quand le niveau d'eau a atteint le point culminant du relief. Ce processus est résumé aux figures 3a à 3d en considérant une évolution du niveau de l'eau suivant 4 instants différents t, t+1, t+2 et t+3.
A l'instant t, figure 4a, I'eau menace de franchir la limite des bassins bV2 et bV3.
A l'instant suivant t+1, figure 4b, une digue dl est élevée pour séparer les 2 bassins bV2 et bV3.
A l'instant t+2 figure 4c, une deuxième digue d2 est élevée pour séparer les 2 bassins bV1 et bV2 et à l'instant t+3, figure 6d, le niveau d'eau a atteint le point culminant du relief, et sépare ainsi le relief en 4 bassins ou 4 régions. Naturellement les digues ainsi obtenues correspondent aux contours des régions segmentées.
Un algorithme pour la mise en oeuvre de ce procédé est fourni en annexe 4. Cet algorithme se décompose en deux étapes, une étape de tri et une étape d'inondation.
L'étape de tri consiste à trier les pixels par ordre de niveaux de gris croissant par le calcul d'un histogramme cumulé.
L'étape d'inondation consiste à parcourir les pixels par ordre de niveaux de gris croissant et à affecter à chaque pixel un label de région de l'un de ses voisins déjà exploré. Cela permet d'obtenir une croissance de région à partir des minima locaux. Les frontières de ces zones constituent les lignes de crête du gradient qui représentent les contours de régions.
Lorsque l'opération de segmentation de l'image en régions est terminée, I'étape suivante du procédé consiste à mesurer le déplacement de chaque région entre une image N dite de référence et une autre image M de la même séquence, mais retardée de quelques images. Pour cela la segmentation en région de l'étape précédente est appliquée à l'image N.
Une approche possible pour mesurer le déplacement d'une région peut par exemple consister, à définir dans l'image en niveaux de gris N un rectangle contenant entièrement la région (rectangle exinscrit augmenté d'une marge de quelques points), à effectuer comme montré sur la figure 6 la corrélation de ce rectangle dans l'image M et à rechercher la position du maximum de corrélation, ce dernier définissant le déplacement de la région.
Le processus de recherche du déplacement correspondant est illustré par les étapes référencées de 4 à 8 sur la figure 5. Il consiste après l'étape 4 de segmentation en régions de l'image N à définir aux étapes 5 et 6 une fenêtre exinscrite dans chaque région R de l'image N, puis à corréler à l'étape 7 cette fenêtre avec l'image M afin d'obtenir une nappe de corrélation. Le maximum de déplacement de chaque région R est celui qui correspond au maximum de corrélation.
Un algorithme de recherche correspondant est fourni en annexe.
Une fois le vecteur déplacement calculé pour chaque région, le procédé effectue une segmentation dynamique de l'image en recherchant les classes de mouvement. Ceci peut s'effectuer par exemple par un regroupement des mesures de déplacement placées dans une table d'accumulation. Cette analyse permet d'effectuer un regroupement des différentes parties constituant l'objet observé et de réaliser sa discrimination par rapport au fond de l'image. Une mise en oeuvre d'un procédé de segmentation dynamique utilisant une table d'accumulation est figuré par les étapes 9 à11 de l'organigramme de la figure 5. L'étape 9 consiste à construire la table d'accumulation des déplacements à partir de la liste des régions et de leur déplacement fournis par le processus de mesure du déplacement des régions. Cette étape est suivie à l'étape 10 par une recherche des modes de déplacement dans la table d'accumulation et par un calcul d'attributs afin d'effectuer à l'étape Il une classification des objets mobiles et de leur région par rapport au fond. La classification des régions a lieu en utilisant des règles de connaissances à priori concernant par exemple la taille des mobiles par rapport au fond, ou encore leur position dans l'image.
ANNEXES
Annexe 1 Alaorithme de lissage.
Annexe 1 Alaorithme de lissage.
Lissage en x
Immage d'entrée I flottante, image de sortie Jx flottante
Immage de travail T flottante
Les coordonnées varient entre 1 et n inclus
- k := (1.0- exp (-alpha))*(1.0- exp (-alpha));
k / = 1.0 + 2.0*alpha*exp(-alpha) - exp (-2.0*alpha);
b1= 2.0*exp (-alpha);
b2 = *exp (-2.0*alpha);
a5 = k;
a6 = k*exp (-alpha)*(alpha - 1 );
a7 = k*exp (-alpha)*(alpha +1);
a8: -k*exp (-2.0*alpha);
- Pour j parcourant toutes lignes {
T(1,j)=(a5+a6)*I(1,j) + ((b1+b2)*(a5+a6)/(1-b1-b2))*I(1,j);
T(2,j)=a5*I(2j) + a6*I(1,j) + I(1,,j);
+(b2*(a5 + a6)/(1 - b1 - b2)) * l(1,j);
- Pour i parcourant toutes les colonnes sauf les deux premières (
T(i,j)=a5* I(i,j) + a6 * I(i-1,j)+ b1 * T (i-I ,j)+ b2* T(i-2,j)
}
}
- Pour j parcourant toutes les lignes {
Jx(n.j)=(a7 + a8)* I(n.j)+ ((b1 + b2)*(a7 + a8)/(1 - b1 - b2))*l(n.j);
Jx(n-1.j)= (a7 + a8)*l(n,,j) + b1*T(n,,j);
+ (b2*(a7 + a8)/(1 - b1 - b2))*I(n1.j);;
- Pour i parcourant toutes les colonnes par ordre décroissant sauf les deux dernières {
Jx(i,j) = a7*I(i+1,j) + a8*I(i+2,j) + b1 * Jx(i+1,j)+ b2* Jx(i+2,j)
}
- Pour j parcourant toutes les lignes {
Jx(n,,j) = (a7+a8) * I(n,,j)+((b1+b2) * (a7=a8)/(1-b1-b2)) * I(n,j);
Jx(n-1 ,j) = (a7 + a8) *(I(n,,j)+b1 * T(n,j)
+(b2*(a7 + a8)/(1-b1-b2)) * I(n1,j);
- Pour i parcourant toutes les colonnes par ordre décroissant
sauf les deux dernières (
Jx(i,,j)=a7*I(i+1,,j)+a8 * I(i+2,,j) + b1 * Jx(i+1,,j) + b2 * Jx(i+2,,j) :
}
- Pour tous les points de l'image, faire
Jx(i,j) = Jx(i,j) + T(i,j) Le lissage en y est le même qu'en x, en inversant i et j.
Immage d'entrée I flottante, image de sortie Jx flottante
Immage de travail T flottante
Les coordonnées varient entre 1 et n inclus
- k := (1.0- exp (-alpha))*(1.0- exp (-alpha));
k / = 1.0 + 2.0*alpha*exp(-alpha) - exp (-2.0*alpha);
b1= 2.0*exp (-alpha);
b2 = *exp (-2.0*alpha);
a5 = k;
a6 = k*exp (-alpha)*(alpha - 1 );
a7 = k*exp (-alpha)*(alpha +1);
a8: -k*exp (-2.0*alpha);
- Pour j parcourant toutes lignes {
T(1,j)=(a5+a6)*I(1,j) + ((b1+b2)*(a5+a6)/(1-b1-b2))*I(1,j);
T(2,j)=a5*I(2j) + a6*I(1,j) + I(1,,j);
+(b2*(a5 + a6)/(1 - b1 - b2)) * l(1,j);
- Pour i parcourant toutes les colonnes sauf les deux premières (
T(i,j)=a5* I(i,j) + a6 * I(i-1,j)+ b1 * T (i-I ,j)+ b2* T(i-2,j)
}
}
- Pour j parcourant toutes les lignes {
Jx(n.j)=(a7 + a8)* I(n.j)+ ((b1 + b2)*(a7 + a8)/(1 - b1 - b2))*l(n.j);
Jx(n-1.j)= (a7 + a8)*l(n,,j) + b1*T(n,,j);
+ (b2*(a7 + a8)/(1 - b1 - b2))*I(n1.j);;
- Pour i parcourant toutes les colonnes par ordre décroissant sauf les deux dernières {
Jx(i,j) = a7*I(i+1,j) + a8*I(i+2,j) + b1 * Jx(i+1,j)+ b2* Jx(i+2,j)
}
- Pour j parcourant toutes les lignes {
Jx(n,,j) = (a7+a8) * I(n,,j)+((b1+b2) * (a7=a8)/(1-b1-b2)) * I(n,j);
Jx(n-1 ,j) = (a7 + a8) *(I(n,,j)+b1 * T(n,j)
+(b2*(a7 + a8)/(1-b1-b2)) * I(n1,j);
- Pour i parcourant toutes les colonnes par ordre décroissant
sauf les deux dernières (
Jx(i,,j)=a7*I(i+1,,j)+a8 * I(i+2,,j) + b1 * Jx(i+1,,j) + b2 * Jx(i+2,,j) :
}
- Pour tous les points de l'image, faire
Jx(i,j) = Jx(i,j) + T(i,j) Le lissage en y est le même qu'en x, en inversant i et j.
Dans cet algorithme l(i,j) désigne la luminance du point de l'image situé au croisement de la colonne J et de la ligne i.
Annexe 2:
Calcul du module du aradient
Dérivation en x
Image d'entrée I flottante, image de sortie Jx flottante
Image de travail T flottante
Les coordonnées varient entre 1 et n inclus
-b1 = 2.0*exp (-alpha):
b2= -exp(-2.0*alpha) :
cI= -(1.0 - exp (-alpha))*(1.0 - exp (-alpha));
- Pour j parcourant toutes les lignes {
T(1,,j) = 1(1 ,,j) + ((b1 + b2)/(1-b1-b2)) * I(1,,j):
T(2,j) = 1(1 "j) + bî * T(1 "j) + (b2/(1 -b1-b2)) * 1(1 ,,j)::
- Pour i parcourant toutes les colonnes sauf les deux premières {
T(i,,j) = I(i=1,,j) + b1 * T(i-1,j) + b2 * T(i-2,,j)
}
}
- Pour j parcourant toutes les lignes {
Jx(n,j) = -I(n,j) - ((b1 + b2)/(1-b1-b2)) * I(n,j):
Jx(n-1,j) = -I(n,j) + b1 * Jx(n,j) - (b2/(1-b1-b2))*I(n-1,,j);
- pour i parcourant toutes les colonnes par ordre décroissant sauf les deux dernières {
Jx(i,j) = -I(i+1,j) + b1 * Jx(i+1,j) + b2 * Jx(i+2,j)
}
}
- Pour tous les points de l'image, faire
Jx(i,j) = cl * (Jx(i,j) + T(i,j))
La dérivation en y est la même qu'en x, en inversant i et j.
Calcul du module du aradient
Dérivation en x
Image d'entrée I flottante, image de sortie Jx flottante
Image de travail T flottante
Les coordonnées varient entre 1 et n inclus
-b1 = 2.0*exp (-alpha):
b2= -exp(-2.0*alpha) :
cI= -(1.0 - exp (-alpha))*(1.0 - exp (-alpha));
- Pour j parcourant toutes les lignes {
T(1,,j) = 1(1 ,,j) + ((b1 + b2)/(1-b1-b2)) * I(1,,j):
T(2,j) = 1(1 "j) + bî * T(1 "j) + (b2/(1 -b1-b2)) * 1(1 ,,j)::
- Pour i parcourant toutes les colonnes sauf les deux premières {
T(i,,j) = I(i=1,,j) + b1 * T(i-1,j) + b2 * T(i-2,,j)
}
}
- Pour j parcourant toutes les lignes {
Jx(n,j) = -I(n,j) - ((b1 + b2)/(1-b1-b2)) * I(n,j):
Jx(n-1,j) = -I(n,j) + b1 * Jx(n,j) - (b2/(1-b1-b2))*I(n-1,,j);
- pour i parcourant toutes les colonnes par ordre décroissant sauf les deux dernières {
Jx(i,j) = -I(i+1,j) + b1 * Jx(i+1,j) + b2 * Jx(i+2,j)
}
}
- Pour tous les points de l'image, faire
Jx(i,j) = cl * (Jx(i,j) + T(i,j))
La dérivation en y est la même qu'en x, en inversant i et j.
Annexe 3 Alaorithme de lissage du module du aradient.
Entrée:
I, image numérique à éroder;
J, image conditionnante;
/*L'érosion est calculée directement dans I * /
/ * En dehors de I, les pixels ont la valeur mode I
Sortie:
limage numérique érodée.
I, image numérique à éroder;
J, image conditionnante;
/*L'érosion est calculée directement dans I * /
/ * En dehors de I, les pixels ont la valeur mode I
Sortie:
limage numérique érodée.
Faire indéfiniment {
Parcourir D1 en sens vidéo {
Soit p le pixel courant;
I(p) #min{I(p), I(p+u1), I(p+u2), I(p+u3)};
I(p) #max{J(p),I(p)
}
Si I n'a pas été modifiée, exit
Parcourir D1 en sens vidéo inverse {
Soit p le pixel courant;
I(p) #min{I(p), I(p+u4),I(p+u5),I(p+u0)};
I(p) #max{J(p),I(p)};
}
Si i n'a pas été modifiée, exit }
Notation : Dl représente I' ensemble des pixels de l'image I. uo à ug les décalages dans l'image des pixels voisins du pixel p.
Parcourir D1 en sens vidéo {
Soit p le pixel courant;
I(p) #min{I(p), I(p+u1), I(p+u2), I(p+u3)};
I(p) #max{J(p),I(p)
}
Si I n'a pas été modifiée, exit
Parcourir D1 en sens vidéo inverse {
Soit p le pixel courant;
I(p) #min{I(p), I(p+u4),I(p+u5),I(p+u0)};
I(p) #max{J(p),I(p)};
}
Si i n'a pas été modifiée, exit }
Notation : Dl représente I' ensemble des pixels de l'image I. uo à ug les décalages dans l'image des pixels voisins du pixel p.
Annexe 4.
Etape de tri.
- Entrée : I, Image numérique;
-Sortie: HC, histogramme cumulé;
It, tableau trié (pointeur de) de pixels défini sur D(l):
Initialisations:
- hmin,hmax: extrema de gris dans I;
- Hi tableau à valeurs entières indexées sur [hmin,hma];
- Quel que soit h appartenant à [hmin,hmax], Hi[h)] # 0; -HC, [hmin] #O; # Pour tout pixel p E D(l) ( /*Histogramme */
Hi[l(p)] v Hi [I(p)] + 1 ;
}
Pour h = hmin + 1 à hmax ( I*Histogramme cumulé I
HC[h] # HC[h-1] + H [h-1];
}
# Pour tout pixel p E D (I) ( /* Tri proprement dit I
It (HC[ I(p) ]) # pointeur vers p out;;
/*Mise à jour de
l'histogramme cumulé:*/; HC[I(p)] # HC [I(p)] + 1 ;
Notation : D[l]: Ensemble des pixels de l'image I
D[J] : Ensemble des pixels de l'image J
N[i] : Ensemble des pixels de la zone géodésique
asssocié au point i (ensemble des points voisins)
Etape d'inondation.
-Sortie: HC, histogramme cumulé;
It, tableau trié (pointeur de) de pixels défini sur D(l):
Initialisations:
- hmin,hmax: extrema de gris dans I;
- Hi tableau à valeurs entières indexées sur [hmin,hma];
- Quel que soit h appartenant à [hmin,hmax], Hi[h)] # 0; -HC, [hmin] #O; # Pour tout pixel p E D(l) ( /*Histogramme */
Hi[l(p)] v Hi [I(p)] + 1 ;
}
Pour h = hmin + 1 à hmax ( I*Histogramme cumulé I
HC[h] # HC[h-1] + H [h-1];
}
# Pour tout pixel p E D (I) ( /* Tri proprement dit I
It (HC[ I(p) ]) # pointeur vers p out;;
/*Mise à jour de
l'histogramme cumulé:*/; HC[I(p)] # HC [I(p)] + 1 ;
Notation : D[l]: Ensemble des pixels de l'image I
D[J] : Ensemble des pixels de l'image J
N[i] : Ensemble des pixels de la zone géodésique
asssocié au point i (ensemble des points voisins)
Etape d'inondation.
# define MASK -2 /*valeur initiale affectée à chaque niveau I # define WSHED 0 /*valeur finale des pixels de la LPE*/
# define INIT -1 /*valeur initiale des pixels de j*/
# define INQUEUE -3 /*valeur d'un pixel lors de son insertion dans la
file - Entrée : I, image numérique;
- Sortie : J, image des bassins versants étiquetés;
LABELS : 1 1,2,3, etc. Les pixels de contour sont mis à
WSHED=0 . Initialisation:
- # p # D(j), j(p) = INIT ;
- label courant = 0;
- flag: variable booléenne;
# Tri des pixels de I par ordre croissant de niveau de gris.
# define INIT -1 /*valeur initiale des pixels de j*/
# define INQUEUE -3 /*valeur d'un pixel lors de son insertion dans la
file - Entrée : I, image numérique;
- Sortie : J, image des bassins versants étiquetés;
LABELS : 1 1,2,3, etc. Les pixels de contour sont mis à
WSHED=0 . Initialisation:
- # p # D(j), j(p) = INIT ;
- label courant = 0;
- flag: variable booléenne;
# Tri des pixels de I par ordre croissant de niveau de gris.
Soit hmin et hmax les valeurs extrémales de I; .Pour h = hmin à hmax {
/* SKIZ géodésique du niveau
h-1 dans le niveau h*/
- Pour tout pixel p tel que I (p) ) h {
/* Sélectionner ces pixels*/ J(p)=MASK;
/*Si il existe au moins un voisin de p
qui a déjà été traité I
Si il existe p' E N (p) tel que J (p') > 0 ou J (p') = WSHED
{
/* Mettre p dans la file d'attente*/
J(p) = INQUEUE ; fifo~add (p)
}
}
/"Tant que la file d'attente n'est pas vide faire I - Tant que fifo~empthy()=faux
{
p#fifo~first(); /*prise du premier élément de la file
d'attente
Pour tout pixel p'E N (p) {
Si J (p') > 0 { /*p' appartient à un bassin déjà étiqueté I
Si(J(p)=lNQUEUE ou (J(p)=WSHED et flag = vrai))
/*il appartient à la même zone I
J(p)=J(p');
sinon si (J(p) > 0 et J(p)/=J(p')){/*C'est un point de contour*/
J(p)=WSHED ; flag = faux;
}
}
Sinon si (J(p') = WSHED (
Si J (p) = INQUEUE (/*C'est en principe un point de contour*/
J(p)=WSHED;FLAG = vrai;
}
}
Sinon si J(p')=MASK { /*point pas encore traiter*/
J(p')=lNQUEUE ; fifo-add(p');
}
}
}
/*De nouveau minima sont-ils apparus*/ - Pour tout pixel p tel que l(p) = h (
Si J(p)=MASK {
label courant=label courant + 1
fifo~add (p) /*prise du premier élément de la pile I
J(p)#label-courant; /*L'affecter au nouveau label I
/*affecter à tous ces voisins non traite
le même label*/
Tant que fifo~empty()=faux {
p'=fifo~first();
Pour tout pixel p" sN(p') (
Si J(p")=MASK{fifo~add(p");J(p")=lable~courant; { J
}
}
}
}
Nota:LPE=ligne de partage des eaux
N(p) = image courante
SKIZ= squelette des zones d'influence de régions formant les lignes frontières.
/* SKIZ géodésique du niveau
h-1 dans le niveau h*/
- Pour tout pixel p tel que I (p) ) h {
/* Sélectionner ces pixels*/ J(p)=MASK;
/*Si il existe au moins un voisin de p
qui a déjà été traité I
Si il existe p' E N (p) tel que J (p') > 0 ou J (p') = WSHED
{
/* Mettre p dans la file d'attente*/
J(p) = INQUEUE ; fifo~add (p)
}
}
/"Tant que la file d'attente n'est pas vide faire I - Tant que fifo~empthy()=faux
{
p#fifo~first(); /*prise du premier élément de la file
d'attente
Pour tout pixel p'E N (p) {
Si J (p') > 0 { /*p' appartient à un bassin déjà étiqueté I
Si(J(p)=lNQUEUE ou (J(p)=WSHED et flag = vrai))
/*il appartient à la même zone I
J(p)=J(p');
sinon si (J(p) > 0 et J(p)/=J(p')){/*C'est un point de contour*/
J(p)=WSHED ; flag = faux;
}
}
Sinon si (J(p') = WSHED (
Si J (p) = INQUEUE (/*C'est en principe un point de contour*/
J(p)=WSHED;FLAG = vrai;
}
}
Sinon si J(p')=MASK { /*point pas encore traiter*/
J(p')=lNQUEUE ; fifo-add(p');
}
}
}
/*De nouveau minima sont-ils apparus*/ - Pour tout pixel p tel que l(p) = h (
Si J(p)=MASK {
label courant=label courant + 1
fifo~add (p) /*prise du premier élément de la pile I
J(p)#label-courant; /*L'affecter au nouveau label I
/*affecter à tous ces voisins non traite
le même label*/
Tant que fifo~empty()=faux {
p'=fifo~first();
Pour tout pixel p" sN(p') (
Si J(p")=MASK{fifo~add(p");J(p")=lable~courant; { J
}
}
}
}
Nota:LPE=ligne de partage des eaux
N(p) = image courante
SKIZ= squelette des zones d'influence de régions formant les lignes frontières.
Annexe 5.
Recherche du déplacement.
-Entrée: N = Image courante,
S = Image N segmentée,
Ireg = liste des régions de S,
M = image antérieure (exemple image N-1),
- Sortie: Ireg = liste des régions avec le champ déplacé
renseigné.
S = Image N segmentée,
Ireg = liste des régions de S,
M = image antérieure (exemple image N-1),
- Sortie: Ireg = liste des régions avec le champ déplacé
renseigné.
Pour toute région reg de reg {
-ê. rechercher la fenêtre exinscrite de
reg/Entrée=S,reg/Sortie=fen(position,taille)
~. effectuer la corrélation de D[N,fen] avec l'image M:
-Entrée=fen,N,M
-Sortie = Nap
- Pour tout déplacement dep=dx,dy E D[c] (
* Pour tout pixel p (x,y) E D[N,fen] (
soit p' le pixel de même position E D[M,fen+dep]
corr = corr + abs( N(p)- M(p')) J
*Nap[dep] = corr J ~. le déplacement de la région reg correspond à la position du minimum de la nappe de corrélation puisque la métrique choisie ici est la valeur absolue des différences.
-ê. rechercher la fenêtre exinscrite de
reg/Entrée=S,reg/Sortie=fen(position,taille)
~. effectuer la corrélation de D[N,fen] avec l'image M:
-Entrée=fen,N,M
-Sortie = Nap
- Pour tout déplacement dep=dx,dy E D[c] (
* Pour tout pixel p (x,y) E D[N,fen] (
soit p' le pixel de même position E D[M,fen+dep]
corr = corr + abs( N(p)- M(p')) J
*Nap[dep] = corr J ~. le déplacement de la région reg correspond à la position du minimum de la nappe de corrélation puisque la métrique choisie ici est la valeur absolue des différences.
Notation
D[N] : ensemble des pixels de l'image N
D[M] : ensemble des pixels de l'image M reg : une région de l'image S fen : la fenêtre exinscrite à reg définie par une position et une taille
Nap : nappe de corrélation (tableau bi-dimensionnel)
Nap(dep): valeur de corrélation pour un déplacement dep=(dx,dy)
D[C] : domaine de corrélation=tout déplacement bidimensionnel compris
entre 2 excursions horizontales (-Hx,+Hx) et verticales (-Vx,+Vy)
D[N,fen]: ensemble des pixels de l'image N appartenant à la fenêtre fen D[N,fen+dep] : ensemble des pixels de l'image M appartenant à la fenêtre
fen translatée du déplacement dep.
D[N] : ensemble des pixels de l'image N
D[M] : ensemble des pixels de l'image M reg : une région de l'image S fen : la fenêtre exinscrite à reg définie par une position et une taille
Nap : nappe de corrélation (tableau bi-dimensionnel)
Nap(dep): valeur de corrélation pour un déplacement dep=(dx,dy)
D[C] : domaine de corrélation=tout déplacement bidimensionnel compris
entre 2 excursions horizontales (-Hx,+Hx) et verticales (-Vx,+Vy)
D[N,fen]: ensemble des pixels de l'image N appartenant à la fenêtre fen D[N,fen+dep] : ensemble des pixels de l'image M appartenant à la fenêtre
fen translatée du déplacement dep.
Claims (4)
1. Procédé de mesure de déplacements dans une séquence d'images caractérisé en ce qu'il consiste à segmenter (1, 2, 3) chaque image en régions homogènes en délimitant chaque région par les lignes de crête du relief formé par le gradient de luminance de chaque point de l'image, et à mesurer (6, 7, 8) le déplacement d'une région entre une image N et une autre image M de la même séquence par déplacement et corrélation dans l'image M d'une fenêtre exinscrite à la région dans l'image N.
2. Procédé selon la revendication 1 caractérisé en ce que la segmentation de chaque image en régions homogènes consiste à calculer (1) I'image du module du gradient de luminance des points de l'image, à lisser (2) I'image du module du gradient obtenue et à appliquer (3) un opérateur de morphologie dit de partage des eaux pour repérer les lignes de crêtes présentes dans l'image du modèle du gradient.
3. Procédé selon la revendication 2 caractérisé en ce que l'image du module du gradient est obtenue à l'aide d'un filtre récursif de Canny
Deriche.
4. Procédé selon l'une quelconque des revendications 1 à 3 caractérisé en ce qu'il consiste à regrouper les régions qui ont un mouvement cohérent (9) et à classer les régions (11) selon leur déplacement en fonction de leur taille et de leur position dans l'image de façon à obtenir une détection automatique d'objets mobiles par rapport au fond de l'image.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9508509A FR2736742B1 (fr) | 1995-07-13 | 1995-07-13 | Procede de mesure de deplacements dans une sequence d'images |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9508509A FR2736742B1 (fr) | 1995-07-13 | 1995-07-13 | Procede de mesure de deplacements dans une sequence d'images |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR2736742A1 true FR2736742A1 (fr) | 1997-01-17 |
| FR2736742B1 FR2736742B1 (fr) | 1997-08-08 |
Family
ID=9480976
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR9508509A Expired - Fee Related FR2736742B1 (fr) | 1995-07-13 | 1995-07-13 | Procede de mesure de deplacements dans une sequence d'images |
Country Status (1)
| Country | Link |
|---|---|
| FR (1) | FR2736742B1 (fr) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1998058349A3 (fr) * | 1997-06-18 | 1999-03-11 | Korea Electronics Telecomm | Procede de mesure d'un gradient spatial a l'aide d'informations couleur |
| FR2890451A1 (fr) * | 2005-09-02 | 2007-03-09 | Sagem Defense Securite | Procede de detection d'un objet par traitement spatio-temporel et dispositif de mise en oeuvre du procede |
| CN115526896A (zh) * | 2021-07-19 | 2022-12-27 | 中核利华消防工程有限公司 | 一种火灾防控的方法、装置、电子设备及可读存储介质 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3903357A (en) * | 1971-12-06 | 1975-09-02 | Westinghouse Electric Corp | Adaptive gate video gray level measurement and tracker |
| US4053929A (en) * | 1969-04-07 | 1977-10-11 | The United States Of America As Represented By The Secretary Of The Army | Contour fitting pictorial tracking gate |
-
1995
- 1995-07-13 FR FR9508509A patent/FR2736742B1/fr not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4053929A (en) * | 1969-04-07 | 1977-10-11 | The United States Of America As Represented By The Secretary Of The Army | Contour fitting pictorial tracking gate |
| US3903357A (en) * | 1971-12-06 | 1975-09-02 | Westinghouse Electric Corp | Adaptive gate video gray level measurement and tracker |
Non-Patent Citations (1)
| Title |
|---|
| JUNGHYUN HWANG ET AL.: "A Motion/Shape Estimation of multiple objects using an advanced contour matching technique", IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, vol. E77-D, no. 6, TOKYO JP, pages 676 - 685, XP000468522 * |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1998058349A3 (fr) * | 1997-06-18 | 1999-03-11 | Korea Electronics Telecomm | Procede de mesure d'un gradient spatial a l'aide d'informations couleur |
| FR2890451A1 (fr) * | 2005-09-02 | 2007-03-09 | Sagem Defense Securite | Procede de detection d'un objet par traitement spatio-temporel et dispositif de mise en oeuvre du procede |
| EP1772743A1 (fr) * | 2005-09-02 | 2007-04-11 | Sagem Defense Securite | Procédé de détection d'un objet par traitement spatio-temporel et dispositif de mise en oeuvre du procédé |
| CN115526896A (zh) * | 2021-07-19 | 2022-12-27 | 中核利华消防工程有限公司 | 一种火灾防控的方法、装置、电子设备及可读存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2736742B1 (fr) | 1997-08-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Patil et al. | Motion saliency based generative adversarial network for underwater moving object segmentation | |
| EP3572976A1 (fr) | Procede de traitement d'un flux d'images video | |
| Amoon et al. | New method for ship detection in synthetic aperture radar imagery based on the human visual attention system | |
| Soloy et al. | A fully automated method for monitoring the intertidal topography using Video Monitoring Systems | |
| Singh et al. | Adaptive binarization of severely degraded and non-uniformly illuminated documents | |
| CN114373130A (zh) | 一种天基红外暗弱小运动目标检测方法 | |
| Patel et al. | Depthwise convolution for compact object detector in nighttime images | |
| Fazlali et al. | Single image rain/snow removal using distortion type information | |
| CN115861134B (zh) | 一种天基背景下星图处理方法 | |
| FR2736742A1 (fr) | Procede de mesure de deplacements dans une sequence d'images | |
| Kalsotra et al. | Morphological based moving object detection with background subtraction method | |
| Wu et al. | Overview of video-based vehicle detection technologies | |
| Peli et al. | Morphology-based algorithms for target detection/segmentation in FLIR imagery | |
| Ogor et al. | SAR image segmentation by mathematical morphology and texture analysis | |
| Susmitha et al. | Recognition and extraction of rain drops in an image using hough transform | |
| Hamedivafa | Application of an improved method of image segmentation and some considerations on identification and tracking of umbral dots | |
| Plosz et al. | Fast multiscale 3d reconstruction using single-photon lidar data | |
| Truong et al. | A Study on Visual Saliency Detection in Infrared Images Using Boolean Map Approach. | |
| Ghahremani et al. | Water region extraction in thermal and RGB sequences using spatiotemporally-oriented energy features | |
| CN104933714A (zh) | 一种基于上下文关系的sar遥感场景溢油分割检测方法 | |
| Premaratne et al. | What constitute an effective edge detection algorithm? | |
| Kalsotra et al. | Threshold-based moving object extraction in video streams | |
| Kumar | An effective object detection via BS2ResNet and LTK-Bi-LSTM | |
| CN119625046B (zh) | 一种基于改进边缘检测的溢油面积测算方法 | |
| Hird et al. | A comparison of target detection and segmentation techniques |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| CD | Change of name or company name | ||
| ST | Notification of lapse |