Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR ESTIMATING THE MOVEMENT OF AN OBJECT
Document Type and Number:
WIPO Patent Application WO/2015/075085
Kind Code:
A1
Abstract:
The present invention relates to a method for estimating the movement of an object (3) moving about an environment (∑), the method being characterised in that it includes the steps of: (a) acquiring, by optical acquisition means (2) secured to the object (3), at least two consecutive depth images of the environment (∑); (b) selecting, by data-processing means (11) of a device (1), at least one sub-portion (Ωi) of the two depth images; (c) for each selected sub-portion (Ωi) of the two depth images, calculating by means of the data-processing means (11) on the basis of the depth values of the pixels in the sub-portion (Ωi): a first parameter (γi) representing a difference between the two depth images of a volume associated with a solid angle defined by a contour (∂Ωi) of the sub-portion (Ωi); a second parameter (αi) representing a volume vector quantity along said contour (∂Ωi); and a third parameter (βi) representing a surface vector quantity that results from said contour (∂Ωi); and (d) estimating, by the data-processing means (11), at least one component of the movement of said object (3) on the basis of the first, second and third parameters (αi, βi, γi) associated with each sub-portion (Ωi).

Inventors:
VISSIERE NADÈGE (FR)
ROUCHON PIERRE (FR)
HILLION MATHIEU (FR)
CARUSO DAVID (FR)
BEAUCHARD-LEROY KARINE (FR)
Application Number:
PCT/EP2014/075051
Publication Date:
May 28, 2015
Filing Date:
November 19, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SYSNAV (FR)
ECOLE POLYTECH (FR)
International Classes:
G06T7/20
Foreign References:
US20130094705A12013-04-18
EP2201326A12010-06-30
Other References:
SANAE SHIMIZU ET AL: "Moving object detection by mobile Stereo Omni-directional System (SOS) using spherical depth image", PATTERN ANALYSIS AND APPLICATIONS, SPRINGER-VERLAG, LO, vol. 9, no. 2-3, 8 November 2005 (2005-11-08), pages 113 - 126, XP019431599, ISSN: 1433-755X
NADEGE ZARROUATI ET AL: "Curvilinear velocity estimation using low-quality stereo-vision systems and a gyrometer", AMERICAN CONTROL CONFERENCE (ACC), 2012, IEEE, 27 June 2012 (2012-06-27), pages 4108 - 4115, XP032244618, ISBN: 978-1-4577-1095-7
ZHOU L ET AL: "TRACKING NONRIGID MOTION AND STRUCTURE FROM 2D SATELLITE CLOUD IMAGES WITHOUT CORRESPONDENCES", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, IEEE COMPUTER SOCIETY, USA, vol. 11, no. 23, 1 November 2001 (2001-11-01), pages 1330 - 1336, XP001141309, ISSN: 0162-8828, DOI: 10.1109/34.969121
M. BERTALMIO ET AL: "Navier-stokes, fluid dynamics, and image and video inpainting", PROCEEDINGS OF THE 2001 IEEE COMPUTER SOCIETY CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION. CVPR 2001, vol. 1, 1 January 2001 (2001-01-01), pages I - 355, XP055144187, ISBN: 978-0-76-951272-3, DOI: 10.1109/CVPR.2001.990497
S. BONNABEL; P. ROUCHON: "Fusion of inertial and visual : a geometrical observer-based approach", 2ND MEDITERRANEAN CONFERENCE ON INTELLIGENT SYSTEMS AND AUTOMATION (CISA'09, vol. 1107, 2009, pages 54 - 58, XP055144198, DOI: doi:10.1063/1.3106512
Attorney, Agent or Firm:
REGIMBEAU (FR)
Download PDF:
Claims:
REVENDICATIONS

1. Procédé d'estimation du mouvement d'un objet (3) évoluant dans un environnement (∑), le procédé étant caractérisé en ce qu'il comprend des étapes de :

(a) Acquisition par des moyens d'acquisition optique (2) solidaires de l'objet (3) d'au moins deux images de profondeur consécutives de l'environnement (∑) ;

(b) Sélection par des moyens de traitement de données (1 1 ) d'un équipement (1 ) d'au moins une sous-partie (Ω,) des deux images de profondeur,

(c) Pour chaque sous-partie (Ω,) sélectionnée des deux images de profondeur, calcul par les moyens de traitement de données (1 1 ) en fonction des valeurs de profondeur des pixels dans la sous-partie (Ω,) de :

o un premier paramètre (γ,) représentatif d'une différence entre les deux images de profondeur d'un volume associé à un angle solide défini par un contour (5Ω,) de la sous-partie (Ω,) ; o un deuxième paramètre (α,) représentatif d'une quantité vectorielle volumique le long dudit contour (5Ω,) ;

o un troisième paramètre (β,) représentatif d'une quantité vectorielle surfacique sortant dudit contour (5Ω,) ;

(d) Estimation par les moyens de traitement de données (1 1 ) d'au moins une composante du mouvement dudit objet (3) en fonction des premier, deuxième et troisième paramètres (α,, β,, γ,) associés à chaque sous-partie (Ω,).

2. Procédé d'estimation du mouvement d'un objet (3) évoluant dans un environnement (∑), le procédé étant caractérisé en ce qu'il comprend des étapes de : (a) Acquisition par des moyens d'acquisition optique (2) solidaires de l'environnement (∑) d'au moins deux images de profondeur consécutives de l'objet (3) ;

(b) Sélection par des moyens de traitement de données (1 1 ) d'un équipement (1 ) d'au moins une sous-partie (Ω,) des deux images de profondeur,

(c) Pour chaque sous-partie (Ω,) sélectionnée des deux images de profondeur, calcul par les moyens de traitement de données (1 1 ) en fonction des valeurs de profondeur des pixels dans la sous-partie (Ω,) de :

o un premier paramètre (γ,) représentatif d'une différence entre les deux images de profondeur d'un volume associé à un angle solide défini par un contour (5Ω,) de la sous-partie (Ω,) ; o un deuxième paramètre (α,) représentatif d'une quantité vectorielle volumique le long dudit contour (5Ω,) ;

o un troisième paramètre (β,) représentatif d'une quantité vectorielle surfacique sortant dudit contour (5Ω,) ;

(d) Estimation par les moyens de traitement de données (1 1 ) d'au moins une composante du mouvement dudit objet (3) en fonction des premier, deuxième et troisième paramètres (α,, β,, γ,) associés à chaque sous-partie (Ω,).

3. Procédé selon l'une des revendications précédentes, dans lequel l'au moins une composante estimée du mouvement dudit objet (3) est sélectionnée parmi trois composantes d'une vitesse linéaire (v) de l'objet (3), trois composantes d'une vitesse angulaire (ω) de l'objet (3), et une combinaison linéaire d'une pluralité desdites composantes d'une vitesse linéaire ou angulaire (v, ω) de l'objet (3).

4. Procédé selon la revendication 3, dans lequel au moins six sous-parties (Ω,) indépendantes des deux images de profondeur sont sélectionnées à l'étape (b), l'étape (d) comprenant l'estimation des trois composantes d'une vitesse linéaire (v) de l'objet (3) et des trois composantes d'une vitesse angulaire (ω) de l'objet (3).

5. Procédé selon l'une des revendications 3 et 4, dans lequel l'étape (d) comprend une étape préalable (dO) de formation par les moyens de traitement de données (1 1 ) d'une matrice A comprenant N colonnes et une ligne pour chaque sous-partie (Ωί,ι≤ί<Ν), et un vecteur B comprenant une ligne pour chaque sous-partie (Ωί,ι≤ί<Ν), tels que Α=(α,τ, βίΤ)ι≤ί≤Ν et B=(Yi)i≤i<N, l'étape (d) comprenant la détermination d'un vecteur Χ=(ωτ, vT) T, tel que AX=B.

6. Procédé selon l'une des revendications précédentes, dans lequel le premier paramètre (γ,) est donné par la différence des formules j D3da appliquées à chacune des images de profondeur, où pour un pixel d'une sous-partie (Ω,) d'une image de profondeur, D est la profondeur associée au pixel et dav est un élément de surface élémentaire de la sous-partie (Ω,).

7. Procédé selon l'une des revendications précédentes, dans lequel le deuxième paramètre (α,) est donné par la formule g (D3r\ x ri)dlv appliquée à au moins une des deux images de profondeur, où pour un pixel du contour (5Ω,) d'une sous-partie (Ω,) d'une image de profondeur, D est la profondeur associée au pixel, η est le vecteur unitaire représentant la direction d'observation associée au pixel, n est le vecteur unitaire normal au contour (5Ω,) en ledit pixel, et dlv est un élément de longueur élémentaire du contour (5Ω,) de la sous-partie (Ω,).

8. Procédé selon l'une des revendications précédentes, dans lequel le troisième paramètre (β,) est donné par la formule ^ g (D2n)dl appliquée à au moins une des deux images de profondeur, où pour un pixel du contour (5Ω,) d'une sous-partie (Ω,) d'une image de profondeur, D est la profondeur associée au pixel, n est le vecteur unitaire normal au contour (5Ω,) en ledit pixel, et dlv est un élément de longueur élémentaire de la du contour (5Ω,) de la sous-partie (Ω,). 9. Procédé selon l'une des revendications précédentes, dans lequel chaque sous-partie (Ω,) sélectionnée à l'étape (b) est rectangulaire.

10. Procédé selon l'une des revendications précédentes, dans lequel toutes les sous-parties (Ω,) sélectionnées à l'étape (b) sont distinctes.

11. Procédé selon l'une des revendications précédentes, dans lequel chaque sous-partie (Ω,) est sélectionnée à l'étape (b) de telle sorte que la profondeur D associée aux pixels de la sous-partie (Ω,) est sensiblement continue sur la sous-partie (Ω,).

12. Procédé selon la revendication 1 1 , dans lequel l'étape (b) comprend pour chaque sous-partie (Ω,) une estimation par différences finies de la discontinuité de D le long du contour (5Ω,) de la sous-partie (Ω,).

13. Système pour l'estimation du mouvement d'un objet (3) évoluant dans un environnement (∑), le système comprenant des moyens d'acquisition optique (2) et un équipement (1 ) comprenant des moyens de traitement de données (1 1 ) configurés pour mettre en œuvre le procédé selon l'une des revendications 1 à 12.

14. Produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé d'estimation du mouvement d'un objet (3) évoluant dans un environnement (∑) selon l'une des revendications 1 à 12.

15. Moyen de stockage lisible par un équipement informatique sur lequel un produit programme d'ordinateur comprend des instructions de code pour l'exécution d'un procédé d'estimation du mouvement d'un objet (3) évoluant dans un environnement (∑) selon l'une des revendications 1 à 12.

Description:
Procédé d'estimation du mouvement d'un objet

DOMAINE TECHNIQUE GENERAL La présente invention concerne le domaine de la navigation sans

GPS.

Plus précisément, elle concerne un procédé d'estimation par reconnaissance optique du mouvement d'un objet. ETAT DE L'ART

On connaît des méthodes d'estimation par reconnaissance optique du mouvement à 6 degrés de liberté d'un objet évoluant dans un environnement statique. Par mouvement à 6 degrés de liberté, on entend la vitesse linéaire v (un premier vecteur de dimension trois) et la vitesse angulaire ω de l'objet (un deuxième vecteur de dimension trois), dans un référentiel donné attaché à l'environnement.

Pour cela, on utilise l'acquisition d'images de profondeur par un capteur spécifique (souvent appelé « caméra 3D »). Une image de profondeur est une image dont la valeur des pixels est la distance entre le centre optique du capteur et le point observé (par opposition aux images classiques, type RGB, pour lesquelles la valeur d'un pixel définit sa couleur). Une image de profondeur est parfois représentée (afin d'être visuellement appréhendable), comme une image en niveaux de gris dont la luminance de chaque point est fonction de la valeur de distance (plus un point est près, plus il est clair).

A titre d'exemple, un capteur de type Kinect® est capable de faire l'acquisition simultanée d'une image de profondeur et d'une image RGB, chacune en 640x480 pixels.

Le capteur est soit fixe dans un référentiel donné et observe l'objet, soit attaché à l'objet et observe l'environnement considéré statique. Pour calculer le mouvement à partir des images, une approche classique consiste à calculer explicitement un mouvement, connaissant un certain nombre de correspondances entre des points 3D mesurés dans chaque image. Cette méthode est rapide et explicite, ce qui implique qu'elle ne dépend pas d'une initialisation.

En revanche, elle requiert une étape de mise en correspondance: celle-ci est extrêmement délicate à partir d'images de profondeur, et nécessite donc en général de faire appel à des descripteurs de points robustes (type SURF ou SIFT) qui n'existent que pour des images RGB classiques, qu'il est donc nécessaire de traiter séparément, ce qui est lourd en termes de ressources informatiques.

Alternativement, certaines méthodes liées à l'algorithme dit « Itérative Closest Point » (ICP) ne nécessitent que des images de profondeur pour estimer une différence de pose. Cet algorithme cherche de manière itérative le mouvement qui permet au mieux de corréler entre eux deux ou plusieurs nuages de points. On s'affranchit de la nécessité de traiter des images RGB, mais cette méthode itérative est lente et reste coûteuse en temps de calcul. De plus la qualité du résultat dépend de manière très importante de l'initialisation.

Les méthodes connues sont donc insuffisantes pour un traitement fiable en temps réel. Il serait par conséquent souhaitable de disposer d'une nouvelle méthode optique d'estimation du mouvement d'un objet qui soit à la fois plus rapide, plus efficace, plus fiable, moins consommatrice en ressources informatiques, et qui ne nécessite que du matériel d'acquisition optique standard.

PRESENTATION DE L'INVENTION

La présente invention se rapporte ainsi selon un premier aspect à un procédé d'estimation du mouvement d'un objet évoluant dans un environnement, le procédé étant caractérisé en ce qu'il comprend des étapes de : (a) Acquisition par des moyens d'acquisition optique solidaires de l'objet d'au moins deux images de profondeur consécutives de l'environnement ;

(b) Sélection par des moyens de traitement de données d'un équipement d'au moins une sous-partie des deux images de profondeur,

(c) Pour chaque sous-partie sélectionnée des deux images de profondeur, calcul par les moyens de traitement de données en fonction des valeurs de profondeur des pixels dans la sous-partie de :

o un premier paramètre γ, représentatif d'une différence entre les deux images de profondeur d'un volume associé à un angle solide défini par un contour de la sous-partie ;

o un deuxième paramètre a, représentatif d'une quantité vectorielle volumique le long dudit contour ;

o un troisième paramètre β, représentatif d'une quantité vectorielle surfacique sortant dudit contour ;

(d) Estimation par les moyens de traitement de données d'au moins une composante du mouvement dudit objet en fonction des premier, deuxième et troisième paramètres associés à chaque sous-partie.

Selon un deuxième aspect, la présente invention se rapporte ainsi à un autre procédé d'estimation du mouvement d'un objet évoluant dans un environnement, le procédé étant caractérisé en ce qu'il comprend des étapes de :

(a) Acquisition par des moyens d'acquisition optique solidaires de l'environnement d'au moins deux images de profondeur consécutives de l'objet ;

(b) Sélection par des moyens de traitement de données d'un équipement d'au moins une sous-partie des deux images de profondeur, (c) Pour chaque sous-partie sélectionnée des deux images de profondeur, calcul par les moyens de traitement de données en fonction des valeurs de profondeur des pixels dans la sous-partie de :

o un premier paramètre γ, représentatif d'une différence entre les deux images de profondeur d'un volume associé à un angle solide défini par un contour de la sous-partie ;

o un deuxième paramètre a, représentatif d'une quantité vectorielle volumique le long dudit contour ;

o un troisième paramètre β, représentatif d'une quantité vectorielle surfacique sortant dudit contour ;

(d) Estimation par les moyens de traitement de données d'au moins une composante du mouvement dudit objet en fonction des premier, deuxième et troisième paramètres associés à chaque sous-partie.

Selon d'autres caractéristiques avantageuses et non limitatives :

• l'au moins une composante estimée du mouvement dudit objet est sélectionnée parmi trois composantes d'une vitesse linéaire de l'objet, trois composantes d'une vitesse angulaire de l'objet, et une combinaison linéaire d'une pluralité desdites composantes d'une vitesse linéaire ou angulaire de l'objet ;

• au moins six sous-parties indépendantes des deux images de profondeur sont sélectionnées à l'étape (b), l'étape (d) comprenant l'estimation des trois composantes d'une vitesse linéaire de l'objet et des trois composantes d'une vitesse angulaire de l'objet ;

• l'étape (d) comprend une étape préalable (dO) de formation par les moyens de traitement de données d'une matrice A comprenant N colonnes et une ligne pour chaque sous-partie, et un vecteur B comprenant une ligne pour chaque sous-partie, tels que l'étape (d) comprenant la détermination d'un vecteur Χ=(ω τ , v T ) T , tel que AX=B ; • le premier paramètre γ, est donné par la différence des formules f a D 3 da appliquées à chacune des images de profondeur, où pour un pixel d'une sous-partie Ω έ d'une image de profondeur, D est la profondeur associée au pixel et da v est un élément de surface élémentaire de la sous- partie Ω έ ;

• le deuxième paramètre a, est donné par la formule § dn (£> 3 η x n)dl v appliquée à au moins une des deux images de profondeur, où pour un pixel du contour 3Ω έ d'une sous-partie Ω έ d'une image de profondeur, D est la profondeur associée au pixel, η est le vecteur unitaire représentant la direction d'observation associée au pixel, n est le vecteur unitaire normal au contour en ledit pixel et dl v est un élément de longueur élémentaire du contour 3Ω έ de la sous-partie Ω έ ;

• le troisième paramètre β, est donné par la formule ^ da D 2 rî)dl v appliquée à au moins une des deux images de profondeur, où pour un pixel du contour 3Ω έ d'une sous-partie Ω έ d'une image de profondeur, D est la profondeur associée au pixel, n est le vecteur unitaire normal au contour en ledit pixel et dl v est un élément de longueur élémentaire du contour 3Ω έ de la sous-partie Ω έ ;

