FR2725059A1 - Procede de detection de mouvement et procede d'estimation de la vitesse d'un objet mobile dans une suite d'images, et dispositif pour la mise en oeuvre de ce procede - Google Patents
Procede de detection de mouvement et procede d'estimation de la vitesse d'un objet mobile dans une suite d'images, et dispositif pour la mise en oeuvre de ce procede Download PDFInfo
- Publication number
- FR2725059A1 FR2725059A1 FR8618424A FR8618424A FR2725059A1 FR 2725059 A1 FR2725059 A1 FR 2725059A1 FR 8618424 A FR8618424 A FR 8618424A FR 8618424 A FR8618424 A FR 8618424A FR 2725059 A1 FR2725059 A1 FR 2725059A1
- Authority
- FR
- France
- Prior art keywords
- zone
- value
- points
- image
- point
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/254—Analysis of motion involving subtraction of images
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Closed-Circuit Television Systems (AREA)
Abstract
L'invention concerne notamment un procédé de détection de mouvement dans une suite d'images, ayant un fond fixe ou recalé, chaque point d'image étant représenté par la valeur de sa luminance. Il consiste, pour chaque image, à: - faire une première estimation de l'état des points, les points en mouvement pouvant avoir un mouvement vrai ou un mouvement dû au bruit; - attribuer à des zones, les points en mouvement qui sont connexes, chaque zone étant repérée par un numéro Zi ; - à caractériser chaque zone Zi par les composantes d'un vecteur E(Zi ) dit vecteur d'état, fonction des points attribués à cette zone; - à rechercher, pour chaque zone (Z17 ) de l'image considérée, s'il existe des zones (Z12 , Z8 ) homologues à celle-ci (Z17 ) dans les images précédant l'image considérée, et en déduire une valeur dite d'ancienneté de cette zone (Z17 ); - à conclure qu'un point a un mouvement vrai, non dû au bruit, si la zone (17) à laquelle il appartient, contient un nombre de points supérieur à un seuil fixé et si elle a une ancienneté supérieure à un seuil fixé. Le procédé d'estimation de la vitesse, selon l'invention, consiste notamment à détecter les zones de points en mouvement vrai, par ce procédé. Application au suivi temporel d'un objet mobile dans une suite d'images, et aux traitements d'image dans le domaine de la télévision professionnelle.
Description
I Procédé de détection de mouvement et procédé d'estimation de la vitesse
d'un objet mobile dans une suite d'images, et dispositif pour la mise en oeuvre de ce procédé L'invention concerne un procédé de détection de mouvement et un procédé d'estimation de la vitesse d'un objet mobile, dans une suite d'images, ces images ayant un fond fixe ou recalé. Elles sont analysées, ligne par ligne et point par point, échantillonnées et numérisées, chaque point étant représenté par la valeur de sa luminance. Un point d'image est dit en mouvement lorsque sa valeur de luminance est différente de celle du point homologue dans une image dite de référence précédant l'image à laquelle appartient le point considéré. Cette valeur de luminance peut être différente soit parce qu'elle est affectée par du bruit, soit parce que la suite d'images représente un objet en mouvement. La détection du mouvement vise à discriminer les points qui ont un mouvement vrai et les points qui sont fixes ou qui ont un mouvement dû au bruit. Un tel procédé a de nombreuses applications, notamment la réduction du bruit dans une
suite d'images de télévision ou le suivi temporel d'un objet en mouvement.
Dans cette dernière application, il est particulièrement important de réaliser une détection fiable des zones de points ayant un mouvement vrai car toute fausse détection, correspondant à des points du fond de
l'image, perturbe le suivi temporel de l'objet. Dans cette même applica-
tion, il est important aussi de réaliser une estimation fiable de la vitesse de translation de l'objet représenté par les points en mouvement vrai, malgré le bruit et malgré d'éventuels masquages partiels ou totaux de
l'objet par des obstacles fixes, pendant certaines périodes de son mouve-
ment. Le bruit vient essentiellement du dispositif d'analyse de la suite d'image et du dispositif de quantification des valeurs de luminance, et est particulièrement important lorsqu'il s'agit d'images ayant un très faible contraste. Un premier but de l'invention est de proposer un procédé de détection de mouvement très fiable pour de telles images. Un second but de l'invention est de proposer un procédé d'estimation de la vitesse d'un objet représenté par les points d'image, qui donne une estimation fiable même pour une suite d'images à faible contraste et pour un objet subissant
des masquages temporaires.
Un premier objet de l'invention est un procédé de détection de mouvement comprenant deux parties principales. Une première partie du procédé de détection du mouvement, selon l'invention, exploite le fait que les points ayant un mouvement vrai sont en général groupés dans des zones de grande taille alors que les points ayant un mouvement dû au bruit sont soit isolés, soit groupés dans des zones de petite taille. Le regroupement des points en mouvement qui sont connexes nécessite de traiter tous les points d'une image avant de pouvoir conclure sur l'état d'un point quelconque de cette image, puisqu'une zone peut apparaître comme étant de petite taille pendant la majeure partie de la durée de ce traitement puis s'avérer être une zone de taille importante à la fin de ce traitement. Pour alléger la mise en oeuvre de cette première partie, il est prévu une étape préliminaire appelée prédétection de mouvement et permettant d'éliminer les points qui en aucun cas ne
pourront s'avérer avoir un mouvement vrai à la fin du traitement.
Une seconde partie du procédé de détection de mouvement, selon l'invention exploite, le fait que chaque zone de points en mouvement vrai existe pendant une durée correspondant à plusieurs images successives. En général, une zone de points en mouvement vrai se déplace relativement peu d'une image à la suivante. Elle a donc, en général, une intersection
non nulle avec une zone homologue dans l'image de référence.
Un second objet de l'invention est un procédé d'estimation de la
vitesse d'un objet, consistant notamment à détecter les points en mouve-
ment vrai représentant cet objet, en mettant en oeuvre le procédé de détection de mouvement selon l'invention. L'invention a aussi pour objet
des dispositifs pour la mise en oeuvre de ces deux procédés.
Selon l'invention, un procédé de détection de mouvement dans une suite d'images, ayant un fond fixe ou recalé, chaque image étant balayée, échantillonnée et numérisée, ligne par ligne et point par point, chaque point d'image étant représenté par la valeur de sa luminance, est caractérisé en ce qu'il consiste, pour chaque image, à: - attribuer à des zones, au fur et à mesure du balayage d'une image, les points, dits points en mouvement, dont la valeur de luminance est différente de celle de leurs points homologues dans une image précédente dite image de référence, avec un écart supérieur à un seuil fixé, chaque zone regroupant des points connexes en mouvement et étant représentée par un numéro Zi; caractériser chaque zone Zi par les composantes d'un vecteur E(Zi) dit vecteur d'état, fonction des points attribués à cette zone; comportant notamment le nombre N(Zi) des points attribués à la zone Zi; - rechercher, pour chaque zone Zi de l'image courante, s'il existe des zones homologues de la zone Zi dans les images précédant l'image courante, et en déduire une valeur appellée ancienneté de cette zone; - considérer qu'un point a un mouvement vrai, non dû au bruit, si la zone à laquelle il appartient, contient un nombre de points supérieur à
un seuil fixé et si elle a une ancienneté supérieure à un seuil fixé.
L'invention sera mieux comprise et d'autres détails apparaîtront à
l'aide de la description ci-dessous et des figures l'accompagnant:
- les figures 1 à 6 illustrent la mise en oeuvre d'une première partie du procédé de détection de mouvement selon l'invention, sur un premier exemple d'image; - les figures 7a à 7c illustrent la mise en oeuvre d'une seconde partie du procédé de détection de mouvement, selon l'invention, sur une suite de trois images; - les figures 8 à 11 et 13 à 15 représentent le schéma synoptique d'un exemple de réalisation d'un dispositif de détection de mouvement et d'estimation de vitesse, selon l'invention;
- la figure 12 représente un tableau logique illustrant le fonc-
tionnement d'une partie de cet exemple de réalisation;
- les figures 16 à 20 représentent des organigrammes du pro-
gramme de fonctionnement d'une partie de cet exemple de réalisation.
La mise en oeuvre des deux procédés selon l'invention nécessite tout d'abord de choisir la durée de l'intervalle de temps séparant l'image de référence de l'image courante. Cet intervalle dépend de la vitesse de déplacement. Plus elle est lente, plus l'intervalle doit être long pour que le déplacement ait une valeur significative. Plus la vitesse est rapide, plus l'intervalle doit être court pour éviter de saisir tardivement les variations de vitesse de l'objet à suivre. Par exemple, la durée de l'intervalle peut être fixée à 3 intervalles inter-images. Le rythme de traitement des images peut être choisi égal à une image sur 3, afin que chaque image courante devienne image de référence après un retard fixe. La quantité d'informations à stocker est alors minimale. Une autre possibilité consiste à traiter toutes les images pour saisir sans délai les variations de vitesse de l'objet à suivre. Dans ce cas, si la durée de l'intervalle choisie est
fixée, il est nécessaire de prévoir le stockage des informations correspon-
dant à toutes les images situées entre l'image de référence et l'image courante. Il faut alors des mémoires de capacité très importante. Une solution intermédiaire, qui est celle choisie pour l'exemple de mise en oeuvre décrit ci-dessus, consiste à prévoir une durée d'intervalle variable entre une valeur minimale et une valeur maximale. Dans cet exemple, la durée de l'intervalle croît périodiquement de 3 à 5, après une phase d'initialisation, conformément au tableau ci-dessous:
TABLEAU n 1
numéro de l'image numéro de l'image Intervalle (ICR) entre l'image courante de référence courante et l'image de référence
1
2 I 1
3 1 2
4 1I 3
2 3
6 2 4
7 2 5
8 5 3
9 5 4
5 5
11 8 3
12 8 4
13 8 5
Les pointillés indiquent la fin de la phase d'initialisation. Il apparaît que chaque image de référence est utilisée comme référence pour trois images courantes et que pendant l'intervalle entre l'image courante et Pimage de référence, il est nécessaire de stocker les informations correspondant à une seule image intermédiaire. Par exemple, pendant que l'image n 2 est l'image de référence, il faut stocker, en plus des informations de l'image n 2, celles de l'image n 5 car elles seront utilisées plus tard. Dans l'exemple de mise en oeuvre considéré, les images sont des
images de télévision classique constituées chacune de deux trames entre-
lacées, une trame impaire et une trame paire. Le procédé est appliqué uniquement sur des trames impaires. La suite d'images qui est considérée est donc constituée alors de la suite des trames impaires seulement. Le
traitement des trames paires nécessiterait une mémoire de trame supplé-
mentaire. L'intervalle entre les trames impaires procure un temps très utile pour réaliser tous les calculs nécessaires pour le traitement d'une trame. Dans un exemple de mise en oeuvre du procédé de détection de mouvement, selon l'invention, la prédétection de mouvement consiste à mettre en oeuvre un procédé connu, décrit dans la demande de brevet européen 0 113 269, mais il est possible de mettre en oeuvre tout autre procédé de discrimination du mouvement vrai et du mouvement dO au bruit, dans le but d'éliminer les point dont le mouvement est très probablement dû au bruit. Il est même possible de supprimer cette prédétection au prix d'une plus grande difficulté de regroupement des points connexes en mouvement, dans des zones, puisque le traitement est alors alourdi par l'augmentation du nombre de zones à traiter, les petites
zones dûes au bruit étant nombreuses.
Ce procédé connu consiste tout d'abord à détecter les points en mouvement, en comparant la valeur de luminance de chaque point par rapport à celle du point homologue dans une image précédente, dite image de référence. Si la valeur absolue de la différence de leurs luminances est
supérieure à une valeur de seuil fixée P, le point est dit en mouvement.
Ce mouvement peut être dû au bruit ou il peut être vrai. La prédétection consiste ensuite, pour chaque point en mouvement: - à déterminer un minorant Nz du nombre de points d'une zone constituée de points en mouvement connexes, o est situé le point considéré; - à faire une première estimation de l'état du point considéré, en comparant la valeur Nz par rapport à une valeur NS2 fixée, l'Pétat du point considéré étant estimé être un mouvement vrai si Nz est supérieur à NS2, et un mouvement dû au bruit si Nz est inférieur ou égal à NS2; - à faire, pour j = 2 à p-l, j et p étant des nombres entiers, et p étant un nombre inférieur ou égal à NS2, une jiême estimation de l'état du point considéré en fonction de l'état, estimé précédemment, des points en mouvement connexes au point considéré et appartenant à la même ligne ou à la ligne suivante; - à faire une pème estimation de l'état du point considéré en
fonction de l'état estimé précédemment de N' points suivant immédiate-
ment le point considéré sur la même ligne, et N' étant un nombre entier fixé tel que N' est supérieur ou égal à NS2 - p; l'état du point considéré étant estimé être un mouvement vrai s'il a précédemment été estimé mouvement vrai ou s'il y a parmi les N' points suivants au moins un point en mouvement connexe au point considéré, et s'il y a parmi ces points en mouvement connexes au point considéré au moins un point en mouvement vrai; et le point considéré étant estimé être en mouvement dû au bruit dans les autres cas; - et à discriminer les points en mouvement vrai et les points en mouvement dû au bruit selon le résultat de la dernière estimation réalisée. Dans un exemple de mise en oeuvre de cette prédétection de mouvement, l'estimation de l'état de chaque point d'une image est réalisée en faisant successivement cinq estimations, chaque estimation étant plus certaine que l'estimation réalisée précédemment. Le nombre exact de points contenus dans une zone n'est pas déterminé, mais la prédétection détermine si ce nombre est supérieur à NS2, lequel est égal par exemple à 6. Pour cela la durée de la prédétection le traitement s'étend sur un nombre NS2 + 1 = 7 lignes d'image, ce qui est très inférieur au nombre total de lignes d'une image. A l'issue de ce traitement chaque point de l'image est représenté par une valeur binaire, égale à I si le point est estimé être probablement en mouvement vrai ou égale à 0 si le point est
estimé être fixe ou avoir un mouvement certainement dû au bruit.
La figure I représente les valeurs binaires résultant de ce traitement pour un exemple d'image. Les figures 2 à 6 illustrent la mise en oeuvre de la partie du procédé regroupant les points en mouvement
dans des zones de points connexes.
Sur les figures I à 6, les abscisses X et les ordonnées Y sont constituées par le rang des points sur une ligne et par le rang de cette ligne dans la trame. Dans cet exemple, la trame comporte une seule zone
de points en mouvement connexes. Cette zone a une forme complexe.
Chaque figure 2 à 6 correspond à un instant donné et représente les numéros des zones auxquelles appartiennent les points de la trame ayant été traités jusqu'à l'instant considéré. Le numéro de zone attribué à un point peut varier d'un instant à un autre car il y a des créations de zones nouvelles, mais aussi des disparitions de zone lorsque deux zones s'avèrent être voisines et sont donc fusionnées en une seule portant un numéro unique. Le numéro de la zone à laquelle est attribué un point donné n'est donc définitif que lorsque tous les points d'une trame ont été traités. Les
règles de détermination de ce numéro de zone seront décrites plus loin.
Chaque zone est caractérisée au moyen d'un ensemble de valeurs appelées vecteur d'états, dont les composantes sont actualisées au fur et à mesure du traitement des points d'une trame. Le point considéré à un instant donné est appelé point courant et est noté PC. Le procédé d'attribution du point courant à une zone consiste: - à déterminer une valeur de numéro de zone, z(PC), désignant à l'instant considéré, une zone à laquelle le point courant est attribué, cette valeur z(PC) étant déterminée en fonction de la valeur Z, à l'instant considéré, du numéro de zone du point voisin précédant le point considéré sur la même ligne, et en fonction de la valeur Z', à l'instant considéré, du numéro de zone du point voisin homologue du point considéré sur la ligne précédente. S'il est en mouvement, le point courant peut être attribué à une zone nouvelle, ou à la zone Z, ou à la zone Z', ou à une zone fictive30 regroupant les points qui ne sont pas en mouvement. Eventuellement, la zone Z peut être absorbée par la zone Z' ou, inversement, la zone Z' peut
être absorbée par la zone Z. Les points qui ne sont pas en mouvement sont attribués à une zone fictive portant le numéro 0.
- à déterminer ensuite des valeurs dites actualisées, des numéros de zones de ces deux points voisins, en fonction des valeurs Z et Z', pour g tenir compte d'une éventuelle fusion de ces zones si elles sont connexes
par l'intermédiaire du point courant.
- à déterminer une valeur actualisée des composantes du vecteur d'état de la zone à laquelle le point courant est attribué, en fonction des valeurs Z et Z' des numéros de zone des deux points voisins, à Pinstant
considéré, et en fonction des valeurs, à l'instant considéré, des compo-
santes des vecteurs d'état des zones Z et Z' des deux points voisins, pour tenir compte de l'attribution du point courant à une zone et pour tenir compte de la fusion éventuelle de ces zones si elles sont connexes par
l'intermédiaire du point courant.
Les caractéristiques de chaque zone, et l'existence même de chaque zone ne peuvent être connues d'une manière définitive que lorsque
tous les points de l'image ont été attribués à une zone.
Le vecteur d'état E(Zi) d'une zone Zi comporte des premières composantes, notées Ei(Zi) et qui sont déterminées au fur et à mesure de l'attribution des points à des zones. Ce sont: - le nombre N(Zi) des points attribués à la zone; - la valeur maximale YMAX(Zi) et la valeur minimale YMIN(Zi) des coordonnées verticales des points attribués à la zone; - la valeur maximale XMAX(Zi) et la valeur minimale XMIN(Zi) des coordonnées horizontales des points attribués à la zone; - la somme SX(Zi) des coordonnées X des points attribués à la zone; - la somme SY(Zi) des coordonnées Y des points attribués à la zone; - une valeur binaire, appelée indicateur d'absorption et notée T(Zi), égale à 0 si la zone portant le numéro Zi n'a jamais absorbé une I
autre zone, et égale à I dans le cas contraire.
- une valeur binaire, appelée indicateur de disparition, et notée EAT(Z]), peut être prévue pour certaines applications. Elle prend la valeur 0 tant que la zone Zi existe et prend la valeur I lorsque la zone disparaît
par fusion dans une autre.
Les composantes SX(Zi), SY(Zi) et N(Zi) sont destinées à calculer les coordonnées (XG(Zi),YG(Zi)) du barycentre de la zone. Les valeurs
I I
maximales des coordonnées permettent de déterminer une enveloppe
rectangulaire délimitant la zone.
Le vecteur d'état E(Zi) comporte aussi des secondes composantes, notées E2(Zi), qui sont déterminées seulement à la fin de l'attribution de tous les points de la trame courante à des zones. Ce sont: - NZH(Zi), le nombre de points d'une zone de l'image de référence, qui est dite zone homologue la plus ancienne parmi les zones homologues à la zone Zi; - SXH(Zi) et SYH(Zi), respectivement la somme des coordonnées X et la somme des coordonnées Y des points de la zone homologue la plus
ancienne, homologue à Zi, et qui sont destinées à calculer les coor-
données du barycentre de cette zone; - ANC(Zi), appelée ancienneté de la zone Zi, indiquant depuis combien de temps il existe des zones homologues de la zone Zi dans la suite d'images - ELl(Zi), appelé bit indicateur d'élimination, qui est égal à 0 quand la zone Zi a un nombre de points suffisant et une ancienneté i suffisante pour être en mouvement vrai, et qui prend la valeur I lorsque les tests indiquent que l'une de ces valeurs est insuffisante et que, par conséquent, l'état de la zone ne doit pas être considéré comme un
mouvement vrai.
Pour stocker les valeurs des composantes du vecteur d'état de chaque zone de la trame courante et de chaque zone de la trame de référence, il est prévu une mémoire dite mémoire d'états dont une première partie est dédiée à la trame courante, une seconde partie est dédiée à la trame de référence, et une troisième partie est dédiée aux vecteurs d'états des zones d'une trame impaire intermédiaire entre la trame courante et la trame de référence, et qui servira de référence ultérieurement. Pour établir une correspondance entre chaque point d'image et la première valeur de numéro de zone, z(PC), attribuée à ce point à l'instant o il est le point courant, il est prévu une mémoire dite mémoires d'attente. Pour établir une correspondance entre la première valeur z(PC) de numéro de zone attribuée à un point et la valeur actualisée de ce numéro de zone, et pour mémoriser les fusions de zones qui sont réalisées au cours du traitement de tous les points d'une trame successivement, il est prévu une mémoire dite mémoire d'adresses qui fait correspondre à chaque valeur de numéro de zone Zi, une autre valeur Zh dite valeur actualisée, qui désigne une zone Zh résultant de la fusion de la zone Zi
avec la zone Zh, la zone Zi étant absorbée par la zone Zh.
Lors du processus récursif d'actualisation des zones, décrit ci-
après, des cascades de fusions de zones connexes sont opérées. Si, par exemple, une zone Zj absorbe ensuite la zone Zh, la zone résultante est caractérisée par un seul vecteur d'état E(Zj), stocké dans la mémoire d'états à l'adresse Zj. Pour que le numéro de zone Zh renvoie aussi à ce
vecteur d'état, la mémoire d'adresses contient la valeur Zj à l'adresse Zh.
La mémoire d'adresses permet donc un adressage indirect de la mémoire d'états. Pour toute zone de numéro z, qui n'est pas absorbée par une autre zone, la mémoire d'adresses fait correspondre l'adresse z à l'adresse z. La mémoire d'adresses comporte, comme la mémoire d'états, trois parties dédiées respectivement aux numéros de zone de la trame courante, de la trame de référence, et d'une trame intermédiaire qui sera ultérieurement
la trame de référence.
Dans cet exemple un numéro de zone égal à 0 est attribué aux points qui sont fixes ou qui ont un mouvement très probablement dû au
bruit, d'après la prédétection de mouvement.
Pour attribuer une première valeur de numéro de zone z(PC), désignant une zone à laquelle un point en mouvement est attribué, un exemple de mise en oeuvre du procédé selon l'invention distingue quatre cas, selon les valeurs des numéros de zone des points voisins du point courant. Dans ce qui suit, le point voisin du point courant et le précédant sur la même ligne sera appelé "point à gauche" et le point voisin du point courant appartenant à la ligne immédiatement précédente, sera appelé "point au-dessus". Ces désignations correspondent au cas, le plus courant,
o l'analyse de l'image est faite, de haut en bas et de gauche à droite.
Mais le procédé selon l'invention n'est évidemment pas limité à ce type de balayage. Le regroupement des points en mouvement connexes, est illustré par les figures 2 à 6, pour un exemple de portion d'image. Sur la figure 2, les points en mouvement sont représentés par des "1", et les points fixes sont représentés par des "0". Sur les figures 2 à 6 chaque point est représenté par un numéro de zone qui désigne la zone à laquelle il appartient à un instant donné. Les figures 2 à 6 correspondent à des instants successifs du traitement, c'est pourquoi certains points ont une valeur de numéro de zone qui varie cd'une figure à une autre, à cause des créations et des fusions de zone. Les quatre cas sont les suivants: ler cas: Le point voisin à gauche et le point voisin au-dessus appartiennent à la zone ayant 0 pour numéro, c'est-à- dire ne sont pas en mouvement. Le point courant ne pouvant pas être attribué à l'une de ces deux zones, il est attribué à une zone nouvelle, dont le numéro, Zd, est l'adresse d'une case mémoire disponible dans la mémoire d'adresses, dans la partie dédiée à la trame courante. Les valeurs des composantes du vecteur d'état de cette zone sont inscrites dans la partie de la mémoire d'états dédiée à la trame courante, à l'adresse Z.. Ces valeurs sont: I N(Zd) = 1 YMAX(Zd) = Y(PC) YMIN(Zd) = Y(PC) XMAX(Zd) = X(PC) (1) XMIN(Zd) = X(PC) SX(Zd) = X(PC) SY(Zd) = Y(PC) T(Zd) 0 o X(PC) et Y(PC) sont des coordonnées du point courant. La valeur z(PC)= Zd est inscrite dans la mémoire d'attente à une adresse correspondant au point courant, et dans la mémoire d'adresses à l'adresse Zd. Ce cas est rencontré aux points (X = 4, Y = 2) et (X = 3, Y = 3) sur
la figure 2.
2ème cas: Le point voisin à gauche du point courant est un point en mouvement qui appartient à une zone Z et le point voisin au-dessus n'est pas un point en mouvement. Le point courant étant connexe à une
zone déjà existante, il est attribué à cette zone.
Les valeurs des premières composantes El(Z)du vecteur d'état de la zone Z sont actualisées en inscrivant dans la mémoire d'états, à l'adresse Z dans la partie dédiée à la trame courante, les valeurs suivantes: Na(Z) = Np(Z) + 1 a p YMAXa(Z) = Maximum de (YMAXp(Z),Y(PC)) YMINa(Z) = Minimum de (YMINp(Z),Y(PC)) XMAXa(Z) = Maximum de (XMAXp(Z),X(PC)) XMINa(Z) = Minimum de (XMINp(Z),X(PC" (2) SXa(Z) = SXp(Z) + X(PC) SYa(Z) = SYp(Z) + Y(PC) Ta(Z)= Tp(Z) Les indices a désignent les valeurs actualisées des composantes, et les indices p désignent les valeurs précédentes des composantes, avant l'actualisation. Ce cas est rencontré au point (X = 5, Y = 2) de l'exemple de la
figure 2.
3ème cas: Si les deux points voisins sont des points en mouve-
ment, il faut distinguer trois possibilités (a, b, c), selon que ces zones ont déjà absorbé ou pas une autre zone. Les règles d'attribution du point courant à une zone peuvent comporter alors diverses variantes, selon qu'elles privilégient la zone du point au-dessus ou bien celle du point à gauche. Les règles données ci-dessous ont été choisies dans le but d'éviter le plus possible des cascades d'absorptions d'une zone par une autre zone,
et de simplifier ainsi l'actualisation de la mémoire d'adresses.
En effet, si une zone Z9, par exemple, absorbe une zone Z8 qui elle- même a absorbé une zone Z7 qui elle-même a absorbé une zone Z6, la mémoire d'adresses doit non seulement faire correspondre Z8 avec Z9, mais aussi faire correspondre Z6 et Z7 avec Z9, car les points attribués à la zone Z6 et Z7 doivent être considérés comme attribués maintenant à Z9. Pour cela, deux opérations distinctes sont à réaliser dans la mémoire d'adresses: une mémorisation de l'absorption de Z8 par Z9 en inscrivant la valeur Z9 à l'adresse Z8; puis une cascade d'actualisations du contenu de la mémoire d'adresses, consistant à déterminer quelle zone (Z7) a été absorbée par Z8 puis quelle zone (Z6) a été absorbée par Z7, etc, puis à
inscrire Z9 aux adresses constituées par les numéros de toutes ces zones.
L'actualisation est donc une opération relativement longue car elle peut
nécessiter plusieurs lectures dans la mémoire d'adresses.
La règle choisie pour éviter le plus possible les cascades d'absorp-
tions est la suivante:
Lorsque deux zones ont un point commun, la zone du point au-
dessus a la priorité pour absorber la zone du point à gauche, absorbant ainsi une zone de création plus récente en général. Mais, d'autre part, cette absorption est autorisée seulement si la zone du point à gauche n'a pas absorbé une zone précédemment, sinon c'est la zone du point à gauche qui absorbe la zone du point au-dessus. Pour indiquer si une zone a déjà absorbé au moins une zone, un bit indicateur d'absorption T(Zi) est10 incorporé dans chaque vecteur d'état caractéristique d'une zone Zi. Par exemple, pour la zone Z, à laquelle appartient le point à gauche, la valeur de ce bit est T(Z) = 1, si elle a déjà absorbé une zone et T(Z) = 0 dans le
cas contraire.
- a) si les zones des deux points voisins ont des numéros Z et Z' distincts, et si la zone du point à gauche n'a jamais absorbé une autre zone (T(Z) = 0), alors la zone Z du point à gauche peut être absorbée par la zone Z' du point au-dessus sans nécessiter une cascade d'actualisations dans la mémoire d'adresses. La valeur Z' est inscrite dans la mémoire d'attente à l'adresse correspondant au point courant, et dans la mémoire d'adresses à l'adresse Z, car elle constitue la valeur actualisée du numéro de zone du point voisin à gauche. Les valeurs des composantes duvecteur d'état de la zone Z' sont actualisées en inscrivant dans la mémoire d'états, à l'adresse Z' dans la partie dédiée à la trame courante, les valeurs suivantes: Na(Z) = Np(Z') + 1 + Np(Z) YMAXa(Z') = Maximum de (YMAXp(Z),Y(PC),YMAXp(Z'")) YMINa(Z') = Minimum de (YMINp(Z),Y(PC),YMINp(Z')) YMAXa(Z') = Maximum de (XMAXp(Z),X(PC),XMAXp(Z'))
O
XMINa(Z') = Minimum de (XMINp(Z),X(PC),XMINp(Z')) a p p SXa(Z') = SXp(Z') + X(PC) + SXp(Z) SYa(Z') = SYp(Z') + Y(PC) + SYp(Z) Ta(Z') = 1 Dans l'exemple représenté sur la figure 2, ce cas est rencontré au point (X = 4, Y = 3). Le point voisin au-dessus appartient à une zone Z1 et le point voisin à gauche appartient à une zone différente, Z2, qui a été créée lorsque le point (X = 3, Y = 3) a été traité. D'autre part, la zone Z2 n'a encore jamais absorbée d'autre zone. La zone Z2 peut donc être fondue dans la zone Z1 et le point courant (X = 4, Y = 3) peut être attribué à la
zone Z1.
- b) si, comme précédemment, les zones Z et Z' sont distinctes, mais si la zone Z du point à gauche a déjà absorbé au moins une zone (T(Z) = 1), elle absorbe la zone Z' du point au-dessus. Aucune cascade d'actualisations de la mémoire d'adresses n'est nécessaire si la zone Z' du point au-dessus n'a jamais absorbé de zone précédemment (T(Z') = 0). Une absorption inverse, c'est-à-dire une absorption de la zone Z par la zone Z', aurait forcément nécessité une cascade d'actualisations dans la mémoire d'adresses. Une cascade d'actualisations du contenu de la mémoire
d'adresses est nécessaire seulement dans le cas o la zone Z' du point au-
dessus a, elle aussi, déjà absorbé au moins une zone (T(Z') = T(Z) = 1).
Dans tous les cas, la valeur Z est inscrite dans la mémoire d'attente à l'adresse correspondant au point courant, et dans la mémoire d'adresses à l'adresse Z', car elle constitue la valeur actualisée du numéro
de zone du point voisin au-dessus.
Les valeurs des composantes du vecteur d'état de la zone Z sont actualisées en inscrivant dans la mémoire d'états, à l'adresse Z de la partie dédiée à la trame courante, les valeurs suivantes: Na(Z) = Np(Z) + I + Np(Z') YMAXa(Z) = Maximum de (YMAXp(Z),Y(PC),YMAXp(Z')) a p p YMINa(Z) = Minimum de (YMINp(Z), Y(PC),YMINp(Z')) XMAXa(Z) = Maximum de (XMAXp(Z),X(PC),XMAXp(Z')) XMINa(Z) = Minimum de (XMINp(Z),X(PC),XMINp(Z')) a p p SXa(Z) = SXp(Z) + X(PC) + SXp(Z') SYa(Z) = SYp(Z) + Y(PC) + SYp(Z') Ta(Z) = 1 Ce cas est rencontré au point (X = 14, Y = 4) sur la figure 4: la zone Z1 ne doit pas être absorbée par la zone Z3 pour éviter une cascade d'actualisations dans la mémoire d'adresses, la zone Z1 ayant déjà absorbé
précédemment Z2. De même, au point (X = 10, Y = 5) sur la figure 5.
Finalement, dans cet exemple, tous les points sont attribués à la zone Z1, comme cela est représenté sur la figure 6, car la première zone crée, Z1, absorbe toutes les zones crées au cours du traitement de cet exemple de
portion d'image.
- c) Si les deux points voisins appartiennent à une
même zone (Z = Z') le point courant est attribué à cette zone.
La valeur Z = Z' est inscrite dans la mémoire d'attente à l'adresse correspondant au point courant. Les premières composantes du vecteur ème d'état de la zone Z sont actualisées comme décrit, pour le 2me cas: Ce cas est rencontré par exemple au point (X = 5, Y = 3) sur la
figure 3.
4ème cas: Le point voisin à gauche n'est pas un point en mouvement, et le point voisin au-dessus est un point en mouvement. Le point courant étant connexe à une zone Z' déjà existante, il est attribué à cette zone. La valeur Z' est inscrite dans la mémoire d'attente à l'adresse correspondant au point courant. Les valeurs des composantes du vecteur d'état de la zone Z' sont actualisées en inscrivant dans la partie de la mémoire d'états dédiée à la trame courante, à l'adresse Z', les valeurs suivantes: Na(Z') = Np(Z') + 1 YMAXa(Z') = Maximum de (Y(PC),YMAXp(Z')) YMINa(Z') = Minimum de (Y(PC),YMINp(Z'" XMAXa(Z') = Maximum de (X(PC),XMAXp(Z')) XMINa(Z') = Minimum de (X(PC),XMINp(Z')" (5) SXa(Z') = SXp(Z') + x(PC) SYa(Z') = SYp(Z') + Y(PC) a p Ta(Z') = Tp(Z') Ce cas est rencontré, par exemple, au point (X = 9, Y = 3) sur la
figure 3.
Dans l'exemple représenté sur les figures I à 6, la zone Z1 est propagée de proche en proche tant que la suite des points traités
comporte des points en mouvement qui sont connexes à cette zone Z1.
Des zones nouvelles, Z2 à Z6, sont créées mais sont absorbées par la zone
Z1.
Par exemple, au point (X = 14, Y = 3), sur la figure 3, une zone de numéro Z3 est créée, mais au moment du traitement du point en-dessous elle est absorbée par la zone de numéro Z1. De la même façon, des zones de numéros Z4 et Z5 sont créées puis absorbées peu de temps après (figures 5 et 6). Pour chaque point traité il peut y avoir disparition d'une des zones existantes, par conséquent la définition des zones d'une trame n'est pas terminée avant que tous les points de cette trame aient été traités. Dans l'exemple de la figure 1, les regroupements successifs de
zones connexes conduisent à une seule zone Z1 (figure 6).
Dans l'exemple des figures I à 6, la configuration finale de la mémoire d'adresses est: adresse contenu
Z1 Z1
zI 1
Z2 Z1
Z3 Z1
Z4 Z1
Z5 Z1
Z6 Z
Z7 Z1
Pour déterminer à quelle zone appartient finalement un point d'image, une première étape consiste à lire dans la mémoire d'attente le numéro z(PC) de la zone à laquelle le point considéré a été attribué initialement, puis une deuxième étape consiste à lire dans la mémoire d'adresses, à l'adresse z(PC), le numéro Z0 de la zone ayant finalement absorbé la zone de numéro z(PC), après une cascade d'absorptions éventuellement. Dans l'exemple de la figure 1, pour le point (X = 3, Y = 3), le numéro de zone attribué initialement est Z2; cette zone Z2 ayant été absorbée par la zone Z1 la mémoire d'adresses fait correspondre Z1 à Z2 et par conséquent le point considéré est traité comme appartenant à la zone Z1. Le vecteur d'état de cette zone est donné par la mémoire d'états à l'adresse Z1 La mémorisation d'une fusion de deux zones doit être faite au
moment o le point courant est attribué à la réunion de ces deux zones.
Par contre, les cascades d'actualisations éventuellement à réaliser dans la mémoire d'adresses peuvent être différées un certain temps. Lorsque vient le moment o un point donné constitue le point voisin à gauche ou le point voisin au-dessus du point courant, il est nécessaire de connaître son numéro de zone actualisé et celui-ci n'est pas forcément identique au premier numéro de zone qui a été attribué au point donné. Le numéro de zone du point à gauche du point courant n'a pas changé depuis l'instant,
très proche, o il a été traité. Par contre le numéro de zone du point au-
dessus peut avoir changé plusieurs fois à la suite des absorptions de zones.
L'actualisation du numéro de zone d'un point donné doit donc être réalisée avant qu'il ne joue le rôle du point voisin au-dessus, et les opérations suivantes doivent avoir été effectuées: - Lire dans la mémoire d'attente un premier numéro de zone z(PD)
attribué au point au-dessus au moment o il constituait le point courant.
Par exemple z(PD) = Z 11 - Lire dans la mémoire d'adresses le contenu, noté ADR (Zi), de l'adresse Z11 dans la partie dédiée à la trame courante. Par exemple, la mémoire d'adresses a le contenu suivant adresse contenu Zil1 Z12 donc ADR(Zi) = Z12
Z12 Z13
Z13 Z14
Z14 Z14
- Lire dans la mémoire d'adresses le contenu, noté ADR(Z12), de
l'adresse Z 12.
ADR(Z12) = Z13
- Lire dans la mémoire d'adresses le contenu noté ADR(Z13), de l'adresse Z13 '
ADR(Z13) = Z14
- Lire dans la mémoire d'adresses le contenu, noté ADR(Z14), de l'adresse Z14 '
ADR(Z 14) = Z 14
Z14 étant inscrit à l'adresse Z14, la zone de numéro Z14 n'a pas été absorbée par une autre zone, il est donc inutile de continuer le processus. - Ecrire Z14 dans la mémoire d'adresses aux adresses Z13, Z12, Z11 Zll' Après ces opérations d'actualisation le contenu de la mémoire d'adresses serait le suivant: adresse contenu ZIl Z14
Z12 Z14
Z13 Z14
Z14 Z14
Cette actualisation ne tient compte, évidemment, que des absorp-
tions ayant eu lieu entre l'instant o le point au-dessus était attribué à la zone Z 11 et l'instant o le point courant est considéré. Par la suite, d'autres actualisations sont éventuellement faites aux adresses Z1 ' Z12
Z13, Z14.
En pratique il n'est pas nécessaire de faire un test pour détecter qu'un contenu est égal à son adresse et arrêter alors la cascade des lectures. L'expérience montre qu'il n'y a pratiquement jamais plus de deux cascades. D'autre part, il n'est pas indispensable d'inscrire la valeur actualisée Z14 à toutes les adresses Z11, Z12, Z13, car il est possible de retrouver la valeur actualisée, aussi souvent qu'il est nécessaire, en réalisant à chaque fois une suite de lectures dans la mémoire d'adresses. Il suffit donc de réaliser systématiquement trois lectures, et il n'est pas indispensable de faire l'écriture du numéro obtenu. D'autre part, cette suite d'opérations étant relativement longue, il est nécessaire d'anticiper l'actualisation d'un temps égal à 3T, T correspondant au temps d'analyse d'un point d'image. En outre, pour gagner du temps les trois lectures ne sont pas faites en série sur une même mémoire en utilisant une mémoire tampon pour stocker une valeur d'adresses entre 2 lectures; elles sont réalisées dans 3 mémoires distinctes mais identiques, qui au prélable ont -19
le même contenu et sont finalement actualisées identiquement. Naturelle-
ment ces trois mémoires sont composées chacune de trois partie corres-
pondant respectivement à la trame courante, à la trame intermédiaire, et
à la trame de référence.
Soit t l'instant o le point courant est attribué à une zone. Pour
actualiser la mémoire d'adresses et les deux mémoires d'adresses auxi-
liaires, dans l'exemple vu précédemment, les opérations sont les suivantes: - A l'instant t - 3T, lire le contenu noté, ADRI(Zli) de l'adresse Z 11 dans la première mémoire auxiliaire: ADRi(Zll) = Z12 - A l'instant t- 2T, lire le contenu, noté ADR2(ADRl(Zii")), de l'adresse ADRl(Z1) dans la deuxième mémoire auxiliaire: ADR2(ADRl(Zii)) = ADR2(Z12) = Z13 - A l'instant t - T, lire le contenu, noté ADR3(ADR2(ADRi(Z1)>), de l'adresse ADR2(ADR1(Z1)) = Z3 dans la mémoire d'états:
ADR3(Z13) = Z4
Ainsi à l'instant t la valeur actualisée du numéro de zone du point audessus du point courant est connue et il est possible alors de traiter le point courant. Cet exemple ne limite pas la portée de l'invention. Il est à la portée de l'homme de l'art de réaliser un plus grand nombre de lectures dans la mémoire d'adresses, et dans les mémoires auxiliaires, et de les
répartir sur un intervalle de temps plus long.
Lorsque tous les points de la trame courante ont été attribués à une zone, le nombre de points de chacune de ces zones est connu de
manière définitive. Il est possible alors de réaliser un test de discrimina-
tion des zones de points en mouvement vrai, en comparant le nombre exact de points de chaque zone à une valeur de seuil fixée R. Si le nombre de points d'une zone est inférieur à cette valeur de seuil R la zone est considérée est considérée comme étant certainement en mouvement dû au bruit. Si le nombre de points est supérieur à la valeur de seuil R, le mouvement de cette zone est probablement vrai. Pour améliorer la fiabilité de la conclusion un test supplémentaire est réalisé. Il consiste à: rechercher, pour chaque zone Z de la trame courante, s'il existe des m zones homologues de la zone Zm dans les trames précédant la trame
courante; en déduire une valeur d'ancienneté de la zone Zm; et comparer cette valeur d'ancienneté à une valeur de seuil S. Une zone est considérée comme ayant un mouvement vrai si son ancienneté est supérieure à la5 valeur de seuil.
La fiabilité de la détection des points en mouvement ne peut pas être augmentée indéfiniment en augmentant la valeur de seuil P utilisée pour la prédétection, et en augmentant la valeur de seuil R utilisée pour
tester le nombre de points contenus dans chaque zone, car alors augmentent les erreurs par non-détection de points en mouvement vrai, en particulier il y a élimination des petites zones de points en mouvement.
Le gain en fiabilité obtenu au moyen du test portant sur l'ancienneté, permet de réduire la rigueur des deux premiers tests, en abaissant les deux valeurs de seuil P et R, et permet donc finalement de détecter des15 zones de points en mouvement vrai ayant une très petite taille, dès lors qu'elles ont une ancienneté suffisante. Cette amélioration de la détection du mouvement pour les petites zones est particulièrement appréciable pour améliorer la précision d'une estimation de la vitesse d'un objet. L'élimination des zones ayant un nombre de points inférieur à la valeur de seuil P, au cours de la prédétection, permet de réduire le nombre de zones pour lesquelles une recherche des zones homologues est à
effectuer. Cette recherche, pour les zones de la trame courante, est effectuée uniquement parmi les zones de la trame de référence, et non parmi les trames qui la précèdent, car la valeur de Pancienneté tient25 compte de l'existence de zones homologues dans la suite des trames impaires qui précèdent la trame de référence.
Ce test de l'ancienneté peut être amélioré en comparant la valeur d'ancienneté ANC(Zm) de chaque zone Zi, non seulement par rapport à la valeur de seuil fixée S constituant un minimum absolu, mais en la compa30 rant aussi à l'ancienneté des autres zones de la trame de référence, car dans une même trame les zones représentant un même objet ont en général des anciennetés peu différentes. La valeur de seuil peut, par exemple, être prise égale à ÁNCMAX, o ANCMAX est la plus grande valeur d'ancienneté des zones de la trame courante.35 Il reste à définir un procédé permettant de détecter toute zone homologue à une zone donnée. Du fait qu'elles représentent un même objet, elles ont une intersection non nulle, si le déplacement n'est pas trop rapide pendant l'intervalle de temps. De la même façon qu'ils sont connexes dans l'espace d'une trame, les points en mouvement vrais peuvent être considérés comme connexes dans le temps, contrairement aux points dont le mouvement est dO au bruit, car les zones de ces
dernières sont de courte durée.
Dans cet exemple de mise en oeuvre du procédé selon l'invention,
le vecteur d'état de chaque zone Zm comporte des composantes consti-
tuées par les quatre coordonnées extrêmes des points appartenant à la zone: XMIN(Zm), XMAX(Zm), YMIN(Zm), YMAX(Zm). Ces coordonnées
extrêmes définissent une enveloppe rectangulaire entourant la zone Zm.
La recherche des zones Zh de la trame de référence, homologues de la zone Zm de la trame courante, consiste à rechercher, dans la partie de la mémoire d'états dédiée à la trame précédente, les zones dont l'enveloppe rectangulaire a une surface commune avec l'enveloppe rectangulaire de la zone Zm; et consiste à donner à la zone Zm une valeur d'ancienneté égale à la plus grande des valeurs d'ancienneté des zones homologues trouvées dans la trame de référence, plus une unité, si au moins une zone homologue a été trouvée. Sinon la valeur d'ancienneté ANC(Zm) de la
zone Zm est prise égale à l'unité.
Les figures 7a, 7b, 7c représentent trois trames impaires appelées a, b, c, successives mais non consécutives, dans une suite d'images. Dans cet exemple, la trame b de la figure 7b constitue la trame de référence pour la trame c de la figure 7c et la trame a de la figure 7a constitue la trame de référence pour la trame b de la figure 7b. Chaque point d'image est représenté par son numéro de zone. L'enveloppe rectangulaire de
chaque zone est représentée en pointillés.
Dans cet exemple, la zone Z de la trame a est homologue de la zone Z12 de la trame b car leurs enveloppes ont une intersection constituée par les points d'ordonnées 2 et d'abscisse 5 à 8. La zone Z7 de la trame a est homologue de la zone Z1 1 de la trame b. La zone Z13 de la trame b est homologue de la zone Z15 de la trame c. La zone Z12 de la
trame b est homologue de la zone Z17 de la trame c.
La zone Z8 a donc une ancienneté égale à I. La zone Z12 a donc une ancienneté égale à 2. La zone Z17 a donc une ancienneté égale à 3 et suffisante pour que le mouvement de cette zone Z17 soit considéré comme vrai. Par contre, toutes les autres zones ont une ancienneté inférieure ou égale à 2 et ne sont donc pas considérées comme ayant un
mouvement vrai.
Si plusieurs zones de la trame de référence sont homologues à la zone Zm de la trame courante et si Zh est le numéro de la zone homologue ayant la plus grande ancienneté, les secondes composantes
E2(Zm) du vecteur d'état de la zone Zm, se rapportant aux caractéristi-
ques de la zone homologue dans la trame précédente prennent les valeurs suivantes: NZH(Zm) = N(Zh) SXH(Zm) = SX(Zh) (6) SYH(Zm) = SY(Zh) ANC(Zm) = I + ANC(Zh) ELI(Zm))=0
La valeur de E2(Zm) est inscrite ensuite dans la mémoire d'états.
Si, au contraire, la zone Zmne satisfait pas aux tests portant sur le nombre de points et sur l'ancienneté, elle est éliminée comme n'étant pas en mouvement vrai. La valeur I est attribuée à son bit indicateur d'élimination ELI(Zm) et ce bit indicateur est inscrit dans la mémoire m d'états. Le vecteur d'état E(Zm) ne comporte pas d'autres modifications
dans ce cas.
Les composantes du vecteur d'état de la zone homologue Zh sont lues dans la mémoire d'état à l'adresse Zh de la partie dédiée à la trame de référence. En pratique, la recherche des zones homologues est réalisée en lisant dans la mémoire d'états le vecteur d'état de chacune des zones Zh de points en mouvement existant dans la trame précédente, en testant le bit indicateur d'élimination de chaque zone Zh pour ne considérer que les zones en mouvement vrai, puis en comparant les coordonnées extrêmes des points de la zone Zh avec les coordonnées extrêmes des points de la
zone Z de la trame courante.
m Les zones homologues ne doivent pas être recherchées parmi des
zones de la trame précédente ayant disparu par fusion dans d'autres zones.
Pour éviter cela, la recherche est réalisée par un adressage indirect de la mémoire d'états par l'intermédiaire de la mémoire d'adresses associée à celle-ci et fait donc correspondre à chaque numéro de zone possible un
numéro de zone désignant une zone de points en mouvement effective-
ment existante à la fin du traitement de la trame précédente.
Une variante du procédé consiste à utiliser l'indicateur EAT(Zh) mentionné précédemment parmi les premières composantes du vecteur d'état E(Zh). Dans ce cas, l'adressage de la mémoire d'états est réalisé directement, avec une suite croissante de valeurs Zh. Un test de la valeur de l'indicateur de disparition EAT(Zh) permet alors de discriminer les zones absorbées et les zones encore existantes. Puis un test de la valeur
du bit d'élimination ELI(Zh) permet de discriminer les zones en mouve-
ment vrai. Cette variante a pour inconvénient de nécessiter une modifica-
tion du bit indicateur de disparition dans le vecteur d'état de chaque zone absorbée, ce qui nécessite pour le traitement de chaque point d'image, un cycle supplémentaire d'écriture dans la mémoire cd'états. Par contre, elle présente l'avantage de ne plus utiliser la mémoire d'adresses après l'attribution de tous les points d'une trame à une zone, ce qui entraine que la mémoire d'adresses a une capacité trois fois moindre car elle ne
comporte alors plus qu'une partie: celle dédiée à la trame courante.
Après le test portant sur la valeur d'ancienneté de chaque zone, le procédé consiste à conclure définitivement sur l'état des points contenus dans chaque zone. Dans les applications o cela est utile, il est possible de connaître l'état de chaque point d'image, individuellement, en stockant pendant la durée de toute la trame courante, dans une mémoire d'attente de capacité adéquate, le premier numéro de zone attribué à chaque point de toute la trame courante; puis en lisant dans la mémoire d'adresses, pour chaque point de trame courante, un numéro de zone actualisé; puis en lisant son vecteur d'état dans la mémoire d'états; puis en testant la valeur du bit indicateur d'élimination. Si cet indicateur a la valeur 0, cela signifie que le point considéré a un mouvement vrai. Dans une telle application il n'est évidemment pas possible de réutiliser les numéros des
zones absorbées pour désigner de nouvelles zones puisqu'ils sont nécessai-
res pour retrouver le numéro de zone de chaque point individuellement.
Pour éviter l'utilisation d'une mémoire d'attente ayant une capacité égale au nombre de points d'une trame, une variante du procédé peut consister à coder la position de chaque point d'une zone, pour réduire la quantité
d'information nécessaire au repérage de sa position dans la zone.
Le procédé d'estimation de la vitesse d'un objet dans une suite d'images, selon l'invention, consiste tout d'abord à déterminer les zones de
points en mouvement vrai, conformément à la description précédente,
puis comporte les étapes suivantes, qui ont pour but de prendre en compte la vitesse de chaque zone en donnant un poids prépondérant aux vecteurs de vitesse des zones qui ont un plus grand nombre de points, car il est plus probable qu'elles aient un mouvement vrai. Cette pondération permet d'améliorer la fiabilité de l'estimation par rapport au procédé le plus simple, qui consisterait à calculer les coordonnées du barycentre de toutes les zones en mouvement vrai dans la trame de référence, et dans la trame courante; puis à calculer le vecteur translation joignant les deux barycentres. Par hypothèse, l'ensemble des zones en mouvement vrai dans la suite d'images représente un objet unique. Dans l'hypothèse, o il pourrait y avoir plusieurs objets, il serait nécessaire de modifier le procédé pour ne considérer que les zones situées dans une fenêtre préalablement définie
*autour d'un objet unique.
Il arrive que des erreurs dans la prédétection de mouvement conduisent à séparer en deux zones disjointes des points en mouvement qui étaient rassemblés dans une zone unique dans la trame de référence. Ce fractionnement d'une zone en deux zones est nuisible à la précision de l'estimation de vitesse car le vecteur vitesse de chaque zone n'est pas forcément égal au vecteur vitesse de l'ensemble des deux zones. Il est donc préférable de réunir ces deux zones avant d'effectuer l'estimation de vitesse. Ces deux zones sont reconnaissables par le fait qu'elles ont une
même zone homologue la plus ancienne, dans la trame de référence.
Lorsque la recherche des zones homologues a été réalisée pour toutes les zones de la trame courante, un traitement supplémentaire est
réalisé pour fusionner les zones qui ont la même zone homologue la plus30 ancienne.
La zone homologue la plus ancienne, homologue à une zone Zi de la trame courante, est repérée non pas par un numéro mais par les coordonnées de son barycentre. Celles-ci sont calculables très facilement à partir des composantes NZH(Zi), SXH(Zi), SYH(Zi) du vecteur d'état de
la zone Z..
La fusion de ces zones est décidée en comparant les coordonnées du barycentre de la zone homologue de chaque zone Zq de la trame courante avec celles du barycentre de la zone homologue de chacune des
autres zones Zf de la trame courante.
Pour ne prendre en compte que les zones réellement existantes à la fin de l'attribution de tous les points d'une trame à des zones, la lecture des vecteurs d'états dans la mémoire est réalisée par un adressage indirect à travers la mémoire d'adresses. Une suite croissante de valeurs zf est fournie à la mémoire d'adresses et elle fournit une suite de valeurs
Zf qui sont des numéros de zones non absorbées.
Comme pour la détermination des zones homologues, décrite précédemment, une variante peut consister à adresser directement la
mémoire d'état et à tester la valeur du bit indicateur EAT(Zf).
La fusion des zones ayant une même zone homologue en commun doit être mémorisée pour ne pas réaliser plusieurs fois une fusion de deux
mêmes zones. Il n'est pas nécessaire pour cela de réaliser une actualisa-
tion de la mémoire d'adresses, car la relation entre le numéro d'une zone absorbée et le numéro de la zone absorbante n'est pas utile par la suite, dans l'application à l'estimation de vitesse. Il suffit d'utiliser le bit dit indicateur d'élimination, noté ELI(Zf), pour chaque zone Zf; de lui donner la valeur 1 lorsque la zone Z fest absorbée; et de l'inscrire dans la mémoire d'états lorsque cette fusion est réalisée. Puisqu'il n'y a pas d'actualisation de la mémoire d'adresses pour ce type de fusion, l'ordre des cascades de fusions de ce type est sans importance. Par conséquent, il n'y a pas de critère pour distinguer la zone qui sera absorbée et la zone qui l'absorbera. Il n'est pas nécessaire de prévoir et d'utiliser un indicateur tel que le bit T(Zf) utilisé pour repérer les zones ayant déjà absorbé au moins
une zone connexe, comme cela a été décrit précédemment.
A titre d'exemple, si une zone Zq et une zone Zf de la trame courante ont une même zone homologue la plus ancienne, dans la trame de référence, la réunion de ces deux zones prend pour numéro Zq, et les composantes du vecteur d'état de la zone Zq sont actualisées selon les formules suivantes, et ces valeurs sont inscrites dans la partie de la mémoire d'états de la trame courante, à l'adresse Zq: Na(Zq) = Np(Zq) + N(Zf) YMAXa(Zq) = Maximum de (YMAXp(Zq),YMAX(Zf)) YMINa(Zq) = Minimum de (YMINp(Zq),YMIN(Zf)) XMAXa(Zq) = Maximum de (XMAXp(Zq),XMAX(Zf)) XMINa(Zq) = Minimum de (XMINp(Zq),XMIN(Z" (7) SXa(Zq) = SXp(Zq) + SX(Zf) SYa(Zq) = SYp(Zq) + SY(Zf) Les autres composantes sont inchangées. Les indices p indiquent les valeurs avant fusion et les indices a indiquent les valeurs actualisées après fusion. Le vecteur d'état de la zone absorbée Zf est actualisé en
écrivant dans la mémoire d'états, dans la partie dédiée à la trame courant: ELI(Zf) = 1.
Le procédé d'estimation de vitesse consiste ensuite à calculer une somme pondérée des vecteurs vitesse de toutes les zones en mouvement vrai dans la trame courante. En pratique cette somme pondérée est réalisée en calculant la somme NTOT des nombres de points N(Zi) de toutes les zones Zi en mouvement vrai dans la trame courante, puis en calculant les vecteurs de translation (TGx(Zi), TGy(Zi)) de toutes les zones N(Zi) Zi en les pondérant par NTOT; puis en divisant cette somme par la
durée ICR de l'intervalle de temps entre la trame de référence et la trame courante. Le vecteur translation (TOX, TOy) traduisant le mouve-
ment de l'objet est donc calculé selon les formules: _ (N(Zi).TGx(Zi)) (8) x NTOT T - (N(Zi).TG y(Zi)) TOy NTOT
o les sommes sont étendues à toutes les zones Zi ayant un mouvement vrai dans la trame courante.
Une estimation du vecteur vitesse de l'objet est calculée selon les formules: TO
VOX = IX (10) I CR TO VOy = ICR La position du barycentre de l'objet est estimée en
déterminant le barycentre des barycentres des zones des points en mouvement vrai selon les formules: O (XG(Zi) x N(Z))
XO = (12)
NTOT = (YG(Zi) x N(Zi))
YO = NTOT (13)
o les sommes sont étendues à toutes les zones Zi qui ont un
mouvement vrai dans la trame de référence.
L'estimation des composantes du vecteur de translation (TGx(Zi), TGy(Zi)), consiste à calculer: TGX(Zi) = XG(Zi) - XGH(Zi) TGy(Zi) = YG(Zi) - YGH(Zi) (15) à partir des coordonnées (XG(Zi), YG(Zi")) du barycentre de la zone Zi et des coordonnées (XGH(Zi), YGH(Zi)) du barycentre de la zone l homologue la plus ancienne, homologue de la zone Zi. S'il n'existe pas de zone homologue à la zone Zi, les composantes de ce vecteur de translation sont nulles. Les coordonnées de ces barycentres sont calculées à partir des composantes du vecteur d'état de la zone Zi, selon les formules:
SX(Z.)
XG(Zi) = i (16) Sy(Zi) YG(Zi) SXH(Zi) XGH(Zi) = NZH(Z) i (17) SYH(Zi) YGH(Zi) NZH(Z= Les valeurs SX(Zi), SY(Zi), N(Zi), SXH(Zi), SYH(Zi); NZH(Zi), sont lues à l'adresse Zi dans la partie de la mémoire d'états dédiée à la trame courante. Pour filtrer les variations du vecteur vitesse (VOx, VOy,) de translation du barycentre de l'objet, lorsque la vitesse de l'objet varie ou lorsque l'objet est masqué partiellement ou temporairement par un obstacle, il est prévu un filtrage qui est différent selon que les variations de la vitesse estimée sont fortes ou faibles. En outre, quand ces variations sont fortes pendant une durée assez longue, le filtrage est complètement supprimé pour permettre un suivi précis de l'objet. Quand les variations de la vitesse estimée sont faibles, le filtrage est fonction de la durée depuis laquelle l'objet est détecté avec certitude. Pour distinguer ces divers cas, le procédé selon l'invention consiste à définir deux paramètres, Px et py traduisant les changements de valeur absolue et les changements de signe
des composantes VOF et VOF respectivement.
x y La valeur du paramètre Px est initialisée à 0 lorsque la valeur absolue de la variation de VOF entre deux trames impaires successives est inférieure à une valeur de seuil fixée et s'il n'y a pas changement de signe de cette composante. Par contre, la valeur du paramètre Px est incrémentée d'une unité iors du traitement de chaque trame impaire successive, s'il y a changement de signe de la composante VOFX ou s'il y a une variation supérieure à la valeur de seuil, en valeur absolue. Un paramètre py ayant une définition analogue permet de prendre en compte
les variations de la composante VOFy.
Lorsque les variations de la composante VOF sont faibles, c'est-
à-dire pour Px = 0, son filtrage est récursif et est réalisé selon la formule: VOFx(image précédente)=gx.VOx+(l -gx).VOFx(image précédente) (18)
Lorsque les variations de la composante VOFy sont faibles, c'est-
à-dire pour py = 0, son filtrage est récursif et est réalisé selon la formule: VOFy(image courante)=gy.VOy+(l-gy).VOFy(image précédente) (19) o gx et gy sont des coefficients compris entre 0 et 1, et qui varient en fonction de la durée depuis laquelle l'objet est détecté avec certitude. Cette durée est comptée à partir du moment o il y a au moins une zone considérée comme ayant un mouvement vrai, c'est-à-dire lorsqu'il y a au moins une zone, dans la trame courante, ayant une
ancienneté égale à S = 3, dans cet exemple.
La durée depuis laquelle l'objet est détecté avec certitude est notée n. Par exemple gx est égal à 1, ou 1/2 ou 1/3, respectivement si n
est égal à 1, ou 2, ou est supérieure ou égale à 3 intervalles interimages.
Lorsque les variations de la composante VOFX sont fortes mais durent depuis peu de temps, ce qui correspond à Px égal à 1, 2 ou 3; la valeur VOx estimée pour la trame courante n'est pas considérée. La valeur filtrée VOFx est prise égale à la valeur notée VOFx (image précédente) qui a été estimée et filtrée pour la trame précédant immédiatement la trame courante. Ceci revient à appliquer la formule (18) en prenant
gx= 0.
Lorsque les variations de la composante VOFX sont fortes et durent longtemps, ce qui correspond à Px au moins égal à 4, la valeur estimée VOx doit être prise en compte et les valeurs estimées pour les
trames précédentes ne doivent pas être prises en compte car les varia-
tions de la composante VOFx ne peuvent certainement pas être imputées au bruit. La valeur filtrée VOFX (trame courante) est alors prise égale à la valeur VO estimée pour la trame courante. Ceci revient à appliquer la x
formule (18) mais avec gx = 1.
La composante VOFy est déterminée indépendamment de VOFx,
mais de façon analogue, en fonction de py et de n.
Ainsi le filtrage du vecteur de translation du barycentre de l'objet est maintenu pour des variations importantes de la vitesse si elles ne dépassent pas la durée de trois intervalles inter-images. Par contre, ce filtrage est supprimé lorsque la vitesse varie fortement pendant un intervalle de temps supérieur à trois intervalles inter-images.25 La figure 8 représente le schéma synoptique d'un exemple de réalisation d'un dispositif de détection de mouvement et d'estimation de la vitesse d'un objet pour la mise en oeuvre des procédés selon rl'invention, conformément à l'exemple de mise en oeuvre décrit précédemment. Il permet de déterminer les composantes d'un vecteur d'état pour chacune30 des zones de points connexes en mouvement vrai, ces composantes comportent notamment la somme des abscisses et la somme des ordonnées des points, le nombre de points de la zone, et les coordonnées minimales et maximales. Ce dispositif détermine l'état de chaque zone, à savoir: mouvement vrai ou mouvement dO au bruit. Puis il estime les coordonnées35 du barycentre et le vecteur vitesse d'un objet représenté par l'ensemble des zones de points en mouvement vrai, dans chaque trame impaire d'une
suite d'images de télévision classique.
Cet exemple de réalisation comporte: un dispositif 2 de pré-
détection des points en mouvement; une mémoire 10, dite mémoire de luminance; des moyens de commande 4; un premier générateur d'adresses et d'états 5, fonctionnant à la période des points; un second générateur d'adresses et d'états, 9, fonctionnant à la période des images; une mémoire 6, dite mémoire d'attente; une mémoire d'adresses 7; et une mémoire d'états 8. La mémoire d'adresses 7 et la mémoire d'états 8 comportent chacune trois parties de capacités égales correspondant respectivement à la trame courante, à la trame de référence, et à une trame intermédiaire. Ces trois parties de chaque mémoire 7 et 8 sont sélectionnées au moyen de signaux de commande fournis par les moyens
de commande 4.
La mémoire 10 possède seulement deux parties, dédiées respecti-
vement aux valeurs de luminance de la trame de référence et de la trame intermédiaire. Les valeurs de luminance de la trame courante sont utilisées par le dispositif 2 de prédétection au fur et à mesure qu'elles sont appliquées à la borne d'entrée 1, et elles ne sont plus utilisées ultérieurement. Il n'y a donc pas besoin de les stocker. Les deux parties de la mémoire 10 sont elles aussi sélectionnées au moyen de signaux de
commande fournis par les moyens 4.
Cet exemple de réalisation est destiné à traiter en temps réel une suite d'images de télévision conformes à un standard classique. Ces images de télévision sont constituées chacune de deux trames entrelacées, mais seules sont traitées les trames impaires. L'intervalle minimal entre
la trame courante et la trame de référence est fixé à 3 intervalles inter-
images, dans cet exemple. L'intervalle maximal est fixé à 5. Une borne
d'entrée I reçoit une suite de valeurs numériques représentant la lumi-
nance des points de chaque trame impaire analysée, échantillonnée, et
numérisée selon un procédé classique de télévision. Ces valeurs numéri-
ques sont appliquées à la borne d'entrée I avec un intervalle de temps T entre chaque valeur, par paquets correspondant chacun à une ligne d'image. Une borne d'entrée 3 reçoit des signaux de synchronisation correspondant à chaque point d'image, à chaque ligne d'image, et à chaque trame. Deux bornes de sortie 35 et 36 sont reliées respectivement à deux sorties du générateur 9 pour fournir les coordonnées XO et YO du barycentre de l'objet et les composantes filtrées VOFX et VOFy du
vecteur vitesse de l'objet.
Le dispositif 2 possède une entrée reliée à la borne d'entrée 1, une entrée reliée à une sortie de la mémoire 10, et une sortie reliée à une entrée des moyens de commande 4 et à une entrée 12 du premier générateur 5 d'adresses et d'états. Les moyens de commande 4 possèdent une entrée reliée à la borne d'entrée 3. La mémoire d'attente 6 possède une entrée reliée à une borne de sortie 15 du générateur 5 et deux sorties reliées à une entrée d'adresses de lecture de la mémoire d'adresses 7. La mémoire d'adresses 7 possède une entrée d'adresses d'écriture reliée à une borne de sortie 14 du générateur 5, une entrée de données reliée à une borne de sortie 15 du générateur 5, et une sortie de données reliée à une borne d'entrée 16 du générateur 5, à une entrée d'adresses de lecture de la
mémoire d'états 8, et à une borne d'entrée 21 du second générateur 9.
L'entrée d'adresse de lecture de la mémoire 7 est reliée en outre à une borne de sortie 19 du générateur 9. La mémoire 7 possède en outre trois entrées de commande de lecture et d'écriture reliées respectivement à trois bornes de sortie 25 à 28 et 33 du générateur 9, pour recevoir des
signaux de commande D3, D4, D5, D6, SL4.
La mémoire d'états 8 possède une entrée d'adresses d'écriture reliée à la borne de sortie 15 du générateur 5; une entrée de données reliée à une borne de sortie 17 du générateur 5 et reliée à une borne de sortie 22 du générateur 9; et une sortie de données reliée à une borne d'entrée 18 du générateur 5 et à une borne d'entrée 20 du générateur 9. La mémoire d'états 8 possède en outre quatre entrées de commande de lecture et d'écriture reliées à quatre bornes de sortie 23, 24, 31, 32, du générateur 9, pour recevoir des signaux de commande DI, D2, SE3, SL3
respectivement.
Le générateur 9 possède en outre une borne d'entrée 38 recevant la valeur ICR de l'intervalle entre la trame de référence et la trame courante, fournie par les moyens 4; et une borne cd'entrée 37 recevant une valeur NTC qui est le numéro de la trame courante, fourni par les moyens 4. Les moyens 4 fournissent d'autres signaux de commande qui ne sont pas
représentés sur cette figure 8 pour plus de clareté.
Le dispositif 2 est réalisé conformément à la description donnée
dans la demande de brevet européen n 0 113 269. Il a pour rôle d'éliminer les points d'image dont le mouvement est très probablement dé au bruit, ce qui permet de réduire fortement le nombre des petites zones à traiter par les générateurs d'états et d'adresses, 5 et 9, et permet donc d'économiser sur leur temps de calcul et sur la capacité des mémoires
d'adresses et d'états.
Dans cet exemple de réalisation, le dispositif 2 de prédétection détecte les points dont la valeur de luminance a varié au moins de R = 10 unités, par exemple, sur une plage de valeurs s'étendant de 0 à 255; puis il fait six estimations successives de la nature exacte de ce mouvement:
mouvement certainement dû au bruit ou mouvement probablement vrai.
La valeur de seuil de détection R de la variation de luminance d'un point est choisie la plus petite possible dans une plage de l'ordre de 7 à 15 unités, en fonction de la quantité de bruit affectant les images, de façon à ne pas multiplier le nombre de fausses détections de points en mouvement. Le dispositif 2 n'est pas strictement indispensable. Il peut être remplacé par un comparateur numérique fournissant une valeur binaire M(PC) = I quand la valeur absolue de la différence de luminance du point courant dans la trame courante et du point homologue dans la trame de référence est supérieure à un seuil fixé, et fournissant une valeur binaire M(PC) = 0 quand ces deux valeurs de luminance ont une différence inférieure au seuil, en valeur absolue. Pour une même valeur de seuil, cette variante simplifiée détecte plus de points dont le mouvement est douteux. Il y a donc un plus grand nombre de petites zones douteuses à
discriminer ensuite.
Les moyens de commande 4 fournissent des signaux d'horloge synchronisés par les signaux de synchronisation appliqués à la borne d'entrée 3, et ils fournissent des signaux de commande fonctions de ces signaux d'horloge et fonctions de la suite des valeurs M(PC) fournies par le dispositif 2. Ces signaux, non représentés sur la figure 8, commandent tous les éléments du dispositif de détection de mouvement et d'estimation de vitesse. Les moyens 4 fournissent aussi la valeur ICR de l'intervalle entre la trame courante et la trame de référence, et la valeur NTC du numéro de la trame courante. Ce dispositif fonctionne cycliquement avec trois périodes distinctes: une période T correspondant à la période d'analyse des points d'image; une période correspondant à la période d'analyse des lignes d'image; et une période correspondant à la période d'analyse des trames impaires des images, autrement dit à la période des images. Pendant une période T correspondant à l'analyse d'un point, le fonctionnement est le suivant. Les moyens de commande 4 génèrent une suite de signaux de commande qui sont fonctions de 3 valeurs M(PC), M(PA), M(PG), fournies successivement par le dispositif 2 et représentant respectivement l'état du point courant, du point voisin au-dessus du point courant, et du point voisin à gauche du point courant. Une sortie de la mémoire d'attente 6 fournit à l'entrée d'adresses de lecture de la mémoire d'adresses 7 une valeur z(PA) qui est la valeur de numéro de zone ayant été attribuée au point voisin au- dessus du point courant, au moment o ce point a été attribué à une zone. Les moyens de commande 4 fournissent aussi des signaux de commande pour sélectionner la partie de la mémoire 7 et la partie de la mémoire 8 correspondant à la trame courante. Une lecture dans la mémoire d'adresses 7 fournit à la borne d'entrée 16 du générateur 5 et à l'entrée d'adresses de lecture de la mémoire d'états 8, une valeur Z' qui est la valeur actuelle à l'instant considéré du numéro de zone attribué au point voisin au-dessus. Une lecture dans la mémoire d'états 8 fournit les valeurs E(Z') des composantes du vecteur d'état de la
zone ayant pour numéro Z'.
Le générateur d'adresses et d'états 5 détermine alors la valeur, z(PC), du numéro de zone à attribuer au point courant en fonction de la valeur Z'; en fonction de la valeur actuelle Z, à l'instant considéré, du numéro de zone attribué au point voisin à gauche; en fonction de M(PC); et en fonction des valeurs des composantes du vecteur d'état E(Z') de la zone du point voisin au-dessus et du vecteur d'état E(Z) de la zone du point voisin à gauche. La valeur Z et le vecteur d'état E(Z) n'ont pas besoin d'être lus dans la mémoire d'états 8 car le point voisin à gauche du point courant vient juste d'être traité auparavant. La valeur Z et les
valeurs des composantes du vecteur d'état E(Z) sont donc encore dispo-
nibles à l'intérieur du générateur d'adresses et d'états 5.
Ensuite, la valeur z(PC) déterminée par le générateur 5 est appliquée à sa borne de sortie 15. Elle est inscrite dans la mémoire d'attente 6 à un emplacement correspondant au point d'image en cours de traitement. Elle est aussi inscrite dans la mémoire d'adresses 7 à une adresse d'écriture AD fournie par la borne de sortie 14 du générateur 5, et
elle est appliquée à l'entrée d'adresses d'écriture de la mémoire d'états 8.
La borne de sortie 17 du générateur 5 fournit la valeur E(z(PC)) des composantes du vecteur d'état de la zone de numéro z(PC) à laquelle le point courant est attribué. Si cette zone existait auparavant, la valeur de ces composantes a été actualisée par le générateur 5, c'est-à-dire modifiée pour tenir compte du fait que le point courant est attribué à cette zone et qu'il y a eu éventuellement fusion d'une autre zone dans celle-ci. Cette valeur actualisée des composantes de ce vecteur d'état
sont inscrites dans la mémoire d'états 8 à l'adresse z(PC).
Lorsqu'il y a absorption d'une zone, la valeur z(PC) qui désigne la zone absorbante est inscrite dans la mémoire d'adresses 7 à l'adresse AD
qui est constituée alors par la valeur du numéro de la zone absorbée.
Cette écriture dans la mémoire d'adresses 7 constitue une actualisation partielle de son contenu. La zone de numéro AD peut avoir absorbé précédemment une ou plusieurs zones il est donc nécessaire de faire correspondre en outre les numéros de ces zones et le numéro AD. Ce processus d'actualisation sera décrit par la suite ainsi que la structure plus
détaillée de la mémoire d'adresses 7.
Le fonctionnement du dispositif de détection de mouvement et d'estimation de vitesse comporte aussi un traitement dont la période correspondant à la période d'analyse des lignes d'image, et se déroulant pendant un intervalle de temps séparant les analyses de deux lignes consécutives d'une trame. Il met à profit le fait que, dans l'application considérée, il n'est pas nécessaire de déterminer l'état de chaque point individuellement mais de déterminer l'état de chaque zone de points en mouvement, les points de chaque zone étant considérés collectivement pour le suivi temporel d'un objet. Il a pour but d'éliminer des zones qui sont terminées et qui comportent un très petit nombre de points. Cette élimination constitue un filtrage des zones dont le nombre de points ne peut plus augmenter et qui est trop petit pour que la zone ne soit pas doe au bruit. Ceci permet de rendre disponible à nouveau certains numéros de zone, c'est-à-dire permet de réutiliser des emplacements de la mémoire d'états et de la mémoire d'adresses. Ainsi la capacité de la mémoire
d'états et de la mémoire d'adresses peut être considérablement réduite.
Dans le même but, un autre traitement, décrit par la suite, permet de réutiliser aussi les numéros des zones qui sont fusionnées dans une autre zone. Le traitement de filtrage est réalisé pendant les intervalles de temps inter-lignes car il nécessite une lecture dans la mémoire d'adresses et une lecture dans la mémoire d'états, qui sont déjà très occupées, par des lectures et des écritures, pendant les intervalles de temps d'analyse des lignes. Il consiste à lire dans la mémoire d'attente 6 une valeur zt qui
est le numéro de zone attribué à un point qui est situé deux lignes au-
dessus de celle du point courant. Cette valeur zt est appliquée à l'entrée d'adresses de lecture de la mémoire d'adresses 7, puis une lecture est réalisée dans la mémoire 7 à cette adresse, pour obtenir une valeur Z.t qui est le numéro d'une zone, dite zone testée, qui a absorbé la zone de numéro Z.t Si cette dernière n'a jamais été absorbée Zt est égal à zt. La valeur Zt est appliquée à la borne d'entrée 16 du générateur 5 et à l'entrée d'adresses de lecture de la mémoire d'états 8 pour permettre la lecture dans celle-ci de la valeur E(Zt) des composantes du vecteur d'état de la zone testée. En fonction de ces données, Zt et E(Zt), le générateur 5 décide si la zone de numéro Zt doit être éliminée ou non. Si elle est éliminée le numéro de zone Zt sera considéré comme un numéro de zone
disponible pour une nouvelle utilisation.
Le fonctionnement du dispositif de détection de mouvement et d'estimation de vitesse a aussi une période correspondant à la période des images, et concernant plus particulièrement: la recherche des zones homologues dans la trame de référence; la validation des zones ayant une ancienneté suffisante pour être considérée en mouvement vrai; la fusion des zones ayant une même zone homologue; l'estimation de la vitesse de l'objet et des coordonnées de son barycentre; et le filtrage de la vitesse
de l'objet.
La recherche des zones homologues à une zone donnée ne peut avoir lieu qu'après la détermination de toutes les zones d'une trame, puisqu'une zone peut s'étendre sur toute la hauteur d'une trame. Elle consiste d'abord à lire successivement le contenu de chaque adresse de la mémoire d'adresses 7, dans la partie dédiée à la trame courante, car le contenu de chaque adresse peut être un numéro de zone. Pour cela, le générateur 9 fournit une suite croissante de valeurs d'adresse zm sur sa borne de sortie 19 qui est reliée à l'entrée d'adresses de lecture de la mémoire 7. Une lecture à l'adresse z dans la mémoire d'adresses 7 m fournit ensuite une valeur actuelle de numéro de zone, Zm, désignant une zone qui a absorbé la zone Zm, si celle-ci a été absorbée. Sinon, elle fournit une valeur égale à zm. Ainsi la mémoire d'états ne reçoit que des
adresses correspondant à des zones existantes.
Une lecture dans la mémoire d'états 8, à cette adresse Zm' fournit la valeur E(Zm) des composantes du vecteur d'état de la zone de numéro Zm à la borne d'entrée 20 du générateur 9. A partir des données constituées par la valeur des composantes de ce vecteur d'état, le générateur 9 détermine les zones homologues de la zone Zm dans la trame de référence, en balayant tous les numéros de zone possibles dans la partie de la mémoire d'adresses 7 dédiée à la trame précédente. Lorsque plusieurs valeurs d'adresses zm, de la mémoire d'adresses 7, contiennent une même valeur Zm, parce que la zone Zm a absorbé plusieurs zones, cette tâche de recherche est répétée inutilement plusieurs fois par le générateur 9, mais cela n'a pas d'autre inconvénient qu'une perte de temps. Comme cela sera décrit par la suite, les numéros des zones absorbées sont considérés comme disponibles et sont attribués dès que possible à de nouvelles zones, par conséquent il reste dans la mémoire d'adresses 7 peu d'adresses correspondant à des zones ayant été absorbées, donc il arrivera peu souvent que le générateur 9 réalise cette tâche de
recherche inutilement.
Après avoir fourni chaque valeur zm, le générateur 5 fournit à l'entrée d'adresses de lecture de la mémoire d'adresses 7 une suite croissante de valeurs d'adresses zh pour lire successivement le contenu de chaque adresse de la mémoire 7, dans la partie dédiée à la trame de référence, car chacune peut être le numéro d'une zone homologue de la zone zm. La mémoire d'adresses 7 fournit à l'entrée d'adresse de lecture de la mémoire d'états 8 et à la borne d'entrée 21 du générateur 9 une valeur Zm lue à l'adresse Zm de la partie dédiée à la trame courante puis une suite de valeurs Zh lues aux adresses Zh successives, dans la partie dédiée à la trame de référence. Les adresses ainsi constituées par la valeur Zm puis la suite de valeurs Zh permettent de lire le vecteur d'état E(Zm) puis une suite de vecteurs d'états E(Zh) dans la mémoire d'états 8. Puis ces vecteurs d'état sont appliqués à la borne d'entrée 20 du générateur 9. Le générateur 9 détecte toutes les zones Zh qui sont
homologues de la zone Zm, s'il yen a.
Lorsque la suite des valeurs zh est terminée, le générateur 9 a déterminé, parmi toutes les zones homologues à la zone Zm, celle qui a la plus grande ancienneté. Soit Z. le numéro de cette zone. Le générateur 9 ) a alors pour fonction de valider la zone Zm si son ancienneté est au moins eégale à 3 intervalles inter-images et est supérieure ou égale à la moitié de l'ancienneté maximale des zones de la trame courante; puis de donner une valeur I ou 0 au bit indicateur d'élimination de la zone, ELI(Zm), respectivement si la zone est validée ou si elle ne l'est pas. Il détermine ainsi, pour chacune des zones Zm existant dans la trame courante, les secondes composantes E2(Zm) du vecteur d'état E(Zm), qui restaient à compléter: NZH(Zm) = N(Zj)
SXH(Z) = SX(Z.) (18)
m j
SYH(Z_) = SY(Z.)
ANC(Zm) = 1 + ANC(Zj) ELI(Z) = 0 ou 1 m Ces composantes sont ensuite inscrites dans la mémoire d'états 8 à l'adresse Zm de la partie dédiée à la trame courante. Puis le générateur
9 fournit l'adresse z suivante jusqu'à la dernière valeur z possible.
m m Dans une application o cet exemple de réalisation a seulement pour fonction de détecter les points en mouvement vrai, le rôle du générateur 9 s'arrête là. La valeur du bit indicateur cPd'élimination qui est parmi les composantes du vecteur d'état de chaque zone, permet de savoir pour chaque zone, si elle a un mouvement vrai ou bien un mouvement dû
au bruit.
Dans l'application à l'estimation de la vitesse de translation d'un objet, cet exemple de réalisation réalise ensuite le traitement de fusion des zones de la trame courante ayant en commun une même zone homologue la plus ancienne. Le générateur 9 fournit une suite croissante
d'adresses zq à l'entrée d'adresses de lecture de la mémoire d'adresses 7.
q Celle-ci fournit une suite d'adresses Z à l'entrée d'adresse de lecture de q la mémoire d'états 8. Cette dernière fournit une valeur Ep(Zq) du vecteur p q d'état de la zone Zq, au générateur 9. Après chaque valeur zq, le générateur 9 fournit une suite croissante d'adresses Zf, allant de la valeur
z + I à ZMAX, à l'entrée d'adresse de lecture de la mémoire d'adresses 7.
q Celle-ci fournit une suite d'adresses Zf à l'entrée d'adresse de lecture de la mémoire d'états 8. Cette dernière fournit au générateur 9 une suite de vecteurs d'états Ep(Zf). Le générateur détermine quelles sont les zones Zf pouvant être fusionnées dans chaque zone Z puis commande Pécriture q
d'une valeur actualisée Ea(Zq) du vecteur d'état de la zone Zq considéré.
Puis le générateur 9 réalise le traitement d'estimation de la vitesse de l'objet et d'estimation des coordonnées de son barycentre. Pour cela, il fournit à l'entrée d'adresse de lecture de la mémoire d'adresses 7 une suite croissante d'adresses z.i. La mémoire 7 fournit à la mémoire 8 l une suite d'adresses Zi. La mémoire 8 fournit au générateur 9 une suite de valeurs Ep(Zi) des vecteurs d'état de zones Zi Pour chaque zone Zi validée, le générateur 9 calcule les composantes du vecteur de translation
TGx(Zi), TGy(Zi) selon les formules (14)et (15).
Quand la suite des adresses zi est terminée, le générateur 9 calcule le vecteur translation (TOx, TOy) représentant le mouvement de l'objet, selon les formules (8) et (9). Connaissant la durée ICR de l'intervalle entre la trame courante et la trame de référence, il en déduit l'estimation (VOx, VOy) de la vitesse de l'objet, selon les formules (10) et
(11), puis l'estimation filtrée (VOF, VOF y) selon les formules (18) et (19).
Il calcule aussi les coordonnées du barycentre de l'objet (XO, YO) selon les formules (12) et (13). Finalement il fournit les valeurs (XO, YO) et (VOFx, VOFy) sur les bornes de sortie 35 et 36, qui constituent les sorties
du dispositif de détection de mouvement et d'estimation de vitesse.
Sur la figure 9, les moyens de commande 4 comportent: un générateur de signaux d'horloge 40; deux registres 41 et 42; et un circuit séquenceur 43. Le générateur 40 fournit des signaux d'horloge HPI,..., HP9, HZ au rythme de l'analyse des points, un signal d'horloge HL au rythme del'analyse des lignes, et un signal d'horloge HT au rythme de
l'analyse des trames, qui commandent l'ensemble des éléments du disposi-
tif de détection de mouvement et d'estimation de vitesse; et en particu-
lier le circuit séquenceur 43 qui a pour rôle de fournir des signaux binaires de commande CI,..., C12; des mots binaires de commande SEI, SLI, SE2, SL2; le numéro de la trame courante NTC; la valeur ICR de l'intervalle entre la trame courante et la trame de référence; et deux mots binaires Y(PC), X(PC) qui sont les coordonnées du point courant dans l'image, les axes de ces coordonnées étant orientés dans le sens de progression de l'analyse de l'image, c'est-à-dire de gauche à droite pour l'axe des X et de haut en bas pour l'axe des Y. Les signaux d'horloge HPI,..., HP9 sont déphasés entre eux de telle sorte qu'ils sont répartis régulièrement sur une durée correspondant à trois points d'image. Ainsi, pendant le traitement du point courant, commence le traitement du point suivant et s'achève le traitement du
point précédant le point courant.
Une entrée des moyens 4 est reliée à une entrée du circuit 43 et à une entrée du registre 41 pour leur fournir la suite de valeurs M(PC). Une entrée de commande de ce registre 41 reçoit le signal d'horloge HPI et une sortie est reliée à une entrée du circuit séquenceur 43 et à une entrée du registre 42. Le registre 42 a une entrée de commande recevant le signal d'horloge HPI et une sortie reliée à une entrée du circuit séquenceur 43. Le registre 41 a une capacité d'une valeur alors que le registre 42 est un registre à décalage ayant une capacité correspondant à une ligne moins un point d'image. Ils ont pour rôle de retarder les valeurs M(PC) d'une durée correspondant respectivement à un point et à une ligne, afin de fournir au circuit séquenceur 43 les valeurs M(PA) et M(PG) codant l'état du point voisin au-dessus et l'état du point voisin à gauche du point courant. En fonction des valeurs M(PC), M(PA), MP(PG), le circuit 43 élabore une séquence de signaux binaires Cl,..., C12, pour commander
tous les éléments du dispositif de détection et de mouvement et d'estima-
tion de vitesse, et élabore les mots binaires SEI, SLI, SE2, SL2.
Le mot binaire SEI sélectionne l'une des deux parties de la mémoire 10 et valide la fonction écriture dans la partie sélectionnée. Le mot binaire SLI sélectionne l'une des deux parties de la mémoire 10 et valide la fonction lecture dans la partie sélectionnée; conformément au tableau n 2 ci-dessous, o les chiffres indiquent les numéros des trames en cours d'écriture, de lecture, ou de stockage; o le mot stockage indique une mémorisation sans lecture ni écriture; o le mot binaire de commande SEI = I valide la première partie de la mémoire 10 pour une écriture; o le mot binaire SEI = 2 valide la seconde partie de la mémoire pour une écriture; o le mot binaire SLI = I valide la première partie de la mémoire 10 pour une lecture; et o le mot binaire SLI = 2 valide la seconde partie de la mémoire 10 pour une lecture. La partie du tableau entre les pointillés correspond à une période des signaux de commande
SE 1 et SLI.
Tableau n 2
numéro numéro Mémoire 10 mots de trame trame commande courante réf. première partie seconde partie SEI SLI !5 I écriture I 1 2 1 lecture I écriture 2 2 1 3 1I lecture I stockage 2 1 4 I lecture I stockage 2 1 5 2 écriture 5 lecture 2 I 2 6 2 stockage 5 lecture 2 2 7 2 stockage 5 lecture 2 2 8 5 lecture 5 écriture 8 2 1 9 5 lecture 5 stockage 8 1 10 5 lecture 5 stockage 8 1 1l 8 écriture 11 lecture 8 I 2 12 8 stockage 11 lecture 8 2 13 8 stockage 11 lecture 8 2 14 11 lecture 11 écriture 14 2 1 15 11 lecture 11 stockage 14 1 16 11 lecture 11 stockage 14 1
. . .....................DTD: Les mots binaires SE2 et SL2 sélectionnent, respectivement pour l'écriture et pour la lecture, les 3 parties de la mémoire d'adresses 7 et les 3 parties de la mémoire d'états 8. Les signaux de commande SE2, SL2 sont
conformes au tableau n 3 ci-dessous.
Tableau n 3
numéro numéro Mémoires 7 et 8 trame trame première seconde troisième SE2 SL2 courante réf. partie partie partie 1 écriture I 1 2 I lecture I écriture 2 2 1 3 I lecture I stockage 2 écriture 3 3 1 4 I lecture 1 stockage 2 écriture 4 3 1 5 2 écriture 5 lecture 2 I 2 6 2 stockage 5 lecture 2 écriture 6 3 2 7 2 stockage 5 lecture 2 écriture 7 3 2 8 5 lecture 5 écriture 8 2 1 9 5 lecture 5 stockage 8 écriture 10 3 1 10 5 lecture 5 stockage 8 écriture 10 3 1 Il 8 écriture 11 lecture 8 1 2 12 8 stockage 11 lecture 8 écriture 12 3 2 13 8 stockage 11 lecture 8 écriture 13 3 2 14 11 lecture 11 écriture 14 2 1 15 11 lecture 11 stockage 14 écriture 15 3 1 16 11 lecture 11 stockage 14 écriture 16 3 1
Le chiffre dans la colonne SE2 indique la partie qui est sélec-
tionnée pour écrire, et le chiffre dans la colonne SL2 indique la partie qui est sélectionnée pour une lecture. Les pointillés délimitent une période
des signaux de commande SE2 et SL2.
La réalisation du générateur 40 de signaux d'horloge et du séquenceur 43 est classique. Elle est à la portée de l'homme de PArt à partir des valeurs de NTC, ICR, SEI, SL1, SE2, SL2 données dans les
tableaux n 1, 2 et 3, et à partir de la description donnée plus loin, des
commandes réalisées par les signaux CI à C12, au rythme des points.
La figure 10 représente le schéma synoptique d'un exemple de réalisation de la mémoire d'états 8. Il comprend: trois parties, 123 à 125, chacune ayant une capacité correspondant à une trame; deux dispositifs de commutation 121 et 122, commandés respectivement par les mots binaires SE2, SE3 et SL2, SL3; et un étage tampon à trois états, 126. Le
dispositif de commutation 121 possède: trois entrées reliées respecti-
vement à trois bornes d'entrées 126 à 128 de la mémoire 8, constituant respectivement l'entrée d'adresse d'écriture, l'entrée de données et l'entrée de commande d'écriture de la mémoire 8; trois sorties reliées respectivement aux entrées d'adresse d'écriture des trois parties 123 à ; trois sorties reliées respectivement aux entrées de données des trois parties 123 à 125; trois sorties reliées respectivement aux entrées de commande d'écriture des trois parties 123 à 125. Le dispositif de
commutation 121 transmet vers une seule des parties toutes les informa-
tions nécessaires pour réaliser une écriture, le choix de cette partie étant fixé par la valeur du mot SE2 ou SE3, selon l'instant considéré au cours du
cycle de fonctionnement.
Le dispositif de commutation 122 possède deux entrées et une sortie reliées respectivement à des bornes d'entrées 129 et 131 de la mémoire 8 et à une entrée de l'étage tampon 136. La sortie de l'étage tampon 136 est reliée à la borne de sortie 130 de la mémoire 8. Les bornes 129, 131, 130 constituent respectivement l'entrée d'adresse de lecture, l'entrée de commande de lecture, et la sortie de données de la mémoire 8 sous la commande des mots binaires SL2 et SL3. Le dispositif 122 transmet vers une seule des parties de la mémoire 8 l'adresse de lecture et le signal de commande de lecture appliqués respectivement aux bornes d'entrées 129 et 131, et transmet vers l'étage tampon 136 les données lues
dans cette partie.
Les bornes d'entrée 128 et 131 reçoivent respectivement des signaux de commande C12 et CII fournis par les moyens de commande 4 au cours du traitement d'attribution des points d'image à des zones, et elles reçoivent respectivement les signaux de commande DI et D2, fournis par le générateur 9 au cours du traitement de détermination des zones homologues. L'étage tampon 136 a une entrée de commande reliée à la borne d'entrée 131 pour être validé par les signaux CII et D2, pendant les
opérations de lecture.
La figure 11 représente le schéma synoptique d'un exemple de
réalisation du générateur 5 d'adresses et d'états. Cet exemple de réalisa-
tion comporte: un générateur d'adresses disponibles 50; deux multiple-
xeurs 49 et 51 équivalents à un commutateur d'un circuit à quatre positions; un multiplexeur 52 équivalent à un commutateur de sept
circuits à trois positions; un multiplexeur 53 équivalent à un commuta-
teur de sept circuits à deux positions; un ensemble de 17 registres, 54; six additionneurs 55, 60, 61, 63, 68, et 69; un registre 78 ayant une capacité d'une valeur; un registre à décalage 79, ayant une capacité correspondant à une ligne d'image moins un point; un circuit logique 62; quatre dispositifs, 56, 57, 64 et 65 de détermination de la valeur maximale parmi deux valeurs; quatre dispositifs, 64, 65, 66 et 67, de détermination de la valeur minimale parmi deux valeurs; un ensemble de dix étages tampons, 70, ayant des sorties pouvant prendre trois états dont un état à
haute impédance.
Les valeurs AD, z(PC), E(z(PC)), Z, Z' mentionnées sur la figure 1 sont celles présentes dans le générateur 5 à l'instant o se termine le traitement pour attribuer un numéro de zone au point courant. Il est à noter que certaines de ces valeurs seront réutilisées, mais en changeant d'appellation, pour le traitement du point suivant constituant le prochain
point courant.
Les valeurs Zt et E(Zt), qui sont mentionnées aussi sur la figure 1 1l, ne sont pas présentes dans le générateur 5 pendant le traitement pour attribuer un numéro de zone au point courant. Elles correspondent à une zone dite zone testée et n'interviennent que pendant les intervalles de temps entre les analyses de deux lignes consécutives, pour le traitement
de filtrage des petites zones et de réutilisation de leurs numéros de zone.
Le générateur 5 possède une borne d'entrée 12 recevant le mot binaire M(PC) et qui est reliée à une entrée du registre 78, et à une entrée du circuit logique 62. Il possède aussi une borne d'entrée 18 reliée à une entrée multiple de l'ensemble des registres 54 pour lui fournir la valeur E(Z') des composantes du vecteur d'état de la zone de numéro Z' ou bien la valeur E(Zt) des composantes du vecteur d'état de la zone de numéro Zt selon que l'on considère le fonctionnement pendant Panalyse d'une ligne ou selon que l'on considère le fonctionnement pendant l'intervalle entre les analyses de deux lignes. En fait, le générateur 5 n'utilise et n'actualise que
les premières composantes, notées E1(Z') et Ei(Zt), de ces vecteurs d'état.
Il possède aussi une borne d'entrée 16 reliée à une entrée de l'ensemble 54 et recevant le numéro de zone Z' du point au-dessus du point courant pendant l'analyse d'une ligne, ou recevant le numéro Zt de chaque zone
testée, pendant l'intervalle de temps entre les analyses de deux lignes.
L'ensemble de registres 54 stocke la valeur du numéro de Z' et la valeur El (Z') des premières composantes du vecteur cPd'état de la zone Z', pendant l'analyse d'une ligne. L'ensemble de registres 54 stocke la valeur du numéro Zt et la valeur El(Zt) des premières composantes du vecteur
d'état de la zone Zt, pendant l'intervalle entre les analyses de deux lignes.
Une entrée multiple de l'ensemble de registres 54 est reliée aux sept sorties du multiplexeur 53 pour recevoir la valeur El(z(PC)) des premières composantes du vecteur d'état de la zone z(PC) à laquelle est attribué le point courant, et est reliée à une sortie du circuit logique 62 fournissant une valeur T(z(PC)) constituant le bit indicateur d'absorption de la zone à laquelle est attribué le point courant. La valeur T(z(PC)) sera stockée ultérieurement dans l'ensemble 54 pour constituer la valeur T(Z) du bit indicateur d'absorption de la zone du point voisin à gauche pour le
prochain point constituant le point courant. La valeur de chaque compo-
sante sera stockée ultérieurement dans l'ensemble de registres 54 pour constituer la valeur E1(Z) des premières composantes du vecteur d'état de la zone du point à gauche pour le prochain point constituant le point courant, c'est-à-dire lorsque le point courant actuel sera devenu le point
voisin à gauche du prochain point courant.
Une entrée de l'ensemble 54 est reliée à la sortie du multiplexeur 49 pour recevoir la valeur z(PC) du numéro de zone attribué au point courant. Cette valeur sera stockée ultérieurement dans l'ensemble 54 pour constituer la valeur Z du numéro de zone du point à gauche pour le
prochain point constituant le point courant.
Le registre 78 a une entrée reliée à la borne d'entrée 12 pour recevoir la valeur M(PC). Il a une capacité d'une valeur et procure un retard correspondant à un point d'image, il fournit donc sur sa sortie la valeur M(PG) codant l'état du point à gauche du point courant. Cette sortie est reliée à une entrée du circuit logique 62, à une entrée du
registre à décalage 79, et à une entrée de l'ensemble d'étages tampons 70.
Le registre 79 a une capacité permettant de retarder les valeurs M(PG) d'un temps correspondant à une ligne d'image moins un point, ainsi il
fournit sur une sortie une valeur M(PA) qui code l'état du point voisin au-
dessus du point courant. Cette sortie est reliée à une entrée du circuit
logique 62.
Le circuit logique 62 possède en outre six sorties fournissant six
mots binaires respectivement à des entrées de commande des multiple-
xeurs 49, 51, 52, 53; à une borne d'entrée 75 du générateur 50; et à une borne d'entrée 71 du générateur 50. Ces mots binaires sont déterminés en fonction des valeurs appliquées aux entrées du circuit logique 62 et qui
permettent de distinguer les différents cas énumérés dans la description
de la mise en oeuvre du procédé.
L'ensemble de registres 54, le registre 78 et le registre 79 possèdent des entrées de commande recevant le signal d'horloge HPI au
rythme de l'analyse des points.
Le multiplexeur 49 possède une sortie notée a et quatre entrées notées I à 4 sur la figure 11 et qui seront désignées par la, 2a, 3a, 4a,
dans la description qui suit. Le multiplexeur 51 possède une sortie notée b
et quatre entrées notées 1 à 4 sur la figure et qui seront désignées par lb,
2b, 3b, 4b, dans la description qui suit. Le multiplexeur 52 possède sept
sorties notées c, d, e, f, g, h, k, chacune de ces sorties pouvant être en communication avec trois entrées notées, 1, 2, 3, sur la figure et
désignées par Ic, 2c, 3c, etc... dans la description suivante.
Le multiplexeur 53 possède sept sorties notées m, n. p2 SI r, s. t, chacune de ces sorties pouvant être mises en communication avec deux entrées notées respectivement 1 et 2, et désignées par lm, 2m, etc... dans
la description suivante. L'ensemble des registres 54 possède 17 sorties
numérotées de RI à R17. Ces sorties fournissent des valeurs de compo-
santes du vecteur cd'état de la zone Z et du vecteur d'état de la zone Z', ou du vecteur Fd'état de la zone Zt, selon que le fonctionnement est considéré pendant l'analyse d'une ligne d'image ou bien pendant lPintervalle de temps séparant les analyses de deux lignes d'image. Pour plus de clarté les valeurs mentionnées sur les sorties de l'ensemble de registres 54 sont
uniquement celles présentes pendant l'analyse d'une ligne. Pendant Pinter-
valle entre les analyses de deux lignes, les valeurs se rapportant à la zone Z' sont à remplacer par les valeurs se rapportant à la zone Zt et celles se
rapportant à la zone Z n'existent pas.
La sortie RI de l'ensemble 54 est reliée aux entrées 4a et 3b du multiplexeur 49 et du multiplexeur 51, et à une entrée du circuit logique 62, pour leur fournir la valeur Z. La sortie R2 est reliée à une borne d'entrée 72 du générateur 50, aux entrées 3a et 4b du multiplexeur 49 et du multiplexeur 51, et à une entrée du circuit logique 62, pour leur fournir la valeur Z'. La sortie R3 est reliée à l'entrée lc du multiplexeur 52 et à
une première entrée de l'additionneur 55 pour leur fournir la valeur N(Z).
La sortie R4 est reliée à une borne d'entrée 74 du générateur 50, à l'entrée 2c du multiplexeur 52, et à une seconde entrée de l'additionneur
, pour leur fournir la valeur N(Z').
La sortie R5 est reliée à la borne d'entrée 73 du générateur 50, à l'entrée ld du multiplexeur 52, et à une première entrée du dispositif 56, pour leur fournir la valeur YMAX(Z). La sortie R6 est reliée à l'entrée 2d du multiplexeur 52 et à une seconde entrée du dispositif 56, pour leur fournir la valeur YMAX(Z'). La sortie R7 est reliée à l'entrée le du multiplexeur 52 et à une première entrée du dispositif 57, pour leur fournir la valeur XMAX(Z). La sortie R8 est reliée à l'entrée 2e du multiplexeur 52 et à une première entrée du dispositif 57, pour leur
fournir la valeur XMAX(Z').
La sortie R9 est reliée à l'entrée If du multiplexeur 52 et à une première entrée du dispositif 58 pour leur fournir la valeur YMIN(Z). La sortie RIO est reliée à l'entrée 2f du multiplexeur 52 et à une seconde entrée du dispositif 58, pour leur fournir la valeur YMIN(Z'). La sortie RII est reliée à l'entrée lg du multiplexeur 52 et à une première entrée du dispositif 59, pour leur fournir la valeur XMIN(Z). La sortie R12 est reliée à l'entrée 2g du multiplexeur 52 et à une seconde entrée du dispositif 59 pour leur fournir la valeur XMIN(Z'). La sortie R13 est reliée à l'entrée lh du multiplexeur 52 et à une première entrée de l'additionneur 60, pour leur fournir la valeur GX(Z). La sortie R14 est reliée à l'entrée 2h du multiplexeur 52 et à une seconde entrée de l'additionneur 60 pour leur fournir la valeur GX(Z'). La sortie R15 est reliée à l'entrée lk du multiplexeur 52 et à une première entrée de l'additionneur 61, pour leur fournir la valeur GY(Z). La sortie R16 est reliée à l'entrée 2k du multiplexeur 52 et à une seconde entrée de l'additionneur 61 pour leur fournir la valeur GY(Z'). La sortie R17 est reliée à une entrée du circuit
logique 62 pour lui fournir la valeur T(Z).
Les additionneurs 55, 60, 61 ont des sorties reliées respectivement aux entrées 3c, 3h, 3k, du multiplexeur 52. Les entrées 2a et 2b du multiplexeur 51 sont reliées ensemble à une borne de sortie 76 du générateur d'adresses disponibles 50, pour recevoir une valeur Zd qui est un numéro de zone disponible. Les sorties a et b des multiplexeurs 49 et 51 sont couplées respectivement aux bornes de sortie 15 et 14 du générateur 5, par l'intermédiaire de deux étages tampons de l'ensemble 70, pour fournir respectivement la valeur z(PC) et la valeur AD. La sortie b du multiplexeur 51 est reliée d'autre part à une entrée de l'ensemble de registres 54, correspondant au registre ayant pour sortie la sortie Ri et destinée à stocker la valeur Z. La sortie a du multiplexeur 49 est reliée
d'autre part à une borne d'entrée 77 du générateur 50.
I0 Les additionneurs 55, 60, 61 ont des sorties reliées respectivement aux entrées 3c, 3h, 3k, du multiplexeur 52. Les entrées 2a et 2b du multiplexeur 51 sont reliées ensemble à une borne de sortie 76 du générateur d'adresses disponibles 50, pour recevoir une valeur Zd qui est un numéro de zone disponible. Les sorties a et b des multiplexeurs 49 et 51 sont couplées respectivement aux bornes de sortie 15 et 14 du générateur 5, par l'intermédiaire de deux étages tampons de l'ensemble , pour fournir respectivement la valeur z(PC) et la valeur AD. La sortie b du multiplexeur 51 est reliée d'autre part à une entrée de l'ensemble de registres 54 correspondant au registre ayant pour sortie la sortie 1 et destinée à stocker la valeur Z. La sortie a du multiplexeur 49 est reliée
d'autre part à une borne d'entrée 77 du générateur 50.
Les sorties c, d, e, f, g, h, k, du multiplexeur 52 sont reliées respectivement à des premières entrées de l'additionneur 63, du dispositif 64, du dispositif 65, du dispositif 66, du dispositif 67, de l'additionneur 68 et de l'additionneur 69. Les entrées 2m, 2n, 2p, 2q, 2r, 2s, 2t, du multiplexeur 53 sont reliées respectivement à des sorties de l'additionneur 63, du dispositif 64, du dispositif 65, du dispositif 67, de l'additionneur 68 et de l'additionneur 69. L'entrée I m du multiplexeur 53 et une seconde entrée de l'additionneur 63 reçoivent une valeur I permanente. L'entrée In, l'entrée lq, et l'entrée It, du multiplexeur 53, et des secondes entrées des dispositifs 64, 66, et 69, sont reliées, par une liaison non représentée, à une sortie des moyens de commande 4 fournissant la valeur Y(PC). Les entrées lp, Ir, Is, du multiplexeur 53, et des secondes entrées des dispositifs 65 et 67 et de l'additionneur 68, sont reliées, par une liaison non représentée, à une sortie des moyens de commande 4 pour recevoir la
valeur X(PC).
Les sorties m, n, p, q, r, s, t, du multiplexeur 53 sont couplées à la borne de sortie 17 du générateur 5 par l'intermédiaire de sept étages tampons respectivement, appartenant à l'ensemble 50, et sont reliées à la seconde entrée multiple de l'ensemble de registres 54. L'ensemble des valeurs fournies par les sorties du multiplexeur 53 et la valeur T(Z(PC" fournie par le circuit 62 constituent la valeur E1(z(PC)) des premières composantes du vecteur d'état de la zone du point courant. L'ensemble 70 des étages tampons est commandé par un signal de commande C1 fourni par les moyens de commande 4. En l'absence de ce signal les sorties des
étages tampons présentent une haute impédance.
Pendant la durée de l'analyse d'une ligne, pour chaque point de cette ligne, le fonctionnement du générateur 5 d'adresses et d'états est le suivant. Les sorties de l'ensemble de registres 54 fournissent les numéros de zones Z et Z' du point voisin à gauche et du point voisin au- dessus du point courant, et les valeurs des premières composantes des vecteurs
d'état des zones Z et Z' auxquelles appartiennent ces deux points voisins.
D'autre part, les registres 78 et 79 fournissent les valeurs M(PG) et M(PA) codant l'état des deux points voisins du point courant. Le circuit logique 62 reçoit les valeurs Z, Z', T(Z), M(PC), M(PG), M(PA) et en déduit les signaux de commande à appliquer au générateur d'adresses disponibles 50 et aux multiplexeurs 49, 51, 52, 53, conformément aux règles logiques
mentionnées précédemment dans la description de la mise en oeuvre du
procédé, en distinguant principalement quatre cas. Les signaux de commande fournis par ce circuit logique 62 réalisent à l'intérieur des multiplexeurs 49, 51, 52, 53 les liaisons représentées dans le tableau n 4 représenté sur la figure 12 en fonction des diverses valeurs d'entrée. Par exemple, un chiffre 3 placé dans la colonne "multiplexeur 52" signifie que le multiplexeur 52 réalise les liaisons 3-c, 3-d, 3-e,..., 3-k. Les blancs indiquent une valeur indifférente. La réalisation d'un circuit logique 62
appliquant ces règles est à la portée de l'homme de l'art.
Les valeurs fournies par la borne de sortie 17 du générateur 5 sont les valeurs données par les formules (1) à (5) mentionnées dans la
* description de la mise en oeuvre du procédé. Les valeurs dites actualisées
et notées avec l'indice "a" dans ces formules sont les valeurs fournies par la borne de sortie 17. Les valeurs dites précédentes et notées avec l'indice "p" dans ces formules sont les valeurs fournies par les sorties RI à R17 de l'ensemble des registres 54. Sur la figure 11, les indices "p" sont omis pour simplifier les notations. Par exemple, la valeur: MAXa(Z') = maximum(YMAXp(Z), Y(PC), YMAXp(Z')) est calculée par les dispositifs 56 et 64 de détermination d'une valeur maximale parmi deux valeurs, opérant en cascade. Le dispositif 56 transmet la valeur la plus grande parmi YMAXp(Z) et YMAXp(Z'). Cette valeur maximale est P p transmise ensuite par le multiplexeur 52 au dispositif 64. Le dispositif 64 transmet la valeur la plus grande parmi celle déterminée par le dispositif
56 et la valeur Y(PC).
Pendant l'analyse de chaque ligne, le rôle du générateur d'adresses disponibles 50 est de fournir la valeur Zd d'une adresse qui est disponible dans la mémoire d'états 8 au moment o une zone nouvelle est créée, c'est-à-dire quand le générateur 50 reçoit un signal logique K fourni par le circuit 62 à la borne d'entrée 71 du générateur 50. Il a aussi pour fonction de détecter les zones qui sont terminées et qui ont un nombre de points inférieur à une valeur de seuil, afin de réutiliser la valeur d'adresses qui constitue ce numéro de zone. Il doit aussi, dès que possible, réutiliser le numéro d'une zone qui disparaît par fusion dans une autre. Le circuit logique 62 fournit un signal logique A à sa borne d'entrée 75 pour indiquer qu'il y a absorption d'une zone. Le générateur 50 peut réutiliser la zone dont le numéro est constitué par la valeur AD qui est appliquée à sa borne d'entrée 77, après un délai correspondant à 3 lignes, puisque ce numéro de zone ne sert que pour déterminer la valeur actualisée du numéro de zone Z' du point voisin au- dessus du point courant. Cet exemple de réalisation
n'a pas pour fonction de déterminer l'état de chaque point individuelle-
ment, mais l'état de chaque zone, il n'est donc pas nécessaire de connaître, à la fin de chaque trame, le premier numéro de zone attribué à
chaque point de cette trame.
La figure 13 représente le schéma synoptique d'un exemple de réalisation du générateur d'adresses disponibles 50. Cet exemple de réalisation comporte: un multiplexeur 97, à deux entrées et une sortie; quatre comparateurs, 98, 99, 100, 108; un soustracteur 101; une porte logique ET à quatre entrée, 102; une porte logique ET à deux entrées, 103; une porte logique OU à deux entrées, 104; une mémoire pile 105; une porte logique ET, 106; un ensemble de portes logiques 109; un
registre à décalage 110; et un dispositif d'initialisation 107.
L'ensemble de portes logiques 109 a une entrée reliée à la borne d'entrée 77 pour recevoir un mot binaire constituant la valeur d'adresse AD qui est le numéro d'une zone absorbée, ou le numéro d'une zone nouvelle, ou une valeur nulle. L'ensemble 109 possède une entrée de commande reliée à la borne d'entrée 75 pour recevoir le signal A indiquant qu'une zone est absorbée, c'est-à-dire que la valeur AD est un numéro de zone absorbée et qu'il pourra donc être réutilisé. L'ensemble de portes 109 est alors validé, il transmet la valeur AD à une sortie qui est reliée à une entrée du registre à décalage 110. S'il n'est pas validé il fournit une valeur nulle. Le registre à décalage 110 est commandé par le signal d'horloge HP2, au rythme d'analyse des points. Il retarde les numéros des zones absorbées d'une durée correspondant à trois lignes d'image pour que ces numéros ne soient pas réutilisés tant qu'ils peuvent être utiles pour déterminer les numéros de zone actuels des points au-dessus de la ligne du point courant, en vue de la détermination de la zone à laquelle le point courant est attribué, et surtout pour déterminer les numéros de zone actuels des points situés sur la deuxième ligne au-dessus de la ligne du point courant, en vue du filtrage des petites zones et de la réutilisation de
leurs numéros.
La sortie du registre 110 est reliée à une première entrée du multiplexeur 97 et à une première entrée du comparateur 108. Une seconde entrée du comparateur 108 reçoit une valeur 0 permanente. Une sortie du comparateur 108 est reliée à une première entrée de la porte ET 103, pour que celle-ci soit validée lorsque le numéro de zone retardé et
restitué par le registre 110 est différent de 0. Une seconde entrée de la porte ET 103 reçoit un signal d'horloge HP3 au
rythme de l'analyse des points. Une sortie de la porte 103 est reliée à une première entrée de la porte OU 104. Une sortie de la porte OU 104 est reliée à une entrée de commande d'écriture de la mémoire pile 105. Une sortie du multiplexeur 97 est reliée à une entrée de données de la mémoire pile 105. Il possède une seconde entrée reliée à la borne d'entrée 72, et une entrée de commande recevant le signal de commande C2 pendant la durée cPd'analyse de chaque ligne d'image. Il transmet alors les numéros de zones absorbées fournis par le registre 110. Puis ceux-ci sont inscrits dans la mémoire pile 105, sous l'action du signal d'horloge
HP3, à condition qu'ils ne soient pas nuls.
Le multiplexeur 97 possède une seconde entrée reliée à la borne
d'entrée 72 pour recevoir et transmettre une suite de valeurs Zt consti-
tuant les numéros des zones testées, pendant les intervalles de temps entre les analyses de deux lignes successives. La valeur N(Zt) du nombre de points de la zone testée et la valeur YMAX(Zt) de l'ordonnée maximale des points de la zone testée sont appliquées respectivement aux bornes d'entrée 74 et 73 par les sorties 4 et 5 de l'ensemble de registres 54. Ces valeurs ont été lues dans la mémoire d'états 8 à l'adresse Z.t. Ce sont donc des valeurs actualisées qui tiennent compte des points attribués à des
zones au cours du traitement des points de la ligne d'ordonnée Y(PC) - 1.
La sortie de la porte ET 102 est reliée à une seconde entrée de la
porte OU 104. La porte logique ET 102 a quatre entrées reliées respecti-
vement à une sortie du comparateur 98, à une sortie du comparateur 99, à une sortie du comparateur 100 et à une sortie, non représentée, des moyens de commande 4 pour recevoir le signal d'horloge HZ qui n'existe
que pendant les intervalles de temps entre les analyses de lignes.
Les comparateurs 98, 99, et 100 permettent de vérifier que la zone Zt remplit trois conditions: - Le comparateur 98 a une première entrée reliée à la borne d'entrée 72 et une seconde entrée recevant la valeur 0, pour détecter si la zone testée est la zone de numéro 0, à laquelle est attribué tous les points qui ne sont pas en mouvement. Dans ce cas, la porte 102 ne doit pas être validée car le numéro 0 n'est pas un numéro disponible pour les zones de
points en mouvement.
- Le comparateur 99 a pour fonction de comparer la valeur N(Zt), du nombre de points dans la zone testée, à une valeur de seuil Nmin, par exemple égale à 5 points, et qui est réglable par l'utilisateur du dispositif en fonction de l'effet de filtrage qu'il souhaite obtenir. Lorsque la zone de numéro Zt a un nombre de points supérieur à la valeur de seuil, le comparateur 99 fournit un signal logique de valeur 0, la porte 102 n'est
donc pas validée. Ainsi les numéros des zones ayant une taille suffi-
samment grande ne sont pas réutilisés. Au contraire les numéros des zones ayant une taille inférieure ou égale à 5 points peuvent être réutilisés, si la
zone est terminée.
- Le comparateur 100 a pour rôle de comparer la valeur YMAX(Zt) de l'ordonnée maximale des points de la zone de numéro Zt à la valeur Y(PC) I qui est fournie par la sortie du soustracteur 101. Lorsque l'ordonnée maximale de la zone de numéro Ztest strictement supérieure à l'ordonnée Y(PC) - I de la ligne au-dessus de la ligne du point courant, il
est possible de conclure que la zone de numéro Ztest terminée, c'est-à-
dire qu'aucun autre point ne lui sera attribué. Dans le cas contraire, le comparateur 100 fournit un signal logique de valeur 0 et la porte 102 n'est pas validée. Le soustracteur 101 reçoit sur une première entrée la valeur Y(PC) fournie par les moyens de commande 4 et reçoit sur une seconde
entrée une valeur I qui est la valeur à soustraire à Y(PC).
La porte ET 102 est donc validée lorsque simultanément la zone de numéro Zt est terminée et a un nombre de points supérieur à 0 et inférieur ou égal à Nmin. La porte 102 transmet alors le signal d'horloge HZ à la porte OU 104 qui l'applique à l'entrée de commande d'écriture de
la mémoire pile 105.
Dans cet exemple, le signal d'horloge HZ appliqué à la porte 102 est un signal ayant le même rythme que celui de l'analyse des points, mais ce n'est pas indispensable. Ce signal d'horloge peut avoir un rythme différent du rythme d'analyse des points d'image puisque le traitement de filtrage des petites zones et de récupération de leurs numéros de zone est réalisé pendant l'intervalle de temps entre les analyses de deux lignes successives, c'est-à-dire pendant l'intervalle de temps o il n'y a pas de
point à attribuer à une zone.
La porte 106 possède une première entrée reliée à la borne d'entrée 71 recevant le signal logique K, une seconde entrée recevant un signal d'horloge HP4 dont le rythme est égal à celui de l'analyse des points, et une sortie reliée à une entrée de commande de lecture de la mémoire pile 105. Une sortie de données de la mémoire pile 105 est reliée à la borne de sortie 76. Lorsque le générateur 5 fournit le signal logique K, de valeur 1, indiquant qu'il y a création d'une nouvelle zone, la porte ET 106 est validée. Elle transmet le signal d'horloge HP4 à l'entrée de commande de lecture de la mémoire pile 105 et cette dernière fournit la valeur Zd d'une adresse disponible dans la mémoire d'états et pouvant
donc constituer le numéro d'une zone nouvelle.
La mémoire pile 105 possède une entrée multiple commandant son initialisation et reliée à une sortie du dispositif d'initialisation 107. Le dispositif 107 possède une entrée de commande recevant un signal d'horloge à la fréquence de trame HT. Le dispositif 107 a pour fonction de charger la mémoire pile 105 au moyen d'une suite de valeurs constituée par l'ensemble des adresses de la mémoire d'états 8. La réalisation de ce dispositif 107 est à la portée de l'homme de l'art, il peut comporter un dispositif de comptage pour générer une suite d'adresses et un générateur de signaux d'horloge pour actionner ce dispositif de comptage et pour commander l'écriture de la suite d'adresses dans la mémoire pile 105. Les numéros de zone à réutiliser sont inscrits au sommet de la pile des
adresses disponibles et le dernier inscrit est lu en premier. Par consé-
quent, les numéros à réutiliser sont réutilisés en priorité par rapport aux
numéros qui n'ont encore jamais été utilisés.
La figure 14 représente un schéma synoptique plus détaillé de la mémoire d'attente 6 et de la mémoire d'adresses 7. La mémoire d'attente 6 a deux fonctions: une première fonction consiste à stocker la valeur z(PC) du premier numéro de zone attribué à chaque point d'une image et la restituer avec un retard correspondant à une ligne moins trois points pour connaître la valeur z(PA) du premier numéro de zone attribué au point voisin du point courant sur la ligne au-dessus, cette valeur z(PA) étant utilisée ensuite comme adresse de lecture dans la mémoire d'adresses 7 pour y lire la valeur actuelle Z' du numéro de zone du point voisin au-dessus du point courant. Le retard procuré par la mémoire d'attente 6 ne correspond pas à une ligne entière car il faut tenir compte du fait que la lecture d'une valeur actualisée dans la mémoire d'adresses 6
a une durée correspondant à trois points d'image.
Une seconde fonction de la mémoire d'attente 6 consiste à fournir des numéros Zt de zones à tester, au générateur 50 d'adresses disponibles, pour permettre de déterminer les zones a filtrer et permettre de réutiliser leurs numéros. Pour cela la mémoire d'attente 6 stocke pendant un certain temps les valeurs z(PC) des numéros de zone attribués provisoirement aux points d'image lorsqu'ils constituent le point courant, puis les restitue au générateur 50 d'adresses disponibles sous la forme des valeurs notées zt. La durée de stockage est suffisante pour permettre de détecter si une zone est terminée ou non. D'autre part, la partie de la mémoire d'attente 6 dédiée à ce stockage des numéros de zone à tester réalise une suppression de certaines valeurs zt redondantes. Elle ne stocke pas une valeur de numéro de zone z(PC) pour chaque point d'image car la durée entre les analyses de deux lignes successives est beaucoup plus courte que la durée d'analyse d'une ligne et ne permet donc pas de réaliser
une lecture dans la mémoire d'états pour chaque point de chaque ligne.
Les zones ayant une certaine épaisseur et les autres portions d'image ayant aussi une certaine épaisseur, il est très fréquent qu'une succession de points sur une même ligne ait le même numéro de zone z(PC). Il est donc possible d'allèger le travail consistant à tester ces zones en ne réalisant le test qu'une seule fois lorsqu'une suite de points a été attribuée à une même zone. Pour cela, la mémoire d'attente 6 comporte des moyens permettant de détecter, dans la suite des valeurs z(PC), des valeurs successives identiques afin de ne stocker qu'une seule valeur. La détermination des zones à filtrer et la réutilisation de leurs numéros de zone, pour les points d'une ligne est réalisée après un certain délai tel que le traitement d'attribution des numéros de zone est terminé pour tous les
points de la seconde ligne qui suit la ligne considérée pour ce test.
Autrement dit, ce test est réalisé pour les zones des points de la ligne
d'ordonnée Y(PC) - 2 lorsque l'attribution des numéros de zone est termi-
née pour les points de la ligne d'ordonnée Y(PC).
La mémoire d'attente 6 comporte trois registres à décalage 84, , 89; un registre 90; un comparateur 91; un multiplexeur 88, à quatre entrées et deux sorties; deux démultiplexeurs à une entrée et deux sorties, 86 et 87; un multiplexeur 81, à deux entrées et une sortie; une
porte logique ET 80; et deux étages tampons, 82 et 83.
Le registre à décalage 89 possède une entrée série constituant l'entrée de données de la mémoire d'attente 6 et qui est reliée à la borne de sortie 15 du générateur 5 d'adresses et d'états pour recevoir la valeur z(PC) du numéro de zone attribué au point courant. Il est commandé par un signal d'horloge HP5, au rythme de l'analyse des points d'image. Il possède une sortie reliée à une entrée du registre 90. Le registre 90 a une capacité d'une valeur et il est commandé par le signal d'horloge HP5. Le comparateur 91 possède une première entrée reliée à une sortie du registre 90 et une seconde entrée reliée à la sortie du registre à décalage 89. Une sortie du comparateur 91 est reliée à une première entrée de la porte ET 80. Le registre 89 a pour rôle de retarder les valeurs des
numéros de zone attribués aux points successifs, d'une durée correspon-
dant à une ligne moins trois points.
Le registre 90 et le comparateur 91 ont pour rôle de comparer deux valeurs successives de cette suite de numéros de zone afin de valider la porte ET 80 seulement lorsque la valeur de numéro de zone fourni par la sortie du registre 89 est différente de celle fournie par la sortie du registre 90; autrement dit, la porte ET 80 est bloquée lorsque des points consécutifs ont une même valeur de numéro de zone. Une seconde entrée de la porte ET reçoit un signal d'horloge HP6 au rythme d'analyse des points, destiné à commander l'écriture des numéros de zone dans les registres à décalage 84 ou 85 alternativement. La porte ET 80 bloque donc la transmission de ce signal d'horloge lorsque des points consécutifs ont un même numéro de zone pour que cette valeur de numéro ne soit stockée qu'une fois. Ceci permet d'éviter de fournir des suites de valeurs zt identiques au générateur 50 d'adresses disponibles qui ne dispose que d'un
temps très limité pour tester ces zones.
Le multiplexeur 88 est équivalent à un commutateur de deux circuits à deux positions. Une première sortie est reliée à une entrée de données série du registre à décalage 84 et une seconde sortie est reliée à une entrée de données série du registre à décalage 85. La première sortie peut être mise en communication soit avec une première entrée reliée à la sortie du registre 89, soit à une seconde entrée recevant une valeur 0 permanente. La seconde sortie peut être mise en communication soit avec30 une troisième entrée recevant une valeur 0 permanente, soit avec une quatrième entrée reliée à la sortie du registre 89. Le multiplexeur 88 est commandé par un signal de commande C3 fourni par les moyens de commande 4. Ce signal de commande C3 a une valeur binaire qui change alternativement à chaque ligne d'image, de telle sorte que l'un des deux registres, 84 ou 85, est utilisé en écriture, pour écrire les valeurs fournies par la sortie du registre 89, pendant que l'autre registre est utilisé en lecture. Pendant que l'un des registres 84, 85 est utilisé en lecture, son entrée de données reçoit une valeur 0 pour inscrire des valeurs 0 à une extrémité de ce registre pendant que les valeurs contenues dans ce registre sont extraites à l'autre extrémité. Les registres 84 et 85 possèdent chacun une sortie de données série reliée respectivement à une première et une seconde entrée du multiplexeur 81. Le multiplexeur 81 possède une sortie qui peut être mise en communication soit avec la première entrée, soit avec la seconde entrée, sous l'action du signal de commande C3. Ainsi le registre 84 ou 85 qui est en cours de lecture transmet son contenu par le multiplexeur 81 jusqu'à l'entrée de l'étage
tampon 82.
Les registres 84 et 85 possèdent chacun une entrée d'horloge d'écriture et une entrée d'horloge de lecture. Leurs entrées d'horloge d'écriture sont reliées respectivement à une première et à une seconde sortie du démultiplexeur 86 qui reçoit sur une entrée le signal d'horloge HP6 fourni par la sortie de la porte 80 lorsqu'elle est validée. Le démultiplexeur 86 possède une entrée de commande recevant le signal de
commande C3 afin de transmettre un signal d'horloge d'écriture alterna-
tivement au registre à décalage 84 et au registre à décalage 85. Les entrées d'horloge HP7 de lecture des registres 84 et 85 sont reliées respectivement à une première et une seconde sortie du démultiplexeur 87 qui reçoit sur une entrée le signal d'horloge HP7. Une entrée de commande du démultiplexeur 87 reçoit le signal de commande C3. Il transmet donc un signal d'horloge de lecture alternativement au registre 84 et au registre 85, au rythme de l'analyse des lignes. Quand l'un de ces registres est vide, il restitue des valeurs nulles. Le rythme du signal d'horloge HP7 est, par exemple, égal au rythme d'analyse des points, mais ce n'est pas obligatoire puisque la détermination des zones à filtrer est indépendante de l'analyse des points. Les registres 84 et 85 ont chacun une entrée de remise à zéro, recevant le signal d'horloge HT pour réinitialiser
leur contenu à zéro, au début de chaque trame impaire à traiter.
Une entrée de l'étage tampon 83 est reliée à la sortie du registre à décalage 89. L'étage tampon 82 et l'étage tampon 83 ont chacun une sortie reliée à l'entrée de données de la mémoire d'adresses 6. Ces étages tampons sont commandés respectivement par des signaux de commande C4 et C5 fournis par les moyens de commande 4. En présence d'un signal de commande C4, l'étage tampon 82 transmet une valeur zt à l'entrée
d'adresse de lecture de la mémoire d'attente 6 pour y lire une valeur Zt.
En l'absence du signal C4, la sortie de l'étage tampon 82 a une haute impédance. En présence d'un signal de commande C5, lPétage tampon 83 transmet à l'entrée d'adresse de lecture de la mémoire d'attente 6 la valeur z(PA) du numéro de zone du point au-dessus du point courant, pour y lire la valeur Z'. En l'absence du signal C5, la sortie de l'étage tampon 83 a une haute impédance. Le signal C4 est fourni pendant la durée d'analyse de chaque ligne alors que le signal C5 est fourni pendant
l'intervalle de temps entre les analyses de deux lignes consécutives.
La mémoire d'adresses 7 comporte: trois mémoires vives à accès aléatoire, identiques, 92, 93, 94, à accès aléatoire; et un étage tampon
95. Les mémoires 92, 93, 94 comportent chacune trois parties correspon-
dant respectivement à la trame courante, à la trame de référence, et à une trame intermédiaire, et ont un schéma synoptique identique à celui de
la mémoire d'états 8, représenté sur la figure 11 et décrit précédemment.
L'écriture dans chacune de ces parties est validée en fonction de la valeur du mot de commande SE2. La lecture dans chacune de ces parties est validée en fonction de la valeur du mot de commande SL2, fourni par les moyens 4, pendant le traitement d'attribution des points à des zones, et en fonction de la valeur du mot de commande SL4, fourni par le générateur
9, pendant le traitement de recherche des zones homologues.
Les mémoires 92, 93, 94 ont des entrées de données reliées en parallèle, qui constituent l'entrée de données de la mémoire d'adresses 7 et qui sont reliées à la borne de sortie 15 du générateur 5 d'adresses et d'états pour recevoir une suite de valeurs z(PC). Ces mémoires 92, 93, 94 ont des entrées d'adresses d'écriture reliées en parallèle, qui constituent l'entrée d'adresse d'écriture de la mémoire d'adresses 7 et qui sont reliées à la borne de sortie 14 du générateur 5 d'adresses et d'états pour recevoir l'adresse AD. Les mémoires 92, 93, 94 ont des entrées de commande de lecture reliées, par des liaisons non représentées, à des sorties des moyens de commande 4 pour recevoir respectivement des signaux de commande de lecture C7, C8, C9, pendant le traitement d'attribution des points à des zones. Ces entrées de commande de lecture sont reliées aussi, par des liaisons non représentées, aux bornes de sortie 25, 26, 27 du générateur 9 pour recevoir les signaux de commande de lecture D3, D4, DS, pendant le traitement de recherche des zones homologues. Les mémoires 92, 93, 94,
ont des entrées de commande d'écriture reliées en parallèle qui consti-
tuent l'entrée de commande d'écriture de la mémoire d'adresses 7, et qui sont reliées, par une liaison non représentée, à une sortie des moyens de
commande 4 pour recevoir un signal de commande de lecture CI0.
La mémoire 92 possède une entrée d'adresses de lecture qui constitue l'entrée d'adresses de lecture de la mémoire cd'adresses 7 et qui est donc reliée aux deux sorties de la mémoire d'attente 6 et à la borne de sortie 19 du générateur 9. La mémoire 92 possède une sortie de données reliée à l'entrée d'adresses de lecture de la mémoire 93. La mémoire 93 possède une sortie de données reliée à une entrée d'adresses de lecture de la mémoire 94. La mémoire 94 possède une sortie de données reliée à une entrée de l'étage tampon 95. L'étage tampon 95 possède une entrée de commande recevant le signal de commande C6 fourni par les moyens de commande 4 et le signal de commande D6 fourni par la borne de sortie 28 du générateur 9. La sortie de l'étage tampon 95 constitue la sortie de données de la mémoire d'adresses 7 et est reliée à l'entrée d'adresses de lecture de la mémoire d'états 8 et à la borne d'entrée 16 du générateur 5 d'adresses et d'états. L'étage tampon 95 est validé par le signal C6, pendant le traitement d'attribution des points à des zones; et il est validé
par le signal D6 pendant le traitement de recherche des zones homo-
logues. La fonction de la mémoire d'adresses 7 est de faire correspondre une première et une seconde valeur de numéro de zone d'un même point afin de tenir compte de l'absorption d'une première zone, désignée par la
première valeur, par une deuxième zone désignée par la seconde valeur.
Cette fonction est utilisée au cours de toutes les étapes du procédé de détection de mouvement et d'estimation de vitesse chaque fois qu'il est nécessaire de lire ou d'écrire dans la mémoire d'état 8 avec un adressage indirect réalisé par la mémoire d'adresses 7. Ainsi les adresses de lecture ou d'écriture dans la mémoire 8 correspondent toujours à une zone
existante, et jamais à une zone absorbée.
Chaque valeur z(PC) à incrire dans la mémoire d'adresses 7 est inscrite à l'adresse AD simultanément et identiquement dans chacune des mémoires 92, 93, 94 car z(PC) est appliquée simultanément sur les trois entrées de données de ces mémoires et le signal C10 est appliqué simultanément aux trois entrées de commande d'écriture. La lecture de chaque donnée Z', Zt, Zm, ou Zh, sortant de la
sortie de données de la mémoire d'adresses 7, est réalisée en trois étapes.
Considérons par exemple la lecture de Z' à l'adresse z(PA). Dans une première étape une valeur de numéro de zone, z(PA), est appliquée à l'entrée d'adresses de lecture de la mémoire 92, puis le signal C7 est appliqué par les moyens 4 à l'entrée de commande de lecture de cette mémoire 92 pour obtenir une première valeur qui est utilisée comme
adresse de lecture dans la seconde mémoire 93.
Dans une seconde étape, les moyens 4 fournissent le signal C8 pour commander une lecture à cette adresse dans la mémoire 93. La valeur ainsi lue dans la mémoire 93 constitue une adresse de lecture pour lire dans la mémoire 94. Dans une troisième étape, les moyens 4 fournissent le signal C9 pour commander une lecture à cette adresse dans la mémoire 94. La valeur lue ainsi est transmise à la sortie de données de la mémoire d'adresses 7 lorsque l'étage tampon 95 est validé par le signal de commande C6. Quand il n'est pas validé par le signal C6 l'étage tampon
a une impédance élevée en sortie.
Au cours des traitements réalisés par le générateur 9 celui-ci commande de manière analogue des lectures dans la mémoire d'adresses 7 en envoyant successivement des signaux de commande D3, D4, DS, par ses bornes de sortie 25, 26, 27, aux entrées de commande de lecture des mémoires 92, 93, 94 respectivement; et un signal de commande D6, par
sa borne de sortie 28, à l'étage tampon 95.
La figure 15 représente le schéma synoptique d'un exemple de réalisation du second générateur d'adresses et d'états, 9. Cet exemple
comporte: un microprocesseur 112 relié, par un bus de données bi-
directionnel et par un bus d'adresses, à une interface 111 d'entréesortie,
à une mémoire de données 113, et à une mémoire de programme 114.
L'interface 111 possède une première entrée reliée à la borne d'entrée 21 du générateur 9 pour recevoir une valeur Zm o ou Zou Zq ou Zf ou Zi fournies par la sortie de données de la mémoire d'adresses 7, et possède une seconde entrée reliée à la borne d'entrée 20 du générateur 9 pour recevoir une valeur Ep(Zm) ou Ep(Zh), ou Ep(Zq), ou Ep(Zf), ou Ep(Zi), fournies par la sortie de données de la mémoire d'états 8. Elle possède une troisième et une quatrième entrée reliées aux bornes d'entrée 37 et 38 du générateur 9 pour recevoir les valeurs NTC et ICR fournies par les moyens 4. L'interface 111 possède une première sortie reliée à la borne de sortie 19 pour fournir à l'entrée d'adresse de la mémoire d'adresses 7 une suite de valeurs zm, ou Zh, ou Zv. L'interface 111 possède une seconde sortie reliée à la borne de sortie 22 pour fournir à l'entrée de données de
la mémoire d'états 8 des valeurs actualisées Ea(Zm) ou Ea(Zq) ou Ea(Zi).
L'interface 111 possède neuf autres sorties reliées respectivement aux bornes de sortie 23 à 28 et 31 à 33 pour leur fournir respectivement les signaux logiques Dl à D6, SE3, SL3, SL4, commandant une écriture, ou une lecture, ou une sélection d'une partie dans la mémoire 7 ou dans la
mémoire 8. L'interface 111 possède en outre deux sorties reliées respecti-
vement aux bornes de sortie 35 et 36 pour leur fournir respectivement les valeurs des coordonnées XO et YO du barycentre de l'objet représenté par la suite d'images et les composantes VOF et VOF du vecteur de x y
translation de cet objet.
Le fonctionnement du générateur 9 est déterminé par le pro-
gramme contenu dans la mémoire de programme 114. L'organigramme de
ce programme est représenté par les figures 16 à 20.
La figure 16 représente une première partie de cet organigramme, permettant la détermination des zones homologues à une zone donnée; la détermination de la zone la plus ancienne parmi ces zones homologues; et d'autre part la validation des zones de points en mouvement. Pour déterminer les zones homologues à chaque zone existant dans la trame courante, après le traitement d'attribution des points à des zones, le microprocesseur 112 envoie à l'entrée d'adresse de lecture de la mémoire
d'adresses 7 une suite d'adresses zm croissant de 0 à ZMAX, en sélec-
tionnant la partie dédiée à la trame courante par un mot de commande SL4, déterminé en fonction du numéro de la trame courante NTC, à l'instant considéré. La valeur ZMAX est la plus grande adresse dans chaque partie de la mémoire d'états 8 et dans chaque partie de la mémoire d'adresses 7. Pour rechercher toutes les zones homologues à une zone donnée le microprocesseur 112 envoie une suite d'adresses zh à l'entrée d'adresse de lecture de la mémoire d'adresses 7, les valeurs zh croissant de 0 à ZMAX, et il sélectionne la partie dédiée à la trame de référence par un mot de commande SL4, de valeur différente de celle du
mot SL4 précédent.
Les valeurs des mots de commande SE3, SL3, et SL4 sont déterminées par le microprocesseur 112 à partir du numéro NTC de la trame courante, fourni par les moyens 4, sachant que les trois parties des
mémoires 7 et 8 sont utilisés conformément au tableau ne 5.
Tableau n 5
numéro numéro Partie de la mémoire 7 ou 8 oJ sont stockées les trame trame informations correspondant à: courante réf. la trame courante la trame de référence I
1
2 I 2 1
3 1 3 1
4 1 3 1
5 2 I 2
6 2 3 2
7 2 3 2
8 5 2 1
9 5 3 1
10 5 3 1
il 8 I 2
12 8 3 2
13 8 3 2
14 1l 2 1
15 11 3 1
16 11 3 1
......DTD: Le microprocesseur 112 détermine chaque mot binaire de commande en fonction du type d'opération à réaliser, en fonction du type de données constituant les opérandes de cette opération, et en fonction de
l'endroit o sont stockées ces données à l'instant considéré.
Le programme débute donc par une initialisation des valeurs zm et zh à la valeur 0 et par l'attribution d'une valeur 4 à un paramètre appelé ANCMAX qui prendra par la suite la valeur d'ancienneté la plus grande, détectée parmi les zones homologues à une zone donnée. La valeur zm est incrémentée d'une unité puis est envoyée à l'entrée d'adresse de la mémoire d'adresses en sélectionnant la partie dédiée à la trame courante. Le contenu Zm de l'adresse Zm de la mémoire d'adresses est lu par le microprocesseur 112 en envoyant successivement les signaux D3, D4, DS, constitués chacun d'une impulsion au niveau 1, aux entrées de commande de lecture des mémoires 92, 93, 94 constituant la mémoire d'adresses 7, puis en envoyant le signal D6 à l'entrée de validation de l'étage tampon 95. Le microprocesseur 112 commande ensuite une lecture du vecteur d'états de la zone Zm, Ep(Zm), noté dans la mémoire d'états, dans la partie dédiée à la trame courante, à l'adresse Zm fournie à l'entrée de la mémoire d'états directement par la sortie de la mémoire d'adresses 7, en envoyant à la mémoire 8 un mot SL3 déterminé conformément au tableau n 5, et un signal de commande de lecture CI 1.
Toutes les autres opérations de lecture dans les mémoires 7 et 8, dans la
suite du programme sont réalisées ainsi et ne seront pas détaillées.
Le microprocesseur 112 teste la valeur du bit indicateur d'élimi-
nation de la zone Zm: ELI(Zm). S'il a la valeur 1, il signifie que la zone Zm a déjà fait l'objet d'une recherche des zones homologues. Il est inutile de recommencer. Le microprocesseur 112 recommence le processus à partir de l'incrémentation de la valeur zm, après avoir vérifié qu'elle n'a pas encore atteint sa valeur maximale ZMAX. Si elle a atteint sa valeur maximale, le traitement de recherche des zones homologues est terminé, le microprocesseur suit alors le programme de fusion des zones, dont
l'organigramme est représenté sur la figure 18.
Le microprocesseur 112 donne les valeurs suivantes aux compo-
santes du vecteur d'état de la zone Zm, pour les initialiser: ANC(Zm)= 1 m
NZH(Z) = 0
m SXH(Zm) = 0 SYH(Zm) = 0 Le microprocesseur 112 balaye ensuite l'ensemble des numéros des zones existant dans la trame de référence. Pour cela, il incrémente la valeur zh d'une unité puis lit le contenu Zh de l'adresse zh de la mémoire
d'adresses, dans la partie dédiée à la trame de référence. Le micropro-
cesseur 112 commande ensuite une lecture du vecteur d'état de la zone Zh, noté Ep(Zh), dans la mémoire d'états, dans la partie dédiée à la trame de référence, à l'adresse Zh. Le microprocesseur 112 détermine ensuite si la zone Zm de la trame courante et la zone Zh de la trame de référence sont homologues, selon un sous-programme décrit plus loin, en fonction
des valeurs des composantes des vecteurs d'état Ep(Zm) et Ep(Zh).
Si les zones Zm et Zh sont homologues, le microprocesseur 112
compare les valeurs d'ancienneté ANC(Zm) et ANC(Zh) de ces deux zones.
Si l'ancienneté de la zone Z est strictement inférieure à l'ancienneté de m la zone Zh, alors le microprocesseur 112 attribue les valeurs suivantes aux composantes du vecteur d'état de la zone Zm ANC(Zm) = ANC(Zh) + I NZH(Zm) = N(Zh) SXH(Z) = SX(Zh) mh SYH(Zm) = SY(Zh) Puis le microprocesseur 112 compare la valeur zh à la valeur maximale des numéros de zone, ZMAX. Il fait de même dans le cas o les zones Zh et Zm ne sont pas homologues et dans le cas o l'ancienneté de
la zone Zm est supérieure ou égale à l'ancienneté de la zone Zh.
Si z est inférieure à ZMAX la séquence est réitérée à partir de h l'incrémentation de zh. Sinon, le balayage des numéros de toutes les
zones de la trame de référence est terminée.
Le microprocesseur 112 réalise ensuite trois tests pour valider la zone Zm. Si l'ancienneté ANC(Zm) est supérieure ou égale à 3, si le m m nombre de points N(Zm) est supérieur ou égal à une valeur de seuil S fixée à 6, et si ANC(Zm) est strictement supérieure à 1/2 ANCMAX, alors la zone est considérée comme valide et le microprocesseur 112 détermine une nouvelle valeur de l'ancienneté maximale, ANCMAX, de toutes les zones homologues à la zone Zm qui est considérée à cet instant. Pour cela, il compare la valeur d'ancienneté, ANC(Zm) à la valeur ANCMAX de l'ancienneté maximale à l'instant considéré, et attribue la valeur ANC(Zm) au paramètre ANCMAX si ANC(Zm) est strictement supérieure m m à la valeur du paramètre ANCMAX. Sinon, la valeur de ce paramètre est inchangée. La valeur de seuil S pour le nombre de points d'une zone est choisi égale à 6 dans cette variante, pour permettre de détecter et de suivre un objet dont la taille est de l'ordre de 20 à 40 points d'images, répartis dans une pluralité de zones. Cette valeur de seuil S doit être choisie en
fonction de la taille de l'objet représenté par la suite d'images.
Puis, dans les deux cas, la valeur de l'indicateur d'élimination, ELI(Zm) est initialisée à 0, puisque la zone est valide. Dans le cas o la zone n'est pas valide parce que l'une des trois conditions précédentes n'est pas remplie, l'indicateur est initialisé à la valeur 1 et permettra donc de savoir que la zone n'est plus à prendre en considération dans le reste du traitement. Le vecteur d'état ainsi complété a une nouvelle valeur, E (Z), dite actualisée, qui est inscrite dans la mémoire d'états, dans la a m partie dédiée à la trame courante, à l'adresse Zm fournie par la mémoire d'adresses, après avoir effectué la lecture de Zm à l'adresse Zm de la mémoire d'adresses, dans la partie dédiée à la trame courante. Cette écriture est réalisée en envoyant à la mémoire d'états 8, un signal de sélection SE3 dont la valeur est déterminée conformément au tableau n 5, puis en envoyant un signal de commande d'écriture DI, constitué d'une impulsion au niveau logique 1. L'adresse Zm est fournie directement par la sortie de la mémoire d'adresses 7, un signal de commande D6 lui
étant envoyé pour maintenir validé l'étage tampon 95. Les autres opéra-
tions d'écriture dans la mémoire 8 rencontrées dans la suite du programme
sont réalisées de manière analogue et ne seront pas détaillées.
Le microprocesseur 112 compare ensuite la valeur de zm a ZMAX.
S'il y a égalité, toutes les valeurs possibles de z ont été balayées, donc m toutes les zones Z existant dans la trame courante ont été examinées et m le traitement peut continuer en suivant le programme de fusion des zones
dont l'organigramme est représenté sur la figure 18.
La figure 17 représente l'organigramme du sous-programme pour tester si une zone Zh est homologue à une zone Z, ces deux zones étant h m considérées comme homologues si leurs enveloppes rectangulaires ont une intersection non nulle. Ce sous-programme comporte quatre tests. Un indicateur, EX, prend la valeur I lorsque la conclusion de l'un de ces tests permet de conclure qu'une intersection non nulle des deux enveloppes est exclue. Au début, l'indicateur EX est initialisé à zéro. Puis la valeur YMAX(Zh) est comparée à la valeur YMIN(Zm). Si cette dernière est
supérieure à la précédente, la valeur 1 est attribuée à l'indicateur EX.
Sinon, le microprocesseur 112 compare la valeur YMIN(Zh) à la valeur
YMAX(Zm). Si cette dernière est inférieure à la précédente, une inter-
section non nulle est exclue, la valeur 1 est attribuée à l'indicateur EX.
Sinon, le microprocesseur 112 compare la valeur XMAX(Zh) à la valeur
XMIN(Zm). Si cette dernière est supérieure à la précédente, une intersec-
tion non nulle est exclue, la valeur 1 est attribuée à l'indicateur EX.
Sinon, le microprocesseur 112 compare la valeur XMIN(Zh) à la valeur
XMAX(Zm). Si cette dernière est inférieure à la précédente, une intersec-
tion non nulle est exclue, la valeur 1 est attribuée à l'indicateur EX.
Sinon, le microprocesseur 110 teste la valeur de l'indicateur EX. S'il a la valeur 1, les zones Zm et Zh ne sont pas homologues. S'il a la valeur 0,
elles sont homologues.
Le microprocesseur 112 réalise ensuite la fusion des zones ayant
en commun une zone homologue, conformément à l'organigramme repré-
senté sur la figure 18. La recherche des zones Zf pouvant être fusionnées dans une zone Z est réalisée en balayant successivement toutes les q adresses zf dans la mémoire d'adresses, dans la partie correspondante à la trame courante, pour chaque valeur d'adresse zq de la mémoire d'adresses dans la partie dédiée à la trame courante. Ce traitement débute donc par une initialisation à la valeur 0 de la valeur zq. Le microprocesseur 112 incrémente la valeur z d'une unité puis commande la lecture d'une valeur q Z à l'adresse z de la mémoire d'adresses, dans la partie dédiée à la q q trame courante, puis la lecture de la valeur E p(Zq) du vecteur d'état de la zone Zq dans la mémoire d'états, dans la partie dédiée à la trame courante. Il teste la valeur du bit indicateur d'élimination. Si ELI(Zq) est égal à 1, la zone a déjà été traitée, il est inutile de recommencer. Dans ce cas, le microprocesseur 112 compare la valeur z à sa valeur maximale q ZMAX. Si elle n'est pas égale à sa valeur maximale, il réitère le processus
à partir de l'incrémentatation de zq. Sinon, il passe au traitement d'estimation de la vitesse d'un objet.
Dans le cas o ELI(Zq) est égal à 0, le microprocesseur 112 calcule les coordonnées du barycentre de la zone homologue la plus ancienne de la zone Z à partir des secondes composantes du vecteur q35 d'état de cette zone, selon les formules d'état de cette zone, selon les formules:
SXH(Z)
ZGH(Zq) = NiZH(Z)
SYH(Z) (20)
YGH(Zq)= NZH(Zq) Puis il fournit une suite de valeurs d'adresses Zf à la mémoire
d'adresses 7.
Il initialise Zf à la valeur z car les zones dont le numéro Zf correspond à Zf inférieur à Zq ont déjà été fusionnées si elles pouvaient l'être. Il incrémente la valeur du paramètre Zf d'une unité. Puis il commande la lecture d'une valeur Zf à l'adresse Zf dans la mémoire d'adresses, dans la partie dédiée à la trame courante, puis une lecture de la valeur Ep(Zf) du vecteur d'état de la zone Zf dans la mémoire d'états, dans la partie dédiée à la trame courante. Il teste ensuite la valeur de l'indicateur d'élimination ELI(Zf) qui est égale à I si la zone Zf a été éliminée, soit parce qu'elle n'était pas suffisamment ancienne, soit parce
qu'elle a déjà été traitée dans une recherche de fusion de zones antérieu-
rement. Si l'indicateur est égal à 1, le microprocesseur 112 compare la valeur de zf à ZMAX, pour savoir si le balayage des zones fusionnables avec la zone Zq est terminée. Si zf est inférieure à ZMAX, le processus est réitéré à partir de l'incrémentation de Zf. Sinon, le microprocesseur 112 vérifie s'il peut passer à la valeur z suivante en comparant la valeur q zq actuelle à ZMAX. Si z est inférieure à ZMAX, le processus est réitéré q q
a partir de l'incrémentation de z. Sinon, il passe au traitement d'estima-
q
tion de la vitesse de l'objet.
Dans le cas o ELI(Zf) est égal à 0, le microprocesseur 112 calcule les coordonnées du barycentre de la zone homologue la plus ancienne de la zone Zf à partir des secondes composantes du vecteur d'état de cette zone, selon les formules: SXH(Zf) GH NZH(Zf) SYH(Zf) (21) YGH = f NZH(Zf) Le microprocesseur 112 réalise alors deux tests permettant de savoir si la zone homologue de la zone Zq et la zone homologue de la zone Zf, dans la trame de référence, ont le même barycentre. Si c'est le cas, elles ont la même zone homologue. Le microprocesseur 112 compare les valeurs XGH(Zq) avec XGH(Zf) et compare la valeur YGH(Zq) avec YGH(Zf). Si ces valeurs sont respectivement égales, les zones Zq et Zf peuvent être fusionnées. La zone Zf disparaissant, la valeur 1 est
attribuée à l'indicateur d'élimination de la zone Zf.
Sinon, le microprocesseur 112 compare la valeur zf à ZMAX et, si
zf est inférieure à ZMAX, il réitère le processus à partir de l'incrémenta-
tion de zf. Si zf est égale à ZMAX, le microprocesseur 112 teste la valeur z en la comparant ZMAX. Si z est inférieure à ZMAX, il réitère le q q processus à partir de l'incrémentation de z. Et si z est égale à ZMAX, q q le microprocesseur 112 passe au traitement d'estimation de la vitesse de
l'objet.
Dans le cas o la zone Zf est effectivement fusionnée dans la zone Zm, le microprocesseur 112 commande, après la mise à I de l'indicateur ELI(Zf), une lecture de Zf à l'adresse zf de la mémoire d'adresses, dans la partie dédiée à la trame courante, puis commande une écriture de la valeur actualisée Ea(Zf) du vecteur d'état dans la mémoire d'états 8, dans la partie dédiée à la trame courante. Seule la composante constituée par l'indicateur d'élimination a été modifiée, cependant il est nécessaire de réécrire le vecteur d'état complètement dans la mémoire d'états pour mémoriser, par cet indicateur, le fait que la zone Zf n'est
plus à prendre en compte pour d'autres fusions de zones.
Puis le microprocesseur 112 calcule des valeurs actualisées des composantes du vecteur d'état de la zone Zq, selon les formules (7),
mentionnées précédemment dans la description du procédé. Puis il
com mande la lecture d'une valeur Zq à l'adresse zq de la mémoire d'adresses 7, dans la partie dédiée à la trame courante. Enfin il commande une écriture du vecteur d'état Ea(Zq) ainsi actualisé, dans la mémoire d'états 8, dans la partie dédiée à la trame courante. Il teste ensuite la valeur zf pour déterminer si elle a atteint la valeur ZMAX et, si ce n'est pas le cas, il réitère le processus à partir de l'incrémentation de Zf. Si Zf a atteint la valeur ZMAX, le microprocesseur 112 teste la valeur zq. Si cette dernière a atteint la valeur ZMAX, le processus de fusion des zones est terminé. Sinon, le microprocesseur réitère le processus à partir de l'incrémentation de z. q Le microprocesseur 112 réalise ensuite l'estimation de la vitesse de l'objet représenté par les zones en mouvement vrai et l'estimation des coordonnées du barycentre de cet objet, conformément à l'organigramme
représenté sur la figure 19. Cet organigramme commence par l'initialisa-
tion à zéro des paramètres suivants Ax, Ay, An z i, NTOT, Bx, By, Bn, VOx, VOy, ANCO dont le rôle sera décrit dans la suite. Puis le microprocesseur 112 stocke dans sa mémoire de données 113, la valeur du paramètre ICR, indiquant l'intervalle de temps entre la trame courante et la trame utilisée comme trame de référence, valeur qui est fournie à
l'interface d'entrée-sortie 111 par les moyens de commande 4.
Puis le microprocesseur 112 balaye toutes les valeurs d'adresse possibles dans la mémoire d'adresses 7. Pour cela, il incrémente d'une unité une valeur d'adresse z.. Puis il commande une lecture d'une valeur Zi à l'adresse zi de la mémoire d'adresses, dans la partie dédiée à la trame courante, puis une lecture du vecteur d'état E(Zi) dans la mémoire d'états, dans la partie dédiée à la trame courante, à l'adresse Zi fournie par la mémoire d'adresses 7. Il teste la valeur de l'indicateur d'élimination ELI(Zi). Si elle est égale à 1, la zone Zi ne doit pas être prise en compte, soit parce qu'elle a été fusionnée dans une autre, soit parce qu'elle a déjà été prise en compte pour l'estimation de la vitesse et des coordonnées du barycentre. Dans ce cas, le microprocesseur 112 réitère le processus à partir de l'incrémentation de zi. Sinon, il calcule les coordonnées du barycentre de la zone Zi, selon les formules (16); puis les coordonnées du barycentre de la zone homologue de la zone Zi, selon les formules (17); et en déduit les composantes d'un vecteur translation, selon les formules
(14) et (15).
En vue de calculer les composantes du vecteur vitesse par un cumul des vecteurs vitesse de chaque zone, pondérés par le nombre de points de chaque zone, le microprocesseur 112 utilise le paramètre Ax pour cumuler les valeurs des produits N(Zi).TGx(Zi). Il utilise le paramètre Ay pour cumuler les valeurs des produits N(Zi).TGy(Zi). Il utilise le
paramètre NTOT pour cumuler les valeurs N(Zi).
En vue du calcul des coordonnées du barycentre de toutes les zones de la trame courante, le microprocesseur 112 utilise le paramètre Bx pour cumuler les produits N(Zi).XG(Zi), et le paramètre By pour cumuler les valeurs N(Zi).YG(Zi). Puis il attribue la valeur 1 à l'indicateur d'élimination de la zone Zi pour qu'elle ne soit pas prise en compte d'autres fois. Il commande ensuite une lecture d'une valeur Zi à l'adresse zi dans la partie de la mémoire d'adresses dédiée à la trame courante, pour que la mémoire d'adresse-fournisse Zi à l'entrée d'adresse de la I
mémoire d'états 8. Le microprocesseur 112 commande ensuite une écri-
ture de la valeur actualisée Ea(Zi) du vecteur d'état de la zone Zi, dans la mémoire d'états 8, dans la partie dédiée à la trame courante. Dans ce
vecteur d'état seule la composante constituée par l'indicateur d'élimina-
tion a été modifiée.
Le traitement de la zone Zi étant terminé, le microprocesseur 112 teste la valeur de zi. Si elle est inférieure à ZMAX, il réitère le processus à partir de l'incrémentation de zi. Sinon, l'ensemble des zones de la trame courante ayant été traitées, le microprocesseur 112 calcule les valeurs des composantes du vecteur vitesse et les coordonnées du barycentre, selon les formules:
A
x VOx = NTOT.ICR A x VOy NTOT.ICR B O-x
XO = NTOT
B YO = y
YO NTOT
Le microprocesseur 112 peut alors commander la sortie des valeurs XO et YO sur la borne de sortie 35 puis réaliser le traitement de
filtrage de la vitesse estimée.
Le filtrage de la vitesse de l'objet est réalisé conformément à l'organigramme représenté sur la figure 20. Il comporte une partie consacrée à l'initialisation de certains paramètres, une partie consacrée au filtrage de la composante VOx, et une partie consacrée au filtrage de
la composante VOy, ces deux composantes étant filtrées indépen-
damment. Il initialise à zéro un paramètre Px et dun paramètre py. Puis il calcule un paramètre ANCO, appelé ancienneté de l'objet, selon la formule: ANCO = ANCMAX - 3, car dans cet exemple de mise en oeuvre du procédé selon l'invention, la détection de l'objet en mouvement est considérée comme sûre à partir de la quatrième trame impaire o il est détecté, c'est-à-dire lorsque l'ancienneté maximale des zones atteint la valeur 4. Selon l'ancienneté de l'objet, le filtrage est réalisé de manière plus ou moins énergique. Le microprocesseur 112 teste la valeur du paramètre ANCO. Si elle est égale à 1, l'ancienneté est faible, une valeur 1 est attribuée à un paramètre g qui est un paramètre de filtrage. Si la valeur du paramètre ANCO est égale à 2, une valeur 1/2 est attribuée au paramètre g. Si ANCO est supérieure à 2, une valeur 1/3 est attribuée au paramètre g. La valeur du paramètre g est utilisée aussi bien pour le filtrage de VOx que pour le filtrage VOy, mais interviennent aussi deux autres paramètres, respectivement Px et py, traduisant l'importance des
variations des composantes VO et VO respectivement.
x y Le microprocesseur 112 détecte les variations de sens de la composante VOx en testant le signe du produit (VO. VOFPx). La valeur VOFPx est la valeur calculée pour la trame impaire immédiatement précédente. Si ce produit est négatif, cette composante de la vitesse a changé de signe, le microprocesseur 112 incrémente le paramètre Px Sinon il compare la valeur absolue de la variation de cette composante de la vitesse par rapport à un seuil MU prédéterminée. Si cette valeur absolue est supérieure au seuil, il incrémente la valeur Px. Sinon il remet à zéro la valeur Px car cette composante de la vitesse est alors considérée comme stable. Dans ce cas, la valeur filtrée est calculée selon la formule: VOFx = g. VO +(l-g). VOFP VOx x 'x Dans le cas contraire, o Px est incrémentée, le microprocesseur 112 teste ensuite la valeur atteinte par Px. Si cette valeur est supérieure à 0 et inférieure ou égale à 3, la valeur filtrée VOFX est alors prise égale à la valeur VOFPX, car les variations de vitesse ne sont pas encore suffisamment certaines pour en tenir compte. Si Px est strictement supérieure à 3, les variations de la composante considérée ont une durée suffisamment longue pour être certaines. Il faut donc en tenir compte, c'est pourquoi la valeur filtrée VOFx est prise égale à la valeur VOx qui est calculée uniquement à partir des caractéristiques de la trame courante. Dans tous les cas, le microprocesseur 112 mémorise la valeur filtrée VOFX en l'attribuant au paramètre VOFPX, pour l'utiliser lors du filtrage de la valeur VOx calculée pour la trame qui va être traitée
ensuite. Puis il fait sortir la valeur filtrée VOF sur la borne de sortie 36.
x Le filtrage de la composante VO du vecteur vitesse est réalisé y selon un organigramme identique, VOy remplaçant VOx, py remplaçant Px Lorsque ce filtrage des deux composantes de la vitesse est terminé, le traitement de la trame courante est terminé, le microprocesseur peut passer au traitement de la trame impaire immédiatement suivante en
réitérant l'ensemble des opérations représentées sur les figures 16 à 20.
La mise en oeuvre du procédé selon l'invention et la réalisation
des dispositifs selon l'invention peuvent comporter de nombreuses varian-
tes, notamment en fonction du type des images et en fonction du type d'objet représenté par ces images. Par exemple, l'intervalle entre la trame courante et la trame de référence doit avoir une valeur minimale choisie en fonction de la vitesse typique du déplacement de l'objet, afin qu'il y ait une translation appréciable de la trame de référence par rapport à la
trame courante.
L'invention est applicable notamment au suivi temporel d'un objet,
* et au traitement d'images dans le domaine de la télévision professionnelle.
Claims (17)
1. Procédé de détection de mouvement dans une suite d'images, ayant un fond fixe ou recalé, chaque image étant balayée, échantillonnée et numérisée, ligne par ligne et point par point, chaque point d'image étant représenté par la valeur de sa luminance, caractérisé en ce qu'il consiste, pour chaque image, à: - attribuer à des zones, au fur et à mesure du balayage d'une image, les points, dits points en mouvement, dont la valeur de luminance est différente de celle de leurs points homologues dans une image précédente dite image de référence, avec un écart supérieur à un seuil fixé, chaque zone regroupant des points connexes en mouvement et étant représentée par un numéro Zi; - caractériser chaque zone Zi par les composantes d'un vecteur E(Zi) dit vecteur d'état, fonctions des points attribués à cette zone; comportant notamment le nombre N(Zi) des points attribués à la zone Zi - rechercher, pour chaque zone Zi de l'image courante, s'il existe des zones homologues de la zone Zi dans les images précédant Pimage courante, et en déduire une valeur appelée ancienneté de cette zone; - considérer qu'un point a un mouvement vrai, non dO au bruit, si la zone à laquelle il appartient, contient un nombre de points supérieur à
un seuil fixé et si elle a une ancienneté supérieure à un seuil fixé.
2. Procédé selon la revendication 1, caractérisé en ce que si une même zone de l'image précédente est homologue à plusieurs zones de l'image courante, il consiste en outre à fusionner ces dernières zones en
une même zone portant un numéro unique, et ayant une valeur d'an-
cienneté qui est égale à la plus grande des valeurs d'ancienneté des zones
ainsi fusionnées.
3. Procédé d'estimation de la vitesse d'un objet mobile dans une suite d'images, caractérisé en ce qu'il consiste à détecter les zones de points en mouvement vrai, par le procédé selon la revendication 1, le vecteur d'état de chaque zone Zi comportant en outre des composantes
permettant de calculer un vecteur (TGx(Zi), TGy(Zi)) traduisant le mouve-
ment de translation du barycentre de la zone Zi pendant l'intervalle de temps de durée ICR séparant l'image courante de l'image de référence; et en ce qu'il consiste à estimer un vecteur de translation (TOx, TOy) traduisant le mouvement de translation d'un objet représenté par un
ensemble de zones o les points ont un mouvement vrai, pendant l'inter-
valle de temps séparant l'image courante et l'image de référence, selon les formules: TO x= NTOT
T (N(Z.).TG (Z."))
y NTOT ou NTOT est la sommes des nombres de points N(Zi) de toutes les zones Zi de l'ensemble des zones représentant ledit objet; I et en ce qu'il consiste à estimer un vecteur (VO, VOy) traduisant la vitesse de translation de l'objet, selon les formules:
TO TO
VOx= ICR (10) et VOy = iCy (11)
ICRY IC
4. Procédé selon la revendication 3, caractérisé en ce que, pour estimer les composantes d'un vecteur de translation (TGX(Zi), TGy(Zi)) traduisant le mouvement de la zone Zi de l'image courante, il consiste à: déterminer s'il existe une zone Zj de l'image précédente, J homologue à la zone Zi dans l'image de référence; - déterminer des coordonnées (XG(Zi), YG(Zi)) du barycentre des points de l'image courante constituant la zone Zi; - déterminer des coordonnées (XGH(Zj), YGH(Zj")) du barycentre des points appartenant à l'image précédente et constituant la zone Zj - à calculer: TGx(Zi) = XG(Zi) - XGH(Zj) (14) x 1 i j TGy(Zi) = YG(Zi) YGH(Zj) (15) y ' i J s'il existe une zone homologue Zj, sinon à prendre TGX(Zi)= 0 et
TGy(Zi) = 0.
5. Procédé selon la revendication 4, caractérisé en ce que pour estimer la vitesse de translation du barycentre de l'objet, il consiste en outre à filtrer récursivement les valeurs (VOx, VOy) en calculant des valeurs filtrées (VOFX, VOFy) selon les formules: VOFx(image courante)=gx.VOx+(l-gx).VOFx(image précédente) (18) VOFy(image courante)=g.VOy+(l -gy).VOF y(image précédente) (19) o x et gy sont des coefficients compris entre 0 et 1, et o VOFX (image précédente) et VOF (image précédente) sont les valeurs filtrées calculées y pour l'image précédant immédiatement l'image courante.
6. Procédé selon la revendication 4, caractérisé en ce que les coefficients gx et gy sont des coefficients variables en fonction de l'ancienneté des zones représentant l'objet et en fonction du changement
de valeur absolue et du changement de signe de VOF et VOF respective-
x y ment, pendant l'intervalle de temps entre l'image de référence et l'image courante.
7. Procédé selon la revendication 1, o chaque point d'image est repéré par deux coordonnées dans un repère cartésien, caractérisé en ce
que le vecteur d'état de chaque zone Zi comporte en outre des compo-
santes constituées par les valeurs minimales et les valeurs maximales des
deux coordonnées des points appartenant à la zone Z:, ces valeurs défi-
nissant une enveloppe rectangulaire entourant la zone Zi; en ce que, pour rechercher, pour chaque zone Zi, s'il existe des zones homologues de la zone Zi dans les images précédant l'image I courante et en déduire une valeur d'ancienneté, il consiste à rechercher les zones Zj de l'image de référence, dont l'enveloppe rectangulaire a une j surface commune avec l'enveloppe rectangulaire de la zone Zi;
et en ce qu'il consiste à donner à la zone Zi une valeur d'an-
cienneté égale à celle de la zone homologue ayant la plus grande ancienneté, plus une unité, si au moins une zone homologue Zj a été j
trouvée, sinon à lui attribuer une valeur d'ancienneté égale à l'unité.
8. Procédé selon la revendication 1, caractérisé en ce que, pour attribuer à des zones des points en mouvement qui sont connexes, il consiste, successivement pour chaque point, dit point courant, dans chaque ligne d'image, et successivement pour chaque ligne: - à déterminer une valeur de numéro de zone, z(PC), désignant, à l'instant considéré, une zone à laquelle le point courant est attribué, cette valeur étant déterminée en fonction de la valeur Z, à l'instant considéré, du numéro de zone du point voisin précédant le point considéré sur la même ligne, en fonction de la valeur Z', à l'instant considéré, du numéro
de zone du point voisin homologue du point courant sur la ligne précé-
dente; - à déterminer ensuite des valeurs dites actualisées, des numéros de zone de ces deux points voisins, en fonction des valeurs Z et Z' des numéros de zone des deux points voisins, à l'instant considéré; - à déterminer ensuite une valeur actualisée des composantes du vecteur d'état de la zone à laquelle le point courant est attribué, en fonction des valeurs Z et Z' des numéros de zone des deux points voisins, à l'instant considéré, et en fonction des valeurs, à l'instant considéré, des composantes des vecteurs d'état des zones Z et Z' de deux points voisins;
chaque zone d'une image étant finalement caractérisée par les compo-
santes de son vecteur d'état quand tous les points en mouvement ont été
attribués à une zone.
9. Procédé selon la revendication 8, caractérisé en ce que les composantes du vecteur d'état de chaque zone comportent en outre un bit dit indicateur d'absorption dont la valeur est modifiée lorsque la zone a absorbé au moins une autre zone; et en ce que la valeur du bit indicateur d'absorption des zones des deux points voisins du point courant est prise en compte pour déterminer: - la valeur de numéro de zone z(PC) désignant une zone à laquelle le point courant est attribué - les valeurs actualisées des numéros de zone des deux points voisins; - et les valeurs actualisées des composantes du vecteur d'état de
la zone à laquelle le point courant est attribué.
10. Procédé selon la revendication 9, caractérisé en ce que si les deux points voisins du point courant sont deux points en mouvement et appartenant respectivement à deux zones ayant des valeurs de numéro, Z et Z', différentes, le point courant est attribué à: - la zone Z' du point voisin, homologue du point courant sur la ligne précédente, si la zone Z du point voisin précédant le point courant sur la même ligne n'a jamais absorbé une autre zone; la zone de numéro Z étant alors absorbée par la zone de numéro Z' et la valeur actualisée de son numéro étant constituée par Z'; - la zone Z du point voisin précédant le point courant sur la même ligne, dans le cas contraire; la zone de numéro Z' étant absorbée par la zone de numéro Z et la valeur actualisée de son numéro étant constituée par Z.
11. Dispositif de détection de mouvement, pour la mise en oeuvre du procédé selon la revendication 1, recevant une suite de valeurs numériques représentant une suite d'images, chaque image étant balayée, échantillonnée et numérisée, ligne par ligne et point par point, chaque point d'image étant représenté par la valeur de sa luminance, caractérisé en ce qu'il comporte: - des moyens (2) pour fournir une suite de valeurs binaires traduisant une première estimation de l'état de chaque point d'image, chaque point étant soit en mouvement vrai, soit fixe ou en mouvement dû au bruit; - des moyens (5) appelés premier générateur d'adresses et d'états, pour déterminer successivement pour chaque point, dit point courant, une valeur de numéro z(PC) désignant, à l'instant considéré, une zone de points en mouvement connexes, à laquelle le point courant est attribué, et pour déterminer une valeur Ei(z(PC)) de premières composantes du vecteur d'état de la zone de numéro z(PC); et pour déterminer une valeur AD qui est le numéro d'une zone absorbée par la zone de numéro z(PC), lorsqu'une zone est absorbée; en fonction de la suite de valeurs binaires indiquant l'état de chaque point d'image; en fonction d'une valeur Z' constituant, à l'instant considéré, le numéro de zone d'un point voisin homologue du point courant sur la ligne précédant celle du point courant;
en fonction de la valeur E(Z') des composantes du vecteur d'état caracté-
risant la zone de numéro Z'; en fonction d'une valeur Z constituant, à l'instant considéré, le numéro de zone d'un point voisin du point courant et le précédant sur la même ligne; et en fonction de la valeur E(Z) des composantes du vecteur d'état caractérisant la zone de numéro Z; - une mémoire (6), dite mémoire d'attente, pour stocker chaque valeur z(PC) et la restituer avec un retard correspondant à la durée de
traitement des points d'une ligne d'image, chaque valeur restituée consti-
tuant une valeur z(PA); - une mémoire (7) dite mémoire d'adresses, pour stocker chaque valeur z(PC) fournie par le générateur (5) d'adresses et d'états à une adresse constituée par la valeur AD fournie par le générateur (5) d'adresses et d'états, la valeur z(PC) constituant la valeur actualisée du numéro de zone des points qui, jusqu'à l'instant considéré, avaient AD pour numéro de zone; et pour fournir au premier générateur (5) d'adresses et d'états la valeur Z', celle-ci étant lue à une adresse constituée par la valeur z(PA) fournie par la mémoire d'attente (6); - des moyens (9), appelés second générateur d'adresses et d'états, pour déterminer successivement pour chaque image, dite image courante,
et successivement pour chaque zone Zm de points connexes en mouve-
ment: - des zones de points en mouvement, Zh, dites homologues de la zone Zm dans une image précédant l'image courante et dite image de référence, contenant des points en mouvement vrai, homologues de points de la zone Zm, lorsqu'il existe au moins une telle zone homologue; - une valeur E2(Zm) de secondes composantes du vecteur d'état de la zone Zm, comportant notamment une composante appelée ancienneté, en fonction de la valeur des composantes du vecteur d'état des zones Zh homologues de la zone Zm dans l'image de référence, lorsqu'il existe au moins une zone Zh homologue à la zone Zm; et pour comparer le nombre de points N(Z) de la zone Zm à une mm première valeur de seuil; pour comparer l'ancienneté de la zone Zm à une seconde valeur de seuil; et pour conclure que les points de la zone Zm ont un mouvement vrai si le nombre de points N(Zm) de cette zone est supérieure à la première valeur de seuil et si son ancienneté est
supérieure à la seconde valeur de seuil.
12. Dispositif de détection de mouvement, selon la revendication Il, caractérisé en ce que le vecteur d'état de chaque zone Zm comporte des composantes définissant les coordonnées du barycentre de la zone homologue ayant la plus grande ancienneté parmi les zones homologues de la zone Zm, lorsqu'il existe au moins une zone homologue à la zone Zm; et en ce que le second générateur d'adresses et d'états (9) comporte des moyens (111 à 114) pour: - déterminer successivement pour chaque image courante et successivement pour chaque zone Zm de points en mouvement vrai dans l'image courante, la zone homologue ayant la plus grande ancienneté parmi les zones homologues à la zone Zm, lorsqu'il existe au moins une zone homologue à la zone Zm;
- déterminer les coordonnées du barycentre de cette zone homolo-
gue la plus ancienne; - déterminer toutes les zones Zm, d'une même image courante, ayant la même zone homologue la plus ancienne, celle-ci étant repérée par les coordonnées de son barycentre; - fusionner dans la zone Zm considérée toutes les autres zones, de la trame courante, ayant en commun la même zone homologue la plus ancienne, en calculant de nouvelles valeurs des premières composantes El (Zm) du vecteur d'état de la zone Zm, en fonction des valeurs des
premières composantes des vecteurs d'état de ces autres zones.
13. Dispositif d'estimation de la vitesse de translation d'un objet dans une suite d'images, pour la mise en oeuvre du procédé selon la
revendication 3, chaque image étant balayée, échantillonnée et numéri-
sée, ligne par ligne et point par point, chaque point d'image étant représenté par la valeur de sa luminance, caractérisé en ce qu'il comporte un dispositif de détection de mouvement selon l'une quelconque des
revendications 11 ou 12, et en ce que le second générateur d'adresses et
d'états (9) comporte des moyens pour: - calculer, pour chaque zone Zi de l'image courante, o le mouvement est vrai, les composantes d'un vecteur (TG (Zi), TGy(Zi)) xI y i traduisant le mouvement de translation du barycentre de la zone Zi pendant un intervalle de temps de durée ICR séparant l'image courante et l'image de référence; - calculer les composantes (TOX, TOy) d'un vecteur traduisant le mouvement de translation d'un objet représenté par un ensemble de zones o les points ont un mouvement vrai, selon les formules: (N(Zi).TG (Z.))
NIOT (8)
TOx= NTOT (N(Zi).TGy(Zi)) TOy NTOT les sommes étant étendues à toutes les zones Zi de l'ensemble des zones représentant l'objet et NTOT étant la somme des nombres de points de toutes ces zones Zi; - calculer un vecteur (VO x, VO) traduisant la vitesse de translation de l'objet, selon les formules: TO vox ICR (10) 1CR, TO VOy =C y ICR (11C)
14. Dispositif d'estimation de la vitesse de translation d'un objet, selon la revendication 13, pour la mise en oeuvre du procédé selon la revendication 5, caractérisé en ce que le second générateur d'adresses et d'états (9) comporte des moyens (111 à 114) pour filter le vecteur (VOx, VOy) traduisant la vitesse de translation de l'objet, en calculant des10 composantes filtrées (VOFx, VOFy) selon les formules: VOFx(image courante)=gx.VOx+ (1 -gx). VOFx(image précédente) (18) VOFy(image courante)=gy.VOy+(1-gy). VOFy(image précédente) (19) o VOFX (image précédente) et VOFy (image précédente) sont les valeurs filtrées calculées pour l'image précédant immédiatement l'image courante15 et o gx et gy sont deux coefficients, compris entre 0 et 1, et déterminés pour chaqe image courante en fonction des variations de VOx et VOy entre l'image immédiatement précédente et l'image courante.
15. Dispositif d'estimation de la vitesse de translation d'un objet, selon la revendication 13, pour la mise en oeuvre du procédé selon la revendication 7, caractérisé en ce que le vecteur d'état de chaque zone Zm comporte des composantes constituées par les valeurs minimales et les valeurs maximales de deux coordonnées cartésiennes des points appartenant à la zone Zm et définissant une enveloppe rectangulaire de la zone Zm; et en ce que le second générateur d'adresses et d'états (9)25 comporte des moyens (111 à 114) pour rechercher des zones Zh de l'image de référence telles que les valeurs minimales et les valeurs maximales des deux coordonnées des points appartenant à cette zone Zh définissent une enveloppe rectangulaire ayant une intersection non nulle avec l'enveloppe de la zone Z m
16. Dispositif d'estimation de la vitesse de translation d'un objet, selon la revendication 13, caractérisé en ce que pour déterminer la valeur E(z(PC)) des composantes du vecteur d'état de la zone de numéro z(PC), le premier générateur (5) d'adresses et d'états comporte: - des moyens de calcul (52, 53, 55, 63) pour déterminer le nombre de points de la zone de numéro z(PC), en fonction des nombres de points des zones de numéros Z et Z'; des moyens de calcul (56 à 59, 52, 53, 64 à 67) pour déterminer les coordonnées maximales et les coordonnées minimales des points de la zone de numéro z(PC), en fonction des coordonnées maximales et des coordonnées minimales des points des zones Z et Z'; - des moyens de calcul (60, 61, 52, 53, 68, 69) pour déterminer la somme des abscisses et la somme des ordonnées des points de la zone de numéro z(PC), en fonction des sommes des abscisses et des sommes des ordonnées des points des zones de numéros Z et Z'; - des moyens (54) pour stocker, pendant une durée correspondant au traitement du point courant, la valeur E(z(PC)) des composantes du vecteur d'état de la zone à laquelle est attribué le point courant, la valeur
de ces composantes constituant ultérieurement la valeur E(Z) des compo-
santes du vecteur d'état de la zone Z du point voisin du prochain point
courant sur la même ligne.
17. Dispositif d'estimation de la vitesse de translation d'un objet, selon la revendication 13, caractérisé en ce que le générateur (5) d'adresses et d'états comporte en outre des moyens dits générateurs (50) d'adresses disponibles, pour fournir des valeurs d'adresses disponibles dans la mémoire d'états (8), ce générateur (50) étant initialisé avec une suite d'adresses prédéterminées et comportant: - des moyens (97 à 104) pour détecter les zones dont le nombre de points n'augmentera plus et est inférieur à une valeur de seuil fixé, et pour stocker les numéros de ces zones en tant que numéros disponibles pour être attribués à d'autres zones; - des moyens (97, 108 à 110) pour retarder les numéros des zones absorbées, d'une durée correspondant à l'analyse de trois lignes d'image, et pour stocker ensuite ces numéros en tant que numéros disponibles pour
être attribués à d'autres zones.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR8618424A FR2725059B1 (fr) | 1986-12-31 | 1986-12-31 | Procede de detection de mouvement et procede d'estimation de la vitesse d'un objet mobile dans une suite d'images, et dispositif pour la mise en oeuvre de ce procede |
IT8768079A IT8768079A0 (it) | 1986-12-31 | 1987-12-16 | Procedimento per rilevare il movimento e procedimento per stimare la velocita di un oggetto mobile in una sequenza di immagini e relativo dispositivo di attuazione |
SE8705165A SE8705165A0 (sv) | 1986-12-31 | 1987-12-28 | Förfarande för detektering av rörelse och förfarande för uppskattning av hastigheten hos ett rörligt föremål i en följd av bilder och anordning för utförande av dessa förfaranden |
DE3744497A DE3744497C1 (de) | 1986-12-31 | 1987-12-30 | Verfahren zur Erfassung von Bewegungen und Verfahren zur Abschätzung der Geschwindigkeit eines beweglichen Objektes in einer Bildfolge sowie Vorrichtung zur Durchführung dieser Verfahren |
GB8730313A GB2300326B (en) | 1986-12-31 | 1987-12-30 | Method for the detection of motion and method for estimating the velocity of a moving object in a sequence of images,and devices for the implementation of th |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR8618424A FR2725059B1 (fr) | 1986-12-31 | 1986-12-31 | Procede de detection de mouvement et procede d'estimation de la vitesse d'un objet mobile dans une suite d'images, et dispositif pour la mise en oeuvre de ce procede |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2725059A1 true FR2725059A1 (fr) | 1996-03-29 |
FR2725059B1 FR2725059B1 (fr) | 1996-12-13 |
Family
ID=9342482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR8618424A Expired - Fee Related FR2725059B1 (fr) | 1986-12-31 | 1986-12-31 | Procede de detection de mouvement et procede d'estimation de la vitesse d'un objet mobile dans une suite d'images, et dispositif pour la mise en oeuvre de ce procede |
Country Status (5)
Country | Link |
---|---|
DE (1) | DE3744497C1 (fr) |
FR (1) | FR2725059B1 (fr) |
GB (1) | GB2300326B (fr) |
IT (1) | IT8768079A0 (fr) |
SE (1) | SE8705165A0 (fr) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2599205B1 (fr) * | 1981-11-27 | 1990-08-24 | Thomson Csf | Procede recursif de caracterisation de zones isotropes dans une image video; dispositif detecteur de mouvement et detecteur de bruit dans une sequence d'images |
FR2537370B1 (fr) * | 1982-12-07 | 1988-10-07 | Thomson Csf | Procede de discrimination du bruit et du mouvement dans une sequence d'images video et dispositif detecteur de mouvement pour la mise en oeuvre de ce procede |
-
1986
- 1986-12-31 FR FR8618424A patent/FR2725059B1/fr not_active Expired - Fee Related
-
1987
- 1987-12-16 IT IT8768079A patent/IT8768079A0/it unknown
- 1987-12-28 SE SE8705165A patent/SE8705165A0/sv not_active Application Discontinuation
- 1987-12-30 GB GB8730313A patent/GB2300326B/en not_active Expired - Fee Related
- 1987-12-30 DE DE3744497A patent/DE3744497C1/de not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
I-SHENG TANG ET AL.: "Extraction of moving objects in dynamic scenes", PROCEEDINGS OF THE 6TH INTERNATIONAL CONFERENCE ON PATTERN RECOGNITION, MUNICH 20-22 OCTOBER 1982 ;IEEE ,NEW YORK US, pages 1143 - 1146 * |
Also Published As
Publication number | Publication date |
---|---|
GB8730313D0 (en) | 1996-06-19 |
SE8705165A0 (sv) | 1996-04-30 |
IT8768079A0 (it) | 1987-12-16 |
DE3744497C1 (de) | 1996-05-09 |
GB2300326B (en) | 1997-06-04 |
FR2725059B1 (fr) | 1996-12-13 |
GB2300326A (en) | 1996-10-30 |
SE8705165D0 (sv) | 1987-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7253258B2 (ja) | 動的視覚センサ用ブロックマッチングオプティカルフローとステレオ視 | |
FR2596221A1 (fr) | Systeme de filtre median adaptif | |
CN108268869A (zh) | 目标检测方法、装置及系统 | |
JPH11502335A (ja) | 動体の奥行きモデル化と奥行き情報を提供する装置およびその方法 | |
CN103913128B (zh) | 一种基于质量图区域分割的快速相位展开方法 | |
KR960706644A (ko) | 단안시 시스템용 배경 결정 및 제거를 위한 방법 및 장치(method and apparatus for background determination and subtraction for a monocular vision system) | |
CN112233055B (zh) | 视频去痕方法和视频去痕装置 | |
EP0540403B1 (fr) | Système d'analyse vidéo du montage d'un programme télévisé diffusé ou enregistré et son utilisation pour les techniques de post production, notamment multilingues | |
FR2614711A1 (fr) | Procede et dispositif d'exploitation du signal d'ecran d'un ecran tactile | |
KR0141442B1 (ko) | 3차원형상데이터의 처리방법 | |
FR2776093A1 (fr) | Circuit processeur programmable muni d'une memoire reconfigurable, pour realiser un filtre numerique | |
FR2588142A1 (fr) | Systeme permettant le traitement a haute vitesse par convolutions de donnees d'image. | |
CN111064865A (zh) | 一种动态视觉传感器背景活动噪声过滤器及处理器 | |
EP0926626A1 (fr) | Procédé de traitement d'image pour réduire le bruit dans une image d'une séquence de trois images temporelles et appareil d'imagerie médicale mettant en oeuvre un tel procédé | |
EP0286192B1 (fr) | Procédé et dispositif d'estimation de mouvement dans une séquence d'images | |
EP0410826B1 (fr) | Procédé itératif d'estimation de mouvement, entre une image de référence et une image courante, et dispositif pour la mise en oeuvre de ce procédé | |
FR2725059A1 (fr) | Procede de detection de mouvement et procede d'estimation de la vitesse d'un objet mobile dans une suite d'images, et dispositif pour la mise en oeuvre de ce procede | |
EP0294282B1 (fr) | Procédé d'interpolation temporelle d'images et dispositif pour la mise en oeuvre de ce procédé | |
JPS626273B2 (fr) | ||
EP0255419B1 (fr) | Procédé d'extraction et de modélisation des contours d'une image et dispositif pour la mise en oeuvre de ce procédé | |
FR2644914A1 (fr) | Dispositif d'estimation de mouvement dans des images de television | |
FR2668591A1 (fr) | Dispositif de mesure d'efficacite de mouvement. | |
FR2599205A1 (fr) | Procede recursif de caracterisation de zones isotropes dans une image video; dispositif detecteur de mouvement et detecteur de bruit dans une sequence d'images | |
EP3918576A1 (fr) | Procédé dynamique d'imagerie tridimensionnelle | |
JPS61107886A (ja) | 動きベクトルの平滑回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |