FR3135342A1 - Method for identifying an O-ring seal on a technical level and associated program product. - Google Patents

Method for identifying an O-ring seal on a technical level and associated program product. Download PDF

Info

Publication number
FR3135342A1
FR3135342A1 FR2204289A FR2204289A FR3135342A1 FR 3135342 A1 FR3135342 A1 FR 3135342A1 FR 2204289 A FR2204289 A FR 2204289A FR 2204289 A FR2204289 A FR 2204289A FR 3135342 A1 FR3135342 A1 FR 3135342A1
Authority
FR
France
Prior art keywords
image
convolution
size
sub
consideration
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.)
Pending
Application number
FR2204289A
Other languages
French (fr)
Inventor
Thierry Benard
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.)
Hutchinson SA
Original Assignee
Hutchinson SA
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 Hutchinson SA filed Critical Hutchinson SA
Priority to FR2204289A priority Critical patent/FR3135342A1/en
Publication of FR3135342A1 publication Critical patent/FR3135342A1/en
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/42Document-oriented image-based pattern recognition based on the type of document
    • G06V30/422Technical drawings; Geographical maps

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Abstract

Titre : Procédé d’identification d’un joint d’étanchéité torique sur un plan technique et produit programme associé. L’invention concerne un procédé d’identification d’un joint d’étanchéité torique sur un plan technique, ledit procédé comprenant, à partir d’une image dudit de taille donnée du plan technique, les étapes mises en œuvre par ordinateur suivantes: traiter ladite image dans un réseau neuronal convolutif ne comportant qu’un unique canal d’entrée et qu’un unique canal de sortie ;traiter l’image obtenue du canal de sortie du réseau neuronal convolutif pour distinguer, par seuillage, un pixel de l’image associé à un joint d’étanchéité torique d’un pixel non associé à un joint d’étanchéité torique ;mettre en œuvre un algorithme de partitionnement de données de l’image obtenue à l’issue de l’étape B) pour identifier le joint d’étanchéité torique. Figure pour l’abrégé : Figure 2.Title: Method for identifying an O-ring seal on a technical level and associated program product. The invention relates to a method for identifying an O-ring seal on a technical plan, said method comprising, based on an image of said O-ring of given size from the technical plan, the following computer-implemented steps: processing said image in a convolutional neural network comprising only a single input channel and a single output channel; processing the image obtained from the output channel of the convolutional neural network to distinguish, by thresholding, a pixel from the image associated with an O-ring seal of a pixel not associated with an O-ring seal; implement a data partitioning algorithm of the image obtained at the end of step B) to identify the O-ring seal. Figure for abstract: Figure 2.

Description

Procédé d’identification d’un joint d’étanchéité torique sur un plan technique et produit programme associé.Method for identifying an O-ring seal on a technical level and associated program product. Domaine technique de l’inventionTechnical field of the invention

L’invention concerne un procédé d’identification d’un joint d’étanchéité torique sur un plan technique, ainsi qu’un produit programme associé.The invention relates to a method for identifying an O-ring seal on a technical level, as well as an associated program product.

Elle peut trouver application dans différents domaines, en particulier dans le domaine des transports, notamment dans celui de l’automobile.It can find application in different fields, in particular in the field of transport, notably in the automobile sector.

Arrière-plan techniqueTechnical background

Dans le domaine automobile, on utilise de nombreux tuyaux pour transporter des fluides et des raccords pour connecter ces tuyaux aux composants d’un véhicule. Un constituant clé d’un raccord est le joint torique qui permet d’assurer la fonction d’étanchéité entre les composants de véhicule reliés par un tuyau.In the automotive field, many pipes are used to transport fluids and fittings to connect these pipes to the components of a vehicle. A key component of a fitting is the O-ring which provides the sealing function between vehicle components connected by a pipe.

Quand un raccord est conçu, le plan technique qui lui est associé est stocké dans une base de données. Ce stockage s’effectue avec différents critères de classification dans la base afin de permettre une recherche ultérieure plus aisée.When a connection is designed, the technical plan associated with it is stored in a database. This storage is carried out with different classification criteria in the database in order to allow easier subsequent research.

Un critère important est notamment la présence d’un joint torique, et leur nombre.An important criterion is in particular the presence of an O-ring, and their number.

Aujourd’hui, l’identification d’un joint torique, et de leur nombre, sur un plan technique est manuelle. Cela conduit à une classification des différents plans techniques qui est source d’erreur. Cette classification dépend en effet de la compétence technique et de l’expérience de la personne qui saisit l’information dans la base. Par ailleurs, elle est aussi couteuse en temps car elle demande une ouverture et une analyse du plan et de toutes ses vues pour être sûr de ne rien oublier.Today, the identification of an O-ring, and their number, on a technical level is manual. This leads to a classification of the different technical plans which is a source of error. This classification depends on the technical competence and experience of the person entering the information into the database. Furthermore, it is also time-consuming because it requires opening and analyzing the plan and all its views to be sure not to forget anything.

Un objectif de l’invention est d’améliorer l’identification d’un joint d’étanchéité torique sur des plans techniques, en particulier dans l’objectif d’en faire une meilleure classification.An objective of the invention is to improve the identification of an O-ring seal on technical levels, in particular with the objective of making a better classification.

A cet effet, l’invention propose un procédé d’identification d’un joint d’étanchéité torique sur un plan technique, ledit procédé comprenant, à partir d’une image de taille donnée du plan technique, les étapes mises en œuvre par ordinateur suivantes:
A) traiter ladite image dans un réseau neuronal convolutif ne comportant qu’un unique canal d’entrée et qu’un unique canal de sortie ;
B) traiter l’image obtenue du canal de sortie du réseau neuronal convolutif pour distinguer, par seuillage, un pixel de l’image associé à un joint d’étanchéité torique d’un pixel non associé à un joint d’étanchéité torique ;
C) mettre en œuvre un algorithme de partitionnement de données de l’image obtenue à l’issue de l’étape B) pour identifier le joint d’étanchéité torique.
To this end, the invention proposes a method for identifying an O-ring seal on a technical level, said method comprising, from an image of a given size of the technical plan, the steps implemented by computer following:
A) processing said image in a convolutional neural network comprising only a single input channel and a single output channel;
B) processing the image obtained from the output channel of the convolutional neural network to distinguish, by thresholding, a pixel of the image associated with an O-ring seal from a pixel not associated with an O-ring seal;
C) implement a data partitioning algorithm of the image obtained at the end of step B) to identify the O-ring seal.