• chaque sous-partie sélectionnée à l'étape (b) est rectangulaire ;

· toutes les sous-parties sélectionnées à l'étape (b) sont distinctes ;

• chaque sous-partie est sélectionnée à l'étape (b) de telle sorte que la profondeur D associée aux pixels de la sous-partie est sensiblement continue sur la sous-partie ;

• l'étape (b) comprend pour chaque sous-partie une estimation par différences finies de la discontinuité de D le long du contour de la sous- partie.

Selon un troisième aspect, l'invention concerne un système pour l'estimation du mouvement d'un objet évoluant dans un environnement, le système comprenant des moyens d'acquisition optique et un équipement comprenant des moyens de traitement de données configurés pour mettre en œuvre le procédé selon le premier ou le deuxième aspect.

Selon un quatrième et un cinquième aspect, l'invention concerne un produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé d'estimation du mouvement d'un objet (3) évoluant dans un environnement selon le premier ou le deuxième aspect de l'invention ; et un moyen de stockage lisible par un équipement informatique sur lequel un produit programme d'ordinateur comprend des instructions de code pour l'exécution d'un procédé d'estimation du mouvement d'un objet évoluant dans un environnement selon le premier ou le deuxième aspect de l'invention.

PRESENTATION DES FIGURES

D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation préférentiel. Cette description sera donnée en référence aux dessins annexés dans lesquels :

