Procédé et dispositif automatisé de perception avec détermination et caractérisation de bords et de frontières d'objets d'un espace, construction de contours et applications La présente invention concerne un procédé ainsi qu'un dispositif automatisé de perception pour la détermination et caractérisation de bords et de frontières d'objets d'un espace qui est analysé, l'espace avec ses objets étant matérialisé par des signaux électriques évoluant dans le temps sous forme de séquences organisées en sous séquences de données. L'invention permet également, à des fins de synthèse, la construction de contours à partir des bords déterminés et caractérisés par l'analyse. L'invention peut être mise en œuvre dans diverses applications dont quelques exemples seront donnés avec notamment la détection et caractérisation de limites de voie de circulation pour un véhicule et pour la sécurité routière, la surveillance de scène, la détermination d'un centre optique, d'un coefficient de distorsion et la correction de la distorsion optique géométrique ainsi que la détermination d'une rotation, d'une translation entre deux représentations successives et la stabilisation/recalage d'images vidéo et, enfin, à la caractérisation de mouvement et la mesure de distance. L'invention permet ainsi l'analyse automatisée d'un espace contenant des objets et qui est matérialisé en signaux électriques avec séquences et sous séquences par un transducteur ainsi qu'une synthèse d'objets à partir de résultats de l'analyse. Le transducteur est adapté à l'espace, par exemple pour un espace visuel, le transducteur est une caméra vidéo ou pour un espace sonore, le transducteur est un microphone avec analyseur spectral. L'invention est plus particulièrement adaptée pour être utilisée avec des neurones spatio-temporels, dits unités STN ou encore appelés modules STN qui permettent l'analyse de paramètres d'un signal par calcul d'histogrammes.
On connaît déjà des procédés et dispositifs de traitement de flux de données, notamment flux vidéo, permettant, en temps réel, de repérer, localiser et/ou d'extraire de leur contexte des objets ou parties d'objets correspondants à certains critères dans un espace, notamment une image d'une scène. Les critères de sélections peuvent être extrêmement variés, il peut s'agir d'une vitesse, d'une forme, d'une couleur... ou d'une combinaison de ces critères. Dans certains d'entre eux il est proposé l'analyse statistique des critères sélectionnés. Ces dispositifs peuvent être utilisés pour faciliter l'appréhension d'une scène ou d'un phénomène par un observateur ou pour commander un automatisme à partir des informations ainsi extraites. On connaît ainsi par la demande FR01 /02539 publiée sous le numéro FR2.821 .459 (WO02/069265), « un procédé et un dispositif de repérage d'un objet par sa forme, sa dimension et/ou son orientation » et dans lequel des signaux numériques représentant par des paramètres des objets d'un espace sont analysés par un ensemble d'unités ou modules élémentaires de calcul d'histogramme du même type, encore appelées unités/modules STN (neurones spatio-temporels). Ces unités STN sont fonctionnellement interconnectées entre- elles afin de produire des résultats d'analyse des paramètres. Les unités STN traitent chacune des données d'entrée en rapport avec les paramètres par une fonction (f0g) pour produire individuellement, sous la dépendance d'une rétro- annotation, une valeur de sortie S de classification et ces valeurs de sortie, toutes ensembles, forment une rétro- annotation disponible sur un bus. En même temps, chacune de ces unités STN constitue et met à jour un ensemble de registres d'analyse rega fournissant des informations statistiques sur le paramètre correspondant. Le choix du paramètre traité et la rétro-annotation utilisée par chaque module STN , le contenu du registre de sortie d'analyse ainsi que la fonction (f0g) qu'il remplit, sont déterminés par
l'intermédiaire d'un logiciel API (Application Program Interface). Parmi les interconnections fonctionnelles des modules STN, des associations de modules STN permettant d'obtenir des résultats pour des combinaisons de paramètres (Figures 2 à 6 de FR2.821.459), et l'association d'un module STN traitant des données temporelles, notamment le mouvement MVT, et d'un module STN traitant des données spatiales, notamment la position X-Y (Figure 7 de FR2.821.459), ont été présentées. Cette association de modules STN avec traitement de paramètres spatiaux X,Y et paramètre temporel MVT est reprise pour information sur la figure 41 de la présente demande. Enfin une association de modules STN dans une application à la reconnaissance de visage (Figure 13 de FR2.821.459) à également été présentée. L'analyse des signaux numériques représentant l'espace et qui est effectuée selon cette même demande est hiérarchique par décomposition progressive des objets de l'espace qui y sont perçus et analysés. On y propose de déterminer d'abord la forme générale d'un objet en mouvement par rapport à un fond relativement stable, puis rechercher à l'intérieur de cette forme générale des éléments caractéristiques par leur teinte, leur couleur, leur position relative... Une telle approche permet l'élaboration rapide d'applications multiples mettant en jeu le repérage d'un objet. Ces applications peuvent être développées, soit à partir d'une formalisation antérieure ayant dégagé les caractéristiques significatives de l'objet et qui sont donc recherchées dans l'espace, soit, grâce à une fonction d'apprentissage par l'examen de l'espace dans lequel un objet est présent, le dispositif extrayant des paramètres caractéristiques de l'objet. Toujours dans cette demande FR2.821.459, la structure et le fonctionnement détaillé d'un module STN (ou unité STN , ces termes étant équivalents) ont été expliqués, notamment en relation avec les Figures 1 , 3, 4 de l'annexe et selon
plusieurs modalités dont l'auto-adaptation, l'anticipation et l'apprentissage. De même on y a expliqué la réalisation d'un dispositif associant plusieurs modules STN en relation matricielle avec la Figure 32 de l'annexe où une unité de traitement temporel 5 produit des données en relation avec les paramètres suivis et caractérisant les données représentant l'espace analysé, notamment des signaux L (lumière), T (teinte), S (saturation), VMvτ (vitesse du mouvement), D VT (direction du mouvement) associés chacun à chaque pixel de l'espace de manière synchrone et où une unité de traitement spatial 6 permet d'effectuer des changement d'axe prédéfinis pour des données spatiales x,y. Il y est en effet indiqué que la position d'un pixel dans l'espace est représentée par rapport à un système d'axes. Selon la forme, l'orientation, ... des objets dans la scène, certains systèmes d'axes fournissent de meilleurs résultats que les autres et il est donc proposé de choisir des axes permettant d'obtenir des histogrammes optimisés, c'est-à-dire présentant un maximum particulièrement marqué. C'est le rôle de l'unité « Space transform » qui y est décrite. On connaît également : - WO98/05002 pour « procédé et dispositif fonctionnant en temps réel, pour le repérage et la localisation d'une zone en mouvement relatif dans une scène, ainsi que pour la détermination de la vitesse et la direction du déplacement » . Ce dispositif met en œuvre des unités de traitement spatial et temporel qui, recevant un signal S(PI) de type vidéo, produisent un certain nombre de paramètres pour chaque pixel. Il s'agit par exemple de la vitesse V d'un mouvement, de la direction DL dudit mouvement, d'une constante de temps CO, et d'un paramètre binaire de validation VL en plus du signal vidéo retardé VR et des différents signaux de synchronisation de trame, de ligne et de pixel regroupés sous la dénomination F. Des histogrammes de ces paramètres permettant la constitution, la manipulation et l'exploitation
d'informations statistiques sont calculés par des modules de calculs STN qui reçoivent des données par un bus de données et qui sont interconnectés sur un bus de rétro- annotation véhiculant des résultats de classification. - WO00/1 1610 (« image processing apparatus and method ») donnant des moyens avec traitement temporel et spatial permettant de localiser une zone en mouvement et sa vitesse et direction en fonction de paramètres pouvant être la luminance, la teinte, la saturation.... - WO00/1 1609 (« image processing apparatus and method ») donnant des moyens permettant d'identifier l'orientation d'une ligne dans une image et une application routière (détection de ligne ou de véhicule). Toutefois, la méthode décrite qui consiste à rechercher une optimisation du rapport RMAX/NBPTS d'un histogramme selon des projections selon des orientations particulières présente l'inconvénient de nécessiter des recherches en parallèles (ou itératives) pour trouver le sens de l'optimisation et, surtout, elle ne peut pas s'appliquer à des objets présentant de fortes convexités (le principe de calcul ne permet pas une optimisation dans le cas d'un objet qui est circulaire).
- WOÛ1/63557 présentant une mise en œuvre modulaire configurable avec unité de contrôle, bus de données, bus de rétro-annotation et unité de calcul d'histogramme et qui met en œuvre une auto-adaptation, une anticipation et un apprentissage. Dans une unité STN telle que décrite dans WO01 /63557, pour un paramètre donné, on détermine à partir de l'histogramme calculé et stocké dans une mémoire de l'unité, le maximum RMAX de l'histogramme, la position dudit maximum POSRMAX, un nombre de points NBPTS de l'histogramme. On détermine également des bornes de classification qui permettent de délimiter une zone d'intérêt pour le paramètre et il a été proposé de prendre comme critère pour détermination des bornes, un ratio du maximum
de l'histogramme, par exemple RMAX/2, et d'obtenir les bornes par un balayage des données de la mémoire depuis l'origine à la recherche des limites de zones correspondant au critère. - WO02/075659 (« method and device for adapting the sensitivity for detecting a parameter carried by a signal ») donnant des moyens permettant d'adapter un signal utilisé pour détecter un mouvement et décrivant également la structure et le fonctionnement des modules STN. - FR02/10067, FR02/10066, FR02/10065, FR02/10064, divulguent d'autres modes de réalisations et, par exemple, en ce qui concerne les modules STN, en plus de l'auto- adaptation, l'anticipation et l'apprentissage, la réalisation de modules STN multilinéaires (un seul module pouvant traiter directement un paramètre complexe au lieu d'associer des modules traitants chacun un paramètre simple), de modules STN multiclasses (plusieurs maximum RMAX et positions POSRMAX étant déterminés et classés automatiquement) ou, en ce qui concerne les applications des modules STN, le recrutement dynamique, la variation de résolution permettant de faire apparaître hiérarchiquement, au fur et à mesure du retour à une résolution de base élevée, des informations de perception hiérarchiques ou, encore, la définition de LABELS par reconnaissance, identification et mémorisation de caractéristiques de perception d'objets (les LABELS peuvent être ensuite comparés à une perception en cours pour la faciliter et/ou reconnaître des objets particuliers et permettre une conceptualisation de la reconnaissance). Toutes ces réalisations du module STN ont eu pour but d'optimiser les calculs statistiques et de permettre plus de souplesse dans l'association fonctionnelle des modules STN et dans l'utilisation des résultats obtenus. On comprend qu'il soit donc possible d'utiliser des modules STN et des associations de modules plus ou moins évolués en fonction des besoins.
Parmi les signaux permettant de caractériser les données de représentation de l'espace spatio-temporel, les bords d'objets présents dans l'espace peuvent être particulièrement utiles dans l'analyse automatisée de l'espace. On connaît par BALLARD D H et Al. «Computer vision» ENGLEWOOD CLIFFS, NJ, USA, PRENTICE-HALL, USA, 1982, XP002283575, ISBN : 0-13-165316-4 (page 76 à 80) des moyens de détermination de tels bords par calcul matriciel. Toutefois, si une information de bord, en soit, peut aider à l'analyse de la représentation, d'autres informations sont nécessaires pour l'analyse et c'est ce que propose de fournir la présente invention avec un signal temporel d'orientation de bord en utilisant, de plus, une matrice particulière qui est une matrice gaussienne pour la détermination de bord avant détermination de l'orientation de bord. La présente invention concerne donc un procédé automatisé de perception d'un objet dans un espace spatiotemporel représenté par un ensemble de données associées à des pixels ou points évoluant dans le temps et représentés à une succession de moments T, lesdites données étant sous forme d'un signal numérique composé d'une suite de nombres binaires associés à des signaux de synchronisation permettant de définir le moment T de l'espace et la position dans cet espace auxquels les données reçues à un instant donné sont associées, le signal numérique comportant des séquences périodiques organisées en sous séquences successives de données, lesdites données étant caractérisables par au moins un paramètre, ledit procédé comportant une première étape dans laquelle, d'une part, on caractérise le signal numérique sous forme de signaux temporels représentatifs desdits paramètres au cours du temps pendant ladite période et, d'autre part, on produit en concordance un signal spatial représentatif des coordonnées des données successives du signal numérique, lesdites
coordonnées étant cartésiennes (X,Y), polaires (p,θ) ou module-distance (/?,LD), ledit procédé comportant une seconde étape d'analyse pendant au moins une séquence du signal numérique et dans laquelle on met en œuvre sous contrôle d'un programme applicatif, au moins un neurone spatio-temporel, dit module STN, recevant des données en entrée de paramètre(s) et produisant par calcul d'histogrammes, en fonction d'au moins une entrée de rétro- annotation, des résultats statistiques dans des registres et, en sortie, des résultats de classification, au moins le/un des modules STN recevant en entrée de paramètre(s) au moins un signal temporel et en entrée de rétro-annotation au moins un signal de classification de signal spatial. Selon l'invention, lors de la première étape, en complément des signaux temporels initiaux, on calcule un nouveau signal temporel de bord orienté qui caractérise la présence ou non de points correspondants à des bords d'objets, ledit calcul consistant à associer à chaque point, d'une part, au moins une valeur d'angle α d'orientation du bord en ce point d'avec un axe de coordonnées, soit dans le cas d'un espace à deux dimensions par calcul de α=arctg(u/v) avec u et v des dérivées directionnelles du premier ordre pour deux directions orthogonales du ou des signaux temporels initiaux servant à calculer le nouveau signal temporel de bord orienté et, d'autre part, une valeur binaire de validation ou non-validation, Val-α associée à α et prenant une première valeur de validation si le module
![Figure imgf000010_0001](https://patentimages.storage.***apis.com/82/f0/6c/27b0f4bc7a3c45/imgf000010_0001.png)
dudit point est supérieur à un seuil S1 , l'indice i s'étendant à la dimension de l'espace, soit dans le cas d'un espace à deux dimensions
p = V(
u + v ) _ et prenant une seconde valeur de non-validation dans le cas contraire, afin de permettre une détermination et caractérisation de bords d'objets.
(le signal temporel d'orientation de bord est constitué des valeurs α et Val-α, il peut être constitué de données résultant
de concaténant de ces valeurs : par exemple bit de poids fort = Val-α et les autres bits de α) La source de données produit un signal numérique composé d'une suite de nombres binaires associés à des signaux de synchronisation permettant de définir le moment T de l'espace et la position dans cet espace auxquels les données reçues à un instant donné sont associées, le signal numérique comportant des séquences périodiques organisées en sous séquences successives de données. Les données à percevoir peuvent provenir de plusieurs sources et être analysées ensemble (par exemple une caméra et un ou plusieurs gyroscopes). L'espace qui est analysé peut être quelconque, réel ou virtuel, comme par exemple un espace visuel (les objets sont par exemple des visages, des voitures, des voies de circulation... ), un espace sonore (les objets sont par exemple des sons, des phonèmes... ), un espace tactile, un espace proprioceptif (positions d'articulations d'un robot articulé) ... La source de données peut être un transducteur pour reproduire sous forme de signal numérique un espace réel tangible comportant des objets ou peut être un moyen permettant de créer un espace virtuel comportant des objets (un espace résultant d'une perception, une simulation d'espace, une reconstitution d'espace mémorisé...) Dans le premier cas de transducteur et à titre d'exemples, celui-ci peut être une caméra, un appareil photo, un imageur... pour un espace qui est visuel, un appareil d'analyse fréquentielle pour un espace qui est sonore, un système d'analyse de pression (gant instrumentalisé tactile par exemple) pour un espace qui est tactile, un système d'analyse de position (capteurs de positions d'articulations ou d'effecteurs de robot, gyroscope...) pour un espace proprioceptif... Dans le second cas de moyen permettant de créer un espace virtuel et à titre d'exemples, celui-ci peut être un
automate de perception (notamment du type à modules STN), un simulateur informatique d'espace visuel, sonore ou autre, un calculateur permettant de déterminer des positions d'articulations à partir d'images de robots articulés... Dans divers modes de mise en œuvre de l'invention, les moyens suivants pouvant être utilisés seuls ou selon toutes les combinaisons techniquement envisageables, sont employés:
- pour le calcul d'un nouveau signal temporel de bord orienté on utilise un sous-ensemble des données du/des signaux temporels initiaux avec une résolution spatiale réduite par un filtrage passe-bas desdites données par application d'une fonction de filtrage multidimensionnelle, la résolution étant fonction de la valeur d'un paramètre de résolution W, - dans le cas d'un espace à deux dimensions, u et v sont calculés par les produits scalaires suivants avec L correspondant aux données, fx et fy correspondant à deux matrices de dérivation intégrant un filtrage spatial gaussien suivant deux axes orthonormés: m=W n=W m=W n=W
U(iJ. = 2 ι 2~l ('t»JM ) *X(/+»ι.>+π) V(U.t) = 2-W a {i+mj+nj) V (i+mj+n) ii—W n=-W ©t m=-W n≈-W
- le signal de classification de signal spatial provient d'un classifieur recevant en entrée le signal spatial, le classifieur étant un circuit dédié à la classification sans calcul d'histogramme, - le signal de classification de signal spatial provient d'un autre module STN recevant en entrée le signal spatial et les modules STN sont organisés en couple, le premier module STN du couple recevant en entrée de paramètre(s) le signal temporel et le second module STN du couple recevant en entrée de paramètre(s) le signal spatial, la sortie du premier module STN étant renvoyée en entrée de rétro-annotation du second module STN et la sortie du second module STN étant renvoyée en entrée de rétro-annotation du premier module STN,
- le signal spatial en entrée de paramètre du second module STN du couple subit une opération de rotation d'angle θ pour changement d'axes de coordonnées,
(on doit noter que l'angle de rotation θ peut être nul ce qui correspond à une absence de rotation effective)
- pendant une séquence, on envoie la valeur d'angle α du signal temporel de bord orienté en entrée de paramètre d'un premier module STN d'au moins un couple de modules STN et on utilise les résultats du calcul d'histogramme sur les angles α du premier module STN pour modifier l'angle θ de rotation pour la séquence suivante et pour l'analyse de l'angle d'orientation α dans le premier module STN recevant le signal de bord orienté, on ne prend en compte que les points dont Val-α est égal à la première valeur de validation, - on détermine pour chaque couple de modules STN analysant le signal de bord orienté au moins un barycentre de zone (BarZα) et une orientation de zone α,
- en outre, lors de la première étape, on calcule à partir du signal temporel de bord orienté un nouveau signal temporel de variation d'orientation de bord qui caractérise la variation δα d'angle de points de bords d'objets, ledit calcul consistant à effectuer pour chaque point considéré une différence en valeur absolue entre les valeurs d'angles α de deux points de bords adjacents situés de part et d'autre du point considéré sur une même ligne passant par le point considéré, ligne fonction de l'angle α du point considéré, afin d'obtenir une information sur la courbure locale du bord, soit dans le cas d'un espace à deux dimensions par prise en compte de points adjacents compris dans une matrice 3x3 centrée sur le point de bord considéré, et on y associe une valeur binaire de validation ou non-validation, Val-δα prenant une première valeur de validation si la variation est valide et prenant une seconde valeur de non-validation dans le cas contraire, une variation étant valide si, lors du calcul, le point considéré et
les points adjacents fonction de l'angle α du point considéré ont tous la première valeur de validation pour Val-α, (le signal temporel de variation d'orientation de bord est constitué des valeurs δα et Val-δα, -α, il peut être constitué de données résultant de concaténant de ces valeurs : par exemple bit de poids fort = Val-δα et les autres bits de δα)
- pendant une séquence, on envoie le signal temporel de variation d'orientation de bord en entrée de paramètre d'un module STN recevant en entrée de rétro-annotation au moins un signal de classification de signal spatial, le signal de classification de signal spatial pouvant provenir soit d'un classifieur recevant en entrée le signal spatial, le classifieur étant un circuit dédié à la classification sans calcul d'histogramme, soit d'un autre module STN recevant en entrée le signal spatial, et pour l'analyse de la variation δα de l'angle d'orientation dans le module STN recevant le signal temporel de variation d'orientation de bord, on ne prend en compte que les points dont Val-δα est égal à la première valeur de validation, - dans le cas de couples de modules STN traitant le signal temporel de variation d'orientation de bord , le premier module STN du couple recevant en entrée de paramètre(s) le signal de variation d'orientation de bord et le second module STN du couple recevant en entrée de paramètre(s) le signal spatial ayant subit une opération de rotation d'angle γ pour changement d'axes de coordonnées, la sortie du premier module STN étant renvoyée en entrée de rétro-annotation du second module STN et la sortie du second module STN étant renvoyée en entrée de rétro-annotation du premier module STN, l'angle de rotation γ reste constant au cours des séquences,
- on détermine pour chaque couple de modules STN ( 12A.12B) analysant le signal de variation d'orientation de bord au moins un barycentre de zone (BarZδ«) et une variation δα,
- on détermine un bord orienté en fonction de la variation de l'orientation dudit bord, un module STN supplémentaire étant ajouté à un couple de modules STN analysant le signal d'orientation α de bord, ledit module STN supplémentaire recevant en entrée de paramètre(s) le signal temporel de variation d'orientation de bord et en entrée de rétro- annotation le signal de classification produit en sortie du second module STN du couple et ledit module STN supplémentaire produisant en sortie un signal de classification envoyé en entrée de rétro-annotation supplémentaire du premier module STN du couple,
- on répète au cours du temps sur plusieurs séquences l'étape d'analyse du signal temporel de bord orienté avec recrutement progressif de couples de modules STN afin de déterminer une suite de bords orientés et de façon à ce que: pendant la première séquence avec un premier couple de modules STN on utilise un angle de rotation θ nul et que à la deuxième séquence, un nouveau couple de modules STN est mis en œuvre avec un angle de rotation θ résultant du calcul d'histogramme du premier couple à la première séquence et le signal de sortie de classification du second module STN du premier couple étant envoyé en entrée de rétro-annotation pour inhibition du second module STN du nouveau couple, et ainsi de suite, un nouveau couple étant mis en œuvre à chaque nouvelle séquence, l'angle de rotation θ pour le nouveau couple résultant du calcul d'histogramme par un couple précédent à la séquence précédente, le second module STN du nouveau couple recevant en entrée de rétro- annotation pour inhibition l'ensemble des sorties de classification des seconds module STN mis en œuvre,
- les modules STN sont simulés par calcul dans un circuit électronique du type microprocesseur ou du type processeur de signaux numériques (DSP),
- on met en œuvre un circuit intégré électronique dédié configurable dynamiquement comportant au moins des moyens de calcul en logique câblée de paramètres temporels et de paramètres spatiaux et un ensemble de modules STN en logique câblée sur bus de paramètres et bus de rétro- annotation et sous la dépendance d'un programme applicatif,
- on détermine pour chaque couple de modules STN au moins un barycentre de zone et une orientation de zone et on exécute une phase de synthèse permettant de construire un contour par ajustement d'une courbe par rapport aux barycentres,
- on détermine en outre des labels par mémorisation de résultats d'analyse et/ou de synthèse d'objets. ,
- on utilise des bords orientés pour lesquels la variation d'orientation δα de bord est particulièrement élevée, lesdits bords correspondant alors à des coins d'objets, comme points d'accroché par rapport à un fichier d'objet maillé 3D afin de produire une animation de synthèse,
- l'animation de synthèse consiste en une reconstruction projective ou euclidienne adaptative temporellement par utilisation d'une triangulation des points d'accroché,
- le signal numérique est produit par un transducteur produisant des images, l'espace est une scène et sa dimension est deux, et on envoie le signal numérique de façon à ce que les premières sous-séquences envoyées d'une séquence comportent des points/pixels représentant des objets de l'espace les plus proches du transducteur,
- le transducteur est choisi parmi : - une caméra vidéo produisant des images sous forme de signaux numériques en séquences périodiques organisées en sous séquences successives de données, - un appareil photographique numérique produisant des images sous forme de signaux numériques en séquences périodiques organisées en sous séquences successives de données,
- un imageur produisant des images sous forme de signaux numériques en séquences périodiques organisées en sous séquences successives de données, - un lecteur de support d'enregistrement d'images produisant des images sous forme de signaux numériques en séquences périodiques organisées en sous séquences successives de données - un radar ou un sonar produisant des images sous forme de signaux numériques en séquences périodiques organisées en sous séquences successives de données,
- l'imageur est par exemple du type numériseur d'images, photocopieur numérique, appareil de transmission de télécopies... , produisant des images sous forme de signaux numériques en séquences périodiques organisées en sous séquences successives de données, PROCEDE/APPLICATION A L'ANALYSE
D'ENVIRONNEMENT
- application au suivi et à l'anticipation de la trajectoire d'un véhicule dans un environnement routier dans lequel au moins un transducteur qui est une caméra orientée vers l'avant du véhicule et un espace à deux dimensions sont mis en œuvre,
- application à une alerte anti-collision par détection d'autres véhicules en fonction d'au moins la trajectoire du véhicule comportant le dispositif de l'invention, - application à la sécurité routière dans laquelle le visage du conducteur du véhicule est en outre analysé pour détection d'endormissement,
- l'espace représenté est une route et que l'on dispose au moins une caméra dans le rétroviseur d'un véhicule, la caméra étant orientée vers l'avant du véhicule et on détermine au moins deux limites de voie de circulation latéralement au véhicule à partir de bords orientés déterminés,
- l'espace représenté est une route et on dispose au moins une caméra latéralement au véhicule, ladite caméra étant
orientée latéralement et vers l'arrière et étant dans un rétroviseur latéral,
- on détermine pour chaque bord orienté d'un couple de modules STN au moins un barycentre de zone et une orientation de zone et on détermine parmi lesdites zones des zones appariées de limite de voie de circulation et pour chaque zone appariée de limite de voie on détermine l'équation d'une droite portée par ladite zone et on calcule la position H du point de croisement desdites droites, - on caractérise un virage d'une voie de circulation par un arc de cercle et on calcule au moins les rayons de ses limites latérales, la présence d'un virage étant détectée par un décalage linéaire de la position H du point de croisement de droites de zones appariées successives dans une même séquence,
- en cas de détection d'un virage on actionne un dispositif de rotation de l'éclairage du véhicule disposé dans le phare du véhicule en vue d'éclairer la voie de circulation dans le virage, - on détermine en outre des équations de changement de repère permettant de passer d'une représentation dans le repère de la caméra vers un repère horizontal route vue de dessus et centré sur le véhicule et inversement,
- en outre on effectue une recherche de l'endormissement du conducteur du véhicule, le visage du conducteur étant capté par une partie de la caméra,
- en outre on effectue une recherche de l'endormissement du conducteur du véhicule, le visage du conducteur étant capté par une seconde caméra, PROCEDE/APPLICATION A LA SURVEILLANCE DE
SCENE
- l'espace représenté est un lieu comportant des objets et l'on dispose au moins un transducteur orienté non verticalement vers ledit lieu afin que les objets soient vus en perspective dans des images dudit transducteur et on détermine l'horizon
dudit lieu par recherche d'au moins deux points (Fo, F-i) correspondants chacun au croisement d'un groupe de droites comportant au moins deux, et de préférence au moins trois, droites portées par des bords d'orientations sensiblement voisines mais non égales et déterminés dans les images, les bords d'un groupe ayant des valeurs d'angle α d'orientation du bord comprises dans une gamme de valeurs proches non égales et ayant des variations δα d'angle d'orientation sensiblement nulles correspondant à des bords sensiblement rectilignes/droits, l'horizon étant une droite passant par lesdits au moins deux points,
- pour deux des au moins deux points de détermination de l'horizon et obtenus à partir des croisements d'un premier et d'un second groupes de droites portées par les bords orientés, on sélectionne lesdits deux groupes de manière à ce que les orientations des bords du premier groupe soient sensiblement différentes des orientations des bords du second groupe et, de préférence, que les orientations des deux groupes soient sensiblement perpendiculaires entre elles, afin que les deux points soient sensiblement éloignés l'un de l'autre,
- on détermine un repère orthonormé u,v de premier axe porté par l'horizon et de deuxième axe perpendiculaire au premier et passant par le centre optique de l'image et, à partir de l'image considérée dans ledit repère orthonormé u,v et obtenue par rotation de l'image initiale, on détermine des équations de changement de repère permettant de passer d'une représentation dans le repère u,v vers un repère horizontal correspondant à une vue de dessus du lieu et inversement,
- le centre optique est estimé au centre de l'image,
- le centre optique est déterminé par calcul,
- à partir d'une perception de bords orientés de l'image dont au moins les variations δα d'orientations de bords sont dans une gamme déterminée de valeurs et, de préférence, une
gamme de valeurs sensiblement nulles correspondant à des bords rectilignes/droits ou très faiblement courbés et en appliquant les équations de changement de repère, on crée par synthèse un modèle de représentation synthétique du lieu vue de dessus et on perçoit ensuite dans les images du transducteur des objets en mouvement et on reporte en appliquant les équations de changement de repère lesdits objets en mouvement dans ledit modèle, PROCEDE/APPLICATION A LA DETERMINATION DE LA DISTORSION OPTIQUE GEOMETRIQUE
- application à un procédé de détermination d'un coefficient E de distorsion optique géométrique en barillet ou en tonneau sur au moins une image sous forme d'un signal numérique obtenu avec un transducteur comportant un objectif ayant une possible distorsion optique, les pixels de l'image pouvant être mis sous forme d'une matrice numérique image à deux dimensions d'axes référentiels X et Y, chaque pixel de l'image entre des bords de l'image pouvant être référencé par sa position P cartésienne P(x, y) ou polaire P(p, θ) dans la matrice dans laquelle on modélise la distorsion optique géométrique par un déplacement de module Δ = E.p3 des pixels P en référence polaire entre l'image avec distorsion et l'image sans distorsion, E étant le coefficient de distorsion et p le module du pixel P(x, y) par rapport au centre optique 0(xo, yo) dans l'image, et dans une phase de calcul du coefficient de distorsion E, on calcule le coefficient de distorsion par un processus itératif consistant à déplacer selon la modélisation et par rapport à un point d'origine de référence au moins trois points d'un bord d'un objet de la scène en modifiant itérativement une valeur initiale du coefficient de distorsion jusqu'à ce que lesdits au moins trois points se retrouvent sensiblement alignés sur une droite, le point d'origine de référence étant préférentiellement le point central de l'image dans la matrice, le bord orienté étant choisi parmi les bords des objets de l'image les plus longs et les
plus éloignée du point d'origine de référence selon une distance projective, les au moins trois points du bord étant distincts et répartis sur ledit bord, et on met en œuvre pour la détermination de bords et de points sur lesdits bords, au moins un module STN recevant des données en entrée de paramètre(s) et produisant par calcul d'histogrammes, en fonction d'au moins une entrée de rétro-annotation, des résultats statistiques dans des registres et, en sortie, des résultats de classification, au moins une des données utilisée en entrée de paramètre(s) étant un signal de bord orienté caractérisant une orientation de bord parmi l'ensemble des données caractérisant l'image, - application à un procédé de détermination d'un coefficient E de distorsion optique géométrique en barillet ou en tonneau et d'un centre optique (x0, yo) sur au moins une image numérique sous forme d'un signal numérique obtenu avec un transducteur comportant un objectif avec un centre optique et ayant une possible distorsion optique, les pixels de l'image pouvant être mis sous forme d'une matrice numérique image à deux dimensions d'axes référentiels X et Y, chaque pixel de l'image entre des bords de l'image pouvant être référencé par sa position P cartésienne P(x, y) ou polaire P(p, θ) dans la matrice, dans laquelle on modélise la distorsion optique géométrique par un déplacement de module Δ = E.p3 des pixels P en référence polaire entre l'image avec distorsion et l'image sans distorsion, E étant le coefficient de distorsion et p le module du pixel P(x, y) par rapport au centre optique 0(xo, yo) dans l'image, et : - dans une première phase, dite phase de calcul du coefficient de distorsion E, on calcule le coefficient de distorsion par un processus itératif consistant à déplacer selon la modélisation et par rapport à un point d'origine de référence au moins trois points d'un bord d'un objet de la scène en modifiant itérativement une valeur initiale du coefficient de distorsion jusqu'à ce que
lesdits au moins trois points se retrouvent sensiblement alignés sur une droite, le point d'origine de référence étant préférentiellement le point central de l'image dans la matrice, le bord orienté étant choisi parmi les bords des objets de l'image les plus longs et les plus éloignée du point d'origine de référence selon une distance projective, les au moins trois points du bord étant distincts et répartis sur ledit bord, - dans une deuxième phase, dite phase de calcul du centre optique (xo, yo) sur l'image, on calcule la position du centre optique par un processus itératif consistant à modifier itérativement la position d'un centre optique courant de valeur initiale prédéfinie et à déplacer selon la modélisation avec le coefficient de distorsion précédemment calculé au moins trois points d'un premier bord et au moins trois points d'au moins un second bord jusqu'à ce que lesdits points correspondants se retrouvent sensiblement alignés sur une droite correspondante, la valeur initiale prédéfinie du centre optique courant étant préférentiellement le point central de l'image dans la matrice, le premier bord et le second bord étant choisis parmi les bords des objets de l'image les plus longs et les plus éloignés de la valeur initiale prédéfinie du centre optique courant selon une distance projective et ayant en outre des directions se croisant, les directions étant de préférence sensiblement perpendiculaires entre-elles, les au moins trois points de chacun des bords étant distincts et répartis sur le bord correspondant, et on met en œuvre pour la détermination de bords et de points sur lesdits bords, au moins un module STN recevant des données en entrée de paramètre(s) et produisant par calcul d'histogrammes, en fonction d'au moins une entrée de rétro-annotation, des résultats statistiques dans des registres et, en sortie, des
résultats de classification, au moins une des données utilisée en entrée de paramètre(s) étant un signal de bord orienté caractérisant une orientation de bord parmi l'ensemble des données caractérisant l'image, - on affine le calcul du coefficient de distorsion et le calcul de la position du centre optique par itération de la première et de la deuxième phase tant que la variation en valeur absolue du coefficient de distorsion d'une itération à la précédente et/ou la variation en valeur absolue de la position du centre optique d'une itération à la précédente est/sont supérieurs à des seuils de fin d'itération respectifs, et lors du premier passage dans la première phase, le point d'origine de référence est préférentiellement le point central de l'image dans la matrice, et lors des passages ultérieurs itératifs dans la première phase, le point d'origine de référence est le centre optique calculé dans la deuxième phase juste précédente, et lors du premier passage dans la deuxième phase, la valeur initiale prédéfinie de la position du centre optique courant est préférentiellement le point central de l'image dans la matrice, et lors des passages ultérieurs itératifs dans la deuxième phase, la valeur initiale prédéfinie de la position du centre optique courant est le centre optique calculé dans la deuxième phase précédente,
- en outre on corrige la distorsion optique géométrique en barillet ou en tonneau d'images dans une troisième phase de correction par déplacement de chacun des pixels P en référence polaire selon la valeur Δ correspondante sur un axe passant par ledit pixel et le centre optique (x0, yo). Δ étant calculé avec la valeur E du coefficient de distorsion obtenu à la première phase et le centre optique (xo, yo) obtenu à la deuxième phase,
- pour ce qui concerne les phases correspondantes, respectivement selon la phase considérée:
A - dans la première phase ou la phase de calcul du coefficient de distorsion, on effectue les étapes suivantes :
a) on attribue une valeur initiale Ei au coefficient de distorsion, b) on détermine sur l'image un bord d'objet, ledit bord étant choisi parmi les bords d'objets les plus longes et les plus éloignés du point d'origine de référence selon une distance projective, c) on détermine au moins trois points P1 (xι , yi), P2(x2, y2) , P3(X3, y3) ... distincts et répartis sur ledit bord, d) on calcule en coordonnées polaires, par rapport au point d'origine de référence pour chaque point P1 (xι , yi), P2(x2, y2)
, P3(x
3, y3). •• . les valeurs des modules p^\ , p
2, P3- . , e) on calcule en coordonnées polaires pour chaque point P1 (xι , yi ), P2(x
2, y2) , P3(x
3, y3)--. , les valeurs des déplacements correspondants Δ
P1 = Ej.pι
3, Δp
2=Ej.p
2 3,
f) on déplace les points P1 (xι , yi), P2(x
2 > y
2) , P3(x
3( y
3) -- , considérés en référence polaire d'une distance Δ
P1 , Δp
2, Δp
3... correspondante le long d'un axe passant par le point d'origine de référence et le point correspondant, les points déplacés étant P1 (x'ι , y't), P2(x'
2, y'
2) , P3(x'
3, y's)- , g) on effectue un test de linéarité entre les points déplacés P1 (x'ι , y'i), P2(x'
2, y'2) , P3(x'
3 > y'3) -. par calcul d'un indice d'alignement la indiquant l'écart desdits points déplacés par rapport à un alignement sur une droite commune fictive, - dans le cas où l'indice d'alignement la est inférieur à un seuil ε de linéarité, on garde comme coefficient de distorsion E la dernière valeur Ej et on quitte la phase de calcul du coefficient de distorsion, - dans le cas contraire, on modifie la valeur de Ej d'une manière telle qu'en repassant itérativement à l'étape e), l'indice d'alignement la finisse par diminuer,
B - dans la deuxième phase on effectue les étapes suivantes : h) on attribue la valeur initiale prédéfinie O(x, y) au centre optique courant, la valeur initiale prédéfinie 0(x, y)
correspondant de préférence au point central de l'image dans la matrice, i) on détermine sur l'image un premier bord d'objet, ledit premier bord étant choisi parmi les bords d'objets les plus longs et les plus éloignés du centre optique courant selon une distance projective, j) on détermine au moins trois points P 1 (xι , yi), P2(x2, y2) , P3(X3, y3) ... distincts et répartis sur ledit premier bord , k) on détermine sur l'image un second bord d'objet, ledit second bord étant choisi parmi les bords d'objets de l'image les plus longs et les plus éloignés du centre optique courant selon une distance projective, lesdits premier et second bords ayant en outre des directions se croisant, les directions étant de préférence sensiblement perpendiculaires entre-elles, les orientations des bords étant assimilées aux directions,
I) on détermine au moins trois points Pa(xa, ya), P (Xb, y_>) , Pc(xc, yc)... distincts et répartis sur ledit second bord, I premier bord étant moins incliné que le second bord par rapport à un premier axe, X ou Y, que par rapport à un second axe, Y ou X, des deux axes référentiels X, Y de la matrice, * pour une première coordonnée du centre optique : m) on calcule en coordonnées polaires, par rapport au centre optique courant 0(x, y), pour chaque point P1 (xι , yi), P2(x2, y2) , P3(x3, y3) -.. les valeurs des modules pi , p2, p ... , n) on calcule en coordonnées polaires pour chaque point P1 (xι , y , P2(x2, y2) , P3(x3, ys) ... , les valeurs des déplacements correspondants ΔP 1 = E.pι3, Δp2=E.p2 3, Δp3=E.p3 3... , E étant le coefficient de distorsion obtenu à la première phase, o) on déplace les points P1 (xι , y , P2(x2, y2) , P3(x3, y3)... considérés en référence polaire, d'une distance Δp-i , Δp2, ΔP3... correspondante selon un axe passant par le centre optique courant 0(x, y) de l'image et le point correspondant,
les points déplacés étant P1 (x , y'i), P2(x'2 ) y'2) , P3(x'3, y's)- . p) on effectue un test de linéarité entre les points déplacés
P1 (x'ι , y'i), P2(x'2, y'a) , P3(x'3, y'3)... par calcul d'un premier indice d'alignement lai indiquant l'écart desdits points déplacés par rapport à un alignement sur une droite commune fictive, - dans le cas où l'indice d'alignement lai est inférieur à un seuil ε' de linéarité, on garde la première coordonnée yo ou xo sur le second axe pour la position courante O(x, y) et on passe à l'étape suivante, - dans le cas contraire, on déplace le centre optique courant O(x, y) parallèlement au second axe, Y ou X, et on repasse à l'étape m) de manière à ce qu'itérativement l'indice d'alignement lai finisse par diminuer, * pour la seconde coordonnée du centre optique : q) on calcule en coordonnées polaires, par rapport au centre optique courant 0(x, y) avec la première coordonnée calculée précédemment, pour chaque point Pa(xa, ya), Pb(x , yb), Pc(xc, yc)- - , les valeurs des modules ρa, pb, Pc--- , r) on calcule en coordonnées polaires pour chaque point Pa(xa, ya), Pb(xb, y ), Pc(xc, yc)- - , les valeurs des déplacements correspondants Δpa=E.ρa 3, Δpb≈E.pb 3, Δpc≈E.pc 3... , E étant le coefficient de distorsion obtenu à la première phase, s) on déplace les points Pa(xa, ya), Pb(xb, y ), Pc(xc, yc)--. considérés en référence polaire, d'une distance Δpa, Δpb, ΔPc... correspondante selon un axe passant par le centre optique courant 0(x, y) de l'image et le point correspondant, les points déplacés étant Pa(x'a, y'a), Pb(x'b. y'b). Pc(x'c, yO)- , t) on effectue un test de linéarité entre les points déplacés Pa(x'a, y'a), Pb(x'b, y'b), Pc(x'c, y'c)- - , par calcul d'un second indice d'alignement la2 indiquant l'écart desdits points
déplacés par rapport à un alignement sur une droite commune fictive, - dans le cas où l'indice d'alignement la2 est inférieur à un seuil ε" de linéarité, on garde la seconde coordonnée xo ou yo sur le premier axe pour la position courante 0(x, y), - dans le cas contraire, on déplace le centre optique courant 0(x, y) parallèlement au premier axe, X ou Y, et on repasse à l'étape q) de manière à ce qu'itérativement l'indice d'alignement la2 finisse par diminuer,
- on met en œuvre une fonction de calcul et de test générique sur des paramètres d'entrée pour produire en sortie une valeur, la fonction de calcul générique permettant d'exécuter respectivement les étapes m) à p) ou les étapes q) à t) en fonction des paramètres d'entrée, respectivement première ligne, second axe, centre optique courant et seuil ε' ou seconde ligne, premier axe, centre optique courant et seuil ε" et produisant respectivement la première ou la seconde coordonnée, - la fonction de calcul générique fait appel à au moins une sous fonction permettant : - le calcul des valeurs des modules pi... des points Pi de la ligne, le calcul des valeurs des déplacements correspondants Δp,=E. pj3... , - le déplacement des points Pi de la ligne considérés en référence polaire d'une distance Δpj... correspondante le long d'un axe passant par le point d'origine de référence et ledit point Pj de la ligne, ladite sous fonction étant utilisable pour les étapes d) e) f) ou m) n) o) ou q) r) s),
- on met en œuvre en outre au moins une des étapes supplémentaires suivantes selon la phase considérée : - une étape supplémentaire Tb) entre les étapes b) et c) consistant en un test de réussite de détermination de
bord, le procédé s'arrêtant à ladite étape Tb) en cas d'impossibilité de détermination de bord à l'étape b),
- une étape supplémentaire Ti) entre les étapes i) et j) consistant en un test de réussite de détermination de bord, le procédé s'arrêtant à ladite étape Ti) en cas d'impossibilité de détermination de bord à l'étape i),
- une étape supplémentaire Tk) entre les étapes k) et I) consistant en un test de réussite de détermination de bord, le procédé s'arrêtant à ladite étape Tk) en cas d'impossibilité de détermination de bord à l'étape k),
- une étape supplémentaire Te) entre les étapes c) et d) consistant en un test de réussite de détermination d'au moins trois points sur le bord, avec en cas d'impossibilité de détermination d'au moins trois points, retour à l'étape b),
- une étape supplémentaire Tj) entre les étapes j) et k) consistant en un test de réussite de détermination d'au moins trois points sur le bord, avec en cas d'impossibilité de détermination d'au moins trois points, retour à l'étape i),
- une étape supplémentaire TI) entre les étapes I) et m) consistant en un test de réussite de détermination d'au moins trois points sur le bord, avec en cas d'impossibilité de détermination d'au moins trois points, retour à l'étape k),
- une étape supplémentaire Te') entre les étapes c) et d), de préférence entre les étapes Te) et d), consistant en un test de linéarité entre les trois points P1 (xι , yi), P2(x2, y2) , P3(x3, y3)--- par calcul d'un indice d'alignement indiquant l'écart desdits points par rapport à un alignement sur une droite commune fictive, et, au cas où l'indice de linéarité est inférieur à un seuil, retour à l'étape b) pour détermination sur l'image d'une nouvelle ligne d'un objet de la scène, ladite nouvelle ligne n'ayant pas encore fait l'objet d'étapes,
- une étape supplémentaire Tj') entre les étapes j) et k), de préférence entre les étapes Tj) et k), consistant en un test de linéarité entre les trois points P1 (xι , yi), P2(x2, y2) , P3(X3, y3) ... par calcul d'un indice d'alignement indiquant l'écart desdits points par rapport à un alignement sur une droite commune fictive, et, au cas où l'indice de linéarité est inférieur à un seuil, retour à l'étape i) pour détermination sur l'image d'une nouvelle ligne d'un objet de la scène, ladite nouvelle ligne n'ayant pas encore fait l'objet d'étapes, - une étape supplémentaire TI') entre les étapes I) et m), de préférence entre les étapes TI) et m), consistant en un test de linéarité entre les trois points Pa(xa, ya), Pb(Xb, yb), Pc(xc, yc) --- par calcul d'un indice d'alignement indiquant l'écart desdits points par rapport à un alignement sur une droite commune fictive, et, au cas où l'indice de linéarité est inférieur à un seuil, retour à l'étape k) pour détermination sur l'image d'une nouvelle ligne d'un objet de la scène, ladite nouvelle ligne n'ayant pas encore fait l'objet d'étapes,
- le nombre de points déterminés sur chaque bord d'un objet de l'image est de trois,
- on calcule l'indice d'alignement I (I, la-i , la
2 respectivement) comme étant la valeur absolue de la différence des pentes P1 et P2 de deux droites fictives, soit l=|P1 -P2|, la première droite fictive de pente P1 joignant un premier point extrême (P1 (x'ι , y'i) ou Pa(x'
a, y'
a) respectivement) des trois points déterminés déplacés (P1 (x'ι , y'i), P2(x'
2, y'
2), P3(x'
3) y'
3) ou Pa(x'
a, y'a), Pb(x'
b, y'b), Pc(x'
c, y'c) respectivement) et le point intermédiaire (P2(x'
2, y'2) ou Pb(x'
b, y'b) respectivement) des trois points déterminés déplacés, soit P1 =(y'ι-y'
2)/(x'ι-x'
2) ou P1
respectivement, et la seconde droite fictive de pente P2 joignant le second point extrême (P3(x'
3, y'
3) ou Pc(x'
c, y'c) respectivement) des trois points déterminés déplacés et le point intermédiaire (P2(x'
2, y'
2) ou Pb(x'
b, y'
b)
respectivement) des trois points déterminés déplacés, soit P2=(y'
2-y'
3)/(x'
2-x'3) ou P2=(yVy'c)/(x
,b-x'c) respectivement,
- on calcule la nouvelle position cartésienne des points après déplacement à partir de leurs positions cartésiennes initiales en passant par des coordonnées polaires comprenant un module p et un angle α par rapport à une origine, le calcul étant du type : - pour un point initial de coordonnées cartésiennes (Xj, yι): p=((XrOx)2 + (yrOy)2)1/2 α≈Arctg ((y Oy)/(Xj-Ox)) (Ox, Oy) étant les coordonnées cartésiennes de l'origine, - pour le déplacement Δ : Δ = E.p3 - pour la nouvelle position du point de coordonnées cartésiennes (x'i, y'j), résolution de x'i, y'i à partir des équations : p+Δ = ((x Ox)2 + (y\-Oy)2)1 2 α≈Arctg ((y'j-Oy)/(x'j-Ox))
- on exécute dynamiquement en continu pour chaque image la première phase, dite phase de calcul du coefficient de distorsion E, et la deuxième phase, dite phase de calcul du centre optique (x0, yo) sur l'image, - en alternative, pour la détermination du centre optique, dans la deuxième phase, on obtient les deux coordonnées xo et yo du centre optique en une seule série d'étapes dans laquelle : z) - on détermine en coordonnées polaires, par rapport au centre optique courant 0(x, y), pour chaque point d'au moins deux bords sensiblement perpendiculaires entre-eux, les valeurs des modules, - on calcule pour chaque point d'au moins des deux bords sensiblement perpendiculaires entre-eux, les valeurs des déplacements correspondants,
on déplace lesdits points d'une distance Δ correspondante selon un axe passant par le centre optique courant O(x, y) de l'image et le point correspondant, - on effectue des calculs de linéarité entre les points déplacés d'au moins des deux bords sensiblement perpendiculaires entre-eux par calcul d'un indice d'alignement par ligne correspondante, et on déplace le centre optique courant O(x, y) selon une direction dans le plan de l'image et on repasse itérativement à l'étape z) de manière à ce que chacun des indices d'alignement finisse par diminuer et tant que lesdits indices d'alignement sont supérieurs à un seuil de fin d'itération, les coordonnées xo et yo du centre optique étant alors données par la position du centre optique courant 0(x, y),
- l'objectif présente au moins un état (notamment focale si elle est variable et/ou ouverture du diaphragme si elle est variable) et que l'on effectue au moins un étalonnage par acquisition à travers l'objectif dans au moins un état d'au moins une image d'une scène comportant des objets délimités par des lignes droites horizontales et verticales (notamment une mire), détermination et mémorisation des valeurs du coefficient de distorsion E et de position du centre optique O(x0, y0) pour au moins ledit un état de l'objectif et, pour les images ultérieures de scènes, on utilise directement les valeurs mémorisées correspondant à l'état courant de l'objectif pour correction de position des points des images selon la troisième phase de correction sans déterminer à nouveau lesdites valeurs sur les images ultérieures,
- pour la détermination de bords on met en œuvre au moins trois modules STN ayant chacun une entrée de paramètre(s), une entrée de rétro-annotation et une sortie de classification, un premier module STN recevant en entrée de paramètre un signal spatial de coordonnées X,Y de pixels, un deuxième
module STN recevant en entrée de paramètre un signal temporel d'orientation α de bord, un troisième module STN recevant en entrée de paramètre un signal temporel de variation δα d'orientation de bord, le premier recevant dans son entrée de rétro-annotation la sortie de classification du deuxième, la sortie de classification du premier étant envoyée en entrée de rétro-annotation du deuxième et en entrée de rétro-annotation du troisième, le deuxième recevant en outre en entrée de rétro-annotation la sortie de classification du troisième afin de pouvoir déterminer un bord d'objet compris dans une zone Z0<i,j) de l'image donnée par la sortie de classification du premier module STN , ledit bord ayant au moins une orientation α et une courbure δα déterminées,
- pour la détermination d'un des points sur un bord déjà déterminé d'un d'objet, on utilise le signal de sortie de classification du premier module STN des trois modules STN ayant déjà déterminé une zone (Z0) du bord, en entrée de rétro-annotation d'un module STN spatial d'un nouveau couple spatio-temporel de modules STN, et dans le nouveau couple spatio-temporel de modules STN, le point correspond à un barycentre d'une portion du bord déjà déterminé et dont les orientations sont dans une partie de la gamme des valeurs d'orientation dudit bord déjà déterminé, la gamme des valeurs d'orientation dudit bord déjà déterminé étant divisée en autant de parties indépendantes que de points de bords à déterminer,
- on dispose en amont d'un système à calcul de signaux temporels et spatiaux de caractérisation et à modules STN configurable sous contrôle d'un programme applicatif, un dispositif de correction de la distorsion en fonction d'une valeur E de coefficient de distorsion optique géométrique et d'une position x0,y0 de centre optique, la valeur E et la position xO.yO étant fournies par le système à modules STN, et pour la détermination de bords orientés on met en œuvre dans le système à modules STN au moins trois modules STN
ayant chacun une entrée de paramètre, une entrée de rétro- annotation et une sortie de classification, un premier module STN recevant en entrée de paramètre(s) un signal spatial de coordonnées X,Y de pixels, un deuxième module STN recevant en entrée de paramètre un signal temporel de valeur d'angle α d'orientation de bord, un troisième module STN recevant en entrée de paramètre(s) un signal temporel de variation δα d'angle d'orientation de bord, le premier recevant dans son entrée de rétro-annotation la sortie de classification du deuxième, la sortie de classification du premier étant envoyée en entrée de rétro-annotation du deuxième et en entrée de rétro-annotation du troisième, le deuxième recevant en outre en entrée de rétro-annotation la sortie de classification du troisième afin de pouvoir déterminer un bord d'objet compris dans une zone Zo(i ) de l'image donnée par la sortie de classification du premier module STN, ledit bord ayant au moins une orientation α et une courbure δα déterminées, et on modifie itérativement la valeur E ou la position x0,y0 respectivement selon la phase considérée, tout en analysant l'histogramme produit par le deuxième module STN à la recherche d'un histogramme présentant un pic sensiblement au maximum signalant l'obtention d'un alignement des points de bords en alternative de la détermination d'au moins trois points du bord déterminé, de leurs déplacements et du calcul d'un indice d'alignement desdits points déplacés, (Cf. figures 16, 46 et 47) PROCEDE/APPLICATION A LA STABILISATION D'IMAGES - application à la détermination d'une rotation entre deux représentations d'un espace spatio-temporel représenté par un ensemble de données associées à des pixels ou points évoluant dans le temps et représentés à une succession de moments T, lesdites données étant sous forme d'un signal numérique composé d'une suite de nombres binaires associés à des signaux de synchronisation permettant de définir le
moment T de l'espace et la position dans cet espace auxquels les données reçues à un instant donné sont associées, le signal numérique comportant des séquences périodiques organisées en sous séquences successives de données, dans laquelle on met en œuvre au moins un module STN, au moins le/un des modules STN recevant en entrée de paramètre un signal temporel caractérisant une orientation α de bord et en entrée de rétro-annotation au moins deux signaux de classification de signal temporel, le premier pour sélection d'orientation δα de bord correspondant à des bords à faible ou nulle courbure, c'est-à-dire bords sensiblement rectilignes, le second pour sélection de module p de points de bord correspondant à des points ayant des valeurs de module parmi les plus élevées, c'est-à-dire de fort contraste, et on réalise deux histogrammes de répartition des orientations des bords sélectionnés sur deux représentations successives de l'espace et on compare l'histogramme de répartition des orientations de bords sélectionnés de la représentation courante avec l'histogramme de répartition des orientations des bords sélectionnés de la représentation précédente, le décalage entre les deux histogrammes donnant l'angle de rotation Rot,
(l'application peut être mise en œuvre sur des espaces à deux ou plus dimensions, notamment pour déterminer des rotations volumiques)
- application à la détermination d'une translation entre deux représentations d'un espace spatio-temporel représenté par un ensemble de données associées à des pixels ou points évoluant dans le temps et représentés à une succession de moments T, lesdites données étant sous forme d'un signal numérique composé d'une suite de nombres binaires associés à des signaux de synchronisation permettant de définir le moment T de l'espace et la position dans cet espace auxquels les données reçues à un instant donné sont associées, le signal numérique comportant des séquences périodiques
organisées en sous séquences successives de données, dans laquelle, pour un axe référentiel particulier de la représentation, on met en œuvre au moins un module STN , au moins le/un des modules STN recevant en entrée de paramètre un signal spatial de projection caractérisant une projection sur l'axe référentiel particulier et en entrée de rétro-annotation au moins deux signaux de classification de signal temporel, le premier pour sélection d'orientations δα de bord correspondant à des bords à forte courbure, c'est-à-dire des coins, le second pour sélection de module p de points de bord correspondant à des points ayant des valeurs de module parmi les plus élevées, c'est-à-dire de fort contraste, et on réalise deux histogrammes de répartition des points de coins sélectionnés sur deux représentations successives de l'espace, le signal spatial de projection étant corrigé par rotation pour une des représentations de l'espace d'une possible rotation Rot ayant pu avoir lieu entre les deux représentations successives, et on compare l'histogramme de répartition des points de coins sélectionnés de la représentation courante avec l'histogramme de répartition des points de coins sélectionnés de la représentation précédente, le décalage entre les deux histogrammes donnant la valeur de translation selon l'axe particulier, (l'application peut être mise en oeuvre sur des espaces à deux ou plus dimensions, notamment pour déterminer des translations volumiques)
- on détermine en parallèle la translation sur l'ensemble des axes du référentiel, autant de modules STN recevant en entrée de paramètre un signal spatial de projection caractérisant une projection sur l'axe référentiel particulier et en entrée de rétro-annotation au moins deux signaux de classification de signal temporel, le premier pour sélection d'orientations δα de bord correspondant à des bords à forte courbure, c'est-à-dire des coins, le second pour sélection de module p de points de bord correspondant à des points ayant
des valeurs de module parmi les plus élevées, c'est-à-dire de fort contraste, étant mis en œuvre que d'axes et autant de comparaison d'histogramme étant faite que d'axes,
- les pixels ou points de la représentation de l'espace peuvent être mis sous forme d'une matrice numérique image à deux dimensions d'axes référentiels X et Y, et qu'en outre, on ne sélectionne que des bords orientés compris dans une zone déterminée de l'image aussi bien pour la détermination de la rotation que de la translation, au moins un signal de classification spatial étant envoyé en entrée de rétro- annotation du module STN correspondant produisant les histogrammes,
- au moins pour produire le signal de classification temporel de sélection de module p de points de bord et au moins pour la détermination de la rotation, on utilise des bornes de classification qui résultent d'une détermination préalable de la répartition des modules de points de bords afin de pouvoir obtenir un nombre de points de bords sélectionnés compris dans une gamme de valeurs déterminées, (pour les coins, on utilise un nombre de points de coins suffisant pour que la détermination soit significative, que l'on ait, par exemple, au moins 30 coins, mais pas trop pour ne pas prendre en compte des coins qui ne sont en réalité que du bruit, de préférence les bornes sont choisies en fonction du nombre total de points de bords et d'une répartition des bords orientés dans des groupes : droites, courbes et coins)
- pour la détermination de la rotation, le décalage entre histogrammes est déterminé par la différence entre la position POSRAMXt du maximum de l'histogramme des orientations de bords sélectionnés de la représentation courante et la position POSRMAXM du maximum de l'histogramme des orientations de bords sélectionnés de la représentation précédente,
- pour la détermination de la rotation, le décalage entre histogrammes est déterminé par un calcul d'une courbe de
corrélation entre les deux histogrammes des orientations de bords sélectionnés, la valeur de rotation étant donnée soit par la position du maximum de la courbe de corrélation, soit par la position de la médiane de la courbe de corrélation, - pour la détermination de la translation, le décalage des histogrammes selon chacun des axes est déterminé par un calcul d'une courbe de corrélation entre les deux histogrammes représentation courante et représentation précédente, les valeurs de translation étant données soit par la position du maximum de la courbe de corrélation correspondante, soit par la position de la médiane de la courbe de corrélation correspondante,
- application de la détermination de la rotation et de la détermination de la translation dans le cas où les pixels ou points de la représentation de l'espace peuvent être mis sous forme d'une matrice numérique image à deux dimensions d'axes référentiels X et Y, à la stabilisation d'images successives avec bougé entre les images, dans laquelle la représentation de l'espace sous forme d'un signal numérique est obtenue par un transducteur produisant des images, et l'on modélise le bougé par une rotation et par une translation, la rotation étant déterminée en premier afin d'obtenir la valeur de rotation Rot utilisée pour correction dans la détermination de la translation et on utilise les valeurs de rotation et de translation pour corriger le bougé de l'image courante,
- on effectue la correction du bougé en prenant en outre en compte des valeurs de rotation et de translation d'images antérieures à l'image précédente, lesdites valeurs permettant de calculer un facteur d'amortissement, les valeurs de rotation et de translation pour la correction du bougé de l'image courante étant les valeurs de rotation et de translation déterminées entre l'image précédente et l'image courante modifiées par le facteur d'amortissement,
- dans le cas où, en outre, on ne sélectionne que des bords orientés compris dans une zone déterminée de l'image aussi
bien pour la détermination de la rotation que de la translation, le transducteur comporte une mémoire avec un nombre M de pixels de prise de vue supérieur au nombre de pixels de l'image utile produite et la correction consiste à déplacer une fenêtre image utile dans la mémoire de prise de vue selon les valeurs de rotation et de translation déterminées, APPLICATION A LA CARACTERISATION DU MOUVEMENT D'UN OBJET PAR RAPPORT A UN TRANSDUCTEUR (MESURE DE DISTANCE, TRANSLATION, ROTATION)
- application à un procédé de caractérisation de mouvements d'un objet par rapport à un transducteur, l'objet dans un espace étant représenté par un ensemble de données obtenues par le transducteur et associées à des pixels ou points évoluant dans le temps et représentés à une succession de moments T, lesdites données étant sous forme d'un signal numérique composé d'une suite de nombres binaires associés à des signaux de synchronisation permettant de définir le moment T de l'espace et la position dans cet espace auxquels les données reçues à un instant donné sont associées, le signal numérique comportant des séquences périodiques organisées en sous séquences successives de données, lesdites données étant caractérisables par au moins un paramètre, ledit procédé comportant une première étape dans laquelle, d'une part, on caractérise le signal numérique sous forme de signaux temporels représentatifs desdits paramètres au cours du temps pendant ladite période et, d'autre part, on produit en concordance un signal spatial représentatif des coordonnées des données successives du signal numérique, ledit procédé comportant une seconde étape d'analyse pendant au moins une séquence du signal numérique et dans laquelle on met en œuvre sous contrôle d'un programme applicatif, au moins un neurone spatio-temporel, dit module STN, recevant des données en entrée de paramètre(s) et produisant par calcul
d'histogrammes, en fonction d'au moins une entrée de rétro- annotation, des résultats statistiques dans des registres et, en sortie, des résultats de classification, au moins le/un des modules STN recevant en entrée de paramètre(s) au moins un signal temporel et en entrée de rétro-annotation au moins un signal de classification de signal spatial, dans laquelle l'espace est un espace de perception ( , LD), la perception de l'objet consistant en une suite hiérarchique de zones perçues et leurs barycentres dans un espace cartésien ou polaire et pouvant être représentée sous une forme d'un graphe de vecteurs reliant hiérarchiquement les barycentres de zones perçues, une donnée de logarithme de la distance du barycentre d'origine de vecteur au transducteur étant associée à chaque vecteur, l'espace de perception ayant un repère de premier axe correspondant au logarithme LD de la distance du point d'origine du vecteur au transducteur et de second axe correspondant au module p des vecteurs reliant les barycentres, le signal numérique p,,LΩm véhiculant des points modulaires de perception et on produit au moins un signal temporel qui est un signal d'orientation de bord à partir du signal numérique,
- le signal numérique /σ/, LDjn est identifié,
- le signal numérique identifié obj provient d'une mémoire de LABEL obtenus par perception, - la perception de l'objet résulte soit d'une perception en direct, soit d'une perception antérieure et mémorisée, soit d'une perception crée par calcul,
- on produit en outre dans l'espace de perception un signal temporel qui est un signal de variation d'orientation de bord à partir du signal ( ,LD) et on détermine des zones et barycentres dans l'espace de perception en fonction de la variation de l'orientation de bord. L'invention concerne également un dispositif automatisé de perception d'un objet qui comporte des moyens permettant au moins l'exécution des procédés précédents et/ou des
applications précédentes selon une ou plusieurs de leurs déclinaisons éventuellement combinées selon toutes les possibilités techniquement envisageables. La présente invention va maintenant être exemplifiée dans la description qui suit, sans pour autant en être limité, et en relation avec les figures suivantes:
- la figure 1 représente, dans sa généralité, un dispositif selon l'invention pour la détermination et la localisation, dans une scène, d'un bord orienté faisant partie d'une frontière recherchée, ainsi qu'éventuellement de la courbure de ce bord, afin de repérer et délimiter cette frontière, avec mise en œuvre d'un caméscope, comme convertisseur d'image, pour observer la scène et la convertir en une succession de trames de type vidéo, ce dispositif comportant une unité de traitement temporel et au moins une unité de traitement spatial des trames, ainsi qu'au moins une paire de modules STN bouclées qui coopèrent avec les unités de traitement,
- la figure 2 illustre une variante d'une portion de la figure 1 , comportant un imageur MOS substitué au caméscope de celle-ci,
- la figure 3 illustre deux bords orientés, l'un courbe et l'autre cunéiforme (c'est-à-dire en forme de coin), tels qu'obtenus par mise en œuvre du dispositif de la figure 1 , éventuellement modifié selon la figure 2, - les figures 4 et 5 montrent les phases successives du traitement, respectivement pour l'orientation et pour la courbure d'un bord, dans le dispositif de la figure 1 , éventuellement modifié selon la figure 2,
- les figures 6 et 7 représentent l'organigramme illustrant les étapes du procédé de traitement selon l'invention, respectivement pour l'orientation et pour la courbure d'un bord, avec mise en œuvre du dispositif de la figure 1 (éventuellement modifié selon la figure 2),
- la figure 8 représente la visualisation de la valeur angulaire discrète de la tangente en un point d'un bord orienté et de son voisinage immédiat, pour chacun des pixels validés,
- la figure 9 illustre le calcul de la variation angulaire d'une frontière, par mise en œuvre d'une matrice carrée de 3X3 pixels, à partir des résultats obtenus dans la figure 8,
- la figure 10 représente la visualisation de la variation de la valeur angulaire, donc la courbure, d'un bord orienté, pour chacun des pixels validés, avec sa légende sur la figure 10a, - la figure 1 1 montre la relation entre le traitement en flot continu des pixels dans l'unité de traitement temporel de la figure 1 (éventuellement modifiée selon la figure 2) et sa représentation spatiale affichée,
- la figure 12 illustre un mode de réalisation préféré de l'unité de traitement temporel du dispositif selon la figure 1 ,
- la figure 13 représente un mode de réalisation préféré des deux unités de la figure 12 effectuant le calcul du produit scalaire de la valeur du pixel et de la fonction de dérivation, pour une résolution spatiale donnée, - les figures 14 et 15 représentent les valeurs de paramètres pour les fonctions de dérivation, respectivement suivant l'axe des x et suivant l'axe des y, mises en œuvre pour déterminer, pour la résolution spatiale précitée, ledit produit scalaire, dans le mode de réalisation de la figure 13, - la figure 16 illustre la multiplication de l'unique unité de traitement spatial angulaire et de la paire 1 1A.1 1 B de modules STN de la figure 1 , en vue de la détermination d'une succession de plusieurs bords orientés, pour former la frontière à déterminer, - la figure 17 est une représentation des bords orientés successifs, mis bout à bout pour former ladite frontière, obtenus par mise en œuvre du dispositif de la figure 1 (éventuellement modifié selon la figure 2), avec multiplication de certaines unités selon la figure δ,
- la figure 18 illustre une extension d'un dispositif selon l'invention et utilisant un triplet de modules STN pour réaliser le couplage, pour une position de pixel, de l'orientation et de la courbure du bord traité, avec la courbure comme critère de classification, afin de choisir entre des frontières rectilignes, courbes ou cunéiformes,
- la figure 19 représente une extension du dispositif selon l'invention dans le but de combiner analyse et synthèse,
- les figures 20 et 21 représentent le contour obtenu en mettant en œuvre une courbe cubique, respectivement hermitienne et de Béziers, avec le dispositif de la figure 19,
- les figures 22 et 23 illustrent le résultat résumé des calculs analytiques d'un contour, respectivement non fermé et fermé, constitué par une suite de bords orientés, à partir des valeurs perçues précédemment, par mise en œuvre du dispositif selon la figure 19,
- les figures 24 à 35 illustrent l'application de l'invention à l'assistance à la conduite apportée au conducteur d'un véhicule sur une route et, en particulier: - la figure 24 représente la visualisation des paramètres obtenus par la détermination et la localisation d 'une portion droite de limites de voie de circulation (ou route) par mise en œuvre d'un dispositif selon l'ensemble des figures 1 (éventuellement modifiée selon la figure 2), 16 et 19, ainsi qu'éventuellement 18,
- les figures 25 et 26 illustrent la définition mathématique des paramètres de la portion droite de limites de voie de circulation (ou route) selon la figure 24, telle que vue respectivement par le convertisseur d'image et à la verticale du véhicule,
- la figure 27 représente l'organigramme décrivant les opérations effectuées sur les deux triplets de données d'entrée en provenance du dispositif mis en œuvre dans la figure 24 pour obtenir les vues des figures 25 et 26 afin de faire l'analyse et la synthèse d'une route,
- la figure 28 illustre une application de l'invention à la perception d'une portion courbe d'une limite de voie de circulation (ou route) par mise en œuvre des dispositions selon les figures 24 à 27, - la figure 29 représente schématiquement la portion courbe de la figure 28 vue de dessus,
- la figure 30 illustre l'organigramme permettant de déterminer, pour ladite portion courbe de limite de voie de circulation (ou route), le passage de la représentation selon la figure 28 à celle selon la figure 29,
- la figure 31 représente une visualisation des deux limites de la voie de circulation d'une portion courbe de route, telle qu'obtenue par mise en œuvre des dispositions selon les figures 24 à 30, - la figure 32 illustre la représentation calculée de la portion courbe de route de la figure 31 vue de dessus,
- la figure 33 est une représentation du label ou étiquette, de cette portion courbe de la route des figures 31 et 32,
- les figures 34 et 35 illustrent l'application de l'invention pour présenter, au conducteur d'un véhicule automobile, une vue panoramique de l'environnement global du véhicule, la figure 34 montrant schématiquement les moyens mis en œuvre et la figure 35 cette vue elle-même,
- les figures 36 à 39 illustrent l'application de l'invention à la détection de la tendance à l'endormissement d'un conducteur de véhicule roulant sur une route et, en particulier:
- la figure 36 qui représente schématiquement les moyens mis en œuvre pour cette détection, comprenant au moins un convertisseur d'image dans un dispositif selon la figure 1 (éventuellement modifié selon la figure 2), comportant éventuellement en outre une ou plusieurs des modifications précitées,
- la figure 37 qui illustre ce que voit le convertisseur d'image mis en œuvre dans le montage de la figure 36,
- les figures 38 et 39 qui représentent deux possibilités de réalisation du montage de la figure 36, respectivement avec un seul convertisseur et un élément optique de réflexion de renvoi pour le visage du conducteur et avec deux convertisseurs d'image,
- les Figures 40 et 41 illustrent, quant à elles, l'état de la technique connu du domaine de l'invention tel que l'on peut, par exemple, le retrouver dans la demande FR-2.821.459 qui a précédemment été mentionnée, - les figures 42 à 47 illustrent une application de l'invention à la détermination de la distorsion optique géométrique avec :
- la figure 42 qui représente la détermination sur une image d'une ligne et de trois points sur la ligne ainsi que le déplacement des points, - la figure 43 qui représente la mise en œuvre de modules STN pour détermination d'une zone comportant un bord ayant des propriétés recherchées ainsi que des histogrammes, figures 43a et 43b, calculés par ces modules STN,
- la figure 44 qui représente la mise en œuvre de modules STN avec recrutement progressif pour détermination de zones de plus en plus précises comportant des bords orientés ayant des propriétés recherchées ainsi que des histogrammes calculés par ces modules STN,
- la figure 45 qui représente une modalité de détermination d'un indice d'alignement pour trois points,
- la figure 46 qui représente une première version du dispositif de détermination et correction de la distorsion optique avec système automatisé de perception pour la détermination et caractérisation de bords orientés d'objets, et - la figure 47 qui représente une seconde version du dispositif de détermination et correction de la distorsion optique avec système automatisé de perception pour la détermination et caractérisation de bords orientés d'objets,
- les figures 48 à 51 illustrent une application à l'analyse d'une scène sous forme d'images d'un lieu géographique avec :
- la figure 48 qui représente la détermination sur une image d'une ligne d'horizon du lieu,
- la figure 49 qui représente l'image de la figure 48 après rotation pour mise à l'horizontale de la ligne d'horizon, ainsi que le référentiel u,v lié à ladite ligne d'horizon,
- la figure 50 qui représente après changement de référentiel, dans un référentiel plan horizontal en vue de dessus, la construction ou synthèse de la scène à partir des bords orientés d'objets de la zone,
- la figure 51 qui représente toujours dans un référentiel plan horizontal en vue de dessus, l'utilisation de la synthèse du lieu pour perception cohérente d'objets en déplacement,
- les figures 52 à 61 illustrent une application de stabilisation d'images présentant un bougé avec:
- la figure 52 qui représente une modalité de mise en œuvre de module(s) STN pour déterminer la composante rotation du bougé,
- les figures 53 et 54 qui représentent deux histogrammes de répartition des orientations de bord entre deux images successives,
- la figure 55 qui représente une modalité de mise en œuvre de modules STN pour déterminer la composante translation du bougé,
- la figure 56 qui représente deux histogrammes de répartition spatiale de coins extraits de bords orientés entre deux images successives ainsi que la correction de la composante rotation, - la figure 57 qui donne un organigramme logiciel pour calcul d'une courbe de corrélation entre deux histogrammes,
- la figure 58 qui représente un noyau matériel pour calcul de points d'une courbe de corrélation entre deux histogrammes,
- la figure 59 qui représente l'intégration du noyau matériel de la figure 58 au sein d'une unité de corrélation pour calcul
d'une courbe de corrélation entre deux histogrammes ainsi que deux exemples de courbes de corrélation,
- les figures 59a et 59b qui représentent deux exemples de courbes de corrélation, - la figure 60 qui représente un exemple de bougé pour une séquence d'images stabilisées avec comme référentiel l'origine de la première image dans un transducteur ayant une mémoire de prise de vue de taille supérieure aux images,
- la figure 61 qui représente la séquence d'images de la figure 60 mais avec un référentiel basé sur l'origine de la dernière image,
- les figures 62 à 66 illustrent une application au calcul de distances avec:
- la figure 62 qui représente la perception sur une image de scène d'une zone Z0 d'image comportant des sous zones
BarZio, BarZ2o et BarZ30,
- la figure 63 qui représente la hiérarchisation de la perception avec une partie de graphe de perception constitué par les liens entre barycentres de zones, - la figure 64 qui représente dans le référentiel spatial p LD une suite de perceptions effectuées sur des images de la scène prises à des distances différentes et montrant une invariance permettant notamment lors d'une perception ultérieure de déterminer la distance à laquelle l'image a été prise ou, encore, de faciliter la reconnaissance d'une perception ultérieure par rapport à un ensemble de perceptions antérieures (par exemple reconnaissance de visage ou classification/affiliation d'objets par rapport à d'autres préalablement connus), - les figures 65 et 66 qui représentent l'analogie entre l'utilisation du paramètre temporel de luminance (Lum ou L) associé à un repère spatial x,y et un paramètre Obj correspondant à la perception de la figure 63, associé à un repère p.LD par une méthode équivalente au procédé de traitement selon les organigrammes des figures 6 et 7.
L'invention s'applique, d'une manière générale, au traitement d'un flot de signaux numériques débités par une source appropriée (notamment transducteur ou résultats d'une système de traitement analogue à celui décrit ici) observant l'évolution, dans un espace spatio-temporel, d'un phénomène donné (notamment visuel, sonore, odorant ou autres) représenté par au moins un paramètre représentatif, et traduisant ce phénomène en un signal électrique numérique structuré en séquences temporelles périodiques successives, qui représentent chacune le phénomène pendant une courte période de temps donnée, découpées elles-mêmes en sous- séquences spatiales successives, les séquences temporelles étant traitées dans une unité de traitement temporel et les sous-séquences spatiales étant traitées dans au moins une unité de traitement spatiale angulaire afin de déterminer et caractériser un bord orienté qui correspond à une localisation spatiale où se produit une variation brusque de la valeur dudit paramètre. Un objet de l'espace est délimité par un ensemble de bords formant une frontière. On considérera, dans la description détaillée qui va suivre de modes de réalisation préférés de l'invention illustrés sur les figures correspondantes, essentiellement le cas où le phénomène est de type visuel (espace à deux dimensions) et où les signaux électriques numériques représentent les images successives d'une scène observées par un transducteur vidéo et traitées soit en direct, soit après mémorisation (enregistrement). On va donc décrire maintenant l'invention en détail, dans ses modes de réalisation préférés, dans le cas de l'observation d'une scène au moyen d'un caméscope (éventuellement après stockage sur un support approprié et lecture de celui-ci, par exemple au moyen d'un magnétoscope ou d'un lecteur de DVDs) ou d'une webcam à imageur de type CMOS. On rappelle que l'un des buts de l'invention, dans le cas d'un phénomène de type visuel, est de caractériser des bords
d'objets par leur orientation et variation d'orientation pour notamment détecter au cours d'une activité d'analyse, dans une scène, une succession de bords orientés ou chaîne de bords orientés (ou frontière), déterminés par la variation de la luminosité (éventuellement de la coloration) au niveau de ces bords et de placer, toujours lors de l'analyse, bout à bout les bords successivement détectés afin d'en déduire par reconstruction, au cours d'une activité de synthèse, un contour. Notons que le cas de bords qui se suivent d'une manière continue (ininterrompue) pour former une frontière ne pose pas de difficulté car on passe directement d'un bord au suivant. Par contre, il se peut que les bords ne se suivent pas d'une manière continue. Dans ce cas, outre la mise en œuvre de critères de recherche du type association de bords présentant des caractéristiques communes (orientation, couleur par exemple) et/ou étant proches selon un critère de seuil absolu ou relatif (par rapport aux autres bords), une méthode particulièrement efficace est basée sur la recherche de critères spécifiques (orientations, disposition relative de barycentres... ) concernant une frontière ayant été préalablement analysée et qui sont mémorisés par le système ou pré-configurés dans l'application. Ces critères sont de préférence présentés sous forme de LABELS. Sur la figure 1 , on a illustré un mode de réalisation préféré d'un dispositif, selon l'invention, pour la détermination et la localisation d'un bord orienté C. Ce dispositif comprend essentiellement: - un générateur de signaux 1 , constitué par: un caméscope 2 fournissant un signal vidéo numérique classique S(PI)t, fonction du temps t, qui comporte une succession de trames constituant une succession de séquences temporelles, qui représentent chacune la scène observée pendant la durée d'une trame, constituées chacune par une succession de lignes constituant une succession de
sous-séquences spatiales, constituées chacune par une succession de points images ou pixels PI, et une unité électronique de commande 3, qui sépare, de ce signal vidéo S(PI)t, d'une part, les signaux d'image DATA(i,j,t), fonctions du temps t et des positions de pixel i et j, respectivement de ligne et de colonne, et, d'autre part, les signaux classiques de synchronisation de trame ST et de synchronisation de ligne SL, et qui comporte une horloge 4 débitant, à intervalles réguliers, égaux à l'intervalle de temps entre deux pixels successifs, des signaux d'horloge CL pour la synchronisation des pixels P(i,j) successifs;
- un séquenceur 5 qui reçoit les signaux ST, SL et CL du générateur de signaux 1 et en déduit trois signaux de séquencement du traitement, à savoir les signaux INIT de début ou d'initialisation du traitement, CALCUL de traitement proprement dit (après INIT) pendant un nombre prédéterminé de P(i,j) de la séquence et enfin RESULTATS d'inscription des résultats du traitement réalisé pendant la phase CALCUL;
- une unité 6 de traitement temporel comportant au moins deux sous-unités 6A et 6B, à savoir: - une sous-unité 6A qui, à partir du signal DATA(i,j,t) reçu de l'unité 3, détermine, pour chaque pixel P(i,j) et au temps t, au moins un signal correspondant à un paramètre du signal DATA(i,j,t), soit dans le cas présent d'un phénomène visuel, au moins le signal L(i,j,t) de luminance, ainsi qu'éventuellement les signaux MVT(i.j) de mouvement (ou déplacement) et/ou de direction de mouvement et/ou, dans le cas d'un signal vidéo en couleur, T(i,j) de teinte et S(i,j) de saturation (ou un autre couple de signaux permettant, avec le signal L(i,j,t), de reconstituer la couleur), ces signaux étant également fonction du temps t (non figuré entre les parenthèses), et - une sous-unité 6B de détermination et caractérisation angulaire qui, à partir du signal L(i,j,t) élaboré dans la sous- unité 6A, détermine le signal α(i,j), coordonnée polaire
d'angle d'orientation α des pixels PI, de positions i,j, relativement à un axe Ox, avec son drapeau (flag) ou signal de validation Val-α(i ), et éventuellement ρ(i,j), coordonnée polaire de module de ces pixels relativement à l'origine O, et, en outre éventuellement, pour certaines applications: - une sous-unité 6C de détermination et caractérisation de la variation angulaire qui, à partir de l'angle α élaboré dans la sous-unité 6B, détermine δα(i,j), variation spatiale de l'angle α autour de α(i,j), cette variation donnant une indication sur la courbure du bord et donc de la frontière à l'emplacement correspondant, avec son drapeau (flag) ou signal de validation Val-δα(i.j); - deux unités successives 7 et 8 de traitement spatial, à savoir: - une unité 7 de traitement spatial positionnel qui, à partir des signaux ST, SL et CL reçus du générateur de signaux 1 , détermine les positions i et j de pixel dans une trame et - une unité 8 de traitement spatial angulaire comportant au moins un module de rotation 9 pour un traitement spatial angulaire qui effectue un calcul de rotation d'angle θ sur les coordonnées cartésiennes rectangulaires x et y de position i et j de pixel, cet angle étant égal à zéro pendant la séquence d'initialisation et successivement, en fonction de la valeur du d rapeau (flag) de validation Val-α(i,j), égal à α1 , α2...pendant les séquences ultérieures, ce dernier angle α1 , α2... étant défini par la valeur de α issue du résultat du traitement de la séquence précédente dans la sous-unité 6B et les unités STN 1 1A et 1 1 B discutées ci-après (par exemple α1 résultant du traitement de la première trame, α2 résultant du traitement de la deuxième trame, etc.), et qui détermine, à partir des positions de pixel i et j reçues de l'unité 7, les coordonnées X et Y de pixel après une rotation de cet angle, à savoir par exemple XΘ1 (i,j) et YΘ1 (i,j), pour α1 ; au cas où l'unité 6 comporte une sous-unité 6C, qui détermine δα et son drapeau (flag) de validation Val-δα(i,j), l'unité 8 comporte, en plus du
module de rotation 9 qui réalise des rotations d'angle θ, un module 10 analogue qui effectue un calcul de rotation d'angle γ sur les coordonnées cartésiennes x et y de position i et j de pixel, cet angle étant égal à zéro pendant la séquence d'initialisation et ensuite, pendant les séquences ultérieures, soit maintenu égal à zéro, soit porté successivement à δα1 , δα2... en fonction de la valeur du drapeau (flag) Val-δα(i );
- une paire d'unités STN à registres (de types précisés ci- dessous), à savoir une unité bi-liπéaire 1 1A, à double entrée de données e2, et une unité uni-linéaire 1 1 B, à simple entrée de données e1 , connectées en boucle, la sortie de données de classification s de chacune étant connectée à une entrée de rétro-annotation r de l'autre, l'unité STN 1 1A recevant, sur sa double entrée de données e2, les sorties successives du module de rotation 9, telles que la paire XΘ1 (i,j)-YΘ1 (i,j) pour α1 , et débitant, sur sa sortie de données s, la portion Zα1 (i,j) de zone de bord orienté C (qui, sur la figure 3, correspond à une orientation du bord C d'angle α1 ), fonction de l'angle θ de rotation (Θ=0,α1 , α2...), tandis que l'unité STN 1 1 B reçoit, sur sa simple entrée de données e1 , l'angle α(i,j), déterminé par la sous-unité 6B, et débite, sur sa sortie s, la classification α1 (i,j) de l'angle α(i, ,j); lorsque l'unité 6 comporte une sous- unité 6C, qui détermine δα et son drapeau (flag) de validation Val-δα(i,j), et donc l'unité 8 comporte un module de rotation 10, qui débite le résultat d'une rotation d'angle δα, le dispositif selon la figure 1 comporte, en plus de la paire d'unités STN 11A et 1 1 B, une paire analogue d'unités STN bouclées 12A et 12B, qui reçoivent respectivement, sur leurs entrés e2 et e1 , des signaux de type Xγ et Yγ du modulel O et γ de la sous-unité 6C; et
- un micro-contrôleur ou microprocesseur 13 qui contrôle l'ensemble du système y compris la sous-unité 6B, avec un programme applicatif (API), en effectuant, à cet effet, la lecture (flèche F1 ) des données inscrites dans les registres Reg des unités STN 1 1A et 1 1 B, à savoir la position
de la raie maximale POSRMAX ou, mieux, la position de la médiane POSMED, de l'histogramme des données correspondantes calculées pendant la validation du signal CALCUL et correspondant respectivement à la valeur du barycentre BarZαl de la zone Zα1 (unité 1 1 A) et à la valeur α1 , α2... de l'orientation locale du bord C (unité STN1 1 B), ainsi que le nombre NBPTS de données participant au calcul des histogrammes, et l'inscription (flèche F2), à partir de la deuxième séquence opérationnelle, de l'angle θ de rotation de plan dans le module de rotation 9 (après la première séquence pour laquelle θ=0), soit α1 ,α2.. si NBPTS est supérieur à un seuil S1 , soit zéro dans le cas contraire; le microprocesseur contrôlant d'une manière analogue le système avec la sous-unité 6C, lorsqu'elle existe, à partir de la lecture de la paire d'unités STN 12A et 12 B, qui existent alors également, et avec inscription de l'angle γ de rotation de plan dans le module de rotation 10. Par rapport à la combinaison fonctionnelle de modules STN telle que présentée sur la Figure 40 de l'état de la technique qui est tirée de l'annexe de la demande FR2.821 .459, on constate, dans la présente demande qui, elle, traite des paramètres caractéristiques d'un bord, c'est à dire d'une transition particulière de la valeur d'un paramètre (ou d'une combinaison de paramètres), la présence, d'une part, d'une sous-unité 6B de détermination et de caractérisation angulaire et, d'autre part d'une sous unité 6C de détermination et caractérisation de variation angulaire. Ces sous-unités 6B et 6C (ainsi que la 6A) de la Figure 1 correspondent in fine à des unités de traitement temporelles. Ainsi, outre les paramètres temporels déjà connus comme par exemple L, T, S, VMvτ, DMVT, la présente invention donne la possibilité d'utiliser en entrée de modules STN les nouveaux paramètres temporels que sont le module p de bord, l'orientation α de bord, la variation d'orientation δα de
bord, leurs signaux de validation correspondants Val-α et Val- δα. Il est ainsi possible de réaliser des applications mettant en œuvre tout ou partie de ces paramètres temporels. Notons que l'utilisation des signaux produits par les sous-unités 6B et 6C, notamment dans des associations de couples de deux modules/unités STN (ou neurones spatiotemporels, ces termes étant équivalents), un premier traitant des données temporelles (notamment l'angle d'orientation α ou la variation d'angle δα), et un second traitant des données spatiales (notamment la position X,Y des pixels), peut se faire d'une manière isolée, c'est à dire dans une application dans laquelle on ne met en œuvre que les orientations des bords ou dans une application dans laquelle on ne met en œuvre que les variations d'orientations des bords ou elle peut se faire dans une application dans laquelle on met en œuvre les orientations des bords et leurs variations. Ainsi, sur la Figure 1 avec les deux couples de modules STN et les sous-unités 6B et 6C, on a représenté une application dans laquelle on met en œuvre les orientations des bords (utilisation de α et Val-α dans le couple de modules STN 1 1A et 1 1 B) et leurs variations (utilisation de δα et Val-δα dans le couple de modules STN 12A et 12B). De même on doit noter qu'en fonction des besoins de l'application l'angle de rotation du/des modules de rotation 9 peut être laissé à 0 (absence de rotation) ou à une autre valeur ou, encore, évoluer au cours des séquences en fonction de perceptions précédentes. Pour comparaison, sur la Figure 40 provenant de l'annexe de la demande FR2.821 .459, les signaux d'entrée du système 520 sont envoyés, d'une part, dans une unité de traitement temporel 50 et, d'autre part, dans une unité séquenceur 90. Dans l'unité de traitement temporel 50 sont générés des signaux représentatifs de paramètres du signal d'entrée tel que la luminosité, la teinte, la saturation et le mouvement (vitesse et direction). L'unité séquenceur 90 permet la génération de signaux permettant d'assurer les
étapes de fonctionnement du système (initialisation, calculs, résultats) tels que INIT (initialisation), « WRITE » (équivalent de CALCUL pour la présente demande) et « END » (équivalent de RESULTAT pour la présente demande). Une unité de traitement spatial 96 permet de générer des signaux selon un référentiel particulier PO à P15. Les signaux des unités 50 et 96 sont envoyés sur un bus 510 de données qui est en relation avec une organisation matricielle de modules STN 1 a00 à 1 a33 qui produisent des signaux de rétro- annotation sur un bus 1 1 1. La configuration fonctionnelle des modules STN (choix des paramètres d'entrée, de rétro annotation, modalités de calcul, résultats... ) est sous la dépendance d'une unité de contrôle 513 avec un programme de supervision embarqué (« embedded application ») et une interface de programme applicatif (API). D'autres éléments fonctionnels sont présents (qui peuvent être utilisés dans la présente demande) tels qu'un bloc de commande de visualisation 365, un écran 80, un bloc curseur 366, une mémoire semi-graphique 367. Toujours pour comparaison, par rapport aux unités rotationnelles 96 de la Figure 40; dans la présente demande l'unité de traitement spatial angulaire 8 avec ses modules de rotation 9 et 10, utilise des valeurs d'angle θ qui résultent de calculs de couples de modules STN. Ces modules 9 et 10 de l'unité 8 (ainsi que de l'unité 7) de la Figure 1 correspondent in fine à des unités de traitement spatiales. Enfin, en ce qui concerne les couples de modules STN de la Figure 1 , on peut retrouver une association approchante sur la Figure 41 provenant de la demande FR2.821.459, où un premier module STN 91 recevant du bus 510 un signal de mouvement, travaille dans le domaine temporel, et un second module STN 92 recevant un signal de position X,Y, travaille dans le domaine spatial. Ces deux modules sont interconnectés entre eux par rétro annotation 93, 94, chacun
validant l'autre, afin de produire un signal ZA de zone 94 et un signal de vitesse V1 correspondant. La figure 2 illustre une variante 1 a du générateur de signaux 1 de la figure 1 ; le générateur de signaux 1 a de la figure 2 comprend, d'une part, un imageur CMOS ou CCD, référencé 2a, ou une « webcam » d'un autre type, dont le signal de sortie DATA(i,j,t), qui reproduit la succession de scènes observées, ne comporte pas, contrairement au signal de sortie S(PI)t du caméscope 2 de la figure 1 , de signaux de synchronisation ST et SL, et, d'autre part, une unité électronique de commande 3a qui génère les signaux de synchronisation de trame ST et de synchronisation de ligne SL, en plus des signaux d'horloge CL synchronisant les pixels. On peut donc constater que, alors que dans le mode de réalisation de la figure 1 , on prévoit la séparation, à partir du signal S(PI)t débité par le caméscope 2, des signaux de synchronisation ST et SL et des signaux d'image DATA(i,j,t) par l'unité de commande 3 qui, par ailleurs génère le signal d'horloge CL, le caméscope ayant un rôle de maître vis-à-vis de l'unité électronique de commande, au contraire, dans le mode de réalisation de la figure 2, c'est l'unité de commande électronique 3a qui asservit l'imageur 2a. Mais toutefois, dans les deux modes de réalisation des figures 1 et 2, ce sont les même signaux DATA(i,j,t) à destination de l'unité 6 de traitement temporel, et ST, SL et CL, à destination de l'unité 7 de traitement spatial positionnel, qui sont débités par les deux générateurs de signaux 1 et 1 a. A ce sujet, on pourra se référer à la figure 1 de la demande de brevet internationale numéro de publication WO-01 /63557 (A2) et à la description de cette figure. On va décrire maintenant plus en détail les unités des figures 1 et 2 et leurs composants. Le générateur de signaux 1 de la figure 1 comporte un caméscope 1 de type quelconque ou plus généralement un
transducteur traduisant des vues successives d'une scène en une succession de signaux électriques numériques représentatifs; plus particulièrement, dans les modes de réalisation préférés envisagés ci-après, ces signaux sont constitués par des signaux vidéo numériques classiques, en noir et blanc ou en couleurs, comportant: d'une part, des signaux d'image DATA(i,j,t) formés par une succession de trames (dans le cas de trames entrelacées deux par deux, on appellera ci-après « trames successives » les trames successives de même nature, c'est à dire une trame sur deux) qui représentent chacune une vue d'une scène à un « instant » (durée d'une trame, soit en général 1 /25, 1 /50, 1 /30 ou 1 /60 de seconde) donné et sont constitués elles mêmes par une succession de lignes qui comportent chacune une succession de points-images ou pixels P(i,j) (disposés suivant une matrice rectangulaire et représentés chacun par un emplacement de ligne i et de colonne j), et d'autre part, des signaux classiques de synchronisation de trame ST (au début de chaque trame) et de synchronisation de ligne SL (au début de chaque ligne). L'unité électrique de commande 3 sépare les signaux d'image DATA(i,j,t), d'une part, et les signaux de synchronisation ST et SL, d'autre part, en réalisant successivement les opérations suivantes comme dans un séparateur classique du type de celui d'un récepteur de télévision: a) séparation, par limitation d'amplitude (« amplitude clipping » ), de l'information d'image DATA(i ) et de l'ensemble des informations de synchronisation ST et SL; b) séparation de l'information de synchronisation de trame ST, d'une part, et de l'information de synchronisation de ligne SL, d'autre part; et c) élimination par limitation d'amplitude, dans chacun de ces signaux de synchronisation ST et SL, des signaux de bruit de plus forte amplitude que ces signaux de synchronisation.
Notons que dans le cas d'un transducteur, une caméra dans l'exemple donné, produisant des signaux analogiques, un moyen de numérisation desdits signaux est mis en œuvre afin de produire des signaux numériques représentatifs du type précédent. On obtient donc ainsi les signaux DATA(i,j,t), ST et SL bien séparés en sortie du générateur de signaux 3, qui débite également les signaux d'horloge CL, régulièrement espacés, à la fréquence d'horloge pixel. La structure de l'unité 6 est détaillée sur les figures 1 1 et 12 (la figure 12 représentant la structure détaillée de deux unités de la figure 1 1 ) et, de ce fait, le fonctionnement détaillé de l'unité 6 sera décrit ci-après avec référence à ces deux figures. Il suffit pour le moment de préciser que la sous- unité 6A de l'unité 6 détermine au moins la luminance L(x,y,t) du signal vidéo DATA(i,j,t) (x et y étant les coordonnées cartésiennes qui correspondent aux positions i et j de pixel et t la coordonnée de temps), tandis que la sous-unité 6B, détermine, à partir des valeurs successives de cette luminance L(x,y,t), trame par trame, les valeurs successives de l'angle α(i,j), c'est-à-dire l'angle de la tangente d'un bord orienté éventuel avec l'axe Ox, en utilisant la variation de luminance de part et d'autre de ce bord (en particulier bord d'un objet sombre sur fond plus clair ou inversement bord d'un objet clair sur un fond plus sombre), le signal α(i,j) étant accompagné de son drapeau (flag) de validation Val-α(i.j) lorsque la différence de luminance de part et d'autre du bord dépasse une valeur de seuil déterminée (mais pouvant être ajustée à la nature de la scène observée). Dans cet exemple, le bord correspond à une zone de variation importante du paramètre luminance L(x,y,t) du signal vidéo. L'invention peut également être mise en oeuvre en considérant un autre paramètre ou une autre combinaison de paramètre. Ainsi, un bord peut être défini comme par exemple une zone de variation importante de vitesse avec MVT
(mouvement) à la place de L (luminance), de saut de couleur avec T (teinte) à la place de L, de température dans le cas d'un transducteur produisant un signal de type vidéo dont on peut extraire un paramètre température, etc.. En dehors de tels paramètres considérés isolément, on peut définir un bord à partir d'une combinaison de paramètres comme par exemple une variation importante de la luminosité ET un changement de couleur. Enfin si on considère plus particulièrement dans l'exemple détaillé de réalisation qu'un bord correspond à une zone où se produit une variation importante de la luminosité, on peut, au lieu de la variation considérer, au choix, une gamme de valeur(s) particulière(s) de la luminosité ou des valeurs inférieures à un seuil ou des valeurs supérieures à un seuil. Dans sa généralité, un bord est donc défini par une variation caractéristique et détectable d'au moins un paramètre du signal du transducteur. Avantageusement la sous-unité 6C, lorsqu'elle existe, détermine, à partir de l'angle α(i,j) (calculé par le module 6B), la variation spatiale δα(i,j) de cet angle entre deux pixels voisins, ainsi que son drapeau (flag) de validation Val-δα(i.j) lorsque cette variation spatiale est effective (les deux valeurs α(i+k,j+l) et α(i+k,j+l) avec k={-1 ,0, 1 } et l={-1 ,0, 1 } adjacentes à la valeur α(i,j) dans l'orientation de cette valeur existent et permettent donc le calcul de δα(i,j) égal à la valeur absolue de la différence entre ces deux valeurs adjacentes). La valeur de l'angle α(i,j) et son drapeau (flag) Val-α(i ) sont débités par la sous-unité 6B sur l'entrée e1 du bloc STN2 1 1 B, tandis que la valeur de δα et son drapeau (flag) Val- δα(i,j) sont débités par la sous-unité 6C (lorsqu'elle existe) sur l'entrée e1 du bloc STN2 12B. L'unité de traitement spatial positionnel 7 (par exemple de type connu en réception de signaux de télévision) déduit, des signaux de synchronisation ST et SL et du signal d'horloge CL (en provenance, tous les trois, du générateur de signaux 1 ), les sous-séquences i,j repérant les positions de
pixel suivant les coordonnées cartésiennes x et y de la matrice de pixels d'une trame. Le module de rotation 9 de traitement spatial angulaire effectue une rotation d'angle θ sur les coordonnées cartésiennes d'entrée (en x et en y) représentant les positions i et j de pixel pour obtenir les coordonnées de sortie X et Y après une telle rotation, en soumettant le couple de coordonnées d'entrée à l'opération symbolique X r(iJ) cos θ sin θ (U) -sin θ cos θ x J Dans cette formule l'angle θ a successivement, au cours des séquences, les valeurs 0,α1 , α2... (ces dernières valeurs angulaires étant déterminées, à partir du couple de blocs STN 1 1 A et 1 1 B par le microprocesseur 13, comme exposé). Le module 10 de traitement spatial angulaire (lorsqu'il existe) effectue une rotation d'angle γ de la même manière que le module de rotation 9 en utilisant la formule symbolique ci-dessus dans laquelle toutefois l'angle θ est remplacé par l'angle γ. Des modules, tels que 9 et 10, de traitement spatial angulaire opérant une rotation sur les coordonnées cartésiennes sont bien connus et mis en œuvre, par exemple, sous le nom de « space transform », dans les demandes de brevet international publiées WO01 /63557 en relation avec les figures 26 et 27 (unité 60) et la description correspondante et dans WO98/05002 en relation avec la figure 12 et la description correspondante. Quant aux paires d'unités STN bouclées, telles que 1 1 A- 1 1 B et 12A-12B, elles sont décrites dans la demande de brevet internationale numéro de publication WO02/69265 avec référence à la figure 7 de celle-ci (voir également la description en relation à la Figure 41 de la présente demande) et dans la demande de brevet français FR02/10066, avec référence aux figures 41 (pour la paire
bouclée) et 20 et 23a-23b (pour les unités uni-linéaire et bi- linéaire respectivement). On rappellera seulement que chaque unité STN comporte une unique entrée e1 ou une double entrée e2 (module STN bilinéaire) de données, pour les paramètres à traiter, une sortie s de classification, une entrée de rétro-annotation r (connectée à la sortie s de l'autre unité STN de la paire dans le cas d'une paire bouclée d'unités STN), un groupe de registres Reg dans lesquels s'inscrivent les résultats des valeurs caractéristiques recherchées à partir de l'histogramme des données d'entrée, une fonction de traitement f0g, notamment pour le registre, et une API avec programme de commande et contrôle qui détermine, entre autres, la fonction f0g. Dans le cas du dispositif selon la figure 1 , cela correspond à l'API (programme) exécuté par le microprocesseur 13 ayant comme entrée la flèche F1 (lecture des registres) et comme sortie la flèche F2 (notamment configuration fonctionnelle des modules entre-eux : paramètres, signaux de classification et de rétroannotation à utiliser, bornes, inscriptions dans les modules de rotation 9 et éventuellement 10). Se référant maintenant à la figure 3, sur laquelle on a porté les résultats obtenus par la mise en œuvre du dispositif selon la figure 1 (éventuellement modifié selon la figure 2), on constate que le bord orienté B, faisant partie de la frontière C à déterminer et correspondant à l'angle α, a été rendu sensiblement parallèle à l'axe OXα1 déduit de l'axe originel Ox par une rotation d'axes d'angle α1 , préalablement déterminé à cet effet (comme expliqué ci-après avec référence à la figure 4). Plus précisément ce bord B est délimité par la zone Zαl , de barycentre BarZαl et comprise entre les deux BorneA et les deux BorneB, suivant les axes OXα1 et OYα1 , déduits des axes Ox, Oy par la rotation d'angle α1 , et au temps t-DT, à savoir lors de la trame antérieure, DT désignant la durée d'une trame.
Quant à la seconde paire (éventuelle) d'unités STN 12A- 12B, elle permet, lorsqu'elle révèle une forte courbure, correspondant à un δα très élevé, par exemple pour α2 résultant du traitement de la deuxième trame, à une valeur δα2(i,j) très élevé, de déterminer une zone Zδα2 de forte courbure de la frontière C entre quatre bornes (non illustrées), analogues aux deux Bornes A (BorneA) et aux deux Bornes B (BorneB), en X et en Y, de la zone encadrant le bord B, le barycentre BarZδαl de cette zone permettant de localiser un coin K (ou bord cunéiforme) de la frontière C et donc au moins un point repère bien localisé dans la scène observée. En effet, δα(i,j) correspond à la différence entre α(i+k,j+|) et α(i+k,j+l) avec k={-1 ,0, 1 } et l={-1 ,0, 1 }, valeurs inscrites dans une matrice de 3x3 pixels de centre α(i,j) dans l'orientation de celle-ci (voir la figure 9 et sa description ci- après). Une différence élevée indique une variation d'angle importante pour une frontière, ce qui correspond à un coin, une différence nulle indique une absence de variation d'angle et donc une frontière qui est sur une droite, entre ces valeurs de différence, on obtient une indication d'une courbure plus ou moins prononcée pour la frontière. La figure 4 est une extension de la figure 3 illustrant la mise en œuvre du dispositif de la figure 1 (éventuellement modifié selon la figure 2) pour repérer une figure géométrique en forme de demi-cercle, prise à titre d'exemple, dans une scène observée. Sur cette figure 4, qui concerne l'angle α et son drapeau (flag) de validation Val-α, on a représenté: - suivant quatre bandes horizontales successives, de haut en bas, la séquence temporelle initiale, notée I , et les trois séquences temporelles suivantes, notées respectivement II , I II et IV, (ces quatre séquences étant constituées par quatre trames successives de signal vidéo de même nature, dans le cas particulier envisagé), et
- suivant deux bandes verticales, de gauche à droite, la phase CALCUL et la phase RESULTATS d'une même séquence, cette seconde bande verticale étant sub-divisée en deux colonnes, l'une représentant les résultats obtenus par l'unité bi-liπéaire STN 1 1 1A et l'autre les résultats obtenus par l'unité uni-linéaire SNT2 1 1 B. La première bande horizontale, qui représente la séquence initiale I , à partir du démarrage, illustre, dans sa première bande verticale, le cadre général rectangulaire (la figure en demi-cercle à déterminer n'ayant pas encore été repérée), et, dans sa seconde bande verticale, les classifieurs des unités STN1 1 1A et STN2 1 1 B complètement ouverts (en réalisant une représentation « plein écran ») pour toutes les valeurs possibles des paramètres (respectivement les coordonnés cartésiennes et l'angle de rotation) afin de pouvoir percevoir la totalité de l'information, la première unité, pour les coordonnées cartésiennes X et Y, étant ouverte de 0 à I et de 0 à J en tant que bornes en x, d'une part, et bornes en y, d'autre part, comme illustré (I et J représentant le nombre de pixels respectivement par ligne et par colonne dans une trame), tandis que la seconde unité, pour l'angle de rotation α, est ouverte de 0 à 180° en tant que bornes en α. La deuxième bande horizontale, qui représente la deuxième séquence II, illustre, dans sa première bande verticale de la phase CALCUL, la frontière en demi-cercle relativement aux axes de coordonnées initiaux (pour θ=0), tel que perçu en totalité à partir du calcul des valeurs de l'angle α et de son drapeau (flag) Val-α, et, dans sa seconde bande verticale, - d'une part, dans sa première colonne pour l'unité STN 1 1 1 A, les BorneA et les BorneB en X et en Y (fonctions du temps t) encadrant le demi-cercle à repérer, relativement aux mêmes axes de coordonnées que dans la première bande horizontale de la séquence I, et
- d'autre part, dans sa seconde colonne pour l'unité STN2 1 1 B, l'histogramme des valeurs de l'angle de rotation à impartir en vue d'aligner la frontière rectiligne du demi-cercle avec l'axe des abscisses après rotation d'angle α, cet histogramme révélant, par son pic RMAX et la position POSRMAX de celui-ci, la valeur de l'angle α1 à choisir en tant qu'angle θ à utiliser dans le module de rotation 9 pour la séquence suivante, à savoir la troisième séquence. En outre, le calcul du cumul du nombre de points ou pixels suivant les deux axes X et Y arrêté à la demi-somme de ce nombre, à savoir NBPTS, permet de définir la position du barycentre BarZ1 de la frontière en demi-cercle à la fin de cette deuxième séquence. La troisième bande horizontale, qui représente la troisième séquence III, illustre, dans sa première bande verticale, la rotation des coordonnées d'un angle Θ=α1 déterminé au cours de la phase calcul de la séquence précédente (à savoir la deuxième séquence), avec les BorneA et BorneB en X et en Y et le barycentre BarZ calculés suivant les nouveaux axes de coordonnées (ayant subi une rotation d'angle α1 par rapport aux axes d'origine), et dans sa seconde bande verticale des opérations de calcul similaires à celles effectuées dans la même bande au cours de la deuxième séquence, mais relativement aux nouvelles coordonnées, le bord rectiligne du demi-cercle étant parallèle au nouvel axe des abscisses en ce qui concerne l'unité STN1 et par conséquent l'histogramme pour définir α2 étant très étroit et pointu entre les Bornes Aα et Bα, en ce qui concerne l'unité STN2. La quatrième bande horizontale, qui représente la quatrième séquence IV, est analogue à la troisième bande horizontale III, mais après une rotation de Θ=α2 (et non plus de α1 ), angle déterminé par l'histogramme de la troisième séquence; l'histogramme, encore mieux délimité, de cette quatrième phase définit, par l'abscisse de son pic, soit
POSRMAX, l'angle de rotation α3 qui sera utilisé par le module de rotation 9 en tant que nouvel angle θ de rotation des axes de coordonnées. La quatrième séquence est, en général suivie d'une ou plusieurs séquences supplémentaires se déroulant de manière analogue, mais non représentées sur la figure 4. Alors que sur la figure 4 on a exposé la détermination de l'angle de rotation α destiné au module de rotation 9 en tant qu'angle θ, la figure 5 concerne la détermination de la variation δα de l'angle de rotation destiné à l'unité de traitement rotationnel 10 en tant qu'angle γ, lorsque le dispositif de la figure 1 comporte en outre la sous-unité 6C, la paire d'unités STN 1 12A et STN2 12B et le module de rotation 10. Sur cette figure 5, on a représenté, comme sur la figure
4: - suivant quatre bandes horizontales successives, de haut en bas, la séquence temporelle initiale (après le démarrage), notée I, et les trois séquences temporelles suivantes, notées respectivement I I, III et IV, et - suivant deux bandes verticales, de gauche à droite, la phase CALCUL et la phase RESULTATS d'une même séquence, cette seconde bande verticale étant sub-divisée en deux colonnes, l'une représentant les résultats obtenus par l'unité bi-linéaire STN 1 12A et l'autre les résultats obtenus par l'unité uni-linéaire SNT2 12B. La première bande horizontale, qui représente la séquence I , après le démarrage, illustre, dans sa première bande verticale, le cadre général rectangulaire (la figure en demi-cercle à déterminer n'ayant pas encore été repérée) et, dans sa seconde bande verticale, les classifieurs des unités STN 1 12A et STN2 12B complètement ouverts pour toutes les valeurs possibles des paramètres (respectivement les coordonnés cartésiennes et la variation δα de l'angle α d'orientation) afin de pouvoir percevoir la totalité de
l'information, la première unité, pour les coordonnées cartésiennes X et Y, étant ouverte de 0 à I et de 0 à J en tant que BorneA et BorneB en X, d'une part, et en Y, d'autre part, comme illustré (I et J représentant le nombre de pixels respectivement par ligne et par colonne dans une trame), tandis que la seconde unité, pour la variation δα de l'angle α d'orientation, est ouverte de 0 à 180° en tant que BorneA et BorneB en δα. L'utilisation de la valeur de l'angle de rotation γ est facultative et on choisira, pour la suite de l'exposé relatif à la figure 5, de conserver γ=0 dans les séquences II, III et IV ultérieures. La deuxième bande horizontale, qui représente la deuxième séquence II, illustre, dans sa première bande verticale de la phase CALCUL, la frontière en demi-cercle relativement aux axes de coordonnées initiaux (pour γ=0), avec sa portion telle que perçue en totalité à partir du calcul des valeurs de variation δα de l'angle α et de son drapeau (flag) Val-δα, et, dans sa seconde bande verticale, - d'une part, dans sa première colonne pour l'unité
STN 1 12A, les BorneA et BorneB en X et en Y encadrant le demi-cercle à repérer, relativement aux mêmes axes de coordonnées que dans la première bande horizontale de la séquence I (du fait que γ a été maintenu à 0), et - d'autre part, dans sa seconde colonne pour l'unité
STN2 12B, l'histogramme des valeurs de variation δα1 de l'angle d'orientation; on constate que, dans le cas de la figure en demi-cercle choisie, à titre d'exemple, cet histogramme comporte trois pics notés E, F, G de gauche à droite à partir de l'abscisse 0; le pic E, au voisinage immédiat de cette abscisse, représente une variation δα1 d'angle nulle (aux fluctuations de mesure près), c'est-à-dire une portion de frontière rectiligne, à savoir celle notée E' dans la colonne CALCUL de cette seconde bande horizontale; le pic F représente une variation δα1 d'angle constante (aux
fluctuations de mesure près) et relativement faible, c'est-à- dire une portion de frontière de forme courbe, ici circulaire, à savoir celle notée F' dans la colonne CALCUL de cette deuxième bande horizontale; et enfin le pic G représente une variation δα1 d'angle forte, à savoir celle des deux coins G' et G" dans la colonne CALCUL de la dite bande. On peut choisir de s'intéresser, suivant la scène observée et la frontière à repérer, soit uniquement à l'un des trois pics E, F, G, soit successivement à deux de ces pics ou aux trois pics. Lorsqu'on choisit le pic E, on considère alors une portion de frontière rectiligne, par contre lorsqu'on choisit un pic de type F correspondant à une variation d'angle moyenne, on considère alors des portions circulaires (ou plus généralement courbes) et on peut repérer, dans une scène, des portions de frontière circulaires (ou plus généralement courbes), telles que des roues (automobiles par exemple) ou des têtes (humains par exemple) par exemple. Ainsi, la variation d'angle δα peut servir à réaliser un filtrage (sélection) pour le traitement des bords comme cela sera expliqué ultérieurement en relation avec la Figure 18. Pour le mode de réalisation illustré sur la figure 5, on a choisi de sélectionner le pic G représentatif de coins (lieux de forte variation d'angle et donc de forte courbure) et on a donc représenté, dans la portion RESULTATS de cette seconde bande, BorneA et BorneB encadrant le pic G, notées au temps t BorneA(δα,t) et Borne B(δα,t) pour δα=δα1. La troisième bande horizontale, qui représente la troisième séquence II I, illustre, dans sa première bande verticale, un encadrement plus serré de la frontière en demi- cercle par les quatre BorneA et BorneB en X et en Y et illustre, dans sa colonne RESULTATS, - d'une part, dans la première colonne relative à l'unité STN1 12A, l'encadrement très étroit de BarZ2, barycentre du pic G choisi et pour le coin G1 de gauche, ce barycentre ayant été déterminé au cours de la séquence précédente I I, et
- d'autre part, dans la seconde colonne relative à l'unité STN2 12B, l'histogramme déterminé par cette unité pour ce coin G1 , plus étroit que l'histogramme du pic G (pour les deux coins G' et G") déterminé par ladite unité pendant la séquence précédente II, l'histogramme relatif au coin G' permettant de définir une nouvelle valeur de variation δα d'angle, à savoir δα2, et un nouveau barycentre BarZ2, qui seront utilisés dans la séquence ultérieure IV. La quatrième bande horizontale, qui représente cette quatrième séquence IV, est analogue à la séquence antérieure III en utilisant toutefois BarZ2 et δα2 et en déterminant δα3 et BarZ3. La quatrième séquence est, en général, suivie d'une ou plusieurs séquences supplémentaires se déroulant de manière analogue, mais non représentées sur la figure 5, permettant d'obtenir une définition de plus en plus précise et éventuellement évolutive du coin G' choisi. On procédera d'une manière analogue pour suivre le coin G" ou si l'on choisit de s'intéresser au pic E ou au pic F de la seconde bande horizontale, seconde colonne relative à STN2, plutôt qu'au pic G'. Le fonctionnement du dispositif selon la figure 1 (éventuellement modifié selon la figure 2), d'une part, en relation avec les figures 3 et 4, pour l'angle d'orientation α, est illustré par l'organigramme de la figure 6 et, d'autre part, en relation avec les figures 3 et 5, pour la variation δα d'angle, est illustré par l'organigramme de la figure 7. Sur les organigrammes des figures 6 et 7, dont les calculs et opérations sont englobés dans la présente description par référence, on retrouve les références des blocs schématiques 6B, 6C, 9, 10, 11A, 1 1 B, 12A, 12B et 13 et les flèches F1 et F2 de la figure 1 . Sur la figure 6, on a représenté les trois traitements T1 , T2, et T3, coopérant simultanément, qui permettent d'extraire
et de positionner des bords successifs orientés définissant une frontière recherchée. Le premier traitement T1 opère deux filtrages orthogonaux de manière à convertir chaque pixel en un vecteur d'axe Z à variables multiples. Le second traitement T2 concerne le suivi spatial du traitement T1 , avec une orientation de plan conforme à l'orientation du bord. Le troisième traitement T3 est du type spatio-temporel et consiste en un regroupement coopératif pour détecter des zones de l'image perceptivement homogènes à l'aide du couple d'unités STN1 11A et STN2 1 1 B. Le bloc 21 de la figure 6 illustre une image initiale IM(t) à l'instant t comprenant une matrice de I.J pixels ayant des abscisses i variant de 0 à 1-1 le long d'un axe horizontal Ox et des ordonnées variant de 0 à J-1 le long d'un axe vertical Oy. Chaque pixel P(i, j) à l'instant t est défini par une intensité lumineuse L(i, j, t) propre à l'image. Dans le traitement T1 , l'image initiale IM(t) selon le (ou les) paramètre(s) considéré(s) et dans cet exemple avec L(x,y,t), est traitée avec une résolution spatiale réduite de dimension W définie par un motif carré sxs, dont le coté s est égal à (2W+1 )u et est centré sur un pixel courant P(i,j), formule dans laquelle u est ici le module du vecteur unitaire séparant deux pixels consécutifs et W un nombre entier positif déterminant la résolution spatiale. Par exemple, sur la figure 6, W est égal à 3 et le motif carré autour du point P(i,j) comprend les (2W+1 )2 = 49 pixels P(i-W -W) à P(i+W,j+W) des figures 14 et 15, décrites ci-après. En pratique, aucun motif n'est associé aux pixels sur les lignes de l'image ayant pour ordonnées 0 à W-1 , et (l-1)-(W-1) à (1-1) et sur les colonnes de l'image ayant pour abscisses 0 à W-1 et (J-1 )- (W-1 ) à (1-1 ). La taille de la résolution spatiale W peut être par exemple choisie entre 2 et 16.
Dans le traitement T1 , pour une résolution spatiale donnée W, l'invention associe deux fonctions dépendant d'une fonction de Gauss bi-dimensionπelle telle que:
![Figure imgf000069_0001](https://patentimages.storage.***apis.com/7b/f5/ef/919c7c257d285e/imgf000069_0001.png)
dans laquelle x et y sont les coordonnées dans un repère centré sur le pixel courant P(i,j) dans le motif [(i-W,j-
W), (i+W,j+W)], et s, représentant l'écart type de la fonction gaussienne, est calculé en fonction de la résolution spatiale donnée par la formule σ = 0,3217 * W + 0,481 Pour chaque pixel P(i,j) et avec une résolution spatiale donnée W, la dérivée directionnelle du premier ordre est calculée pour deux directions orthogonales, telles que les axes Ox et Oy, dans le domaine spatial du motif associé.
En posant fr
= dG(x,y)
et ^
= dG(x,y) dx dy Les dérivées partielles en x et y pour chaque pixel courant P(i,j), les unités 22a et 22b (discutées ci-après) réalisent des filtrages orthogonaux pour les fonctions précédentes et pour une résolution spatiale donnée W selon le produit scalaire suivant, qui représente une moyenne pondérée par les intensités lumineuses L(x,y,t) pour la résolution spatiale W autour du pixel courant, l'unité 22a calculant u(i,j,t) et l'unité 22b calculant v(i,j,t): m-JP n=W . . m≈W n=W
U '.j.0
= 2J *-O+m.j+n,t) *
X(/+»ι,./+M)
β*
V(i.j.t) ~ 2-ι 2-ι +m.J+n,') ^ (i+m +n) m≈-W n≈-W m≈-W n=-W formules dans lesquelles: L(i,j,t) est l'intensité lumineuse du pixel P(i,j) dans l'image IM(t),
fx(i,j) et fy(i,j) sont les deux fonctions dérivées directionnelles du premier ordre pour les deux directions orthogonales telles que celles des axes Ox et Oy, et u(i,j) et v(i,j) sont les gradients orthogonaux calculés pour le pixel P(i, j). Le gradient VG(x,y), perpendiculaire au bord, extrait par les dérivées directionnelles u et v pour la position de pixel P(i,j), possède un module égal à
![Figure imgf000070_0001](https://patentimages.storage.***apis.com/d8/b8/a3/1b75a72c35dbd3/imgf000070_0001.png)
et un angle α correspondant à la tangente au bord, donné par la formule classique u α = Arctg — ces calculs étant effectués par l'unité 23. Un test de validité du module est fait par l'unité 24 qui valide (met à 1) un drapeau (flag) Val-α si ce module est supérieur à un seul S1 et met le drapeau (flag) à 0 dans le cas contraire. Le second traitement T2, réalisé dans le module de rotation 9, consiste à effectuer une rotation de plan par un changement de coordonnées, les nouvelles coordonnées X(i,j,θ),Y(i.j.θ) étant déterminées à partir des anciennes coordonnées i,j et de l'angle θ à l'aide de la matrice de rotation:
![Figure imgf000070_0002](https://patentimages.storage.***apis.com/a9/54/18/51e4c99a7af426/imgf000070_0002.png)
L'angle de rotation θ sert à la convergence du calcul. Ainsi pour un angle θ égal à zéro, correspondant à un bord orienté de pente α nulle, X(i,j) = i et Y(i,j) = j. Le troisième traitement T3 utilise les deux unités STN 11A et 1 1 B bouclées l'une sur l'autre, successivement pour les trois phases INIT, CALCUL et RESULTATS:
- dans la phase INIT, le signal INIT commande, pour chaque unité STN, la mise à zéro de la mémoire de calcul de l'histogramme; - dans la phase CALCUL, se déroulent, pour chacun des pixels, en deux temps: a) le calcul de la validation du classifieur de chaque unité STN et b) la mise à jour de l'histogramme dans chacune des unités STN 1 1 A, STN 1 1 B en fonction de la validation de la classification de l'autre unité STN; et - dans la phase RESULTATS s'effectuent d'abord la vérification de la validité du traitement durant la séquence, en déterminant si le nombre d'éléments de l'histogramme est supérieur à un seuil S2; puis, si la réponse à cette question est oui: a) la mise à jour des bornes de classification en fonction du résultat de l'histogramme, b) la sélection de la position de la raie maximale de l'histogramme de l'angle α de l'unité STN 1 1 B en tant que valeur θ pour le module 9 de rotation de plan et c) éventuellement, en option, la détermination de la médiane de l'histogramme pour déterminer le barycentre de la zone et l'orientation du bord; d) dans l'unité STN bilinéaire 1 1A : - le repositionnement du barycentre correspondant à la variation angulaire entre le résultat trouvé et la valeur antécédente, -la mise à jour des bornes de classification dans ce nouveau référentiel, sinon, les bornes de classifications sont réinitialisées et la valeur de θ est remise à 0. L'extraction pixel à pixel de la valeur de la pente du bord orienté permet le calcul de variation locale δα de cette
valeur de pente, correspondant au résultat δα, par mise en œuvre de l'organigramme de la figure 7. Le synoptique de traitement des données selon cet organigramme de la figure 7 pour la détermination de δα (variation d'angle) de l'angle α est analogue à celui mis en œuvre dans l'organigramme de la figure 6 pour la détermination de l'angle α lui-même, excepté le traitement T1 et l'exploitation des registres pour obtenir les résultats, à savoir les δα. On ne décrira donc maintenant que les différences de l'organigramme de la figure 7 relativement à celui de la figure 6. Le traitement T1 de la figure 7 reprend les résultats du traitement T1 de la figure 6, à savoir les valeurs trouvées pour l'angle α lorsque Val-α n'est pas nul, et opère une série de tests suivant quatre orientations possibles décalées de 180°:4=45°, par exemple sur la Figure 9(o), est<->ouest (A
0), nord-est<->sud-ouest (A45), nord<->sud (A
90), nord-ouest<- >sud-est (A
135) à partir d'un pixel P(i,j) afin de calculer une variation éventuelle d'angle représentatif de la courbure (et la valeur de cette variation lorsqu'elle apparaît), la représentation de ces orientations étant illustrée sur la figure 9(o) décrite ci-après (en tant que A
0, A45, A
9o, A1
35, respectivement). On considère ici quatre éléments car on s'intéresse à des orientations et non des sens ou directions. A partir de la valeur de α(i,j) pour la position choisie comme centrale du pixel P(i,j), un premier test de présence d'un bord est effectué par interrogation de la valeur de Val- α(i,j) pour le pixel P(i,j): a) si Val-α(i ) est nul, le traitement T se termine et force Val-δα=0 en sortie en tant que résultat de T1 , tandis que b) si, au contraire, Val-α(i.j) est différent de zéro, un deuxième test détermine l'orientation quantifiée de l'angle α, en P(i,j), de la tangente du bord, selon l'une des quatre orientations possibles précitées, l'une de ces quatre
orientation déterminant les valeurs de α à prendre en compte dans les deux positions adjacentes de pixel par rapport à P(i,j) dans le prolongement de la tangente à la courbe de frontière à partir de cette valeur α(i,j). Un troisième test de validité de ces deux valeurs adjacentes est réalisé en déterminant si les Val-α pour ces deux valeurs de α en ces deux positions voisines sont nuls ou non: a) si ces deux Val-α sont nuls, le traitement T1 est terminé et force Val-δα(i,j)=0 en sortie en tant que résultat de
T1 b) si, au contraire, au moins un de ces Val-α n'est pas nul, le traitement T1 calcule la valeur absolue de la différence entre deux valeurs de α voisines et il se termine en débitant, en sortie, cette valeur absolue en tant que δα(i ), ainsi que le drapeau (flag) correspondant Val-δα(i,j)=0. Comme indiqué précédemment, avec référence à la figure 5, on garde en général γ nul pour les séquences postérieures à la première et dans ce cas le traitement T2 est neutre avec X=x et Y=y, c'est-à-dire les coordonnées de i et j. Enfin le traitement T3 de l'organigramme de la figure 7, pour réaliser le suivi de zone, correspond à celui de l'organigramme de la figure 6. Les figures 8 à 10 représentent la visualisation des valeurs de l'angle d'orientation α et de la variation δα d'angle pour les pixels voisins d'une portion de frontière en demi- cercle selon les figures 4 et 5, par mise en œuvre du procédé selon les organigrammes des figures 6 et 7, ainsi que la matrice de 3x3 pixels illustrant les axes principaux d'orientation décalés de 45°. Plus précisément, sur la figure 8 on a indiqué, pour les pixels d'abscisses comprises entre 10 et 17 et d'ordonnées comprises entre 20 et 30, les valeurs, en degrés, de l'angle α (calculé par la sous-unité 6B de la figure 1 ) au voisinage de ladite portion de frontière, plus précisément ceux pour
lesquels Val-α n'est pas nul et qui sont en grisé; on constate que, conformément à ce qui a été indiqué antérieurement, cet angle est faible (de l'ordre de 20), relativement constant et orienté sensiblement à 0° (flèche horizontale pointant vers la droite) pour les pixels voisins d'une portion rectiligne de frontière, qu'il augmente brusquement pour les pixels dans la région du coin G' de la frontière, les angles dépassant 90°(flèches verticales, puis dirigées vers la gauche) et qu'enfin il garde des valeurs relativement élevées pour les pixels entourant la portion curviligne de frontière. La relation entre la valeur « exacte » de l'angle indiquée sur la figure 8 et l'orientation de la flèche pour chaque pixel va être expliqué avec référence à la figure 9 sur laquelle on a représenté sur l'image 9(o), une matrice carrée de 3x3 pixels centrée sur le pixel central P(i,j) de référence, noté e, encadré de huit pixels f, c, b, a, d, g, h et i suivant quatre orientations décalées de 180°:4=45°, notées Ao, A 5, A90,
A partir de cette position e, si Val-α est différent de zéro, la valeur de l'angle α est lue et comparée à quatre intervalles délimités par les quatre paires de bornes successives parmi les cinq bornes B-22,5, B22.5, B67.5, B1 12.5, et B157.5 correspondant aux pixels f, c, b et a représentés par les images 9(a), 9(b), 9(c) et 9(d) de la figure 9, (et les quatre intervalles opposés correspondant aux pixels d, g, h et i). Les flèches des pixels de la figure 8 représentent les huit directions centrales possibles des quatre intervalles selon les images 9(a), 9(b), 9(c) et 9(d) de la figure 9, à savoir A0 à A135, suivant que la valeur de α est comprise dans l'un de ces intervalles; ainsi les valeurs de α de 18° à 22° (de la figure 8) encadrant une portion rectiligne de frontière sont comprises dans l'intervalle limité par les bornes -22,5° et +22,5° et correspondent donc à une flèche orientée de e vers f, donc horizontale et pointant vers la droite, tandis que les valeurs
de α de 127° à 154° (de cette figure) encadrant une portion curviligne de frontière, inclinée par rapport à l'axe des abscisses, sont comprises dans l'intervalle limité par les bornes 1 12,5° et 157,5° et correspondent donc à une flèche orientée de e vers a, donc oblique pointant vers le haut et à gauche (direction nord-ouest). Par ailleurs l'intervalle contenant la valeur de l'angle α sert au calcul de δα en utilisant les pixels adjacents à la tangente pour lesquels Val-α a une valeur non nulle. Dans ce cas, la valeur de δα calculée à la position P(i,j) correspond à la différence en valeur absolue des angles de ces pixels adjacents. La figure 10 est une représentation, pour les pixels compris entre les mêmes coordonnées que ceux de la figure 8, des valeurs de δα, les pixels grisés (pour lesquels Val-α est différent de zéro) plus ou moins foncés illustrant les gammes de valeurs de δα suivant la légende de la figure 10a. On retrouve des valeurs très faibles (de 0 à 2) de δα (variation d'angle) pour les pixels entourant la portion rectiligne de frontière éloignée du coin G', des valeurs assez élevées de cette variation d'angle δα (de 13 à 17) pour les pixels entourant la portion curviligne de frontière éloignée du coin G' et des valeurs très élevées de δα (supérieures en général à 27) au voisinage de ce coin G'. Les traitements temporels de calcul, pour chaque pixel
P(i,j), d'une valeur de tangente à un bord , à savoir l'angle α, et de sa valeur de variation (indicative de courbure), à savoir δα, selon les organigrammes des figures 6 et 7 avec mise en œuvre des tableaux des figures 8 à 10 peuvent avantageusement être réalisés par les ensembles illustrés sur les figures 1 1 , 12 et 15 (qui illustrent un mode de réalisation préféré de l'unité 6 de la figure 1 ) avec mise en œuvre des tableaux selon les figures 13 et 14. La figure 1 1 représente un mode de réalisation électronique des calculs effectués dans une unité 6
comportant une sous-unité 6C de calcul δα et de son drapeau (flag) de validation en utilisant un mode de traitement en flot de données numériques séquence avec sous-séquences, comme précédemment, chaque séquence correspondant à un défilement de I colonnes et J lignes consécutivement, ce qui nécessite des retards de lignes et de colonnes afin d'avoir, pour chaque cycle élémentaire séparant deux pixels successifs (déterminé par l'horloge pixel CL) toutes les données nécessaire au calcul de la fonction de transfert réalisée par l'unité 6, à savoir IxJ cycles élémentaires d'horloges CL par trame d'image IM(t), c'est-à-dire de séquence, présentes. La partie gauche de la figure 1 1 illustre l'unité 6 répartie en ses sous-unités 6A, 6B, et 6C, débitant en sorties ΔT(i,j), MVT(i.j), α(i,j), Val-α(i.j), δα(i,j), Val-δα(i.j), à partir de la donnée d'entrée L, tandis que la partie droite de cette même figure représente la visualisation de l'image IM(t) balayée par ce flot d'entrée L et se déplaçant d'un pixel, par cycle d'horloge CL, à partir de la position P(0,0) en ligne, en recommençant par la colonne 0, ligne par ligne, jusqu'à la position P(I-1 ,J-1 ) qui correspond à la fin de IxJ cycles élémentaires; la position P(i ) correspond, à un pixel déjà complètement traité dans l'unité 6 et à partir de la donnée d'entrée L, donc avec un retard de 8 lignes et 9 colonnes. La sous-unité 6A, a été décrite dans la publication de demande PCT numéro WO-98/05002 possède une unité référencée 57 sur la figure 1 1 , délivrant deux signaux CO et DP, CO correspondant à une variation temporelle, donc ici à ΔT, et DP signalant un dépassement caractéristique d'un seuil de sensibilité de détection, donc ici à VAL (non représenté sur la figure 1 1 ), et une unité référencée 58 sur la figure 1 1 , qui, à partir de deux fois huit lignes de retard R"1 du signal ΔT, analyse une matrice spatiale de 17x17 pixels, (17 étant égal à 2x8+1 ) et délivre un signal de direction et d'intensité de mouvement éventuel par pixel, ce dernier étant dénommé
ici MVT(i.j) au centre de la matrice Ma. Le retard entre les données DATA et les sorties ΔT(i,j) et MVT(i ) est donc de 8 lignes et de 9 colonnes, DATA étant donc égal à DATA(i-9,j-
8). Le fonctionnement des sous-unités 6B et 6C se fait par rapport à la position finale des résultats en P(i,j), en étant synchrones avec les résultats de la sous-unité 6A, ce qui nécessite des unités à retard R de ligne et C de colonne, l'indice numérique affecté à chacune des unités indiquant la durée du retard correspondant en nombre de lignes et/ou de colonnes respectivement. De ce fait, pour faciliter la compréhension on va effectuer la description ci-après à l'envers, en commençant par le dernier traitement, à savoir le calcul de δα(i,j) et de Val-δα(i,j). Ce traitement s'opère sur une matrice 3x3, dénommé
Me, dans l'image IM(t), ce qui nécessite un retard de 2 lignes et de 2 colonnes pour effectuer un calcul valide au cycle suivant, correspondant à la position centrale de la matrice décalée (retardée) d'une colonne, soit un retard total de 21+3 entre la valeur d'entrée Val-α, α étant le résultat du calcul précédent, et la première valeur Val-δα(i ) et δα(i,j) valide à la position P(i,j), centre de la matrice 3x3, d'où la position de cette matrice Me par rapport à P(i,j) au cycle (jxl+i) et une position instantané de la donnée d'entrée Val-α, α au cycle CyC2. La valeur valide en P(i,j) est retardée de une ligne et de deux colonnes par rapport à l'entrée Val-α, α. Les valeurs Val-α et α sont obtenues à partir des valeurs de u et de v calculées par les unités 22a et 22b, en faisant un calcul en coordonnées polaires pendant un cycle horloge; le retard entre les donnée d'entrée u et v et le résultat Val-α et α est d'une colonne, ce qui correspond au cycle CyC1 . Les valeurs u et v, au centre de la matrice Mb au cycle CyC1 , sont obtenues à partir d'un produit scalaire entre les données du flot d'entrée L et un motif carré de taille 2W+1
nécessitant un retard de 2W lignes et de 2W+1 colonnes pour obtenir le premier résultat des (2W+1 )2 données correspondant à la position spatiale (W+1 ,W) pour un démarrage de la séquence à la position spatiale 0,0. Par exemple, pour une valeur de W=3, il faut un défilement de 2W lignes, puis un défilement de 2W+1 colonnes soit (6I+7) pixels pour avoir le premier résultat du calcul en position i,j =(4,3), correspondant à la donnée d'entrée du cycle numéro 6I+7. Pour une position spatiale générique P(i,j), la matrice Mb représente la position des éléments calculés dans l'image IM(t). Le résultat u et v au cycle CyC1 est celui pour la position instantanée de la donnée d'entrée L au cycle CyB. Il y a donc un retard de 3 lignes et de quatre colonnes entre l'entrée et le résultat. Ce traitement rajoute (41+3) cycles aux (1+3) cycles précédents. En résumé, le traitement le plus long nécessite (51+6) cycles poui- valider le premier résultat; ensuite, à chaque cycle horloge, un nouveau résultat est élaboré, excepté pendant les W premiers cycles de début de ligne. La donnée d'entrée DATA est la même pour les sous- unités 6A et 6B en retardant cette donnée de la différence entre les cycles CyA et CyB, soit 4 lignes et deux colonnes, représentés par le retard colonne 60 et les 4 lignes à retard 59. Les calculs étant synchronisés, il ne reste qu'à synchroniser les résultats sur la position P(i,j): - Val-δα, δα est par construction à la bonne place, et donc sa sortie est directe. - Val-α, α est valide au cycle CyC2 et donc il faut retarder ce résultat d'une ligne, soit la valeur prise après un retard d'une ligne, et de deux colonnes, d'où l'introduction d'une unité retard colonne 61 , pour être à la position P(i,j). - L est valide au cycle CyB, il faut donc retarder cette donnée de quatre lignes, soit sa valeur prise après quatre retard d'une ligne, et de sept retards d'une colonne, d'où
l'ajout d'une unité retard colonne 62, pour être à la position
P(i.j). En général, le retard entre l'entrée DATA et la position
P(i,j) est compensé par une harmonisation des signaux de synchronisations i et j dans l'unité 7, en introduisant un retard égal au temps de calcul, soit dans le cas présent, (91+8) cycles horloge pixel. La figure 12 illustre en détail les calculs inclus dans les sous-unités 6B et 6C de l'unité 6 présentées dans la figure précédente. Un signal numérique L(x,y,t), issu d'un flot de données DATA séquence pixel à pixel par une horloge CL, retardé de quatre lignes et de deux colonnes est introduit dans la sous-unité 6B en L0 et est retardé de la durée R d'une ligne, soit I colonnes, au passage de chacune des unités à retard 25. Etant donné que l'on travaille en flot continu et avec des blocs électroniques, ce qui provoque des retards internes successifs, tant en lignes qu'en colonnes, dans les opérations électroniques, le signal d'entrée sur la figure 12 correspond à l'instant actuel, la position P(i,j) calculé étant en retard de quatre lignes et de sept colonnes, il est donc mentionné en tant que L(i+7,j+4,t). La valeur choisie pour W détermine le nombre d'unités à retard nécessaires, qui est égal à 2W. A titre d'exemple non limitatif, on a choisi W égal à trois, d'où les six unités à retard lignes 25 présentent sur la figure 12, et donc les 2W+1 signaux d'entrées, dénommés L0 à L6 (le premier non retardé, le deuxième retardé de R, le troisième de 2R, et ainsi de suite), appliqués à l'unité 27. Ainsi le signal L4 est constitué par L(i+7,j,t). Par ailleurs une unité à retard colonne 26 impose un retard de sept colonnes au signal L4 qui devient, en sortie de cette unité à retard, L(i,j) fonction de t, (c'est la sortie L(i,j) de la sous-unité 6A de la figure 1 ). Pour chaque pixel courant P(i,j), les unités 22a et 22b réalisent des filtrages orthogonaux, pour les fonctions
précédentes et pour une résolution spatiale donnée W, en effectuant un produit scalaire, qui représente une moyenne pondérée par les intensités lumineuses dans la configuration de valeurs de paramètres de la résolution spatiale selon les figures 14 et 15 autour du pixel courant, l'unité 22a calculant u, à l'aide de la configuration matricielle 27a pour fx donnée à la figure 14, et l'unité 22b calculant v à l'aide de la configuration matricielle 27b pour fy donnée à la figure 15 avec:
m-W n≈W m=W n=W
U(i,j,t)
= -( 2-
f *-O+mJ+nJ) fX-U+mJ+n)
β*
V(i,j,t)
= -ι zL *-
,V+m +nJ) fy (i+m +n)
m=-W n=-W m—W n≈-W Le gradient δG(x,y) qui est normalement perpendiculaire au bord extrait par les dérivées directionnelles u et v pour la position de pixel P(i,j) extrait, est rendu parallèle au bord en utilisant le fait que le produit de pentes perpendiculaires est égal à moins un, donc ici le rapport u/v correspond à une variation dx/dy, possède un module égal à:
et un angle α correspondant à la tangente au bord, donné par la formule classique: u α = Arctg —
Ces calculs sont effectués par l'unité 23 avec une méthode de calcul CORDIC en un cycle horloge. Un test de validité du module ainsi calculé est également fait par l'unité 24 qui valide, met à 1 , un drapeau (flag) Val-α si ce module est supérieur à un seul S1 , le drapeau (flag) étant nul dans le cas contraire. Les sorties Val-α, α, et p, sont en avance d'une ligne et de deux colonnes par rapport à la position P(i,j), le signal p est donc retardé d'une durée R-1 égale à une ligne et d'une durée C-2 égale à deux colonnes et devient ρ(i,j), il en est de même pour le signal Val-α, α qui devient Val-α(i ) et α(i,j). L'unité 6C calcule la variation spatiale du signal α autour de la position P(i,j) au centre d'une matrice 3x3 et
donc le signal Val-α, α est introduit en cascade dans deux unités retard ligne R afin de générer trois signaux d'entrées dénommés L0 à L2, appliqués à la sous-unité 6C qui possède, pour chacune de ces entrées, deux registres à décalage colonnes en cascade, les neuf valeurs de α servant alors pour le calcul de δα. Le calcul étant fait à la position P(i,j) et le résultat Val-δα(i ), δα(i,j) est directement exploitable. La figure 13 représente l'ensemble des éléments de calcul nécessaire au produit scalaire entre un motif carré de taille 2W+1 et les données associées issues du flot de données d'entrée. Ces éléments de calcul sont organisés suivant une matrice carrée de même taille, avec un premier cumul du produit scalaire par ligne en parallèle, et, un cumul global, par les sommateurs 48 de tous les cumuls primaires précédents, au cycle d'horloge suivant. L'élément de base e(
a,b) est constitué en général par trois entrées, deux fonction de calcul, et deux registres de mémorisation imposant un retard d'un cycle horloge pour l'élément suivant. Une exception est faite pour chaque extrémité de ligne: le premier élément ne possède pas encore d'élément de cumul ligne, et le dernier élément n'a pas besoin de retarder le flot de données d'entrée. Cet élément de base β(a, ) est donc constitué par: - une entrée numérique correspondant à L(b) retardé de (a) colonnes et mémorisé dans un registre 44 de retard une colonne pour l'élément de colonne suivante. Sur la Figure 13 Z
"1 correspond à un retard d'une colonne. - une entrée numérique correspondant à la valeur G(a,b) sélectionnée dans la matrice 2W+1 du produit scalaire (le balayage de la matrice est de -W à +W). - une unité 45 de multiplication entre les valeurs des deux entrées précédentes et - une unité 46 d'addition entre le résultat de la multiplication précédente et le résultat de l'addition de l'élément de colonne antécédente, la sortie de cette unité 46
étant mémorisée dans un registre retard colonne 47 pour l'élément de la colonne suivante. On va maintenant présenter un exemple d'utilisation des signaux α et δα en relation avec la figure 16 qui représente une extension de la figure 1 , à savoir l'utilisation multiple de couples STN en vue d'extraire plusieurs zones d'une frontière telle que représentée en figure 17. Sur la figure 16, un premier couple de STN récupère l'orientation la plus représentée α50, l'unité de contrôle 13 recrute alors un autre couple de STN avec en inhibition la zone Z50 précédemment trouvée, et initialise le processus décrit en figure 3, une seconde zone Z30 est alors trouvée et l'unité de contrôle 13 recommence le processus avec recrutement d'un nouveau couple STN qui permet de trouver une troisième zone Z10, le recrutement s'arrête lorsque le nombre de points de bords orientés devient inférieur à un seuil S1 . L'unité 8 de traitement spatial angulaire de la Figure 1 comporte donc, en plus, dans cette extension, au moins trois modules 8a, 8b, 8c de traitement spatial angulaire qui effectuent des calculs de rotation d'angle sur les coordonnées cartésiennes rectangulaires x et y de position i et j de pixel. L'angle correspondant à chacun des calculs de rotation est représenté par une valeur Θ50, Θ30, Θ10, introduite dans le module correspondant. Ces valeurs sont fournies par la combinaison fonctionnelle de la sous-unité 6B de détermination et caractérisation angulaire de la Figure 1 avec les couples STN recrutés afin de produire au cours de cycles successifs les valeurs d'angle de bords α50, α30 et α10 ainsi que les zones et les barycentres correspondants. On a enfin représenté sur la partie droite de la figure 16 une ligne verticale symbolisant un bus de données numériques permettant de récupérer les résultats de calculs des registres des modules STN. La figure 17 représente le résultat du traitement précédent. Chaque zone Zi est étiquetée par son orientation
ai et son centre BarZi de coordonnées Xzi et Yzi dans le repère orienté ai. Plus généralement, le procédé mis en œuvre avec le dispositif précédemment décrit et ses variantes consiste à effectuer en plusieurs étapes, sur au moins un signal temporel (luminosité dans l'exemple) et un signal spatial (coordonnées des points), les opérations successives suivantes sur l'ensemble des points de la représentation matricielle fournie par le transducteur: a) la détermination d'au moins un point correspondant à un bord par détection, dans le signal temporel, d'une variation correspondant à une modification significative de la valeur dudit paramètre, le calcul de la valeur de l'angle α du bord en ce point avec un premier axe de coordonnées, α=arctg(u/v) avec u et v des dérivées directionnelles du premier ordre pour deux directions orthogonales dans le signal temporel afin de produire un nouveau signal temporel d'orientation de bord, une donnée de validation Val-α fonction d'un seuil S1 étant associée, b) le traitement statistique des valeurs des angles α dans un couple de modules STN, un premier temporel recevant l'angle et le second spatial recevant les coordonnées du point après rotation (d'angle nul pour la première séquence) afin d'obtenir la valeur la plus fréquente de l'angle définissant l'orientation privilégiée du(des) bord(s), c) la rotation de la représentation matricielle du signal spatial, une rotation d'un angle égal à ladite valeur la plus fréquente de l'angle de manière à rendre l'orientation du bord sensiblement parallèle audit premier axe de coordonnées, d) un nouveau un traitement statistique dans un couple de modules STN des positions des valeurs dudit angle calculées précédemment afin d'obtenir au moins la position la plus fréquente définissant une zone (Z
50, Z
3o, Z
10) de position entre des bornes (BorneA
αt, BorneB
αt) de l'orientation
privilégié et la position barycentrique (BarZ
α50, BarZ
α30, BarZ
α10) desdites positions, les opérations précédentes à l'intérieur de la zone de position bornée en cours pouvant être répétées afin d'affiner la zone ou en excluant la zone précédemment trouvée afin de déterminer plusieurs zones. Sur la figure 18 on a représenté une autre extension de l'invention qui peut être appliquée au dispositif de la figure 1 ou de la figure 16 par exemple et qui permet de réaliser un filtrage (sélection) de frontière présentant une ou des courbures particulières: rectiligne/droite et/ou courbée et/ou coin. Elle consiste à prendre en compte la courbure du bord (variations de l'orientation δα) pour effectuer les extractions de zones de frontières. A cette fin, la variation d'angle δα est analysée dans un module STN 17 et comparé à au moins une valeur de seuil pour produire un signal qui permet de valider ou non le module STN 16 du couple de STN 15 et 16 qui correspond sur la figure 1 au couple STN 1 1A, 1 1 B et sur la figure 16 au couple STN 15, 16 (ou 25, 26, ou 35, 36 suivant que l'on veuille ou non prendre en compte la courbure du bord pour la zone correspondante). Ainsi on obtient un couplage, pour une position de pixel, de l'orientation et de la courbure du bord traité, avec la courbure comme critère de classification, afin de choisir entre les frontières rectilignes ou courbes ou cunéiformes (éventuellement combinées). Avec une telle configuration fonctionnelle il est notamment possible de percevoir et suivre des objets dont la frontière est courbe, comme par exemple une roue de véhicule ou un visage. C'est ainsi qu'en fonction des plages de sélection on pourra sélectionner des bords d'objets correspondant à des lignes droites (gamme de valeurs de variation d'orientation nulles ou faibles) et/ou des coins (gamme de valeurs de variation d'orientation les plus élevées) et/ou, entre les deux, des lignes plus ou moins incurvées.
Comme on l'a vu, l'histogramme d'analyse des variations d'angle peut présenter trois pics et classes principales correspondant à des bords rectilignes/droits, courbes ou des coins. Pour sélectionner plus particulièrement un des trois types de bords, par exemple les coins, il peut être avantageux d'utiliser des seuils de valeurs de δα résultant d'un calcul et d'un test plutôt qu'une ou des valeurs absolues. Ces calculs et test permettent de sélectionner des seuils qui donnent un nombre de coins compris dans une gamme de valeur prédéterminée suffisamment élevée pour avoir un nombre de coins significatif mais pas trop pour éviter de prendre en compte du bruit (des coins qui n'en sont pas). La gamme de valeurs peut être choisie en fonction de la scène à analyser: par exemple si l'on recherche un immeuble à toit plat dans une scène au moins quatre coins sont à prendre en considération (vue de face) ou six (vue en biais). On peut ainsi adapter les seuils de prise en compte des éléments de la scène. La figure 19 correspond à une extension de l'invention qui a été vue jusqu'à présent essentiellement dans sa partie analyse, avec introduction d'une partie de synthèse. Le bloc 100 de la figure 19 correspond schématiquement au dispositif et procédé, dans toutes leurs variantes, précédemment décrits et effectuant l'analyse de la scène. Une unité 200 récupère les différents objets perçus de la scène provenant du bloc 100 d'analyse, sous la forme d'une série de paquets de données, chacun des objets étant au moins défini par une orientation et associé à un barycentre BarZαi de coordonnées Xzi et Yzi. Dans une variante, la longueur de la zone Zαi est aussi associée aux données précédentes dans les paquets de données. A l'intérieur de l'unité 200 est effectué un traitement spécifique permettant de reconstituer (synthétiser) des formes en rapport avec les objets perçus et ce résultat est transmis vers l'extérieur pour une utilisation ultérieure. En plus des paquets de données d'analyse provenant du bloc 100 et
représentés par une flèche pointant vers l'unité 200, on a représenté, en retour vers le bloc 100, des données ZJabel résultant du traitement dans l'unité 200 et qui correspondent à des représentations précédemment identifiées et mémorisées d'objets ou parties d'objets particuliers de la scène, ces objets mémorisés sont transmis sous forme de LABEL qui sont des paquets de données identifiés (numéro ou intitulé de LABEL par exemple) caractérisant l'objet mémorisé sous forme, par exemple, d'un barycentre, une orientation, une taille, un nombre de points, un module p, une distance LD et/ou d'autres caractéristiques perceptibles par le bloc d'analyse, ces LABEL étant alors classiquement utilisés dans le bloc d'analyse soit pour aider à la perception, soit pour identifier spécifiquement les objets correspondants par comparaison. Si les LABEL peuvent être générés par perception d'objets dans un système à modules STN comme on le verra en relation avec les figures 65 et 66, il peuvent également être générés par calcul selon des règles de génération de LABEL en rapport avec ce que peut produire un système à modules STN. Notons qu'il est possible, en particulier lorsque l'on souhaite mémoriser des labels, d'effectuer plusieurs analyses d'une scène et de moyenner les résultats obtenus afin d'améliorer la précision. Le moyennage des résultats d'analyse peut également être effectué systématiquement ou seulement dans certaines applications comme par exemple celles où le transducteur, notamment une caméra, peut vibrer ou bouger non intentionnellement. On peut également noter sur la Figure 19 qu'une représentation en trois dimensions, 3D, est également possible en utilisant dans les blocs 300 et 400, les données concernant les variations d'angle produites par analyse dans le bloc 100 et en particulier les coins. On a en effet montré que l'utilisation des coins permet des reconstructions particulièrement robustes et efficaces, notamment en
considérant les relations entre les divers coins qui sont conservées malgré de possibles variations de l'angle de prise de vue et/ou de focale dans le cas d'images. L'ouvrage « Perception visuelle par imagerie vidéo » sous la direction de Michel Dhome, ISBN 2-7462-0662-5, donne des exemples de reconstructions à partir de points à type de coins. Pour ce qui concerne l'animation de synthèse à partir de coins on peut notamment consulter dans cet ouvrage, dans le chapitre 5, la reconstruction 3D et la modélisation 3D. Le traitement de synthèse qui va maintenant être explicité permet notamment une représentation en deux dimensions, 2D, de la scène par reconstruction. Afin de mieux présenter le traitement de synthèse qui est effectué, une présentation générale des outils utilisés, notamment la mise en œuvre de courbes permettant de joindre et/ou d'ajuster un tracé de courbe à des points, est maintenant effectuée. Les figures 20 et 21 représentent les éléments utiles à la synthèse d'image. Sur la Figure 20 est représentée une unique courbe cubique Q hermitienne permettant de joindre P1 et P4 qui sont deux points de contrôle avec R1 et R4 pour dérivées aux points de contrôle. Sur la figure 21 , une courbe de Béziers cubique, qui est une courbe hermitienne particulière, joint les points d'extrémités P1 et P4 avec pour dérivées aux extrémités R1 et R4, approximant une ligne polygonale de 4 points de contrôle P1 , P2, P3 et P4, tel que R1 =3(P2-P1 ) et R4=3(P4-P3). On comprend alors qu'à partir de tels outils que sont ces courbes et les méthodes permettant de les faire passer par ou en relation d'ajustement par certains points et en utilisant pour points de contrôles et leurs dérivées successives les données reçues dans les paquets de données provenant de l'analyse, il est possible de passer de l'analyse à la synthèse. Les points de contrôle correspondent alors aux barycentres et les dérivées sont obtenues à partir des valeurs d'angle α résultant de l'analyse, Izi et Jzi représentent un point de
contrôle Pα, et tan(αi) la dérivée associée Rα. Pour le traitement de synthèse, un premier calcul assure une rotation de plan de -ai afin d'avoir tous les points de contrôle dans un même référentiel de base l,J et permettre de faire passer une portion de courbe telle que définie précédemment entre les points de contrôle. La figure 22 est un exemple de résultat d'un tel traitement qui a permis de synthétiser une courbe Cbe-1 passant par trois barycentres de trois zones. Il est possible d'utiliser d'autres types de courbes, notamment, telles que les B-splines ou les courbes B-splines non uniformes rationnelles (NURBS) découlant des courbes de Béziers précédemment décrites, et qui permettent de synthétiser des objets encore plus complexes tel que celui montré à titre d'exemple sur la figure 23. La synthèse peut être générique et prévoir la reconstruction de tout type d'objet d'une scène et tout type de relation entre les objets de la scène. On comprend alors que la reconnaissance des objets et la synthèse peuvent être plus coûteux en temps et matériel. La synthèse peut être spécialisée en ce sens que l'espace, notamment la scène observée, et les objets qui peuvent s'y trouver aient des caractéristiques particulières qui sont connues à priori. C'est par exemple le cas dans des applications d'aide à la navigation de véhicules terrestres, maritimes ou aériens qui à partir d'observation visuelle par caméra, radar ou autres moyens de capter l'espace, dans lequel les objets, leurs relations et la structuration de ces objets, notamment de la route, des voies aériennes ou d'une piste, d'un chenal maritime ou canal sont en nombre limité et connus à priori et peuvent être mémorisés sous forme de labels. Des applications des outils et procédés précédemment décrits de détermination et caractérisation de bords orientés vont maintenant être présentés.
La première application d'analyse d'environnement considère un transducteur se déplaçant dans un environnement et, à titre d'exemple, il sera décrit une mise en oeuvre concernant la circulation automobile et plus particulièrement la reconnaissance et caractérisation de voies de circulations et le positionnement des véhicules par rapport aux voies de circulation et entre-eux. Les objets qui sont perçus dans l'environnement ont certaines relations entre-eux et avec l'horizon connues à priori (forme de la route notamment). A partir de la perception qui permet d'acquérir une connaissance de l'environnement d'un véhicule il est possible d'agir sur le véhicule ou sur le conducteur, voire sur l'environnement. Dans cette application, un véhicule est équipé d'une caméra vidéo qui produit des images qui sont envoyées dans un système à caractérisation spatio-temporelle des données image et à modules STN recevant de telles données de caractérisation. On comprend qu'une telle application peut être mise en œuvre sur tout type d'objet mobile se déplaçant dans un environnement comme par exemple un navire ou un robot mobile et que les images si elles proviennent généralement de dispositifs de prise de vue, peuvent correspondre dans certaines applications à d'autres types de données comme par exemple des données radar, sonar ou provenant de tout appareil permettant d'obtenir une représentation de l'environnement par un ensemble de données associées à des pixels ou points et sous forme de signaux avec séquences et sous-séquences. La notion de mobilité du transducteur est relative car si l'application est surtout utile pour analyse d'un environnement dans lequel se déplace le transducteur, rien n'empêche de mettre en œuvre l'application alors que le transducteur est fixe. La deuxième application qui concerne l'analyse de scène s'apparente à la première en ce sens qu'elle est également destinée à appréhender un environnement mais, cette fois, le transducteur est fixe contrairement à la
précédente application où, en général, il se déplace dans l'environnement. De plus, dans cette application, l'horizon n'est pas connu à priori ni la forme des objets vus en perspective. Ici, l'environnement est donc limité à un lieu avec prise de vue fixe donnant des images d'objets avec perspective (caméra non verticale). L'application consiste en une analyse de perspective des objets du lieu. La notion de transducteur fixe est relative en ce sens qu'il peut éventuellement se déplacer (par exemple en rotation) ou modifier sa focale (mécaniquement ou électroniquement, par exemple avec un zoom numérique) mais, dans ce cas, cela aboutit à un nombre limité de types de prise de vue qui peuvent être traitées chacun comme si le transducteur était fixe sur ledit lieu. Dans des variantes plus évoluées, notamment dans le cas de variation de focale, on pourra se placer dans un référentiel de représentation des données pour l'analyse qui assure une invariance malgré la modification de focale en recalculant les paramètres intrinsèques βu et βv du transducteur. Ce type d'application est notamment destiné à de la surveillance de lieu géographique comme par exemple: magasin, parking, carrefour, port, aéroport... afin d'analyser d'une manière semi-automatique ou, de préférence, automatique, des événements s'y déroulant comme par exemple: stationnement de consommateur devant certains produits, libération de place, non-respect des feux de signalisation, mouvement de navires, occupation des pistes... Encore une fois le transducteur peut être une caméra, un radar, un sonar ou tout appareil permettant d'obtenir une représentation de l'environnement par un ensemble de données associées à des pixels ou points et sous forme de signaux avec séquences et sous-séquences. La troisième application concerne la détermination d'un coefficient de distorsion et d'un centre optique puis la correction de la distorsion optique géométrique en barillet ou
en tonneau sur des images numériques obtenues avec un transducteur comportant un objectif avec un centre optique. Elle peut être mise en œuvre qu'il y ait ou non réellement une distorsion dans l'objectif, ne serait-ce que pour déterminer le centre optique de l'objectif dans l'image. La quatrième application concerne la détermination d'une rotation et d'une translation entre images successives et la stabilisation d'images par recalage afin de supprimer le bougé involontaire (tremblement, instabilités... ) lors de prises de vues vidéo et notamment dans les appareils de prise de vue portables du type appareil photo, caméra numérique, caméscope ou autres et qui peuvent subir des mouvements intempestifs. Elle peut être utilisée sur des suites d'images de type vidéo classique pour visualisation/enregistrement/transmission de séquences vidéo recalées ou, également, pour créer une image unique à partir d'une série d'images obtenues d'une même scène comme par exemple en astronomie où plusieurs images d'une même portion du ciel ou d'un astre sont combinées en une seule afin de réduire le bruit. L'application en question permet une plus grande liberté de pointage et de suivi des astres pour l'instrument optique au cours du temps. Toujours dans cette dernière application, au lieu de produire en sortie une suite d'image séquentiellement, on gardera en mémoire les images recalées pour combinaison ultérieure ou on fera la combinaison au fur et à mesure du calcul d'images recalées pour sortie finale directe d'une image combinée. La cinquième application concerne la caractérisation du mouvement d'un objet par rapport à un transducteur avec notamment le calcul de distance, détection dé translation et de rotation et apporte un perfectionnement à une méthode présentée dans la demande de brevet FR-2.843.471 qui concerne la perception par défocalisation. Elle consiste, dans ses grandes lignes, à mettre en œuvre les outils de détermination de bords orientés mais, au lieu de se placer
dans l'espace cartésien X,Y (ou polaire) et d'utiliser pour analyse des paramètres spatiaux de type X,Y correspondant aux positions de pixels pour la luminance dans, à se placer dans un espace de perception module-distance (p,LD) et à utiliser des paramètres qui sont respectivement p,- (module d'un vecteur étendu entre un barycentre BarZo de zone d'un niveau de perception et un barycentre BarZ
10 ou BarZ
2o ou BarZ
3o d'un niveau de perception juste ultérieur) et LD
in (log de la distance de l'objet à la caméra) correspondant, à une échelle temporelle inférieure (sur plusieurs trames), aux objets définis par leurs arbres de perception respectifs : pour une première trame la perception donnant les modules Poι - -Po
3, pour une deuxième trame donnant les modules pιo --pi5, etc. Enfin, ces différentes applications peuvent être combinées entre-elles et par exemple dans une application à la conduite automobile avec une caméra dans un véhicule, une correction de distorsion géométrique et de recalage d'images peut être mise en œuvre sur les images destinées à l'analyse de trajectoire routière. L'utilisation d'un composant comportant un système avec des moyens de caractérisation spatio-temporelle de données (X,Y et MVT, L, T, S, α, p, δα... ) et des modules STN et divers bus dont de rétroannotation et sous le contrôle d'un programme applicatif par l'intermédiaire d'une interface de type API est alors particulièrement intéressante car toutes ces procédures peuvent être exécutées dans le même composant. Un tel composant et système de l'état de la technique est représenté sur la figure 40 qui est tirée de la demande FR-2.821.459, ce composant étant toutefois adapté à la présente invention pour produire des signaux temporels supplémentaires conformes à la présente invention, notamment d'orientation et de variation d'orientation de bords orientés. On doit noter que si l'on explicite ces applications avec des traitements d'images, l'invention ainsi que ces
applications peuvent être mises en œuvre très généralement sur des représentations d'un environnement par un ensemble de données associées à des pixels ou points et sous forme de signaux avec séquences et sous-séquences et, par exemple, également sur des résultats de perceptions ou sur des synthèses à partir de perceptions. APPLICATION A L'ANALYSE D'ENVIRONNEMENT Dans le cas de véhicules automobiles, les bords de voie de circulation sont des objets dont certaines caractéristiques (lignes de délimitation, disposition des lignes... ) sont connues à priori. C'est ainsi que les figures 24, 25 et 26 décrivent la relation géométrique qui existe entre la route et son image, ainsi que la représentation explicite et implicite des courbes formées par les bords de voie et de leur image. Pour décrire le plus simplement possible la relation géométrique qui existe entre la route et son image, la caméra est modélise par une simple projection centrale sur le plan de la matrice des points de l'image de la caméra et le système utilise dans cet exemple quatre repères (ou référentiels) cartésiens bidimensionnels (plans): - Repère de la matrice des points de l'image de la caméra (l,J Figure 24 ou 25 par exemple), - Repère de la focale caméra (u,v Figure 24 ou 25 par exemple) - Repère du véhicule, - Repère de la route vue de dessus centré sur le véhicule V (x
v,y
v Figure 26 par exemple), La figure 24 est une représentation de l'image perçue par le dispositif de la figure 1 et ses extensions. Les données produites par l'analyse ont permis de déterminer deux zones Z
a et Z
b appariées les plus proches du véhicule transportant la caméra ainsi que leurs barycentres et leurs orientations de bord. Ces deux zones matérialisent les bords de la voie de circulation (par exemple les lignes blanches latérales continues ou non). A chaque zone est associé un triplet de
valeurs {α
a,X
2a,Y
Za} pour Z
a et {αb,X
Zb,Yzb} pour Z . A partir de ces triplets de valeurs il est possible de calculer l'équation des droites d
a et d
b et les coordonnées I H .JH de leur point de croisement que l'on a noté H (point de fuite) sur la Figure 24. Ces deux droites d
a et d
b forment un triangle à sommet H vers le haut. On peut alors également calculer le décalage D du point H par rapport à l'origine du repère de la focale caméra (0,u,v) ainsi que la relation entre les deux origines de repères matrice et caméra: uo.Vh. La focale caméra correspond au centre optique de la caméra, ce centre optique qui peut être calculé comme on le verra ultérieurement, peut éventuellement être approximé par le point de centre de la matrice image. Notons que si d'autres zones de limite de voie de circulation que Za et Zb avaient été perçues sur une telle route droite, les droites correspondantes à d
a et d
b mais pour ces zones supplémentaires, se seraient croisées sensiblement au même point H (à la précision et résolution près qui décroissent pour les objets les plus éloignés de la caméra). La figure 25 représente le modèle mathématique correspondant à la vue précédente de la figure 24 dans le cas de repères matrice (l,J) et caméra (u,v). On a représenté sur cette Figure 25 les équations des droites d
a et d dans le repère caméra u,v, soit u=aι β
u+a
0a(β
u/βv)v et à u=aι β
u+a
0b(βu/βv)v, et le décalage horizontal du point H, soit aι β
u, dans ce même repère. Cette figure 25 est à mettre en relation avec la figure 26 qui représente le modèle mathématique de l'environnement du véhicule cette fois dans un autre repère qui est celui de la route vue de dessus centré sur le véhicule V d'axes de repère x
v,y
v- On y a représenté cette fois les équations des droites d
a et db dans ce repère, soit
On peut montrer qu'il existe une relation homomorphique entre ces repères caméra (u,v Figure 25) et route (x
v,y
v Figure 26) pour les objets de la scène. Les relations permettant de passer d'un repère à l'autre sont
données aux Figures 25 (2.1 ) et 26 (2.2). On peut constater que lorsque le véhicule se translate le long de l'axe x
v sur la route (Figure 26), alors le triangle défini par les droites d
a et d
b (Figure 25) tourne, et inversement. De même, lorsque le véhicule tourne sur la route (Figure 26) alors le point H se translate le long de l'axe u (Figure 25) et inversement. On peut donc passer d'un référentiel à l'autre par de simples opérations mathématiques à la portée de tout homme du métier, ce dernier pouvant même classiquement trouver des relations entre le repère caméra et encore d'autres repères. Ainsi, à partir des résultats issus du calcul du dispositif de l'invention avec les STN et le processeur 13, il est possible de faire correspondre la scène perçue telle que représentée à la figure 24 avec le modèle mathématique de la figure 25 et finalement d'effectuer un changement de repère pour une représentation telle que celle de la figure 26 par l'exécution de l'organigramme de la figure 27 qui va maintenant être détaillé. En se référant à la figure 27 on a l'organigramme de déterminations des paramètres de représentation en fonction des différents repères mis en jeu. Chaque zone Za et Zb est perçue par un couple k de modules STN et les résultats des couples, les triplets (αk, Xzk, Yzk) (1.1 ) qui sont dans un repère d'orientation particulière (les coordonnées i,j ayant été passées à travers un module de rotation 9 (d'angle θ) de l'unité 8 de traitement spatial angulaire) sont remis dans un repère i,j par la fonction de rotation (1 .2) inverse (d'angle -θ) pour donner les triplets (αk, izk, jzk) (1 .3). On peut alors déduire les équations des droites passant par ces coordonnées (izk, jzk )et de pente d'angle αk par les équations en (1 .4). Ces droites se croisent au point de fuite H de coordonnées i
H,JH calculées par les équations (1.5). On pose alors que V
h=jh (le point H est sur une horizontale passant par l'origine du repère caméra O.u.v) et que le décalage D de H par rapport à l'origine du repère caméra est
égal à Î
H-Uo-comme ind iqué en (1 .6) On remarque en effet que quand un point au sol s'éloigne pour tendre vers l'infini, son image converge vers un point de la ligne d'horizon d'ordonnée V
H égal à jΗ et si le véhicule est bien aligné sur la voie de circulation, alors u
0 est égal à i , et un écart D correspondant à une orientation du véhicule sur la voie est calculable comme indiqué en (1.6). On pose alors les équations des droites d
a et d
b dans le repère caméra u,v comme étant égales respectivement à u=aι β
u+a
0a(βu/β
v)v et à u=aι β
u+ao
b(β
u/βv)v. On peut alors déduire les relations suivantes exprimées en (1.7): ai βu≈D, ao
a(β
u/βv)=tanα
a et
On peut alors calculer les paramètres des équations de droites cette fois dans le repère route x
v,y
v comme représenté sur la Figure 26, droites d'équation
![Figure imgf000096_0002](https://patentimages.storage.***apis.com/2a/4b/c4/cbe213880d6193/imgf000096_0002.png)
respectivement grâce aux opération indiquées en (1 .8) de la Figure 27. Si certains objets de la scène ont des dimensions connues, notamment la largeur de la voie de circulation (distance L sur la Figure 26) et la longueur d'un élément de bande latérale discontinue (B sur les Figures 25 et 26), il est alors possible d'étalonner le système par les calculs indiqués en (1 .9) Figure 27. Le système de transformation de coordonnées (2.1 ) de la figure 25 ainsi défini est très simple et c'est une transformation homographique particulière (c'est à dire que chaque coordonnée est un rapport de transformation linéaire de coordonnées, de même dénominateur) entre les points de l'image sous la ligne d'horizon et les points du sol devant le véhicule. La transformation inverse (2.2) de la figure 26 qui fait passer d'un point de l'image à un point au sol est aussi homographique. On note que dans cette configuration particulière, seulement quatre paramètres doivent être estimés pour complètement caractériser la transformation entre le sol et l'image: βu, β
v, u
0, VH et que par connaissance de caractéristiques spécifiques de la voie de circulation telle que L, la largeur de voie et B la longueur d'un élément de la
bande discontinue, il est possible d'estimer β
u et β
v. H est également simple de passer du repère matrice (l,J) au repère caméra (u,v) et inversement avec Uo, Vh. On peut également indiquer que dans le cas de limites de voie de circulation qui sont parallèles entre-elles, la différence tanα
a-tanα
b est une constante. Il est alors possible, lorsque qu'il n'y a plus de perception d'une des limites de voie, de pouvoir effectuer des analyses complémentaires dans la région estimée de présence de la limite qui a été perdue. Il est également possible d'améliorer la rapidité de perception en concentrant l'analyse sur la région estimée de l'une des limites par rapport à l'autre. La possibilité d'anticipation offerte par mise en oeuvre de modules STN ayant cette faculté peut être utilisée dans ce dernier cas: le système anticipant vers la région estimée d'apparition d'une perception de limite de voie de circulation. Dans le cas d'une route droite, la perception des limites de la voie de circulation correspond à un triangle qui est une figure relativement simple. On peut alors mémoriser cette figure sous forme d'un LABEL définissant les caractéristiques du triangle (relations entre coins, entre barycentres de zones, paramètres des droites... ) pour comparaison ultérieure. On peut noter que ce sont les zones perçues les plus proches de la caméra (du véhicule) qui donnent le maximum de précision par rapport à d'autres zones détectées plus éloignées. Il est donc particulièrement intéressant de pouvoir commencer à analyser les images de la scène en commençant par les points de la matrice correspondant aux objets les plus proches afin d'obtenir un résultat précis le plus rapidement possible. En effet, dans l'exemple présenté où l'origine du repère matriciel est en haut à gauche, il faut attendre la réception de la plus grande partie de l'image pour pouvoir commencer à travailler sur les points donnant les résultats les plus précis. On propose donc de mettre en œuvre un transducteur qui envoie les séquences et sous
séquences de données dans le système d'analyse en commençant par les points correspondant à des objets les plus proches de la caméra. Un tel résultat peut par exemple être obtenu avec un transducteur dont la matrice de captage est balayée à l'envers, c'est à dire en commençant en bas à droite (ou gauche) au lieu d'en haut à gauche comme ce qui est fait classiquement. On peut également obtenir le même résultat en retournant la caméra pour avoir une image inversée, le bas de la scène étant alors analysé en premier. Jusqu'à présent on a considéré une voie de circulation qui est droite. Le dispositif de l'invention peut également être utilisé dans le cas où la voie de circulation s'infléchie et donc que la route présente un virage ou tournant. La figure 28 (repère matriciel) représente un tel cas simplifié où l'on ne considère que la limite droite de la voie de circulation. La Figure 31 (repère matriciel), quant à elle, est avec deux limites latérales. Sur ces deux Figures 28 et 31 les zones perçues de limite(s) de voie de circulation, déterminées par le système d'analyse, présentent des orientations différentes et leurs barycentres m, n, o (ou m
a,n
a,o
a et mb,n ,θb si l'on considère les deux limites latérales) sont reliés sur les figures par une courbe synthétisé. La première zone de barycentre m (ou m
a,nr)b) avec la droite dm portée par ladite zone (ou les droites) définit un point de fuite en V
h,U
0. La deuxième zone de barycentre n (ou n
a,nb) avec la droite dn (ou les droites dn
a,dn
b) définit un point de fuite V
h,aι β
u- La troisième zone de barycentre o (ou o
a,o
b) avec la droite do (ou les droites do
a,do
b) définit un point de fuite V
h,a
2βu- Les écarts a^u. et a
2βu sur l'horizontale correspondent à une rotation tel que cela a été décrit précédemment. Ces points de fuite (équivalents de H) sont obtenus en mettant en œuvre les opérations présentées pour le cas d'une route droite et notamment l'organigramme de la Figure 27. Ainsi, comme précédemment des équations de droites sont calculées à partir de triplets de résultats liés à chaque
zone perçue de limite de voie de circulation déterminée par analyse de l'image. Toutefois, sur la Figure 28 (ou 31 ) et contrairement au cas de la route droite, les points de croisement deux à deux des droites n'arrivent plus au même emplacement (le point H précédent) pour les droites portées par les zones perçues de limite de voie dans la région de courbure de la route mais se répartissent le long de l'horizontale V
h. On peut donc déterminer simplement l'existence d'un virage, en première intention, par la variation d'orientation α
m α
n α
0 des zones de limite de voie de circulation ou, en seconde intention, par calcul des points de fuite (H) pour les différentes zones perçues et en particulier les points de fuite de zones appariées (m
a,mb ou n
a,nb ou o
a,o
b Figure 31 ) qui ne correspondent alors plus pour les différentes zones, le décalage aιβ
u évoluant. Il est également possible de déterminer les caractéristiques du virage, notamment son commencement et les rayons des deux limites de voie de circulation par des calculs qui vont maintenant être présentés. A cette fin, on utilise une procédure simplifiée qui considère par hypothèse que la courbure de la voie de circulation est un arc de cercle et qui utilise deux points (barycentres de zones) adjacents pour ajuster ledit arc de cercle. Cette hypothèse est représentée sur la figure 29 où on a représenté dans un repère du type route, mais avec une origine liée au barycentre m pour faciliter l'explication, la limite de voie de circulation passant par les barycentres m, n, o des zones perçues et qui était vue dans le repère matriciel sur la Figure 28. Comme précédemment, à chaque zone perçue par un couple de modules STN, un triplet (αk, Xzk, Yzk) est associé. Comme précédemment, on effectue une opération de rotation -θ permettant de replacer les triplets dans un repère l ,J puis on détermine selon les modalités expliquées précédemment (organigramme de la Figure 27) les paramètres pour pouvoir calculer les relations (2.1) et (2.2)
(Figures 25 et 26) permettant de passer d'un repère matriciel ou caméra (Figure 28) vers un repère route (Figure 29) et réciproquement. Connaissant ces relations on peut alors calculer le rayon de l'arc de cercle passant par un des points (barycentres), sur la Figure 29 le point n, par R=xn/(1 -sinα1 ), la droite passant par le centre du cercle et le point n ayant une pente -1/a1. On peut également calculer la distance d du début du virage par rapport au véhicule par d=yn+(xn- R)/tanα1 . L'organigramme de la Figure 30 résume ces étapes de calcul. Dans un premier temps on considère la zone perçue la plus proche de la caméra et on considère que la route est encore droite entre le véhicule et le barycentre de cette zone, point m en l'espèce. Il en résulte que sur une représentation en repère route simplifié, le point m est sur une droite verticale, que l'on a donc fait croiser pour simplifier les calculs et l'explication l'axe x
v à l'origine 0 (de ce fait la droite Om est sur l'axe y
v). On considère la zone suivante perçue, de barycentre n en l'espèce, qui est située en xn.yn dans le repère route simplifié par application des équations (2.1 ) (2.2) de changement de repère. On peut alors calculer le rayon R et la distance du virage comme indiqué ci-dessus. La Figure 32 (repère route) est la pendante de la Figure 31 (repère matrice). Pour simplifier les explications et calculs en relation avec les Figures 29 et 30 on a considéré en repère route simplifié le point m sur l'axe y
v. En pratique et comme vu dans le cas de la route droite, l'origine 0 du repère route est centré sur le véhicule et les points m
a et rτi
b sont donc situés latéralement par rapport à l'origine dans un tel repère. Les calculs du rayon du virage et de la distance de début de virage doivent donc prendre en compte ce décalage par rapport à l'origine par rapport aux formules simplifiées d'explication. Sur cette Figure 32 on a déterminé les deux rayons intérieur Rint et extérieur Rext du virage et la distance
au début du virage (distance verticale de l'origine 0 à ligne horizontale en pointillés). Enfin, concernant le nombre de zones à considérer, pour une route avec virage, sur les Figures 28 (ou 31) on a considéré trois (ou six pour les deux limites de voie) zones. Toutefois, comme on l'a vu, la méthode de calcul du rayon de la limite de voie de circulation utilise deux points (barycentres de zone) à chaque fois et on peut donc limiter le nombre de zones à percevoir à un minimum de deux. Les outils introduits précédemment permettent d'obtenir des résultats relativement simplement dans le cas de virage sur la voie de circulation. Toutefois, en acceptant des calculs plus importants, il est possible d'utiliser une méthode mathématique qui considère plus de deux zones à la fois et/ou des courbes qui sont plus complexes que des arcs de cercle. Les exemples d'application à la détermination de limites de voie de circulation ont été basés sur un cas simplifié dans lequel on ne détecte que deux séries de bords orientés correspondants aux limites de voie. Dans la pratique, le dispositif présenté peut être amené à détecter plusieurs séries de bords orientés correspondants à diverses lignes continues ou non de segmentation/délimitation de chaussée. Si l'on peut trouver sur une voie a sens unique seulement deux lignes latérales, le plus souvent sur une voie à double sens on trouve deux lignes latérales et une ligne centrale de séparation de sens de circulation, le nombre de lignes pouvant également varier en fonction du nombre de voies pour un même sens de circulation. Le dispositif sera donc amené d'une part à déterminer les limites de la voie sur laquelle le véhicule circule, les bords latéraux les plus proches, aussi, selon les cas, les limites (possiblement commune d'un coté) des autres voies à partir de bords plus éloignés (sur une horizontale). De même dans ces exemples, on a considéré que la route est plate et que les points de fuite H se retrouvent approximativement sur une horizontale (axe u
en l'espèce). Toutefois, dans la pratique, la route peut présenter des ondulations plus ou moins prononcée qui font que le point de fuite peut se déplacer également verticalement et on en tient donc compte par l'intermédiaire d'une tache de supervision contrôlant Uo et v
h. La figure 33 donne une représentation symbolique, sous forme d'image correspondant à un LABEL ou étiquette, d'un objet voie de circulation (Label_Route) dans le cas d'une route avec virage. Le LABEL peut être obtenu par synthèse en appliquant des courbes telles que définies précédemment en relation avec les figures 20 à 23 sur les données fournies par le dispositif de l'invention lors de l'analyse de la scène. Une manière plus simple de définir un tel LABEL est de considérer les différents rectangles définis par les droites passant par les différentes zones perçues dans le virage (comme on l'a proposé pour la route droite en considérant un rectangle). Dans ce cas on ne considérera que des portions de rectangles qui sont limités latéralement par une zone (il est alors préférable de calculer la longueur de la zone lors de l'analyse et de transmettre cette donnée avec l'angle et la position du barycentre), ces différentes portions de rectangles étant associées entre-elles (OU). Par exemple, en reprenant la Figure 31 , la portion de rectangle défini par les zones de barycentre m
a et m
b s'arrête vers le haut sensiblement le long d'une ligne passant sur les extrémités supérieures des zones de barycentre m
a et m
b. De même, la portion de rectangle défini par les zones de barycentre n
a et n
b commence vers le bas sensiblement le long d'une ligne passant par les extrémités inférieures desdites zones de barycentre n
a et n
b et s'arrête vers le haut sensiblement le long d'une ligne passant sur les extrémités supérieures desdites zones de barycentre n
a et n
b. Et ainsi de suite. On rappelle que les labels correspondent à des représentations symboliques d'objets ou parties d'objet de l'espace, soit sous forme d'ensembles de données brutes
résultant d'analyse, notamment positions de barycentres, angles, etc., soit sous forme de représentations plus évoluées, notamment résultant de synthèse comme les paramètres des courbes obtenues ou, à la limite, sous forme d'image. Ces labels qui sont mémorisés permettent l'identification d'objets ou parties d'objet au fur et à mesure de leur perception par le dispositif par détection dans la perception d'une correspondance entre les données de perception et les données de labels mémorisés. On comprend qu'il est préférable que les labels soient représentés sous forme de données brutes afin de faciliter la détection d'une correspondance et éviter une étape supplémentaire pouvant consister en une synthèse à partir des données perçues pour rechercher la correspondance avec un label mémorisé résultant lui aussi d'une synthèse. Dans la description précédente des procédés mis en œuvre pour déterminer les limites de voie de circulation on a considéré une caméra qui est situé sur le véhicule, par exemple dans le rétroviseur intérieur, et orientée vers l'avant. On comprend bien que les moyens indiqués puisse également être appliqués avec des caméras orientées vers l'arrière et, par exemple, dans un ou les deux rétroviseurs latéraux, le défilement de la route et les rotations se trouvant toutefois inversés par rapport à ceux d'une caméra orientée vers l'avant. La figure 34 donne un exemple de mise en œuvre de l'invention dans un véhicule 500 routier d'un conducteur. Selon le type d'application souhaité qui concerne plus particulièrement la sécurité, notamment suivi de voie, anti- collision frontale, voire encore anti-collision latérale, une caméra frontale, vers l'avant du véhicule est utilisée, voire, en plus, une ou deux latérales dans les rétroviseurs (permettant éventuellement également de venir compléter la fonction de suivi de voie principalement obtenue avec la caméra frontale). Sur la figure 34 on a représenté trois caméras: une frontale
vers l'avant (champ de vision 501 ) et deux latérales vers l'arrière et le coté correspondant (champ de vision 503 pour l'une), avec leurs champs de vision respectifs qui englobent des lignes discontinues latérales au véhicule et délimitant la voie de circulation. Les flux de données produits par ces caméras sont envoyés vers le dispositif de l'invention schématisé à l'intérieur du véhicule sous forme de deux blocs fonctionnels, le premier 100 pour analyse, le second, 505 pour synthèse, visualisation et/ou actionnement d'effecteurs (freinage, direction...). Le dispositif de l'invention après analyse et synthèse peut présenter au conducteur l'environnement du véhicule sous forme d'une image représentant le véhicule 500 sur la route, vu de dessus, comme sur la figure 35. Sur cette figure 35, le véhicule du conducteur 500 est symbolisé par un pavé grisé et les différentes voies de circulation par des bandes de roulement délimitées par des lignes, ici continues mais pouvant être discontinues en fonction du type de lignes de séparation (continues ou non) de l'espace et qui ont été synthétisé sur l'image présentée. Les autres véhicules 502 et 504 perçus dans l'espace sont synthétisés sous forme de pavés se distinguant du véhicule du conducteur. Des alertes de perte de trajectoire dans le cadre de la fonction suivi de trajectoire peuvent être générées en fonction de la position du véhicule du conducteur dans la bande de roulement et/ou position du véhicule par rapport aux lignes de délimitation latérales de la voie de circulation. En dehors de la position elle-même du véhicule, la trajectoire du véhicule par rapport à la bande de roulement ou les lignes de délimitation peut être prise en compte pour ce type d'alerte. Des alertes anticollision peuvent être générées en fonction de la distance des véhicules entre-eux et de leurs trajectoires relatives respectives. La trajectoire peut être estimée en fonction de la direction générale passée du véhicule et/ou un transducteur peut être relié au volant du véhicule du conducteur.
Des applications de l'invention sont ainsi possibles à type de suivi et anticipation de la trajectoire d'un véhicule dans un espace quelconque (aérien, maritime, terrestre) et notamment routier ou ferroviaire (la structure des voies est connue à priori) pour alertes anticollision ou surveillance du respect de la signalisation. De plus, des alertes anti-collision sont permises par la détection des autres véhicules (ou aéronefs ou navires) en fonction de la trajectoire (et éventuellement vitesse) du véhicule (ou aéronef ou navire) qui comporte l'invention, voire également en fonction des trajectoires de ces autres véhicules (et éventuellement de leurs vitesses) selon des modalités connues notamment dans la surveillance du trafic aérien ou maritime. Ces autres véhicules peuvent être détectés vers l'avant mais également vers l'arrière au cas où une/des caméra latérales seraient mises en œuvre. On comprend bien que dans le cas de véhicules aériens ou maritimes la caméra puisse être remplacée par un radar tel que classiquement utilisé dans ces domaines. Les exemples d'applications précédents qui sont principalement en relation avec la sécurité peuvent être combinées à d'autres et notamment à la détection de l'endormissement du conducteur comme expliqué dans les demandes W099/36893 et W099/36894 et auxquelles on pourra éventuellement se référer. On a donc représenté plusieurs modalités de mise en œuvre pratique d'une telle combinaison sur les figures 36 à 39. Pour détection de l'endormissement, le visage du conducteur doit être filmé et le positionnement de la caméra dans le rétroviseur intérieur est particulièrement intéressant. De même, le positionnement de la caméra frontale pour filmer la route dans le rétroviseur est intéressant car la route est alors vue d'un point relativement haut. Une telle configuration avec prise de vue du visage du conducteur et de la route vers l'avant à partir du rétroviseur est représenté sur la figure 36.
On peut donc profiter de la présence de ces moyens de prise de vue dans le rétroviseur pour simplifier le traitement des vues en n'utilisant qu'un seul dispositif selon l'invention pour assurer toutes les fonctions de sécurité souhaitées en relation avec une prise de vue vers l'avant et avec la détection de l'endormissement. A cette fin, le dispositif perçoit une image qui correspond à la figure 37 avec sur la partie gauche le visage et sur la partie droite la route à l'avant. Un tel résultat peut être obtenu d'une manière simplifiée avec un seul transducteur 2a de type caméra et un moyen de réflexion de renvoi optique soit pour la route, soit pour le visage. Sur la Figure 38, c'est la dernière configuration qui est représentée avec renvoi pour le visage avec un prisme réflecteur 180° qui permet de renvoyer sur une première partie du transducteur (caméra) le visage, l'autre partie du transducteur recevant directement la route. Des moyens de mise au point permettent la mise au point rapprochée sur le visage d'une part, et la mise au point lointaine pour la route. En alternative, deux transducteurs 2a peuvent être utilisés comme représentés sur la figure 39. Dans ce dernier cas, les transducteurs sont de préférence synchronisés entre eux afin de faciliter le traitement des deux images reçues séparément. APPLICATION A LA SURVEILLANCE DE SCENE Dans cette application, les objets pouvant se trouver dans le lieu capté par le transducteur n'ont pas de propriétés entre-eux ou de relations avec l'horizon connues à priori autre que la perspective. On s'attachera donc dans un premier temps à déterminer l'horizon du lieu observé par le transducteur et c'est relativement à cet horizon que les objets vus en perspective dans le lieu seront repérés. On changera ensuite de référentiel pour faciliter l'analyse et pouvoir mieux positionner les objets les un par rapport aux autres et notamment les objets mobiles dans la scène. La figure 48 montre une image d'un lieu (sur les figures 48 et 49 les images sont stylisées pour simplifier la
reproduction des figures, en réalité les images sont en niveaux de gris ou en couleurs) obtenu par un transducteur qui est une caméra. Ce lieu est une place dans une ville qui comporte des emplacements de stationnement repérés par des lignes au sol et qui est entourée de bâtiments. Des piétons ou des automobiles peuvent se déplacer dans ledit lieu. On détermine sur l'image (référentiel orthonormé de la caméra x, y) des bords orientés et plus particulièrement deux comme représenté (ou plus de deux) groupes d'au moins deux ou plus (de préférence trois comme représenté afin d'augmenter la robustesse tout en limitant les calculs) bords orientés présentant des caractéristiques particulières : les bords de chaque groupe ont des orientations voisines et des variations d'orientation de bord faible ou nulles (ce sont des droites ou quasi-droites) et entre au moins deux groupes les orientations générales sont très différentes, par exemple sensiblement perpendiculaires. Du fait de la perspective des objets sur les images, les trois lignes portées par les bords déterminés de chaque groupe se croisent en un premier point Fo (x0, yO) et un second point F-i (x1 , y1 ). La ligne virtuelle passant par les deux points Fo et F est considérée comme étant la ligne d'horizon du lieu. La figure 49 représente toujours la même image que celle de la figure 48 mais après rotation pour mise à l'horizontale de la ligne d'horizon. On défini un référentiel u,v orthonormé dont l'un des axes, l'axe u en l'espèce, est porté par la ligne d'horizon et l'autre axe, v en l'espèce, passe par le centre optique de l'image. L'origine du référentiel u,v est donc le croisement de l'horizon avec la droite passant par le centre optique. Par des formules de calcul de changement de référentiel et de rotation déjà vus et expliqué en relation avec les figures 24 à 27, on peut calculer dans le repère u,v les équations des bords et les droites portées par ces bords qui se croisent effectivement sur les deux points F
0 et Fi et qui servirons à une représentation simplifiée de la scène. Ces
équations sont du type u=b0(βu/βv)v+b1 βu pour H 1 et u=cO(βu/βv)v+d βu pour V1. Les droites H1 et V1 étant perpendiculaires entre-elles, le produit des pentes b1 et d est égal à moins un. A partir de ce repère u,v lié à l'horizon, on peut effectuer une autre transformation de référentiel pour passer dans une représentation horizontale vue de dessus de la scène avec les bords précédemment considérés du lieu comme représenté sur la figure 50. Les lignes portées par les bords considérés et référencées V1 et H1 sont repérées sur les deux figures 49 et 50. L'origine du référentiel orthonormé de la figure 50 est la caméra. La figure 50 constitue la reconstruction de la scène à l'aide de la méthode décrite en relation avec les figures 25 et 26 à partir de résultats concernant les zones déterminées contenant les bords considérés (dimension de zone, orientation...) par perception du contexte de la scène. Dans des étapes ultérieures, des recherches d'objets présentant des caractéristiques particulières (forme, couleur, mouvement... ) peuvent être effectuées et ces objets replacés sur la représentation à l'horizontale du lieu. C'est ainsi que figure 51 on a représenté le trajet d'un objet mobile au sein de cette représentation horizontale du lieu (déplacement dans un contexte connu). On comprend que le système à modules STN selon les modalités de mise en œuvre précédemment expliquées pour la détermination de bords orientés présentant des caractéristiques particulières (ici les bords utiles à la détermination des points portant la ligne d'horizon: bords de variation d'orientation faible ou nulle, d'orientation voisine pour ceux d'un groupe, d'orientations différentes pour des groupes différents) permet une réalisation simple et élégante. De plus, la détection et l'incorporation par synthèse d'objet (ou transformation de repère limitée à l'objet sur l'image) sur la représentation horizontale est simple puisque l'on peut
percevoir des objets de caractéristiques particulières en fonction d'un paramètre d'entrée d'un module STN (vitesse pour détecter un objet mobile par exemple) et combiner les paramètres (et éventuellement rétroannotations) pour affiner la détection. Ainsi, outre l'utilisation d u paramètre vitesse qui permet de déterminer des objets mobiles, on peut utiliser une sélection de forme et/ou de taille particulière d'objet (par exemple : un humain bipède est une forme plus haute que large, un quadrupède de type chien plus long que haut, un véhicule possède des formes arrondies que sont les roues... ) qui seront sélectionnés par des modules STN recherchant des objets mobiles ayant de tels critères. APPLICATION A LA DETERMINATION DE LA DISTORSION OPTIQUE GEOMETRIQUE Les moyens d'acquisition de scènes de type appareil photographique ou caméra vidéo, voire même les appareils de numérisation d'images ou textes papier comme les imageurs, numériseurs informatiques ou les photocopieuses numériques, mettent en œuvre des capteurs permettant de convertir des informations lumineuses (photons) en signaux électriques ainsi que des moyens optiques à type de lentilles simples ou complexes, actives (par exemple à variation de focale et/ou, éventuellement, de diaphragme optique) ou passive (notamment focale fixe). Malgré les progrès en optique, ces moyens optiques que l'on nomme ici d'une manière générique « objectifs », présentent des défauts plus ou moins importants selon leur qualité et entraînant des déformations, ici appelées distorsions, des images acquises par rapport à la scène initiale. On s'intéresse ici plus particulièrement à la distorsion géométrique qui, selon son sens, est qualifiée de distorsion en barillet ou en coussinet. Ce type de distorsion est surtout présent sur les cotés de l'image et déforme les lignes droites des scènes en courbes incurvées, concaves ou convexes selon le cas, vers le bord des images.
Or, outre l'aspect esthétique, les images ainsi acquises peuvent être utilisées pour effectuer des analyses de scène, servir à des calculs (analyse d'environnement routier, calcul de surfaces agricoles par exemple) et on comprend alors que de telles distorsions géométriques puissent entraîner des erreurs dans les résultats correspondants. Il est donc utile de pouvoir les corriger. Par ailleurs, un moyen de correction de la distorsion géométrique peut permettre l'utilisation d'objectifs de qualité moyenne dans des appareils de prise de vue numérique et donc de coût bien moindre que des objectifs de haute qualité à très faible distorsion géométrique, la correction s'effectuant alors numériquement. On propose donc un moyen de détermination et correction de la distorsion géométrique en barillet ou coussinet qui fait application du procédé (ou un système selon le cas) automatisé de perception pour la détermination et caractérisation de bords orientés d'objets d'un espace analysé, l'espace avec ses objets étant matérialisé par des signaux électriques évoluant dans le temps sous forme de séquences organisées en sous séquences de données de type vidéo ou équivalent. L'application à la correction de la distorsion optique géométrique est basée sur le fait que l'on peut modéliser mathématiquement la distorsion géométrique et que, en coordonnées polaires et par rapport au centre optique de l'objectif sur l'image de la scène, la correction de position Δ à apporter à chaque pixel de l'image numérisée est de la forme Δ = Ep
3 en coordonnées polaires. En d'autres termes, la correction à apporter au pixel P(x, y) considéré de l'image par rapport au centre optique est proportionnelle à un coefficient E de distorsion et au cube du module p définissant la position du pixel P(x, y) par rapport au centre optique (x
0, yo). On détermine à cette fin sur une image d'une scène comportant au moins un objet structuré visuellement par des lignes de bords au moins une ligne de bord d'un objet de l'image et sur
laquelle on peut trouver au moins trois points répartis à distance les uns des autres le long de ladite ligne de bord, la ligne est choisie comme étant parmi les plus longues et les plus éloignées du centre optique (sans toutefois passer par le centre optique) et, par exemple, une ligne proche d'un bord de l'image et orientée globalement sensiblement parallèlement audit bord de l'image, puis on calcule dans un premier temps la valeur du coefficient E par un processus itératif de correction de position des points puis dans un second temps le centre optique (x
0, yo) par un processus itératif de déplacement de la position du centre optique et correction de position desdits points. On peut alors utiliser les paramètres de correction: E, coefficient de distorsion, et (xo, y
0), position du centre optique, obtenus pour corriger les positions des pixels des images. Le centre optique n'étant pas connu à priori, on effectue ces calculs initialement par rapport au point central de l'image qui est une estimation de la position du centre optique. Si on dispose d'un autre moyen d'estimation du centre optique à priori, on pourra prendre cette estimation comme position initiale pour les calculs. Pour effectuer la détermination puis la correction on met en œuvre un système à modules STN qui est programmé aussi bien structurellement (relations entre modules) que fonctionnellement (notamment paramètres et rétroannotations traitées). On a représenté sur la figure 42 la détermination sur une image d'une ligne (A) dans une zone Z
0 comme étant un bord orienté d'un objet et de trois points répartis sur la ligne ainsi que le déplacement D des points par calcul de valeurs de déplacement Δi , Δ
2, Δ
3 à partir des valeurs de modules p1 , p2, p3 par rapport à un centre optique (estimé ou calculé) Oxo.yo aboutissant à une première ligne virtuelle (C) en petits pointillés dans le cas d'un déplacement excessif (ligne courbée du bas) obtenu au cours d'une itération et une seconde ligne virtuelle (B) en pointillés fins dans le cas d'un
déplacement correct (ligne droite) en fin d'itération. Les trois points de la ligne correspondent à des barycentres de sous- zones Zi , Z
2, Z
3 déterminées dans la zone Zo contenant la ligne. Des modules STN sont mis en œuvre d'une manière progressive par recrutement depuis une résolution faible permettant de déterminer une grande zone Zo contenant une ligne d'une certaine courbure puis, ensuite, à l'intérieur de cette zone Z
0 des zones plus petites Z1 , Z
2, Z
3 encadrant des portions de la ligne et dont les barycentres sont les points répartis sur la ligne et qui servent aux calculs. Ces points répartis correspondants aux barycentres sont repérés en coordonnées polaires par rapport à un point de référence Oxo.yo par leurs modules pi, p
2, P
3. Avec le coefficient de distorsion E, il est possible de calculer les déplacements Δ
1, Δ
2, Δ
3 des points de la ligne (barycentres) et de vérifier si les points déplacés sont alignés ou non avec un test sur un indice d'alignement. On a représenté sur la figure 45 une modalité de détermination d'un indice d'alignement pour trois points par comparaison (différence absolue) des pentes P1 et P2 de deux droites joignant deux à deux les trois points déplacés et ayant le point central en commun, soit respectivement les deux droites (x' 1 , y'1 )-(x'2,y'2) de pente P1 et (x'2, y'2)- (x'3,y'3) de pente P2. L'indice d'alignement I correspond à la valeur absolue de la différence des pentes P1 et P2 des deux droites, soit l=|P1 -P2|, avec P1 =(y'ι-y'
2)/(x'ι-x'
2) et P2=(y'
2- y'
3)/(χ'
2-χ'3). Un premier procédé simple de détermination du coefficient E et du centre optique, mais de convergence lente (une itération sur la valeur du coefficient E par séquence ou trame), est explicité par la figure 43 avec une association de trois modules STN du type de celle de la figure 18 et avec deux histogrammes, figures 43a et 43b, donnant la répartition (nombre de pixels) des orientations de bord dans la zone
déterminée par l'association de modules. On considère cette fois que l'on applique d'une itération à l'autre (en pratique une séquence ou trame par itération) le coefficient de correction E à la zone (ou l'image comme on le verra ultérieurement avec les figures 46 et 47) pour déplacement des points de la zone et on analyse les variations de l'histogramme. L'histogramme figure 43a, est relativement large avec une ligne de bord orienté dont les orientations de points se répartissent entre α
a et αb, cette ligne correspond par exemple à la ligne déterminée dans la zone Zo (image initiale ou après déjà un déplacement mais insuffisant ou excessif des points). Après une séquence avec application d'un coefficient de correction E de valeur permettant un déplacement correct, l'histogramme de la zone contenant la ligne, figure 43b, s'est resserré et son amplitude maximale RMAX a augmenté (le nombre de points NBPTS est sensiblement constant d'une séquence à l'autre sauf rupture dans la prise de vue). On peut donc définir un critère d'arrêt d'itération lié à l'amplitude maximale de l'histogramme et éviter d'avoir à calculer explicitement les déplacements de points et des indices d'alignement des points déplacés. Ainsi, figure 43, les trois modules STN 15, 16, 17 permettent de verrouiller une ligne constituant un bord orienté dont les variations d'orientation sont choisies faibles (de préférence non complètement nulles sinon la ligne serait déjà une droite) et donc une ligne légèrement courbée. On aura pris soin de sélectionner ce bord selon les critères utiles à la phase de calcul considérée (éloigné du centre de l'image / proche d'un bord de l'image et d'orientation générale adéquate). Cette zone Zo contenant un bord orienté présentant certains critères peut provenir de l'analyse de l'image dans sa totalité ou, le plus habituellement, sur une partie de cette image correspondant à une zone déjà déterminée (par exemple une zone de couleur spécifique ou
d'emplacement spécifique, notamment proche d'un bord de l'image). Cette ligne est dans la zone Zo et son orientation générale de bord α
0. On modifie itérativement, d'une séquence à la suivante le coefficient E qui sert à la correction de l'image comme on le verra avec les figures 46 et 47, pour obtenir une augmentation de RMAX sur l'histogramme de répartition des orientations de bords jusqu'à ce qu'un seuil soit dépassé pour RMAX. La boucle logicielle suivante donnée à titre d'exemple permet de déterminer par itération E à partir d'une zone déjà repérée et contenant un bord ayant les critères nécessaires à la phase de calcul: a - première séquence : " E
= Einit, - correction de l'image avec E, - construction de l'histogramme, - lecture de RMAX, b - séquence suivante : - incrémentation de E - correction de l'image avec E incrémenté, - construction de l'histogramme, - lecture de RMAX, - si RMAX courant (RMAX
T) est supérieur à RMAX de la précédente séquence (RMAX
T-ι) alors retour en b, sinon passe en c c - séquence suivante : - décrémentation de E - correction de l'image avec E décrémenté, - construction de l'histogramme, - lecture de RMAX, - si RMAX courant (RMAX
T) est supérieur à RMAX de la précédente séquence (RMAX
T-ι) alors retour en c, sinon passe en d d - test de boucle
- si premier passage, repasse en b, sinon sortie avec valeur courante de E. Dans une variante on peut, en plus, modifier la valeur d'incrémentation/décrémentation de E lors du test de boucle pour affiner le résultat: les premiers incréments et décréments étant relativement importants et réduits progressivement lorsque l'on se rapproche de la valeur E pour une correction (déplacement) correcte. Le test de fin de boucle sera adapté en conséquence. On doit noter qu'à la place de RMAX, on peut considérer le rapport NBPTS/RMAX qui cette fois diminue lorsque l'on se rapproche de la solution et est invariant par rapport à la dimension de la ligne considérée. Cela évite les effets d'une variation de NBPTS d'une séquence à l'autre (variations toutefois généralement faibles). On adapte alors les procédures et programmes précédents en tenant compte de l'inversion du sens de la variation du rapport NBPTS/RMAX par rapport au sens de la variation de RMAX. La boucle logicielle a été présentée pour la détermination de E. Elle est toutefois transposable à la détermination du centre optique en modifiant itérativement, dans un premier temps, Xo pour un bord selon une première direction parallèle à l'un des axes du référentiel x,y puis, dans un deuxième temps, y
0 pour un bord selon une deuxième direction parallèle à l'autre axe du référentiel x,y. Inversement on peut commencer par modifier y
0. Ainsi, pour cette méthode simple, on a vu sur la figure 42 que la zone englobant la ligne (image ou virtuelle) a une largeur qui varie et qui est minimale dans le cas d'un déplacement correct aboutissant à une ligne droite et donc que la forme de l'histogramme concernant cette zone sert de critère pour déterminer si le déplacement est correct ou non avec une fin d'itération lorsque l'histogramme présente un pic particulièrement étroit et haut pour la répartition angulaire. On voit donc qu'il existe un moyen particulièrement simple (test
de linéarité qui correspond ici à une analyse de l'histogramme) de déterminer si le déplacement est correct ou non grâce à l'utilisation des données d'orientation α et de variation δα d'orientation de bord comme montré en relation avec la figure 43 et où, comme représenté aux figures 46 et 47, un moyen de correction fonction de valeurs de E (coefficient de distorsion) et xo.yo (centre optique) est disposé en amont du système à modules STN qui peut donc recevoir des données corrigées ou non (en fonction des valeurs E et x
0,yo). Outre la méthode simple de détermination du coefficient de distorsion et du centre optique, présentée ci-dessus en relation avec les figures 43, 46 et 47, consistant à suivre l'évolution d'histogrammes en fonctions de valeurs de coefficient E et de position de centre optique, il est possible de mettre en œuvre une méthode explicite présentée en relation avec les figures 44 et 45 consistant à déterminer des points sur un bord, déplacer les points et calculer un indice d'alignement. La Figure 44 donne un exemple de recrutement progressif de modules STN pour déterminer une zone Z
0 dans un premier temps puis, à l'intérieur de Z
0, des zones Zi , Z
2, Z
3 telles que représentées sur la figure 42. Le premier temps correspond à la mise en œuvre des trois modules STN 15, 16, 17 de la partie haute et gauche de la Figure 44. Cette structure à trois modules STN s'apparente à celle qui a été décrite en relation avec la Figure 18. En général ce premier temps est déjà le résultat de déterminations de zones de taille supérieure (suite à une perception de niveau plus général), notamment d'une zone proche d'un bord donné d'image et/ou à distance d'un point de référence central (sélection d'une zone image particulière pour y rechercher des lignes). Les trois modules STN permettent de déterminer une zone contenant un bord orienté dont la courbure n'est pas trop importante (notamment ne formant pas un coin). Le premier
module STN 15 de préférence bilinéaire reçoit un paramètre spatial complexe correspondant aux coordonnées X,Y des pixels de l'image et produit un signal de classification Z
0(i ) correspondant à la zone Zo. Ce signal de classification Zoo.j) est envoyé sur une première entrée de rétroannotation du deuxième module STN 16 recevant en entrée un paramètre temporel d'orientation (angle) α des points des bords pour produire un signal de classification α0
(iιj) bouclant sur une entrée de rétroannotation du premier module STN 15. Afin de pouvoir considérer plus particulièrement des bords orientés formant des lignes de courbure pas trop importante, le troisième module STN 17 qui est limité à la zone Z
0 par réception en entrée de rétroannotation du signal de classification Zo(i ) du module STN 15 et qui reçoit un paramètre temporel δα de variation d'angle des points de bords, produit un signal de classification envoyé sur une seconde entrée de rétroannotation du deuxième module STN 16. Sur la droite des trois modules STN on a représenté l'histogramme de répartition des angles (orientations) des points des bords pour la zone Z0 et qui est produit par le module STN 16. La ligne trouvée dans la zone Zo ayant une courbure variant peu, le pic H
α0 est étroit entre α
a et α
b. La ligne déterminée dans la zone Z
0 présentant les caractéristiques requises (éloigné du centre de l'image / proche d'un bord de l'image et d'orientation générale adéquate), on peut, dans un deuxième temps, recruter de nouveaux modules STN par paires afin de déterminer les zones Zi , Z
2, Z
3, à l'intérieur de cette zone Z
0, ce qui correspond aux couples représentés à la partie droite de la Figure 44. Dans cet exemple, pour la détermination de trois zones à l'intérieur de Zo, on a considéré la répartition des orientations des points de bord dans Z
0 (déjà vue en relation avec l'histogramme à droite des trois modules STN 15, 16, 17) que l'on a divisée en trois avec des angles d'orientation α
a-α
c pour
et α
c-αd pour Z
2 et αc
t-α pour Z
3. Afin de mieux
rendre compte de la division en trois de la répartition angulaire d'orientation des points de bord de Zo, on a augmenté la résolution horizontale (angles) des quatre histogrammes de la partie gauche de la Figure 44 par rapport à l'histogramme de la partie haute et droite de cette même figure et qui a été commenté ci-dessus. De ces quatre histogrammes, celui du haut correspond à celui produit par le module STN 16 des trois modules STN 15, 16, 17 et, à la suite en descendant, l'histogramme suivant correspond à la zone Zi (premier couple de modules à partir du haut), puis le suivant, à celui correspondant à la zone Z
2 (deuxième couple de modules à partir du haut) et, enfin, le dernier en bas, à celui correspondant à la zone Z
3 (troisième couple de modules à partir du haut). Chacun des couples de modules STN est constitué d'un premier module STN 15 de préférence bilinéaire qui reçoit un paramètre spatial complexe correspondant aux coordonnées X,Y des pixels de l'image et produit un signal de classification Zi(j ) Z
2(i )... correspondant à la zone Zι Z
2... Ce signal de classification est envoyé sur une entrée de rétroannotation du deuxième module STN 16 du couple recevant en entrée un paramètre temporel d'orientation (angle) α des points de bord pour produire un signal de classification α
1 (iιj) α
2(iιj) ... bouclant sur une première entrée de rétroannotation du premier module STN 15 du couple. Afin de considérer plus particulièrement la zone Z
0, le premier module STN 15 du couple reçoit en entrée de rétroannotation le signal de classification Zo(i.j). La position des barycentres des zones Z
\ à Z3 ainsi déterminées est fournie par les registres des premiers modules STN 15 des couples. On peut alors utiliser ces informations pour calculer le coefficient de distorsion puis la position du centre optique. On comprend qu'il est ainsi possible de déterminer autant de zones dans Zo et donc de points (barycentres) sur la ligne de Z
0 que l'on veut par recrutement d'autant de-
couples de modules STN. On comprend également que cet exemple de mise en œuvre de couples de modules STN pour détermination des points sur la ligne est indicatif et qu'il existe d'autres manières de mettre en œuvre les modules STN pour aboutir à la détermination de lignes et de points adéquats pour l'application à la correction de la distorsion optique géométrique. C'est ainsi que l'on peut aussi mettre en œuvre des modules STN de la manière qui a été décrite en relation avec les Figures 16 et 17 avec exclusion progressive de zones (une ou plusieurs zones précédentes inhibant une recherche d'une zone suivante). On peut remarquer que les couples de modules STN correspondent à un recrutement d'un premier module STN dans le domaine spatial avec le paramètre (X,Y) et d'un second dans le domaine temporel avec le paramètre d'orientation. De même, le fait de mettre en œuvre un module STN recevant une donnée spatiale en entrée peut permettre la sélection effective de bord dans certaines zones de l'image et notamment éloignée du centre / proche d'un bord d'image et qui soit suffisamment étendue. La méthode explicite consiste à mettre en œuvre les phases et étapes suivantes :
A - dans la première phase on effectue les étapes suivantes : (initialisation) a) on attribue une valeur initiale Ej au coefficient de distorsion, (détermination de lignes et points) b) on détermine sur l'image une ligne d'un objet de la scène, ladite ligne étant choisie parmi les lignes des objets de l'image les plus longues et les plus éloignées du point d'origine de référence selon une distance projective, Tb) une étape supplémentaire entre les étapes b) et c) consistant en un test de réussite de détermination de ligne, le procédé s'arrêtant à ladite étape Tb) en cas d'impossibilité de détermination de ligne à l'étape b),
c) on détermine au moins trois points P1 (xι , yi), P2(x2, y2) , P3(X3, y3)... distincts et répartis sur ladite ligne,
Te) une étape supplémentaire entre les étapes c) et d) consistant en un test de réussite de détermination d'au moins trois points sur la ligne, avec en cas d'impossibilité de détermination d'au moins trois points, retour à l'étape b), Te') une étape supplémentaire entre les étapes c) et d) et de préférence entre les étapes Te) et d), consistant en un test de linéarité entre les trois points P1 (xι , yO, P2(x
2, y
2) , P3(x
3, y
3)... par calcul d'un indice d'alignement indiquant l'écart desdits points par rapport à un alignement sur une droite commune fictive, et, au cas où l'indice de linéarité est inférieur à un seuil, retour à l'étape b) pour détermination sur l'image d'une nouvelle ligne d'un objet de la scène, ladite nouvelle ligne n'ayant pas encore fait l'objet d'étapes, (calculs itératifs) d) on calcule en coordonnées polaires, par rapport au point d'origine de référence pour chaque point P1 (x-ι , yi), P2(x
2, y
2) , P3(x
3, y3) --- , les valeurs des modules p^ p
2, p
3... , e) on calcule en coordonnées polaires pour chaque point P1 (xι , yO, P2(x
2, y
2) , P3(x
3, ys) -- , les valeurs des déplacements correspondants Δp-i≈Ej.pi
3, Δp
2=Ej.p
2 3,
f) on déplace les points P1 (xι , yi), P2(x
2, y
2) , P3(x
3, y
3)... , considérés en référence polaire d'une distance Δpi , Δp
2, Δp
3... correspondante le long d'un axe passant par le point d'origine de référence et le point correspondant, les points déplacés étant P^X'L y'i), P2(x'
2 > y'
2) , P3(x'
3 ) y'
3)- , g) on effectue un test de linéarité entre les points déplacés P1 (x'ι , y'i), P2(x'
2, y'
2) , P3(x'
3l y'
3)... par calcul d'un indice d'alignement la indiquant l'écart desdits points déplacés par rapport à un alignement sur une droite commune fictive, - dans le cas où l'indice d'alignement la est inférieur à un seuil ε de linéarité, on garde comme coefficient de distorsion
E la dernière valeur Ei et on quitte la phase de calcul du coefficient de distorsion,
- dans le cas contraire, on modifie la valeur de Ej d'une manière telle qu'en repassant itérativement à l'étape e), (ou on peut remonter à l'étape d) au lieu de e) mais cela est moins efficace) l'indice d'alignement la finisse par diminuer,
B - dans la deuxième phase on effectue les étapes suivantes : (initialisation) h) on attribue la valeur initiale prédéfinie 0(x, y) au centre optique courant, la valeur initiale prédéfinie 0(x, y) correspondant de préférence au point central de l'image dans la matrice, (détermination de lignes et points) i) on détermine sur l'image une première ligne d'un objet de la scène, ladite première ligne étant choisie parmi les lignes des objets de l'image les plus longues et les plus éloignées du centre optique courant selon une distance projective, Ti) une étape supplémentaire entre les étapes i) et j) consistant en un test de réussite de détermination de ligne, le procédé s'arrêtant à ladite étape Ti) en cas d'impossibilité de détermination de ligne à l'étape i), j) on détermine au moins trois points P1 (xι , yi ), P2(x2, y2) , P3(x3, y3)..- distincts et répartis sur ladite première ligne, Tj) une étape supplémentaire entre les étapes j) et k) consistant en un test de réussite de détermination d'au moins trois points sur la ligne, avec en cas d'impossibilité de détermination d'au moins trois points, retour à l'étape i), Tj') une étape supplémentaire entre les étapes j) et k) et de préférence entre les étapes Tj) et k), consistant en un test de linéarité entre les trois points P1 (Xι , yO, P2(x2, y2) , P3(x3, y3)... par calcul d'un indice d'alignement indiquant l'écart desdits points par rapport à un alignement sur une droite commune fictive, et, au cas où l'indice de linéarité est inférieur à un seuil, retour à l'étape i) pour détermination sur
l'image d'une nouvelle ligne d'un objet de la scène, ladite nouvelle ligne n'ayant pas encore fait l'objet d'étapes, k) on détermine sur l'image une seconde ligne d'un objet de la scène, ladite seconde ligne étant choisie parmi les lignes des objets de l'image les plus longues et les plus éloignées du centre optique courant selon une distance projective, lesdites première et seconde lignes ayant en outre des directions se croisant, les directions étant de préférence sensiblement perpendiculaires entre-elles, de préférence les pentes des lignes étant assimilées aux directions,
Tk) une étape supplémentaire entre les étapes k) et I) consistant en un test de réussite de détermination de ligne, le procédé s'arrêtant à ladite étape Tk) en cas d'impossibilité de détermination de ligne à l'étape k), I) on détermine au moins trois points Pa(xa, ya), Pb(xb, yb) , Pc(xc, yc)--- distincts et répartis sur ladite seconde ligne, la première ligne étant moins inclinée que la seconde ligne par rapport à un premier axe, X ou Y, que par rapport à un second axe, Y ou X, des deux axes référentiels X, Y de la matrice,
TI) une étape supplémentaire entre les étapes I) et m) consistant en un test de réussite de détermination d'au moins trois points sur la ligne, avec en cas d'impossibilité de détermination d'au moins trois points, retour à l'étape k), TI') une étape supplémentaire entre les étapes I) et m), de préférence entre les étapes TI) et m), consistant en un test de linéarité entre les trois points Pa(xa, ya), Pb(xb, y ) , Pc(xc, yc) ... par calcul d'un indice d'alignement indiquant l'écart desdits points par rapport à un alignement sur une droite commune fictive, et, au cas où l'indice de linéarité est inférieur à un seuil, retour à l'étape k) pour détermination sur l'image d'une nouvelle ligne d'un objet de la scène, ladite nouvelle ligne n'ayant pas encore fait l'objet d'étapes, * pour une première coordonnée du centre optique :
(calculs itératifs) m) on calcule en coordonnées polaires, par rapport au centre optique courant 0(x, y), pour chaque point P1 (xι , yi) , P2(x2, y2) , P3(X3, y3)--- , les valeurs des modules pi , p2, P3--. , n) on calcule en coordonnées polaires pour chaque point P1 (xι , yi), P2(x2, y2) , P3(x3, y3)--- , les valeurs des déplacements correspondants Δpi ≈E.pi3, Δp2=E.p2 3, Δp3=E.p33.-- , E étant le coefficient de distorsion obtenu à la première phase, o) on déplace les points P1 (xι , yi ), P2(x2, y2) , P3(x3, y3)... considérés en référence polaire, d'une distance Δpi , Δp2, Δp3... correspondante selon un axe passant par le centre optique courant 0(x, y) de l'image et le point correspondant, les points déplacés étant P1 (x'ι , y'i), P2(x'2, y'2) , P3(x'3, y'3) ... , p) on effectue un test de linéarité entre les points déplacés P1 (x'ι , y' , P2(x'2, y'2) , P3(x'3, y'3) ... par calcul d'un premier indice d'alignement lai indiquant l'écart desdits points déplacés par rapport à un alignement sur une droite commune fictive,
- dans le cas où l'indice d'alignement lai est inférieur à un seuil ε' de linéarité, on garde la première coordonnée yσ ou x0 sur le second axe pour la position courante 0(x, y) et on passe à l'étape suivante, - dans le cas contraire, on déplace le centre optique courant 0(x, y) parallèlement au second axe, Y ou X, et on repasse à l'étape m) de manière à ce qu'itérativement l'indice d'alignement lai finisse par diminuer, * pour la seconde coordonnée du centre optique : (calculs itératifs) q) on calcule en coordonnées polaires, par rapport au centre optique courant 0(x, y) avec la première coordonnée calculée précédemment, pour chaque point Pa(xa, ya), Pb(xb, yb) , Pc(xc, yc) .- , les valeurs des modules pa, pb, ρc -- ,
r) on calcule en coordonnées polaires pour chaque point Pa(xa, ya), Pb(Xb, yb) , Pc(xc, yc) -- , les valeurs des déplacements correspondants Δpa=E.pa , Δpb=E.pb , Δpc≈E.pc 3... , E étant le coefficient de distorsion obtenu à la première phase, s) on déplace les points Pa(xa, ya), Pb(Xb, y ) , Pc(xc, y )--- considérés en référence polaire, d'une distance ΔPa, ΔPb, Δpc... correspondante selon un axe passant par le centre optique courant 0(x, y) de l'image et le point correspondant, les points déplacés étant Pa(x'a, y'a), Pb(x'b, y'b) , Pc(x'c, yO)- , t) on effectue un test de linéarité entre les points déplacés Pa(x'a, y'a), Pb(x'b, y'b) , Pc(x'c, yO)--- , par calcul d'un second indice d'alignement la2 indiquant l'écart desdits points déplacés par rapport à un alignement sur une droite commune fictive,
- dans le cas où l'indice d'alignement la2 est inférieur à un seuil ε" de linéarité, on garde la seconde coordonnée xo ou y0 sur le premier axe pour la position courante 0(x, y), - dans le cas contraire, on déplace le centre optique courant 0(x, y) parallèlement au premier axe, X ou Y, et on repasse à l'étape q) de manière à ce qu'itérativement l'indice d'alignement la2 finisse par diminuer, C - dans une troisième phase, dite phase de correction, on corrige la distorsion par déplacement de chacun des pixels P(x, y) de l'image selon la valeur Δ correspondante sur un axe passant par ledit pixel et le centre optique (x0, yo), Δ étant calculé avec la valeur E du coefficient de distorsion obtenu à la première phase et le centre optique (xo, yo) obtenu à la deuxième phase. La première phase et/ou la deuxième phase peuvent être également exécutée d'une manière globalement itérative afin d'affiner les résultats : à la fin de la deuxième phase on pourra repasser à la première en utilisant la position déterminée du centre optique pour calculer à nouveau le
coefficient de distorsion puis, éventuellement, repasser en deuxième phase pour affiner la position du centre optique et, ensuite, éventuellement recommencer. On se trouve alors avec une hiérarchie d'itérations: les phases mettent en œuvre des itérations et on itère les phases. On disposera donc de tests supplémentaires destinés à de tels bouclages itératifs globaux avec, par exemple, itération tant qu'un résultat (coefficient de distorsion ou position du centre optique) varie de façon significative d'un cycle itératif global au suivant. On peut également prévoir une limitation du nombre de répétition de cycles itératifs globaux au cas où l'on serait dans des conditions telles qu'il y aurait variation significative persistante au cours des cycles itératifs globaux. On peut noter dans le procédé décrit, que l'on détermine d'abord le coefficient de distorsion puis ensuite le centre optique. Au cours des étapes on utilise un point de référence, notamment lorsque l'on recherche des lignes qui soient parmi les plus longues et les plus éloignées d'un tel point de référence qui est pris préférence central à l'image ou sensiblement central. Ce point de référence est préféré central car il est une bonne estimation initiale du centre optique. On comprend alors que ce point de référence puisse évoluer en fonction des résultats de la détermination de la distorsion et du centre optique en cas d'itération pour affinement de ladite détermination : au premier passage on utilise le point central de l'image puis lors des passages ultérieurs, on utilise le centre optique déterminé juste précédemment. D'une manière équivalente, mais qui évite d'avoir à utiliser un point de référence (central) pour la détermination des lignes, on peut aussi considérer les lignes proches de bords de l'image et dont la pente est faible et l'orientation sensiblement globalement parallèle au bord d'image considéré (par recherche de bords orientés sensiblement
droits d'orientations particulières dans une zone particulière donc fonction des valeurs des paramètres X,Y). De même, dans certaines étapes du procédé, on doit considérer deux lignes qui sont, de préférence, perpendiculaires (ou voisine de la perpendicularité) entre elles. Pour déterminer de telles lignes, on peut utiliser les pentes des lignes (rapport des pentes par exemple) aussi bien que les directions des lignes (angle de croisement des directions), ces notions étant considérées comme des équivalentes dans le contexte de cette détermination. On a vu que lors des itérations on doit parvenir à obtenir un alignement plus ou moins parfait (selon un seuil de linéarité) sur une droite (fictive) des points déplacés. Pour déterminer les modifications, soit du coefficient de distorsion Ej à chaque itération, soit de la position du centre optique courant à chaque itération, selon la phase considérée, on peut appliquer le principe suivant: si les points déplacés se retrouvent sur une ligne (fictive) plus concave par rapport au centre de l'image (ou centre optique), soit on considère que E, est trop petit (il faut donc l'augmenter à l'itération suivante), soit que le centre optique courant est trop proche de la ligne (il faut donc l'éloigner à l'itération suivante). Dans le cas où les points déplacés se retrouvent sur une ligne plus convexe par rapport au centre de l'image (ou centre optique), les modifications sont inversées. De préférence, les modifications de Ej ou de la position du centre optique courant sont effectuées par pas constants à chaque itération afin de simplifier le procédé. Toutefois dans une version plus évoluée, on peut adapter le pas à chaque itération par un calcul estimatif de la correction de pas à effectuer. De préférence, certaines des étapes précédentes pouvant être réitérées, on fixe une limite au nombre de retours possibles pour chacune des étapes Tb, Tb', Ti, Ti', Tk, Tk' afin d'éviter des recherches trop longues. De même, on peut fixer un seuil d'application SΔ de la correction, la
correction n'étant effectuée dans la troisième phase, dite phase de correction, que pour des valeurs de Δ supérieures au seuil d'application SΔ. En alternative à la variante précédente, on peut même éviter de calculer Δ pour certains des pixels de l'image en délimitant une zone autour du centre optique et fonction du seuil d'application et des valeurs E et ( o, yo), zone dans laquelle un tel calcul n'est pas nécessaire car il n'y a pas besoin de correction (Δ inférieur au seuil d'application). On a indiqué un certain nombre de tests afin d'éviter des calculs si, par exemple, les points déterminés de la ligne considérée sont suffisamment alignés sur l'image initiale censée présenter une distorsion, c'est-à-dire que la ligne est droite ou pratiquement droite. Il peut cependant être utile d'effectuer les calculs de détermination de la distorsion, ne serait-ce que pour déterminer le centre optique du système même si les lignes de bords orientés utiles (éloignées du centre/proche d'un bord image et suffisamment longues) sont initialement toutes droites et l'image sans distorsion. Les tests en questions peuvent donc être omis dans ce cas. On peut noter qu'en ce qui concerne la troisième phase dite de correction, le procédé direct qui consiste à partir de l'image avec distorsion pour produire l'image corrigée peut conduire à une image corrigée présentant des « trous » : zones de pixels ou pixels manquants. Il peut alors être utile de mettre en œuvre des interpolation afin de combler ces « trous ». On peut également utiliser un procédé indirect qui considère la position des pixels dans la mémoire d'image corrigée pour déterminer leurs valeurs en remontant à l'image avec distorsion par mise en œuvre d'une fonction inverse de celle de la méthode directe en utilisant les résultats de coefficient et de centre optique déterminés. On a donc vu que la méthode explicite telle que décrite en relation avec la Figure 44 nécessite des calculs de droites et tests d'alignement entre au moins trois points aussi bien
pour détermination de E puis ensuite du centre optique, voire aussi avec de nouvelles itérations pour affinage des résultats, ce qui est relativement lourd du point de vue calcul. Il peut donc être préférable de mettre en œuvre pour cette application à la correction de distorsion optique géométrique, la méthode simplifié limitant les calculs en s'intéressant aux histogrammes produits quant on calcule une image (ou une zone contenant la ligne) corrigée en modifiant la valeur de E (ou du centre optique selon la phase) d'une trame à l'autre pour obtenir un histogramme qui soit le plus étroit possible, soit un rapport NBPTS/RMAX le plus petit possible ou un RMAX le plus grand possible comme on l'a vu en relation avec la figure 43. Il est également possible de combiner/panacher les deux méthodes précédentes (recrutement de couples de modules STN et calculs de déplacement des barycentres et tests d'alignement ou correction et analyse du rapport NBPTS/RMAX ou de RMAX): l'une pour E, l'autre pour le centre optique ou inversement, voire l'une pour dégrossissage (premières déterminations de E et du centre optique) et l'autre pour affinage (répétition des itérations de détermination). Pour une mise en œuvre pratique, le dispositif représenté à la Figure 46 peut être utilisé. De la partie gauche de la Figure 46 à la partie droite on a représenté :
- un objectif à focale variable réglable,
- un capteur ou transducteur permettant d'obtenir des images sous forme de signaux avec séquences et sous séquences de données (notamment du type vidéo), - un dispositif de correction de la distorsion (effectuant (a correction proprement dite en déplaçant les points de l'image si nécessaire) en fonction d'une valeur E de coefficient de distorsion et d'une position de centre optique xO, yO,
- un système à modules STN permettant de caractériser spatialement et temporellement les données et comportant
des modules STN programmables, ledit système étant destiné à déterminer la valeur E du coefficient de distorsion et la position de centre optique xO, yO. Le système à modules STN produit dynamiquement les paramètres de correction par calcul continu sur les images (fixes ou mobiles) arrivant et véhiculées par le signal de données sortant du dispositif de correction. Ce dispositif est particulièrement adapté à la mise en œuvre de la méthode simplifiée de détermination itérative des paramètres de correction E et xO, yO puisqu'elle permet de fournir une image corrigée (plus ou moins selon les E et xo.yo fournis) au système à modules STN. De préférence, dans cette configuration, on ne recalcule les paramètres de correction E et xO, yO que lorsqu'une distorsion est déterminée (notamment en effectuant un test de linéarité sur des lignes de bordure d'image) et, en l'absence de distorsion, les paramètres de correction précédemment calculés sont conservés. En effet, sinon, le système à module STN recevant un signal vidéo corrigé correctement produirait des valeurs de paramètres de correction invalides (correspondant à une absence de correction à effectuer) qu'il renverrait dans le dispositif de correction qui sortirait alors un signal vidéo avec distorsion, d'où instabilité de la qualité du signal vidéo. Dans une variante non représentée, il peut être utile lorsque les paramètres de correction E et xO, yO doivent être recalculés, de le faire à partir du signal venant directement du capteur ou, alors, en sortie du dispositif de correction mais sans correction (les paramètres de correction étant tels qu'il n'y a pas de correction ou un signal spécifique inhibant la correction), afin de repartir du signal capteur brut. Dans ce dernier cas, lorsque le système à modules STN détecte qu'il est nécessaire de recalculer de nouveaux paramètres de correction, il peut dans un premier temps forcer les valeurs des paramètres envoyés au dispositif de correction pour
obtenir une absence de correction et ensuite faire le calcul des paramètres de correction à partir de l'image non corrigée reçue. En alternative le système à modules STN peut calculer les nouveaux paramètres de correction en fonction des précédents pour obtenir une correction adéquate (tenant compte de la correction courant de l'image corrigée reçue) du signal. En effet, dans le cas contraire, une instabilité de la correction pourrait se produire car les paramètres de correction seraient calculés sur un signal déjà corrigé mais insuffisamment ou mal. On comprend qu'initialement, avant que les paramètres de correction aient été déterminés, le signal de sortie du dispositif de correction est identique au signal de sortie du capteur. II est possible, dans une variante, que les paramètres de correction soient calculés seulement lors d'opérations d'étalonnage puis mémorisés, notamment sur une scène correspondant à une mire, et qu'ils soient utilisés ultérieurement par le dispositif de correction sans recalcul dynamique par le système à modules STN des paramètres pour chaque image lorsque cela est nécessaire. Dans un tel cas, si l'objectif du moyen d'acquisition de scènes peut être dans plusieurs états (par exemple variation de focale et/ou d'ouverture de diaphragme), il est préférable d'effectuer des étalonnages pour chacun (ou une partie) de ces états pour obtenir autant de paramètres de correction que d'états puis, pour la correction utiliser les paramètres mémorisés correspondant à l'état courant de l'objectif. Ce n'est que si la variation de distorsion géométrique est insignifiante en fonction des variations des états de l'objectif que l'on pourra se contenter que d'une valeur mémorisée pour respectivement le coefficient de distorsion et le centre optique. De même, il se peut que pour l'objectif mis en œuvre, le centre optique reste constant malgré les variations d'état de l'objectif, on a alors intérêt à éviter de recalculer à chaque fois
(dynamiquement ou lors d'un nouvel étalonnage) la position du centre optique. La Figure 46 représente un dispositif dans lequel l'objectif présente plusieurs états par variation de focale (commande de réglage de focale agissant sur l'objectif). On a vu que la correction peut s'effectuer dynamiquement (chaque fois que cela est nécessaire) ou utiliser des paramètres de correction mémorisés obtenus suite à un étalonnage préalable du dispositif. Dans ce dernier cas, comme déjà expliqué, on a intérêt à tenir compte des états de l'objectif à la fois lors de l'étalonnage et pour les corrections ultérieures. La Figure 47 représente un dispositif équivalent à celui de la figure 46 mais dans lequel l'objectif est associé au capteur dans un appareil commun. L'objectif ne peut être que dans un seul état ou s'il a plusieurs états, ces derniers ne sont pas réglables et connus du système à modules STN. L'appareil est, par exemple un caméscope, qui produit un signal vidéo. En alternative du caméscope, l'appareil peut être un magnétoscope, lecteur de DVD (plus généralement un lecteur de données vidéo obtenues par un moyen comportant un transducteur avec objectif) ayant enregistré des images obtenues par un caméscope ou autre. APPLICATION A LA STABILISATION D'IMAGES Le bougé sur images vidéo qui est corrigé grâce à l'application de la détermination et caractérisation de bord orientés est considéré comme ayant une composante de rotation et une composante de translation d'une image à la suivante. L'application de correction basée sur l'invention va donc déterminer dans un premier temps chacune de ces composantes. Comme pour de nombreuses applications de l'invention, on verra que cette dernière peut être mise en œuvre concrètement de diverses manières étant donné qu'il est possible d'obtenir des déterminations d'objets, dont des bords orientés, ayant des caractéristiques particulières, de plusieurs façon selon notamment les combinaisons
fonctionnelles de modules STN que l'on a choisi d'employer et selon l'importance des calculs annexes que l'on a choisi d'effectuer dans les moyens de calculs classiques associés (microprocesseur pour API). La figure 52 montre un moyen pour obtenir la composante rotation. A cette fin, un module STN 124 recevant en entrée de paramètre un signal α d'orientation de bord, reçoit en entrée de rétroannotation des signaux de classification de zone, de variation d'orientation de bord et de module de signal de bord pour calculer des histogrammes de répartition des orientations de bord représentés figure 53 pour celui d'une trame courante et figure 54 pour celui d'une trame précédente. Les histogrammes ainsi réalisés ne concernent que des données dont les signaux de classification envoyés en rétroannotation du module STN sont valides (correspondent à une zone d'image, une variation d'orientation et un module particuliers). Du fait de la composante en rotation du bougé, les histogrammes de répartition d'orientation sont décalés d'une image à l'autre et, en particulier, on peut prendre en compte le décalage du de la position pic d'amplitude maximale de l'histogramme (POSRMAX, RMAX) comme valeur de rotation Rot. On verra qu'il est également possible de mettre en œuvre un calcul d'une fonction de corrélation entre les histogrammes. On considère que la scène filmée est toujours la même ou varie lentement et qu'il n'y a pas eu de rupture dans le film, c'est à dire un passage d'une scène à une autre parce que, par exemple dans un film enregistré, l'opérateur a cessé de filmer une première scène puis ensuite à repris le film sur une autre scène. Si cela était le cas, la correction de bougé ne s'appliquerait pas au moment du changement de scène. Un tel changement de scène peut par exemple être déterminé par une modification importante des statistiques images ou par le résultat d'une fonction de corrélation entre deux images successives.
Toujours sur la figure 52, les signaux de classification de zone représentés comme provenant de blocs 120 à partir du paramètre X et 121 à partir du paramètre Y, les signaux de classification de variation d'orientation de bord représentés comme provenant d'un bloc 122 à partir du paramètre δα et les signaux de classification de module de signal de bord représentés comme provenant d'un bloc 123 à partir du paramètre p (module du gradient des pixels), peuvent être fournis par des unités de classification spécifiques (indépendantes de modules STN) ou provenir de sorties de classification de modules STN. Dans ce dernier cas, on comprend que les deux blocs 100 et 101 fournissant les signaux de classification de zone spatiale à partir des signaux spatiaux X et Y peuvent être soit deux modules STN monolinéaires (un pour le paramètre X, un autre pour le paramètre Y), soit un seul module STN bilinéaire recevant en paramètre d'entrée un signal bilinéaire X,Y. De même, au lieu d'envoyer quatre (ou moins selon que l'on veuille ou non limiter la détermination de la rotation à une zone spatiale ou non, c'est-à-dire prendre en compte ou non les signaux spatiaux X, Y, voire ne pas tenir compte du module p) signaux en entrée de rétroannotation du module STN 124, on peut y envoyer un seul signal mais résultant d'une sortie de classification d'une combinaison fonctionnelle de modules STN de classification combinée de zone spatiale (paramètres X et Y), de variation d'orientation (paramètre δα) et de module de bord (paramètre p). On peut, alternativement, envoyer deux signaux de classification en entrée de rétroannotation du module STN 124, le premier résultant d'une combinaison fonctionnelle de trois modules STN du type de celle de la figure 18 (pour une zone spécifique de variation d'orientation particulière) et le second de classification du module p. Sur la figure 52, les quatre signaux de classification pour rétroannotation sur le module STN 124 permettent la prise en compte (les valeurs mentionnées sont indicatives):
- d'une zone de l'image (paramètres spatiaux X,Y) comprise entre les pixels 0 et 600 pour X et 0 et 480 pour Y (blocs 120 et 121 ), il faut noter que l'on a introduit deux variables de déplacement depla pour x et pour y (deplax et deplay) afin de pouvoir éventuellement décaler la zone spatiale à considérer (notons que l'on aurait pu également utiliser deux variables pour définir la largeur de la zone selon x et selon y afin de rendre complètement paramétrable la position et la taille de la zone spatiale à considérer) - de bords orientés dont la variation d'orientation est plutôt faible, comprise entre 0 et 50 pour δα (bloc 122) dans le cas d'une valeur codée sur 10 bits, ce qui correspond à des lignes sensiblement droites, (on rappelle que pour α ou δα, ces valeurs sont à considérer que si Val-α ou Val-δα respectivement indiquent que ce sont des valeurs valides)
- de module de bord orienté de valeur relativement élevée comprise entre 300 et 1023 pour p (bloc 123), valeurs correspondant à des bords de fort contraste pour un codage des données sur 10bits (0 à 1023). On voit qu'il est ainsi possible de limiter la détermination de la rotation à une zone particulière de l'image, par exemple le centre de l'image ou dans une zone â forte densité de bord orienté. Dans ce dernier cas, les bornes de prise en compte de classification sont le résultat d'une analyse d'histogramme de répartition de bords par au moins un couple (X, Y, α) ou un triplet (X, Y, α, δα) de modules STN. De même, les autres bornes de prise en compte de classification peuvent être les résultats d'analyses concernant la répartition quantitative des bords droits, courbés et coins (en cas de faible quantité de droites ou élargira la prise en compte vers des bords plus courbés et inversement), et concernant le module p des bords (en cas de faible quantité de bords à fort modules on élargira la prise en compte vers les faibles modules et inversement).
Une fois la composante de rotation déterminée, on va calculer la composante translation en s'intéressant cette fois aux coins (variations d'orientation particulièrement élevées) des bords orientés. Cette partie est représentée sur la figure 55 avec un agencement de modules STN et la figure 56 avec les histogrammes de répartition de coins obtenus. Des signaux de classification envoyés en entrée de rétroannotation de modules STN sont mis en œuvre comme dans la détermination de la composante rotation avec zone spatiale (classification des signaux spatiaux X, Y), de variation d'orientation (classification du signal temporel δα) mais cette fois pour une gamme de valeurs élevées (1 /8 à 3/8 de 360°) correspondant à des coins (variation d'orientation de bords entre 45° et 135°), et de module de bords (classification du signal p) dans les blocs 120, 121 , 130, 131. Les diverses modalités déjà présentées (classifieurs spécifiques, modules STN, associations de modules STN... ) d'obtention de ces signaux de classification peuvent être mises en œuvre (cependant on sélectionne des coins ici, donc δα élevés). Notons qu'afin d'améliorer le traitement en ayant un nombre suffisant de coins pertinents, la borne inférieure pi de la gamme de sélection de modules p est une variable déterminée grâce à un module STN 134 en fonction du nombre de points de bords NBPTS afin de ne considérer que des points de bords présentant un fort contraste pour le paramètre ayant servi à la détermination de bords (la luminosité en l'espèce). On peut se fixer par exemple un seuil Pi qui permettra d'obtenir par exemple environ 30 coins. Encore une fois, on a introduit deux variables de déplacement depla pour x et pour y (deplax et deplay) afin de pouvoir éventuellement décaler la zone spatiale à considérer. Ces signaux de classification permettant de sélectionner une zone spatiale de coins à modules de bords de valeurs élevées, sont envoyés en entrée de rétroannotation d'un premier module STN 135 destiné à la détermination de la
translation selon l'axe X et en entrée de rétroannotation d'un second module STN 137 destiné à la détermination de la translation selon l'axe Y. Afin de tenir compte du fait qu'entre deux images successives il y a pu y avoir une rotation (composante rotation du bougé) pour l'image courante par rapport à la précédente, les paramètres spatiaux envoyés en entrée de paramètre de chacun des modules STN 133 et 134 subissent une rotation de valeur Rot déterminée précédemment en relation avec les figures 52 à 54 dans des blocs de rotation 133 et 136. Les histogrammes de répartition spatiale des coins (image et selon les axes x et y) sont représentés à la figure 56. Il suffit alors de comparer les histogrammes de répartition correspondants de l'image précédente et l'image courante selon chacun des axes, soit HX(t-1 ) avec HX(t) et HY(t-1 ) avec HY(t), pour connaître la translation selon l'axe correspondant. Comme précédemment on peut prendre en compte le décalage du pic maximum des histogrammes (POSRMAX, RMAX). On va maintenant voir qu'il est également possible de calculer une fonction de corrélation pour déterminer le décalage entre les histogrammes. Les figures 57, 58 et 59 représentent une modalité de détermination du décalage entre histogrammes par corrélation aussi bien pour la composante rotation que la composante translation. La figure 58 représente un noyau matériel 120 pour calcul de points d'une courbe de corrélation entre deux histogrammes et la figure 59 représente l'intégration du noyau matériel de la figure 58 au sein d'une unité de corrélation pour calcul d'une courbe de corrélation entre deux histogrammes ainsi que deux exemples de courbes de corrélation. L'organigramme de fonctionnement de cet ensemble est donné à la figure 57 (les crochets [] signifient un adressage indirect sur l'organigramme de la figure 57). Une première mémoire adressable permet de stocker l'histogramme h(t-1 ) en rapport avec une image précédente et
une seconde mémoire adressable l'histogramme h(t) de l'image courante (histogrammes soit de répartition des orientations de bord, soit de répartition de coins selon l'axe X, soit selon l'axe Y). De préférence, ces mémoires sont des mémoires spécifiques du noyau matériel ou, dans une variante qui présente l'inconvénient d'être plus complexe, des mémoires de modules STN qui sont modifiés en conséquence pour récupérer les données de l'histogramme et pouvoir effectuer les calculs des points de la courbe de corrélation. Par adressage des mémoires, il est possible de charger par Din les données des histogrammes et de les relire par Dout. Les données relues sont envoyées dans un multiplieur c=axb dont la sortie c est envoyée sur un accumulateur (additionneur) destiné à fournir en sortie la valeur calculée Max d'un point de la courbe de corrélation. Un moyen d'adressage permet d'introduire un déplacement d entre les données d'histogrammes ce qui permet des balayages en lecture avec décalage progressifs entre données des mémoires. Le noyau de calcul de points d'une courbe de corrélation entre deux histogrammes, outre les sonnées d'histogrammes, a besoin de la valeur d du décalage entre données mémoires, i l'indice de comptage pour balayage des mémoires, R un signal de remise à zéro de l'accumulateur et CK un signal d'horloge. Le noyau 120 de la figure 58 est intégré à l'unité de corrélation de la figure 59 qui comporte des systèmes de comptage pour les signaux d (remise à zéro par Init) et i (incrémenté par Inc d) et une mémoire de stockage des points de la courbe de corrélation. Deux exemples de courbe de corrélation calculées et telles que l'on peut les trouver dans la mémoire de points de courbe de corrélation sont représentés sur la partie droite de la figure 59 (figures 59a et 59b). La courbe du haut figure 59a représente un cas idéal où la corrélation est nette et présente un pic unique marqué (les images successives étaient identiques en dehors du bougé) et, dans ce cas, la position du pic en da
donne le décalage entre les histogrammes (rotation ou translation selon le cas). Le maximum peut être obtenu par analyse dans un module STN du signal de points de la courbe de corrélation (POSRMAX, RMAX). Dans le cas d'une courbe de corrélation moins nette et qui présente plusieurs pic et/ou un pic large peu marqué comme représenté figure 59b on peut avoir intérêt à prendre comme valeur de décalage entre histogrammes la médiane de la courbe de corrélation qui, comme précédemment, peut être déterminée par analyse dans un module STN. Dans une modalité d'application particulière, le transducteur produisant les images comporte une mémoire de prise de vue de taille supérieure aux images utiles finalement produites: le transducteur comporte un nombre M de pixels de prise de vue (par exemple 1024x1024) supérieur au nombre de pixels de l'image utile vidéo finalement envoyée ou enregistrée (par exemple 800x600). On peut également considérer d'une manière équivalente le cas d'une mémoire de calcul de stabilisation qui soit plus grande que la taille de l'image utile (le transducteur envoyant des prises de vue dans la mémoire de calcul à partir de laquelle on met en œuvre l'application). Dans ces cas, on met en œuvre une modalité de stabilisation qui consiste à déplacer (en tenant compte de la translation et rotation) une fenêtre image utile dans la mémoire de prise de vue du transducteur (ou la mémoire de calcul) pour produire l'image utile. On a représenté une telle modalité sur les Figures 60 et 61 avec, en plus, un calcul d'amortissement qui va maintenant être expliqué. Dans l'exemple d'application donné ci-dessus on a considéré deux images successives dont la courante pour les calculs. Dans une variante, on peut prendre en compte d'autres images antérieures par le biais de valeurs antérieures de rotation et de translation pour lisser la correction appliquée entre les deux images successives dont la courante. C'est ainsi que l'on peut calculer un facteur
d'amortissement tenant compte de ces valeurs antérieures, les valeurs de rotation et de translation pour la correction du bougé de l'image courante étant les valeurs de rotation et de translation déterminées entre l'image précédente et l'image courante modifiées par le facteur d'amortissement. A titre d'exemple de prise en compte de facteur d'amortissement on peut considérer une relation du type de celle qui est mise en œuvre pour lisser les images pour la paramètrisation spatio-temporelle du signal vidéo (comme dans WO98/05002). Ce type de relation est Vt=Vt.1+(Rt-V,-1)/τ avec V correspondant respectivement aux variables considérées (translation selon x ou y ou rotation), entre l'image courante (t) et l'image précédente (t-1 ) avec amortissement et R un point de référence (par exemple le centre optique pour x et y) et τ un paramètre en 2n dont on peut faire varier la valeur entre une valeur élevée lorsque l'image est sensiblement au point de référence et une valeur faible (jusqu'à 1 lorsque n prend la valeur 0) lorsque l'image s'approche par translation d'un bord de la mémoire de prise de vue (la mémoire de prise de vue est de taille supérieure à la taille de l'image). Grâce à un tel amortissement on fait en sorte d'éviter que l'image ne sorte de la mémoire de prise de vue (la correction est maximale) pour la translation. Pour ce qui est de la rotation, on fait en sorte de prendre une référence qui tend à ramener vers l'horizontale les bords qui sont sensés être horizontaux (les objets réels ont généralement des bords avec des directions préférentielles horizontales et verticales dans la réalité qui donnent des pics marqués sur des histogrammes de répartition d'orientation de bords lors d'une perception et on fait en sorte de recaler ces pics sur leurs valeurs multiples de 90° correspondantes: 0°, 90°, 180° et/ou 270°).
La figure 60 représente le résultat de ces opérations de rotation et de translation entre une image avec comme référentiel le début de la séquence. La figure 61 représente le même résultat mais ayant comme référentiel la dernière image reçue et contenant une séquence fixée d'images antérieures. De ce fait, la stabilisation des images s'opère par filtrage des composantes de translation et rotation de la séquence mémorisée, ce qui correspond à une position moyenne à l'instant tO comprise dans un espace de dimension M (espace mémoire de prise de vue du transducteur ou de la mémoire de calcul). La valeur de filtrage ou d'amortissement est choisie de telle sorte que l'image stabilisée (image utile de taille inférieure à M) soit toujours dans cet espace M. En général, l'espace M correspond à la taille de la matrice du transducteur vidéo, dépassant le méga pixel en général, la taille de l'image utile étant plus petite compte tenu du débit maximal admissible pour un signal vidéo temps réel. Ces opérations sont de préférences effectuées avec un système à modules STN. Une fois les valeurs de rotation et de translation entre images ainsi déterminées, on peut appliquer une correction directement sur les images numériques dans le transducteur, le système à modules STN ou dans une unité distincte disposée en sortie du transducteur ou autre source de signaux vidéo (d'une manière équivalente aux modalités présentées aux figures 46 et 47).
Dans une autre variante toutefois plus lourde à mettre en œuvre, des moyens électromécaniques (optique adaptable ou transducteur mobile commandé) sont commandés pour corriger le bougé optiquement et non plus purement électroniquement/numériquement comme dans les cas précédents. APPLICATION A LA CARACTERISATION DU MOUVEMENT D'UN OBJET PAR RAPPORT A UN
TRANSDUCTEUR (MESURE DE DISTANCE, TRANSLATION, ROTATION) On a indiqué dans la présentation de l'état de la technique, qu'il était possible de mettre en oeuvre des paramètres de vitesse VMVτ et de direction DMvτ de mouvement. Toutefois, la méthode de calcul de ces paramètres (notamment décrite dans WO98/05002) fait que l'on appréhende en réalité qu'une partie des mouvements relatifs possibles des objets par rapport au transducteur. En particulier la composante de mouvement vers ou en éloignement des objets par rapport au transducteur ne peut pas être déterminée par cette méthode connue. D'autre part, dans la demande de brevet FR-2.843.471 qui concerne la perception par défocalisation/refocalisation on avait montré qu'il était possible de définir une perception sous forme de liens hiérarchiques (graphe de vecteurs unissant des barycentres comme par exemple figure 63) reliant les différentes perceptions et niveaux de perception (zones perçues avec barycentres comme par exemple figure 62) d'un objet d'une scène et qui, dans un espace/référentiel particulier, donne une invariance en homothétie quelle que soit la distance à laquelle les images du même objet de la scène sont acquises par une caméra. Cet espace/référentiel particulier correspond à un espace/référentiel de perception qui a pour axes le module p,- du vecteur unissant deux barycentres de zones perçues hiérarchiquement et le logarithme de la distance LDjn entre la zone de l'objet (origine du vecteur) et la caméra. Comme on va le voir, un tel espace de perception ( ,LD), outre la mesure de distance, permet d'appréhender le mouvement relatif de l'objet en translation vers ou en éloignement par rapport au transducteur ou la rotation de l'objet sur lui-même. Il est possible d'analyser la perception hiérarchique de la scène dans cet espace de perception ( ?,LD) en y appliquant la présente invention et en y caractérisant des
bords orientés et variations d'orientation de bords. Une telle analyse peut permettre de déterminer le type de mouvement d'un objet (translation ou rotation) ou de calculer la distance de l'objet par rapport au transducteur ou, encore, de faciliter la reconnaissance notamment par rapport à des représentations antérieures dans ledit espace de perception. Par rapport à la description qui a été faite en relation avec les organigrammes des figures 6 et 7 qui traitent des données provenant d'un référentiel cartésien X,Y avec la luminance, la présente application traite des données dans un espace/référentiel de perception module-distance (p.LD) d'axes portant, pour le premier, le logarithme LD de la distance du point d'origine du vecteur et, pour le second, portant le module p des vecteurs reliant les barycentres. On appliquera donc ici les organigrammes des figures 6 et 7 dans lesquels toutefois on remplacera x par p et y par LD, L (luminosité) étant ici remplacé par un paramètre identifiant le label (par exemple une valeur numérique d'identification codée sur 8 bits). La perception de l'objet peut être en direct comme on le verra en relation avec les figures 65 et 66 ou résulter d'une perception antérieure mémorisé ou, encore, être le résultat d'un calcul (dans l'espace de perception). Les figures 62 à 64 donnent un exemple concret d'application dans le cas d'une perception entre deux niveaux de hiérarchisation pour simplifier. Figure 62, un premier niveau de perception permet de déterminer une zone générale Zo de barycentre BarZ0 puis un second niveau de perception, dans la zone Zo permet de déterminer trois zones Z10, Z20, Z30 de barycentres respectifs BarZio, Bar Z20, BarZ3o- Ces deux niveaux de perception peuvent par exemple correspondre à un processus de refocalisation comme dans la demande FR- 2.843.471 ou à une analyse plus classique hiérarchique (recrutement progressif de modules STN: le niveau ayant déterminé Z0 forçant les suivants dans ladite zone avec des
critères de sélection autres, par exemple première couleur pour Zo et autre couleur pour le niveau suivant). Cette perception se fait dans un espace cartésien X,Y. La représentation hiérarchique (graphe) de perception formée par les modules p1, p2, p3 des vecteurs reliant les barycentres déterminés (ici d'un niveau de perception au suivant) est donnée figure 63. Lors de la perception, chaque séquence ou image donne un niveau d'arbre de perception avec plusieurs modules de vecteurs p,-. Dans l'exemple de la figure 63, l'objet obj à ce moment/niveau de perception est caractérisé par trois modules p1, p2, ρ3. calculés à partir des barycentres de zones perçues (BarZ0 d'origine et BarZ10, BarZ20, BarZ3o)- Sur la figure 64, on a représenté cette fois dans l'espace de perception p, LD des points modulaires correspondant aux modules précédents p1, p2, p3 pour un niveau de perception donné mais l'objet se déplaçant par rapport au transducteur (mouvement de l'objet M0bj)- On peut voir sur la figure 64 pour plusieurs perceptions du même objet s'éloignant du transducteur que les points modulaires dans l'espace de perception se déplacent en parallèle sur des droites, la pente des droites donnant accès à un coefficient d'homothétie qui peut permettre (après un étalonnage nécessitant quelques perceptions en déplacement avec mesures de distances pour connaître l'équation des droites) lors d'une nouvelle perception sans connaissance de la distance (LD) de retrouver la distance pour cette nouvelle perception. Le coefficient d'homothétie peut également être utile à lui seul si l'on connaît à priori une dimension réelle de l'objet (par exemple pour un objet qui est une voiture, on connaît en général sa largeur réelle approximativement et à partir d'une perception par l'avant d'une voiture on pourra déterminer la distance à laquelle elle se trouve par rapport au transducteur).
A partir d'une perception ayant aboutie à une représentation de scène/objet sous forme hiérarchique et considérée cette fois dans un espace/référentiel de perception (p,LD), on applique le procédé schématisé partie droite de la figure 65 et qui dérive de l'application de l'organigramme de la figure 6 (détermination d'orientation de bord) où, au lieu du signal portant la luminosité Lum (luminosité) et x, y, on utilise à la place, un signal obj portant les paramètres p,- et LDj„ et d'identification d'objet. Pour comparaison, sur la partie gauche de la figure 65 on a représenté schématiquement l'application de l'organigramme de la figure 6 au signal portant la luminosité Lum tel que cela été vu au début de la description et on retrouve des éléments déjà décrits en relation avec les figures 1 et 2 et notamment l'unité 6B qui permet de produire les signaux temporels α et Val-α. Les systèmes de perception de gauche et celui de droite de la figure 65 mettent en œuvre une unité 6B selon l'invention. On remarque sur la figure 65 que le signal objet provient d'une perception d'un signal portant la luminosité (ou autre paramètre dans des variantes) et que cette perception stockée sous forme de LABEL identifiés portants des informations de module p, et de distance LDj„ est stockée dans une mémoire 202a dont l'écriture est synchronisée sur les trames/images (il faut un certain nombre de trames/images traitées pour obtenir des liens hiérarchiques suffisamment développés). Ces LABEL sont produits par le microprocesseur 13 du système par calcul des modules p,- et association aux valeurs de distance LDin tel que schématisé par la flèche F3 de récupération des valeurs de barycentre provenant de la perception. Dans la mémoire 202a, les LABEL identifiés d'objets sont stockés à l'adresse p,-, LD, correspondante (le signal Wr binaire permet soit l'écriture, soit la lecture).
Le système de perception de la partie gauche de la figure 65 comporte une entrée (non représentée) pour les données de distance (LDin) qui seront associées aux modules Pi. En alternative ou combinaison il est possible de récupérer ces données de distance LDjn ultérieurement comme représenté sur la partie droite de la figure 65 avec une unité 204 de production du signal LDin. Ainsi, dans le cas d'une perception en direct, étant donné que le dispositif sur la droite de la figure 65 travaille sur une perception hiérarchique d'objets de la scène qui nécessite une analyse sur plusieurs images (ou trames ou séquences) successives, un nombre de N images par exemple, pour aboutir à un résultat significatif (par exemple obtenu par refocalisation), l'organigramme 6 adapté à l'espace de perception ( ,LD) est employé toutes les N images et bénéficie donc d'un temps de N fois la durée d'image pour son exécution. La mémoire 202a est donc lue au bout de ces N images. On va maintenant voir que la relecture de la mémoire 202a stockant les LABEL produit le signal objet obj qui est traité selon l'invention pour détermination de bords orientés. Le système à module STN de la partie droite de la figure 65 utilise les données obj provenant de la mémoire 202a qui sert à stocker les LABEL (un multiplexeur 234 permet d'aiguiller les signaux d'adressage en lecture ou écriture en fonction du signal Wr). Le séquenceur 203a produit notamment les signaux spatiaux p et LD comme le séquenceur 3a produit les signaux spatiaux x, y. Dans le référentiel de perception (p,LO), figure 64, la représentation hiérarchique de la figure 63 donne trois points modulaires pour respectivement p1, p2, p3 dans une zone Zobj et si l'on recommence la représentation hiérarchique du même objet perçu à des distances différentes de la caméra (LDin différent), les points modulaires correspondants seront alignés chacun respectivement sur une droite. Une analyse
par système à module STN d'une telle perception dans l'espace de perception (partie droite de la figure 65) ramène une zone Z0bj de barycentre Bar-Z0bj- Un mouvement de translation Mobj de l'objet (vers ou s'éloignant du transducteur) perçu après traitement correspondant à la partie droite de la figure 65 (application de l'organigramme de la figure 6 au signal label objet et traitement dans des modules STN) correspond à une translation des points modulaires compris dans la zone Z0bj selon une courbe sensiblement linéaire dans une zone M0bj (dans le référentiel p',LD' on a un pic d'histogramme étroit pour les modules pi). Jusqu'à présent on a vu l'effet d'une translation d'un objet par rapport au transducteur (éloignement ou rapprochement) avec un traitement de bord orienté selon l'invention dans le cas d'un objet perçu représenté dans un espace de perception (p,LD). On va maintenant considérer en relation avec la figure 66 le cas d'une rotation sur lui-même de l'objet qui provoque cette fois des modifications différentielles (dans le cas de la translation elles étaient identiques) des valeurs de modules de vecteurs ρ1, p2, p3. Cette fois on applique en plus l'organigramme de la figure 7 (détermination de variation d'orientation de bord) comme schématisé par le bloc supplémentaire 6C. Comme précédemment, on a représenté des systèmes de perception (mais d'une manière simplifiée par deux blocs 6B 6C) avec, à gauche de la figure 66 le cas de l'utilisation des paramètres spatial x,y et temporel Lum (luminosité) et, à droite, le cas de l'application au paramètre label d'objet obj. Dans les deux cas, le système de perception de gauche ou de droite de la figure 66 met en œuvre des unités 6B et 6C selon l'invention pour produire en plus des signaux δα et Val-δα. Comme précédemment la perception dans l'espace cartésien (x,y, L) dans le système de la partie gauche de la figure 66 aboutit à des LABEL qui sont stockés dans une mémoire 202a d'où
sera relu un signal obj (espace de perception) traité dans le système de la partie droite de la figure 66. Cette fois, une rotation de l'objet sur lui-même dans l'espace de perception (p, LD) se manifeste par une variation de position différentielle des points modulaires et cela se manifeste par un élargissement de la zone Z0bj (dans le référentiel p' LD' on a un élargissement de l'histogramme des modules et la zone Mobj reste sensiblement positionnée au même endroit par rapport à l'axe LD' ce qui peut être détecté par position du pic correspondant d'histogramme) ou par une variation d'orientation de bord marquée pour un ou plusieurs des points modulaires (variation de pi). Les changements de forme des histogrammes qui sont différents entre les deux cas (déplacement en translation de rapprochement/éloignement ou en rotation) peuvent être détectés spécifiquement et fournir des informations sur le type de mouvement.
Dans la description de l'invention et de ses applications, on a considéré des images d'objets traitées dans un système permettant la détermination de bords orientés. Ces images ont été considérées comme provenant de l'extérieur du système et provenant d'un transducteur. On comprend cependant que ces images peuvent résulter d'une connaissance interne au système d'une représentation et notamment sous forme de LABELS. Les labels permettent de créer et mémoriser une représentation symbolique provenant en général d'une analyse d'un environnement extérieur physique et concret (mais pas spécifiquement, un moyen de génération interne pouvant être mis en œuvre pour créer selon certaines règles de nouveaux labels ne correspondant donc pas forcement à une réalité extérieure concrète mais pouvant s'en approcher plus ou moins selon les règles mises en œuvre).
Ainsi, l'invention est généralisable en ce sens que le procédé de détermination de bords orientés et de toutes les applications qui en découlent, peuvent fonctionner sur des scènes ou des objets reconstruits, notamment à partir de LABELS qui ont été précédemment obtenus suite à une analyse de scène ou autre, les LABELS étant des condensés de représentation de scènes ou d'objets par leurs caractéristiques distinctives perceptives. Par exemple, des LABELS correspondants à divers visages peuvent être définis par des relations de caractéristiques perceptives (dispositions de barycentres, tailles de zones, couleurs de zones... ) qui peuvent permettrent une reconstruction des visages. Dans la détermination de bords orientés sur une scène reconstruite ou sur un objet reconstruit à partir de LABELS, la reconstruction peut être plus ou moins élaborée vers une représentation graphique (ou autre selon le type de scène: visuelle, auditive ou autres types de perceptions) cherchant à reproduire la réalité de la perception humaine. Dans le cas d'une reconstruction simplifiée, par exemple limitée à des courbes joignant des barycentres (par exemple droites, ajustement de courbe entre barycentres...), et s'éloignant donc de la perception humaine, il est également possible de mettre en œuvre la détermination de bords orientés et autres applications.