INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Pour certaines tâches, une carte de classe est utile au lieu d’un masque de segmentation car le masque a tendance à être plus bruyant tandis que la carte de classe a des bords plus propres. Une carte de classe augmentée pour les objets peut être construite pour contenir la classe d’arrière-plan, à l’aide du masque à seuil. Dans un mode de réalisation, pour faciliter le travail avec la carte de classe et pour définir la carte de classe augmentée, la carte de classe est traitée par aplatissement de la carte de classe à 5 canaux en une carte à 1 canal où chaque pixel contient un nombre entier représentant la classe, où la classe est déterminée par le doigt avec la probabilité la plus élevée. La classe « d'arrière-plan » est également ajoutée en utilisant les données du masque. La carte de classe augmentée peut être utilisée, dans un mode de réalisation, pour trouver des contours des objets (ongles), par exemple. Il est noté qu’il est possible d’utiliser soit le masque à seuil, soit la carte de classe augmentée pour une étape d’extraction de contour.
De plus, dans un mode de réalisation, le réseau neuronal profond produit en outre une carte de direction indiquant une direction de chaque objet telle que d’une première extrémité à une seconde extrémité de l’objet (par exemple, d'une base jusqu'à un bout ou vice versa pour un objet d'ongle).
La localisation d’objet est décrite plus en détail ci-dessous, après une description de la mise en forme d’objet. La mise en forme d’objet affine la forme de l’objet à partir d'informations de forme d’objet présentées dans la carte de classe.
Amélioration d'une forme d’objet
Les informations de forme d'objet dans les cartes de classe peuvent être inexactes et les différences de détection entre les trames d’une vidéo peuvent mettre en évidence des différences de forme, en particulier des inexactitudes. Un objectif de la tâche de mise en forme d’objet est d’améliorer la forme et la stabilité d'un objet (par exemple, lorsqu’il est rendu dans une image de sortie).
À partir de la carte de classe, un contour de chaque objet peut être déterminé, où le contour comprend une marge ou une bordure autour de l’objet suivant le contour extérieur de la forme de l’objet telle que représentée sur la carte de classe. Dans un mode de réalisation, une carte de classe augmentée est définie et utilisée pour l’extraction de contour. Dans un mode de réalisation, un modèle de forme est utilisé pour affiner la forme de chaque objet, en réponse aux contours. La forme affinée est utile pour actualiser le masque.
Dans des modes de réalisation, le rendu, le processus d’application d’un effet sur l’objet pour construire une image de sortie telle que pour une expérience de VTO, se fait en réponse aux contours d’objet traités au lieu des contours de la carte de classe d’origine pour chaque objet détecté. Un masque révisé peut être déterminé conformément aux formes affinées telles que déterminées par application des contours à un modèle de forme. Pendant le rendu, le masque est utilisé car les valeurs de probabilité font apparaître le résultat rendu plus lisse. Dans un mode de réalisation, lors du rendu, le traitement rend un ongle à la fois dans l’image de sortie, de sorte que la carte de classe est également utile pour déterminer quels pixels de masque appartiennent à la classe actuelle.
Conformément à un mode de réalisation, les étapes de mise en forme d’objet comprennent : L'extraction des contours d’objet de la carte de classe ; Pour chaque contour : La conversion du contour en une forme « standardisée » ; La normalisation du contour pour supprimer la rotation, la position et la mise à l'échelle ; La projection du contour dans un modèle de forme (par exemple un modèle PCA) de dimensionnalité réduite ; La stabilisation du contour dans l’espace de modèle ; La déprojection du contour de l’espace de modèle ; La réapplication de la rotation, la translation et la mise à l’échelle au contour ; et La génération d’un nouveau masque à partir des contours.
Chaque étape 1 à 9 est décrite plus en détail.
Selon un autre aspect, l’invention se rapporte également à un dispositif électronique de tatouage numérique d’un réseau de neurones, ledit réseau de neurones étant enregistré au sein d’une structure de données comprenant des blocs de paramètres. Un tel dispositif comprend pour un bloc de paramètres courant comprenant au moins N paramètres représentant des nombres réels : des moyens d’obtention d’un message comprenant N bits ; des moyens de mise en œuvre d’au moins N itérations de modification de paramètres au sein du bloc courant, comprenant : l’obtention d’un paramètre courant, parmi lesdits au moins N paramètres du bloc de paramètres courant ; la mise à jour de la valeur d’un bit d’index prédéterminé du paramètre courant en fonction d’un bit du message.
L’invention a également pour objet un réseau de neurones, enregistré au sein d’une structure de données et sauvegardé sur un support lisible par ordinateur comprenant des blocs de paramètres, le réseau de neurones étant tatoué par un procédé de tatouage numérique tel que défini ci-dessus.
D’autres caractéristiques et avantages de l’invention ressortiront de la description qui en est donnée ci-dessous, à titre indicatif et nullement limitatif, en référence aux figures annexées, parmi lesquelles : illustre un dispositif de tatouage numérique selon un exemple de réalisation ; illustre un procédé de tatouage numérique d’un réseau de neurones dans un exemple de réalisation ; illustre un premier exemple de mise en œuvre du procédé de tatouage numérique d’un réseau de neurones ; illustre un deuxième exemple de mise en œuvre du procédé de tatouage numérique d’un réseau de neurones.
Rappels du principe Comme explicité précédemment, un objet de l’invention est de disposer d’une technique de tatouage numérique en boite blanche qui offre une résistance accrue aux attaques que peut subir un réseau de neurones, particulièrement dans un contexte de mise en œuvre embarquée. Un autre objet de la présente est ainsi de permettre d’identifier plus efficacement un réseau de neurones qui a été extrait d’un dispositif embarqué, puis modifié et réinséré dans un autre dispositif embarqué, par un attaquant qui souhaite détourner l’usage d’un réseau de neurones ne lui appartenant pas, modifier un réseau de neurones pour fausser les résultats de celui-ci (par exemple pour effectuer une cyberattaque) ou encore réaliser des économies en s’appropriant le travail de recherche et de développement effectué par un concurrent.
Le principe général de l’invention consiste en l’insertion, au sein d’au moins un bloc de paramètres du réseau de neurones (préalablement entrainé), d’un tatouage (prenant la forme d’une message), dans des bits sélectionnés des paramètres (valeurs numériques) enregistrés dans le bloc de paramètres. L’invention se rapporte ainsi à un procédé de tatouage numérique d’un réseau de neurones (préalablement entrainé) comprenant un ensemble de blocs de paramètres, les blocs de paramètres comprenant des paramètres du réseau de neurones. Ces paramètres sont par exemple des paramètres qui ont fait l’objet de l’apprentissage, comme les poids des couches, les biais, les valeurs de tenseurs, les valeurs de normalisation, les valeurs de convolution, etc. Ainsi, au moins certains des blocs de paramètres comprennent chacun un ensemble de paramètres, dont le nombre est variable en fonction du bloc en question. Dans un exemple de réalisation, les blocs de paramètres comprennent des valeurs réelles flottantes (float) d’un nombre de bits prédéterminé (par exemple 8, 16, 32 ou 64 bits). En d’autres termes, chacune de ces valeurs réelles flottantes est par exemple stockée sur un, deux, quatre ou huit octets (pour un bloc donné, le codage des paramètres est identique). Le procédé de tatouage numérique de l’invention est exécuté sur ces blocs de paramètres pour insérer, au sein de ceux-ci, un message secret (le message tatoué) qui peut se présenter sous la forme d’une répétition d’un message de base. Le procédé est par exemple mis en œuvre sur un réseau de neurones enregistré au format onnx, lequel présente l’avantage de disposer de nombreuses API d’accès et de modifications, quels que soient les langages de programmation utilisés.
La illustre schématiquement un dispositif électronique de tatouage numérique. Le dispositif électronique de tatouage numérique 2 comprend un module d’obtention (20) d’un message à tatouer (Msg) ; un module de modification (40) de paramètres au sein des blocs de paramètres constituant le réseau de neurones comme représenté sur la .
Dans l’exemple de la , le dispositif de tatouage numérique 2 comprend une unité de mémoire électronique 16, au moins un processeur de calcul 18 et une interface 60 de communication avec des dispositifs distants, par un protocole de communication choisi, par exemple un protocole filaire et/ou un protocole de communication radio. Les éléments du dispositif 2 sont adaptés à communiquer via un bus de communication 15.
Dans l’exemple de la , le module d’obtention (20) d’un message à tatouer (Msg), le module de modification (40) de paramètres au sein des blocs de paramètres constituant le réseau de neurones sont réalisés chacun sous forme d’un logiciel, ou d’une brique logicielle, exécutable par le processeur. La mémoire du dispositif électronique de tatouage numérique 2 est alors apte à stocker un logiciel d’obtention d’un message à tatouer (Msg) et un logiciel de modification de paramètres au sein des blocs de paramètres constituant le réseau de neurones. Le processeur est alors apte à exécuter chacun des logiciels parmi le logiciel d’obtention d’un message à tatouer (Msg) et le logiciel de modification de paramètres au sein des blocs de paramètres constituant le réseau de neurones.
En variante non représentée, le module d’obtention d’un message à tatouer (Msg), et le module de modification de paramètres au sein des blocs de paramètres constituant le réseau de neurones, sont réalisés chacun sous forme d’un composant logique programmable, tel qu’un FPGA (de l’anglais Field Programmable Gate Array ), ou encore d’un circuit intégré, tel qu’un ASIC (de l’anglais Application Specific Integrated Circuit ).
Lorsque le dispositif électronique de tatouage numérique 2 est réalisé sous forme d’un ou plusieurs logiciels, c’est-à-dire sous forme d’un programme d’ordinateur, également appelé produit programme d’ordinateur, il est en outre apte à être enregistré sur un support, non représenté, lisible par ordinateur. Le support lisible par ordinateur est par exemple un medium apte à mémoriser des instructions électroniques et à être couplé à un bus d’un système informatique. A titre d’exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non-volatile (par exemple FLASH ou NVRAM) ou une carte magnétique. Sur le support lisible est alors mémorisé un programme d’ordinateur comprenant des instructions logicielles.
En relation avec la , le procédé de tatouage numérique d’un réseau de neurones de l’invention est mis en œuvre sur un réseau de neurones qui est enregistré au sein d’une structure de données comprenant des blocs de paramètres (Blck), le procédé comprenant, pour un bloc de paramètres courant (qui comprend par exemple au moins N paramètres (p 0 , …, p N-1 ) représentant des nombres réels, et il comprend : Une étape d’obtention (10) du message Msg comprenant N bits (b 0 , …, b N-1 ) ; Au moins N itérations d’une étape de modification (20) de paramètres au sein du bloc de paramètres courant, comprenant : L’obtention d’un paramètre courant (p X ), parmi lesdits au moins N paramètres (p 0 , …, p N-1 ) du bloc de paramètres courant ; La mise à jour de la valeur d’un bit (b iPx ) d’index prédéterminé du paramètre courant (p X ) en fonction d’un bit (b 0 , …, b N-1 ) du message Msg.
Lorsque le nombre de paramètres enregistrés dans le bloc est supérieur à la longueur en bits du message à insérer, l’étape de mise à jour est itérée en repartant du premier bit du message à insérer. Alternativement, le message Msg à tatouer comprend déjà plusieurs (un nombre entier supérieur à deux) occurrences d’un message de référence (message de base). Le tatouage est effectué de sorte à ce qu’un nombre entier de copies du message de base est tatoué (il n’y a pas de tatouage partiel du message de base). On obtient ainsi une redondance dans l’insertion du message (dans le tatouage) au sein du réseau de neurones, comme cela est explicité en détail par la suite.
Le message à tatouer au sein des bits des paramètres (valeurs réelles) peut prendre plusieurs formes. Dans un premier exemple, le message peut se présenter sous la forme d’une chaine de caractères chiffrée (ou de la répétition d’une chaine de caractères chiffrée). Dans un deuxième exemple, le message à tatouer peut se présenter sous la forme d’une image. Dans un troisième exemple, le message à tatouer peut se présenter sous la forme d’une signature.
Dans le cas du premier exemple, la chaine de caractères peut être construite de la manière suivante : une chaine de caractères de référence est déterminée (par exemple une chaine définissant un copyright, de type « TheCompany1© ». Cette chaine peut avoir une longueur déterminée (par exemple six, douze, dix-huit, vingt-quatre caractères). A partir de cette chaine de caractère de référence, un code de détection d’erreur est calculé (CRC, de l’anglais pour « cyclic redundancy check ») . Ce code de détection d’erreurs est concaténé avec la chaine de caractère de référence pour former un mot de code (« codeword » en anglais). Ce mot de code dispose également d’une taille prédéterminée. Le mot de code est ensuite chiffré (par exemple avec un algorithme de type chiffrement de flux dans lequel la taille du message chiffré est identique à la taille du message d’origine, ce qui facilite le traitement réalisé pour l’insertion ou la récupération des messages). Le mot de code chiffré est ensuite encodé, par exemple par une transformation pseudo-aléatoire réversible et le mot de code chiffré et encodé constitue le message à insérer au sein des blocs de paramètres du réseau de neurones. Le mot de code chiffré et encodé est également de taille prédéterminée (par exemple soixante-quatre, cent vingt-huit ou deux cent cinquante-six bits). La taille du mot de code chiffré est choisie, initialement, en fonction des circonstances de l’espèce et notamment en fonction de la taille des blocs (par exemple en fonction du nombre de paramètres contenus dans les blocs de paramètres), de sorte notamment à permettre l’insertion complète d’au moins une occurrence du message dans les blocs de valeurs réelles, et obtenir ainsi au moins une inscription complète du message dans un bloc.
Dans le cas du deuxième exemple, l’image à insérer en tant que message peut être sélectionnée de sorte à reproduire visuellement un marquage d’appartenance à une entité (par exemple l’image peut être un logo d’une entreprise). L’image est sélectionnée pour que sa taille en bits soit compatible avec au moins certains des blocs de paramètres (i.e. qu’elle soit insérable au sein d’un bloc de paramètres). Comme dans le cas de la chaine de caractères, il est également possible de calculer un code correcteur d’erreur et/ou de chiffrer (le mot de code résultant ou directement l’image) et/ou de transformer l’image, le mot de code ou le mot de code chiffré encodé comme dans le premier exemple.
La connexion entre le premier circuit d’alimentation électrique 12a et le deuxième circuit d’alimentation électrique 12b est interrompue par le premier dispositif de connexion 20a et le deuxième dispositif de connexion 20b, et entre le troisième circuit d’alimentation électrique 12c et le quatrième circuit d’alimentation électrique 12d est interrompu par le troisième dispositif de connexion 20c et le quatrième dispositif de connexion 20d.
à sont des diagrammes représentant le fonctionnement du système d’alimentation électrique 10 en cas d’anomalie. Les flèches représentées sur à indiquent des chemins d’alimentation électrique. à représentent le fonctionnement du système d’alimentation électrique 10 si la fourniture d’énergie électrique depuis le premier dispositif principal de source d’énergie 14a au premier circuit d’alimentation électrique 12a et au troisième circuit d’alimentation électrique 12c est coupée.
L’état dans lequel la fourniture d’énergie électrique depuis le premier dispositif principal de source d’énergie 14a au premier circuit d’alimentation électrique 12a et au troisième circuit d’alimentation électrique 12c est coupée, est, par exemple, un état dans lequel le premier dispositif principal de source d’énergie 14a est arrêté et ne peut pas être redémarré, ou un état dans lequel un court-circuit, une déconnexion ou similaire s’est produit entre le premier dispositif principal de source d’énergie 14a et le dispositif contacteur 22a ou entre le premier dispositif principal de source d’énergie 14a et le dispositif contacteur 22c.
Lorsque la fourniture d’énergie électrique depuis le premier dispositif principal de source d’énergie 14a au premier circuit d’alimentation électrique 12a et au troisième circuit d’alimentation électrique 12c est coupée, alors, ainsi que cela est illustré sur , le premier dispositif principal de source d’énergie 14a est déconnecté du premier circuit d’alimentation électrique 12a et du premier circuit de connexion 18a par le dispositif contacteur 22a. En outre, le premier dispositif principal de source d’énergie 14a est déconnecté du troisième circuit d’alimentation électrique 12c et du deuxième circuit de connexion 18b par le dispositif contacteur 22c.
Le premier dispositif de charge 16a est alimenté en énergie électrique seulement depuis le premier dispositif de stockage d’énergie 24a, et le troisième dispositif de charge 16c est alimenté en énergie électriquement seulement depuis le troisième dispositif de stockage d’énergie 24c. Donc, l’état de charge (SOC) du premier dispositif de stockage d’énergie 24a et le SOC du troisième dispositif de stockage d’énergie 24c baissent. De manière correspondante, la tension de sortie du premier dispositif de stockage d’énergie 24a et la tension de sortie du troisième dispositif de stockage d’énergie 24c baissent. De l’autre côté, le deuxième dispositif de charge 16b est alimenté en énergie électrique provenant du deuxième dispositif principal de source d’énergie 14b et du deuxième dispositif de stockage d’énergie 24b, et le quatrième dispositif de charge 16d est alimenté en énergie électrique provenant du deuxième dispositif principal de source d’énergie 14b et du quatrième dispositif de stockage d’énergie 24d. Ainsi, le SOC du deuxième dispositif de stockage d’énergie 24b et le SOC du quatrième dispositif de stockage d’énergie 24d baissent à peine. Donc, la tension de sortie du deuxième dispositif de stockage d’énergie 24b et la tension de sortie du quatrième dispositif de stockage d’énergie 24d baissent à peine. En conséquence, la tension de sortie du premier dispositif de stockage d’énergie 24a et la tension de sortie du troisième dispositif de stockage d’énergie 24c deviennent inférieures à la tension de sortie du deuxième dispositif de stockage d’énergie 24b et à la tension de sortie du quatrième dispositif de stockage d’énergie 24d.
Lorsque de l’énergie électrique est fournie depuis le deuxième dispositif principal de source d’énergie 14b au deuxième dispositif de charge 16b et au quatrième dispositif de charge 16d, la tension de sortie du deuxième dispositif principal de source d’énergie 14d est commandée de manière à être supérieure à la tension de sortie du deuxième dispositif de stockage d’énergie 24b et à la tension de sortie du quatrième dispositif de stockage 24d. Donc, la tension de sortie du deuxième dispositif principal de source d’énergie 14b est supérieure à la tension de sortie du premier dispositif de stockage d’énergie 24a et à la tension de sortie du troisième dispositif de stockage d’énergie 24c.
Si le premier circuit d’alimentation électrique 12a et le deuxième circuit d’alimentation électrique 12b sont connectés l’un à l’autre dans cet état, une surintensité circule à travers le premier dispositif de charge 16a et le premier dispositif de stockage d’énergie 24a, et le premier dispositif de charge 16a et le premier dispositif de stockage d’énergie 24a peuvent être endommagés. De manière similaire, lorsque le troisième circuit d’alimentation électrique 12c et le quatrième circuit d’alimentation électrique 12d sont connectés l’un à l’autre dans cet état, une surintensité circule à travers le troisième dispositif de charge 16c et le troisième dispositif de stockage d’énergie 24c, et le troisième dispositif de charge 16c et le troisième dispositif de stockage 24c peuvent être endommagés.
Dans le système d’alimentation électrique 10 du présent mode de réalisation, une première commande de réduction de tension est exécutée sur le deuxième dispositif principal de source d’énergie 14b. La première commande de réduction de tension est une commande pour l’approximation de la tension de sortie du deuxième dispositif principal de source d’énergie 14b sur la tension de sortie du premier dispositif de stockage d’énergie 24a et la tension de sortie du troisième dispositif de stockage d’énergie 24c. La première commande de réduction de tension est exécutée jusqu’à ce qu’une différence entre la tension de sortie du deuxième dispositif principal de source d’énergie 14b et la tension de sortie du premier dispositif de stockage d’énergie 24a, et une différence entre la tension de sortie du deuxième dispositif principal de source d’énergie 14b et la tension de sortie du troisième dispositif de stockage d’énergie 24c deviennent inférieures ou égales à un seuil de tension prédéfini.
Lorsque la première commande de réduction de tension est exécutée sur le deuxième dispositif principal de source d’énergie 14b, la tension de sortie du deuxième dispositif principal de source d’énergie 14b devient inférieure à la tension de sortie du deuxième dispositif de stockage d’énergie 24b et à la tension de sortie du quatrième dispositif de stockage d’énergie 24d. Donc, ainsi que cela est illustré sur , la fourniture d’énergie électrique depuis le deuxième dispositif principal de source d’énergie 14b au deuxième dispositif de charge 16b est restreinte par le deuxième dispositif anti-reflux 28b. En outre, la fourniture d’énergie électrique depuis le deuxième dispositif principal de source d’énergie 14b au quatrième dispositif de charge 16d est restreinte par le deuxième dispositif anti-reflux 28d.
Lorsque la différence entre la tension de sortie du deuxième dispositif principal de source d’énergie 14b et la tension de sortie du premier dispositif de stockage d’énergie 24a devient inférieure ou égale au seuil de tension, la première commande de connexion est exécutée sur le premier dispositif de connexion 20a et le deuxième dispositif de connexion 20b. Lorsque la première commande de connexion est exécutée sur le premier dispositif de connexion 20a et le deuxième dispositif de connexion 20b, alors, ainsi que l’illustre , le premier circuit d’alimentation électrique 12a et le deuxième circuit d’alimentation électrique 12b sont connectés l’un à l’autre par l’intermédiaire du premier circuit de connexion 18a. En conséquence, de l’énergie électrique est fournie depuis le deuxième dispositif principal de source d’énergie 14b au premier dispositif de charge 16a.