- la figure 1 est un schéma d'une architecture de système pour la mise en œuvre du procédé selon l'invention ;

- la figure 2a représente schématiquement l'environnement dans lequel est mis en œuvre le procédé selon l'invention ;

- La figure 2b représente la manipulation d'une sous-partie d'une image acquise lors de la mise en œuvre du procédé selon l'invention.

DESCRIPTION DETAILLEE

Architecture

En référence à la figure 1 , le présent procédé permet l'estimation du mouvement d'un objet 3 évoluant dans un environnement ∑. Cet objet 3 peut être n'importe quel objet mobile dont la connaissance de la position est souhaitée, par exemple un véhicule à roues, un drone, etc.

Le système pour la mise en œuvre du procédé comprend au moins des moyens d'acquisition optique 2 et un équipement informatique 1 . Dans un mode de réalisation principal de l'invention (qui sera pris à titre d'exemple dans la suite de la présente description), les moyens d'acquisition optique 2 sont solidaires de l'objet 3 (en d'autres termes ils ont le même mouvement) et observent l'environnement∑. L'équipement 1 peut alors lui aussi être embarqué avec l'objet 3 (ce peut être n'importe quel équipement doté de capacités de traitement informatique, y compris par exemple un smartphone), ou à terre et relié aux moyens d'acquisition optique 2 par exemple via un réseau sans-fil (WiFi, etc.). Pour faciliter la compréhension du présent procédé, on réduira l'ensemble formé par l'objet 3 et les moyens d'acquisition optique 2 à un point, situé au niveau du centre optique des moyens d'acquisition optique 2. Il est à noter que les moyens d'acquisition optique 2 et/ou l'équipement 1 et/ou l'objet 3 peuvent être confondus (si par exemple l'objet 3 comporte déjà des moyens de traitement de données).

Dans le mode de réalisation alternatif (qui sera décrit plus spécifiquement plus loin), les moyens d'acquisition optique 2 sont fixes par rapport à l'environnement ∑ et observent l'objet 3. On comprendra que le premier mode de réalisation (moyens d'acquisition optique 2 embarqués) est préféré, car il permet l'estimation continue du mouvement de l'objet 3, y compris s'il se déplace sur de longues distances. Dans le second mode, on est limité au champ de vision des moyens d'acquisition optique 2.

