Brevet FR3105860A1 — publié le 20210702

Système et procédé pour la conception d’un réseau neuronal La présente description concerne un procédé de conception d’un premier réseau neuronal (302) pour filtrer des échantillons altérés, le procédé comprenant : prévoir un deuxième réseau neuronal (702) ; fournir un premier échantillon altéré et un premier échantillon propre au premier réseau neuronal (302), et réaliser un apprentissage du premier réseau neuronal pour filtrer le premier échantillon altéré, et pour générer un deuxième échantillon propre, sur la base d’une vérité de terrain fournie par le premier échantillon propre ; et fournir le premier échantillon propre et le premier échantillon altéré au deuxième réseau neuronal (702), et réaliser un apprentissage du deuxième réseau neuronal pour altérer le premier échantillon propre, et générer un deuxième échantillon altéré, sur la base d’une vérité de terrain fournie par le premier échantillon altéré. Figure pour l'abrégé : Fig. 7 Système et procédé pour la conception d’un réseau neuronal La présente description concerne de façon générale le domaine des systèmes de traitement, et en particulier un système et un procédé pour la conception d’un réseau neuronal. Des capteurs peuvent être utilisés pour capturer des échantillons de données pour une grande plage d’applications. Des exemples de capteurs comprennent des caméras bidimensionnelles (2D) et tridimensionnelles (3D) qui produisent des échantillons de données sous la forme d’images 2D ou 3D ou de séquences vidéo, des capteurs de pression qui produisent des échantillons de données sous la forme de lectures de pression, des capteurs de profondeur qui produisent des échantillons de données sous la forme de mesures de distance ou de cartes de profondeur, et des microphones qui produisent des échantillons de son. Les acquisitions provenant de tels capteurs sont presque toujours altérées dans une plus ou moins grande mesure par du bruit stochastique, des artefacts et/ou des données manquantes. L’utilisation des données de capteurs par des algorithmes automatiques ou par des utilisateurs humains peut être notablement compromise par de telles altérations. Par exemple, lorsque les données de capteurs sont utilisées par des algorithmes de prise de décision automatique, comme des algorithmes pour décider si une pièce fabriquée est conforme ou non à des spécifications requises, l’altération des données de capteurs peut augmenter le taux de décisions faussement positives et/ou faussement négatives. Il serait par conséquent souhaitable de prévoir un système et un procédé pouvant réduire, au moins dans une certaine mesure, la présence d’altérations de données dans des données de capteurs capturées par un ou plusieurs capteurs. Selon un aspect, on prévoit un procédé d’inspection d’objets comprenant : capturer un ou plusieurs échantillons d’un objet en utilisant un ou plusieurs capteurs ; filtrer lesdits un ou plusieurs échantillons en utilisant un réseau neuronal pour retirer au moins partiellement des altérations dans les échantillons ; et appliquer un algorithme d’inspection d’objet auxdits un ou plusieurs échantillons filtrés. Selon un mode de réalisation, lesdits un ou plusieurs capteurs comprennent au moins une caméra, lesdits un ou plusieurs échantillons comprenant au moins une image capturée par ladite au moins une caméra. Selon un mode de réalisation, l’objet est un objet fabriqué, et l’algorithme d’inspection d’objet est agencé pour détecter une ou plusieurs anomalies dans l’objet fabriqué, et pour classer l’objet comme passant avec succès ou échouant à l’inspection d’objet en fonction de la détection d’anomalies. Selon un mode de réalisation, le procédé comprend en outre, avant de capturer lesdits un ou plusieurs échantillons, un apprentissage du réseau neuronal sur la base d’un ou plusieurs échantillons d’apprentissage et d’une vérité de terrain correspondante. Selon un mode de réalisation, l’apprentissage du réseau neuronal comprend la génération de la vérité de terrain : en capturant une pluralité d’échantillons d’un même objet en utilisant lesdits un ou plusieurs capteurs et/ou en utilisant un ou plusieurs autres capteurs, tout en faisant varier un ou plusieurs paramètres des capteurs ou d’autres capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons du même objet ; et en déterminant, par un dispositif de traitement, une vérité de terrain associée aux échantillons sur la base de la pluralité d’échantillons du même objet. Selon un mode de réalisation, le procédé comprend en outre : capturer une pluralité d’autres échantillons d’un autre même objet en utilisant lesdits un ou plusieurs capteurs et/ou en utilisant un ou plusieurs autres capteurs, tout en faisant varier un ou plusieurs paramètres de capture des capteurs ou d’autres capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons de l’autre même objet ; et la vérité de terrain étant déterminée sur la base de la pluralité d’échantillons du même objet et de la pluralité d’échantillons de l’autre même objet. Selon un mode de réalisation, l’objet est une carte de circuit électronique. Selon un autre aspect, on prévoit un système d’inspection d’objets comprenant : un ou plusieurs capteurs agencés pour capturer un ou plusieurs échantillons d’un objet ; un réseau neuronal agencé pour filtrer lesdits un ou plusieurs échantillons pour retirer au moins partiellement les altérations ; et un dispositif de traitement agencé pour appliquer un algorithme d’inspection d’objet auxdits un ou plusieurs échantillons filtrés. Selon un mode de réalisation, lesdits un ou plusieurs capteurs comprennent au moins une caméra, lesdits un ou plusieurs échantillons comprenant au moins une image capturée par ladite au moins une caméra. Selon un mode de réalisation, l’objet est un objet fabriqué, et l’algorithme d’inspection d’objets est agencé pour détecter une ou plusieurs anomalies dans l’objet fabriqué, et pour classer l’objet comme passant avec succès ou échouant à l’inspection d’objet en fonction de la détection d’anomalies. Selon un mode de réalisation, l’objet est une carte de circuit électronique. Selon un mode de réalisation, le réseau neuronal est un réseau neuronal à convolution, comme un réseau neuronal ayant une structure UNet. Selon un autre aspect, on prévoit un système d’apprentissage pour le réseau neuronal susmentionné, comprenant un dispositif de traitement agencé pour réaliser un apprentissage du réseau neuronal sur la base d’un ou plusieurs échantillons d’apprentissage et d’une vérité de terrain correspondante. Selon un mode de réalisation, le système d’apprentissage comprend en outre : lesdits un ou plusieurs capteurs et/ou un ou plusieurs autres capteurs agencés pour capturer une pluralité d’échantillons d’un même objet, tout en faisant varier un ou plusieurs paramètres des capteurs ou d’autres capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons du même objet, le dispositif de traitement étant en outre agencé pour déterminer une vérité de terrain associée aux échantillons sur la base de la pluralité d’échantillons du même objet. Selon un mode de réalisation, lesdits un ou plusieurs capteurs et/ou un ou plusieurs autres capteurs sont en outre agencés pour capturer une pluralité d’autres échantillons d’un autre même objet, tout en faisant varier un ou plusieurs paramètres des capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons de l’autre objet échantillon ; et le dispositif de traitement étant agencé pour déterminer la vérité de terrain sur la base de la pluralité d’échantillons du même objet et de la pluralité d’échantillons de l’autre même objet. Selon un autre aspect, on prévoit un procédé de conception d’un premier réseau neuronal pour filtrer des échantillons altérés, le procédé comprenant : prévoir un deuxième réseau neuronal ; fournir un premier échantillon altéré et un premier échantillon propre au premier réseau neuronal, et réaliser un apprentissage du premier réseau neuronal pour filtrer le premier échantillon altéré, et pour générer un deuxième échantillon propre, sur la base d’une vérité de terrain fournie par le premier échantillon propre ; et fournir le premier échantillon propre et le premier échantillon altéré au deuxième réseau neuronal, et réaliser un apprentissage du deuxième réseau neuronal pour altérer le premier échantillon propre, et générer un deuxième échantillon altéré, sur la base d’une vérité de terrain fournie par le premier échantillon altéré. Selon un mode de réalisation, le procédé comprend en outre : fournir le deuxième échantillon altéré et le deuxième échantillon propre au premier réseau neuronal, et réaliser un apprentissage du premier réseau neuronal pour filtrer le deuxième échantillon altéré, et pour générer un troisième échantillon propre, sur la base d’une vérité de terrain fournie par le deuxième échantillon propre. Selon un mode de réalisation, le procédé comprend en outre : fournir le deuxième échantillon propre et le deuxième échantillon altéré au deuxième réseau neuronal, et réaliser un apprentissage du deuxième réseau neuronal pour altérer le deuxième échantillon propre, et pour générer un troisième échantillon altéré, sur la base d’une vérité de terrain fournie par le deuxième échantillon altéré. Selon un mode de réalisation, le procédé comprend en outre : générer le premier échantillon propre : en capturant une pluralité d’échantillons d’un même objet en utilisant un ou plusieurs capteurs, tout en faisant varier un ou plusieurs paramètres des capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons du même objet ; et en déterminant, par un dispositif de traitement, une vérité de terrain correspondant au premier échantillon propre sur la base de la pluralité d’échantillons du même objet. Selon un mode de réalisation, le procédé comprend en outre : capturer une pluralité d’autres échantillons d’un autre même objet en utilisant lesdits un ou plusieurs capteurs, tout en faisant varier un ou plusieurs paramètres des capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons de l’autre même objet ; et la vérité de terrain est déterminée sur la base de la pluralité d’échantillons du même objet et de la pluralité d’échantillons de l’autre même objet. Selon un autre aspect, on prévoit un procédé d’inspection d’objets comprenant : la conception d’un premier réseau neuronal selon le procédé susmentionné ; la capture d’un ou plusieurs échantillons d’un objet en utilisant lesdits un ou plusieurs capteurs ou un ou plusieurs autres capteurs ; le filtrage desdits un ou plusieurs échantillons en utilisant le premier réseau neuronal pour retirer au moins partiellement des altérations dans les échantillons ; et l’application d’un algorithme d’inspection d’objet auxdits un ou plusieurs échantillons filtrés. Selon un mode de réalisation, lesdits un ou plusieurs capteurs et lesdits un ou plusieurs autres capteurs comprennent au moins une caméra, lesdits un ou plusieurs échantillons comprenant au moins une image capturée par ladite au moins une caméra. Selon un mode de réalisation, l’objet est un objet fabriqué, et l’algorithme d’inspection d’objets est agencé pour détecter une ou plusieurs anomalies dans l’objet fabriqué, et pour classer l’objet comme passant avec succès ou échouant à l’inspection d’objet en fonction de la détection d’anomalies. Selon un mode de réalisation, l’objet est une carte de circuit électronique. Selon un autre aspect, on prévoit un système pour la conception d’un premier réseau neuronal pour filtrer des échantillons altérés, le système comprenant : le premier réseau neuronal et un deuxième réseau neuronal ; et un dispositif de traitement agencé pour : fournir un premier échantillon altéré et un premier échantillon propre au premier réseau neuronal, le premier réseau neuronal ayant reçu un apprentissage pour filtrer le premier échantillon altéré, et pour générer un deuxième échantillon propre, sur la base d’une vérité de terrain fournie par le premier échantillon propre ; et fournir le premier échantillon propre et le premier échantillon altéré au deuxième réseau neuronal, le deuxième réseau neuronal ayant reçu un apprentissage pour altérer le premier échantillon propre, et pour générer un deuxième échantillon altéré, sur la base d’une vérité de terrain fournie par le premier échantillon altéré. Selon un mode de réalisation, le dispositif de traitement est en outre agencé pour : fournir le deuxième échantillon altéré et le deuxième échantillon propre au premier réseau neuronal, le premier réseau neuronal ayant reçu un apprentissage pour filtrer le deuxième échantillon altéré, et générer un troisième échantillon propre, sur la base d’une vérité de terrain fournie par le deuxième échantillon propre. Selon un mode de réalisation, le dispositif de traitement est en outre agencé pour : fournir le deuxième échantillon propre et le deuxième échantillon altéré au deuxième réseau neuronal, le deuxième réseau neuronal ayant reçu un apprentissage pour altérer le deuxième échantillon propre, et générer un troisième échantillon altéré, sur la base d’une vérité de terrain fournie par le deuxième échantillon altéré. Selon un mode de réalisation, le système comprend en outre : lesdits un ou plusieurs capteurs agencés pour capturer une pluralité d’échantillons d’un même objet, tout en faisant varier un ou plusieurs paramètres de capture des capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons du même objet, le dispositif de traitement étant en outre agencé pour déterminer une vérité de terrain correspondant au premier échantillon propre sur la base de la pluralité d’échantillons du même objet. Selon un mode de réalisation, lesdits un ou plusieurs capteurs sont en outre agencés pour capturer une pluralité d’autres échantillons d’un autre même objet, tout en faisant varier un ou plusieurs paramètres de capture des capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons de l’autre objet échantillon ; et le dispositif de traitement étant agencé pour déterminer la vérité de terrain sur la base de la pluralité d’échantillons du même objet et de la pluralité d’échantillons de l’autre même objet. Selon un mode de réalisation, le premier réseau neuronal est un réseau neuronal à convolution, comme un réseau neuronal ayant une structure UNet. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente partiellement et schématiquement un mode de réalisation d’un système d’inspection optique destiné à inspecter des circuits électroniques ; la figure 2 est un graphique représentant un exemple de rendement de premier passage dans un système comme celui de la figure 1 ; la figure 3 représente schématiquement un dispositif de filtre d’altérations et de calcul du système d’inspection optique de la figure 1 plus en détail selon un exemple de réalisation de la présente description ; la figure 4 est un organigramme représentant des étapes dans un procédé de classification automatique de dispositifs électroniques selon un exemple de réalisation de la présente description ; la figure 5 représente schématiquement un système de traitement pour l’apprentissage d’un réseau neuronal selon un exemple de réalisation de la présente description ; la figure 6 est un organigramme représentant des étapes dans un procédé d’apprentissage d’un réseau neuronal selon un exemple de réalisation de la présente description ; la figure 7 représente schématiquement un système pour l’apprentissage d’une paire de réseau neuronaux selon un exemple de réalisation de la présente description ; la figure 8 est un organigramme représentant des étapes dans un procédé d’apprentissage d’une paire de réseaux neuronaux selon un exemple de réalisation de la présente description ; la figure 9 représente schématiquement un réseau neuronal selon un exemple de réalisation de la présente description ; et la figure 10 représente schématiquement un réseau neuronal selon un autre exemple de réalisation de la présente description. De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments couplés entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. La figure 1 présente partiellement et schématiquement un mode de réalisation d’un système d’inspection optique 100, qui est par exemple utilisé pour l’inspection optique de cartes de circuits électroniques. Toutefois, il apparaîtra clairement à la personne du métier que le système 100 pourrait être utilisé pour l’inspection optique d’une grande diversité de types d’objets fabriqués. Chaque carte de circuit électronique (BOARD) est par exemple placée sur un convoyeur 102, qui est par exemple un convoyeur plan. Le convoyeur 102 peut déplacer des cartes de circuits dans une direction X, par exemple une direction horizontale, pour les amener jusqu’à une région d’inspection optique, qui sera appelé scène S, où des images de cartes de circuits peuvent être acquises. Dans un exemple, le convoyeur 102 comprend un assemblage d’un ou plusieurs tapis roulants et d’un ou plusieurs rouleaux, entraînés par un moteur électrique rotatif 104. En variante, le convoyeur 102 pourrait à la place comprendre un moteur linéaire agencé pour déplacer un chariot supportant la carte de circuit électronique. La carte de circuit électronique correspond par exemple à une carte rectangulaire ayant une longueur et une largeur variant de 50 mm à 550 mm. Le système 100 comprend par exemple un système 106 agencé pour acquérir des images de la carte de circuit. Dans un exemple, le système d’acquisition d’images 106 comprend un dispositif de projection d’images P comprenant au moins un projecteur, un seul projecteur P étant représenté en figure 1. Lorsque plusieurs projecteurs P sont présents, des projecteurs P peuvent être sensiblement alignés dans une direction perpendiculaire à la direction X. Le système d’acquisition 106 comprend en outre par exemple un dispositif d’acquisition d’images C comprenant au moins une caméra numérique, une seule caméra C étant représentée en figure 1. Lorsque plusieurs caméras C sont présentes, des caméras C peuvent être sensiblement alignées, par exemple, en groupes de caméras, de préférence suivant une direction perpendiculaire à la direction X et/ou peuvent être agencées d’un côté ou de l’autre du ou des projecteurs P. Dans un exemple, le projecteur P et la caméra C sont couplés à un dispositif de commande 108. Le dispositif de commande 108 est par exemple agencé pour contrôler le système d’acquisition d’images 106, et aussi le convoyeur 102, par l’intermédiaire du moteur 104. En outre, le dispositif de commande 108 est par exemple agencé pour produire des images 2D et/ou 3D sur la base de données d’images provenant de la caméra C, et pour fournir ces images à un filtre d’altérations (CF) 110. Le filtre d’altérations 110 filtre par exemple les altérations des données de capteurs capturées par le système d’acquisition d’image 106. Selon les modes de réalisation décrits plus en détail ci-après, le filtre d’altérations 110 comprend un ou plusieurs réseaux neuronaux artificiels. Le filtre d’altérations 110 fournit des données de capteurs filtrées à un dispositif de calcul 112. Le dispositif de calcul 112 est par exemple agencé pour appliquer un algorithme d’inspection automatique aux images, et pour produire un signal de sortie (P/F) indiquant si la carte de circuit a passé l’inspection avec succès (P) ou a échoué (F). En particulier, l’algorithme d’inspection décide par exemple si une pièce fabriquée est conforme ou non à des spécifications requises. Selon une variante de réalisation, plutôt que de comprendre le projecteur P, le système d’acquisition 106 comprend une caméra, comme une caméra télécentrique, agencée verticalement alignée sur la scène S, par exemple, à l’emplacement du projecteur P en figure 1, et couplée au dispositif de commande 108. Le système d’inspection optique 100 peut aussi comprendre un autre système d’acquisition 114, qui par exemple correspond à un scanner à laser, un détecteur d’altitude ou un capteur de carte de profondeur. Le dispositif de commande 108 est par exemple en outre agencé pour contrôler le système d’acquisition 114, pour recevoir des données d’images et/ou de profondeur capturées par le système d’acquisition 114, et pour fournir l’image ou la carte de profondeur correspondante au dispositif de calcul 112 par l’intermédiaire du filtre d’altérations 110, de sorte que l’inspection peut aussi être basée sur cette image ou cette carte de profondeur. Le but du système d’inspection optique 100 est de détecter automatiquement si un objet fabriqué ne respecte pas une qualité de production souhaitée. Par exemple, dans le cas d’une carte de circuit électronique, cela peut impliquer la détection de la présence et/ou de la forme d’un ou plusieurs joints de soudure, la vérification de l’étendue d’un gauchissement, ou la vérification d’autres éléments visibles qui peuvent indiquer un objet non conforme. Toutefois, de manière plus générale, l’inspection optique peut être utilisée pour détecter toute défectuosité visible dans un objet fabriqué. La figure 2 est un graphique représentant, en fonction du nombre de cartes (#boards) examinées, un exemple de rendement de premier passage (FPY) d’un système d’inspection tel que celui de la figure 1. En particulier, le graphique de la figure 2 représente le pourcentage de cartes de circuit pour lesquelles l’algorithme d’inspection ne génère pas un faux diagnostic positif. Il faut toutefois noter que le graphique ne sépare pas les diagnostiques faussement négatifs, qui sont plus difficiles à identifier. On a supposé que le système 100 a été mis en place pour une nouvelle série de cartes de circuit, en commençant par une carte 0 (Board 0). Le rendement de premier passage (FPY) est initialement à S%, et pendant une période de réglage fin FT, des paramètres de l’algorithme d’inspection et de l’équipement associé sont ajustés, amenant le rendement de premier passage à augmenter et converger, de façon exponentielle, vers un rendement de premier passage E% une fois qu’une K-ième carte (Board K) a été inspectée. Après ce point, une période d’inspection stable commence pendant laquelle les paramètres de l’algorithme d’inspection restent fixes, et le rendement de premier passage reste stable et sensiblement à E%. Il est souhaitable que la valeur de E soit aussi proche que possible de 100 %, puisque cela implique moins de résultats faussement négatifs et ainsi une plus grande stabilité. En outre, il est aussi souhaitable que K soit relativement bas, autrement dit qu’il y ait un nombre relativement faible de cartes entre Board 0 et Board K, puisque cela implique que le réglage fin permet au rendement de premier passage de converger rapidement de S% à E%, et évite une période trop longue pendant laquelle l’algorithme est en dessous de l’optimal. De façon similaire, il est aussi souhaitable que la différence entre E et S soit aussi faible que possible, de sorte que la production commence dans des conditions relativement stables, même pendant la convergence vers le niveau E%, et de sorte que la convergence de S vers E puisse survenir dans une trame temporelle relativement courte. En faisant de nouveau référence à la figure 1, un avantage de la mise en œuvre d’un filtre d’altérations 110 utilisant un réseau neuronal est que l’apprentissage du réseau neuronal peut être réalisé avant le démarrage de l’inspection, autrement dit avant la phase de réglage fin, ce qui permet au pourcentage S initial de rendement de premier passage d’être relativement élevé, et permet aussi d’améliorer le pourcentage de performance E stable à long terme qu’on peut obtenir. La figure 3 représente schématiquement le filtre d’altérations 110 et le dispositif de calcul 112 du système d’inspection optique 100 de la figure 1 plus en détail selon un exemple de réalisation de la présente description. Le filtre d’altérations 110 comprend par exemple un réseau neuronal artificiel (NEURAL NETWORK (CF)) 302, et une mémoire (MEMORY) 304. Un ou plusieurs échantillons altérés (CORRUPTED SAMPLE(S)) 306 capturés par un ou plusieurs capteurs sont par exemple stockés dans la mémoire 304, puis sont traités par le réseau neuronal 302. Le réseau neuronal 302 par exemple revient écrire dans la mémoire 304 un ou plusieurs échantillons filtrés (CLEAN SAMPLE(S)) 308. Comme cela est connu de l’homme de l’art, un réseau neuronal artificiel (appelé dans la suite simplement "réseau neuronal") est un système ou une architecture informatique qui a pour but d’imiter dans une certaine mesure le réseau de neurones biologiques se trouvant dans un cerveau humain. De tels réseaux neuronaux comprennent en général un réseau de neurones artificiels, qui sont des circuits électriques qui reçoivent des entrées, combinent ces entrées avec leur état interne et souvent avec un seuil, et produisent un signal de sortie. Les sorties de neurones sont couplées aux entrées d’autres neurones par des connexions, qui sont souvent appelées synapses (leur équivalent dans le cerveau biologique). Ces connexions sont aussi mises en œuvre par des circuits électroniques, et appliquent des poids aux signaux propagés entre la sortie d’un ou plusieurs neurones et l’entrée d’un autre neurone. La fonction utilisée pour générer l’entrée dans un neurone, sur la base des sorties de ses neurones prédécesseurs et des connexions sous forme d’une somme pondérée, est connue sous le nom de fonction de propagation. Dans certains modes de réalisation, le réseau neuronal 302 est mis en œuvre par du matériel dédié, comme par exemple par un module de traitement graphique (GPU) ou une autre forme d’ASIC (circuit intégré spécifique d’application) qui met en œuvre l’architecture de réseau neuronal. Un avantage d’une telle mise en œuvre matérielle est qu’elle peut être relativement rapide pendant l’apprentissage et l’utilisation ultérieure. Dans des variantes de réalisation, le réseau neuronal 302 est mis en œuvre par une émulation sur ordinateur d’un réseau neuronal. Par exemple, le réseau neuronal est mis en œuvre par des instructions logicielles exécutées par un dispositif de traitement comme un CPU (unité de traitement centrale). Dans certains modes de réalisation, une mise en œuvre hybride peut impliquer des parties du réseau neuronal qui sont mises en œuvre par du matériel, et d’autres parties du réseau neuronal qui sont mises en œuvre par du logiciel. Quelle que soit la mise en œuvre (matérielle et/ou logicielle), dans certains modes de réalisation, le réseau neuronal 302 de la figure 3 a une architecture basée sur une approche UNet, comme cela est décrit plus en détail dans la publication intitulée “U-Net: Convolution Networks for Biomedical Image Segmentation”, O.Ronneberger, P.Fischer and T.Brox, 18 May 2015, Lecture Notes in Computer Science book series, LNCS, volume 9351, dont le contenu est incorporé ici comme référence dans les limites autorisées par la loi. En plus ou à la place, le réseau neuronal 302 comprend une ou plusieurs couches d’attention, comme cela est décrit dans la publication intitulée “Self-Attention Generative Adversarial Networks”, H.Zhang, I.Goodfellow, D.Metaxas and A.Odena, 14 June 2019, PMLR 2019, dont le contenu est aussi incorporé ici comme référence dans les limites autorisées par la loi. En outre, le réseau neuronal 302 peut en plus ou à la place être basé sur une fonction de perte connue sous le nom de "perte perceptuelle" comme cela est décrit plus en détail dans la publication intitulée “Perceptual Losses for Real-time Style Transfer and Super-Resolution”, J.Johnson, A.Alahi, L.Fei-Fei, 26 March 2016, dont le contenu est aussi incorporé ici comme référence dans les limites autorisées par la loi. Un exemple de réseau neuronal 900 est représenté en figure 9, et fournit un exemple de mise en œuvre du réseau neuronal 302. Le réseau neuronal 900 comprend par exemple des neurones 901 formés dans plusieurs couches. Une couche d’entrée 902 correspond à une première couche de neurones à laquelle sont appliquées des données d’entrée d’un échantillon d’entrée. L’exemple de la figure 9 représente deux neurones 901 dans la couche d’entrée, mais en pratique il y a par exemple des centaines ou des milliers de neurones formant la couche d’entrée 902. Par exemple, dans le cas où le réseau neuronal 302 est basé sur des échantillons sous forme d’images, il comprend par exemple un nombre de neurones dans la couche d’entrée 902 égal au nombre de pixels de l’image d’entrée. Une couche de sortie 904 correspond à une couche finale de neurones à partir de laquelle sont fournies des données de sortie. Dans le cas où le réseau de neurones 900 génère des échantillons de sortie du même format que les échantillons d’entrée, par exemple des images de même dimensions, le nombre de neurones 901 formant la couche de sortie 904 est par exemple égal au nombre de neurones formant la couche d’entrée 902. Entre la couche d’entrée 902 et la couche de sortie 904, il y a un certain nombre de couches intermédiaires 906 appelées généralement couches cachées. Dans l’exemple de la figure 9, il y a une seule couche cachée 906, bien que dans des variantes de réalisation il puisse y avoir plusieurs couches cachées. Le nombre de neurones 901 dans chaque couche cachée 906 est par exemple supérieur au nombre de neurones dans la couche d’entrée ou de sortie 902, 904. Dans le cas d’une seule couche cachée 906 comme dans l’exemple de la figure 9, chaque neurone 901 de la couche cachée 906 reçoit par exemple une entrée provenant de chaque neurone 901 de la couche d’entrée 902, et chacune de ces connexions est une synapse 908, à laquelle un paramètre de pondération de synapse individuel φ est appliqué. Ces paramètres de pondération sont référencés φ ij , i étant l’indice de neurone d’entrée allant de 1 à M, et j étant l’indice de neurone dans la couche cachée allant de 1 à N. En outre, chaque neurone 901 de la couche cachée 906 fournit par exemple un signal de sortie à chacun des neurones de sortie 901, et chacune de ces connexions est une synapse 910, à laquelle un paramètre de pondération de synapse individuel θ ij en figure 9 est appliqué de manière similaire aux paramètres de pondération φ ij . Toutefois, pour les paramètres θ ij , i est l’indice de neurone dans la couche cachée allant de 1 à N, et j est l’indice de neurone dans la couche de sortie allant de 1 à K. Dans le cas où il y a plus qu’une seule couche cachée 906, les neurones d’une première couche cachée ont par exemple les mêmes entrées que celles représentées pour la couche cachée 906 de la figure 9, les neurones d’une couche cachée finale ayant par exemple les mêmes sorties que celles représentées pour la couche cachée 906, et chacune des autres couches cachées reçoit les sorties provenant de chacun des neurones de la couche cachée précédente parmi les couches cachées, et chacune fournit une sortie à chacun des neurones de la couche cachée suivante parmi les couches cachées. L’exemple de la figure 9 correspond à un "réseau entièrement connecté", dans lequel tous les neurones d’une couche donnée sont connectés à tous les neurones des couches précédente et suivante. Toutefois, pour traiter des images d’entrée relativement grandes, par exemple de 10 000 pixels ou plus, le nombre de poids à optimiser va devenir très élevé. Un réseau neuronal à convolution (CNN) fournit une alternative d’architecture au "réseau complètement connecté" et est d’un point de vue calculs nettement plus léger lors du traitement d’images d’entrée relativement grandes. On va maintenant décrire un exemple de CNN plus en détail en faisant référence à la figure 10. La figure 10 illustre schématiquement un réseau neuronal à convolution additionnel 1000 selon un exemple de réalisation de la présente description. L’exemple de la figure 10 est basé sur l’approche UNet impliquant plusieurs couches de convolution séparées par sous-échantillonnage puis plusieurs autres couches de convolution séparées par des opérations de sur-échantillonnage, correspondant à la forme en "U". Le réseau neuronal 1000 reçoit par exemple, sur la gauche de la figure, un pavé d’image d’entrée 1002, et génère, sur la droite de la figure, une image de sortie 1004. Dans l’exemple de la figure 10, l’image d’entrée 1002 comporte 512 par 512 pixels, et l’image de sortie 1004 a la même taille que l’image d’entrée. Toutefois, cela n’est qu’un exemple et n’importe quelle taille d’image d’entrée et de sortie serait possible. Les images d’entrée et de sortie 1002, 1004 ont chacune par exemple trois canaux correspondant à des canaux de couleur. Toutefois, dans des variantes de réalisation le réseau neuronal 1000 pourrait recevoir en entrée et produire en sortie des images en niveaux de gris, ou des cartes de profondeur, n’ayant qu’un seul canal. Des flèches 1006 en figure 10 représentent des couches de convolution. Chaque couche de convolution 1006 correspond par exemple à un certain nombre de filtres. Dans l’exemple de la figure 10, l’image d’entrée 1002 est initialement filtrée par deux couches de convolution comprenant chacune 16 filtres de convolution, ce qui donne des images ayant 16 canaux. Chacun des filtres de convolution a un nombre limité de paramètres, comme par exemple un filtre 3 par 3 ayant 9 paramètres. Dans un exemple, un filtre basé sur le noyau de filtre de Sobel pourrait être utilisé, même si les paramètres du filtre vont être modifiés pendant l’apprentissage, et sont susceptibles de converger vers des filtres similaires au filtre de Sobel, mais ne correspondant pas exactement à celui-ci. La convolution entre l’image d’entrée et le filtre est appliquée à chaque pixel de l’image de la même façon, et ainsi, avec relativement peu de paramètres, l’image peut être complètement transformée. En effet, en fonction des paramètres de chaque filtre, l’image de sortie filtrée va être complètement différente. Dans le cas de filtres de convolution ayant une pluralité de paramètres, le filtre est par exemple appliqué à un bloc de pixels afin de générer chaque pixel de l’image résultante. En dépit de cela, dans l’exemple de la figure 10, les couches de convolution ne provoquent pas par exemple une réduction de la taille de l’image, puisqu’une ou plusieurs rangées ou colonnes de pixels, bourrées avec des zéros, sont par exemple ajoutées sur chaque bord de l’image avant le filtrage à convolution afin qu’une valeur de sortie puisse être générée pour chaque pixel de l’image d’entrée. Des flèches 1008 en figure 10 représentent les opérations de sous-échantillonnage dans lesquelles des blocs de pixels sont par exemple combinés en générant une valeur de pixel moyenne des pixels du bloc ou en prenant la valeur du pixel de crête parmi les pixels du bloc. Dans l’exemple de la figure 10, le sous-échantillonnage implique une combinaison de blocs deux par deux de pixels amenant une réduction d’un facteur 4 dans la taille de l’image. En outre, le nombre de filtres de convolution appliqués à chaque image sous-échantillonnée est par exemple le double du nombre appliqué à l’image précédente avant le sous-échantillonnage. Dans l’exemple de la figure 10, il y a quatre opérations de sous-échantillonnage amenant la taille d’image de 512 par 512 à 256 par 256, à 128 par 128, à 64 par 64, et finalement à 32 par 32, le nombre de filtres appliqués à ces images augmentant à partir de 16 dans le cas de l’image 512 par 512, jusqu’à 256 dans le cas de l’image 32 par 32. La plus petite taille d’image correspond à la partie inférieure du "U", et est connue sous le nom de goulot. Des flèches 1010 en figure 10 représentent les opérations de sur-échantillonnage dans lesquelles des blocs de pixels sont par exemple dupliqués un certain nombre de fois pour augmenter la taille de l’image. Par exemple, la duplication d’un pixel une fois dans chaque direction provoque une augmentation de la taille d’image d’un facteur 4, puisque chaque pixel devient quatre pixels. En outre, le nombre de filtres de convolution appliqués à chaque image sur-échantillonnée est par exemple égal à la moitié du nombre de ceux appliqués à l’image précédente avant le sur-échantillonnage. Dans l’exemple de la figure 10, il y a quatre opérations de sur-échantillonnage amenant la taille de l’image à partir de 32 par 32, à 64 par 64, à 128 par 128, à 256 par 256, et finalement à 512 par 512. En outre, le nombre de filtres appliqués à ces images diminue à partir de 256 dans le cas de l’image 32 par 32, pour descendre à 16 dans le cas de l’image 512 par 512. Comme cela est représenté par des flèches 1012 en figure 10, dans certains modes de réalisation, une première opération de convolution à la suite de chaque opération de sur-échantillonnage implique aussi une concaténation du résultat d’une opération de sous-échantillonnage correspondante. Cela aide par exemple le réseau neuronal à conserver des bords/contours de l’image reconstruite aussi nets que dans l’image d’entrée 1002. Comme cela est représenté par une flèche 1014 en figure 10, une couche de convolution finale implique par exemple l’application de trois filtres de convolution à chaque pixel afin de réduire et ramener le nombre de canaux à 3. Bien sûr, la figure 10 n’est simplement qu’un exemple, et il y a de nombreuses variantes qui pourraient être appliquées, comme l’utilisation d’un nombre différent de couches de convolution entre chaque opération de sous-échantillonnage ou de sur-échantillonnage, en utilisant un nombre différent d’opérations de sous-échantillonnage et de sur-échantillonnage, et/ou en utilisant un nombre différent de filtres de convolution dans chaque couche de convolution. En outre, bien qu’on ait décrit un exemple dans lequel une ou plusieurs rangées et colonnes bourrées avec des zéros sont ajoutées aux images pour éviter une réduction de taille d’image pendant le filtrage à convolution, dans des variantes de réalisation ces rangées et colonnes additionnelles pourraient être remplies d’une manière différente, comme par exemple avec une duplication de leurs rangées/colonnes voisines, ou aucune de telles rangées/colonnes additionnelles ne pourraient être fournies. Comme cela a été mentionné précédemment, la mise en œuvre du réseau neuronal 900 de la figure 9 ou 1000 de la figure 10 pourrait se faire par du matériel dédié, ou par du logiciel, ou par une solution hybride impliquant des parties mises en œuvre sous forme matérielle et sous forme de logicielle. Pendant une phase d’apprentissage, dont un exemple est décrit plus en détail ci-après, le réseau neuronal 302 apprend automatiquement comment filtrer des échantillons altérés afin de retirer du bruit non souhaitable et d’autres artefacts. En particulier, cela implique par exemple l’affinage graduel des divers paramètres des divers neurones et diverses connexions, comme les états mémorisés des neurones, les connexions entre neurones et les fonctions de propagation, résultant des paramètres de pondération φ ij, θ ij dans l’exemple de la figure 9, ou résultant des paramètres des fonctions de convolution dans l’exemple de la figure 10, pour générer les entrées de neurones sur la base de la sortie d’un ou plusieurs neurones prédécesseurs. Ainsi, le réseau neuronal ayant reçu un apprentissage 302, une fois l’apprentissage effectué, est capable de retirer une altération d’échantillons non souhaitable de manière efficace. Le dispositif de calcul 112 comprend par exemple un dispositif de traitement (P) 310, qui comprend un ou plusieurs processeurs agencés pour mémoriser des instructions dans une mémoire d’instructions (INSTR MEM) 312. Le dispositif de traitement 310 est par exemple agencé, sous le contrôle des instructions, pour extraire des échantillons filtrés 308 de la mémoire 304, et traiter ces échantillons sur la base d’un ou plusieurs paramètres d’inspection afin de déterminer si un ou plusieurs critères de test sont satisfaits. Le dispositif de traitement 310 génère par exemple un résultat de sortie sous la forme d’un message de succès ou d’échec, qui est par exemple fourni en sortie (P/F) par l’intermédiaire d’une interface de sortie (O/P INTERFACE) 312, qui peut comprendre un écran d’opérateur, ou une interface de communication pour fournir le résultat à un ou plusieurs systèmes distants. En plus ou à la place, le résultat de chaque inspection pourrait être mémorisé dans la mémoire 304. Dans certains modes de réalisation, à la place de la mise en œuvre logicielle représentée en figure 3, le dispositif de calcul 112 pourrait être mis en œuvre au moins partiellement sous forme de matériel, par exemple par un ou plusieurs ASIC (circuits intégrés spécifiques d’application) et/ou par un ou plusieurs autres réseaux neuronaux artificiels. La figure 4 est un organigramme représentant des étapes dans un procédé de classification automatique d’objets fabriqués selon un exemple de réalisation de la présente description. Ce procédé est par exemple mis en œuvre par le filtre d’altérations 110 et le dispositif de calcul 112 de la figure 3. Dans une étape 402, un ou plusieurs échantillons concernant un objet à inspecter sont capturés par un ou plusieurs capteurs. Par exemple, dans le cas du système d’inspection optique 100 de la figure 1, chaque échantillon correspond à une image ou une carte de profondeur d’une partie d’une carte de circuit, chaque image ou carte de profondeur comprenant une matrice de valeurs de pixels, chaque valeur de pixel fournissant une information d’intensité lumineuse, de couleur et/ou de profondeur. Toutefois, plus généralement, lesdits un ou plusieurs échantillons pourraient correspondre à des échantillons de données ayant la forme de lectures de pression, d’échantillons de sons ou de vibrations, d’échantillons de position, de vitesse ou d’accélération linéaire ou angulaire, etc. Comme avec pratiquement tous les échantillons de données capturés par un capteur, les échantillons sont altérés par du bruit et d’autres artefacts ayant pour origine l’environnement du capteur, le capteur lui-même et/ou d’autres sources. Lesdits un ou plusieurs échantillons sont par exemple stockés dans la mémoire 304 de la figure 3 sous la forme du ou des échantillons altérés 306. Dans une étape 404, lesdits un ou plusieurs échantillons capturés sont filtrés par le filtre d’altérations, et en particulier par le réseau neuronal 302 ayant reçu un apprentissage. Cela implique par exemple la modification d’une ou plusieurs valeurs de chaque échantillon pour retirer au moins partiellement une composante de bruit. Dans une étape 406, un ou plusieurs algorithmes d’inspection sont appliqués auxdits un ou plusieurs échantillons filtrés afin de décider un résultat de succès ou d’échec de l’inspection. Par exemple, lesdits un ou plusieurs algorithmes d’inspection sont appliqués par le dispositif de calcul 112 de la figure 3. Dans le cas du système d’inspection optique 100 de la figure 1, lesdits un ou plusieurs algorithmes d’inspection décident d’un succès ou d’un échec pour chaque carte de circuit passant à travers le système. Toutefois, les mêmes principes pourraient être appliqués à tout objet fabriqué. On va maintenant décrire un système et un procédé pour réaliser l’apprentissage du réseau neuronal 302 de la figure 3, en faisant référence aux figures 5 à 8. La figure 5 représente schématiquement un système de traitement 500 pour l’apprentissage d’un réseau neuronal, comme le réseau neuronal 302 de la figure 3, selon un exemple de réalisation de la présente description. Le système 500 comprend par exemple le réseau neuronal n’ayant pas reçu d’apprentissage 302’ (NEURAL NETWORK (CF)), couplé par exemple par l’intermédiaire d’un bus 502 à une mémoire 504. La mémoire 504 mémorise par exemple une pluralité d’échantillons (SAMPLES) 506 capturés par un ou plusieurs capteurs (SENSORS) 508, qui sont aussi par exemple couplés au bus 502. Par exemple, ces capteurs 508 sont des capteurs identiques ou similaires à ceux utilisés pour capturer des échantillons pendant un processus d’inspection. En outre, la mémoire 504 mémorise par exemple une ou plusieurs vérités de terrain (GROUND TRUTH(S)) 510. Un dispositif de traitement (P) 512, qui comprend par exemple un ou plusieurs processeurs, est aussi par exemple couplé au bus 502. Par exemple, le dispositif de traitement 512 est sous le contrôle d’instructions stockées dans une mémoire d’instructions 514, qui est par exemple une mémoire à accès aléatoire (RAM). En fonctionnement, dans le cas où le réseau neuronal 302’ est mis en œuvre par un GPU ou une autre forme d’ASIC, la partie du bus 502 pour communiquer avec le réseau neuronal est par exemple un bus PCI Express (de l’anglais Peripheral Component Interconnect Express). Par exemple, lorsqu’une inférence doit être réalisée, des données d’entrée allant vers le réseau neuronal 302’ sont transférées, à partir de la RAM dédiée au dispositif de traitement 512, par exemple une RAM CPU, vers une RAM dédiée au réseau neuronal 302’, par exemple une RAM GPU, par l’intermédiaire du bus PCI Express ou similaire. Les unités de calcul du réseau neuronal 302’ sont ensuite par exemple configurées pour récupérer les données d’entrée dans la RAM du réseau neuronal et pour traiter ces données d’entrée. Les données de sortie générées par le réseau neuronal 302’ sont ensuite par exemple mémorisées dans la RAM dédiée au réseau neuronal, par exemple dans la RAM GPU, puis transférées vers la RAM dédiée au dispositif de traitement 512, par exemple vers la RAM CPU par l’intermédiaire du bus PCI Express ou similaire. Une difficulté dans l’apprentissage d’un réseau neuronal pour éliminer par filtrage du bruit de sortie à partir d’échantillons altérés est qu’une vérité de terrain, correspondant à un résultat souhaité du filtrage, est en général nécessaire. Toutefois, les procédés connus de génération d’une vérité de terrain impliquent en général l’utilisation d’un ou plusieurs capteurs capables de donner une précision nettement plus grande que les capteurs du système. Par exemple, une précision supérieure d’au moins dix fois est souvent utilisée pour générer une vérité de terrain. Une difficulté est que de tels capteurs à haute précision sont coûteux et peuvent ne pas toujours être disponibles. Le présent inventeur propose une solution alternative pour générer la vérité de terrain sur la base d’échantillons capturés dans diverses conditions, comme on va le décrire plus en détail maintenant en faisant référence à la figure 6. La figure 6 est un organigramme représentant des étapes dans un procédé d’apprentissage d’un réseau neuronal selon un exemple de réalisation de la présente description. Ce procédé est par exemple mis en œuvre par le système de traitement 500 de la figure 5 afin de réaliser l’apprentissage du réseau neuronal 302’. En particulier, le procédé est par exemple mis en œuvre par du logiciel exécuté par le dispositif de traitement 512. Dans une étape 602, des échantillons d’un même objet sont par exemple capturés de multiples fois en utilisant les capteurs 508, tout en appliquant M ensembles de paramètres différents aux capteurs. Ces échantillons capturés sont par exemple stockés dans la mémoire 504 de la figure 5 sous la forme des échantillons 506. Par exemple, chaque ensemble de paramètres définit un ou plusieurs paramètres des capteurs 508, et/ou de l’environnement des capteurs et de l’objet fabriqué qui est capturé, paramètres qui sont appliqués pendant l’acquisition des échantillons. Par exemple, chaque paramètre définit une combinaison d’un, de certains ou de la totalité des paramètres suivants : - temps d’exposition/durée d’échantillonnage ; - niveau d’éclairage ambiant, par exemple impliquant l’utilisation d’une ou plusieurs sources de lumière parasites additionnelles pour éclairer sélectivement l’objet ; - un niveau de rétroéclairage de l’objet ; - la position de l’objet par rapport aux capteurs, y compris l’altitude de l’objet fabriqué ; - l’orientation de l’objet qui est échantillonné, de cartes de circuit électronique ou d’autres objets qui sont par exemple capturés à 0° ou 90°, ou à tout angle intermédiaire, par rapport à la surface du convoyeur 102 de la figure 1 ; et - dans le cas où le capteur est une caméra ayant une distance focale variable, la distance focale sélectionnée de la caméra. Par exemple, le nombre M d’ensembles de paramètres différents qui sont appliqués pendant l’acquisition d’échantillons est d’au moins 2, et peut être nettement supérieur, par exemple d’au moins un millier dans certains cas. Par exemple, pour certaines applications, le nombre d’acquisitions pourrait être supérieur à un million. En effet, on peut faire varier certains des paramètres susmentionnés par exemple avec de relativement petits incréments sur une relativement grande plage de paramètres, et en capturant des échantillons avec chaque combinaison de ces paramètres, un nombre relativement grand d’ensembles de paramètres différents peut être appliqué pour produire des échantillons correspondants. En outre, dans certains modes de réalisation, l’acquisition d’échantillons est basée sur un paramétrage à haute fidélité du système d’acquisition, qui est acceptable pour générer des données d’apprentissage, mais qui serait inacceptable dans une ligne de production puisqu’il serait trop lent. Le paramétrage à haute fidélité implique par exemple une capture d’images avec un bruit relativement faible, avec des conditions d’éclairage bien agencées, comprenant par exemple certaines étapes pour ajuster automatiquement le temps d’exposition et/ou l’intensité projetée, avec une focalisation bien ajustée, comprenant par exemple certaines étapes pour ajuster automatiquement la focalisation afin d’obtenir des images à haute fidélité et à grande netteté, et avec une résolution spatiale relativement élevée. Dans une étape 604, une pseudo-vérité de terrain est par exemple générée sur la base des échantillons capturés dans l’étape 602. Par exemple, dans certains modes de réalisation, et pour certains aspects, la pseudo-vérité de terrain est générée en tant que moyenne de certains ou de tous les échantillons capturés. En fonction du type de bruit, cette moyenne pourrait correspondre à une moyenne usuelle, une médiane ou une valeur de mode, ou à d’autres algorithmes plus dédiés basés sur une connaissance du domaine de l’application finale. En effet, il serait possible d’utiliser des algorithmes plus avancés qui sont coûteux en calculs pour nettoyer les échantillons bruités afin qu’un réseau neuronal relativement rapide reçoive un apprentissage pour imiter ce traitement à haute performance. Une opération manuelle pour améliorer la qualité de la vérité de terrain pourrait aussi être appliquée, par exemple pour retirer des artefacts d’une reconstruction 3D. Par exemple, la position d’un ou plusieurs bords de l’objet capturé peut être réglée dans la vérité de terrain à une position de médiane, réduisant ainsi l’impact des valeurs aberrantes. Dans un autre exemple, en supposant qu’une grande plage d’éclairages a été appliquée pendant l’étape 602, le niveau d’éclairage peut être réglé dans la vérité de terrain à un niveau d’éclairage moyen. D’autres aspects de la vérité de terrain peuvent être déterminés sur la base d’une distribution estimée du bruit résultant des variations de paramètres dans les divers échantillons. Encore d’autres aspects de la vérité de terrain peuvent être déterminés sur la base d’un ou plusieurs algorithmes de détection. Par exemple, dans le cas de variations dans la distance focale entre des échantillons, un ou plusieurs échantillons ayant la focalisation la plus nette peuvent être détectés en utilisant des algorithmes connus, et peuvent être sélectionnés comme représentant la vérité de terrain en ce qui concerne la netteté d’image. La pseudo-vérité de terrain correspond par exemple à un pseudo-échantillon généré sur la base de certaines ou de la totalité des approches susmentionnées afin de générer le résultat souhaité de l’opération de filtrage d’altérations. Après l’étape 604, dans certains modes de réalisation les étapes 602 et 604 sont répétées pour un nouvel objet, pour générer une autre vérité de terrain unique pour le nouvel objet. Par exemple, le nouvel objet est un objet fabriqué en utilisant le même procédé que l’objet précédemment capturé. Toutefois, en raison de tolérances du procédé, il y aura de légères variations. Par conséquent, les échantillons capturés en utilisant les M ensembles de paramètres différents auront certaines variations par rapport aux échantillons capturés pendant la première itération. En outre, les étapes 602 et 604 sont par exemple répétées sur de nombreuses itérations pour de nombreux nouveaux objets, par exemple pour des centaines, des milliers ou même des millions d’objets, afin de générer de nombreux échantillons et des pseudo-vérités de terrain correspondantes. Dans certains modes de réalisation, au moins certains des objets sur la base desquels des pseudo-vérités de terrain sont générées comprennent des exemples à la fois i) de pièces bonnes qui doivent être classées comme passant avec succès le procédé d’inspection d’objets ; et ii) de pièces défectueuses qui doivent être classées comme échouant dans le procédé d’inspection d’objets. Il est aussi préférable que les échantillons utilisés pendant l’apprentissage, et les vérités de terrain correspondantes, comprennent des exemples d’objets passant avec succès et échouant à l’inspection de l’objet. De cette manière, les objets, et les échantillons et les vérités de terrain correspondants, vont refléter ce qui sera effectivement présenté au système d’inspection d’objets pendant l’utilisation. Dans une étape 606, le réseau neuronal 302 reçoit par exemple un apprentissage sur la base de la pseudo-vérité de terrain générée dans l’étape 604 pendant l’itération finale. Comme cela est connu de l’homme de l’art, l’apprentissage d’un réseau neuronal implique par exemple la fourniture au réseau neuronal de nombreux exemples d’échantillons et de la vérité de terrain correspondante, de sorte que le réseau neuronal apprend de manière itérative comment obtenir la vérité de terrain à partir de n’importe quel échantillon. Dans le cas du filtre d’altérations 302, on apprend au réseau à corriger les échantillons altérés et à générer un échantillon filtré approchant la vérité de terrain. Dans le cas présent, la vérité de terrain correspond à la pseudo-vérité de terrain, et les échantillons altérés correspondent par exemple à un ou plusieurs des échantillons capturés pendant chaque itération de l’étape 602. En plus ou à la place, au moins certains des échantillons altérés utilisés pendant l’apprentissage peuvent être générés par un autre réseau neuronal, comme on va le décrire maintenant plus en détail en faisant référence aux figures 7 et 8. La figure 7 représente schématiquement un système 700 pour réaliser l’apprentissage d’une paire de réseaux neuronaux selon un exemple de réalisation de la présente description. L’un des réseaux neuronaux doit subir un apprentissage pour se comporter comme le filtre d’altérations, et par exemple correspond au réseau neuronal 302’ de la figure 5. L’autre réseau neuronal (NEURAL NETWORK (CS)) 702 correspond par exemple à un simulateur d’altérations, qui simule l’altération dans un échantillon. Dans certains modes de réalisation, le simulateur d’altérations 702 a la même architecture que celle du filtre d’altérations 302’, comme cela a été décrit précédemment. En variante, les réseaux 302’ et 702 pourraient avoir des architectures différentes. Le réseau neuronal 302’ reçoit par exemple un échantillon altéré (CORRUPTED SAMPLE) 704, et est soumis à un apprentissage pour filtrer cet échantillon pour générer un échantillon filtré (CLEAN SAMPLE) 706. Par exemple, l’apprentissage du réseau neuronal 302’ est basé sur une vérité de terrain correspondant à un échantillon propre 706 généré dans le cycle d’apprentissage précédent. En outre, l’échantillon propre 706 est aussi par exemple fourni en entrée au réseau neuronal 302’ pour servir de vérité de terrain pour un cycle d’apprentissage suivant du filtre d’altérations 302’. Comme cela est connu de la personne du métier, l’apprentissage d’un réseau neuronal sur la base d’échantillons d’entrée et de vérités de terrain est un processus itératif pendant lequel la fonction de transfert du réseau neuronal, et en particulier les poids synaptiques, sont ajustés de telle sorte que le résultat généré converge vers la vérité de terrain sur la base de la minimisation d’une fonction de coût donnée. Dans le présent système, la fonction de coût est par exemple la distance entre l’échantillon filtré généré par le réseau neuronal 302’ et l’échantillon propre 706 fournissant la vérité de terrain. Le réseau neuronal 702 reçoit par exemple l’échantillon propre 706, et une variable ou un vecteur aléatoire (RANDOM), et reçoit un apprentissage pour générer un échantillon altéré 704 sur la base d’une vérité de terrain correspondant à un échantillon altéré 704 généré dans le cycle d’apprentissage précédent. Le réseau neuronal 702 génère par exemple des échantillons altérés 704 sur la base de l’échantillon propre et de la variable ou du vecteur aléatoire, ce qui rend la génération non déterministe. L’échantillon altéré 704 est aussi par exemple fourni au réseau neuronal 702 pour servir de vérité de terrain pour un cycle d’apprentissage suivant du simulateur d’altérations 702. On va maintenant décrire le fonctionnement du système 700 en faisant référence à la figure 8. La figure 8 est un organigramme représentant des étapes dans un procédé d’apprentissage d’une paire de réseaux neuronaux selon un exemple de réalisation de la présente description. Ce procédé est par exemple mis en œuvre par une paire de réseaux neuronaux comme cela est représenté dans le système 700 de la figure 7. Par exemple, on utilise une architecture similaire à celle de la figure 5, dans laquelle l’autre réseau neuronal 702 est aussi accessible par l’intermédiaire du bus 502. Dans une étape 801, deux nouveaux d’échantillons, un échantillon altéré et un propre, sont chargés dans les réseaux neuronaux. Par exemple, l’échantillon altéré correspond à un ou plusieurs des échantillons capturés pendant une itération de l’étape 602 de la figure 6, et l’échantillon propre correspond à la pseudo-vérité de terrain correspondante. Aussi, dans l’étape 801, un indexe n est par exemple mis à un. L’apprentissage des réseaux neuronaux est par exemple réalisé dans des étapes parallèles 802 et 803. En variante, ces étapes pourraient aussi être réalisées séquentiellement. L’étape 802 implique par exemple l’apprentissage du filtre d’altérations 302’ pour retirer l’altération de l’échantillon altéré sur la base de l’échantillon propre, en d’autres termes en utilisant l’échantillon propre comme vérité de terrain. Par exemple, cet apprentissage est basé sur la fonction de perte suivante : où L F est la perte associée au filtre d’altérations, F est le réseau de filtrage d’altérations, S est le réseau de simulation d’altérations, R est le vecteur ou la matrice aléatoire, qui par exemple a une distribution uniforme ou gaussienne, X sont des échantillons altérés provenant de l’ensemble de données d’apprentissage, Y est la vérité de terrain associée aux échantillons altérés X, d est la distance entre les échantillons, et α, β et γ sont des poids, qui peuvent être réglés par tâtonnement. Dans certains modes de réalisation, chacun de ces poids peut être mis à 1. La distance d représente la différence entre les échantillons. Par exemple, dans le cas d’images, la distance pourrait être la distance absolue L1, connue aussi sous le nom de distance de Manhattan, ou la distance moyenne quadratique L2, connue aussi sous le nom de distance euclidienne, ou toute autre distance. L’étape 803 implique par exemple l’apprentissage du simulateur d’altérations 702 pour introduire une altération dans l’échantillon propre sur la base de l’échantillon altéré, en d’autres termes en utilisant l’échantillon altéré comme vérité de terrain. Par exemple, cet apprentissage est basé sur la fonction de perte suivante : où L S est la perte associée à la simulation d’altérations, δ est un poids, qui, comme les autres poids α, β et γ, peut être réglé par tâtonnement, et pourrait être égal à zéro dans certains cas, et les autres paramètres sont les mêmes que précédemment. Dans des variantes de réalisation, on pourrait utiliser des fonctions de perte identiques pendant les étapes d’apprentissage 802 et 803. Par exemple, on pourrait utiliser la fonction de perte commune suivante : où L est la perte, et les autres paramètres sont les mêmes que précédemment. Les étapes 802 et 803 sont respectivement suivies par des étapes 804 et 805. Dans l’étape 804, l’échantillon filtré résultant du filtrage appliqué par le réseau de filtrage dans l’étape 802 est stocké en mémoire en tant que nouvel échantillon propre, remplaçant par exemple l’échantillon propre chargé initialement dans l’étape 801. Dans l’étape 805, l’échantillon altéré résultant de la simulation d’altérations appliquée par le réseau de simulation d’altérations dans l’étape 803 est stocké en mémoire en tant que nouvel échantillon altéré, remplaçant par exemple l’échantillon altéré initialement chargé dans l’étape 801. Dans une étape 806 suivant les étapes 804 et 805, on détermine par exemple si l’index n est égal à N, où N est un nombre souhaité d’itérations de la séquence d’apprentissage sur la base d’une même paire d’échantillons, propre et altéré, initialement chargée. Par exemple, N est égal à au moins 2, et dans certains modes de réalisation, N est égal à au moins 10, et pourrait typiquement être égal à plus de 1000. Si l’index n n’est pas encore égal à N, alors dans une étape 807, l’index n est incrémenté, et les étapes 802 à 805 sont répétées, sur la base des nouveaux échantillons, propre et altéré, mémorisés dans les étapes 804 et 805 précédentes. Une fois que l’index n est égal à N, l’étape suivante est l’étape 808, dans laquelle on détermine si d’autres paires d’échantillons, altérés et propres, sont disponibles pour un apprentissage. Si oui, le procédé revient par exemple à l’étape 801, dans laquelle la paire suivante est chargée, et l’index n est réinitialisé à 1, avant de répéter N itérations des opérations d’apprentissage 802 à 805. Lorsque, dans l’étape 808, il n’y a plus d’autres paires à utiliser pour l’apprentissage, le procédé par exemple se termine dans une étape 809 dans laquelle l’apprentissage est considéré comme terminé. Un avantage du système et du procédé décrits en relation avec les figures 7 et 8 est qu’un apprentissage peut être réalisé sur la base d’un nombre d’échantillons altérés notablement plus élevé que le nombre qui est capturé. En effet, l’apprentissage du simulateur d’altérations pour imiter les altérations introduites par le capteur sur la base d’une entrée aléatoire permet potentiellement de générer un nombre illimité d’échantillons altérés pour l’apprentissage. Un avantage du système et du procédé décrits en relation avec les figures 3 et 4 est que, en utilisant un réseau neuronal ayant reçu un apprentissage pour filtrer des échantillons provenant de capteurs, les performances d’un algorithme d’inspection de qualité appliqué aux échantillons peuvent être notablement améliorées, permettant d’obtenir des niveaux élevés du pourcentage initial de rendement de premier passage S, et des performances à long terme représentées par le pourcentage E. L’avantage du système et du procédé décrits en relation avec les figures 5 et 6 est que, en déterminant une vérité de terrain sur la base de multiples échantillons d’un même objet capturés dans des conditions variables de capteurs et d’environnement, on peut éviter le coût et/ou la difficulté de prévoir un capteur très précis pour générer la vérité de terrain. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaitront à la personne du métier. Par exemple, il apparaîtra clairement à la personne du métier que les techniques décrites en relation avec les figures 3 à 8 pourraient toutes être combinées dans un seul mode de réalisation, ou être utilisées individuellement conjointement avec d’autres systèmes et procédés. Enfin, la mise en œuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. En particulier, l’apprentissage d’un réseau neuronal sur la base d’une fonction de perte, comme par exemple sur la base des fonctions de perte décrites en relation avec la figure 8, est dans les capacités de la personne du métier. Procédé de conception d’un premier réseau neuronal (302) pour filtrer des échantillons altérés, le procédé comprenant : - prévoir un deuxième réseau neuronal (702) ; - fournir un premier échantillon altéré et un premier échantillon propre au premier réseau neuronal (302), et réaliser un apprentissage du premier réseau neuronal pour filtrer le premier échantillon altéré, et pour générer un deuxième échantillon propre, sur la base d’une vérité de terrain fournie par le premier échantillon propre ; et - fournir le premier échantillon propre et le premier échantillon altéré au deuxième réseau neuronal (702), et réaliser un apprentissage du deuxième réseau neuronal pour altérer le premier échantillon propre, et générer un deuxième échantillon altéré, sur la base d’une vérité de terrain fournie par le premier échantillon altéré. Procédé selon la revendication 1, comprenant en outre : - fournir le deuxième échantillon altéré et le deuxième échantillon propre au premier réseau neuronal (302), et réaliser un apprentissage du premier réseau neuronal pour filtrer le deuxième échantillon altéré, et pour générer un troisième échantillon propre, sur la base d’une vérité de terrain fournie par le deuxième échantillon propre. Procédé selon la revendication 1 ou 2, comprenant en outre : - fournir le deuxième échantillon propre et le deuxième échantillon altéré au deuxième réseau neuronal (702), et réaliser un apprentissage du deuxième réseau neuronal pour altérer le deuxième échantillon propre, et pour générer un troisième échantillon altéré, sur la base d’une vérité de terrain fournie par le deuxième échantillon altéré. Procédé selon l’une quelconque des revendications 1 à 3, comprenant en outre : - générer le premier échantillon propre : en capturant une pluralité d’échantillons d’un même objet en utilisant un ou plusieurs capteurs (106, 114, C), tout en faisant varier un ou plusieurs paramètres des capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons du même objet ; et en déterminant, par un dispositif de traitement (512), une vérité de terrain correspondant au premier échantillon propre sur la base de la pluralité d’échantillons du même objet. Procédé selon la revendication 4, comprenant en outre : - capturer une pluralité d’autres échantillons d’un autre même objet en utilisant lesdits un ou plusieurs capteurs (106, 114, C), tout en faisant varier un ou plusieurs paramètres des capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons de l’autre même objet ; et - dans lequel la vérité de terrain est déterminée sur la base de la pluralité d’échantillons du même objet (BOARD) et de la pluralité d’échantillons de l’autre même objet. Procédé d’inspection d’objets comprenant : - la conception d’un premier réseau neuronal (302) selon le procédé de l’une quelconque des revendications 1 à 5 ; - la capture d’un ou plusieurs échantillons d’un objet (BOARD) en utilisant lesdits un ou plusieurs capteurs ou un ou plusieurs autres capteurs (106, 114, C) ; - le filtrage desdits un ou plusieurs échantillons en utilisant le premier réseau neuronal (302) pour retirer au moins partiellement des altérations dans les échantillons ; et - l’application d’un algorithme d’inspection d’objet auxdits un ou plusieurs échantillons filtrés. Procédé selon la revendication 6, dans lequel lesdits un ou plusieurs capteurs et lesdits un ou plusieurs autres capteurs (106, 114, C) comprennent au moins une caméra, lesdits un ou plusieurs échantillons comprenant au moins une image capturée par ladite au moins une caméra. Procédé selon la revendication 6 ou 7, dans lequel l’objet (BOARD) est un objet fabriqué, et l’algorithme d’inspection d’objet est agencé pour détecter une ou plusieurs anomalies dans l’objet fabriqué, et pour classer l’objet comme passant avec succès ou échouant à l’inspection d’objet en fonction de la détection d’anomalies. Procédé selon l’une quelconque des revendications 1 à 8, dans lequel l’objet est une carte de circuit électronique. Système pour la conception d’un premier réseau neuronal (302) pour filtrer des échantillons altérés, le système comprenant : le premier réseau neuronal (302) et un deuxième réseau neuronal (702) ; et un dispositif de traitement (512) agencé pour : - fournir un premier échantillon altéré et un premier échantillon propre au premier réseau neuronal, le premier réseau neuronal ayant reçu un apprentissage pour filtrer le premier échantillon altéré, et pour générer un deuxième échantillon propre, sur la base d’une vérité de terrain fournie par le premier échantillon propre ; et - fournir le premier échantillon propre et le premier échantillon altéré au deuxième réseau neuronal, le deuxième réseau neuronal ayant reçu un apprentissage pour altérer le premier échantillon propre, et pour générer un deuxième échantillon altéré, sur la base d’une vérité de terrain fournie par le premier échantillon altéré. Système selon la revendication 10, dans lequel le dispositif de traitement (512) est en outre agencé pour : - fournir le deuxième échantillon altéré et le deuxième échantillon propre au premier réseau neuronal (302), le premier réseau neuronal ayant reçu un apprentissage pour filtrer le deuxième échantillon altéré, et générer un troisième échantillon propre, sur la base d’une vérité de terrain fournie par le deuxième échantillon propre. Système selon la revendication 10 ou 11, dans lequel le dispositif de traitement (512) est en outre agencé pour : - fournir le deuxième échantillon propre et le deuxième échantillon altéré au deuxième réseau neuronal (702), le deuxième réseau neuronal ayant reçu un apprentissage pour altérer le deuxième échantillon propre, et générer un troisième échantillon altéré, sur la base d’une vérité de terrain fournie par le deuxième échantillon altéré. Système selon l’une quelconque des revendications 10 à 12, comprenant en outre : - lesdits un ou plusieurs capteurs (106, 114, C) agencés pour capturer une pluralité d’échantillons d’un même objet, tout en faisant varier un ou plusieurs paramètres de capture des capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons du même objet, dans lequel le dispositif de traitement (512) est en outre agencé pour déterminer une vérité de terrain correspondant au premier échantillon propre sur la base de la pluralité d’échantillons du même objet. Système selon la revendication 13, dans lequel : - lesdits un ou plusieurs capteurs (106, 114, C) sont en outre agencés pour capturer une pluralité d’autres échantillons d’un autre même objet, tout en faisant varier un ou plusieurs paramètres de capture des capteurs et/ou une ou plusieurs conditions environnementales entre les échantillons de l’autre objet échantillon ; et - le dispositif de traitement (512) est agencé pour déterminer la vérité de terrain sur la base de la pluralité d’échantillons du même objet et de la pluralité d’échantillons de l’autre même objet. Procédé selon l’une quelconque des revendications 1 à 9 ou système selon l’une quelconque des revendications 10 à 14, dans lequel le premier réseau neuronal (302) est un réseau neuronal à convolution (1000), comme un réseau neuronal ayant une structure UNet.