INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
la illustre schématiquement une opération de mélange latéral vers l’avant selon un exemple de réalisation de la présente description ;
la illustre schématiquement des parties de mémoire du réseau matriciel d’éléments de traitement de la selon un exemple de réalisation de la présente description ;
la illustre schématiquement une séquence de translation entre des mémoires locales du réseau matriciel d’éléments de traitement de la pendant un mélange latéral vers l’avant selon un exemple de réalisation de la présente description ;
la illustre schématiquement un rayon d’influence d’un élément de traitement pour une, deux et trois couches de mélange latéral selon un exemple de réalisation de la présente description ;
La mise en œuvre d’un réseau neuronal tel que celui de la sur un dispositif de traitement implique généralement l’exécution séquentielle du réseau linéaire de neurones, mais ceci implique qu’une quantité importante de temps et de ressources de traitement est occupée à organiser et à regrouper les données intermédiaires, avec de nombreuses opérations de chargement et de stockage en mémoire. Ceci entraîne une solution qui est lente et/ou très énergivore.
Un autre type de réseau neuronal est un réseau neuronal convolutif, dans lequel chaque couche fait intervenir l’application d’une convolution 2-dimensionnelle (2D). Ainsi, les états d’entrée fournis à chaque neurone de chaque élément PE à partir des neurones de la couche précédente ne forment plus un vecteur de scalaires, mais une carte de caractéristiques résultant de la convolution 2D à partir du noyau correspondant.
La illustre schématiquement un réseau 200 d’éléments de traitement selon un exemple de réalisation de la présente description. Le réseau 200 est configuré pour mettre en œuvre un réseau neuronal comprenant une ou plusieurs couches cachées, comme le réseau neuronal de la . Le réseau 200 est par exemple configuré pour mettre en œuvre un réseau neuronal mélangeur latéral profond, qui est un réseau dans lequel, plutôt que d’être un réseau entièrement connecté, les interconnexions de neurones d’une couche à la suivante sont définies par la relation spatiale entre les neurones, comme on le décrira plus en détail ci-dessous. Une telle architecture est par exemple particulièrement adaptée au traitement de données d’entrée bidimensionnelles telles que des images, bien que d’autres applications soient également possibles.
A l’exemple de la , la matrice 200 est une matrice 2-dimensionnelle de I par J éléments de traitement PE, où I est égal à 8 et J est égal à 6, bien que dans d’autres modes de réalisation, différentes valeurs de I et J soient possibles, au moins quatre éléments de traitement étant par exemple présents dans le réseau.
Chacun des éléments de traitement met en œuvre k neurones, k étant par exemple égal à un ou plus, et par exemple égal à au moins quatre. Des modes de réalisation décrits ici sont basés sur la présence de quatre neurones mis en œuvre par chaque élément de traitement. Chaque élément de traitement pour et , stocke par exemple un vecteur à k éléments , indiquant un état caché, qui sera également désigné ici comme un état d’activation, des k neurones de l’élément de traitement PE. Chaque élément de traitement PE stocke également par exemple une matrice de pondération , qui définit la façon dont les états d’activation des éléments de traitement voisins sont propagés vers un élément PE donné. Dans certains modes de réalisation, comme on le décrit plus en détail ci-dessous en relation avec la figure 3, chaque matrice de pondération est définie par .
A l’exemple de la figure 2, chaque élément PE reçoit par exemple les états d’activation pour les éléments PE voisins qui partagent un bord ou un coin avec l’élément PE en question. Ainsi, chaque élément PE reçoit les états d’activation de jusqu’à huit PE voisins, en plus de stocker son propre état d’activation. Un exemple est représenté pour l’élément de traitement , qui reçoit les états d’activation des éléments de traitement aux positions x,y par rapport à la position de l’élément de traitement , où x et y sont chacun des entiers de -1 à +1. Ainsi, la matrice de pondération associée à l’élément de traitement définit par exemple des poids appliqués aux états d’activation de chacun des éléments PE hachurés, comprenant l’élément lui-même.
Dans le cas d’éléments PE qui se trouvent à un bord ou coin du réseau, la matrice de pondération est par exemple de dimensions réduites pour ne couvrir que les éléments PE qui sont présents, ou est remplie de zéros pour les éléments PE qui ne sont pas présents dans le réseau. Il serait également possible que les éléments PE soient programmés avec un drapeau "ignore" pour qu’ils ignorent les étapes de traitement à réaliser sur les données à partir des PE qui ne sont pas présents. A titre de possibilité supplémentaire, un anneau de PE factices est prévu autour du réseau, ces éléments PE factices fournissent des états d’activation réglés à zéro et propagent des états d’activation reçus en provenance des éléments PE voisins.
Bien entendu, l’exemple de dimensions de la matrice de pondération décrit ci-dessus et illustré à la figure 2 n’est qu’un exemple, et dans des variantes de réalisation, d’autres combinaisons seraient possible. Par exemple, la matrice de pondération de chaque élément PE pourrait définir que, pour un élément PE donné, les états d’activation ne soient reçus que par les éléments PE voisins partageant un bord avec cet élément PE. Encore à titre d’exemple, la matrice de pondération de chaque élément PE pourrait définir que, pour un élément PE donné, les états d’activation soient reçus depuis tous les éléments PE voisins partageant un bord avec cet élément PE et depuis tous les éléments PE partageant un bord avec un élément PE qui partage lui-même un bord ou un coin avec l’élément PE donné.
Chaque élément PE de la figure 2 est par exemple configuré pour mettre en œuvre chaque couche du réseau neuronal DLM en mettant à jour l’état d’activation à une nouvelle valeur , qui est ensuite traité par la couche suivante L. Par exemple, chaque élément PE est configuré pour appliquer l’opération suivante : [Math 1] où f() est la fonction d’activation.
La figure 3 illustre schématiquement la matrice de pondération associée à et stockée par l’élément de traitement de la selon un exemple de réalisation dans lequel chaque élément PE met en œuvre quatre neurones, et ainsi k = 4.
La matrice de pondération comprend par exemple neuf sous-matrices de pondération, , pour et . En d’autres termes, la matrice de pondération est définie par , les neuf sous-matrices étant sous forme de matrice 3 par 3.
Chacun des éléments de traitement de la Figure 2 est par exemple associé à et stocke une matrice de pondération similaire à la matrice , bien que dans le cas de PE sur bords ou les coins du réseau matriciel, les sous-matrices qui ne sont pas présentes dans le réseau matriciel sont par exemple à zéro. Dans certains modes de réalisation, chacune des matrices de pondération est différente des autres matrices de pondération. Alternativement, certaines ou l’ensemble des matrices de pondération pourraient être les mêmes, en d’autres termes l’ensemble des PE stocke le même ensemble de poids, avec la possible exception des cas sur les bords/aux coins. Alternativement, les matrices de pondération sont les mêmes pour des régions données du réseau matriciel, telles que des quadrants ou des anneaux concentriques centrés autour de l’origine, telle que le centre du réseau matriciel d’éléments PE, où chaque région correspond par exemple à une région donnée du plan image.
Chaque sous-matrice de pondération est par exemple de dimensions k by k*, où k* désigne le nombre de neurones dans chaque élément PE, i.e., la taille de chaque vecteur d’activation de neurone , dans la couche suivante du réseau neuronal. Ainsi, chaque sous-matrice de pondération permet la génération de k* états d’activation à partir des k états d’activation en provenance de l’élément PE correspondant. Dans l’exemple de la , k* = k, signifiant qu’il y a un même nombre de neurones dans la couche associée à la matrice de pondération que dans la couche suivante.
Il y a par exemple un matrice de pondération définie pour chaque couche du réseau neuronal qui est mise en œuvre par le réseau matriciel d’éléments PE. Alternativement, au moins certaines des couches peuvent avoir le même nombre de neurones et avoir une même matrice de pondération, réduisant ainsi le nombre de matrices de pondération à être stockées par chaque élément PE.
Alors que l’exemple de la figure 3 repose sur une matrice de pondération comprenant une valeur de poids scalaire correspondante appliquée par chaque élément PE entre chacun des k neurones d’entrée et chacun des k* neurones de sortie, dans des variantes de réalisation, le réseau matriciel d’éléments PE 200 de la figure 2 pourrait être adapté à mettre en œuvre un réseau convolutif 2D. Dans un tel cas, un mélange latéral convolutif peut être appliqué, dans lequel l’état d’activation de chaque élément PE n’est plus un vecteur 1-dimensionnel, mais plutôt une carte de caractéristiques 2D, et chaque matrice de pondération n’est plus une matrice de 3 par 3 de sous-matrices de pondération de dimensions k par k*, mais une matrice de 3 par 3 de noyaux de convolution. En outre, chaque élément PE est par exemple configuré pour appliquer l’opération suivante : [Math 2] où f() est une fonction d’activation et l’opérateur (*) est un opérateur de convolution.
La quantité de marge et le pas appliqué pendant l’opération de convolution sont par exemple choisis selon que la taille de la carte de caractéristiques doit être augmentée, réduite, ou préservée, d’une couche à la suivante. De façon connue de l’homme de l’art, la marge correspond à une épaisseur de pixels, dont les états sont réglés à zéro, qui sont ajoutés autour de la frontière de chaque carte de caractéristiques à laquelle est appliquée la convolution. Le pas correspond à la taille de pas appliquée entre la carte de caractéristiques d’entrée et le noyau. Une marge de 1 et un pas de 1 résultent par exemple en la préservation de la taille de la carte de caractéristiques. Un pas de 2 et une marge de 1 diminueront la taille de la carte de caractéristiques de 4 fois.
La pièce d’habillage de l’invention est bicouche en ce qu’elle comporte une couche de textile tissé sur un substrat polymère. Le textile tissé est par ailleurs partiellement noyé dans le même polymère. Plus précisément, le polymère occupe au moins les interstices entre les fils de chaîne et de trame du textile tissé et peut déborder au-delà des interstices du coté de la face d’habillage de la pièce d’habillage sans recouvrir totalement cette face d’habillage. Ainsi, du coté de sa face d’habillage, la pièce d’habillage de l’invention présente une alternance de polymère et de fils de chaînes et/ou de trames.
Tout textile tissé présentant des interstices peut être utilisé dans le cadre de l’invention. Néanmoins, l’invention prévoit plus avantageusement l’utilisation, au choix, de deux textiles tissés présentant respectivement une armure toile et une armure sergé. Ces deux armures sont bien connues de l’état de la technique.
L’armure toile est une armure dans laquelle les fils impairs et pairs alternent à chaque coup, au-dessus et au-dessous de la trame. Le sergé est une armure caractérisée par des côtes obliques régulières sur l’endroit qui sont produites par le déplacement des liages de la valeur d’un fil à chaque coup de trame. Le fil de trame passe sous un fils de chaîne, puis sur plusieurs autres fils de chaîne en décalant d’un fil à chaque passage. L’armure sergé présente, contrairement à l’armure toile, une face endroit et une face envers.
Dans le cadre de l’invention, on peut utiliser un textile tissé présentant une même couleur de fils de trames et de fils de chaînes, ou un textile tissé présentant une première couleur pour les files de trame, et une autre couleur pour les fils de chaîne. On peut encore prévoir que les fils de chaîne et/ou les fils de trames présentent plusieurs couleurs différentes. Sur la pièce d’habillage finale, s’ajouteront à ces différentes couleurs celle du polymère qui occupera au moins les interstices entre les fils de chaîne et les fils de trame.
Le polymère est quant à lui choisi parmi les polymères susceptibles d’être utilisés dans un procédé de moulage par injection. Sans y être limité, on préférera le polypropylène.
On décrit le procédé de fabrication de la pièce d’habillage de l’invention en référence aux figures 1 et 2. Ce procédé est un procédé de moulage par injection dont les aspects généraux sont bien connus de l’homme du métier.
Les figures 1 et 2 représentent une partie de la presse à injection et plus particulièrement le moule 1, le plateau mobile 2, le plateau fixe 3 et le canal d’injection de polymère 4. Le textile tissé 5 est inséré entre les deux parties du moule 1 et maintenu dans cette position par pressage des deux parties du moule 1 l’une contre l’autre. De préférence, le textile tissé aura préalablement étiré à l’aide d’un cadre adapté d’environ 5 à 10% de sa surface initiale et ce, afin d’élargir les interstices entre les fils de chaîne et de trame et faciliter le passage du polymère fondu au sein du textile.
La illustre l’étape d’injection du polymère fondu 6, par exemple du polypropylène. Le polypropylène est injecté du coté de la face arrière 7 du textile tissé 5, qui est opposée à la face d’habillage 8 destinée à être visible de l’utilisateur. L’injection est réalisée selon les conditions opératoires suivantes : - la température de l’outillage est d’environ 20°C, - le polypropylène est porté à une température comprise entre 220 et 270°C, de préférence de 250°C, - la force de fermeture de la presse est comprise entre 50 et 150 kg/cm 2 , de préférence de 100 kg/cm 2 , et - la pression d’injection du polypropylène est comprise entre 50 et 150 bars, de préférence de 100 bars.
Après refroidissement et durcissement du polypropylène 6, la pièce est retirée du moule 1, cette pièce bicouche composé du textile tissé 5 partiellement noyé dans le polymère 6 et la couche de polymère durci 6 constituant la pièce d’habillage de l’invention 9.
Comme l’illustre les figures 3 et 4, au cours de l’injection, le polymère 6 traverse l’épaisseur du textile 5 en remplissant au moins les interstices entre les fils de trame et les fils de chaînes.
Plus précisément et en référence à la , lorsque le textile tissé 5a présente une armure toile qui a été illustrée à titre d’exemple avec des fils de trame 10a gris clair et des fils de chaîne 11a gris foncé, et que le polymère 6a est blanc, la face d’habillage 8a de la pièce d’habillage résultante 9a comporte une alternance de polymère 6a blanc, de fils de trame 10a gris clair et de fils de chaîne 11a gris foncé. On obtient ainsi une face d’habillage 8a de la pièce d’habillage 9a composée de trois couleurs.
La pièce d’habillage 9a a été représentée de façon schématique comme comportant du polymère durci 6a au niveau des interstices 12a du textile tissé 5a mais également au niveau des zones de passage des fils de trame sous les fils de chaîne et des fils de chaîne sous les fils de trame. Mais cette représentation est schématique puisque si le polymère remplit bien les interstices 12a, il s’étend de façon plus aléatoire sur les zones adjacentes des interstices 12a au gré de la texture superficielle de ce textile 5a.
En référence à la , lorsque le textile tissé 5a présente une armure sergé qui a été illustrée à titre d’exemple avec des fils de trame 10b gris clair et des fils de chaîne 11b gris foncé, et que le polymère 6b est noir, la face d’habillage 8b de la pièce d’habillage résultante 9b comporte une alternance de polymère 6b noir, de fils de trame 10b gris clair et de fils de chaîne 11b gris foncé. On obtient ainsi une face d’habillage 8b de la pièce d’habillage 9b composée de trois couleurs.
La pièce d’habillage 9b a également été représentée de façon schématique comme comportant du polymère durci 6b au niveau des interstices 12b du textile tissé 5b mais également au niveau des zones de passage des fils de trame sous les fils de chaîne et des fils de chaîne sous les fils de trame. Mais comme pour l’armure toile, cette représentation est schématique puisque si le polymère 6b remplit bien les interstices 12b, il s’étend de façon plus aléatoire sur les zones adjacentes des interstices 12b au gré de la texture superficielle de ce textile 5b.
La pièce d’habillage de l’invention 9, 9a,9b présente enfin une tenue lui permettant d’être utilisée comme pièce d’habillage dans l’habitacle d’un véhicule automobile.
PROCEDE DE FABRICATION DUNE GRILLE D’INVERSEUR DE POUSSEE D’UN REACTEUR D’AERONEF ET GRILLE AINSI FABRIQUEE Le présent exposé concerne un procédé de fabrication d'une grille d'inverseur de poussée de réacteur d'aéronef par moulage par injection.
On supposera que les divisions peuvent être effectuées en 1 opération.
On supposera que la convergence de l’algorithme est atteinte après 8 itérations.
Nous supposerons que l’imageur est monochrome et reprend l’un des formats ci-dessous :
[tab 1] Imageur RxC R C CGA 200 320 QVGA 240 320 VGA 480 640 Tableau 1 Formats standards d’imageurs bas coût
Un imageur monochrome peut reprendre un format tel que celui-ci.
Nous supposerons un fonctionnement à une cadence de 50 ou 60 images/s pour éviter les phénomènes de battement avec l’éclairage artificiel.
Résultats : Nous arrivons alors au tableau ci-dessous.
[Tab 2] type d'opération nombre de pixels nombre de cluster nombre d'ops degré de parallèlisation possible Labellisation soustraction/pixel/cluster RxC k RxCxk C division/pixel/cluster RxC k RxCxk C comparaison/pixel/cluster RxC k RxCxk C affectation/pixel/cluster RxC k RxCxk C stockage/pixel/cluster RxC k RxCxk Mise à jour comparaison/pixel/cluster RxC k RxCxk 2 multiplications x 3 paramètres (µ, sigma, Omega) RxCx2x3 k RxCxk 1 addition 1 division/cluster Autres Longueur/largeur incrément conditionnel/pixel/cluster RxC k RxCxk C Surface incrément conditionnel/pixel/cluster RxC k RxCxk C Barycentre Multiplcation/accumulation RxC k RxCxk C Tableau 2 : Recensement du nombre d’opérations
Avec un fonctionnement à une cadence de 50 ou 60 images/s nous pourrions obtenir des résultats tels que ceux-ci.
Pour un format CGA et une cadence de 50fps, nous arrivons à un total de 500 MOps, soit un total de 2M instructions/s avec l’architecture cible.
Pour un format VGA et une cadence de 50fps, nous arrivons à un total un total de 2 Gops, un total de 4M instructions/s avec l’architecture cible.
Utilisation d’une solution type IcyCam®
Rappel de l’architecture l’architecture de l’IcyCam est donnée ci-dessous
Les principales caractéristiques sont : 32-bit DSP / MCU icyflex1 processor 64-bit data bus Contrast and Orientation computation in the data readout path Graphical Processing Unit (GPU) 32-bit 100 MHz SDRAM interface 12-bit Parallel Peripheral Interface (PPI) 2 Serial Peripheral Interfaces (SPI) 16-bit General Purpose I / O Interface (GPIO) UART interface JTAG interface Programmable in C (GNU tool suite) Max. system clock rate : 33 MHz
Analyse des capacités de traitement
Compte tenu de l’architecture, nous pouvons estimer à 50MIPS les capacités maximales de calcul. L’IcyCam permet d’effectuer des traitements à cadence vidéo sûr pour des algorithmes simples (seuillage optimal, détection de contours par filtrage linéaire et seuillage…). En revanche, pour un algorithme de segmentation de type k-means, cette architecture est limitée.
la illustre schématiquement un dispositif d’imagerie comprenant un capteur d’image empilé sur une puce de traitement de données selon un exemple de réalisation de la présente description ;
la est un organigramme illustrant des opérations d’un procédé d’inférence faisant intervenir un mélange latéral vers l’avant selon un exemple de réalisation de la présente description ;
la illustre schématiquement un mélange latéral vers l’arrière utilisant un réseau matriciel d’éléments de traitement selon un exemple de réalisation de la présente description ;
la illustre schématiquement une opération de rétro-propagation selon un exemple de réalisation de la présente description ;
la est un organigramme illustrant des opérations d’un procédé d’apprentissage faisant intervenir un mélange latéral vers l’arrière selon un exemple de réalisation de la présente description ;
la illustre schématiquement des opérations de rétro-propagation de plusieurs couches selon un exemple de réalisation de la présente description ; et
la est un graphe représentant des résultats de tests selon un exemple de réalisation de la présente description.
Description de modes de réalisation 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.
Pour des raisons de clarté, seuls les opérations et les éléments utiles à la compréhension des modes de réalisation décrits ici ont été illustrés et décrits en détail.
Sauf indication contraire, on utilise le terme "connecté" pour désigner une connexion électrique directe entre éléments de circuit, tandis que l’on utilise le terme "relié" ou "couplé" pour désigner une connexion électrique entre éléments de circuit qui peut être directe ou s’effectuer par l’intermédiaire d’un ou plusieurs éléments.
Dans la description qui suit, sauf indication contraire, lorsque l’on se réfère à des qualificatifs de position absolue tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc. ou à des qualificatifs de position relative tels que les termes "au-dessus", "au-dessous", "supérieur", "inférieur", etc. ou à des qualificatifs d’orientation tels qu’"horizontal", "vertical", etc., on se réfère à l’orientation représentée dans les 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 illustre schématiquement un réseau neuronal 100 entièrement connecté selon un exemple de réalisation.
Le réseau neuronal 100 comprend trois couches, une couche d’entrée (INPUT LAYER), une couche cachée unique (HIDDEN LAYER) et une couche de sortie (OUTPUT LAYER). Dans des variantes de réalisation, il pourrait y avoir plus d’une couche cachée. Chaque couche comprend par exemple un certain nombre de neurones. Par exemple, le réseau neuronal 100 correspond à un modèle de réseau neuronal avec un espace de données bidimensionnel, et il y a donc deux neurones visibles dans la couche d’entrée recevant les valeurs d’entrée correspondantes I1 et I2. Le modèle présente une couche cachée avec sept neurones cachés et correspond ainsi à une matrice de dimensions A l’exemple de la , il y a trois neurones dans la couche de sortie, fournissant une sortie O du réseau 100.
Dans le cas général où le réseau neuronal comprend couches cachées, la fonction appliquée par le réseau neuronal 100 est par exemple une agrégation de fonctions, comprenant une fonction associative dans chaque couche , ces fonctions étant connectées en chaîne selon la carte . Il y a seulement deux fonctions de ce type dans l’exemple simple de la , correspondant à celles de la couche cachée et de la couche de sortie.
Une sortie de chaque neurone de chaque couche , excepté la couche de sortie, est couplée à chaque neurone de la couche suivante par l’intermédiaire d’une synapse correspondante, les synapses de chaque couche étant associées à une matrice de pondération synaptique . En particulier, chaque neurone j de chaque couche du réseau 100 est couplé à chaque neurone k de la couche suivante par l’intermédiaire d’une synapse correspondante, associée à un poids synaptique .