L'équipement 1 comprend des moyens de traitement de données 1 1 (par exemple un processeur), et avantageusement des moyens de stockage de données 12 (par exemple un disque dur), lesquelles peuvent être utiles pour stocker les données de mouvement obtenues à chaque mise en œuvre du procédé (par exemple pour avoir des logs de données de navigation). Les moyens d'acquisition optique 2 sont capables d'acquérir des images de profondeur (qui comme expliqué sont des images dont la valeur des pixels est la distance entre le centre optique et le point observé). On connaît de nombreuses technologies permettant ceci, et les moyens d'acquisition optique 2 peuvent par exemple utiliser la triangulation stéréo (deux caméras côte à côte), la lumière structurée (projection sur la scène d'un motif prédéterminé), l'interférométhe, etc.

Le présent procédé n'est limité à aucun type en particulier de moyens d'acquisition optique 2, il suffit qu'ils permettent l'obtention d'images de profondeur. En référence à la figure 1 , une image de profondeur est représentée (pour faciliter la compréhension) comme une image en niveaux de gris.

Un équipement auxiliaire 4 (par exemple un terminal mobile) connecté à l'équipement 1 peut éventuellement être utilisé pour récupérer les données de mouvement qui vont être obtenues par le présent procédé, et par exemple mettre en œuvre un programme de navigation (affichage sur une carte de la position de l'objet 3 en fonction de son mouvement).

