FR3065097A1 - Procede automatise de reconnaissance d'un objet - Google Patents

Procede automatise de reconnaissance d'un objet Download PDF

Info

Publication number
FR3065097A1
FR3065097A1 FR1753142A FR1753142A FR3065097A1 FR 3065097 A1 FR3065097 A1 FR 3065097A1 FR 1753142 A FR1753142 A FR 1753142A FR 1753142 A FR1753142 A FR 1753142A FR 3065097 A1 FR3065097 A1 FR 3065097A1
Authority
FR
France
Prior art keywords
digital
view
depth
model
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1753142A
Other languages
English (en)
Other versions
FR3065097B1 (fr
Inventor
Mathieu Aubry
Pierre-Alain Langlois
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pzartech Ltd
Original Assignee
Pzartech Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Pzartech Ltd filed Critical Pzartech Ltd
Priority to FR1753142A priority Critical patent/FR3065097B1/fr
Priority to PCT/IB2018/052360 priority patent/WO2018189627A1/fr
Publication of FR3065097A1 publication Critical patent/FR3065097A1/fr
Application granted granted Critical
Publication of FR3065097B1 publication Critical patent/FR3065097B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

L'invention porte sur un procédé pour reconnaitre un objet réel, comprenant des étapes pour : - créer 10 une base de modèles numériques d'objets comprenant au moins une carte des profondeurs ; - entrainer 11 un réseau neuronal à la reconnaissance des modèles ; - faire 23 une prise de vue de l'objet et générer plusieurs cartes des profondeurs, à l'aide d'un capteur de type RGBD ; - pour fusionner 24 les cartes de profondeurs associées à la prise de vue de l'objet en vue d'obtenir une carte apurée ; et, - pour comparer 35 la carte apurée avec celles de la base de données.

Description

(54) PROCEDE AUTOMATISE DE RECONNAISSANCE D'UN OBJET.
FR 3 065 097 - A1 (5j) L'invention porte sur un procédé pour reconnaître un objet réel, comprenant des étapes pour:
- créer 10 une base de modèles numériques d'objets comprenant au moins une carte des profondeurs;
- entraîner 11 un réseau neuronal à la reconnaissance des modèles;
- faire 23 une prise de vue de l'objet et générer plusieurs cartes des profondeurs, à l'aide d'un capteur de type RGBD ;
- pour fusionner 24 les cartes de profondeurs associées à la prise de vue de l'objet en vue d'obtenir une carte apurée; et,
- pour comparer 35 la carte apurée avec celles de la base de données.
.!»
Figure FR3065097A1_D0001
j X.. D ί.Λ i'iyit . .......
..........'......7 <F·· , i-s i
Figure FR3065097A1_D0002
_ 1 .
La présente invention se rapporte au domaine de la reconnaissance automatisée de formes en trois dimensions, par une machine.
On connaît des capteurs d’image du type RGBD (acronyme anglais de RedGreen-Blue-Depth pour Rouge-Vert-Bleu-Profondeur) qui permettent de capter une forme d'un objet selon trois dimensions. Ces capteurs ont fait l'objet de nombreux développements, notamment dans le domaine des dispositifs portables. Cependant, la qualité des données brutes fournies par un tel capteur n'est pas suffisante pour comparer directement un objet dont la forme est captée par un tel capteur avec des items d'une base de données permettant d'identifier cet objet.
En outre, on connaît l'algorithme nommé ICP (acronyme anglais de Itérative Cîosest Point ou Itérative Corresponding Point), permet de rapprocher deux vues partielles d'un même objet, chacune représentée par un nuage de points, en réduisant itérativement la distance entre ces deux nuages. Les stratégies permettant de comparer un objet capté à un item connu d'une base de données utilisent généralement l'algorithme ICP. Cependant, cet algorithme n'est pas adapté aux très grandes bases de données.
.Συ invention a pour but de proposer un système et un procédé qui permettent de reconnaître un objet dont on capture une image en le comparant à une base de données d'items, étant supposé que cet objet soit connu de la base de données.
Selon l’invention, un tel procédé pour reconnaître un objet réel, en trois dimensions, est caractérisé en ce qu’il comprend les étapes suivantes :
- des étapes pour créer une base de modèles numériques d'objets à reconnaître, chaque modèle comprenant au moins une carte des profondeurs à partir d'un objet numérique 3D ;
- des étapes pour entraîner un réseau neuronal convolutif à la reconnaissance de modèles de la base de données ;
- des étapes pour faire une prise de vue de l'objet réel et générer plusieurs cartes des profondeurs associées, à l'aide d'un capteur numérique, de préférence un capteur est du type RGBD ;
- des étapes pour fusionner les cartes de profondeurs associées à la prise de vue de l'objet en vue d’obtenir une carte apurée ; et,
-une étape pour comparer la carte apurée avec les cartes de la base de données, à l'aide du réseau neuronal convolutif.
De préférence, pour créer un modèle de la base numérique :
- on charge un objet numérique 3D ;
- on positionne virtuellement une caméra virtuelle sur des points d'observation autour de cet objet numérique, la caméra étant orientée en direction de l'objet.
- On fait des prises de vues virtuelles de sorte qu'on génère, depuis chaque point d'observation, une vue parfaite de l'objet numérique.
Avantageusement, chaque vue parfaite comprend une carte représentant, pour chaque sommet de l'objet numérique, une représentation de sa normale et de sa profondeur.
-3 De préférence, les points d'observation sont régulièrement répartis autour de l'objet. Ces points d'observation sont de préférence équidistants d'un barycentre de l'objet numérique, de préférence sur une sphère ou un cercle.
Avantageusement, l'étape de création d'un modèle de la base numérique comprend la génération, à partir de chaque vue parfaite, d'une vue bruitée de l'objet numérique, cette vue bruitée étant utilisée pour entraîner le réseau neuronal.
Plusieurs modes d’exécution de l’invention seront décrits ci-après, à titre d’exemples non limitatifs, en référence aux dessins annexés dans lesquels :
- la figure 1 est un organigramme décrivant sommairement un procédé de reconnaissance selon l'invention ;
- les figures 2 et 3 illustrent un positionnement de point d'observations pour un modèle d'objet à reconnaître ;
- la figure 4 illustre la construction d'un barycentre du modèle ;
- les figures 5A à 5D illustrent une vue d'un modèle à l'aide d'un système de composantes RGBD;
- les figures 6 à 9 illustrent la numérisation d'un objet réel à comparer avec le modèle ; et,
- la figure 10 illustre schématiquement un réseau neuronal utilisé pour comparer un objet réel avec un modèle.
La figure 1 illustre schématiquement un procédé 1 selon l'invention. Ce procédé doit permettre de reconnaître un objet réel, c’est-à-dire le faire correspondre à un objet virtuel (que nous appelons modèle) déjà connu. Ce procédé comprend d'abord la génération d'une base de données comprenant des définitions de ces modèles.
-4Dans une première branche 10 du procédé 1, on crée la base de données, qui contient des modèles prévus pour être comparés à un ou à des objets réels. Cette première branche 10 comprend une première étape 11 pour la création de vues multiples 2D (en deux dimensions) de chaque modèle à partir d’un fichier numérique représentant ce modèle en trois dimensions. Les fichiers numériques peuvent être des types .obj, .3ds, ou .stl, sans que cette liste soit limitative.
Dans la première branche 10 du procédé 1, une deuxième étape 11, comprend l'entrainement d'un Réseau Neuronal Convolutif (CNN) à reconnaître des vues du type de celles représentant les modèles.
Dans une deuxième branche 20 du procédé 1, on capture une image d'un objet réel, en vue de sa comparaison avec les modèles de la base de données.
La deuxième branche 20 comprend :
- une troisième étape 23 pour capturer l'image de l'objet réel avec un capteur RGBD ; et,
- une quatrième étape 24 pour fusionner des cartes de profondeurs correspondant à l'image capturée, en vue d'obtenir une carte des profondeurs apurée.
Le procédé comprend ensuite une cinquième étape 35, dans laquelle le réseau CNN compare la carte apurée de l'objet avec celles des modèles de la base de données de façon à obtenir une liste 37 de x meilleures correspondances parmi les modèles de la base avec l'image de l'objet réel.
Le procédé comprend ensuite une sixième étape 36 dans laquelle on fait une comparaison partielle des x meilleures correspondances avec l'image de l'objet
-5réel, de façon à choisir la meilleure correspondance 38 parmi les x meilleures 37.
Dans le procédé selon l’invention on utilise des fonctions mathématiques qui peuvent transformer un point de l’espace et sa normale en un point du type RGB; c’est-à-dire une fonction du type:
f : [[0;255]]3
En effet, les réseaux neuronaux couramment utilisés savent très bien reconnaître des images du type RGB.
Dans le mode de réalisation illustré, on peut décrire les valeurs RGB par les formules des types suivants :
Figure FR3065097A1_D0003
arccos
Figure FR3065097A1_D0004
Figure FR3065097A1_D0005
• B = 255
255 ^22 arccos π où 0 est un seuil pour les valeurs négatives et 255 est un seuil pour les valeurs au-dessus de 255.
Le repère Oxyz est un repère normé, dans lequel l'axe des abscisses x est dirigé vers la droite de la feuille, l’axe des ordonnées y est dirigé vers le haut de la feuille et le troisième axe est dirigé vers l’observateur.
Dans le mode de mise en œuvre illustré, on utilise un procédé de rendu utilisant une interface du type OpenGL. La génération de cette base de données comprend les étapes suivantes:
- on charge un objet numérique 3D, c'est à dire en trois dimensions, dans une mémoire numérique ;
-6- on positionne virtuellement une caméra virtuelle sur des points d'observation 100 autour de cet objet numérique, la caméra étant orientée en direction de l'objet. On fait des prises de vues virtuelles de sorte qu'on génère, depuis chaque point d’observation 100 :
- une vue parfaite de l'objet, c’est-à-dire sans défaut ; et,
- une vue bruitée de l'objet, c’est-à-dire une vue simulant l'acquisition que pourrait faire une caméra réelle d’un objet réel correspondant au modèle, vue selon un point d'observation identique.
io Pour générer la vue parfaite, on affecte à chaque sommet du modèle des couleurs correspondant à la normale et à la profondeur pour la vue courante. Pour compléter la carte des normales et des profondeurs de la vue bruitée, on utilise un algorithme de rendu qui sera présenté par la suite.
On va maintenant décrire comment on génère les points d'observation 100.
Comme illustré à la figure 2, pour un rayon R101, et un nombre NI00 de points d'observation donné, on génère des points d'observation 100 équidistants sur une sphère 101 de rayon RI01 de centre l'origine O de l'espace
Oxyz. Comme illustré à la figure 3, les points d'observation sont répartis sur des cercles parallèles 102 de la sphère 101. Chaque point est repéré par un angle de latitude A100 et un angle de longitude T100, mesuré autour de l'axe Y à partie du plan X, Y.
Le modèle 3D étant supposé disposé dans la sphère, pour chaque point d'observation, la caméra virtuelle étant dirigé vers le centre O de la sphère 101, on génère une vue parfaite et une vue bruitée de l'objet.
Chaque modèle est stocké en mémoire dans un fichier qui lui est propre, dans une bibliothèque spécialisée de type Assimp (Assimp est une contraction des
-7termes anglais Asset Import) ; il s'agit d'une bibliothèque spécialisée dans l'importation d'éléments. Lorsqu'on charge le modèle pour faire les prises de vues, on demande à la bibliothèque de faire un prétraitement du modèle de façon à obtenir un modèle triangulé 104, avec les normales de chacun de ses sommets, de sorte que chaque normale soit correctement orientée, c’est-à-dire dirigée vers l'extérieur de l'objet et non vers l'intérieur. Ensuite, les sommets et les normales sont stockés dans des zones de mémoire séparées, par groupes de trois, correspondants aux sommets et normales des faces, afin d'être utilisé avec OpenGL.
Le modèle doit être centré dans la sphère. Comme illustré à la figure 4, on détermine un barycentre G des centres G106 de chacune des faces 106 triangulaires du modèle triangulé 104, chaque centre G106 étant pondéré par l'aire A106 de la face 106 correspondant. Le barycentre G est une approximation suffisante d'un centre géométrique du modèle.
On fait ensuite coïncider le barycentre G avec le centre O de la sphère 101.
Pour faire les prises de vues, il faut aussi que la sphère 101 soit suffisamment 20 grande pour que le modèle soit entièrement visible sur chaque vue. Dans ce but, on calcule une distance maximale entre le barycentre G et les sommets et on utilise cette distance comme facteur d'échelle pour déterminer le rayon
R101 de la sphère 101.
Plusieurs modèles étant en mémoire, chacun des modèles constitue un fichier numérique respectif, les fichiers formant ensemble une liste de modèles. Pour créer la base de données on applique les étapes précédemment décrites :
- générer des points d'observation sur une sphère ; puis
- parcourir la liste des fichiers d'objets numériques 3D ;
pour chaque fichier de la liste:
-8- chargement du fichier ;
- prétraitement ;
- centrage du modèle relativement à la sphère ;
- mise à l'échelle de la sphère ;
- positionnement de la caméra virtuelle successivement sur chacun des points d'observation, en direction du centre de la sphère ;
- pour chaque point de d'observation, générer une vue parfaite et une vue bruitée.
Pour chaque position de la caméra virtuelle sur un point d'observation courant, on parcourt l'ensemble des sommets du modèle et normales de l'objet et on calcule les composantes R, G et B de chaque sommet à partir des normales et des profondeurs de la vue courante, à l'aide des formules précédemment définies. A ce point d'étape, la composante B représente une profondeur non normée du sommet dans la sphère 101 courante.
On obtient ainsi une vue parfaite du modèle à partir de chaque point d'observation.
Les figures 5A-5D illustrent une vue parfaite ainsi obtenue. La figure 5A illustre séparément les valeurs de la composante R, la figure 5B illustre séparément les valeurs de la composante G et la figure 5C illustre séparément les valeurs de la composante B. La figure 5D représente la vue parfaite issue de la fusion des trois composantes R, G et B.
Ayant ainsi obtenu une vue parfaite, on peut lire avec OpenGL, un fichier tampon regroupant les profondeurs utilisées pour cette vue. Le tampon comprend les profondeurs mesurées entre la caméra et chaque pixel dans la fenêtre de restitution. Les valeurs de profondeur ont la forme de valeurs flottantes comprises entre 0 et 1. Etant données ces profondeurs, on utilise une
-9fonction de déprojection qui permet d'obtenir des points 3D réels correspondant à chacune de ces profondeurs dans la fenêtre.
Ainsi, pour chaque indice i j de cette fenêtre et pour la profondeur du modèle à chaque pixel (i j), on donne les matrices de vue et de projection à une fonction de déprojection OpenGL. Cette fonction de déprojection fournit en retour les coordonnées du point 3D ayant cette profondeur et qui se projette en (i,j) dans la fenêtre. Il faut noter que ce point 3D n’est pas un des sommets du modèle chargé, mais peut se trouver n'importe où sur la surface du modèle. Ainsi, après avoir déprojeté l'ensemble de la carte des profondeurs, on obtient un nuage de points 3D, représentant partiellement un côté du modèle.
On utilise ce nuage de points 3D pour obtenir la vue bruitée, de façon à imiter une acquisition par une caméra réelle qui observerait depuis un même point d'observation un objet réel correspondant au modèle.
Dans l'exemple illustré, chaque point du nuage est bruité en utilisant deux déplacements aléatoires de type gaussien. L'un des déplacements se fait selon une direction radiale, c’est-à-dire selon une droite qui passe par le point et par la caméra. L'autre déplacement est un déplacement axial, c’est-à-dire perpendiculaire au précédent.
Pour les déplacements, on peut utiliser des règles empiriques, notamment celles décrites par C. V. Nguyen, S. Izadi, and D. Lovell, dans l'article Modeling Kinect Sensor Noise for Improved 3D Reconstruction and Tracking, in Visualization Transmission 2012 Second International Conférence on 3D Imaging, Modeling, Processing, Oct. 2012, pp. 524-530. DOI: 10.1109/3DIMPVT.2012.84.
-10Une fois chacun des points bruité, on calcule les normales en chacun d’eux, puis on calcule les composantes R, G et B de chaque point à partir des normales et des profondeurs de la vue courante, à l'aide des formules précédemment définies.
On obtient ainsi une vue bruitée du modèle à partir d'un point d'observation donné. Il suffit ensuite de reproduire ce procédé de bruitage pour chacune des vues parfaites.
On procède ensuite à une normalisation des vues.
En effet, si un objet a une forme très allongée, différentes vues auront différentes tailles. Ainsi, pour un cylindre long et étroit, une première vue peut être un rectangle long et une deuxième vue peut être un cercle très petit. Le but de la normalisation est que pour chaque vue, l'image finale ait la même dimension maximale. Ainsi, dans l’exemple du tuyau, que le diamètre du cercle soit identique à la longueur du rectangle.
Pour chaque vue, parfaite ou bruitée, on calcule une distance entre le pixel non noir le plus éloigné du centre de la vue et on met la vue à l’échelle, de sorte que ce pixel soit sur un cercle de rayon donné autour du centre de la vue.
On obtient ainsi une vue normée, parfaite ou bruitée, que l’on sauvegarde en mémoire.
La base de données est ainsi constituée d'une liste de modèles et pour chaque modèle des vues normées parfaites et des vues normées bruitées prises depuis chacun des points d'observation.
-11 Le but de l'invention est de pouvoir reconnaître un objet, réel, c’est-à-dire de pouvoir associer cet objet à un modèle correspondant de la base de données.
Pour cela, on capture une image de l’objet à l'aide d'un capteur 110 (voir figure 6 et suivantes) de type RGBD, c’est-à-dire d'un capteur capable de mesurer la profondeur (D=Depth, profondeur en anglais). Un tel capteur peut être un capteur du type Intel Realsensor®. Cependant, les capteurs actuels sont généralement insuffisamment précis pour permettre la reconnaissance d'objet 3D. Les images obtenues peuvent comprendre des valeurs aberrantes, des trous, des mesures imprécises sur des surfaces qui ne sont pas perpendiculaires à la direction de la vision.
Pour répondre à ces difficultés, selon un procédé selon l’invention, on fusionne plusieurs cartes de profondeur dans le but de compenser les défauts de chacune et pour obtenir une carte des profondeurs améliorée à partir de toutes les autres.
Pour réaliser une telle fusion, on peut s'inspirer de l'algorithme Kinectfusion™. Voir: R. A. Newcombe, S. Izadi, O. Hilliges, D. Molyneaux, D. Kim, A. J. Davison, P.Kohli, J. Shotton, S. Hodges, and A. Fitzgibbon, Kinectfusion: Real-time Dense Surface Mapping and Tracking, in Proceedings of the 2011 lOth IEEE International Symposium on Mixed and Augmented Reality, ser. ISMAR'll, Washington, DC, USA: IEEE Computer Society, 2011, pp.127-136, ISBN:978-1-4577-2183-0. DOI: 10.1109/ ISMAR.2011.6092378. [Online]. Available: http://dx.doi.org/10.1109/ISMAR. 2011.6092378.
On va maintenant décrire l'algorithme utilisé.
On considère :
-12- un ensemble D, de cartes de profondeurs, où i E [fO, n — lfl , chacune d’elles prise lors d'une pose Tj, à partir desquelles on veut construire une carte des profondeurs de meilleur qualité Dm ;
- une fonction π(χ) qui fait la projection sur l'écran d'un point x de l'espace tridimensionnel, cette fonction étant choisie parmi de nombreuses existantes et étant supposée connue ;
- une carte de correspondance des normales pour chaque carte de profondeur D; capturée.
Sur chaque pixel X on applique la mesure de profondeur pour déprojeter le pixel : π ΐ(Χ) appartenant à l'espace tridimensionnel. En supposant que l'on ait une mesure valide sur les pixels X, Xb et Xr, où Xb est le pixel en dessous du pixel X et Xr est le pixel à droite du pixel X, alors la mesure de la normale N(X) correspondante est :
N(X) = (π'(ΧΓ) -if'(X) ) x (π '(Χ„) ^'(X))
Où x est le produit croisé de deux vecteurs de l'espace tridimensionnel.
Une caractéristique importante de l'algorithme est l'utilisation d'une matrice 111 de voxels (contraction de volume élément). Cette matrice est une représentation discrétisée de la portion d'espace qui est à reconstruire. Son origine est donnée par la première prise To. La profondeur minimale mina et la profondeur maximale maxd de l'objet sont supposées connues et imposées. Comme particulièrement illustré à la figure 6, la longueur Lg de la matrice 111 de voxels est donnée par la formule :
Lg = maxd - mina
Pour définir la largeur Wg et la hauteur Hg de la matrice 111, on choisit la dimension du champ de la caméra utilisant le capteur à une distance égale à la profondeur maximale maxd.
- 13 A la figure 6, F est le point focal, f est la distance focale, 0110 est le centre du capteur, c’est-à-dire l'intersection avec le plan du capteur d'une perpendiculaire à ce plan passant par le point focal E Un objet image 112, image de l’objet réel, est représenté à l’intérieur de la matrice 111.
Pour chaque Voxel, on garde à jour trois valeurs:
- la première est la valeur notée TSDF d’une fonction distance (TSDF est un acronyme pour : truncated signed distance fimction, en anglais, ou fonction distance signée tronquée, en français)
- la deuxième est un poids représentant la confiance que l'on peut avoir dans la valeur de la fonction distance ; et,
- une valeur booléenne d'activation, qui permet d'ignorer un voxel pour lequel on n'a pas de valeur pour la fonction TSDF.
Ainsi, chaque voxel est définit par :
- des coordonnées dans la matrice 111 ;
- sa valeur TSDF ;
- son poids de confiance ; et,
- sa valeur d'activation.
Si nmax est le nombre maximal de voxels que peut traiter la machine mettant en œuvre le procédé selon l'invention, un côté d’un voxel cubique a pour dimension d, avec:
Fhriax
Et le nombre de voxels selon chaque direction de la matrice est :
Wg Hg Lg nw = nH - nL =
Figure FR3065097A1_D0006
- 14Comme illustré à la figure 7, l'origine pour décrire les cordonnées des voxels est un point A dont les coordonnées sont :
Figure FR3065097A1_D0007
Pour un voxel (i j,k), ses coordonnées peuvent être formulées comme suit:
f w9 -a Hg -j —γ + ιά, —ψ + jd, mmd + kd I i e [0, nw - IJ, je [0, na - 1], k G [0, riL - 1]
La valeur TSDF d'un voxel peut être interprétée comme la distance signée entre le voxel et la plus proche surface. Cela signifie que pour un voxel proche du capteur 110 la valeur TSDF est négative et qu'elle augmente à mesure où le voxel s'éloigne du capteur. La valeur TSDF franchit 0 (zéro) lorsqu'une surface est franchie.
Une telle représentation a l'avantage que, pour chaque carte des profondeurs Di acquise à l'aide du capteur 110, on peut déterminer la valeur TSDF de chaque voxel. Fusionner les cartes de profondeurs revient à faire une moyenne des valeurs TSDF.
La figure 8 illustre la détermination de la valeur TDSF moyenne d'un voxel à partir des cartes Di pour un point pg (Px,py,pz) correspondant à un voxel 114 de la matrice 111, la transformation euclidienne R qui relie une pose courante Ti de la caméra avec la pose initiale To étant supposée connue.
Pg = Rpi + T où: pj est le point dans le repère de la prise d'origine To; et, pg est le point dans le repère de la prise courante Ti
On veut d'abord connaître les coordonnées du point courant dans le repère de la prise courante:
Figure FR3065097A1_D0008
—lt 'i/’ /)
Figure FR3065097A1_D0009
On doit ensuite trouver la meilleure approximation pour le pixel X projeté correspondant à ps :
X =
On appelle D(X) la mesure de la profondeur au pixel X et on peut déterminer la valeur TDSF notée f par la formule suivante :
= sgn/η) min
Figure FR3065097A1_D0010
I : k. ·
Comme dit précédemment, un poids est affecté à cette valeur pour exprimer la confiance dans la mesure de la profondeur. Cette confiance est d'autant plus grande que la surface autour de la mesure est vue perpendiculairement par le capteur et que la mesure de profondeur n’est pas trop grande. La définition choisie pour un tel poids ω est :
cos($) mx} où Θ est l'angle entre la normale locale à la surface et la direction de la mesure, telle qu’illustré à la figure 8.
Lorsqu'il n'y a pas de mesure de profondeur pour un pixel X, c’est-à-dire que la valeur D(X)=0, on ne met pas à jour la valeur TSDF et un pixel X n’est activé que s'il y a une mesure valide correspondante.
Comme on l'a dit, la représentation de l'objet qui doit être utilisée est basée sur l'association d'une carte des profondeurs et d'une table les normales correspondante. Ainsi la représentation des valeurs TSDF brutes n'est pas suffisante pour représenter l'objet. Il est nécessaire d'en déduire une carte des profondeurs dans la prise initiale.
-16Pour faire ceci, on tire avantage du fait que la structure en voxel est alignée avec la caméra dans la position de la première prise. En conséquence, comme illustré à la figure 9, pour déterminer la mesure de profondeur du pixel X sur l'écran, il suffit de déterminer les intersections il - i4 entre le rayon 116 issu du point focal F et passant par le pixel X et les tranches k successives de voxels. On sait que l'on franchit une surface lorsque la valeur TSDF passe d'une mesure négative à une mesure positive, sachant que l'on ne tient compte d'une mesure que si le voxel est actif, comme cela a été dit précédemment.
Une méthode utilisée pour estimer la position de la caméra est décrite dans :
K.-L. Low, Linear Least-Squares Optimization for Point-to-Plane ICP Surface Registration, ResearchGate, Jan.2004.
[Online] Available:
https://www.researchgate.net/publication/228571031_Linear_Least-Squares_ Optimization_for_Point-to-Plane_ICP_Surface_ Registration
Pour effectuer une segmentation, on suppose que l'objet repose sur une table. De ce fait, on utilise un algorithme du type RANSAC standard, tel que présenté dans le document:
M. A. Fischler and R. C. Bolles, Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography, Commun. ACM, vol. 24, no. 6, pp. 381(395, Jun. 1981, ISSN: 0001-0782. DOI: 10.1145/358669.358692.
[Online]. Available: http://doi.acm.org/10.1145/358669.
Le procédé de reconnaissance selon l'invention utilise un Réseau Neuronal Convolutif.
- 17Dans ce procédé, un problème important vient de ce que les vues générées à partir des modèles 3D sont des vues parfaites, alors que les vues de l'objet obtenues à l'aide du capteur RGBD 110 sont bruitées et pas totalement exactes.
Pour répondre à ce problème on met en œuvre un apprentissage par transfert comme cela est expliqué dans le document suivant:
H. Su, S. Maji, E. Kalogerakis, and E. Leamed-Miller, \Multi-view Convoîutional Neural Networks for 3d Shape Récognition, ArXiv: 1505.00880 [es], May 2015,arXiv: 1505.00880.
[Online]. Available: http://arxiv.Org/abs/l 505.00880
On utilise un réseau 121 qui a été entraîné sur une très grande base de données d'images 2D (en deux dimensions). Dans l'exemple illustré on utilise la base ImageNet (www.image-net.org), et on spécialise ce réseau pour un usage selon l'invention. Comme plus spécifiquement illustré par la figure 10, on utilise les premières couches 121 de ce réseau pré-entrainé 120 en tant qu'extracteur de caractéristiques 123. Des secondes couches 122, spécialisées, sont ajoutées. Ces secondes couches 122 sont ensuite entraînées pour réaliser une classification des données.
Bien sûr, l'invention n'est pas limitée aux modes de réalisation préférés qui viennent d’être décrits mais, au contraire, l'invention est définie par les revendications qui suivent.
Il apparaîtra en effet à l'homme de l'art que diverses modifications peuvent être apportées aux modes de réalisation décrits ci-dessus, à la lumière de l'enseignement qui vient de lui être divulgué.
Aussi, au lieu d’être positionnés sur une sphère, les points d'observations peuvent l'être seulement sur un cercle.

Claims (4)

  1. Revendications
    1. Procédé (1) pour reconnaître un objet réel, en trois dimensions, caractérisé en ce qu’il comprend les étapes suivantes :
    -créer (10) une base de modèles numériques d'objets à reconnaître, chaque modèle comprenant au moins une carte des profondeurs à partir d'un objet numérique 3D ;
    - entraîner (11) un réseau neuronal convolutif (CNN) à la reconnaissance de modèles de la base de données ;
    - faire (23) une prise de vue de l'objet réel et générer plusieurs cartes des profondeurs associées, à l'aide d'un capteur numérique (110), de préférence un capteur est du type RGBD ;
    - fusionner (24) lesdites cartes de profondeurs associées à la prise de vue de l'objet en vue d'obtenir une carte apurée ; et,
    - comparer (35) ladite carte apurée avec les cartes de la base de données, à l'aide dudit réseau neuronal convolutif (CNN).
  2. 2. Procédé selon la revendication 1, caractérisé en ce que pour créer un modèle de la base numérique :
    - on charge un objet numérique 3D ;
    - on positionne virtuellement une caméra virtuelle sur des points d'observation (100) autour de cet objet numérique, la caméra étant orientée en direction de l’objet.
    - On fait des prises de vues virtuelles de sorte qu'on génère, depuis chaque point d'observation (100), une vue parfaite de l'objet numérique.
  3. 3. Procédé selon la revendication 2, caractérisé en ce que l'étape de création d'un modèle de la base numérique comprend la génération, à partir de chaque vue parfaite, d'une vue bruitée de l'objet numérique, ladite vue bruitée étant utilisée pour entraîner le réseau neuronal (CNN).
    -194. Procédé selon l'une des revendications 2 et 3, caractérisé en ce que chaque vue parfaite comprend une carte représentant, pour chaque sommet de l'objet numérique, une représentation de sa normale et de sa
  4. 5 profondeur.
    5. Procédé selon l'ime des revendications 2 à 4, caractérisé en ce que les points d'observation (100) sont régulièrement répartis autour de l'objet.
    îo 6. Procédé selon l’une des revendications 2 à 4, caractérisé en ce que les points d’observation (100) sont équidistants d’un barycentre (G) de l’objet numérique, de préférence sur une sphère (101) ou un cercle.
    ’ · · · · · ' 0 <
    t ··♦··* * · · · · *’·*
    X : )
    5/5
FR1753142A 2017-04-11 2017-04-11 Procede automatise de reconnaissance d'un objet Active FR3065097B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1753142A FR3065097B1 (fr) 2017-04-11 2017-04-11 Procede automatise de reconnaissance d'un objet
PCT/IB2018/052360 WO2018189627A1 (fr) 2017-04-11 2018-04-05 Procédé automatisé de reconnaissance d'un objet

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1753142A FR3065097B1 (fr) 2017-04-11 2017-04-11 Procede automatise de reconnaissance d'un objet
FR1753142 2017-04-11

Publications (2)

Publication Number Publication Date
FR3065097A1 true FR3065097A1 (fr) 2018-10-12
FR3065097B1 FR3065097B1 (fr) 2019-06-21

Family

ID=60450704

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1753142A Active FR3065097B1 (fr) 2017-04-11 2017-04-11 Procede automatise de reconnaissance d'un objet

Country Status (2)

Country Link
FR (1) FR3065097B1 (fr)
WO (1) WO2018189627A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109697428B (zh) * 2018-12-27 2020-07-07 江西理工大学 基于rgb_d和深度卷积网络的无人机识别定位系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"ICEC 2006", vol. 8694, 1 January 2014, SPRINGER INTERNATIONAL PUBLISHING, Cham, ISBN: 978-3-642-01969-2, ISSN: 0302-9743, article SHURAN SONG ET AL: "Sliding Shapes for 3D Object Detection in Depth Images", pages: 634 - 651, XP055446917, 032548, DOI: 10.1007/978-3-319-10599-4_41 *
BANSAL AAYUSH ET AL: "Marr Revisited: 2D-3D Alignment via Surface Normal Prediction", 2016 IEEE CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), IEEE, 27 June 2016 (2016-06-27), pages 5965 - 5974, XP033021795, DOI: 10.1109/CVPR.2016.642 *
BENJAMIN PLANCHE ET AL: "DepthSynth: Real-Time Realistic Synthetic Data Generation from CAD Models for 2.5D Recognition", 27 February 2017 (2017-02-27), XP055366521, Retrieved from the Internet <URL:https://arxiv.org/pdf/1702.08558.pdf> [retrieved on 20180201] *

