Brevet FR3113758A1 — publié le 20220304

Dispositif permettant d’améliorer la reconnaissance de formes dans le traitement des images numériques. L’invention est constituée d’un module de chargement d’image et de nettoyage de celle-ci grâce à des filtres (1), d’un module de convolution neuronal de tableaux de données d’images de premier niveau (2), d’un module de pooling de tableaux de données d’images de premier niveau (3), d’un module de convolution neuronal de tableaux de données d’images de deuxième niveau (4), d’un module de pooling de tableaux de données d’images de deuxième niveau (5), d’un module classifieur de données (6), d’un module de uppoling de tableaux de données d’image de premier niveau (7), d’un module de déconvolution neuronal de tableaux de données d’image de premier niveau (8), d’un module de uppoling de tableaux de données d’images de deuxième niveau (9), d’un module de déconvolution neuronal de tableaux de données d’images de deuxième niveau (10), d’un module de filtrage de données d’images utilisant différents algorithmes de traitements (11), d’un module classifieur de données (12) et d’un module classifieur comparateur de classements (13). Le dispositif selon l’invention est particulièrement adapté aux systèmes informatiques de traitement automatique d’images. Détection de formes dans une image L’invention concerne un ensemble de détection de formes dans d’une image. Cet ensemble est composé d’un module de chargement d’image et de nettoyage de celle-ci grâce à des filtres (1), d’un module de convolution neuronal de tableaux de données d’images de premier niveau (2), d’un module de pooling de tableaux de données d’images de premier niveau (3), d’un module de convolution neuronal de tableaux de données d’images de deuxième niveau (4), d’un module de pooling de tableaux de données d’images de deuxième niveau (5), d’un module classifieur de données d’images (6), d’un module de uppoling de tableaux de données d’image de premier niveau (7), d’un module de déconvolution neuronal de tableaux de données d’image de premier niveau (8), d’un module de uppoling de tableaux de données d’images de deuxième niveau (9), d’un module de déconvolution neuronal de tableaux de données d’images de deuxième niveau (10), d’un module de filtrage de données d’images utilisant différents algorithmes de traitements (11), d’un module classifieur de données d’images (12) et d’un module classifieur comparateur de classements (13). Cette invention fonctionne de la façon suivante lorsque (1) charge une image informatique dans les formats standards des images informatiques, celle-ci est transformée grâce à des filtres de résolution, de colorimétrie et de dimensionnement, sous forme de tableau de pixels. La dimension du tableau de pixel et sa colorimétrie ont été définies au pré-alable. Ce tableau de pixel représentant une image à analyser est transmis au module de convolution neuronal de 1er niveau (2). Le module de convolution neuronal de 1er niveau (2) va fournir un tableau de résultat sous forme de données, ce tableau sera le reflet d’une première transformation de l’image permettant une première caractérisation de la reconnaissance. Ce tableau reflet de la première transformation est transmis au module de pooling de 1er niveau (3). Le module de pooling de 1er niveau produit un tableau fortement réduit du tableau reflet de la première transformation. Ce tableau réduit correspond à une deuxième transformation des données de l’image, ce tableau réduit est transmis au module de convolution neuronal de 2e niveau (4). Le module de convolution neuronal de 2e niveau (4) va fournir un tableau de résultats sous forme de données, ce tableau sera le reflet d’une troisième transformation des données de l’image permettant une deuxième caractérisation de la reconnaissance. Ce tableau reflet de la troisième transformation est transmis au module de pooling de 2e niveau (5). Le module de pooling de 2e niveau produit un tableau fortement réduit du tableau reflet de la troisième transformation. Ce tableau réduit correspond à une quatrième transformation des données l’image. Le tableau correspondant à la quatrième transformation est transmis au module classifieur de 1er niveau (6) et au module d’uppoling de 1er niveau (7). Le module classifieur de 1er niveau (6) produit à partir de la quatrième transformation des données de l’image, un ensemble de résultats sur les formes identifiées, ces résultats correspondent à la classification de premier niveau. Le module d’uppoling de 1er niveau modifie le tableau des données de la quatrième transformation en agrandissant celui-ci par l’ajout de données. Le module d’uppoling de 1er niveau produit une cinquième transformation de données de l’image qui est transmise au module de déconvolution neuronal de 1er niveau (8). Le module de déconvolution neuronal de 1er niveau (7) va produire un tableau de résultats, ce tableau de données correspond à une sixième transformation des données de l’image permettant une troisième caractérisation de la reconnaissance. Cette sixième transformation des données de l’image est transmise au module d’uppoling de 2e niveau (9). Le module d’uppoling de 2e niveau modifie le tableau des données de la sixième transformation en agrandissant celui-ci par l’ajout de données. Le module d’uppoling de 2e niveau produit une septième transformation des données de l’image qui est transmise au module de déconvolution neuronal de 2e niveau (10). Le module de déconvolution neuronal de 2e niveau (10) va produire un tableau de résultats, ce tableau de données correspond à une huitième transformation des données de l’image permettant une quatrième caractérisation de la reconnaissance. Cette huitième transformation de l’image est transmise au module de traitement par filtres (11). Le module de traitement par filtres (11) modifie la huitième transformation des données de l’image par des filtres de transformations géométriques, et de colorimétries. Le tableau des données de sortie du module de traitement par filtres (11) est une neuvième transformation qui est transmise au classifieur de 2e niveau (12). Le module classifieur de 2e niveau (12) produit à partir de la neuvième transformation des données de l’image, un ensemble de résultats sur des formes identifiées, ces résultats correspondent à la classification de deuxième niveau. La classification de premier niveau produite par le classifieur de 1er niveau (6) et la classification de deuxième niveau produite par le classifieur de 2e niveau (12) sont transmises au classifieur final (13). Le classifieur final (13) prend les éléments communs de la première classification et de la deuxième classification pour produire une classification finale. Cette classification finale est l’ensemble des résultats sur les reconnaissances de formes de l’image chargée dans le module (1). Cette invention présente l’avantage d’améliorer la qualité de la reconnaissance de formes sur des images. L’usage de briques d’uppoling et de déconvolution tel que présenté, permettent d’extraire le bruit sur des premières reconnaissances et de comparer les classifications intermédiaires et de garder uniquement les éléments communs. Les reconnaissances liées au bruit de convolution et pooling sont alors rejetées du résultat final. Cette invention implémentée dans un boitier informatique couplé à une caméra permet de faire de la reconnaissance automatique d’environnement. Actuellement il n’existe de pas système permettant de faire les processus de détections de formes dans une image selon les processus énoncés précédemment. La présente invention améliore la qualité de la reconnaissance de formes automatique dans le traitement d’images. Description sommaire du dessin Le dessin 1/1 présente le schéma d’organisation des différents composants de l’invention. Explication du fonctionnement et manière de réaliser l’invention La expose l’organisation et les échanges entre les différents ensembles de l’invention. L’invention est composée d’un module de chargement d’images et de traitements par filtres (1). Ce module permet de charger des images informatiques de différents formats (BMP, TIFF, JPEG ou JPG, GIF et PNG) et de les transformer sous forme de tableaux de pixels. Les filtres appliqués aux images dans ce module sont les algorithmes de colorimétrie, de Harris, de similitude épi polaire, d’invariant différentiel, de Laplacien. Ce module est un module informatique fonctionnant sur un ordinateur avec des développements logiciels faits en langage Python avec la bibliothèque Opencv. Ce module de chargement d’images et de traitements par filtres (1) transmets un tableau de pixels par le biais d’une mémoire électronique au module de convolution neuronal de 1er niveau (2). Le module de convolution neuronal de 1er niveau (2) est un module informatique fonctionnant sur un ordinateur. Il réceptionne un tableau de données qu’il analyse grâce à un jeux de réseaux neuronaux disposé selon un filtre à convolution. Le réseau de perceptrons du réseau neuronal a été paramétré en phase d’apprentissage. Le calcul des poids et des biais se fait de façon algorithmique selon la méthode de la rétropropagation du gradient. L’apprentissage préalable est fait à partir d’images de référence pouvant être prise dans des banques de données d’images publiques comme ImageNet. L’enregistrement des poids, des biais et du filtre de convolution du module de convolution neuronal de 1er niveau est stocké sur le disque dur informatique de l’invention. Le module de convolution neuronal de 1er niveau (2) est réalisé en langage informatique Python utilisant la librairie Keras. Les fonctions d’activation des perceptrons est la fonction Max(x) où x est la valeur à écrêter. Le module de convolution neuronal de 1er niveau (2) produit un tableau de résultats sous forme de données transmis au module de pooling de 1er niveau (3) par le biais d’une mémoire électronique. Le module de pooling de 1er niveau (3) réduit en taille le tableau de données reçu du module de convolution neuronal de 1er niveau (2). L’opération de réduction du module de pooling de 1er niveau est une opération algorithmique utilisant la fonction Max(x) où x est l’ensemble des valeurs des données du masque à réduire. Le module de pooling de 1er niveau (3) est réalisé en langage Pyhon utilisant la librairie Keras. Le résultat de la réduction du tableau de pixels est enregistré sur le disque dur de l’invention. Ce résultat de la réduction du tableau de données est transmis au module de convolution neuronal de 2e niveau (4) par le biais d’une mémoire électronique. Le module de convolution neuronal de 2e niveau (4) est un module informatique fonctionnant sur un ordinateur. Il réceptionne un tableau de données du module de pooling de 1er niveau (3) qu’il analyse grâce à un jeux de réseaux neuronaux disposé selon un filtre à convolution. Le réseau de perceptrons du réseau neuronal a été paramétré en phase d’apprentissage. Le calcul des poids et des biais se fait de façon algorithmique selon la méthode de la rétropropagation du gradient. L’apprentissage préalable est fait à partir d’images de référence pouvant être prise dans des banques de données d’images publiques comme ImageNet. L’enregistrement des poids, des biais et du filtre de convolution du module de convolution neuronal de 2e niveau (4) est stocké sur le disque dur informatique de l’invention. Le module de convolution neuronal de 2e niveau (4) est réalisé en langage informatique Python utilisant la librairie Keras. Les fonctions d'activation des perceptrons est la fonction Max(x) où x est la valeur à écrêter. Le module de convolution neuronal de 2e niveau (4) produit un tableau de résultats sous forme de données transmis au module de pooling de 2e niveau (5) par le biais d’une mémoire électronique. Le module de pooling de 2e niveau (5) réduit en taille le tableau de données reçu du module de convolution neuronal de 2er niveau (4). L’opération de réduction du module de pooling de 2e niveau (5) est une opération algorithmique utilisant la fonction Max(x) où x est l’ensemble des valeurs des pixels du masque à réduire. Le module de pooling de 2e niveau (5) est réalisé en langage Python utilisant la librairie Keras. Le résultat de la réduction du tableau de données est enregistré sur le disque dur de l’invention. Ce résultat de la réduction du tableau de données est transmis au module de classification de 1er niveau (6) et au module de déconvolution neuronal de 1er niveau (7) par le biais d’une mémoire électronique. Le module de classification de 1er niveau (6) génère un ensemble de résultats grâce à un processus algorithmique d’analyse de données reçu du module de pooling de 2e niveau (5). L’algorithme de classification du module classifieur de 1er niveau (6) utilise une méthode de classification linéaire avec un seuillage utilisant la fonction Heaviside. Le module de classification de 1er niveau (6) est un module informatique développé en langage Python avec la librairie Keras. Les données du résultat de classification sont stockées sur le disque dur de l’invention. Ces données sont transmises au module classifieur final (13) par le biais d’une mémoire électronique. Le module de uppooling de 1er niveau (7) agrandit en taille le tableau de données reçu du module de pooling de 2e niveau (5). L’opération d’agrandissement du module de uppooling de 1er niveau est une opération algorithmique utilisant la fonction Moyenne(x) où x est l’ensemble des valeurs des données adjacentes. Le module de uppooling de 1er niveau (7) est réalisé en langage Python utilisant la librairie Keras. Le résultat de l’agrandissement du tableau de pixels est enregistré sur le disque dur de l’invention. Ce résultat d’agrandissement du tableau de pixel est transmis au module de déconvolution neuronal de 1er niveau (8) par le biais d’une mémoire électronique. Le module de déconvolution neuronal de 1er niveau (8) est un module informatique fonctionnant sur un ordinateur. Il réceptionne un tableau de données qu’il analyse grâce à un jeux de réseaux neuronaux disposés selon un filtre à déconvolution. Le réseau de perceptrons du réseau neuronal a été paramétré en phase d’apprentissage. Le calcul des poids et des biais se fait de façon algorithmique selon la méthode de la rétropropagation du gradient. L’apprentissage préalable est fait à partir d’images de référence pouvant être prise dans des banques de données d’images publiques comme ImageNet. L’enregistrement des poids, des biais et du filtre de déconvolution du module de déconvolution neuronal de 1er niveau est stocké sur le disque dur informatique de l’invention. Le module de déconvolution neuronal de 1er niveau (8) est réalisé en langage informatique Python utilisant la librairie Keras. Les fonctions d'activation des perceptrons est la fonction Max(x) où x est la valeur à écrêter. Le module de déconvolution neuronal de 1er niveau (8) produit un tableau de résultats sous forme de données transmis au module de uppooling de 2e niveau (9) par le biais d’une mémoire électronique. Le module de uppooling de 2e niveau (9) agrandit en taille le tableau de données reçu du module déconvolution de 1er niveau (8). L’opération d’agrandissement du module de uppooling de 2e niveau est une opération algorithmique utilisant la fonction Moyenne(x) où x est l’ensemble des valeurs des données adjacentes. Le module de uppooling de 2er niveau (9) est réalisé en langage Python utilisant la librairie Keras. Le résultat de l’agrandissement du tableau de données est enregistré sur le disque dur de l’invention. Ce résultat d’agrandissement du tableau de données est transmis au module de déconvolution neuronal de 2e niveau (10) par le biais d’une mémoire électronique. Le module de déconvolution neuronal de 2e niveau (10) est un module informatique fonctionnant sur un ordinateur. Il réceptionne un tableau de données qu’il analyse grâce à un jeux de réseaux neuronaux disposé selon un filtre à déconvolution. Le réseau de perceptrons du réseau neuronal a été paramétré en phase d’apprentissage. Le calcul des poids et des biais se fait de façon algorithmique selon la méthode de la rétropropagation du gradient. L’apprentissage préalable est fait à partir d’images de référence pouvant être prise dans des banques de données d’images publiques comme ImageNet. L’enregistrement des poids, des biais et du filtre de convolution du module de déconvolution neuronal de 2e niveau est stocké sur le disque dur informatique de l’invention. Le module de déconvolution neuronal de 2e niveau (10) est réalisé en langage informatique Python utilisant la librairie Keras. Les fonctions d’activation des perceptrons est la fonction Max(x) où x est la valeur à écrêter. Le module de déconvolution neuronal de 2e niveau (10) produit un tableau de données transmis au module de traitements par filtres (11), la transmission se fait par le biais d’une mémoire électronique. Le module de traitement par filtres (11) produit un ensemble de données ayant pour particularité des variations de tailles et d’orientations. Les données images résultats sont des tableaux de données. Le traitement du module traitement par filtres (11) est un traitement algorithmique basé sur la partie publique de l’algorithme de SIFT. Le module de traitement par filtres (11) est un module informatique développé en langage Python utilisant la librairie Opencv. Les images résultats du module de traitement par filtres (11) sont stockées sur le disque dur de l’invention. Les résultats du module de traitement par filtres (11) sont transmis au module de classification de 2e niveau (12) par le biais d’une mémoire électronique. Le module de classification de 2e niveau (12) génère un ensemble de résultats grâce à un processus algorithmique d’analyse de données reçues du module de traitement par filtres (11). L’algorithme de classification du module classifieur de 2e niveau (12) utilise une méthode de classification linéaire avec un seuillage utilisant la fonction Heaviside. Le module de classification de 2e niveau (12) est un module informatique développé en langage Python avec la librairie Keras. Les données du résultat de classification sont stockées sur le disque dur de l’invention. Ces données sont transmises au module classifieur final (13) par le biais d’une mémoire électronique. Le module classifieur final (13) compare les résultats du classifieur de 1er niveau (6) et les résultats du classifieur de 2e niveau (12). Il produit un ensemble de résultats correspondant aux éléments communs. Le module classifieur final (13) est un module algorithmique logistique écrit en langage Python utilisant la librairie Numpy et Keras. Le résultat correspond à un ensemble de formes détectées par l’invention. Les résultats produits correspondent un ensemble de résultats codifiés correspondant aux formes identifiées. Possibilités d’applications industrielles Des exemples de domaines d’utilisation de l’invention peuvent être : - Système de détection sur un drone. - Système de détection sur un véhicule autonome. Dispositif permettant de détecter des formes de façon automatique, constitué d’un module de chargement d’image et de traitements par filtres (1), d’un module de convolution neuronal de tableaux de données d’images de premier niveau (2), d’un module de pooling de tableaux de données d’images de premier niveau (3), d’un module de convolution neuronal de tableaux de données d’images de deuxième niveau (4), d’un module de pooling de tableaux de données d’images de deuxième niveau (5), d’un module classifieur de données d’images de premier niveau (6), d’un module de upooling de tableaux de données d’images de premier niveau (7), d’un module de déconvolution neuronal de tableaux de données d’images de premier niveau (8), d’un module de upooling de tableaux de données d’images de deuxième niveau (9), d’un module de déconvolution neuronal de tableaux de données d’images de deuxième niveau (10), d’un module de traitement par filtres (11), d’un module classifieur de données d'images de deuxième niveau (12), d’un module classifieur final (13) Dispositif selon la revendication 1 caractérisé en ce que le un classifieur final (13) qui récupère les résultats communs des classifieurs de 1er niveau (6) et de deuxième niveau (12).