Au moins une composante du mouvement est estimée par le procédé. Par composante du mouvement, on entend comme expliqué toute composante d'une vitesse linéaire v de l'objet 3, ou d'une vitesse angulaire ω de l'objet 3, mais également une combinaison linéaire de deux ou plus des composantes de base précédemment citées.

Principe et notations

Le présent procédé traite des flux vidéo d'images de profondeur, qui sont supposées représenter l'environnement perçu par la caméra 3D de manière dense et continue. En pratique, les images sont acquises à une fréquence finie donnée, et sont formées d'une matrice de pixels régulièrement espacés. On passera donc d'une formulation mathématique traitant des variations temporelles et des gradients spatiaux à une implémentation pratique où les dérivées sont approximées grâce à des méthode et schémas numériques bien connues de l'homme du métier. En particulier, la différence de deux images de profondeur consécutives est une représentation non limitative de la variation temporelle de la profondeur.

Le principe du présent procédé est en effet l'exploitation des variations temporelles du champ de profondeur en tant que fonction de la direction d'observation. En effet, en référence à la figure 2a, à chaque pixel correspond une direction d'observation spécifique, c'est-à-dire un vecteur unitaire qu'on appelle η. Le vecteur η est donc un élément de la sphère unité de R 3 centrée autour de l'objet C (ou plutôt le centre optique des moyens d'acquisition optique 2 qui y sont fixés comme expliqué), qu'on note

Sans prendre en compte la limitation du champ de vision d'une caméra, à un temps t, une position et une orientation donnés dans un environnement fixe∑ correspond une fonction de profondeur D(t, ). D est donc une fonction du temps (élément de R) et de l'espace (S 2 ) dans R. Si la caméra bouge, la direction d'observation η d'un point « physique » particulier évolue au cours du temps, et la profondeur D(t,q) associée à ce point particulier évolue en fonction du déplacement en position de la caméra (mais pas du déplacement en orientation). Si au contraire, on ne fixe pas un point, mais une direction η donnée, les variations temporelles (d t D, la dérivée par rapport au temps d'une fonction du temps et de l'espace) évoluent en fonction de la forme géométrique de l'environnement∑, des variations spatiales VD de cette forme et du mouvement à 6 degrés de liberté 'objet:

L'opérateur gradient, et les calculs différentiels qui suivent, sont adaptés à la surface de la sphère unité en tant que variété Riemanienne. Une variété Riemanienne est localement identifiable à l'espace Euclidien et permet d'exprimer de façon simple des calculs différentiels sur des surfaces complexes.

Le fait de considérer les variations temporelles d'un champ scalaire dans une direction donnée est usuel en traitement d'image : pour une image RGB classique, on parle de flot optique. Voir par exemple "Fusion of inertial and visual : a geometrical observer-based approach", S. Bonnabel and P. Rouchon, 2nd Mediterranean Conférence on Intelligent Systems and Automation (CISA'09), 1 107:54-58, 2009. On rappelle 2 formules de calcul différentiel sur S 2 , valables pour η G S 2 et P G R 3 indépendant de η :

V (η x P) = 0 (2) ν - (η χ (η χ Ρ)) = -2η - Ρ (3) où V désigne l'opérateur divergence par rapport à η sur S 2 en tant que variété Riemanienne.

On peut à partir de (1 ) exprimer la dérivée temporelle de D 3 (en d'autres termes le cube de la profondeur) :

a t D 3 = -VD 3 ■ (η x ω)— - VD 2 ■ (η x (η x v)) -3D 2 v - η

Puis, en utilisant (2) :

V 3 η x ω) = VD 3 ■ (η x ω) + D 3 V (η x ω) = VD 3 ■ (η x ω) et en utilisant (3) :

V 2 η X (η X v)) = VD 2 ■ (η X (η X v)) + D 2 V (η X (η X v)) = VD 2 ■ (η x (η x v)) - 2D 2 v η, donc

VD 2 ■ (η X (η X v)) = V 2 η X (η X v)) + 2D 2 v η