Le procédé selon l’invention pourra comprendre l’une au moins des caractéristiques suivantes, prises seules ou en combinaison :

  • l’étape A) comprend les sous-étapes mises en œuvre par ordinateur suivantes :
    a) traiter ladite image, depuis l’unique canal d’entrée, dans une première couche du réseau neuronal convolutif, selon les sous-étapes suivantes :
    - effectuer une convolution avec comme hyperparamètres : un nombre de noyaux, définissant le nombre de canaux de sortie de la première couche, compris entre deux et quatre-vingt, une taille de noyau d’au moins treize, un pas valant l’unité ou deux et une marge choisie pour conserver la taille d’image à la valeur du pas près,
    - effectuer une correction avec une fonction d’activation,
    - effectuer une mise en commun avec une taille de noyau donnée, avantageusement entre cinq et vingt-et-un, un pas compris entre deux et quatre, une marge choisie pour conserver la taille d’image à la valeur du pas près;
    chaque image présentant alors une taille réduite ;
    b) traiter les images issues des canaux de sortie de la convolution de la sous-étape précédente dans une deuxième couche du réseau neuronal convolutif, selon les sous-étapes suivantes :
    - effectuer une convolution avec comme hyperparamètres : un nombre de noyaux, définissant un nombre de canaux de sortie pour la deuxième couche, d’au moins quatre-vingt-un, une taille de noyau comprise entre trois et vingt-et-un, un pas valant l’unité ou deux et une marge choisie pour conserver la taille d’image à la valeur du pas près,
    - effectuer une correction avec une fonction d’activation,
    - effectuer une mise en commun avec une taille de noyau donnée, avantageusement entre cinq et vingt-et-un, un pas compris entre deux et quatre, et une marge choisie pour conserver la taille d’image à la valeur du pas près,
    chaque image présentant alors une taille encore réduite;
    c) traiter les images issues des canaux de sortie de la convolution de la sous-étape précédente dans une autre couche du réseau neuronal convolutif avec l’étape suivante :
    - effectuer une convolution avec comme hyperparamètres: un nombre de noyaux de valeur unité définissant un canal de sortie unique pour cette autre couche, une taille de noyau de valeur unité, un pas de valeur unité et une marge nulle pour conserver la taille d’image.
  • le nombre de noyaux pris en considération pour la convolution de la sous-étape a) est compris entre 10 et 64, avantageusement entre 18 et 64 ;
  • la taille de noyau prise en considération pour la convolution de la sous-étape a) est d’au moins 21, avantageusement d’au moins 31 ;
  • le nombre de noyaux pris en considération pour la convolution de la sous-étape b) est d’au moins 100, avantageusement d’au moins 120 ;
  • la taille du noyau prise en considération pour la convolution de la sous-étape b) est d’au plus 15, avantageusement d’au plus 9 ;
  • le pas pris en considération pour effectuer la convolution de la sous-étape a) est de valeur unité si bien que la marge prise en considération pour cette même convolution conserve la taille d’image ; et/ou le pas pris en considération pour effectuer la convolution de la sous-étape b) est de valeur unité si bien que la marge prise en considération pour cette même convolution conserve la taille d’image ;
  • l’étape A) comporte une sous-étape supplémentaire mise en œuvre par ordinateur, entre la sous-étape b) et la sous-étape c), consistant à traiter les images issues des canaux de sortie de la convolution de la sous-étape b) dans une troisième couche du réseau neuronal convolutif, selon les sous-étapes suivantes :
    - effectuer une convolution avec comme hyperparamètres: un nombre de noyaux compris entre 2 et 80, une taille de noyau d’au plus 15, un pas de valeur unité ou deux et une marge choisie pour conserver la taille d’image à la valeur du pas près,
    - effectuer une correction avec une fonction d’activation,
    - effectuer une mise en commun avec un nombre de noyaux donné, avantageusement entre trois et onze, un pas compris entre deux et quatre, et une marge choisie pour conserver la taille d’image à la valeur du pas près ;
  • le nombre de noyaux pris en considération pour effectuer la convolution de la sous-étape supplémentaire est compris entre 10 et 64, avantageusement entre 18 et 64 ;
  • la taille du noyau prise en considération pour effectuer la convolution de la sous-étape supplémentaire est d’au plus 9 et avantageusement d’au plus 5 ;
  • le pas pris en considération pour effectuer la convolution de la sous-étape supplémentaire est de valeur unité si bien que la marge prise en considération pour cette même convolution conserve la taille d’image ;
  • la fonction d’activation choisie pour effectuer la correction est une fonction d’activation non saturante, aussi nommée Unité Linéaire Rectifiée (ReLU) ;
  • la mise en commun est réalisée au moyen d’une fonction max (MaxPool2D) ;
  • les sous-étapes mises en œuvre par ordinateur suivantes, avant de mettre en œuvre l’étape a) : mettre en œuvre un algorithme de partitionnement de données sur l’image du plan technique ; définir une image du plan technique, de taille restreinte et comportant des zones d’intérêt susceptibles de contenir un joint d’étanchéité torique ;
  • l’algorithme de partitionnement de données est l’algorithme DBSCAN.
The method according to the invention may comprise at least one of the following characteristics, taken alone or in combination:
  • step A) includes the following computer-implemented substeps:
    a) processing said image, from the single input channel, in a first layer of the convolutional neural network, according to the following substeps:
    - perform a convolution with hyperparameters: a number of kernels, defining the number of output channels of the first layer, between two and eighty, a kernel size of at least thirteen, a step value of unity or two and a margin chosen to keep the image size to the nearest step value,
    - perform a correction with an activation function,
    - perform a pooling with a given kernel size, advantageously between five and twenty-one, a step of between two and four, a margin chosen to keep the image size to the nearest value of the step;
    each image then having a reduced size;
    b) processing the images from the output channels of the convolution of the previous sub-step in a second layer of the convolutional neural network, according to the following sub-steps:
    - perform a convolution with as hyperparameters: a number of kernels, defining a number of output channels for the second layer, of at least eighty-one, a kernel size between three and twenty-one, one not worth the unit or two and a margin chosen to keep the image size to the nearest step value,
    - perform a correction with an activation function,
    - perform a pooling with a given kernel size, advantageously between five and twenty-one, a step of between two and four, and a margin chosen to keep the image size to the nearest step value,
    each image then having an even smaller size;
    c) process the images from the output channels of the convolution of the previous sub-step in another layer of the convolutional neural network with the following step:
    - perform a convolution with as hyperparameters: a number of kernels of unity value defining a single output channel for this other layer, a kernel size of unity value, a step of unity value and a zero margin to preserve the image size .
  • the number of kernels taken into consideration for the convolution of sub-step a) is between 10 and 64, advantageously between 18 and 64;
  • the kernel size taken into consideration for the convolution of sub-step a) is at least 21, advantageously at least 31;
  • the number of kernels taken into consideration for the convolution of sub-step b) is at least 100, advantageously at least 120;
  • the size of the kernel taken into consideration for the convolution of sub-step b) is at most 15, advantageously at most 9;
  • the step taken into consideration to carry out the convolution of sub-step a) is of unity value so that the margin taken into consideration for this same convolution preserves the image size; and/or the step taken into consideration to carry out the convolution of sub-step b) is of unity value so that the margin taken into consideration for this same convolution preserves the image size;
  • step A) comprises an additional sub-step implemented by computer, between sub-step b) and sub-step c), consisting of processing the images from the output channels of the convolution of the sub-step b) in a third layer of the convolutional neural network, according to the following sub-steps:
    - perform a convolution with hyperparameters: a number of kernels between 2 and 80, a kernel size of at most 15, a step of unit value or two and a margin chosen to keep the image size at the value of not near,
    - perform a correction with an activation function,
    - perform a pooling with a given number of cores, advantageously between three and eleven, a step of between two and four, and a margin chosen to maintain the image size to the nearest value of the step;
  • the number of kernels taken into consideration to carry out the convolution of the additional sub-step is between 10 and 64, advantageously between 18 and 64;
  • the size of the kernel taken into consideration to carry out the convolution of the additional sub-step is at most 9 and advantageously at most 5;
  • the step taken into consideration to carry out the convolution of the additional sub-step is of unity value so that the margin taken into consideration for this same convolution preserves the image size;
  • the activation function chosen to carry out the correction is a non-saturating activation function, also called Rectified Linear Unit (ReLU);
  • pooling is carried out using a max function (MaxPool2D);
  • the following computer-implemented sub-steps, before implementing step a): implementing a data partitioning algorithm on the technical plane image; define an image of the technical plan, of restricted size and including areas of interest likely to contain an O-ring seal;
  • The data partitioning algorithm is the DBSCAN algorithm.

L’invention concerne aussi un produit programme d’ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur, comprenant des instructions pour l’exécution d’un procédé selon l’invention lorsque le produit programme d’ordinateur est exécuté par un système informatique.The invention also relates to a computer program product downloadable from a communications network and/or recorded on a computer-readable medium, comprising instructions for executing a method according to the invention when the computer program product is executed by a computer system.

Brève description des figuresBrief description of the figures

L’invention sera mieux décrite à l’appui des figures :The invention will be better described with the help of the figures:

La est un schéma en coupe d’un joint torique.There is a cross-sectional diagram of an O-ring.

La est un schéma représentatif d’un exemple de réalisation d’un procédé conforme à l’invention.There is a diagram representative of an exemplary embodiment of a method according to the invention.

Description détaillée de l’inventionDetailed description of the invention

L’invention concerne un procédé d’identification d’un joint d’étanchéité torique sur un plan technique, ledit procédé comprenant, à partir d’une image de taille donnée dudit plan technique, les étapes suivantes mises en œuvre par ordinateur :
A) traiter ladite image dans un réseau neuronal convolutif, ne comportant qu’un unique canal d’entrée et qu’un unique canal de sortie;
B) traiter l’image obtenue du canal de sortie du réseau neuronal convolutif pour distinguer, par seuillage, un pixel de l’image associé à un joint d’étanchéité torique d’un pixel non associé à un joint d’étanchéité torique ;
C) mettre en œuvre un algorithme de partitionnement de données de l’image obtenue à l’issue de l’étape B) pour identifier le joint d’étanchéité torique.
The invention relates to a method for identifying an O-ring seal on a technical level, said method comprising, from an image of a given size of said technical plan, the following steps implemented by computer:
A) processing said image in a convolutional neural network, comprising only a single input channel and a single output channel;
B) processing the image obtained from the output channel of the convolutional neural network to distinguish, by thresholding, a pixel of the image associated with an O-ring seal from a pixel not associated with an O-ring seal;
C) implement a data partitioning algorithm of the image obtained at the end of step B) to identify the O-ring seal.

De manière générale, un réseau neuronal convolutif présente des propriétés intéressantes pour traiter des images. En effet, il présente notamment des propriétés d’invariance spatiale (le réseau est capable de classifier l’image quelle que soit la position de l’objet recherche dans l’image) et d’invariance à la distorsion géométrique (le réseau est capable de classifier quelle que soit l’orientation ou l’échelle de l’objet recherché dans une image).Generally speaking, a convolutional neural network has interesting properties for processing images. Indeed, it presents in particular properties of spatial invariance (the network is capable of classifying the image whatever the position of the search object in the image) and invariance to geometric distortion (the network is capable to classify whatever the orientation or scale of the object sought in an image).

