Brevet FR2863750A1 — publié le 20050617

PROCEDE ET DISPOSITIF DE STABILISATION D'IMAGES ACQUISES EN LIGNES OU EN COLONNES. DOMAINE TECHNIQUE GENERAL. L'invention concerne une technique de stabilisation d'images permettant de corriger des déformations des images, l'acquisition des images ayant lieu en colonnes ou en lignes à une fréquence supérieure à ou proche de la fréquence de trame des images. Plus précisément, l'invention concerne une technique de stabilisation d'images acquises dans un appareil d'observation d'un système d'imagerie, les images étant acquises en lignes dans des appareils du type caméra à balayage par exemple, ou en colonnes dans des appareils du type caméras matricielles non refroidies par exemple. ETAT DE L'ART. On connaît déjà des techniques permettant de stabiliser entre elles des images d'une série d'images lorsqu'elles sont acquises par un appareil d'observation comportant un détecteur matriciel. Un porteur d'un appareil d'observation, qu'il s'agisse d'un homme ou d'un engin, peut en effet être animé d'un mouvement d'une part et crée 20 inévitablement des vibrations. A partir d'un certain grossissement, l'observation d'une scène n'est plus possible, car les images sont floues. Il faut donc stabiliser les images de la série pour compenser les mouvements de l'appareil lors de l'acquisition des images. Par le terme de stabilisation, on considère dans ce cas une correspondance entre elles des images successives fournies par l'appareil d'observation. Plus précisément, l'image k+1 se distingue de l'image k de la série du fait: des rotations de roulis, de tangage et de lacet; de changement de focale dans le cas d'un appareil dont on peut faire varier le facteur de zoom; de translations et de vibrations angulaires et linéaires. II faut par conséquent faire subir à l'image k+1 des translations, rotations et facteurs de zoom opposés pour la stabiliser sur l'image k. Certaines techniques de l'art antérieur utilisent des miroirs asservis pour compenser les translations et rotations entre les images. Certaines techniques de l'art antérieur utilisent des moyens gyroscopiques pour déterminer les rotations entre les images successives d'une série. On compense ensuite les mouvements de l'appareil par un asservissement de la ligne de visée. D'autres techniques utilisent des moyens de traitement du signal pour stabiliser les images entre elles, sans utiliser de moyens gyroscopiques. La situation est cependant différente dans le cas de l'acquisition des images en lignes ou en colonnes et non plus par des moyens matriciels qui acquièrent tous les points des images en même temps. En effet, dans le cas d'une acquisition en lignes ou en colonnes, les 15 mouvements de l'appareil d'observation engendrent une déformation de l'image que l'homme du métier appelle effet de drapeau . Contrairement à ce qui se passe lors d'une acquisition par un détecteur matriciel, l'effet de drapeau ne se manifeste pas par des translations ou des rotations de l'image d'une trame à la suivante. L'effet drapeau se manifeste par une déformation de l'image à l'intérieur de la trame. On observe alors une compression ou une dilatation périodique de l'image suivant la direction d'acquisition et des oscillations de l'image suivant la direction perpendiculaire à la direction d'acquisition des images. Ce phénomène apparaît lorsque la fréquence d'acquisition des images a lieu à une fréquence proche de la fréquence de trame des images. Toutes les techniques de stabilisation de l'état de la technique ne sont applicables qu'à des appareils comportant un détecteur de type matriciel avec datation identique de tous les pixels. II n'est pas possible, avec les techniques connues, de stabiliser des images acquises en colonnes dans des appareils du type caméra à balayage par exemple, ou en lignes dans des appareils du type caméras matricielles non refroidies par exemple. II n'est pas possible de compenser l'effet drapeau par des miroirs asservis, du fait des fréquences d'acquisition et des fréquences de vibrations de l'appareil. PRESENTATION DE L'INVENTION. L'invention a pour but de pallier les inconvénients des techniques de l'art antérieur. Un des buts de l'invention est de proposer une technique de stabilisation d'images acquises en colonnes dans des appareils du type caméra à balayage par exemple, ou en lignes dans des appareils du type caméras non refroidies par exemple. Un des autres buts de l'invention est de proposer une technique de stabilisation effectuant une correction des déformations des images par l'effet drapeau. Un des autres buts de l'invention est de proposer une technique de stabilisation d'images acquises en lignes ou en colonnes qui n'utilise pas un système mécanique, comme par exemple un miroir asservis avec un gyroscope inertiel. A cet effet l'invention propose un procédé de stabilisation d'une série d'images acquises en lignes ou en colonnes par un appareil d'observation, 20 caractérisé en ce qu'il comporte les étapes consistant à : - diviser chaque image acquise en une pluralité de blocs, chaque bloc regroupant une pluralité de lignes ou de colonnes ou une pluralité de segments de lignes ou de colonnes; - calculer les mouvements de rotations et de translations de chaque bloc dans l'image par rapport à un référentiel terrestre, les mouvements étant dues aux mouvements de l'appareil par rapport à ce référentiel; et - faire subir à chaque ligne ou à chaque colonne de chaque bloc une rotation ou une translation pour la stabiliser par rapport à la ligne ou à la colonne adjacente dans l'image, en fonction des mouvements des blocs. L'invention est avantageusement complétée par les caractéristiques suivantes, prises seules ou en une quelconque de leur combinaison techniquement possible: - il comporte une étape consistant à calculer les mouvements de chaque bloc en résolvant l'équation du flot optique pour chaque bloc afin de calculer les vitesses de rotations et de translations de chaque bloc dues aux mouvements de l'appareil; - il comporte une étape consistant à interpoler le déplacement de stabilisation à effectuer en chaque ligne ou en chaque colonne à partir des vitesses de chaque bloc pour effectuer la stabilisation des lignes ou des colonnes entre elles; il comporte une étape consistant à déterminer le nombre de lignes ou de 10 colonnes de chaque bloc en fonction de l'amplitude et de la fréquence des vibrations de l'appareil; - il comporte une étape consistant à choisir le nombre de points de calcul des vitesses dans chaque bloc de traitement en fonction d'un paramètre de qualité d'image; - il comporte une étape consistant à ne considérer dans les calculs de vitesses que des mouvements en deux dimensions de chaque bloc; - il comporte une étape consistant à ne considérer que des rotations de lacet et de tangage dans les calculs de vitesses, car elles se traduisent par des translations horizontales et verticales de l'image; - il comporte une étape consistant à interpoler les vitesses de la troisième dimension à partir des calculs de vitesses en deux dimensions de chaque bloc; - il comporte une étape consistant à effectuer un filtrage passe bas des signaux correspondant aux lignes ou aux colonnes; - il comporte une étape consistant à choisir la fréquence de coupure du filtrage en fonction de l'amplitude et de la fréquence des mouvements de l'appareil. - il comporte les étapes consistant à : - mettre en évidence un mouvement d'ensemble des blocs; - calculer la déformation de chaque bloc par rapport à ce mouvement d'ensemble. L'invention concerne également un dispositif de mise en oeuvre du procédé. PRESENTATION DES FIGURES. D'autres caractéristiques, buts et avantages de l'invention ressortiront de la description qui suit qui est purement illustrative et non limitative et qui doit être lue en regard des figures annexées sur lesquelles: - la figure 1 représente schématiquement un mode d'acquisition connu en colonnes d'une image dans un appareil d'observation d'un système d'imagerie; - la figure 2 représente schématiquement comment, dans un procédé selon l'invention, on divise chaque image acquise en une pluralité de blocs, 10 chaque bloc regroupant une pluralité de colonnes; - la figure 3 montre avec quelle fréquence les mouvements de chaque bloc sont calculés en fonction de la fréquence image et de la fréquence des vibrations de l'appareil; - la figure 4 montre la géométrie du mouvement de la caméra dans l'espace 15 3D du monde réel; - la figure 5 montre comment on calcule les mouvements relatifs des blocs les uns par rapport aux autres; et - la figure 6 montre comment on stabilise les lignes ou les colonnes les unes par rapport aux autres. Dans la suite de la description, et dans toutes les figures, les éléments ayant une fonction similaire portent des références numériques identiques. DESCRIPTION DETAILLEE. La figure 1 représente schématiquement un mode d'acquisition en colonnes 20 d'une image 1 dans un appareil d'observation d'un système 25 d'imagerie. Pour acquérir l'image 1, une barrette 2 de détecteurs 4 effectue un balayage ou une lecture de l'image selon le sens référencé par 3. On reconstitue l'image 1 au fur et à mesure du balayage ou de la lecture 3 de la barrette 2. La barrette 2 de détecteurs 20 peut être de plusieurs types, notamment du type infrarouge. Un tel mode d'acquisition en colonnes est rencontré dans les appareils du type caméra à balayage par exemple. On peut également avoir ce type d'acquisition avec des appareils comportant des détecteurs matriciels mais l'acquisition de l'image s'effectue en colonnes. On comprend qu'une acquisition de l'image en lignes est également 5 possible. L'acquisition de l'image se fait donc selon une direction perpendiculaire à celle représentée sur la figure 1. Une telle acquisition en lignes est rencontrée notamment dans les appareils du type caméra non refroidie ou les microbolomètres. Ces appareils comportent des détecteurs matriciels mais l'acquisition de l'image s'effectue en lignes. On peut également prévoir un balayage d'une barrette selon les lignes d'une image. L'invention propose un procédé de stabilisation d'une série d'images acquises en lignes ou en colonnes par un appareil d'observation, pour contrecarrer les effets de mouvements de l'appareil lors de l'acquisition des mesures. La description qui va suivre s'applique avantageusement à une acquisition en colonnes. On comprend que les mêmes étapes s'appliquent également à une acquisition en lignes, une rotation de 90 liant les deux modes d'acquisition. Lors d'une acquisition d'image par un appareil d'observation, on effectue un filtrage passe bas des signaux issus des lignes ou des colonnes. Le filtrage passe-bas se fonde sur l'hypothèse suivante. Peu d'objets se déplacent par rapport à la scène et on peut donc se limiter à un procédé de compensation de déformations par prédiction du mouvement de l'appareil, établissement d'un modèle linéaire décrivant les paramètres du mouvement de l'appareil (zoom, lacet, tangage, roulis et grandeur focale) et estimation de ces paramètres à l'aide d'une équation, pour les basses, voire les très basses, fréquences des images qui correspondent à la scène. Aux basses fréquences, on ne retient que les gros objets de la scène, les petits objets ainsi que les transitions des contours étant effacés. La forme de la fenêtre de filtrage est choisie en fonction de la fréquence des mouvements de l'appareil, comme on le verra dans la suite de la présente description. Le filtrage s'effectue tout au long de l'acquisition des lignes ou 5 colonnes. Selon un procédé possible selon l'invention, et comme le montre la figure 2, on divise lors d'une première étape chaque image 1 acquise en une pluralité de blocs 5, chaque bloc regroupant une pluralité de colonnes 20 ou de lignes. Les développements qui suivent s'appliquent avantageusement des blocs 5 regroupant des colonnes 20 entières ou des lignes entières. Cependant, on peut également regrouper dans des blocs des segments de lignes ou de colonnes, les segments étant de taille quelconque par rapport aux dimensions de l'image. On peut ainsi avoir un nombre quelconque de blocs selon une dimension de l'image, par exemple selon la hauteur ou la largeur de l'image. Du fait même du mode d'acquisition, les pixels d'une image appartenant à une même colonne sont isodatés. Ils ont été acquis au même instant. Un procédé selon l'invention considère que les pixels d'un bloc 5 formé de quelques colonnes adjacentes 20 sont également isodatés. Cette approximation est bonne si les fréquences des mouvements de l'appareil d'observation ne sont pas trop élevées par rapport à la taille des blocs 5. Selon l'invention, on calcule ensuite les mouvements à faire subir à chaque bloc pour les stabiliser entre eux et éviter les déformations de l'effet drapeau. Lors d'une dernière étape, on stabilise entre elles les lignes ou les colonnes pour avoir un bon rendu visuel de l'image. On détermine tout d'abord à cet effet le nombre de lignes ou de colonnes de chaque bloc en fonction de la fréquence des mouvements de l'appareil. Pour déterminer le nombre de colonnes à regrouper dans un bloc, et par conséquent le nombre de blocs par image, on considère que pour avoir un bon échantillonnage de la scène, il faut au moins acquérir douze points par période de trame. Ce chiffre est susceptible de changer bien entendu en fonction des applications de l'appareil. On illustre ici un exemple non limitatif. La fréquence visuelle des trames est de 50 Hz. Deux trames sont donc séparées de 20 ms environ. La durée de l'acquisition d'une trame est de 14 ms environ. On cherche par exemple à pouvoir corriger les effets d'une fréquence de l'ordre de 40 à 45 Hz, fréquence typique d'un engin sur lequel peut être placé l'appareil d'observation. Si on prend ainsi une fréquence de 42 Hz due à un rotor d'hélicoptère, on trouve une période de 24 ms. Pour acquérir douze points sur cette période, il faut échantillonner toutes les 2 ms. Comme la durée d'acquisition d'une trame est de 14 ms, on va donc pouvoir effectuer 8 échantillonnages, ce qui correspond à 7 blocs dans l'image. On référence sur la figure 3 par l;(k) l'image du bloc i acquise à l'instant k et par Xe;(k) les mouvements du bloc i l'instant k. La figure 3 montre alors que les mouvements Xe;(k) de chaque bloc i sont calculés à une fréquence d'environ 50N Hz si la fréquence image est de 50 Hz et si N est le nombre de blocs dans l'image. La fréquence de Shannon pour la correction des déformations est 25N Hz. Comme on l'a vu, N doit être dimensionné en fonction des performances de précision du procédé et du spectre des fréquences des vibrations attendues. On a pris ici l'exemple d'un hélicoptère, mais il pourrait s'agir d'autres fréquences en fonction d'autres engins. L'approximation de considérer que les pixels d'un bloc sont isodatés permet de stabiliser les images en corrigeant les déformations dues à l'effet drapeau. Ainsi, on rappelle que selon l'invention, lorsque la division de l'image en blocs est effectuée lors d'une étape préliminaire, on calcule ensuite les mouvements de rotations et de translations de chaque bloc dans l'image par rapport à un référentiel terrestre, les mouvements étant dues aux mouvements de l'appareil par rapport à ce référentiel. On applique enfin aux blocs, puis aux différentes lignes ou colonnes des blocs des mouvements inverses pour les stabiliser les uns et les unes par rapport aux autres. Préférentiellement, on remonte aux différents mouvements des blocs 10 en calculant leurs différentes vitesses. Plusieurs calculs des vitesses sont possibles. On peut par exemple calculer la vitesse de l'image par appairage de points caractéristiques entre deux images successives. Préférentiellement, on utilise le calcul des vitesses par résolution de l'équation du flot optique pour chaque bloc afin de calculer les vitesses de rotations et de translations de chaque bloc dues aux mouvements de l'appareil. L'équation du flot optique mesure la totalité des déplacements de l'appareil. On peut prétendre que le porteur et l'appareil de prise de vues ont la même trajectoire mais que l'appareil subit en plus des vibrations angulaires et linéaires qui peuvent être assimilées à des bruits à moyenne nulle, blancs ou non, en fonction du spectre du porteur considéré. Après avoir déterminé les déplacements dus à la trajectoire de l'appareil, comme la totalité des déplacements est fournie par l'équation du flot optique, on en tire par différence les vibrations angulaires et linéaires aux fins de stabilisation ou de correction des blocs et des images. Si la scène est stationnaire, les points de la scène vus par la caméra entre deux blocs sont reliés par la trajectoire du porteur. Les coordonnées cartésiennes de la scène dans le repère du porteur sont P = (x, y, z)', l'origine est le centre de gravité du porteur, avec l'axe z orienté selon l'axe de roulis principal, l'axe x correspond à l'axe de lacet et l'axe y à l'axe de tangage. La caméra est dans un système de coordonnées Cartésien ou Polaire à trois dimensions avec l'origine placée sur la lentille frontale de la caméra et l'axe z dirigé le long de la direction de visée. La position de la caméra par rapport au centre de gravité du porteur 5 est définie par trois rotations (ab, vc, gc) et trois translations (Txc, Tyc, Tzc). Le rapport entre les coordonnées 3D de la caméra et celles du porteur est: (x', y', z')' = R(ac,bc,gc) * (x, y, z)' + T(Txc,Tyc,Tzc) Où É R est une matrice 3 x 3 de rotation, É T est une matrice 1 x 3 de translation. La trajectoire du centre de gravité est caractéristique de l'évolution de l'état du système et peut être décrite par le système d'équations différentielles: x(t)=F(t).x(t)+ u(t)+v(t) où x = vecteur d'état de dimension n; F(t) = matrice fonction de t, de dimension n; u = vecteur d'entrée fonction de t connu; v = bruit blanc gaussien à n dimensions. L'état du système est lui même observé à l'aide de la caméra et la résolution de l'équation du flot optique, par m mesures z(t) liées à l'état x par l'équation d'observation: z(t)=H(t).x(t)+w(t) où H(t) est une matrice m x n fonction de t et w est un bruit blanc gaussien 25 de dimension m, que l'on peut assimiler aux vibrations angulaires et linéaires de la caméra par rapport au centre de gravité du porteur. Le modèle discret s'écrit: xk+l - Fk * xk + uk + Vk Zk = Hk * xk + wk Oë Xk = [aPk, aVk, bPk, bVk, gPk, gVk, XPk, XVk, YPk, YVk, ZPk, ZVk]T est le vecteur d'état à l'instant k de la trajectoire, composé des angles et vitesses lacet, tangage, roulis et positions et vitesses en x, y et z. xk+ 1 est le vecteur d'état à l'instant k+1 avec tk+1 - tk = Ti. uk est le vecteur d'entrée fonction de k connu; c'est le modèle de vol ou de trajectoire du centre de gravité du porteur. vk est le bruit blanc gaussien à n dimensions représentant les bruits d'accélérations en lacet, tangage, roulis, aux positions x, y, z. Si les angles et translations auxquels est soumise la caméra par rapport au centre de gravité ne sont pas constants au cours de la trajectoire, dans un viseur par exemple, il suffit de décrire leurs valeurs mesurées ou commandées (ac(t), bc(t), gc(t), Txc(t), Tyc(t), Tzc(t) en fonction de t ou de k. Comme la trajectoire du centre de gravité du porteur est définie par le vecteur xk+1, la trajectoire de la caméra peut être définie par un vecteur xck+1 xck+1 = R(ac, bc, gc) * (Fk*xk + uk + Vk) + Tc Entre les instants d'observation k et k+1, la caméra subit de pures 20 rotations 3D et trois translations, dont les valeurs sont fournies par le vecteur x'k+ 1. Considérons la situation où les éléments de la scène sont projetés dans le plan image de la caméra et seules ces projections sont connues. La figure 4 montre la géométrie du mouvement de la caméra dans l'espace 3D du monde réel. La caméra est dans un système de coordonnées Cartésien ou Polaire à trois dimensions avec l'origine placée sur la lentille frontale de la caméra et l'axe z dirigé le long de la direction de visée. Deux cas de complexités différentes existent: É La scène est stationnaire tandis que la caméra zoome et tourne dans l'espace 3D. É La scène est stationnaire tandis que la caméra zoome, tourne et se translate dans l'espace 3D. Soit P = (x, y, z)' = (d, a b)' les coordonnées cartésiennes ou polaires caméra d'un point stationnaire au temps t É x = d.sin(a).cos(b) É y = d.sin(b).cos(a) É z = d.cos(a).cos(b) et P' = (x',y',z')' = (d', a', b')' les coordonnées caméra correspondantes au temps t' = t + Ti. Les coordonnées caméra (x, y, z) _ (d, a, b) d'un point dans l'espace et les coordonnées dans le plan image (X, Y) de son image sont liées par une transformation de perspective égale à : X = F1(X,Y).x/z = F1(X,Y).tg(a) Y = FI (X,Y).y/z = F1(X,Y)/tg(b) où F1(X, Y) est la longueur focale de la caméra au temps t. (x', y', z')' = R(da,db,dg)*(x,y,z)' + T(Tx, Ty, Tz) où É R=R RR a est une matrice 3 x 3 de rotation et alpha = da, bêta = db, gamma = dg sont, respectivement, l'angle de lacet, l'angle de tangage et l'angle de roulis de la caméra entre le temps t et t' É T est une matrice 1 x 3 de translation avec Tx = x' - x, Ty = y' - y et Tz = z - z', les translations de la caméra entre le temps t et t'. Les observations par la caméra se faisant à une fréquence trame rapide, on peut noter que ces angles évoluent peu entre deux trames et qu'on pourra simplifier certains calculs en conséquence. Quand la longueur focale de la caméra au temps t évolue, on a: F2(X,Y) = s.F1(X, Y) où s est appelé paramètre de zoom, les coordonnées (X', Y') du plan image peuvent être exprimées par É X' = F2(X, Y).x'/z' = F2(X, Y). tg(a') É Y' = F2(X, Y). y'lz' = F2(X, Y).tg(b') Si on veut distinguer plus finement les mouvements de la caméra déduits de ceux du porteur et les mouvements réels de la caméra, on dira que le porteur et la caméra ont la même trajectoire, mais que la caméra subit en plus des vibrations linéaires et angulaires. (x', y', z')' = R(da+aw,db+bw,dg+gw) * (x, y, z)' + T(Tx+xw,Ty+yw,Tz+zw) où aw, bw, gw, xw, yw, zw sont les vibrations angulaires. Ces vibrations linéaires et angulaires peuvent être assimilées à des bruits à moyennes nulles, blanc ou non en fonction du spectre du porteur considéré. L'équation du flot optique pour un bloc s'écrit: block+, (X, Y) = block (X, Y) + a(block (X, Y)) . dXk+, (X, Y)+ a(block (X, Y)) . dYk+, (X,Y) aX aY Une discrétisation temporelle et spatiale de cette équation peut être écrite pour un bloc: Gxk (x, y)dxk (x, y) + Gyk (x, y)dyk (x, y) + Diffk (x, y) = 0 où G sont les gradients spatiaux et Diff est un différentiel temporel. 20 Pour estimer les gradients présents dans l'équation discrète on se sert de préférence des points adjacents. Comme on ne cherche que le mouvement global de l'image du paysage, on ne va s'intéresser qu'aux très basses fréquences spatiales de l'image et donc filtrer l'image en conséquence. Ainsi, les gradients calculés sont significatifs. On rappelle que les résultats obtenus avec un noyau rectangulaire de 7 pixels de hauteur (v) et 20 pixels de large (H) ou avec un noyau carré de 7 pixels de côté sont très satisfaisants sur des scènes normalement contrastées. Par contre, si on veut que le procédé s'applique aussi sur quelques points chauds isolés, il vaut mieux utiliser un noyau qui préserve les maxima locaux et ne crée pas de discontinuité dans les gradients. On peut également utiliser des fonctions ondelettes comme noyau de moyennage. On a donc utilisé un noyau de moyennage en forme de pyramide (triangle selon X convolué par triangle selon Y). La complexité du filtre n'est pas augmentée car on a utilisé deux fois un noyau rectangulaire de moyenne glissante de [V = 4; H = 10] ou un noyau carré de 4 pixels de côté. On peut également utiliser des fonctions ondelettes comme noyau de moyennage. On voit donc qu'on choisit la forme de la fenêtre de filtrage en fonction 10 de la fréquence des mouvements de l'appareil. Seuls dX et dY sont inconnus, mais si on peut décomposer dX et dY en fonction des paramètres du vecteur d'état qui nous intéressent et de X et Y (ou Ai, Aj) de façon à n'avoir plus comme inconnues que les paramètres du vecteur d'état, on va pouvoir écrire l'équation sous une forme vectorielle B = A*Xtrans, avec A et B connus. Chaque point d'un bloc pouvant être l'objet de l'équation, on est en présence d'un système surdéterminé, A*Xtrans = B, que l'on va pouvoir résoudre par la méthode des moindres carrés. L'équation du flot optique mesure la totalité des déplacements de la caméra. On a vu plus haut qu'on pouvait distinguer plus finement les mouvements de la caméra déduits de ceux du porteur et les mouvements réels de la caméra en disant que le porteur et la caméra ont la même trajectoire, mais que la caméra subit en plus des vibrations linéaires et angulaires. (x', y', z')' = R(da+aw,db+bw,dg+gw) * (x, y, z)' + T(Tx+xw,Ty+yw,Tz+zw) où aw, bw, gw, xw, yw, et zw sont les vibrations angulaires et linéaires. Or les déplacements dus à la trajectoire de la caméra (da, db, dg, Tx, Ty, Tz) sont contenus dans le vecteur d'état x'k+1 de la caméra, ou plutôt dans l'estimation que l'on peut en faire, en moyennant, ou en ayant un filtre de Kalman qui en fournit la meilleure estimée. Comme l'équation du flot optique mesure la totalité des déplacements, on va pouvoir en déduire les vibrations angulaires et linéaires aw, bw, gw, xw, zw, à des fins de stabilisation et de correction. II faut noter que sauf configurations extrêmement particulières, les vibrations linéaires ne pourront jamais être vues compte tenu de la distance d'observation, ou de leurs faibles amplitudes par rapport aux déplacements du porteur. On va donc observer: da + aw, db + bw, dg + gw, Tx, Ty, Tz. Reprenons l'équation du flot optique pour chaque bloc: block+, (X, Y) = block (X, Y) + block (x, y)) dXk+, (X Y) + block (x, Y)) dYk+, g, Y) aX aY Elle peut s'écrire également: block+, (X + dXk+, (X, Y), Y + dYk+, (X, Y)) = block (X, Y) On voit que l'on va pouvoir calculer les vitesses des blocs de la séquence. Le quatrième axe (zoom) n'est pas forcément nécessaire mais il peut s'avérer indispensable en cas de zoom optique mais aussi dans le cas où la focale n'est pas connue avec assez de précision ou quand la focale varie avec la température (optiques IR, Germanium, etc...) ou la pression (indice de l'air). Cela peut concerner des applications où on va chercher à restaurer l'information de paysage de manière optimale en obtenant une image débarrassée des effets d'échantillonnage et de taille de détecteur. On peut obtenir simultanément une amélioration de la résolution spatiale et une réduction des bruits temporels ou du bruit spatial fixe. On peut remarquer que la même équation peut aussi s'écrire: block+l (X, Y) = block (X - dXk+l (X, Y), Y - dYk+l (X, Y)) Les valeurs dXk+1(X,Y), dYk+ 1(X, Y) ne sont bien évidemment pas connues à l'instant k. Par contre, en utilisant les équations de mouvement de caméra on peut les estimer à l'instant k+1. Cela procure une meilleure robustesse dans la mesure des vitesses et 5 cela autorise de grandes dynamiques de mouvements. Comme le même point P du paysage, de coordonnées Xk, Yk dans le bloc k, va se trouver aux coordonnées Xk+1 Yk+1 dans le bloc k+1 à cause des trois rotations aVk+1É Ti, bVk+1. Ti., gVk+1.Ti, et du changement de focale, il faut donc faire subir des rotations et des facteurs de zoom opposés si on cherche à stabiliser de façon absolue l'image k+1 sur l'image k. Examinons maintenant le cas particulier d'une scène stationnaire et pas de translation caméra. Quand la caméra subit de pures rotations 3D, le rapport entre les coordonnées cartésiennes 3D caméra avant et après le mouvement de 15 caméra est: (x', y', z')' = R*(x, y, z)' où R est une matrice 3 x 3 de rotation et alpha = da, bêta = db, gamma = dg sont, respectivement, l'angle de lacet, l'angle de tangage et l'angle de roulis de la caméra entre le tramps t et t'. En coordonnées polaires 3D caméra, le rapport avant et après le mouvement de caméra est: (d', a', b')' = K(da, db, dg) *(d, a, b)' La scène étant stationnaire, on a: d' = d pour tous les points du paysage X = F1(S, Y).x/z = F1(X, Y). tg(a) Y = F1(X, Y). y/z) F1(X, Y).tg(b) Quand la longueur focale de la caméra au temps t évolue, on a: F2(X,Y)= s. F1(X,Y) où s est appelé paramètre de zoom, les coordonnées (X', Y') du plan image peuvent être exprimées par É X' = F2(X, Y) . x'lz' = F2(X, Y) . tg(a') É Y' = F2(X, Y) . y'lz' = F2(X, Y) . tg(b') On a donc quatre paramètres qui peuvent varier. Considérons le cas pratique, pour résoudre l'équation de flux optique, de l'estimation des vitesses de lacet, tangage et roulis et du changement de focale. On pose: B(X,Y) = -Diff(X,Y) = I(X,Y,t-1)-I(X,Y,t); A(X,Y,1) = Gy(X,Y).( F1(X,Y).+ Y2/FI (X,Y)) + Gx(X,Y).X.Y /F1(X,Y) et A(X,Y,2) = Gx(X,Y).( F1(X,Y) + X2/F1(X,Y)) + Gy(X,Y).X.Y IF1(X,Y) A(X,Y,3) = Gx(X,Y). Y Gy(X,Y).X A(X,Y,4) = Gx(X,Y).X + Gy(X,Y).Y Xtrans(1) = s.b; Xtrans(2) = -s.a; Xtrans(3) = s.g; Xtrans(4) = (s-1). On va alors chercher à résoudre l'équation: A*Xtrans -B=0 On utilise la méthode des moindres carrés pour minimiser la norme, préférentiellement une méthode des moindres carrés récursifs. On peut écrire l'équation pour tous les points de l'image. Mais pour améliorer la précision et limiter les calculs, on peut remarquer que dans l'équation A * Xtrans = B, le terme B est la différence de deux images successives et qu'on peut éliminer toutes les valeurs trop faibles ou proches du bruit. On peut également éliminer toutes les valeurs dont le contraste est trop faible ou dont le flot optique est insuffisant. On peut également considérer la somme des gradients spatiaux de l'image en X et Y au carré, ou toute fonction des gradients spatiaux en X et Y. Ainsi, un procédé selon l'invention comporte une étape consistant à choisir le nombre de points de calcul des vitesses dans chaque bloc de 5 traitement en fonction d'un paramètre de qualité d'image. On a beaucoup de points de mesures par rapport au nombre d'inconnues. On peut donc en éliminer un grand nombre. Ainsi, pour un bloc comportant 15 000 pixels, on peut n'effectuer le calcul que sur 1 000 ou 2 000 pixels, ou même sur 100 à 1000 pixels, ce qui 10 réduit grandement les calculs. Une autre étape simplificatrice consiste à ne considérer dans les calculs de vitesses que des mouvements en deux dimensions de chaque bloc. Ainsi, très préférentiellement, on ne considère que des rotations de lacet et de tangage dans les calculs de vitesses, car elles se traduisent par des translations horizontales et verticales de l'image. Les calculs sont donc également grandement simplifiés. Il est possible de remonter aux déplacements des blocs en fonction de leurs vitesses Xtrans par une étape d'intégration. La figure 5 montre comment on calcule les mouvements relatifs des blocs les uns par rapport aux autres. On référence par Xe;(k) les mouvements de chaque bloc i à l'instant k. Comme on l'a vu, le mouvement est préférentiellement déterminé par rapport à deux axes, correspondant aux mouvements de lacet et de 25 tangage. On peut à ce stade effectuer un deuxième filtrage passe bas pour pouvoir centrer les bloc par rapport à une position moyenne correspondant à un mouvement voulu par un utilisateur, et éliminer les mouvements non voulus ayant une fréquence plus élevée. On obtient alors une stabilisation dite filtrée . La fréquence de coupure du filtre passe bas dépend de la fréquence du mouvement de déplacement voulu par l'utilisateur. En ce qui concerne le filtrage temporel passe-bas permettant de déterminer le mouvement moyen du porteur, on choisit la fréquence de coupure en fonction du choix de l'opérateur, en plus de l'amplitude et de la fréquence des mouvements de l'appareil. Si l'opérateur souhaite que tous les mouvements de la caméra soient compensés, la fréquence de coupure est placée proche de 0 Hz. S'il souhaite que seules les vibrations supérieures à 5 Hz par exemple soient compensées, la fréquence de coupure du filtre est réglée à cette valeur. On peut cependant ne pas souhaiter un tel filtrage passe bas. On obtient alors une stabilisation dite absolue . Dans le cas où on n'a pas effectué de filtrage, on pose alors pour 10 chaque bloc: (1) Xstab = Xei(k), où Xstab est le déplacement à donner au bloc i entre les instants k et k+1 pour que le bloc soit stabilisé entre les instants k et k+1. Cependant, dans le cas où l'on a effectué un filtrage, on met en évidence un mouvement d'ensemble Xei(k). Ce mouvement d'ensemble va servir de référence. On calcule ensuite la déformation Xd;(k) du bloc i par rapport au premier bloc. On effectue alors pour chaque bloc i le calcul: Xd;(k) = Xei(k) - Xei(k). Une représentation géométrique de ce calcul est montrée à la figure 5 pour le deuxième bloc (i=2). On pose alors pour chaque bloc: (2) Xstab = FIR{Xei(k)} + Xd;(k). où comme précédemment Xstab est le déplacement à donner au bloc i entre les instants k et k+1 pour que le bloc soit stabilisé entre les instants k et k+1, et ou FIR est la deuxième fonction de filtrage utilisée dans le procédé. Il est également envisageable de chercher une référence de déformation autre que la première image de la séquence dans les calculs de Xstab qui précèdent. La figure 6 montre que lors d'une dernière étape, on effectue une interpolation des mouvements Xstab, pour chaque ligne ou pour chaque colonne de chaque bloc, en fonction des Xstab des blocs qui lui sont directement adjacents. On redivise donc chaque bloc en ses lignes ou ses colonnes et on fait varier les mouvements de chaque ligne ou chaque colonne en fonction des mouvements des blocs adjacents. On a donc une variation des mouvements des lignes ou des colonnes qui est plus douce que si on les considérait comme appartenant à des blocs. II y aurait aux jointures des blocs des recouvrements ou des séparations de blocs, comme le montre la figure 5. Ainsi, chaque ligne ou chaque colonne de chaque bloc est stabilisée par rapport à la ligne ou à la colonne qui lui est directement adjacente. Cette interpolation permet un rendu de l'image qui est grandement amélioré. II n'y a pas de recouvrement ou de séparation de deux lignes ou colonnes adjacentes. L'effet de drapeau est donc éliminé de façon encore plus efficace. La fonction d'interpolation est par exemple une fonction linéaire, ou une fonction polynomiale choisie en fonction des applications. On effectue préférentiellement le calcul du flux optique entre un bloc i de l'image précédente de la série, et le bloc i de l'image courante estimée en fonction des vitesses et accélérations calculées sur le bloc précédent (i-1). En fait, on prend en compte les vitesses et accélérations calculées sur 25 le bloc i-1 pour anticiper le mouvement du bloc i et ainsi améliorer la précision du calcul du flux optique pour le bloc i. On peut ensuite interpoler les vitesses de la troisième dimension à partir des calculs de vitesses en deux dimensions de chaque bloc. On rappelle qu'on peut regrouper dans des blocs des segments de colonnes ou de lignes. On peut ainsi imaginer que l'on divise des blocs de colonnes des calculs précédents selon une direction perpendiculaire aux colonnes par un nombre quelconque, par exemple deux. Ainsi, on peut avoir, au lieu de trois blocs de colonnes, six sous blocs de demi colonnes, à savoir deux lignes et trois colonnes dans l'image. On comprend que si le sous bloc situé en haut à gauche de l'image est animé d'un mouvement vers la droite et que le bloc en bas à gauche est animé d'un mouvement vers la gauche, on peut en déduire que l'appareil est animé d'un mouvement de roulis, à savoir un mouvement selon la troisième dimension. On rappelle en effet que préférentiellement, seuls les mouvements de lacet et de tangage sont pris en compte dans les calculs des vitesses. En calculant les différences de mouvements entre les sous blocs de l'image, on peut ainsi interpoler les mouvements selon la troisième dimension. 22 REVENDICATIONS. 1. Procédé de stabilisation d'une série d'images (1) acquises en lignes 5 ou en colonnes (20) par un appareil d'observation, caractérisé en ce qu'il comporte les étapes consistant à : - diviser chaque image (1) acquise en une pluralité de blocs (5), chaque bloc (5) regroupant une pluralité de lignes ou de colonnes (20) ou une pluralité de segments de lignes ou de colonnes; - calculer les mouvements de rotations et de translations de chaque bloc dans l'image par rapport à un référentiel terrestre, les mouvements étant dues aux mouvements de l'appareil par rapport à ce référentiel; et - faire subir à chaque ligne ou à chaque colonne (20) de chaque bloc (5) une rotation ou une translation pour la stabiliser par rapport à la ligne ou à la colonne adjacente dans l'image, en fonction des mouvements des blocs (5). 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte une étape consistant à calculer les mouvements de chaque bloc (5) en résolvant l'équation du flot optique pour chaque bloc afin de calculer les vitesses de rotations et de translations de chaque bloc dues aux mouvements de l'appareil. 3. Procédé selon l'une des revendications 1 ou 2, caractérisé en ce qu'il comporte une étape consistant à interpoler le déplacement de stabilisation à effectuer en chaque ligne ou en chaque colonne (20) à partir des vitesses de chaque bloc (5) pour effectuer la stabilisation des lignes ou des colonnes entre elles. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce qu'il comporte une étape consistant à déterminer le nombre de lignes ou de colonnes (20) de chaque bloc (5) en fonction de l'amplitude et de la fréquence des vibrations de l'appareil. 5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce qu'il comporte une étape consistant à choisir le nombre de points de calcul des vitesses dans chaque bloc de traitement en fonction d'un paramètre de qualité d'image. 6. Procédé selon l'une des revendications 1 à 5, caractérisé en ce qu'il comporte une étape consistant à ne considérer dans les calculs de vitesses que des mouvements en deux dimensions de chaque bloc (5). 7. Procédé selon la revendication 6, caractérisé en ce qu'il comporte une étape consistant à ne considérer que des rotations de lacet et de tangage dans les calculs de vitesses, car elles se traduisent par des translations horizontales et verticales de l'image. 8. Procédé selon l'une des revendications 6 ou 7, caractérisé en ce qu'il comporte une étape consistant à interpoler les vitesses de la troisième dimension à partir des calculs de vitesses en deux dimensions de chaque bloc. 9. Procédé selon l'une des revendications 1 à 8, caractérisé en ce qu'il comporte une étape consistant à effectuer un filtrage passe bas des signaux correspondant aux lignes ou aux colonnes (20). 10. Procédé selon la revendication 9, caractérisé en ce qu'il comporte une étape consistant à choisir la fréquence de coupure du filtrage en fonction de l'amplitude et de la fréquence des mouvements de l'appareil. 11. Procédé selon l'une des revendications 9 ou 10, caractérisé en ce 30 qu'il comporte les étapes consistant à : - mettre en évidence un mouvement d'ensemble des blocs; - calculer la déformation de chaque bloc par rapport à ce mouvement d'ensemble. 12. Dispositif de stabilisation d'une série d'images acquises en lignes ou en colonnes par un appareil d'observation, caractérisé en ce qu'il comporte des moyens aptes à : - diviser chaque image acquise en une pluralité de blocs, chaque bloc regroupant une pluralité de lignes ou de colonnes ou une pluralité de segments de lignes ou de colonnes; - calculer les vitesses de rotations et de translations de chaque bloc dans l'image par rapport à un référentiel terrestre, les vitesses étant dues 10 aux mouvements de l'appareil par rapport à ce référentiel; - faire subir à chaque ligne ou à chaque colonne une rotation ou une translation pour la stabiliser par rapport à la ligne ou à la colonne précédente.