Brevet FR3148854A1 — publié le 20241122

L’invention concerne un procédé d’identification d’une pièce au moyen d’un réseau de neurones de convolution permettant de déterminer si une image d’entrée correspond à un type de pièce prédéterminé au moyen d’une phase d’apprentissage au cours de laquelle plusieurs images de chaque type de pièce prédéterminé sont utilisées, le réseau de neurones de convolution comportant les couches suivantes disposées les unes à la suite des autres pour traiter l’image d’entrée : - deux couches de convolution (conv3-64) ; - une couche de regroupement (maxpool) ; - deux couches de convolution (conv3-128) ; - une couche de regroupement ; - quatre couches de convolution (conv3-256) ; - une couche de regroupement ; - quatre couches de convolution (conv3-512) ; - une couche de regroupement ; - deux couches de convolution (conv3-512) ; - une couche de regroupement ; - trois couches d'interconnexion (FC-4096, FC-1000) ; et - une couche identification (Soft-max). Figure pour abrégé : Fig 2 PROCEDE D’IDENTIFICATION D’UNE PIECE AU MOYEN D’UN RESEAU DE NEURONES DE CONVOLUTION Domaine de l’invention L'invention concerne un procédé permettant d'identifier une pièce, par exemple une pièce d'un appartement, d'une maison ou d'un local industriel. Pour ce faire, l'invention vise plus précisément un procédé d'identification d'une pièce mettant en œuvre un réseau de neurones de convolution, c'est-à-dire un algorithme spécifique d'intelligence artificielle permettant de réaliser une identification d’une image ou d’un flux d’images. Le but de l'invention est de limiter le taux d’erreur sur l’identification d’un type de pièce. L'invention peut être appliquée dans tous les domaines pour lesquels il est recherché d'identifier une pièce, par exemple pour guider des installateurs, des techniciens ou des robots. Ainsi, l’invention peut être utilisée pour guider les déplacements d’un robot entre plusieurs salles d’une usine ou encore détecter la pièce dans laquelle un technicien est positionné. L’invention trouve une application particulièrement avantageuse pour détecter automatiquement le type de pièces d'une habitation et faciliter l'évaluation des sinistres pour un expert. Etat de la technique Pour identifier automatiquement une pièce au moyen d’une image ou d’un flux d’images issues d'une caméra, par exemple captées par un téléphone intelligent, il est possible d'utiliser des réseaux de neurones. En effet, les réseaux de neurones sont aujourd'hui connus pour leur capacité d’identification. En distinguant des objets caractéristiques d'une pièce, ces réseaux de neurones devraient être efficaces pour caractériser une pièce et, ainsi, reconnaitre si un expert est positionné dans une pièce ou une autre d’une habitation. Par exemple, en détectant un lit, une commode, deux tables de chevet, les réseaux neurones devraient être capables de détecter une chambre par rapport à un salon dans lequel une table basse et un canapé seraient détectés. Cependant, les algorithmes de réseaux de neurones testés dans le cadre de l'invention se révèlent peu efficaces pour distinguer des pièces proches. Par exemple, les algorithmes testés présentent un taux d’erreur important lorsqu’il s’agit de différencier une cuisine d'une salle de bain. En effet, ces deux pièces intègrent des meubles avec des dimensions proches ainsi qu'au moins un point d'eau, tel qu’un évier. Il est donc recherché d'obtenir un réseau de neurones particuliers permettant d'améliorer la détection des pièces, notamment la détection des pièces d'une maison ou d'un appartement. Un réseau de neurones d'identification est une structure mathématique dans laquelle une image d'entrée est comparée à des images d'apprentissage pour détecter si l'image d'entrée correspond ou non à un des labels associés aux images d'apprentissage. Par exemple, s'il est recherché de différencier une cuisine d'une salle de bain, des images correspondantes à des salles de bains et des images correspondantes à des cuisines sont utilisés pour l'apprentissage d’un réseau de neurones. Ensuite, lorsqu'une image est placée en entrée du réseau neurones, celui-ci doit être capable de distinguer si l'image présentée correspond à une salle de bain, une cuisine ou ne correspond à aucune des images apprises. Il existe une très grande variété de réseaux de neurones mais les réseaux de neurones sont globalement construits avec un ensemble de neurones interconnectés par couches, dans lesquels les neurones de chaque couche réalisent la même fonction mathématique. En outre, chaque neurone est typiquement associé à une fonction d'activation dans laquelle un ou plusieurs paramètres peuvent être modifiés au cours de la phase d'apprentissage. Cette fonction d'activation peut prendre un grand nombre de formes et, dans la littérature, on retrouve des fonctions d'activation de type « SIGMOID », de type « TANH », de type « RELU », de type « LEAKY RELU », de type « MAX OUT », ou encore de type « ELU », pour ne citer que celles-ci. Ainsi, pour construire un réseau de neurones, il est nécessaire de définir les fonctions mathématiques de chaque neurone, les fonctions d'activation, ainsi que les interconnexions entre ses neurones. Ensuite, il est possible de réaliser la phase d'apprentissage et de vérifier que les résultats attendus de ce réseau de neurones répondent aux besoins de l'application. Compte tenu du nombre croissant de neurones utilisés dans les réseaux de neurones, des multiples possibilités d’interconnexion et des multiples possibilités de définition des fonctions mathématiques et des fonctions d'activation, il n’est pas possible de tester toutes les possibilités de construction d’un réseau de neurones pour une application précise. Pour simplifier ce travail de construction d’un réseau de neurones, plusieurs familles de réseaux de neurones ont été développées au cours de nombreuses recherches et il apparaît que les réseaux de neurones de convolution sont particulièrement performants pour les besoins d'identification, par exemple pour distinguer un chat d'un chien ou encore pour reconnaître des caractères manuscrits. Ces réseaux de neurones de convolution intègrent des couches qui réalisent des fonctions mathématiques de convolution sur les images présentes en entrée de ces couches. Pour chaque couche de neurones effectuant une convolution, il convient de définir la taille du filtre de convolution appliquée sur l'image d'entrée de sorte qu'un premier neurone réalise une convolution sur une première imagette de l’image d’entrée, qu'un second neurone réalise une convolution sur une seconde imagette de l’image d’entrée et ainsi de suite pour couvrir toute l’image d’entrée. Outre la taille du filtre de convolution, il convient également de définir comment gérer les déplacements entre deux filtres, également appelé « stride » dans la littérature anglo-saxonne, et le redimensionnement des images issues de ces filtres, également appelé « padding » dans la littérature anglo-saxonne. Le déplacement entre deux filtres peut être défini par le nombre de décalage de pixels entre l’application d’un filtre et l’application du filtre suivant. Le redimensionnement peut être utilisé ou non. Lorsqu’il n’est pas utilisé, la couche de convolution est définie par un « VALID padding » et les images issues de la couche de convolution sont de tailles inférieures à celles présentes en entrée de cette couche. Lorsque le redimensionnement est utilisé, la couche de convolution est définie par un « SAME padding » et le redimensionnement vise à donner autant d’influence aux pixels de bordures qu’aux autres pixels. Ce redimensionnement permet de limiter l’effet de bord. Typiquement, un pixel situé sur le bord d’une image sera utilisé pour moins de neurones de la couche de convolution que les autres pixels. Les pixels de bord auront donc moins d’influence sur l’ensemble des images de sortie. Pour limiter cet effet de bord, le redimensionnement augmente la taille de la matrice initiale avec des zéros tout autour des pixels de bord, de sorte que ces pixels ne soient pas sous-représentés. Ainsi, pour une couche de convolution, il est possible de définir l'ensemble des neurones en sélectionnant : - la taille du filtre, - les déplacements entre deux filtres, - le redimensionnement, et - la fonction d’activation. Cette couche de convolution permet typiquement de détecter des éléments saillants dans l'image d'entrée de la couche de convolution. Cependant, l’utilisation d'une seule couche de convolution est insuffisante pour caractériser des objets complexes, tel que différents types de pièces. Pour ce faire, il est nécessaire d'utiliser de multiples couches de convolution placées les unes à la suite des autres pour détecter des éléments saillants sur des éléments saillants précédemment détectés, et ainsi de suite. Cependant, l’utilisation d’une couche de convolution génère une augmentation du volume de données car chaque filtre de la couche de convolution génère une imagette en sortie de la couche de convolution. En utilisant une seconde couche de convolution après une première couche de convolution, la seconde couche de convolution comporte des neurones pour traiter toutes les imagettes issues de la première couche de convolution, si bien que la multiplication des couches de convolution entraine une augmentation importante du volume de données et du temps de traitement. Pour réduire ce volume de données entre deux couches de convolution, il est connu d’utiliser des couches de regroupement, également appelé « pooling » dans la littérature anglo-saxonne. Ces couches de regroupement permettent de limiter le volume de données en appliquant un filtre sur les imagettes en sortie des couches de convolution et en conservant un seul pixel pour l’ensemble des pixels présents dans le filtre. Une fois encore, lorsqu'il est choisi d'utiliser une couche de regroupement, plusieurs possibilités de regroupement sont possibles. En effet, il est nécessaire de sélectionner : - la taille du filtre, - la fonction mathématique de regroupement, par exemple par la détection de la valeur moyenne des pixels ou de la valeur maximale, - le déplacement entre deux filtres, et - le redimensionnement. Outre ces couches de convolution et de regroupement, il existe également un grand nombre de couches potentiellement utilisables, tels que des couches d'interconnexion également appelées « fully connected » dans la littérature anglo-saxonne. Ces couches d'interconnexion permettent d'interconnecter tous les résultats précédemment obtenus par les neurones des couches de convolution ou de regroupement. Pour construire un réseau de neurones de convolution, il convient donc de définir la taille des images d’entrée, le nombre de couches de convolution, de regroupement et d’interconnexion et de les configurer avec les paramètres précédemment décrits. Compte tenu des multiples implémentations possibles pour tous ces choix, il n’est pas possible de tester toutes les possibilités de construction d’un réseau de neurones de convolution pour une application précise. Pour faciliter l'implémentation d'un réseau de neurones de convolution, un grand nombre de standards ont été défini dans les publications scientifiques afin qu'un homme du métier puisse détecter quel réseau de neurones serait a priori pertinent pour son application. Dans le cas spécifique de l'identification d'objets, les réseaux de neurones de type VGG, pour « Visual Geometry Group » dans la littérature anglo-saxonne, présentent des performances particulièrement intéressantes. Ces réseaux de neurones de type VGG intègrent des caractéristiques fixes, telles que la taille des images d’entrée en 224 par 224 pixels et des paramètres prédéfinis pour les couches de convolution et de regroupement. Plus précisément, tel qu'illustré sur le tableau de la , six structures standardisées ont été définies en fonction de la complexité d'implémentation recherchée. La première colonne illustre la configuration A dans laquelle : - une première couche de convolution conv3-64 est suivie par une couche de regroupement maxpool ; - elle-même suivie par une seconde couche de convolution conv3-128 ; - également suivie par une couche de regroupement maxpool ; - puis deux couches de convolution successives conv3-256 ; - suivies par une couche de regroupement maxpool ; - ainsi que deux autres couches de convolution successives conv3-512 ; - suivies par une couche de regroupement maxpool et deux dernières couches de convolution successives conv3-512 ; - suivies par une couche de de regroupement maxpool ; trois couches d'interconnexion FC-4096 , FC-4096 , FC-1000 et une dernière couche d'identification Soft-max . Dans cette configuration, l'ensemble des couches de convolution conv3-64 , conv3- 128 , conv3- 256 , conv3- 512 sont réalisées avec des filtres identiques de 3 pixels par 3 pixels, un déplacement entre deux filtres d’un pixel, un redimensionnement de type « SAME padding » et en utilisant des fonctions d'activation de type « RELU ». En outre, les couches de regroupement maxpool utilisent des filtres de 2 pixels par 2 pixels, une fonction de calcul du pixel de regroupement en utilisant les maximum, un déplacement entre deux filtres de deux pixels et un redimensionnement de type « VALID padding ». Ainsi, cette structure particulière permet de réutiliser des neurones identiques pour les différentes couches de convolution conv3-64 , conv3- 128 , conv3- 256 , conv3- 512 et de regroupement maxpool même si la taille des images en sortie des couches de convolution diffère en fonction de la taille des images présentes en entrée, c'est-à-dire du nombre de couches de convolution et de regroupement précédemment implémentées. Une variante de cette première configuration A , appelée A-LRN , est illustrée sur la seconde colonne et propose d'utiliser une couche de normalisation locale LNR après la première couche de convolution conv3-64 . La configuration B illustrée sur la troisième colonne comporte treize couches de traitement, c'est-à-dire treize couches de convolution conv3-64 , conv3- 128 , conv3- 256 , conv3- 512 et d'interconnexion FC-4096 , FC-4096 et FC-1000 , contrairement aux configurations A et A-LRN qui intègrent uniquement onze couches de traitement. Ainsi, pour la configuration B , l'image d'entrée est transmise à deux couches de convolution successives conv3-64 et deux couches de convolution successives conv3- 128 sont également placées après la première couche de regroupement maxpool . La configuration C intègre seize couches de traitement en ajoutant une couche de convolution spécifique conv 1 - 256 , conv 1 - 512 avec un filtre d’un pixel par un pixel avant les trois dernières couches de regroupement maxpool . La configuration C utilise également trois couches de convolution conv 3 - 256 , conv 3 - 512 , conv 1 - 256 , conv 1 - 512 avant les trois dernières couches de regroupement maxpool . Les autres couches de convolution conv3-64 , conv3- 128 correspondent aux couches de convolution précédemment utilisées dans la configuration B . La configuration D est particulièrement connue puisqu'elle correspond à la configuration « V GG 16 » largement utilisée. Cette configuration D intègre seize couches de traitement avec : - deux couches de convolution conv3-64 ; - suivies d'une couche de regroupement maxpool ; - suivie de deux couches de convolution conv3- 128 ; - suivies d'une couche de regroupement maxpool ; - suivie de trois couches de convolution conv3- 256 ; - suivies d'une couche de regroupement maxpool ; - suivie de trois couches de convolution conv3- 512 ; - suivies d'une couche de regroupement maxpool ; - suivie de trois couches de convolution conv3- 512 ; - suivies d'une couche de regroupement maxpool ; - suivie de trois couches d'interconnexion FC-4096 , FC-4096 et FC-1000 et d'une couche identification Soft-max . La configuration E est également connue puisqu'elle correspond à la configuration « VGG 19 ». Cette configuration E intègre dix-neuf couches de traitement avec : - deux couches de convolution conv3-64 ; - suivies d'une couche de regroupement maxpool ; - suivie de deux couches de convolution conv3- 128 ; - suivies d'une couche de regroupement maxpool ; - suivie de quatre couches de convolution conv3- 256 ; - suivies d'une couche de regroupement maxpool ; - suivie de quatre couches de convolution conv3- 512 ; - suivies d'une couche de regroupement maxpool ; - suivie de quatre couches de convolution conv3- 512 ; - suivies d'une couche de regroupement maxpool ; - suivie de trois couches d'interconnexion FC-4096 , FC-4096 et FC-1000 et d'une couche identification Soft-max . Pour conclure, il existe un grand nombre de standards de réseaux de neurones issus de longues années de recherche qui ont permis d’arriver à des configurations particulièrement pertinentes, notamment pour réaliser des fonctions d'identification. Cependant, les tests réalisés sur ces différentes configurations standardisées et notamment sur les configurations « V GG 16 » et « V GG 19 », n'ont pas permis d'aboutir à des taux d'identification satisfaisants pour identifier les pièces, notamment pour distinguer une salle de bain d'une cuisine dans une maison. Le problème technique de la présente invention est d'obtenir un réseau de neurones de convolution permettant de détecter plus efficacement un type de pièce d’un bâtiment. L’invention propose de répondre à ce problème technique au moyen d'une architecture proche de la configuration « V GG 19 » mais dans laquelle deux couches de convolution sont supprimées. Cette architecture spécifique permet, de manière surprenante, d'obtenir des résultats plus pertinents que les configurations « VGG 16 » et « VGG 19 ». En effet, s'il n'est pas simple de comprendre pourquoi une architecture particulière présente des taux de détection plus performants qu'une autre architecture, il est clair que plus la profondeur d'un réseau augmente, c'est-à-dire plus le nombre de couches de traitement est important, plus le réseau de neurones est capable d'identifier des éléments précis sur la base d'images d'apprentissage. Or, il ressort de cette invention que l'identification efficace d'une pièce passe par l'identification d'un grand nombre d'objets saillants mais que la recherche précise d'éléments va à l'encontre de la capacité efficace de détection du réseau de neurones. La présente invention réside donc dans la détection d’un compromis efficace pour la détection de pièces entre deux architectures connues, les configurations « VGG 16 » et « VGG 19 ». Ainsi, l’invention concerne donc un procédé d’identification d’une pièce d’un bâtiment au moyen d’un réseau de neurones de convolution permettant de déterminer si une image d’entrée correspond à un type de pièce prédéterminé au moyen d’une phase d’apprentissage au cours de laquelle plusieurs images de chaque type de pièce prédéterminé sont utilisées, le réseau de neurones de convolution comportant les couches suivantes disposées les unes à la suite des autres pour traiter l’image d’entrée : - deux couches de convolution; - une couche de regroupement; - deux couches de convolution; - une couche de regroupement; - quatre couches de convolution; - une couche de regroupement; - quatre couches de convolution; - une couche de regroupement; - deux couches de convolution; - une couche de regroupement; - trois couches d'interconnexion; et - une couche identification. De préférence, comme pour les réseaux de neurones de convolution « VGG 16 » et « VGG 19 », les couches de convolution sont réalisées avec des filtres de 3 pixels par 3 pixels, un déplacement entre deux filtres d’un pixel, un redimensionnement de type « SAME padding » et en utilisant des fonctions d'activation de type « RELU ». De préférence, les couches de regroupement utilisent également des filtres de 2 pixels par 2 pixels, une fonction de calcul du pixel de regroupement en utilisant les maximum, un déplacement entre deux filtres de deux pixels et un redimensionnement de type « VALID padding ». De préférence, les trois couches d’interconnexion sont successivement : - une couche d’interconnexion entièrement connectée comportant 4096 neurones, - une couche d’interconnexion entièrement connectée comportant 4096 neurones, - une couche d’interconnexion entièrement connectée comportant 1000 neurones. Comme pour les réseaux de neurones de convolution « VGG 16 » et « VGG 19 », le format de l’image d’entrée correspond préférentiellement à une image RGB de 224 par 224 pixels. Avec cette architecture particulière du réseau de neurones, l'invention permet d'obtenir une identification efficace d'une pièce. Par exemple, avec un apprentissage du réseau de neurones à 100 époques, c'est-à-dire en utilisant 100 fois les données d'apprentissage pour modifier le poids des neurones lors de la phase d'apprentissage du réseau de neurones, il est possible de détecter avec un taux de reconnaissance très important une chambre, une cuisine, une salle de bains ou un salon d'une habitation. Bien entendu, le taux de reconnaissance du réseau de neurones dépend également de la qualité des données d'apprentissage fournies à celui-ci. Or, le volume de données d'apprentissage actuellement disponible pour caractériser une pièce est encore faible au regard du volume de données actuellement accessibles pour distinguer par exemple un piéton d'un vélo dans toutes les applications d'identification actuellement utilisées pour le développement des véhicules autonomes. Ainsi, le manque de données d'apprentissage est également un frein aux performances des réseaux de neurones d'identification d'une pièce et l'invention propose également d'utiliser une génération procédurale de pièces d'une habitation pour répondre à ce manque de données d'apprentissage. Dans cette génération procédurale, une pièce prédéfinie est préférentiellement obtenue avec les étapes suivantes : - définition d'une surface de la pièce ; - définition d'une forme de la pièce à partir de la surface prédéfinie ; - génération des murs et du plafond de la pièce ; - placement de différents objets caractéristiques de la pièce de façon cohérente ; - attribution de textures au sol, aux murs, et le cas échéant au plafond et/ou aux objets de la pièce ; - placement d’au moins une caméra et d'au moins un éclairage dans la pièce ; et - génération d’au moins un rendu photographique réaliste de la pièce. En ce qui concerne la première étape de définition d'une surface de la pièce, il est possible de sélectionner aléatoirement une surface : - comprise entre 12 et 20 m² pour une chambre ; - comprise entre 8 et 15 m² pour une salle de bain ; - comprise entre 30 et 50 m² pour un salon ; et - comprise entre 12 et 20 m² pour une cuisine. En ce qui concerne la seconde étape de définition d'une forme de la pièce à partir de la surface prédéfinie, il est possible de mettre en œuvre les étapes suivantes : - sélection aléatoire d’une forme à partir d’un ensemble de formes prédéfinies ; et - application d’une homothétie à la forme sélectionnée de sorte que la surface de la forme sélectionnée corresponde à la surface prédéfinie. En ce qui concerne la troisième étape de génération des murs et du plafond de la pièce, il est possible de sélectionner aléatoirement au moins une hauteur comprise entre 2.3 et 4 m, d’élever des murs à la hauteur sélectionnée et de générer la forme du plafond en fonction de la position de l’extrémité supérieure des murs. En ce qui concerne la quatrième étape de placement de différents objets caractéristiques de la pièce, un catalogue d’objets associés chacun à une ou plusieurs étiquettes peut être utilisé. Bien entendu, d’autres implémentations de ces étapes sont possibles sans changer l’invention. Description sommaire des figures La manière de réaliser l’invention ainsi que les avantages qui en découlent, ressortiront bien des modes de réalisation qui suivent, donnés à titre indicatif mais non limitatif, à l’appui des figures dans lesquelles : est un tableau illustrant six structures standardisées de réseaux de neurones de type VGG de l’état de la technique ; est une représentation schématique des couches d’un réseau de neurones de convolution utilisé dans un mode de réalisation préféré du procédé d’identification d’une pièce selon l’invention est une représentation schématique des étapes d’une phase d’apprentissage du procédé d’identification d’une pièce selon un mode de réalisation particulier de l’invention ; est un rendu photographique d'un salon réalisé par la génération procédurale utilisée dans le procédé de la ; est un rendu photographique d'une cuisine réalisée par la génération procédurale utilisée dans le procédé de la ; est un rendu photographique d'une salle de bain réalisée par la génération procédurale utilisée dans le procédé de la ; et est un rendu photographique d'une chambre réalisée par la génération procédurale utilisée dans le procédé de la . Description détaillée de l’invention La présente invention concerne un procédé d’identification d’une pièce, c’est-à-dire un espace à l’intérieur d’un bâtiment délimité par au moins un mur et/ou au moins une cloison, par exemple une pièce d'un appartement, d'une maison ou d'un local industriel. Le procédé d’identification d’une pièce permet de déterminer si une image d’entrée correspond à un type de pièce prédéterminé, le réseau de neurones de convolution comportant les couches suivantes disposées les unes à la suite des autres pour traiter l’image d’entrée : - deux couches de convolution, chacune réalisée par exemple avec des filtres de 3 pixels par 3 pixels, un déplacement entre deux filtres d’un pixel, un redimensionnement de type « SAME padding » et en utilisant des fonctions d'activation de type « RELU », chaque couche comportant 64 neurones ; - une couche de regroupement, réalisée par exemple avec des filtres de 2 pixels par 2 pixels, une fonction de calcul du pixel de regroupement en utilisant les maximum, un déplacement entre deux filtres de deux pixels et un redimensionnement de type « VALID padding » ; - deux couches de convolution, chacune réalisée par exemple avec des filtres de 3 pixels par 3 pixels, un déplacement entre deux filtres d’un pixel, un redimensionnement de type « SAME padding » et en utilisant des fonctions d'activation de type « RELU », chaque couche comportant 128 neurones ; - une couche de regroupement, réalisée par exemple avec des filtres de 2 pixels par 2 pixels, une fonction de calcul du pixel de regroupement en utilisant les maximum, un déplacement entre deux filtres de deux pixels et un redimensionnement de type « VALID padding » ; - quatre couches de convolution, chacune réalisée par exemple avec des filtres de 3 pixels par 3 pixels, un déplacement entre deux filtres d’un pixel, un redimensionnement de type « SAME padding » et en utilisant des fonctions d'activation de type « RELU », chaque couche comportant 256 neurones ; - une couche de regroupement, réalisée par exemple avec des filtres de 2 pixels par 2 pixels, une fonction de calcul du pixel de regroupement en utilisant les maximum, un déplacement entre deux filtres de deux pixels et un redimensionnement de type « VALID padding » ; - quatre couches de convolution, chacune réalisée par exemple avec des filtres de 3 pixels par 3 pixels, un déplacement entre deux filtres d’un pixel, un redimensionnement de type « SAME padding » et en utilisant des fonctions d'activation de type « RELU », chaque couche comportant 512 neurones ; - une couche de regroupement, réalisée par exemple avec des filtres de 2 pixels par 2 pixels, une fonction de calcul du pixel de regroupement en utilisant les maximum, un déplacement entre deux filtres de deux pixels et un redimensionnement de type « VALID padding » ; - deux couches de convolution, chacune réalisée par exemple avec des filtres de 3 pixels par 3 pixels, un déplacement entre deux filtres d’un pixel, un redimensionnement de type « SAME padding » et en utilisant des fonctions d'activation de type « RELU », chaque couche comportant 512 neurones ; - une couche de regroupement, réalisée par exemple avec des filtres de 2 pixels par 2 pixels, une fonction de calcul du pixel de regroupement en utilisant les maximum, un déplacement entre deux filtres de deux pixels et un redimensionnement de type « VALID padding » ; - trois couches d'interconnexion, réalisées par exemple avec des couches entièrement connectées ou « fully connected », les couches consécutives comportant respectivement 4096, 4096 et 1000 neurones ; et - une couche identification. Un mode de réalisation préféré du réseau de neurone utilisé dans l’invention est illustré en . L’image d’entrée est de préférence une image RGB de 224 par 224 pixels. Le procédé peut comporter une étape de conversion et/ou de redimensionnement pour traiter une image qui ne correspondrait pas à ces paramètres. Afin d’entraîner le réseau de neurone, le procédé selon l’invention comporte une phase d’apprentissage, au cours de laquelle sont réalisée des pièces par génération procédurale. Ces pièces sont générées pour entrer dans une catégorie bien déterminée, par exemple cuisine ou salle de bain, et sont fournies au réseau de neurone pour l’entraîner à reconnaître des pièces de même catégorie. Lors de la génération procédurale, on souhaite introduire autant de variété que possible dans la génération afin que l’intelligence artificielle ne fasse pas de fausses associations entre certains facteurs trop récurrents lorsqu’ils ne le sont pas nécessairement en réalité. La génération procédurale permet de générer des photos réalistes de pièces parmi un certain nombre de catégories, par exemple quatre catégories : salon, cuisine, chambre, salle de bain. La génération procédurale des pièces, dont un exemple est illustré en , comporte les étapes suivantes : -définition 10 d'une surface de la pièce ; - définition 11 d'une forme de la pièce à partir de la surface prédéfinie ; - génération 12 des murs et du plafond de la pièce ; - placement 13 de différents objets caractéristiques de la pièce de façon cohérente ; - attribution 14 de textures au sol, aux murs, et le cas échéant au plafond et/ou aux objets de la pièce ; - placement 15 d’au moins une caméra et d'au moins un éclairage dans la pièce ; et - génération 16 d’au moins un rendu photographique réaliste de la pièce. La génération procédurale est par exemple effectuée au moyen d’un algorithme écrit en langage Java, faisant appel à un catalogue d’objets listés dans un fichier au format XML, et utilisé comme plugin du logiciel Sweet Home 3D © . Lors de l’étape de définition 10 de la surface, la taille de la pièce peut être variable selon la catégorie sélectionnée. La taille peut être choisie de façon aléatoire dans des dimensions courantes de vraies pièces, par exemple : - salle de bain: entre 8 et 15 m2, - chambre : entre 12 et 20m2, - cuisine : entre 12 et 20m2, - salon : entre 30 et 50m2. Une fois la surface définie, l’étape de définition 11 de la forme est mise en œuvre. Dans une première étape, un nombre de murs peut être choisi aléatoirement, par exemple entre quatre et six murs. Si la pièce comporte quatre murs, le procédé suivant peut être mis en œuvre : - génération aléatoire de la largeur de la pièce, la largeur étant comprise dans un intervalle qui peut dépendre du type de pièce et/ou de la surface ; - calcul de la longueur afin d’obtenir une forme rectangulaire. Si la pièce comporte cinq murs, on peut pour simplifier le procédé se limiter à une forme comportant quatre murs formant un rectangle dont un coin est coupé par un cinquième mur. Le procédé suivant peut être mis en œuvre : - génération aléatoire de la largeur de la pièce, la largeur étant comprise dans un intervalle qui peut dépendre du type de pièce et/ou de la surface ; - génération aléatoire de la longueur du mur de coin, la longueur étant comprise dans un intervalle, par exemple entre 1/3 et 2/3 de la largeur de la pièce ; - calcul de la longueur des autres murs, en prenant en compte la largeur de la pièce et la longueur du mur de coin, l’angle entre le mur de coin et les murs adjacents étant par exemple fixé à 135°. Si la pièce comporte six murs, on peut pour simplifier le procédé se limiter à une forme comportant quatre murs formant un rectangle dont deux coins sont coupés par un cinquième mur et un sixième mur. Le procédé suivant peut être mis en œuvre : - génération aléatoire de la largeur de la pièce, la largeur étant comprise dans un intervalle qui peut dépendre du type de pièce et/ou de la surface ; - génération aléatoire des longueurs du premier et deuxième murs de coin, la longueur étant comprise dans un intervalle, par exemple entre 1/3 et 2/3 de la largeur de la pièce ; - calcul de la longueur des autres murs, en prenant en compte la largeur de la pièce et les longueurs du mur de coin, l’angle entre le mur de coin et les murs adjacents étant par exemple fixé à 135° ; - choix aléatoire de la forme de la pièce : les deux murs de coins peuvent se trouver adjacents à un même mur ou non. Pour l’étape de placement 13 de différents objets caractéristiques de la pièce de façon cohérente, différents types d’objets regroupés par types sont utilisés selon la catégorie de la pièce, chaque type ayant une fonction donnée, par exemple : - salle de bain : porte, lavage, toilettes, évier, miroir, rangement, - chambre : porte, lit, rangement, sol, côté, - cuisine : porte, four, plaque de cuisson, hotte, réfrigérateur, table, four à micro-ondes, - salon : porte, table, sol. Un catalogue comportant une variété d’objets de tous types est utilisé, chaque objet ayant une ou plusieurs étiquettes correspondant à un type. Certains objets peuvent couvrir deux types à la fois, par exemple une cuisinière est à la dans le type « four » et « plaque de cuisson ». Certains types d’objets peuvent être obligatoires et/ou limités à un certain nombre par pièce. Les quantités minimales et maximales d’objets que la pièce peut contenir peuvent être fixées arbitrairement, par exemple entre un tiers et deux tiers de sa surface totale. Une balise peut être associée à chaque type d’objet, afin que l’algorithme sache si tel type d’objet est facultatif ou obligatoire. Par exemple une porte étant obligatoire dans toutes les pièces, on pourra associer au type porte une balise « obligatoire », ou alors ne pas lui associer de balise « facultatif », selon le mode de balisage choisi. Une autre balise « unique » peut être utilisée pour marquer les types d’objets qui ne peuvent pas se retrouver plusieurs fois dans une même pièce. Un four par exemple dans une cuisine, ou un lit dans une chambre. Les objets sont placés au hasard dans la pièce, à part certains qui ont des règles de placement particulières, par exemple il peut être prévu un espace obligatoire autour d’une table, ou autour d’un lit à l’exception de la tête de lit, ou encore devant une porte ou une fenêtre. Outre les cas particuliers, la plupart des objets peuvent être placés le long d’un mur choisi aléatoirement, en prenant en compte le placement des autres objets de façon à ne pas les encastrer les uns dans les autres. Ainsi lorsqu’un objet et un mur ont été choisis aléatoirement, l’algorithme peut regarder quels meubles sont déjà disposés le long de ce mur, et vérifier si les segments libres du mur peuvent accueillir le nouveau meuble à placer. Il peut être également pris en compte dans le placement de disposer proches les uns des autres les objets habituellement proches, avec leur orientation habituelle, tel que des meubles de cuisine, un lit et des tables de chevet, une table et des chaises, une table basse devant un canapé ou encore des fauteuils en face d’une télévision ou d’une cheminée. Concernant les ouvertures, c’est-à-dire les portes et fenêtres, l’algorithme peut éviter qu’une fenêtre et une porte intérieure ne soient placées sur le même mur par exemple. Comme pour les autres objets, le nombre d’ouvertures peut être généré aléatoirement en fonction du type de pièce et de la surface. Le catalogue d’objets peut être un fichier au format XML, comportant pour chaque objet son ou ses types, et pour chaque type optionnellement une ou plusieurs balises. Lors de l’étape d’attribution 14 de textures au sol, aux murs, et le cas échéant au plafond et/ou aux objets de la pièce, un catalogue de textures peut être utilisé. Des textures aléatoires peuvent être utilisées sans prendre en compte la catégorie de pièce, afin que l'algorithme d'identification n’accorde pas trop d'importance au matériau du sol et des murs lors de la tentative d'identification du type de pièce. L’étape d’attribution 14 de textures peut être réalisée avant l’étape de placement 13 des objets. Les étapes 10 à 14 fournissent un modèle 3D d’une pièce. Lors de l’étape de placement 15 d’au moins une caméra et d’au moins un éclairage dans la pièce, le logiciel Blender © peut être utilisé. Afin de générer un placement aléatoire des lumières et de la caméra dans la pièce, un script en Python contrôlant ce logiciel peut être utilisé. Le moteur de rendu « Cycles » du logiciel Blender © peut alors être utilisé pour manipuler la ou les caméras et la ou les éclairages pour avoir plusieurs angles et dans différentes configurations lumineuse (début de journée ou fin de journée par exemple). L’étape de génération 16 d’un rendu photographique réaliste peut alors être mise en œuvre. Les figures 4 à 7 illustrent des exemples d’images obtenues par génération procédurale, à l’issue de l’étape de génération 16. La représente un salon, la une cuisine, la une salle de bain et la une chambre. Les rendus photographiques réalistes peuvent alors être générées en nombre afin de constituer une base de données de photos de pièces diverses appartenant aux catégories voulues. Cette base de données peut ensuite être utilisée pour l’apprentissage du réseau de neurones. La détection du type de pièce sera alors d’autant plus performante que la base de données servant pour l’apprentissage comporte un grand nombre de photos, et que ces photos illustrent la diversité des pièces au sein de chaque catégorie. Procédé d’identification d’une pièce d’un bâtiment au moyen d’un réseau de neurones de convolution permettant de déterminer si une image d’entrée correspond à un type de pièce prédéterminé au moyen d’une phase d’apprentissage au cours de laquelle plusieurs images de chaque type de pièce prédéterminé sont utilisées, le réseau de neurones de convolution comportant les couches suivantes disposées les unes à la suite des autres pour traiter l’image d’entrée : - deux couches de convolution (conv3-64) ; - une couche de regroupement (maxpool) ; - deux couches de convolution (conv3-128) ; - une couche de regroupement (maxpool) ; - quatre couches de convolution (conv3-256) ; - une couche de regroupement (maxpool) ; - quatre couches de convolution (conv3-512) ; - une couche de regroupement (maxpool) ; - deux couches de convolution (conv3-512) ; - une couche de regroupement (maxpool) ; - trois couches d'interconnexion (FC-4096, FC-1000) ; et - une couche identification (Soft-max). Procédé d’identification d’une pièce selon la revendication 1, dans lequel les couches de convolution (conv3-64, conv3-128, conv3-256, conv3-512) sont réalisées avec des filtres de 3 pixels par 3 pixels, un déplacement entre deux filtres d’un pixel, un redimensionnement de type « SAME padding » et en utilisant des fonctions d'activation de type « RELU ». Procédé d’identification d’une pièce selon la revendication 1 ou 2, dans lequel les couches de regroupement (maxpool) sont réalisées avec des filtres de 2 pixels par 2 pixels, une fonction de calcul du pixel de regroupement en utilisant les maximum, un déplacement entre deux filtres de deux pixels et un redimensionnement de type « VALID padding ». Procédé d’identification d’une pièce selon l’une des revendications 1 à 3, dans lequel l’image d’entrée correspond à une image RGB de 224 par 224 pixels. Procédé d’identification d’une pièce selon l’une des revendications 1 à 4, dans lequel la phase d’apprentissage est réalisée par génération procédurale de pièces avec, pour chaque type de pièce, les étapes suivantes : - définition (10) d'une surface de la pièce ; - définition (11) d'une forme de la pièce à partir de la surface prédéfinie ; - génération (12) des murs et du plafond de la pièce ; - placement (13) de différents objets caractéristiques de la pièce de façon cohérente ; - attribution (14) de textures au sol, aux murs, et le cas échéant au plafond et/ou aux objets de la pièce ; - placement (15) d’au moins une caméra et d'au moins un éclairage dans la pièce ; et - génération (16) d’au moins un rendu photographique réaliste de la pièce. Procédé d’identification d’une pièce selon la revendication 5, dans lequel l’étape de définition (10) d'une surface de la pièce consiste à sélectionner aléatoirement une surface : - comprise entre 12 et 20 m² pour une chambre ; - comprise entre 8 et 15 m² pour une salle de bain ; - comprise entre 30 et 50 m² pour un salon ; et - comprise entre 12 et 20 m² pour une cuisine. Procédé d’identification d’une pièce selon la revendication 5 ou 6, dans lequel l’étape de définition (11) d'une forme de la pièce à partir de la surface prédéfinie met en œuvre les étapes suivantes : - sélection aléatoire d’une forme à partir d’un ensemble de formes prédéfinies ; et - application d’une homothétie à la forme sélectionnée de sorte que la surface de la forme sélectionnée corresponde à la surface prédéfinie. Procédé d’identification d’une pièce selon l’une des revendications 5 à 7, dans lequel l’étape de génération (12) des murs et du plafond de la pièce consiste à sélectionner aléatoirement au moins une hauteur comprise entre 2.3 et 4 m, d’élever des murs à la hauteur sélectionnée et de générer la forme du plafond en fonction de la position de l’extrémité supérieure des murs. Procédé d’identification d’une pièce selon l’une des revendications 5 à 8, dans lequel l’étape de placement (13) de différents objets caractéristiques de la pièce utilise un catalogue d’objets associés chacun à une ou plusieurs étiquettes.