Dans le cadre particulier de l’invention, le réseau neuronal convolutif ne comporte qu’un unique canal d’entrée (donc il ne prend qu’une seule image) du fait que l’image du plan technique à traiter au cours de l’étape A) est une image en noir et blanc.In the particular context of the invention, the convolutional neural network only has a single input channel (so it only takes a single image) due to the fact that the image of the technical plan to be processed during the step A) is a black and white image.

Par ailleurs, également dans le cadre particulier de l’invention, le réseau neuronal convolutif ne comporte qu’un unique canal de sortie. A l’issue de l’étape A), on ne récupère donc qu’une seule image.Furthermore, also in the particular context of the invention, the convolutional neural network only has a single output channel. At the end of step A), we therefore only recover one image.

La mise en œuvre des étapes B) et C), appliquée après l’étape A) de laquelle ne sort qu’un unique canal (donc une seule image) permet un traitement rapide. Ce traitement est en particulier plus rapide qu’une solution classique consistant à mettre en œuvre une couche « entièrement connectée » (« fully connected » selon la terminologie anglo-saxonne) en sortie du réseau neuronal convolutif, lequel comporte généralement de nombreux canaux de sortie.The implementation of steps B) and C), applied after step A) from which only a single channel (therefore a single image) emerges, allows rapid processing. This processing is in particular faster than a classic solution consisting of implementing a “fully connected” layer (“fully connected” according to Anglo-Saxon terminology) at the output of the convolutional neural network, which generally includes numerous output channels .

Le seuillage réalisé à l’étape B) permet d’obtenir une image où un pixel associé à un joint d’étanchéité torique est représenté en noir et un pixel non associé à un joint d’étanchéité torique est représenté en blanc (classification).The thresholding carried out in step B) makes it possible to obtain an image where a pixel associated with an O-ring seal is represented in black and a pixel not associated with an O-ring seal is represented in white (classification).

L’objet de l’étape C) est alors de reconnaître le joint d’étanchéité torique à partir des pixels ainsi classés à l’étape B).The object of step C) is then to recognize the O-ring seal from the pixels thus classified in step B).

L’algorithme de partitionnement de données mis en œuvre à l’étape C) est avantageusement l’algorithme DBSCAN (acronyme de « Density-Based Spatial Clustering of Applications with Noise » selon la terminologie anglo-saxonne). Toutefois, on pourrait utiliser un autre algorithme, par exemple l’algorithme OPTICS (acronyme de « Ordering Points To Identify the Clustering Structure » selon la terminologie anglo-saxonne) ou l’algorithme de mise en commun agglomérative (plus connu sous sa terminologie anglo-saxonne « Agglomerative clustering »). Pour l’application considérée dans le cadre de l’invention, qu’il convient d’associer à une taille d’image pouvant être typiquement rencontrée, on peut notamment prévoir l’emploi d’un logiciel DBSCAN avec comme hyperparamètres : une distance de 15 (comptée en pixels) et un nombre de points minimum de 20.The data partitioning algorithm implemented in step C) is advantageously the DBSCAN algorithm (acronym for “Density-Based Spatial Clustering of Applications with Noise” according to Anglo-Saxon terminology). However, we could use another algorithm, for example the OPTICS algorithm (acronym for “Ordering Points To Identify the Clustering Structure” according to Anglo-Saxon terminology) or the agglomerative pooling algorithm (better known by its Anglo-Saxon terminology). -Saxon “Agglomerative clustering”). For the application considered in the context of the invention, which should be associated with an image size that can typically be encountered, it is possible in particular to use DBSCAN software with the following hyperparameters: a distance of 15 (counted in pixels) and a minimum number of points of 20.

Avec la mise en œuvre des étapes A), B) et C), l’identification d’un joint d’étanchéité torique est particulièrement rapide et efficace (sans ou avec une probabilité extrêmement faible d’erreur).With the implementation of steps A), B) and C), the identification of an O-ring is particularly quick and efficient (with no or extremely low probability of error).

Le traitement d’image effectué pendant l’étape A) par le réseau neuronal convolutif peut être effectué de différentes façons.The image processing carried out during step A) by the convolutional neural network can be carried out in different ways.

Toutefois, une conception particulièrement bien adaptée du réseau neuronal convolutif à l’identification d’un joint d’étanchéité torique, assurant à la fois exactitude et temps de traitement raisonnable considère une étape A) s’effectuant selon les sous-étapes suivantes :
a) traiter l’image, depuis l’unique canal d’entrée, dans une première couche du réseau neuronal convolutif, selon les sous-étapes suivantes :
- effectuer une convolution avec comme hyperparamètres : un nombre de noyaux, définissant un nombre de canaux de sortie pour la première couche, compris entre deux (2) et quatre-vingt (80), une taille de noyau d’au moins treize (13), un pas valant l’unité (1) ou deux (2) et une marge choisie pour conserver la taille d’image à la valeur du pas près,
- effectuer une correction avec une fonction d’activation,
- effectuer une mise en commun avec une taille de noyau donnée, avantageusement comprise entre cinq (5) et vingt-et-un (21), un pas compris entre deux (2) et quatre (4), et une marge choisie pour conserver la taille d’image à la valeur du pas près;
chaque image présentant alors une taille réduite ;
b) traiter les images issues des canaux de sortie de la convolution de la sous-étape précédente dans une deuxième couche du réseau neuronal convolutif, selon les sous-étapes suivantes :
- effectuer une convolution avec comme hyperparamètres : un nombre de noyaux, définissant un nombre de canaux de sortie pour la deuxième couche, d’au moins quatre-vingt-un (81), une taille de noyau comprise entre trois (3) et vingt-et-un (21), un pas valant l’unité (1) ou deux (2) et une marge choisie pour conserver la taille d’image à la valeur du pas près,
- effectuer une correction avec une fonction d’activation,
- effectuer une mise en commun avec une taille de noyau donnée, avantageusement comprise entre cinq (5) et vingt-et-un (21), un pas compris entre deux (2) et quatre (4), et une marge choisie pour conserver la taille d’image à la valeur du pas près,
chaque image présentant alors une taille encore réduite;
c) traiter les images issues des canaux de sortie de la convolution de la sous-étape précédente dans une autre couche du réseau neuronal convolutif avec l’étape suivante :
- effectuer une convolution avec comme hyperparamètres: un nombre de noyau de valeur unité définissant un canal de sortie unique pour cette autre couche, une taille de noyau de valeur unité, un pas de valeur unité et une marge nulle pour conserver la taille d’image.
However, a particularly well-suited design of the convolutional neural network for the identification of an O-ring seal, ensuring both accuracy and reasonable processing time, considers a step A) carried out according to the following sub-steps:
a) process the image, from the single input channel, in a first layer of the convolutional neural network, according to the following sub-steps:
- perform a convolution with hyperparameters: a number of kernels, defining a number of output channels for the first layer, between two (2) and eighty (80), a kernel size of at least thirteen (13 ), a step worth one (1) or two (2) and a margin chosen to keep the image size to the nearest step value,
- perform a correction with an activation function,
- perform a pooling with a given kernel size, advantageously between five (5) and twenty-one (21), a step between two (2) and four (4), and a margin chosen to keep the image size to the nearest step value;
each image then having a reduced size;
b) processing the images from the output channels of the convolution of the previous sub-step in a second layer of the convolutional neural network, according to the following sub-steps:
- perform a convolution with as hyperparameters: a number of kernels, defining a number of output channels for the second layer, of at least eighty-one (81), a kernel size between three (3) and twenty -and-one (21), a step worth one (1) or two (2) and a margin chosen to keep the image size to the nearest step value,
- perform a correction with an activation function,
- perform a pooling with a given kernel size, advantageously between five (5) and twenty-one (21), a step between two (2) and four (4), and a margin chosen to keep the image size to the nearest step value,
each image then having an even smaller size;
c) process the images from the output channels of the convolution of the previous sub-step in another layer of the convolutional neural network with the following step:
- perform a convolution with as hyperparameters: a kernel number of unity value defining a single output channel for this other layer, a kernel size of unity value, a step of unity value and a zero margin to preserve the image size .

Les sous-étapes a), b) et c) sont mises en œuvre par ordinateur.Substeps a), b) and c) are implemented by computer.

Avec ces sous-étapes, le nombre de couches reste très limité et en conséquence, les paramètres à apprendre sont moindres.With these sub-steps, the number of layers remains very limited and as a result, the parameters to learn are fewer.