On reformule donc

a t D 3 = -V - (ϋ 3 η x ω) - ^ - (ϋ 2 η X (η x v))

La dérivée temporelle de D 3 s'exprime donc totalement comme la divergence d'un champ de vecteurs. En intégrant cette équation sur une portion Ω fixe de S 2 délimitée par un contour 5Ω (voir figure 2b, et voir plus loin pour davantage d'explications), le théorème de Stokes donne immédiatement:

d t J n ϋ 3 άσ η = - ¾ Ω ((£ 3 η x ω) - η)άΙ η - ^ ¾ Ω ((ϋ 2 η X (η x ν)) )άΙ η où άσ ν est un élément de surface infinitésimal de S 2 , dl v est un élément de longueur infinitésimal et n est la normale sortante au contour 3Ω. La direction de n dépend bien sûr de la forme du contour 3Ω envisagé, et donc de η.

On réarrange cette équation en utilisant les propriétés du produit mixte:

d t / Ω D 3 da = ( m (D x n)dZ„) ω + (¾ Ω 2 η x (n x η))^) v

Notons que n étant la normale sortante au contour 3Ω, c'est un vecteur tangent à S 2 , ce qui implique η x (n x η) = n. Finalement,

Formellement, on peut ainsi former des équations linéaires en v et ω en considérant différentes portions Ω, de S 2 et leurs contours δΩ, associés.

En posant a t = ¾ Ω. (0 3 η η)άΙ η , β έ = - 3 9ςι {0 2 ή)άΙ η et y t = d t ^ D 3 da 7] , on obtient un système linéaire d'équations scalaires de la forme

{γι = t ω + β; v} 1≤i≤N

Si l'on peut en former 6 qui soient linéairement indépendantes, il suffit d'inverser le système linéaire formé pour reconstituer le déplacement en translation et en rotation associé au mouvement.

Implémentation

L'approche proposée en pratique commence par une étape (a) d'acquisition par les moyens d'acquisition optique d'au moins deux images de profondeur consécutives de l'environnement∑. Les deux images sont alors transmises aux moyens de traitement de données 1 1 de l'équipement 1 . Ces deux images sont typiquement prises à une fraction de seconde d'écart, avantageusement moins de 40 ms. Il suffit que la fréquence soit suffisante pour que l'approximation X(t + dt) - X(t) « vdt soit valide.

Comme on le verra, la présente méthode est extrêmement rapide : quelques millisecondes de traitement sur un ordinateur standard suffisent pour calculer un déplacement entre deux images de profondeur consécutives. A condition que le temps d'écart entre l'acquisition de deux images consécutives soit supérieur à ce temps de traitement, un traitement en temps réel est possible. Des moyens d'acquisition optiques capables d'acquérir 25 images par secondes sont particulièrement adaptés.

Dans un tel traitement en temps réel, le mouvement est estimé à partir de chaque couple k,k+1 d'images :

- une première image puis une deuxième image sont acquises

- le procédé est mis en œuvre en utilisant ces première et deuxième images ;

- une troisième image est acquise,

- le procédé est mis en œuvre en utilisant la deuxième image et la troisième image,

- une quatrième image est acquise,

- etc.

Contours

Comme expliqué, le présent procédé utilise différentes portions Ω, de S 2 et leurs contours δΩ, associés. Ces portions, dont un exemple est représenté par la figure 2b, définissent des sous-parties (fermées) d'une image de profondeur. Dans la suite de la présente description, on confondra les portions et les sous-parties associées des images. La figure 1 représente par exemple deux sous-parties Ωι et Ω 2 de S 2 et leurs contours δΩι et δΩ 2 . Ces sous-parties peuvent présenter n'importe quelle forme, mais avantageusement, le plus simple et le plus adapté à des images issues de capteurs CCD ou CMOS (qui sont de structure matricielle) est de choisir des rectangles.

