FR 3065097 A1 20181012 FR 1753142 A 20170411 1 10 La présente invention se rapporte au domaine de la reconnaissance automatisée de formes en trois dimensions, par une machine. On connait des capteurs d'image du type "RGBD" (acronyme anglais de "RedGreen-Blue-Depth" pour "Rouge-Vert-Bleu-Profondeur") qui permettent de 15 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 20 d'identifier cet objet. En outre, on connait l'algorithme nommé "ICP" (acronyme anglais de "Iterative Closest Point" ou "Iterative Corresponding Point"), permet de rapprocher deux vues partielles d'un même objet, chacune représentée par un 25 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. 3065097 2 L'invention a pour but de proposer un système et un procédé qui permettent de reconnaitre 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. 5 Selon l'invention, un tel procédé pour reconnaitre 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 à reconnaitre, chaque modèle comprenant au moins une carte des profondeurs à partir d'un objet numérique 3D ; - des étapes pour entrainer 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 30 de sa profondeur. 3065097 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. 5 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 entrainer le réseau neuronal. 10 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 ; 15 - les figures 2 et 3 illustrent un positionnement de point d'observations pour un modèle d'objet à reconnaitre ; 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; 20 - 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. 25 La figure 1 illustre schématiquement un procédé 1 selon l'invention. Ce procédé doit permettre de reconnaitre 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. 3 0 6 5 0 9 7 4 Dans 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 5 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 10 l'entrainement d'un Réseau Neuronal Convolutif (CNN) à reconnaitre 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. 15 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 20 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 25 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 3065097 -5 ré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 5 peuvent transformer un point de l'espace et sa normale en un point du type RGB; c'est-à-dire une fonction du type: f: R64 [[0;255]]3 En effet, les réseaux neuronaux couramment utilisés savent très bien reconnaitre des images du type RGB. 10 Dans le mode de réalisation illustré, on peut décrire les valeurs RGB par les formules des types suivants : R - 255255 angle( ex 7r arccos 7r 255 - gle(ey, 7r 255 - = an 7r arccos - B = 255 où 0 est un seuil pour les valeurs négatives et 255 est un seuil pour les valeurs 15 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. 20 Dans le mode de mise en oeuvre 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 25 mémoire numérique ; 306 509 7 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 : 5 - 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. 10 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. 15 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 N100 de points d'observation donné, on génère des points d'observation 100 équidistants sur une sphère 101 de rayon R101 de centre l'origine O de l'espace 20 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. 25 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 30 une bibliothèque spécialisée de type Assimp (Assimp est une contraction des 306 509 7 -7 termes 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 5 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. 10 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 15 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. 25 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 ; 30 pour chaque fichier de la liste: 306 5 097 8 chargement du fichier ; - prétraitement ; centrage du modèle relativement à la sphère ; mise à l'échelle de la sphère ; 5 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. 10 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 15 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. 20 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. 25 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 30 flottantes comprises entre 0 et 1. Etant données ces profondeurs, on utilise une 306 509 7 9 fonction 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 à 5 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, 10 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 15 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 20 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 25 "Modeling Kinect Sensor Noise for Improved 3D Reconstruction and Tracking", in Visualization Transmission 2012 Second International Conference on 3D Imaging, Modeling, Processing, Oct. 2012, pp. 524-530. DOI: 10.1109/3DIMPVT.2012.84. 3065097 - 10 - Une 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. 5 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. 10 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 15 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 20 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. 25 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. 3065097 Le but de l'invention est de pouvoir reconnaitre 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 5 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 10 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 15 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 "KinectfusionTM". Voir: R. A. Newcombe, S. Izadi, O. Hilliges, D. Molyneaux, 20 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 10th IEEE International Symposium on Mixed and Augmented Reality, set ISMAR' 11, Washington, DC, USA: IEEE Computer Society, 2011, pp.127-136, ISBN:978-1-4577-2183-0. DOI: 10.1109/ 25 ISMAR.2011.6092378. [Online]. Available: http://dx.doi.org/10.1109/ISMAR. 2011.6092378. On va maintenant décrire l'algorithme utilisé. 30 On considère : 3065097 - 12 - - un ensemble D, de cartes de profondeurs, où i E n - ifi , chacune d'elles prise lors d'une pose Ti, à partir desquelles on veut construire une carte des profondeurs de meilleur qualité Dm ; - une fonction n(x) qui fait la projection sur l'écran d'un point x de l'espace 5 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 Di capturée. 10 Sur chaque pixel X on applique la mesure de profondeur pour déprojeter le pixel : n-1(X) 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 Xi. est le pixel à droite du pixel X, alors la mesure de la normale N(X) correspondante est : 15 N(X) = (If 1(X,) -n1(X) (1r-'(Xb) -1E-1(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 20 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 mind 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 : 25 Lg = maxd - mind 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. 3 06 509 7 - 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 F. Un "objet image" 112, image de l'objet réel, est représenté à l'intérieur de la matrice 111. 5 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 function", en anglais, ou "fonction distance signée tronquée", en français) 10 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. 15 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. 20 Si nmax est le nombre maximal de voxels que peut traiter la machine mettant en oeuvre le procédé selon l'invention, un côté d'un voxel cubique a pour dimension d, avec: 25 Et le nombre de voxels selon chaque direction de la matrice est : 147g H q L9 11W = d d' - nL = -d 3065097 - 14 - Comme illustré à la figure 7, l'origine pour décrire les cordonnées des voxels est un point A dont les coordonnées sont : w29 , H 29 5 Pour un voxel (i,j,k), ses coordonnées peuvent être formulées comme suit: 1/1/;9 + id, I 1 12 q j d, min + nyv - j e [[o, ni/ - e n - 111 10 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. 15 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. 20 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,p,) 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 25 Pg Rpi + T où: pi 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 connaitre les coordonnées du point courant dans le repère de 30 la prise courante: pl 3065097 5 - 15 - On doit ensuite trouver la meilleure approximation pour le pixel X projeté correspondant à pl: 7 ) On appelle D(X) la mesure de la profondeur au pixel X et on peut détel miner la valeur TDSF notée f par la formule suivante : X 10 = pi,, - D(X) 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 15 choisie pour un tel poids w est : w = D(X) où 0 est l'angle entre la normale locale à la surface et la direction de la mesure, telle qu'illustré à la figure 8. 20 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. 25 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. cos(9) 30 306 509 7 - 16 - Pour 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 5 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. 10 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_ 15 Optimizationfor_Point-to-Plane JCP_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: 20 M. A. Fischler and R. C. Bolles, "Random Sample Consensus: A Paradigm for Mode! 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. 25 Le procédé de reconnaissance selon l'invention utilise un Réseau Neuronal Convolutif. 306 509 7 - 17 - Dans 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. 5 Pour répondre à ce problème on met en oeuvre un "apprentissage par transfert" comme cela est expliqué dans le document suivant: H. Su, S. Maji, E. Kalogerakis, and E. Learned-Miller, \Multi-view Convolutional Neural Networks for 3d Shape Recognition", ArXiv:1505.00880 [cs], May 2015,arXiv: 1505.00880. 10 [Online] . Available: http://arxiv.orgiabs/1505.00880 On utilise un réseau 121 qui a été entrainé 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 15 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 entrainées pour réaliser une classification des données. 20 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. 25 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 30 peuvent l'être seulement sur un cercle. REVENDICATIONS1. Procédé (1) pour reconnaitre 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 ; - entrainer (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. 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. 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 entrainer le réseau neuronal (CNN). 3065097 -19- 4. 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 5 profondeur. 5. Procédé selon l'une des revendications 2 à 4, caractérisé en ce que les points d'observation (100) sont régulièrement répartis autour de l'objet. 10 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.