La convolution avec un réseau neuronal met en œuvre plusieurs hyperparamètres que sont le nombre de noyaux (appelé « kernel » selon la terminologie anglo-saxonne), la taille du noyau (appelée « kernel size » selon la terminologie anglo-saxonne), le pas (nommé « stride » selon la terminologie anglo-saxonne), la marge (nommée « padding » ou parfois « zero padding » selon la terminologie anglo-saxonne). Cette convolution est parfois nommée « Conv2D ».Convolution with a neural network implements several hyperparameters such as the number of kernels (called “kernel” according to Anglo-Saxon terminology), the size of the kernel (called “kernel size” according to Anglo-Saxon terminology), the step (named “stride” according to Anglo-Saxon terminology), the margin (called “padding” or sometimes “zero padding” according to Anglo-Saxon terminology). This convolution is sometimes called “Conv2D”.

La convolution de la sous-étape a) (première couche) utilise un nombre de noyaux, lequel correspond au nombre de canaux de sortie de la première couche, compris entre 2 et 80, Ce choix permet de limiter le volume de données à traiter par la suite. Avantageusement, on pourra prévoir un nombre de noyaux compris entre 10 et 64, plus avantageusement compris entre 18 et 64, et en particulier compris entre 18 et 48 d’une part pour limiter encore plus le volume de données à traiter (borne supérieure) et d’autre part pour conserver un nombre de noyaux (borne inférieure) raisonnable et ne pas perdre en qualité de traitement.The convolution of sub-step a) (first layer) uses a number of kernels, which corresponds to the number of output channels of the first layer, between 2 and 80. This choice makes it possible to limit the volume of data to be processed by the following. Advantageously, a number of cores could be provided between 10 and 64, more advantageously between 18 and 64, and in particular between 18 and 48 on the one hand to further limit the volume of data to be processed (upper limit) and on the other hand to maintain a reasonable number of cores (lower limit) and not lose processing quality.

Cette convolution est par ailleurs réalisée avec une taille de noyau minimum voire relativement importante, en l’occurrence d’au moins 13, avantageusement d’au moins 15, de préférence d’au moins 21 et encore plus préférentiellement d’au moins 31. L’intérêt d’une taille de noyau importante est de pouvoir détecter une large gamme de caractéristiques de l’image (e.g. joint d’étanchéité torique ou autre élément géométriquement proche comme un cercle, un cercle associé à des traits droits, etc) dès la première couche. On peut ainsi également envisager de mettre en œuvre un nombre limité de couches pour arriver à la détection recherchée en un temps de traitement raisonnable.This convolution is also carried out with a minimum or even relatively large kernel size, in this case at least 13, advantageously at least 15, preferably at least 21 and even more preferably at least 31. The advantage of a large kernel size is to be able to detect a wide range of image characteristics (e.g. O-ring seal or other geometrically close element such as a circle, a circle associated with straight lines, etc.) from the first layer. We can therefore also consider implementing a limited number of layers to achieve the desired detection in a reasonable processing time.

Cette convolution est par ailleurs réalisée avec un pas (non nul) d’au plus deux, et avantageusement de valeur unité, pour ne pas perdre en précision spatiale.This convolution is also carried out with a step (non-zero) of at most two, and advantageously of unity value, so as not to lose spatial precision.

Le choix de la marge, désignée P, dépend quant à lui de la taille du noyau, désignée K, et de la valeur du pas, désignée S.The choice of the margin, designated P, depends on the size of the core, designated K, and the value of the step, designated S.

De manière générale, les hyperparamètres P, K et S sont liés à la taille de l’image en entrée de la première couche, désignée WI, et à la taille de l’image (pour un canal de sortie donné) en sortie de la première couche WO, par la relation suivante :Generally speaking, the hyperparameters P, K and S are linked to the size of the image at the input of the first layer, designated W I , and to the size of the image (for a given output channel) at the output of the first layer W O , by the following relation:

WO= 1 + (WI– K + 2P)/S (R1)W O = 1 + (W I – K + 2P)/S (R1)

Dire alors que la marge est choisie pour conserver la taille d’image à la valeur du pas près se traduit mathématiquement par la condition (C1) : WO= WI/S. Dans ce cas, la relation R1 se réduit à la relation R2 suivante :Saying then that the margin is chosen to preserve the image size to the nearest step value translates mathematically into the condition (C1): W O = W I /S. In this case, the relation R1 is reduced to the following relation R2:

S – K + 2P = 0 (R2)S – K + 2P = 0 (R2)

Dans le cas avantageux où le pas S est fixé à la valeur unité (S = 1), alors la taille de l’image en sortie de la première couche est identique à la taille de l’image en entrée de la première couche, et la relation R2 peut être réécrite sous la forme de la relation R3 suivante:In the advantageous case where the step S is fixed at the unity value (S = 1), then the size of the output image of the first layer is identical to the size of the input image of the first layer, and the relation R2 can be rewritten in the form of the following relation R3:

P = (K -1)/2 (R3)P = (K -1)/2 (R3)

Ainsi, et à titre d’application de la relation R3, si la taille de noyau est choisie à K = 25, alors la marge est fixée à P = 12 et si la taille de noyau est choisie à K = 31, alors la marge est fixée à P = 15.Thus, and as an application of the relation R3, if the kernel size is chosen at K = 25, then the margin is fixed at P = 12 and if the kernel size is chosen at K = 31, then the margin is fixed at P = 15.

La fonction d’activation peut être diverse.The activation function can be diverse.

A titre d’exemples non limitatifs, on peut choisir une fonction tangente hyperbolique, une fonction sigmoïde ou encore une fonction non saturante. La fonction d’activation non saturante, aussi connue sous le nom d’Unité Linéaire Rectifiée (encore désignée par « ReLU » pour « Rectified Linear Unit » selon la terminologie anglo-saxonne), et s’exprimant sous la forme [Maths 1] est toutefois avantageuse car elle permet un traitement particulièrement rapide et précise, en particulier du fait qu’elle évite les problèmes de convergence.As non-limiting examples, we can choose a hyperbolic tangent function, a sigmoid function or even a non-saturating function. The non-saturating activation function, also known as the Rectified Linear Unit (also referred to as “ReLU” for “Rectified Linear Unit” according to Anglo-Saxon terminology), and expressed in the form [Maths 1] is however advantageous because it allows particularly rapid and precise processing, in particular because it avoids convergence problems.

En ce qui concerne la sous-étape de mise en commun (nommée « pooling » selon la terminologie anglo-saxonne), un pas d’au moins deux permet de s’assurer d’une diminution de la taille d’image (taille mesurée en pixels*pixels), conformément à l’application de la relation R1 avec la condition C1. Il convient toutefois et dans le même temps de ne pas trop diminuer cette taille d’images car cela entraînerait une perte de résolution pour la détection de la forme à identifier (arc de cercle, etc, représentant le joint torique recherché). C’est pourquoi le pas est d’au plus quatre.Concerning the pooling sub-step (called “pooling” according to Anglo-Saxon terminology), a step of at least two ensures a reduction in the image size (measured size in pixels*pixels), in accordance with the application of the relationship R1 with the condition C1. However, at the same time, it is advisable not to reduce this image size too much as this would result in a loss of resolution for the detection of the shape to be identified (arc of a circle, etc., representing the desired O-ring). This is why the step is at most four.

Cette mise en commun peut être réalisée selon différents schémas.This pooling can be carried out according to different schemes.

A titre d’exemples non limitatifs, on peut réaliser une mise en commun moyennée (« average pooling » selon la terminologie anglo-saxonne) pour laquelle la sortie est la valeur moyenne des valeurs d’entrée (le nombre de valeurs d’entrée est défini par le nombre de noyaux choisi), ou une mise en commun mettant en œuvre une fonction max pour laquelle la sortie est la valeur maximale des valeurs d’entrée. Il est avantageux de mettre en œuvre une fonction max (cette fonction est plus connue sous la désignation « MaxPool2D » dans la terminologie anglo-saxonne) car elle favorise les activations fortes. Son emploi est par ailleurs particulièrement avantageux lorsque la correction par fonction d’activation est faite avec la fonction ReLU.By way of non-limiting examples, it is possible to carry out average pooling (“average pooling” according to Anglo-Saxon terminology) for which the output is the average value of the input values (the number of input values is defined by the number of cores chosen), or a pooling implementing a max function for which the output is the maximum value of the input values. It is advantageous to implement a max function (this function is better known under the designation “MaxPool2D” in English terminology) because it favors strong activations. Its use is also particularly advantageous when the correction by activation function is made with the ReLU function.