Au moins une sous-partie Ω, des deux images de profondeur (par une sous-partie Ω, de « deux » images, on entend qu'il s'agit de la même zone (dans le référentiel du capteur) isolée sur les deux images, indépendamment du mouvement de l'environnement∑ observé par rapport à l'objet 3. En d'autres termes la même sous-partie Ω, appliquée aux deux images représente des parties différentes de l'environnement ∑) est sélectionnée par les moyens de traitement de données 1 1 dans une étape (b). Une sous-partie Ω, permet d'estimer une composante du mouvement, c'est pourquoi six sous-parties Ω, des deux images de profondeur permettant de former une matrice inversible Α=(α, τ , βϊ Τ )ι≤ϊ≤Ν (voir plus loin) sont avantageusement sélectionnées à l'étape (b), de façon à pouvoir estimer les trois composantes de vitesse linéaire v de l'objet 3 et les trois composantes de vitesse angulaire ω de l'objet 3 (comme expliqué avant), ou du moins six combinaison linéaires indépendantes des vitesses linéaire v et/ou angulaire ω.

Le présent procédé n'est limité à aucune règle pour sélectionner ces sous-parties Ω,, par exemple des rectangles pourront être sélectionnés aléatoirement. En outre, chaque sous-partie Ω, est avantageusement sélectionnée à l'étape (b) de telle sorte que la profondeur D associée aux pixels de la sous-partie Ω, est sensiblement continue sur la sous-partie Ω,. En d'autres termes, on évite des sous-parties Ω, qui présentent des discontinuités majeures (par exemple une sous-partie de l'image exemple de la figure 1 qui comprendrait le panneau de signalisation en bas à droite présenterait de fortes discontinuités de profondeur sur le pourtour de ce panneau). De telles discontinuités peuvent perturber l'estimation du mouvement.

L'étape (b) comprend ainsi préférentiellement la pré-sélection de sous-parties potentielles (par exemple aléatoirement, ou à partir d'une ensemble de sous-parties possibles prédéterminé), puis un test de continuité. Chaque sous-partie « trop discontinue » est écartée, les sous- parties Ω, sélectionnées étant celles qui passent ce test. On répète le processus jusqu'à obtenir le nombre de sous-parties Ω, souhaité.

Dans la mesure où les images sont composées de pixels, cette discontinuité peut être établie si la différence de profondeur associée à deux pixels voisins est supérieure à un seuil prédéterminé. Plus ce seuil est faible, plus l'estimation sera fiable, mais plus la sélection de sous-parties Ω, est difficile.

Le présent procédé n'est limité à aucun algorithme pour déterminer si une sous-partie Ω, est continue ou non. Par exemple, peut être mise en œuvre une estimation par différences finies de la discontinuité de D le long du contour 5Ω, de la sous-partie Ω,. Les trois paramètres

Dans une étape (c), pour chaque sous-partie Ω, sélectionnée des deux images de profondeur, les moyens de traitement de données 1 1 calculent en fonction des valeurs de profondeur des pixels dans la sous- partie Ω, (en d'autres termes les valeurs de D) les trois paramètres α,, β,, γ, associés à la sous-partie Ω,.

Le premier paramètre γ, est représentatif d'une différence entre les deux images de profondeur d'un volume associé à un angle solide défini par un contour 5Ω, de la sous-partie Ω,. En effet, comme expliqué ce premier paramètre traduit la valeur de d t j n D 3 da v . Dans la mesure où l'écart de temps entre les deux images est très faible, le d t est approximé par la différence sur le pas de temps, en d'autres termes la différence entre les deux images consécutives.

Ainsi, les moyens de traitement de données calculent sur la sous- partie la formule / Ω D 3 da appliqué à la première image de profondeur, puis la formule / Ω D 3 da appliquée à la deuxième image de profondeur, et les soustraient. Comme expliqué άσ η est un élément de surface élémentaire (par définition infinitésimal) de S 2 , en d'autres termes un pixel de la sous- partie Ω, de l'image.

En pratique, le calcul de j n D 3 da v consiste en la somme des profondeurs au cube des pixels de la sous-partie Ω,. A cause du cube, la valeur obtenue est représentative du volume du cône représenté par la figure 2b, c'est-à-dire le volume associé à un angle solide défini par un contour 5Ω, de la sous-partie Ω,.

Le deuxième paramètre a, est représentatif d'une quantité vectorielle volumique le long dudit contour 3Ω,. En effet, comme expliqué ce paramètre traduit la valeur vectorielle de § dn (£> 3 η x n)dl v appliquée à au moins une des deux images de profondeur (on comprendra que cette formulation inclut également toute combinaison des deux images dépendant du schéma numérique choisi, telle qu'une moyenne, éventuellement pondérée), où pour un pixel du contour 3Ω, d'une sous-partie Ω, d'une image de profondeur, η est le vecteur unitaire représentant la direction d'observation associée au pixel, et n le vecteur unitaire normal au contour 3Ω, en ledit pixel. Comme expliqué, dl n est un élément de longueur élémentaire (par définition infinitésimal), en d'autres termes la longueur ou la largeur d'un pixel du contour 3Ω, de la sous-partie Ω, de l'image.