Also Published As

Publication number Publication date
FR3065097B1 (fr) 2019-06-21
WO2018189627A1 (fr) 2018-10-18

Similar Documents

Publication Publication Date Title
US10499031B2 (en) 3D reconstruction of a real object from a depth map
US20180012411A1 (en) Augmented Reality Methods and Devices
Artusi et al. A survey of specularity removal methods
EP2724203B1 (fr) Génération de données de carte
EP3803682A1 (fr) Reconnaissance d&#39;objet à l&#39;aide d&#39;un appareil photo multispectral et de profondeur
WO2019091787A1 (fr) Procédé d&#39;estimation de pose d&#39;une caméra dans le référentiel d&#39;une scène tridimensionnelle, dispositif, système de réalite augmentée et programme d&#39;ordinateur associé
EP3401879A1 (fr) Procédé de modélisation d&#39;un objet tridimensionnel à partir d&#39;images bidimensionnelles de cet objet prises sous différents angles
EP2491532A1 (fr) Procede, programme d&#39;ordinateur et dispositif de suivi hybride de representations d&#39;objets, en temps reel, dans une sequence d&#39;images
JP5833507B2 (ja) 画像処理装置
O'Byrne et al. A stereo‐matching technique for recovering 3D information from underwater inspection imagery
EP2593907A1 (fr) Procédé de détection d&#39;une cible dans des images stéréoscopiques par apprentissage et classification statistique à partir d&#39;une loi de probabilité
FR3047103A1 (fr) Procede de detection de cibles au sol et en mouvement dans un flux video acquis par une camera aeroportee
Chen et al. A closed-form solution to single underwater camera calibration using triple wavelength dispersion and its application to single camera 3D reconstruction
CN118159997A (zh) 使用神经网络对深度图像数据去噪
Zelenskii et al. Robot navigation using modified SLAM procedure based on depth image reconstruction
FR3065097B1 (fr) Procede automatise de reconnaissance d&#39;un objet
Wang et al. High accuracy hole filling for Kinect depth maps
Gu et al. Robust illumination invariant depth recovery by combining local phase and intensity information of images
EP1095358B1 (fr) Procede de modelisation d&#39;objets ou de scenes 3d
Zhao et al. IRPSM-net: Information retention pyramid stereo matching network
EP3757943B1 (fr) Procédé et dispositif de télémétrie passive par traitement d&#39;image et utilisation de modeles en trois dimensions
Thisse et al. 3D Dense & Scaled Reconstruction Pipeline with Smartphone Acquisition
Richter et al. A discriminative approach to perspective shape from shading in uncalibrated illumination
Medina et al. Exploring opto-electronic approaches for an accurate face reconstruction
Peña et al. Deep-learning enabled single-shot 3D feature detection in fringe projection profilometry

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20181012

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7