La convolution de la sous-étape b) (deuxième couche) s’effectue avec un nombre de noyaux plus élevé que pour la sous-étape a) (première couche), en l’occurrence d’au moins 81, avantageusement d’au moins 100 et de préférence d’au moins 120. En effet, du fait de l’opération de mise en commun réalisée pendant la sous-étape a), la taille d’image a été réduite et on peut donc augmenter le nombre de noyaux pendant la sous-étape b), c’est-à-dire augmenter le nombre de canaux de sortie de la deuxième couche, sans que cela se fasse au détriment du temps de calcul. Or, c’est le nombre de canaux de sortie qui permet de réaliser la recherche de zones caractéristiques de l’image qui permettront de résoudre la tâche de classification.The convolution of sub-step b) (second layer) is carried out with a higher number of kernels than for sub-step a) (first layer), in this case at least 81, advantageously at least least 100 and preferably at least 120. Indeed, due to the pooling operation carried out during substep a), the image size has been reduced and we can therefore increase the number of cores during substep b), that is to say increase the number of output channels of the second layer, without this being done at the expense of calculation time. However, it is the number of output channels which makes it possible to carry out the search for characteristic areas of the image which will make it possible to solve the classification task.

En parallèle, on utilise une taille de noyau maximale limitée, en l’occurrence d’au plus 21 (ce qui correspond à un noyau dont la taille est d’au plus 21pixels*21pixels), mais qui est avantageusement d’au plus 15, et préférentiellement d’au plus 9.In parallel, we use a limited maximum kernel size, in this case at most 21 (which corresponds to a kernel whose size is at most 21 pixels * 21 pixels), but which is advantageously at most 15 , and preferably at most 9.

Il convient de relever que dans un cas avantageux, la convolution de la sous-étape a) prévoit un nombre de noyaux ni trop faible ni trop important, par exemple compris entre 18 et 64, avec une taille de noyau relativement élevée, par exemple d’au moins 21 et dans le même temps, la convolution de la sous-étape b) prévoit une taille de noyau avantageusement plus faible, par exemple d’au plus 15 avec comme conséquence une augmentation du nombre de noyaux d’au moins 81 ou plus comme indiqué précédemment.It should be noted that in an advantageous case, the convolution of sub-step a) provides a number of kernels that is neither too small nor too large, for example between 18 and 64, with a relatively high kernel size, for example d at least 21 and at the same time, the convolution of sub-step b) provides an advantageously smaller kernel size, for example at most 15 with the consequence of an increase in the number of kernels of at least 81 or more as previously stated.

Cette convolution reste néanmoins réalisée avec un pas (non nul) d’au plus deux, et de préférence de valeur unité, pour ne pas perdre en précision spatiale.This convolution nevertheless remains carried out with a step (not zero) of at most two, and preferably of unity value, so as not to lose spatial precision.

Enfin, la marge reste également choisie pour maintenir la taille de l’image à la valeur du pas près, conformément à la relation (R1) et la condition (C1) fournies précédemment.Finally, the margin also remains chosen to maintain the size of the image to the nearest step value, in accordance with the relation (R1) and the condition (C1) provided previously.

Pour cette sous-étape b), les commentaires relatifs à la correction et à la mise en commun faits pour la convolution de la sous-étape a) sont applicables.For this substep b), the comments relating to correction and pooling made for the convolution of substep a) are applicable.

Il convient enfin de noter que l’étape A) pourra comporter, de manière optionnelle, une sous-étape supplémentaire, entre la sous-étape b) et la sous-étape c), consistant à traiter les images issues des canaux de sortie de la convolution de la sous-étape b) (deuxième couche) dans une troisième couche du réseau neuronal convolutif, selon les sous-étapes suivantes :
- effectuer une convolution avec comme hyperparamètres: un nombre de noyaux compris entre 2 et 80, une taille de noyau d’au plus 15, un pas de valeur unité ou deux et une marge choisie pour conserver la taille d’image à la valeur du pas près,
- effectuer une correction avec une fonction d’activation,
- effectuer une mise en commun avec un nombre de noyaux donné, avantageusement entre trois (3) et onze (11), un pas compris entre deux et quatre, et une marge choisie pour conserver la taille d’image à la valeur du pas près.
Finally, it should be noted that step A) may optionally include an additional sub-step, between sub-step b) and sub-step c), consisting of processing the images from the output channels of the convolution of sub-step b) (second layer) in a third layer of the convolutional neural network, according to the following sub-steps:
- perform a convolution with hyperparameters: a number of kernels between 2 and 80, a kernel size of at most 15, a step of unit value or two and a margin chosen to keep the image size at the value of not near,
- perform a correction with an activation function,
- perform a pooling with a given number of cores, advantageously between three (3) and eleven (11), a step of between two and four, and a margin chosen to maintain the image size to the nearest value of the step .

Cette sous-étape supplémentaire est également mise en œuvre par ordinateur.This additional sub-step is also implemented by computer.

Comme on peut le constater, cette sous-étape supplémentaire (troisième couche) limite, par rapport à la sous-étape b) (deuxième couche) le nombre de noyaux c’est-à-dire le nombre de canaux de sortie, en l’occurrence entre 2 et 80. Avantageusement, on pourra prévoir un nombre de noyaux compris entre 10 et 64, plus avantageusement compris entre 18 et 64, et en particulier compris entre 18 et 48. Cela s’effectue par ailleurs sans nécessiter une taille de noyau importante puisque celle-ci est clairement limitée à 15. Avantageusement, la taille de noyau sera d’ailleurs d’au plus 9, voire d’au plus 5. Dans tous les cas, la taille de noyau est non nulle.As we can see, this additional sub-step (third layer) limits, compared to sub-step b) (second layer) the number of cores, that is to say the number of output channels, in l occurrence between 2 and 80. Advantageously, we can provide a number of cores between 10 and 64, more advantageously between 18 and 64, and in particular between 18 and 48. This is also done without requiring a size of important kernel since this is clearly limited to 15. Advantageously, the kernel size will also be at most 9, or even at most 5. In all cases, the kernel size is non-zero.

Cette convolution supplémentaire reste néanmoins réalisée avec un pas (non nul) d’au plus deux, et de préférence de valeur unité, pour ne pas perdre en précision spatiale.This additional convolution nevertheless remains carried out with a step (non-zero) of at most two, and preferably of unity value, so as not to lose spatial precision.

Enfin, la marge reste également choisie pour faire en sorte que la troisième couche, lorsqu’elle est mise en œuvre, maintienne la taille d’image à la valeur du pas près, conformément à la relation (R1) avec la condition (C1) fournies précédemment.Finally, the margin also remains chosen to ensure that the third layer, when implemented, maintains the image size at the nearest step value, in accordance with the relationship (R1) with condition (C1) previously provided.

Pour cette convolution supplémentaire, les commentaires relatifs à la correction et à la mise en commun faite pour la convolution de la sous-étape a) sont applicables.For this additional convolution, the comments relating to the correction and pooling made for the convolution of substep a) are applicable.

Optionnellement mais avantageusement, l’étape A) peut prévoir, avant la mise en œuvre de la sous-étape a), de fournir une image du plan technique provenant d’un traitement par un algorithme de partitionnement de données de l’image. Cela permet de sélectionner une image ne formant qu’une partie du plan technique comportant des zones d’intérêt, i.e. des zones susceptibles de contenir un joint d’étanchéité torique (cela revient à segmenter l’image initiale pour ne finalement travailler que sur les vues pertinentes de cette image). A cet effet, les différents exemples d’algorithme de partitionnement cités précédemment peuvent être employés, en particulier l’algorithme DBSCAN. Pour l’application considérée dans le cadre de l’invention, qu’il convient d’associer à une taille d’image pouvant être typiquement rencontrée, on peut par exemple, et pour se fixer les idées, mettre en œuvre un algorithme DBSCAN avec une distance de 25 (comptée en pixels) et un nombre de points minimum de 10. Les valeurs des hyperparamètres sont bien entendu à adapter en fonction de la taille effective de l’image à traiter.Optionally but advantageously, step A) can provide, before implementing sub-step a), to provide an image of the technical plan coming from processing by an image data partitioning algorithm. This makes it possible to select an image forming only part of the technical plan including areas of interest, i.e. areas likely to contain an O-ring seal (this amounts to segmenting the initial image to finally work only on the relevant views of this image). For this purpose, the different examples of partitioning algorithms cited above can be used, in particular the DBSCAN algorithm. For the application considered in the context of the invention, which should be associated with an image size that can typically be encountered, one can for example, and to establish ideas, implement a DBSCAN algorithm with a distance of 25 (counted in pixels) and a minimum number of points of 10. The values of the hyperparameters must of course be adapted according to the effective size of the image to be processed.

Ainsi, préalablement à l’étape A) du procédé selon l’invention, on pourra prévoir les étapes mises en œuvre par ordinateur suivantes (prétraitement):
- mettre en œuvre un algorithme de partitionnement de données sur l’image du plan technique ;
- définir une image du plan technique, de taille restreinte et comportant au moins une zone d’intérêt susceptible de contenir un joint d’étanchéité torique.
Thus, prior to step A) of the method according to the invention, the following steps implemented by computer (preprocessing) can be provided:
- implement a data partitioning algorithm on the image of the technical plan;
- define an image of the technical plan, of limited size and including at least one area of interest likely to contain an O-ring seal.

