INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Les broches de connexion 10, de section rectangulaire, comprennent chacune une extrémité libre 101 destinée à être reliée électriquement à un réseau électrique du véhicule (non représenté), et une extrémité de connexion 102 surmoulée dans un surmoulage de support 20.
Chaque broche de connexion 10 comporte un connecteur 103 permettant de souder électriquement ladite broche de connexion 10 avec une patte de connexion 24 du circuit intégré 23 (visible sur la ) du capteur 1.
Bien entendu, l’heure de fin de stationnement et l’heure de début peuvent comporter chacune une date nécessaire pour un tel calcul.
En variante, ladite au moins une position du soleil peut être reçue depuis un module de communication du véhicule, par exemple un module de communication avec un réseau de téléphonie mobile, par exemple depuis un serveur distant.
Ladite au moins une position du soleil peut comporter une pluralité de positions calculées à plusieurs instants entre l’heure de début et l’heure de fin de stationnement. Il est ainsi possible de déterminer la durée d’ombrage de ladite au moins une zone entre l’heure de début et l’heure de fin de stationnement, à partir de la pluralité de positions (et cela peut constituer une étape du procédé selon l’invention).
Par exemple, ladite au moins une zone est constituée de surfaces ombragées au-delà d’un deuxième seuil de durée.
Le message peut comporter également (une information sur) la durée d’ombrage durant laquelle la zone est ombragée ou ensoleillée.
Selon un mode de réalisation, la commande de restitution d’un message commande l’affichage d’une image sur un écran du véhicule (à l’intérieur du véhicule, préférentiellement à l’intérieur de l’habitacle du véhicule).
Le message peut comprendre une information sur la zone.
Le procédé selon l’invention peut ainsi comprendre une étape d’affichage de l’image.
L’image comprend, par exemple, (une représentation de) ladite au moins une zone.
Par exemple, (la représentation de) ladite au moins une zone peut être colorée en fonction d’une durée d’ombrage dans la zone.
Par exemple, ladite image comprend une cartographie (autour de la localisation).
En variante, la commande de restitution peut commander la restitution d’un message sonore.
Selon un mode de réalisation, le procédé selon l’invention comprend en outre l’étape suivante : Réception d’une mesure physique d’un environnement extérieur du véhicule (i.e. : de l’extérieur du véhicule) (depuis un capteur du véhicule), le besoin de stationnement ombragé étant détecté à condition que (ou bien : si) la mesure physique soit supérieure (en variante : inférieure) à un premier seuil.
Par exemple, la mesure physique est une température extérieure du véhicule.
Dans ce cas, le premier seuil peut être compris entre 20 degrés Celsius et 45 degrés Celsius.
Selon un mode de réalisation, le procédé selon l’invention comprend comprenant en outre l’étape suivante : Réception d’une information de vitesse instantanée de circulation du véhicule (depuis un indicateur de vitesse du véhicule), Le besoin de stationnement ombragé étant détecté à condition que (ou bien : si) la vitesse soit inférieure à un troisième seuil ou que le véhicule soit arrêté. Par exemple, le troisième seuil peut être inférieur à 20 kilomètres par heure et supérieur à 0 kilomètres par heure.
Pour les deux variantes de réalisation du procédé de fabrication décrit précédemment, l’étage 31 comporte au moins un conduit 60 d’injection d’une solution 62, et des moyens d’amenée 64 de la solution 62 dans le conduit 60.
4. Configuration du composant pseudo-générique Comme décrit dans la section généralisation des calculs, un réseau de neurones est considéré comme une combinaison (généralement une succession) de transformations appliquées à une entrée afin de générer une sortie. La configuration du composant logique programmable permet de définir cette succession de transformation de l'entrée vers la sortie. La disposition de la mémoire de l'entrée doit également être définie. Pour chaque transformation, l'utilisateur peut définir le type de transformation (voir une liste ci-dessous), le type de la fonction d'activation, la disposition des données de l'entrée (de la couche). Les différents paramètres des couches de rétropropagation peuvent également être définis, s'ils ont été inclus lors de la phase de paramétrisation. Le fichier de configuration comprend par exemple un identifiant, une taille de réseau de neurones, une structuration des données d’entrée (taille et dimension par exemple), la structuration des couches (pour chaque couche) [type, format des données – interne, entrée, sortie -, fonction d’activation à utiliser, dimension des vecteurs ou des matrices], la structuration de la retro propagation (back-propagation), pour chaque couche de rétropropagation (type d’erreur, paramètres, taux d’apprentissage, moment, régularisation), le nombre de cycles (« epoch »), etc.
En résumé, la configuration est utilisée pour définir les types d'opérateurs (c'est-à-dire les transformations) à appliquer et ses caractéristiques, et à quels opérandes ils s'appliquent (opérandes de transformation interne comme les poids et les données de la couche précédente). La configuration peut être stockée dans un fichier. Le processeur PS effectue une initialisation du composant pseudo-générique avec cette configuration avant les calculs. Cette configuration est définie par l'utilisateur, elle peut être déterminée en utilisant des outils d'intelligence artificielle (framework) populaires tel que Pytorch ou TensorFlow.
Liste non exhaustive des paramètres de d’inférence (feedforward) : Type de transformation : conv, sub max, sub min, sub avg, sub max, conv w sub, FC, LSTM, STAR, GRU, MGU, transformation de mémoire, agrégation Fonction d'activation : aucune, sigmoïde, tanh, tanh opt, sig int, tanh int, relu, softmax
Liste non exhaustive des paramètres de rétropropagation : Type de dégradé descendant : Stochastic Gradient Descent (SGD), Stochastic Gradient Descent with Momentum (SGDM), adam, adamax, etc.
Habituellement, la mémoire interne d'un dispositif FPGA (ou même d'un ASIC) est limitée et/ou extrêmement coûteuse. Comme indiqué ci-dessus, l’approche adoptée ne se limite pas à la mémoire locale car il est possible d’utiliser les composants de mémoire externe qui permettent via des opérations d'écriture/lecture de charger et d'exporter les données nécessaires pour chaque opération. L'accès en rafale de la mémoire L0 à L1 est défini dans la phase de paramétrage.
5. Traitement des échanges mémoire / Configuration du composant
5.1. Génération d’une configuration et de données en mémoire L1
La configuration du composant, consiste, une fois le composant « instancié » (c’est-à-dire une fois que l’on a défini les limites de généricité de ce composant et que l’on dispose d’un composant fonctionnel), à permettre au composant d’interagir correctement avec la mémoire L1 sur chacune de ses interfaces de bus mémoire (telles que définies précédemment). Une configuration, dans les limites de généricité de la paramétrisation, est composée de trois éléments principaux : les inputs , les labels et les listes de transformations . Si l’on considère uniquement des réseaux de neurones faisant de l’inférence, alors la configuration ne comprend pas de labels. Nous nous intéressons ici aux données présentées sur l’interface config_in. Cette configuration est par exemple générée à partir d’un fichier XML dont on a défini le formalisme, la structure et les éléments qui le composent. Ce fichier XML est donné en entrée au composant Manager qui génère la (les) bonne(s) structure de données pour l’interface config_in. Il est tout à fait envisageable, de prendre en compte des configurations de type ONNX (Open Neural Network Exchange) ou encore des fichiers spécifiques venant des « framework » (cadre de développement) les plus utilisés tels que Pytorch (et ses modèles enregistrés en « *.pth »). Si on considère des composants entraînés hors-ligne (offline training), les descriptions des modèles intègrent les données des différentes transformations propres au réseau de neurones. Ainsi, l’interface transf_data_inout est aussi constituée en accord avec la configuration de l’interface config_in. En d’autres termes, le manager, sur la base d’un fichier de configuration (interface config_in), informe le composant matériel (Exécuteur) du type ainsi que de la structure et de la localisation (adresses mémoire) des données de transformation (les données des différentes couches présentes sur l’interface transf_data_inout) dans la mémoire L1. Cette configuration permet également à l’exécuteur de connaitre la structure et la localisation des données en entrée (inputs_in et éventuellement labels_in si le composant est capable d’entrainement). Ainsi, l’exécuteur peut mettre en œuvre les fonctions prévues pour le réseau de neurones à partir de la configuration prévue tout en accédant correctement aux données nécessaires à partir de la structure de données et des adresses de base fournis également par cette configuration. Ensuite, l’exécuteur peut réaliser les calculs du réseau de neurone en écrivant/lisant les données intermédiaires pour les différentes couches dans la mémoire L1 (via l’interface layers_data_inout) et fournir le résultat final sur l’interface result_out. L’exécuteur peut également fournir la structure des données (adresses et dimensions) pour les données qu’il génère via l’interface memory_layout_out .
5.2 Configuration de l’Exécuteur Une configuration est ainsi fournie au composant Exécuteur à partir d’une adresse de base donnée. La Manager lui fournit les différentes adresses sur lesquels ces différentes interfaces seront branchées et utilisées. Le Manager lui transmet également un opcode (code d’opération) pour lui indiquer qu’il doit se configurer à partir de ces données présente sur son interface config_in à l’adresse de base fournie. L’Exécuteur détermine donc à partir de la configuration fournie (contenant la description des entrées et des transformations, ainsi que des labels) la façon de lire et d’écrire de façon correcte les données et les résultats dans la DDR (la mémoire L1). Le composant fournit également sur l’interface memory_layout_out la structure des données qu’il génère (typiquement les outputs et les données pour les couches intermédiaires, afin que le manager MGR puisse les lire et les décoder). Lors de la fin de cette phase de configuration, l’Exécuteur retourne son état de configuration et si cet état est correct, alors le composant est prêt à s’exécuter et est configuré à partir de la description fournie.
En d’autres termes, l’Exécuteur, lit la configuration à partir des adresses fournies par le Manager, puis il extrait, à partir des adresses fournies, en mémoire L1, les structures de données à utiliser et les caractéristiques fonctionnelles adéquates, puis détermine : comment il effectue les lectures et les écritures en mémoire L1 et quelle est la logique fonctionnelle à appliquer (MLP, CNN, fonctions d’activation, etc.).
5.3 Exemples On illustre la mise en œuvre du procédé de l’invention sur un exemple concret. Pour ce faire, on part du principe que l’on dispose de trois réseaux de neurones différents que l’on souhaite appliquer à partir des mêmes données d’entrées (ici, le cas d’étude historique du MNIST). Ces réseaux sont (1) ANN-1 est un réseau MLP multicouches ; (2) ANN-2 est un réseau CNN de type Lenet-5 et (3) ANN-3 est un réseau RNN (récurrent) de type LSTM. Les hypothèses suivantes sont formulées : Ces trois réseaux sont capables de résoudre le problème de classification du MNIST. Ils prennent en entrée une image grise de taille 28×28 et fournissent en sortie un vecteur de classification de taille 10 qui correspond à la probabilité du chiffre reconnu sur l’image fournie en entrée (entre 0 et 9) ; La DDR considérée (donc la mémoire L1) est assez grande pour contenir toutes les données des trois réseaux. Cela signifie que les données de configuration, les données pour les niveaux intermédiaires et les données de transformations pour chaque réseau sont disponible en mémoire L1 (cette hypothèse est purement rhétorique puisque de nombreuses DDR pour les cartes embarquées peuvent atteindre 16, 32 ou encore 64 Gbits, ce qui est très suffisant pour traiter ce problème illustratif). Les trois réseaux ont été entraînés hors-ligne à l’aide d’un outil (Pytorch, Tensorflow, ...) et ont été sauvegardés au format ONNX dans les fichiers ann1.onnx, ann2.onnx et ann3.onnx. Ces fichiers ont été fournis à l’entité Manager afin de placer les données et les configurations associées dans la mémoire L1. L’Exécuteur a été correctement paramétré avec les fonctionnalités logiques requises pour l’exécution de ces trois types de réseaux. L’Exécuteur a une logique limitée, il ne peut donc gérer l’exécution que d’un seul réseau de neurones à la fois (on peut configurer et exécuter ANN-1 ou ANN-2 ou ANN-3).
Ainsi, après une l’étape de génération de la configuration en mémoire L1 et de la copie des données associées, comme illustré en relation avec la (pour le réseau ANN-1), la (pour le réseau ANN-2) et la (pour le réseau ANN-3) le Manager peut configurer l’Exécuteur afin qu’il exécute chacun des réseaux disponibles en mémoire L1.
L’Exécuteur fournit, successivement, pour chacun des trois réseaux, sur les interfaces « config_in », « transf_data_inout » et « layers_data_inout », « data-in » les données nécessaires à la mise en œuvre du réseau. Une fois configuré avec ces données, l’Exécuteur réalise les calculs pour lesquels il a été configuré, avec notamment, les calculs matriciels et les fonctions d’activation de la logique implémentée. Les données sont lues/écrites en mémoire L0 pour effectuer les calculs « internes » à l’Exécuteur et lorsque ces calculs sont achevés (ou lorsque la mémoire doit être purgée (par exemple pour un éventuel cycle de calcul suivant), les données sont écrites en mémoire L1 (sur les interfaces « result_out » ou « memory_layout_out »).
L’Exécuteur, lit/écrit ses données de fonctionnement à différentes adresses en L1, la configuration associée lui permet d’interpréter la structure mémoire liée à ces entrées/sorties. On peut noter que dans ce cas précis, le composant lit les données d’entrée (data_in), écrira ses données de sortie (result_out) et fournit la structure de ses interfaces mémoires (i.e. memory layout sur l’interface memory_layout_out) à partir des mêmes adresses (donc les mêmes zones mémoires). Il peut être pertinent d’utiliser des zones différentes en particulier si les réseaux de neurones utilisés (et à configurer sur le composant) ont des objectifs/buts différents.
5.4 Exécution de gestion des interactions L0/L1 Une fois configuré tel que décrit précédemment, l’Exécuteur doit mettre en œuvre les opérations pour lesquelles il a été configuré et pour cela il réalise plusieurs opérations de « copie » afin d’acquérir l’ensemble des données (opérandes) nécessaires à la réalisation des opérations configurées en L1 afin d’en disposer en mémoire L0. Inversement, une fois les opérations réalisées, il réalise des opérations de copie des résultats obtenus (par ses calculs) de sa mémoire locale L0 jusqu’en mémoire externe L1. Il est possible d’illustrer ce fonctionnement en considérant l’opération élémentaire d’un réseau MLP sous la forme de l’expression 1 considérant les matrices ou de la forme de l’expression 2 en considérant les éléments (le biais b est un poids particulier faisant partie des données de transformations).
L’invention permet ainsi de différentier les demandes de l’utilisateur du véhicule, par exemple de différentier une demande de déverrouillage d’une demande de verrouillage.
Le procédé peut comporter une étape durant laquelle le premier émetteur-récepteur est identifié à partir d’un premier identifiant reçu durant l’étape de première réception et une étape durant laquelle le deuxième émetteur-récepteur est identifié à partir d’un deuxième identifiant reçu durant l’étape de deuxième réception, le premier identifiant étant différent du deuxième identifiant.
La première et deuxième réception est par exemple mise en œuvre par un lecteur apte à lire les (premier ou deuxième) émetteur-récepteur radiofréquence en champs proche situés à l’extérieur du véhicule.
Le premier émetteur-récepteur et le deuxième émetteur-récepteur sont par exemple compris dans une même carte.
On entend par champs proche une portée de communication radiofréquence inférieure à 50 centimètres, par exemple inférieure à 10 centimètres, voire inférieure à 2 centimètres.
Selon un mode de réalisation, la première commande déverrouille au moins un ouvrant (par exemple : tous les ouvrants) du véhicule.
Autrement dit, selon un mode de réalisation, le procédé selon l’invention comprend en outre les étapes suivantes (mises en œuvre par exemple par au moins une serrure du véhicule automobile) : Réception de la première commande, puis Sur (autrement dit) réception de la première commande, déverrouillage au moins d’un ouvrant du véhicule (par exemple, de tous les ouvrants du véhicule).
La commande de déverrouillage peut être ainsi envoyée à destination d’une serrure du véhicule (et donc être reçue par la serrure). La serrure est par exemple une serrure électronique.
Par déverrouiller un ouvrant (ou déverrouillage d’un ouvrant), on étend que l’ouvrant est mis dans en état (en actionnant par exemple une serrure de l’ouvrant) où l’ouvrant peut être ouvert, par exemple en actionnant une poignée ou un bouton (ou plus généralement une interface homme-machine) de (autrement dit : dans) l’ouvrant.
Un ouvrant du véhicule est par exemple une porte latérale du véhicule, un hayon de coffre à bagage ou un capot moteur.
Selon un mode de réalisation, la première commande déverrouille uniquement (i.e. les autres ouvrants du véhicule restent verrouillés) une porte conducteur (i.e. : une porte latérale du véhicule plus proche du volant de direction du véhicule que toute autre porte latérale du véhicule) du véhicule, le procédé comprenant en outre les étapes suivantes : Troisième réception, par des communications radiofréquences en champs proche, (par exemple selon une fréquence de 13,56 mégahertz) de la première instruction, depuis le (autrement dit : de la part du) premier émetteur-récepteur radiofréquence en champs proche, après (autrement dit : postérieurement à ) la première réception ( par exemple sans réception de la deuxième instruction depuis le deuxième émetteur-récepteur entre la première réception et la troisième réception) (ou après l’envoi de la première commande), puis (Suite à la troisième réception,) Détermination d’une commande de déverrouillage de tous les ouvrants du véhicule à partir de la première instruction, puis Envoie de la commande de déverrouillage, puis Réception de la commande de déverrouillage, puis Sur (autrement dit : suite à la) réception de la commande de déverrouillage, déverrouillage de tous les ouvrants du véhicule.
Selon un mode de réalisation, la deuxième commande verrouille au moins un ouvrant (par exemple : tous les ouvrants) du véhicule.
Autrement dit, selon un mode de réalisation le procédé selon l’invention comprend les étapes suivantes (mises en œuvre par exemple par une serrure du véhicule automobile) : Réception de la deuxième commande, puis Sur (autrement dit : suite à la) réception de la deuxième commande, verrouillage d’au moins un ouvrant du véhicule (par exemple, de tous les ouvrants du véhicule).
En variante, la première et/ou la deuxième instruction peut entrainer l’émission d’autres commandes, par exemple une commande de déverrouillage d’un câble de charge pour les véhicules rechargeables.
Par verrouiller un ouvrant (ou verrouillage d’un ouvrant), on étend que l’ouvrant est mis dans en état (en actionnant par exemple une serrure) où l’ouvrant ne peut pas être ouvert (de l’extérieur et/ou l’intérieur du véhicule), par exemple en actionnant une poignée ou un bouton (ou plus généralement une interface homme-machine) de (autrement dit : dans) l’ouvrant.
Selon un mode de réalisation, le véhicule comprenant un extérieur et un intérieur, la deuxième commande verrouille l’ouverture du au moins un ouvrant du véhicule (par exemple verrouille l’ouverture par l’actionnement d’une poignée de porte) uniquement depuis l’extérieur (i.e. : l’ouverture de la porte depuis l’intérieur, par exemple par l’actionnement d’une poignée de porte intérieure, demeure possible, et le procédé peut comporter une étape d’ouverture depuis l’intérieur), et le procédé comprend en outre les étapes suivantes : Quatrième réception, par des communications radiofréquences en champs proche, (par exemple selon une fréquence de 13,56 mégahertz) de la deuxième instruction, depuis le deuxième émetteur-récepteur radiofréquence (220, 330) en champs proche, après (autrement dit : postérieurement à ) la deuxième réception (sans réception de la première instruction depuis le premier émetteur-récepteur entre la deuxième réception et la quatrième réception) (ou après l’envoi de la deuxième commande), puis (Suite à la quatrième réception,) Détermination d’une commande de verrouillage de l’ouverture du au moins un ouvrant depuis l’intérieur et l’extérieur, à partir de la deuxième instruction, puis Envoie de la commande de verrouillage, puis Réception de la commande de verrouillage, puis Sur (suite à la) réception de la commande de verrouillage, verrouillage de l’ouverture de au moins un ouvrant depuis l’intérieur et l’extérieur (i.e. : l’ouvrant ne peut pas être ouvert, par exemple en actionnant une poignée ou un bouton (ou plus généralement une interface homme-machine) de l’ouvrant ni depuis l’intérieur, ni depuis l’extérieur de l’ouvrant).
L’erreur entre la valeur de sortie des neurones 132 et une valeur attendue ou une valeur cible qui correspond à l’état final des neurones de la couche de sortie que l’on souhaite obtenir en relation avec les données d’entrée d’apprentissage et le problème à résoudre par le réseau est calculée. Par exemple, si le réseau doit résoudre un problème de classification, le neurone qui correspond à la classe qu’il est censé identifier dans les données d’entrée doit être celui qui a le logit maximal parmi tous les autres neurones (correspondants aux autres classes).
La illustre les principales étapes du procédé de construction d’une base de données de signatures de référence, et les principales étapes du procédé d’amélioration de la robustesse d’un réseau de neurones multicouches vis-à-vis d’une attaque antagoniste conforme à l’invention.
Ces étapes sont également illustrées par les figures 3 et 4 (pour la construction d’une base de données de signatures de référence) et par les figures 5 et 6 (pour le procédé d’amélioration de la robustesse d’un réseau de neurones multicouches, en inférence).
Une donnée d’entraînement 102 est injectée dans le réseau de neurones 100. La donnée d’entraînement peut être tout type de signal pour lequel le réseau de neurones peut être entraîné, en particulier une image 2D, une image 3D, un fichier audio.
Ainsi, notre invention permet un suivi de la totalité des parties des corps des deux utilisateurs au moyen des deux capteurs portés par les deux utilisateurs alors que le capteur d’un utilisateur ne permet pas de suivre toutes les parties de son propre corps.
L’invention permet donc de tirer bénéfice de la mutualisation des informations capturées par les casques et lunettes des utilisateurs colocalisés collaborant dans un espace de réalité virtuelle partagé. En effet, en combinant ces informations capturées, par exemple la carte de profondeur, de chaque casque ou lunettes présents, la détection et le suivi des mains d’un utilisateur est améliorés.
De plus chaque casque ou lunette capture un champ de vision ou champ visuel restreint (cf. ) se trouvant devant l’utilisateur. Ainsi quand les bras de l’utilisateur se trouvent hors du champ du capteur, par exemple de la caméra, de son casque de réalité virtuelle ou de ses lunettes de réalité augmentée, notamment le long de son corps ou dans son dos, le capteur de l’utilisateur, aussi nommé premier utilisateur, ne permet pas un suivi de ses bras. Ce suivi est rendu possible par un capteur porté par un autre utilisateur, aussi nommé deuxième utilisateur, colocalisé dont le champ visuel inclus les bras du premier utilisateur.