On comprendra que l'implémentation de cette méthode à un modèle de caméra donné nécessite éventuellement préalablement la calibration intrinsèque de la caméra, c'est-à-dire l'estimation des paramètres intrinsèques (résolution, focale, position du point principal dans l'image, distorsion...) qui permettront d'exprimer le vecteur unitaire η en fonction de la position d'un pixel dans l'image, ainsi que l'expression analytique de la normale n le long du contour et des éléments infinitésimaux dl v et da v en fonction du contour choisi et de η, puis des coordonnées d'un pixel dans l'image. Par définition du produit vectoriel, en tout point du contour 5Ω,, (D 3 x n) est orthogonal à η et n, en d'autres termes tangent au contour

En pratique, le calcul de § dn (£> 3 η x n)^ consiste en la somme des vecteurs unitaires tangents au contour 5Ω, en chacun des pixels du contour δΩ,, pondérés par la profondeur au cube des pixels (d'où quantité vectorielle « volumique »), en fonction de l'expression des vecteurs η et n (avantageusement précalculée). Si le contour 5Ω, est rectangulaire, il s'agit d'une somme de quatre vecteurs (un par coté).

Le troisième paramètre β, est représentatif d'une quantité vectorielle surfacique sortant dudit contour 5Ω,. En effet, comme expliqué ce paramètre traduit la valeur vectorielle de ^ § da (D 2 ri)dl v appliquée au moins à une des deux images de profondeur (on comprendra à nouveau que cette formulation inclut également toute combinaison des deux images dépendant du schéma numérique choisi, telle qu'une moyenne, éventuellement pondérée), où pour un pixel du contour 5Ω, d'une sous-partie Ω, d'une image de profondeur, n est toujours le vecteur unitaire normal au contour en ledit pixel.

En tout point du contour 5Ω,, (D 2 n) est colinéaire à n, en d'autres termes normal au contour 5Ω,.

En pratique, le calcul de ^ § da (D 2 ri)dl v consiste en la somme des vecteurs unitaires normaux au contour 5Ω, en chacun des pixels du contour δΩ,, pondérés par 3/2 et la profondeur au carré des pixels (d'où la quantité vectorielle surfacique), en fonction de l'expression des vecteurs η et n (avantageusement précalculée). Si le contour 5Ω, est rectangulaire, il s'agit d'une somme de quatre vecteurs (un par côté).

Estimation du mouvement Dans une étape (d), les moyens de traitement de données 1 1 estiment la ou les composantes recherchées du mouvement dudit objet 3 en fonction des premier, deuxième et troisième paramètres α,, β,, γ, associés à chaque sous-partie Ω,.

Dans un mode de réalisation préféré dans lequel 6 sous-parties indépendantes ont été sélectionnées et dans lequel les 6 composantes du mouvement sont recherchées, l'étape (d) comprend avantageusement une étape préalable (dO) de formation par les moyens de traitement de données 1 1 d'une matrice A comprenant N colonnes et une ligne pour chaque sous- partie Qi, i≤i<N, et un vecteur B comprenant une ligne pour chaque sous- partie Qi, i<i<N, tels que βί Τ )ι<ί ≤Ν et

II suffit de résoudre le système linéaire pour déterminer les composantes du mouvement : l'étape (d) comprend alors la détermination d'un vecteur Χ=(ω τ , v T ) T tel que AX=B par toute méthode connue de l'homme du métier. Cas d'une caméra fixe

Selon un mode de réalisation alternatif évoqué précédemment, les moyens d'acquisition 2 sont solidaires de l'environnement∑ et non de l'objet 3. Dans ce mode de réalisation, l'étape (a) consiste en l'acquisition par des moyens d'acquisition optique 2 solidaires de l'environnement∑ d'au moins deux images de profondeur consécutives de l'objet 3.

Les autres étapes (b) à (d) sont identiques, à la précision près que les sous-parties Ω, sélectionnées à l'étape (b) doivent, dans l'hypothèse où les images de profondeur acquises représentent plus que l'objet 3 (et donc une partie de l'environnement∑ en arrière-plan), être situées uniquement sur l'objet 3.

Système Selon un troisième aspect, l'invention concerne en particulier le système pour la mise en œuvre de l'un ou l'autre des modes de réalisation du procédé. Comme expliqué précédemment, le système comprend les moyens d'acquisition optique 2 (capables d'acquérir des images de profondeur) et un équipement 1 comprenant des moyens de traitement de données 1 1 .

Les moyens d'acquisition optique 2 sont configurés pour la mise en œuvre de l'étape (a), et moyens de traitement de données 1 1 sont configurés pour la mise en œuvre des étapes (b) à (d).

Produit programme d'ordinateur Selon un quatrième et un cinquième aspects, l'invention concerne un produit programme d'ordinateur comprenant des instructions de code pour l'exécution (sur les moyens de traitement en particulier de l'équipement 1 ) d'un procédé d'estimation du mouvement d'un objet 3 évoluant dans un environnement ∑ selon le premier ou le deuxième aspect de l'invention, ainsi que des moyens de stockage lisibles par un équipement informatique (par exemple un disque dur de l'équipement 1 ) sur lequel on trouve ce produit programme d'ordinateur.