Afin que le réseau neuronal convolutif puisse fonctionner correctement, celui-ci doit être préalablement entraîné à reconnaître un joint d’étanchéité torique sur plan technique. Or, sur un plan technique, un joint d’étanchéité torique, généralement en coupe, se présente sous la forme d’une association d’un cercle hachuré et de traits droits venant dans le prolongement desdits traits.In order for the convolutional neural network to function correctly, it must first be trained to recognize an O-ring seal on a technical level. However, on a technical level, an O-ring seal, generally in section, is in the form of a combination of a hatched circle and straight lines extending from said lines.

On a ainsi représenté sur la la forme typique d’un joint d’étanchéité torique sur un tel plan technique.We have thus represented on the the typical shape of an O-ring seal on such a technical level.

Avantageusement, le réseau neuronal convolutif employé à l’étape A) est un réseau neuronal convolutif ayant fait l’objet d’un apprentissage avec au moins 10 000 images comportant une représentation d’au moins un joint d’étanchéité torique tel que représenté sur la , éventuellement sans les hachurages, ces derniers n’ayant pas d’impact sur la définition du contour du joint torique.Advantageously, the convolutional neural network used in step A) is a convolutional neural network having been trained with at least 10,000 images comprising a representation of at least one O-ring seal as represented on there , possibly without hatching, the latter having no impact on the definition of the contour of the O-ring.

Ces images peuvent être des images issues de véritables plans technique et/ou issues de plans techniques (ou plus généralement d’images) construits de manièread hocaux fins de l’apprentissage.These images can be images from real technical plans and/or from technical plans (or more generally images) constructed ad hoc for the purposes of learning.

Enfin, il convient de noter que l’invention concerne aussi un produit programme d’ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur, comprenant des instructions pour l’exécution d’un procédé selon l’invention lorsque le produit programme d’ordinateur est exécuté par un système informatique.Finally, it should be noted that the invention also relates to a computer program product downloadable from a communications network and/or recorded on a computer-readable medium, comprising instructions for executing a method according to the invention when the computer program product is executed by a computer system.

Exemple de réalisationExample of production

La schématise le procédé selon l’invention dans un exemple de réalisation particulier.There schematizes the process according to the invention in a particular embodiment.

Le procédé a été mis en œuvre avec le langage PYTHON.The process was implemented with the PYTHON language.

Nous avons pris en considération une image de plan technique quelconque, de taille 9000 pixels*6000 pixels.We took into consideration an image of any technical plan, of size 9000 pixels*6000 pixels.

Un prétraitement de cet image a été effectué par ordinateur pour obtenir une image de taille restreinte et comportant au moins une zone d’intérêt susceptible de contenir un joint d’étanchéité torique. Ce traitement a été effectué par l’algorithme DBSCAN avec comme hyperparamètres : 25 (nommé « eps » sous PYTHON) pour la distance et 10 pour le nombre de points minimum (nommé « min_samples » sous PYTHON). L’image ainsi obtenue est celle qui est représentée à gauche sur la , de taille 1600pixels*1400pixels. Sur cette image, on peut relever la présence de deux zones susceptibles d’être assimilées chacune à un joint d’étanchéité torique. Autrement dit, cette image semble comporter deux joints d’étanchéité torique.Preprocessing of this image was carried out by computer to obtain an image of limited size and comprising at least one area of interest likely to contain an O-ring seal. This processing was carried out by the DBSCAN algorithm with hyperparameters: 25 (named “eps” under PYTHON) for the distance and 10 for the minimum number of points (named “min_samples” under PYTHON). The image thus obtained is the one shown on the left on the , of size 1600pixels*1400pixels. In this image, we can note the presence of two zones each likely to be assimilated to an O-ring seal. In other words, this image appears to have two O-ring seals.

Cette image a alors été introduite dans le réseau neuronal convolutif pour mettre en œuvre l’étape A) du procédé selon l’invention. Le réseau neuronal convolutif représenté sur la a été entraîné avec plus de 10 000 images comportant une représentation d’au moins un joint d’étanchéité torique.This image was then introduced into the convolutional neural network to implement step A) of the method according to the invention. The convolutional neural network shown on the was trained with over 10,000 images featuring a representation of at least one O-ring.

L’étape A) du procédé selon l’invention a ensuite été implémentée sur ordinateur avec cette dernière image et avec la librairie « PyTorch » du logiciel PYTHON, selon l’algorithme suivant :
Step A) of the method according to the invention was then implemented on a computer with this last image and with the “PyTorch” library of the PYTHON software, according to the following algorithm:

Dans cet algorithme, il y a en l’occurrence 4 couches dans le réseau neuronal convolutif, la dernière servant à définir un canal de sortie unique.In this algorithm, there are 4 layers in the convolutional neural network, the last being used to define a single output channel.

Dans chaque couche du réseau neuronal convolutif, on met en œuvre une convolution, un traitement par la fonction d’activation « ReLU » puis, une mise en commun avec la fonction « MaxPool2D ».In each layer of the convolutional neural network, a convolution is implemented, processing by the “ReLU” activation function then, pooling with the “MaxPool2D” function.

Si l’on prend par exemple la première couche du réseau neuronal convolutif (sous étape a) du procédé selon l’invention), et que l’on s’intéresse à la convolution proprement dite, on note les points suivants.If we take for example the first layer of the convolutional neural network (sub step a) of the method according to the invention), and we are interested in the convolution itself, we note the following points.

Le premier nombre (à savoir 1) définit le nombre de canaux d’entrée. On peut d’ailleurs observer sur la qu’une seule image (en noir et blanc) est prise en considération.The first number (i.e. 1) defines the number of input channels. We can also observe on the only one image (in black and white) is taken into consideration.

Le deuxième nombre (à savoir 64) définit le nombre de canaux de sortie (nombre de noyaux) de la première couche.The second number (i.e. 64) defines the number of output channels (number of cores) of the first layer.

Le troisième nombre (à savoir 31) définit la taille du noyau (soit 31 pixels*31 pixels).The third number (i.e. 31) defines the size of the kernel (i.e. 31 pixels*31 pixels).

Le quatrième nombre définit le pas (à savoir la valeur unité)The fourth number defines the step (i.e. the unit value)

Le cinquième nombre définit la marge (à savoir 15, on note que 15*2+1 = 31 vérifiant ainsi la relation (R3) fournie précédemment).The fifth number defines the margin (namely 15, note that 15*2+1 = 31 thus verifying the relationship (R3) provided previously).

En continuant avec la première couche du réseau neuronal convolutif, et en s’intéressant à la sous-étape de mise en commun (« pooling »), on note que les 3 nombres concernant les hyperparamètres, respectivement la taille de noyau (à savoir 15, définissant un noyau de taille 15pixels*15pixels), le pas (à savoir 2, divisant ainsi par 4 la taille de l’image, ce que l’on peut vérifier sur la où l’image ayant subi une première convolution, dans cet exemple de 500 pixels*500 pixels passe à 250 pixels*250 pixels au niveau de la deuxième couche).Continuing with the first layer of the convolutional neural network, and focusing on the pooling sub-step, we note that the 3 numbers concerning the hyperparameters, respectively the kernel size (namely 15 , defining a kernel of size 15pixels*15pixels), the step (namely 2, thus dividing the size of the image by 4, which can be verified on the where the image having undergone a first convolution, in this example from 500 pixels*500 pixels passes to 250 pixels*250 pixels at the level of the second layer).

Compte tenu des explications qui précèdent, on peut ainsi comprendre quels paramètres sont mis en œuvre pour les autres couches du réseau neuronal convolutif (2èmecouche, 3èmecouche et dernière couche).Taking into account the above explanations, we can thus understand which parameters are implemented for the other layers of the convolutional neural network ( 2nd layer, 3rd layer and last layer).

En sortie du réseau neuronal convolutif, donc à l’issue de l’étape A), on obtient une image exprimant une probabilité qu’un pixel donné appartienne à la classe « joint d’étanchéité torique ».At the output of the convolutional neural network, therefore at the end of step A), we obtain an image expressing a probability that a given pixel belongs to the “O-ring seal” class.

L’étape B) permet alors de rendre cette information binaire, avec le seuillage.Step B) then makes it possible to make this information binary, with thresholding.

L’étape C) finalise l’identification des joints toriques, dans cet exemple de réalisation, avec l’algorithme DBSCAN et les hyperparamètres suivants : 15 pour la distance et 20 pour le nombre de points minimum.Step C) finalizes the identification of the O-rings, in this example embodiment, with the DBSCAN algorithm and the following hyperparameters: 15 for the distance and 20 for the minimum number of points.

Les données sont sauvegardées dans un tableau reproduit ci-dessous :
The data is saved in a table reproduced below:

De ce tableau, il ressort l’identification de deux joints toriques, avec par ailleurs leurs coordonnées (x_origin ; y_origin) dans l’image et leurs dimensions respectives (« width » pour largeur et « height » pour hauteur, en pixels).From this table, we can see the identification of two O-rings, with their coordinates (x_origin; y_origin) in the image and their respective dimensions (“width” for width and “height” for height, in pixels).

Claims (17)

Procédé d’identification d’un joint d’étanchéité torique sur un plan technique, ledit procédé comprenant, à partir d’une image de taille donnée du plan technique, les étapes mises en œuvre par ordinateur suivantes:
A) traiter ladite image dans un réseau neuronal convolutif ne comportant qu’un unique canal d’entrée et qu’un unique canal de sortie, l’étape A) comprenant les sous-étapes mises en œuvre par ordinateur suivantes :
a) traiter ladite image, depuis l’unique canal d’entrée, dans une première couche du réseau neuronal convolutif, selon les sous-étapes suivantes :
  • effectuer une convolution avec comme hyperparamètres : un nombre de noyaux, définissant le nombre de canaux de sortie de la première couche, compris entre deux et quatre-vingt, une taille de noyau d’au moins treize, un pas valant l’unité ou deux et une marge choisie pour conserver la taille d’image à la valeur du pas près,
  • effectuer une correction avec une fonction d’activation,
  • effectuer une mise en commun avec une taille de noyau donnée, avantageusement entre cinq et vingt-et-un, un pas compris entre deux et quatre, une marge choisie pour conserver la taille d’image à la valeur du pas près;
chaque image présentant alors une taille réduite ;
b) traiter les images issues des canaux de sortie de la convolution de la sous-étape précédente dans une deuxième couche du réseau neuronal convolutif, selon les sous-étapes suivantes :
  • effectuer une convolution avec comme hyperparamètres : un nombre de noyaux, définissant un nombre de canaux de sortie pour la deuxième couche, d’au moins quatre-vingt-un, une taille de noyau comprise entre trois et vingt-et-un, un pas valant l’unité ou deux et une marge choisie pour conserver la taille d’image à la valeur du pas près,
  • effectuer une correction avec une fonction d’activation,
  • effectuer une mise en commun avec une taille de noyau donnée, avantageusement entre cinq et vingt-et-un, un pas compris entre deux et quatre, et une marge choisie pour conserver la taille d’image à la valeur du pas près,
chaque image présentant alors une taille encore réduite;
c) traiter les images issues des canaux de sortie de la convolution de la sous-étape précédente dans une autre couche du réseau neuronal convolutif avec l’étape suivante :
effectuer une convolution avec comme hyperparamètres: un nombre de noyaux de valeur unité définissant un canal de sortie unique pour cette autre couche, une taille de noyau de valeur unité, un pas de valeur unité et une marge nulle pour conserver la taille d’image ;
B) traiter l’image obtenue du canal de sortie unique du réseau neuronal convolutif pour distinguer, par seuillage, un pixel de l’image associé à un joint d’étanchéité torique d’un pixel non associé à un joint d’étanchéité torique ;
C) mettre en œuvre un algorithme de partitionnement de données de l’image obtenue à l’issue de l’étape B) pour identifier le joint d’étanchéité torique.
Method for identifying an O-ring seal on a technical plan, said method comprising, from an image of a given size of the technical plan, the following computer-implemented steps:
A) processing said image in a convolutional neural network comprising only a single input channel and a single output channel, step A) comprising the following computer-implemented sub-steps:
a) processing said image, from the single input channel, in a first layer of the convolutional neural network, according to the following sub-steps:
  • perform a convolution with hyperparameters: a number of kernels, defining the number of output channels of the first layer, between two and eighty, a kernel size of at least thirteen, a step worth unity or two and a margin chosen to keep the image size to the nearest step value,
  • perform a correction with an activation function,
  • perform a pooling with a given kernel size, advantageously between five and twenty-one, a step of between two and four, a margin chosen to maintain the image size to the nearest step value;
each image then having a reduced size;
b) processing the images from the output channels of the convolution of the previous sub-step in a second layer of the convolutional neural network, according to the following sub-steps:
  • perform a convolution with as hyperparameters: a number of kernels, defining a number of output channels for the second layer, of at least eighty-one, a kernel size between three and twenty-one, a step worth the unit or two and a margin chosen to keep the image size to the nearest step value,
  • perform a correction with an activation function,
  • perform a pooling with a given kernel size, advantageously between five and twenty-one, a step of between two and four, and a margin chosen to maintain the image size to the nearest step value,
each image then having an even smaller size;
c) process the images from the output channels of the convolution of the previous sub-step in another layer of the convolutional neural network with the following step:
perform a convolution with as hyperparameters: a number of kernels of unity value defining a single output channel for this other layer, a kernel size of unity value, a step of unity value and a zero margin to preserve the image size;
B) processing the image obtained from the single output channel of the convolutional neural network to distinguish, by thresholding, a pixel of the image associated with an O-ring from a pixel not associated with an O-ring;
C) implement a data partitioning algorithm of the image obtained at the end of step B) to identify the O-ring seal.
Procédé selon la revendication 1, dans lequel le nombre de noyaux pris en considération pour la convolution de la sous-étape a) est compris entre 10 et 64, avantageusement entre 18 et 64.Method according to claim 1, in which the number of kernels taken into consideration for the convolution of substep a) is between 10 and 64, advantageously between 18 and 64. Procédé selon l’une des revendications précédentes, dans lequel la taille de noyau prise en considération pour la convolution de la sous-étape a) est d’au moins 21, avantageusement d’au moins 31.Method according to one of the preceding claims, in which the kernel size taken into consideration for the convolution of substep a) is at least 21, advantageously at least 31. Procédé selon l’une des revendications précédentes, dans lequel le nombre de noyaux pris en considération pour la convolution de la sous-étape b) est d’au moins 100, avantageusement d’au moins 120.Method according to one of the preceding claims, in which the number of kernels taken into consideration for the convolution of substep b) is at least 100, advantageously at least 120. Procédé selon l’une des revendications précédentes, dans lequel la taille du noyau prise en considération pour la convolution de la sous-étape b) est d’au plus 15, avantageusement d’au plus 9.Method according to one of the preceding claims, in which the size of the kernel taken into consideration for the convolution of substep b) is at most 15, advantageously at most 9. Procédé selon l’une des revendications précédentes, dans lequel :
  • le pas pris en considération pour effectuer la convolution de la sous-étape a) est de valeur unité si bien que la marge prise en considération pour cette même convolution conserve la taille d’image ; et/ou
  • le pas pris en considération pour effectuer la convolution de la sous-étape b) est de valeur unité si bien que la marge prise en considération pour cette même convolution conserve la taille d’image.
Method according to one of the preceding claims, in which:
  • the step taken into consideration to carry out the convolution of sub-step a) is of unity value so that the margin taken into consideration for this same convolution preserves the image size; and or
  • the step taken into consideration to carry out the convolution of sub-step b) is of unity value so that the margin taken into consideration for this same convolution preserves the image size.
Procédé selon l’une des revendications précédentes, dans lequel la fonction d’activation choisie pour effectuer la correction à la sous-étape a) et/ou à la sous-étape b) est une fonction d’activation non saturante, aussi nommée Unité Linéaire Rectifiée (ReLU).Method according to one of the preceding claims, in which the activation function chosen to carry out the correction in sub-step a) and/or in sub-step b) is a non-saturating activation function, also called Unit Rectified Linear (ReLU). Procédé selon l’une des revendications précédentes, dans lequel la mise en commun de la sous-étape a) ou de la sous-étape b) est réalisée au moyen d’une fonction max (MaxPool2D).Method according to one of the preceding claims, in which the pooling of substep a) or substep b) is carried out by means of a max function (MaxPool2D). Procédé selon l’une des revendications précédentes, dans lequel l’algorithme de partitionnement de données mis en œuvre à l’étape C) est l’algorithme DBSCAN.Method according to one of the preceding claims, in which the data partitioning algorithm implemented in step C) is the DBSCAN algorithm. Procédé selon l’une des revendications précédentes, dans lequel l’étape A) comporte une sous-étape supplémentaire mise en œuvre par ordinateur, entre la sous-étape b) et la sous-étape c), consistant à traiter les images issues des canaux de sortie de la convolution de la sous-étape b) dans une troisième couche du réseau neuronal convolutif, selon les sous-étapes suivantes :
  • effectuer une convolution avec comme hyperparamètres: un nombre de noyaux compris entre 2 et 80, une taille de noyau d’au plus 15, un pas de valeur unité ou deux et une marge choisie pour conserver la taille d’image à la valeur du pas près,
  • effectuer une correction avec une fonction d’activation,
  • effectuer une mise en commun avec un nombre de noyaux donné, avantageusement entre trois et onze, un pas compris entre deux et quatre, et une marge choisie pour conserver la taille d’image à la valeur du pas près.
Method according to one of the preceding claims, in which step A) comprises an additional sub-step implemented by computer, between sub-step b) and sub-step c), consisting of processing the images resulting from the output channels of the convolution of sub-step b) in a third layer of the convolutional neural network, according to the following sub-steps:
  • perform a convolution with hyperparameters: a number of kernels between 2 and 80, a kernel size of at most 15, a step of unit value or two and a margin chosen to keep the image size at the step value close,
  • perform a correction with an activation function,
  • perform a pooling with a given number of cores, advantageously between three and eleven, a step of between two and four, and a margin chosen to maintain the image size to the nearest value of the step.
Procédé selon la revendication précédente, dans lequel le nombre de noyaux pris en considération pour effectuer la convolution de la sous-étape supplémentaire est compris entre 10 et 64, avantageusement entre 18 et 64.Method according to the preceding claim, in which the number of kernels taken into consideration to carry out the convolution of the additional sub-step is between 10 and 64, advantageously between 18 and 64. Procédé selon l’une des revendications 10 ou 11, dans lequel la taille du noyau prise en considération pour effectuer la convolution de la sous-étape supplémentaire est d’au plus 9 et avantageusement d’au plus 5.Method according to one of claims 10 or 11, in which the size of the kernel taken into consideration to carry out the convolution of the additional sub-step is at most 9 and advantageously at most 5. Procédé selon l’une des revendications 10 à 12, dans lequel le pas pris en considération pour effectuer la convolution de la sous-étape supplémentaire est de valeur unité si bien que la marge prise en considération pour cette même convolution conserve la taille d’image.Method according to one of claims 10 to 12, in which the step taken into consideration to carry out the convolution of the additional sub-step is of unity value so that the margin taken into consideration for this same convolution preserves the image size . Procédé selon l’une des revendications 10 à 13, dans lequel la fonction d’activation de la sous-étape supplémentaire choisie pour effectuer la correction est une fonction d’activation non saturante, aussi nommée Unité Linéaire Rectifiée (ReLU).Method according to one of claims 10 to 13, in which the activation function of the additional sub-step chosen to carry out the correction is a non-saturating activation function, also called Rectified Linear Unit (ReLU). Procédé selon l’une des revendications 10 à 14, dans lequel la mise en commun de la sous-étape supplémentaire est réalisée au moyen d’une fonction max (MaxPool2D).Method according to one of Claims 10 to 14, in which the pooling of the additional substep is carried out by means of a max function (MaxPool2D). Procédé selon l’une des revendications précédentes, dans lequel l’étape A) comporte les sous-étapes mises en œuvre par ordinateur suivantes, avant de mettre en œuvre l’étape a) :
  • mettre en œuvre un algorithme de partitionnement de données sur l’image du plan technique ;
  • définir une image du plan technique, de taille restreinte et comportant des zones d’intérêt susceptibles de contenir un joint d’étanchéité torique.
Method according to one of the preceding claims, in which step A) comprises the following computer-implemented sub-steps, before implementing step a):
  • implement a data partitioning algorithm on the technical plan image;
  • define an image of the technical plan, of restricted size and including areas of interest likely to contain an O-ring seal.
Produit programme d’ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur, comprenant des instructions pour l’exécution d’un procédé selon l’une des revendications précédentes lorsque le produit programme d’ordinateur est exécuté par un système informatique.Computer program product downloadable from a communications network and/or recorded on a computer-readable medium, comprising instructions for executing a method according to one of the preceding claims when the computer program product is executed by a computer system.
FR2204289A 2022-05-05 2022-05-05 Method for identifying an O-ring seal on a technical level and associated program product. Pending FR3135342A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2204289A FR3135342A1 (en) 2022-05-05 2022-05-05 Method for identifying an O-ring seal on a technical level and associated program product.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2204289A FR3135342A1 (en) 2022-05-05 2022-05-05 Method for identifying an O-ring seal on a technical level and associated program product.
FR2204289 2022-05-05

Publications (1)

Publication Number Publication Date
FR3135342A1 true FR3135342A1 (en) 2023-11-10

Family

ID=83438898

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2204289A Pending FR3135342A1 (en) 2022-05-05 2022-05-05 Method for identifying an O-ring seal on a technical level and associated program product.

Country Status (1)

Country Link
FR (1) FR3135342A1 (en)

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
DRIES VAN DAELE ET AL: "An Automated Engineering Assistant: Learning Parsers for Technical Drawings", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 18 September 2019 (2019-09-18), 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, XP081478767 *
KAIMING HE ET AL: "Deep Residual Learning for Image Recognition", 10 December 2015 (2015-12-10), pages 1 - 12, XP055717904, Retrieved from the Internet <URL:https://arxiv.org/pdf/1512.03385.pdf> [retrieved on 20200724], DOI: 10.1109/CVPR.2016.90 *
KEIRON O'SHEA ET AL: "An Introduction to Convolutional Neural Networks", 2 December 2015 (2015-12-02), arXiv.org, pages 1 - 11, XP055491019, Retrieved from the Internet <URL:https://arxiv.org/pdf/1511.08458.pdf> [retrieved on 20180709] *
LIU LI ET AL: "Engineering Drawing Recognition Model with Convolutional Neural Network", ROBOTICS, INTELLIGENT CONTROL AND ARTIFICIAL INTELLIGENCE, 20 September 2019 (2019-09-20), New York, USA, pages 112 - 116, XP058445023, ISBN: 978-1-4503-7298-5, DOI: 10.1145/3366194.3366213 *
MANI SHOUVIK ET AL: "Automatic Digitization of Engineering Diagrams using Deep Learning and Graph Search", 2020 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION WORKSHOPS (CVPRW), 14 June 2020 (2020-06-14), IEEE, Piscataway, NJ, USA, pages 673 - 679, XP033799232, DOI: 10.1109/CVPRW50498.2020.00096 *

Similar Documents

Publication Publication Date Title
EP1298588B1 (en) Image processing system for the automatic extraction of semantic elements
WO2015087308A2 (en) Method and system for comparing 3d models
LU500415B1 (en) Grid denoising method based on graphical convolution network
EP0960382B9 (en) Method for identifying in a pre-established catalogue stars detected by a star sensor
CA2950055A1 (en) Method and device for estimation of a quality index of a 3-d image of a piece of composite material
Zhao et al. Snake-assisted quality-guided phase unwrapping for discontinuous phase fields
EP2761587A1 (en) Improved method of checking the appearance of the surface of a tyre
EP1532550A2 (en) Robust detection of a reference image during major photometric transformations
FR3135342A1 (en) Method for identifying an O-ring seal on a technical level and associated program product.
Lai-Tim et al. Jointly super-resolved and optically sectioned Bayesian reconstruction method for structured illumination microscopy
FR2740220A1 (en) METHOD FOR THE AUTOMATIC DETECTION OF EXPERTISABLE ZONES IN IMAGES OF MECHANICAL PARTS
FR2779257A1 (en) METHOD FOR DETECTING THE RELATIVE DEPTH BETWEEN OBJECTS IN AN IMAGE FROM A COUPLE OF IMAGES
WO2013178540A1 (en) Method of three-dimensional measurements by stereo-correlation using a parametric representation of the measured object
CN114820583A (en) Automatic quality inspection method for mass multi-source satellite remote sensing images
WO2021094694A1 (en) Method for determining a prediction function using a neural network, and associated processing method
FR3079905A1 (en) METHOD FOR ASSESSING THE CONNECTION QUALITY OF TWO TUBULAR COMPONENTS
FR3123748A1 (en) ANNOTATION-FREE MACHINE LEARNING ENHANCED BY ADAPTIVE GROUPING IN OPEN SET OF CLASSES
FR3108176A1 (en) Device for detecting surface defects on at least one end face of at least one optical fiber.
FR3122925A1 (en) Device for detecting and characterizing a surface laser treatment singularity and an associated method
FR3100331A1 (en) TEST METHOD AND SYSTEM FOR EVALUATING THE QUALITY OF A MICRO-OPTICAL PROJECTION AND / OR MULTI-CHANNEL SUB-WAVELENGTH OPTICAL PROJECTION UNIT
FR3115479A1 (en) Method for detecting defects during additive manufacturing by laser, data processing device, computer program and storage medium for implementing the method.
EP4020378B1 (en) Image processing filter for locating drops in a multidimensional image and associated image processing method
EP4020379B1 (en) Image processing method for obtaining a super-resolute image and a super-resolute diffractogram
FR3128045A1 (en) Method for managing a multitasking structure of a set of convolutional neural networks
FR3000581A1 (en) METHOD FOR SEGMENTING AN IMAGE OF AN EYE AND ASSOCIATED DEVICE

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20231110

PLFP Fee payment

Year of fee payment: 3