Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AUTOENCODER FOR A MOTOR VEHICLE WITH QUANTISATION
Document Type and Number:
WIPO Patent Application WO/2024/083740
Kind Code:
A1
Abstract:
The invention relates to a system (100) comprising an encoder (110) and a decoder (120), wherein a first portion (111) of an autoencoder convolutional neural network is embedded in the encoder and a second portion (122) of the autoencoder convolutional neural network is embedded in the decoder, wherein the encoder and the decoder are able to communicate via a communication channel (130). A latent vector from the first portion of the neural network is quantised by the encoder in order to be transmitted over the communication channel and is subsequently dequantised by the decoder prior to being processed by the second portion of the autoencoder convolutional neural network.

Inventors:
ALMEHIO YASSER (FR)
Application Number:
PCT/EP2023/078673
Publication Date:
April 25, 2024
Filing Date:
October 16, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
VALEO VISION (FR)
International Classes:
G06N3/0455; G06N3/0464; G06N3/063; G06N3/088
Foreign References:
FR3115747A12022-05-06
Other References:
ANONYMOUS: "Bus de données CAN - Wikipédia", 25 July 2022 (2022-07-25), pages 1 - 14, XP093041922, Retrieved from the Internet [retrieved on 20230425]
ANONYMOUS: "Quantification (signal) - Wikipédia", 10 February 2021 (2021-02-10), pages 1 - 4, XP093041924, Retrieved from the Internet [retrieved on 20230425]
Attorney, Agent or Firm:
LOTAUT, Jonathan (FR)
Download PDF:
Claims:
Revendications

[Revendication 1] Procédé d’encodage de données, le procédé étant mis en œuvre dans un encodeur (110) stockant des couches de neurones (111 ) comprenant une couche d’entrée (112) et au moins une couche convolutionnelle cachée (113) d’un réseau de neurones convolutionnel de type auto-encodeur, ladite couche d’entrée comprenant un premier nombre de dimensions et ladite au moins une couche convolutionnelle cachée comprenant un deuxième nombre de dimensions, le deuxième nombre de dimensions étant inférieur au premier nombre de dimensions, le procédé d’encodage comprenant les opérations suivantes :

- réception (201 ) de données d’entrée de taille égale au premier nombre de dimensions ;

- traitement (202) des données d’entrée par les couches de neurones de manière à obtenir un vecteur latent de taille égale au deuxième nombre de dimensions, chaque dimension du vecteur latent étant codée selon un premier format de codage sur N bits;

- quantification (203) de chaque dimension du vecteur latent selon un deuxième format de codage sur M bits, M étant strictement inférieur à N, pour obtenir un vecteur latent quantifié ;

- transmission (204) du vecteur latent quantifié sur un canal de communication (130) compatible avec le deuxième format de données.

[Revendication 2] Procédé de décodage de données compressées, le procédé étant mis en œuvre dans un décodeur (120) stockant des couches de neurones (122) comprenant, une couche de sortie (124) et au moins une couche convolutionnelle cachée (123) d’un réseau de neurones convolutionnel de type auto-encodeur, ladite couche de sortie comprenant un premier nombre de dimensions et ladite au moins une couche convolutionnelle cachée comprenant un deuxième nombre de dimensions, le deuxième nombre de dimensions étant inférieur au premier nombre de dimensions, le procédé de décodage comprenant les opérations suivantes :

- réception (301 ) par un canal de communication (130) d’un vecteur latent quantifié de taille égale au deuxième nombre de dimensions, chaque dimension du vecteur latent quantifié étant codée selon un deuxième format de codage sur M bits, ledit canal de communication étant compatible avec le deuxième format de codage ;

- dé-quantification (302) du vecteur latent quantifié en une estimation de vecteur latent selon un premier format de codage, dans lequel chaque dimension de l’estimation du vecteur latent est codé selon un premier format de codage sur N bits, N étant strictement supérieur à M ;

- traitement (303) du vecteur latent par les couches de neurones de manière à obtenir des données de sortie de taille égale au premier nombre de dimensions ;

- transmission (304) des données de sortie.

[Revendication 3] Procédé selon la revendication 1 ou 2, dans lequel le canal de communication (130) est un bus CAN, dans lequel le premier format de codage sur N bits est une valeur flottante sur 32 bits et dans lequel le deuxième format de codage sur M bits est une valeur entière sur 8 bits.

[Revendication 4] Procédé selon l’une des revendications précédentes, dans lequel les données d’entrée et les données de sortie sont représentatives d’une photométrie d’éclairage pour véhicule automobile.

[Revendication 5] Procédé selon l’une des revendications précédentes, comprenant en outre une étape préalable (200 ; 300) d’apprentissage non- supervisé du réseau de neurones convolutionnel auto-encodeur sur un jeu de données d’entraînement.

[Revendication 6] Programme informatique comportant des instructions pour la mise en œuvre du procédé selon l’une quelconque des revendications précédentes, lorsque ces instructions sont exécutées par un processeur (401 ; 501 ).

[Revendication 7] Encodeur (110) comprenant

- une mémoire (402) stockant des couches de neurones (111 ) comprenant une couche d’entrée (112) et au moins une couche convolutionnelle cachée (113) d’un réseau de neurones convolutionnel auto-encodeur, ladite couche d’entrée comprenant un premier nombre de dimensions et ladite au moins une couche convolutionnelle cachée comprenant un deuxième nombre de dimensions, le deuxième nombre de dimensions étant inférieur au premier nombre de dimensions ;

- une première interface (403) apte à recevoir de données d’entrée de taille égale au premier nombre de dimensions

- un processeur (401 ) configuré pour traiter des données d’entrée par les couches de neurones de manière à obtenir un vecteur latent de taille égale au deuxième nombre de dimensions, chaque dimension du vecteur latent étant codé selon un premier format de codage sur N bits, et quantifier chaque dimension du vecteur latent selon un deuxième format de codage sur M bits, M étant strictement inférieur à N, pour obtenir un vecteur latent quantifié ;

- une deuxième interface (404) apte à transmettre le vecteur latent quantifié sur un canal de communication (130) compatible avec le deuxième format de données.

[Revendication 8] Décodeur (120) comprenant

- une mémoire (502) stockant des couches de neurones (122) comprenant une couche de sortie (123) et au moins une couche convolutionnelle cachée (124) d’un réseau de neurones convolutionnel de type auto-encodeur, ladite couche de sortie comprenant un premier nombre de dimensions et ladite au moins une couche convolutionnelle cachée comprenant un deuxième nombre de dimensions, le deuxième nombre de dimensions étant inférieur au premier nombre de dimensions ;

- une première interface (503) apte à recevoir par un canal de communication d’un vecteur latent quantifié de taille égale au deuxième nombre de dimensions, chaque dimension du vecteur latent quantifié étant codée selon un deuxième format de codage sur M bits, ledit canal de communication étant compatible avec le deuxième format de codage ;

- un processeur (501 ) configuré pour dé-quantifier le vecteur latent quantifié en une estimation de vecteur latent selon un premier format de codage, dans lequel chaque dimension de l’estimation du vecteur latent est codé selon un premier format de codage sur N bits, N étant strictement supérieur à M, et pour traiter le vecteur latent par les couches de neurones de manière à obtenir des données de sortie de taille égale au premier nombre de dimensions ;

- une deuxième interface (504) apte à transmettre des données de sortie. [Revendication 9] Système comprenant un encodeur (110) selon la revendication 7 et un décodeur (120) selon la revendication 8.

[Revendication 10] Système selon la revendication 9, dans lequel l’encodeur (110) est intégré dans un module de contrôle central d’un véhicule automobile et dans lequel le décodeur (120) est intégré dans un dispositif d’éclairage du véhicule automobile.

Description:
Description

Titre de l’invention : Auto-encodeur pour véhicule automobile avec quantification

[1]La présente invention se rapporte au domaine de la compression de données, notamment de données d’images. L’invention s’applique en particulier, mais non exclusivement, à des données échangées dans ou par un véhicule automobile.

[2] Il est connu d’utiliser des systèmes auto-encodeur pour compresser des données d’entrée. Un système auto-encodeur est un réseau de neurones artificiels convolutionnel obtenu par apprentissage non- supervisé sur un jeu de données d’entraînement, comprenant une couche d’entrée et des couches convolutionnelles implémentées dans un encodeur et des couches convolutionnelles inversées et une couche de sortie implémentées dans un décodeur, la couche d’entrée et la couche de sortie ayant le même nombre de nœuds, donc le même nombre de dimensions.

[3]Le système auto-encodeur comprend ainsi une ou plusieurs couches convolutionnelles cachées, chaque couche cachée ayant un nombre de dimensions inférieur au nombre de dimensions de la couche d’entrée et de la couche de sortie.

[4]La couche cachée ayant le nombre de dimensions le plus petit, ou couche centrale, est appelée « code » ou « vecteur latent » et les données représentées dans cette couche centrale sont ainsi une version compressée des données d’entrée.

[5]L’auto-encodeur est entraîné par apprentissage non-supervisé de manière à minimiser l’erreur quadratique entre les données d’entrée et les données de sortie issues de la couche de sortie, étant donné un nombre de dimensions de la couche centrale, ou à niveau de compression donnée. [6]La couche centrale peut ainsi être mutualisée entre l’encodeur et le décodeur de manière à échanger des données compressées, permettant ainsi de réduire les besoins en débit et la quantité de données échangées entre l’encodeur et le décodeur, tout en minimisant les pertes.

[7]Toutefois, chaque dimension de la couche centrale est généralement codée en valeur flottante sur un nombre de bits important, notamment sur 32 bits. Or, un tel codage n’est pas compatible avec de nombreuses liaisons de données, notamment avec un bus CAN qui n’accepte que des données entières sur 8 bits. Pour d’autres liaisons de données qu’un bus CAN, il peut également être requis de compresser encore plus les données de la couche centrale.

[8]A cet effet un premier aspect de l’invention concerne un procédé d’encodage de données, le procédé étant mis en œuvre dans un encodeur stockant des couches de neurones comprenant une couche d’entrée et au moins une couche convolutionnelle cachée d’un réseau de neurones convolutionnel de type auto-encodeur, la couche d’entrée comprenant un premier nombre de dimensions et ladite au moins une couche convolutionnelle cachée comprenant un deuxième nombre de dimensions, le deuxième nombre de dimensions étant inférieur au premier nombre de dimensions, le procédé d’encodage comprenant les opérations suivantes :

- réception de données d’entrée de taille égale au premier nombre de dimensions ;

- traitement des données d’entrée par les couches de neurones de manière à obtenir un vecteur latent de taille égale au deuxième nombre de dimensions, chaque dimension du vecteur latent étant codée selon un premier format de codage sur N bits;

- quantification de chaque dimension du vecteur latent selon un deuxième format de codage sur M bits, M étant strictement inférieur à N, pour obtenir un vecteur latent quantifié ;

- transmission du vecteur latent quantifié sur un canal de communication compatible avec le deuxième format de données. [9]Ainsi, l’ajout d’une quantification permet de transmettre le vecteur latent quantifié à n’importe quel canal de communication, y compris des canaux ayant des débits restreints, ou n’acceptant des données que sur 8 bits, comme c’est pas exemple le cas d’un bus CAN, le vecteur quantifié ayant une taille réduite par rapport aux données d’entrée. Une telle adaptation n’induit en pratique pas de dégradation, ou une dégradation très faible, d’indicateurs de qualité de compression des données d’entrée.

[10]Un deuxième aspect de l’invention concerne un procédé de décodage de données compressées, le procédé étant mis en œuvre dans un décodeur stockant des couches de neurones comprenant, une couche de sortie et au moins une couche cachée d’un réseau de neurones convolutionnel de type auto-encodeur, la couche de sortie comprenant un premier nombre de dimensions et ladite au moins une couche convolutionnelle cachée comprenant un deuxième nombre de dimensions, le deuxième nombre de dimensions étant inférieur au premier nombre de dimensions, le procédé de décodage comprenant les opérations suivantes :

- réception par un canal de communication d’un vecteur latent quantifié de taille égale au deuxième nombre de dimensions, chaque dimension du vecteur latent quantifié étant codée selon un deuxième format de codage sur M bits, le canal de communication étant compatible avec le deuxième format de codage ;

- dé-quantification du vecteur latent quantifié en une estimation de vecteur latent selon un premier format de codage, dans lequel chaque dimension de l’estimation du vecteur latent est codé selon un premier format de codage sur N bits, N étant strictement supérieur à M ;

- traitement du vecteur latent par les couches de neurones de manière à obtenir des données de sortie de taille égale au premier nombre de dimensions ;

- transmission des données de sortie.

[11 ]Selon des modes de réalisation du premier aspect ou du deuxième aspect, le canal de communication peut être un bus CAN, le premier format de codage sur N bits peut être une valeur flottante sur 32 bits et le deuxième format de codage sur M bits peut être une valeur entière sur 8 bits.

[12]Un bus CAN présente l’avantage d’être une liaison sécurisée et peu chère, utilisée par ailleurs dans de nombreux équipements, notamment dans les véhicules automobiles.

[13]Selon des modes de réalisation du premier aspect ou du deuxième aspect, les données d’entrée et les données de sortie peuvent être représentatives d’une photométrie d’éclairage pour véhicule automobile.

[14]ll est ainsi rendu possible d’utiliser le réseau de neurones convolutionnel auto-encodeur pour transmettre des commandes d’éclairage, sous la forme de photométrie d’éclairage notamment, ce qui est particulièrement avantageux dans un véhicule automobile.

[15]Selon des modes de réalisation du premier aspect ou du deuxième aspect, le procédé peut comprendre en outre une étape préalable d’apprentissage non-supervisé du réseau de neurones convolutionnel auto-encodeur sur un jeu de données d’entraînement.

[16]Un tel apprentissage machine permet d’obtenir une qualité de compression élevée, avec une erreur quadratique faible entre les données d’entrée et les données de sortie.

[17]Un troisième aspect de l’invention concerne un programme informatique comportant des instructions pour la mise en œuvre du procédé selon le premier aspect ou le deuxième aspect de l’invention, lorsque ces instructions sont exécutées par un processeur.

[18]Un quatrième aspect de l’invention concerne un encodeur comprenant :

- une mémoire stockant des couches de neurones comprenant une couche d’entrée et au moins une couche convolutionnelle cachée d’un réseau de neurones convolutionnel auto-encodeur, ladite couche d’entrée comprenant un premier nombre de dimensions et ladite au moins une couche convolutionnelle cachée comprenant un deuxième nombre de dimensions, le deuxième nombre de dimensions étant inférieur au premier nombre de dimensions ;

- une première interface apte à recevoir de données d’entrée de taille égale au premier nombre de dimensions

- un processeur configuré pour traiter des données d’entrée par les couches de neurones de manière à obtenir un vecteur latent de taille égale au deuxième nombre de dimensions, chaque dimension du vecteur latent étant codée selon un premier format de codage sur N bits, et quantifier chaque dimension du vecteur latent selon un deuxième format de codage sur M bits, M étant strictement inférieur à N, pour obtenir un vecteur latent quantifié ;

- une deuxième interface apte à transmettre le vecteur latent quantifié sur un canal de communication compatible avec le deuxième format de données.

[19]Un cinquième aspect de l’invention concerne un décodeur comprenant :

- une mémoire stockant des couches de neurones comprenant une couche de sortie et au moins une couche convolutionnelle cachée d’un réseau de neurones convolutionnel de type auto-encodeur, ladite couche de sortie comprenant un premier nombre de dimensions et ladite au moins une couche convolutionnelle cachée comprenant un deuxième nombre de dimensions, le deuxième nombre de dimensions étant inférieur au premier nombre de dimensions ;

- une première interface apte à recevoir par un canal de communication d’un vecteur latent quantifié de taille égale au deuxième nombre de dimensions, chaque dimension du vecteur latent quantifié étant codée selon un deuxième format de codage sur M bits, ledit canal de communication étant compatible avec le deuxième format de codage ;

- un processeur configuré pour dé-quantifier le vecteur latent quantifié en une estimation de vecteur latent selon un premier format de codage, dans lequel chaque dimension de l’estimation du vecteur latent est codé selon un premier format de codage sur N bits, N étant strictement supérieur à M, et pour traiter le vecteur latent par les couches de neurones de manière à obtenir des données de sortie de taille égale au premier nombre de dimensions ;

- une deuxième interface apte à transmettre des données de sortie. [20]Un sixième aspect de l’invention concerne un système comprenant un encodeur selon le quatrième aspect de l’invention et un décodeur selon le cinquième aspect de l’invention.

[21 ]Selon un mode de réalisation, l’encodeur peut être intégré dans un module de contrôle central d’un véhicule automobile et le décodeur peut être intégré dans un dispositif d’éclairage du véhicule automobile.

[22]D’autres caractéristiques et avantages de l’invention apparaîtront à l’examen de la description détaillée ci-après, et des dessins annexés sur lesquels :

[23][Fig 1 ] illustre un système auto-encodeur selon des modes de réalisation de l’invention;

[24][Fig 2] est un diagramme illustrant les étapes d’un procédé de traitement de données d’entrée selon des modes de réalisation de l’invention;

[25][Fig 3] est un diagramme illustrant les étapes d’un procédé de décodage de données selon des modes de réalisation de l’invention ;

[26][Fig 4] illustre une structure d’un encodeur selon des modes de réalisation de l’invention ;

[27][Fig 5] illustre une structure d’un décodeur selon des modes de réalisation de l’invention.

[28]La description se concentre sur les caractéristiques qui démarquent les procédés, le système, l’encodeur et le décodeur de ceux connus dans l’état de l’art.

[29]La figure 1 illustre un système auto-encodeur 100 selon des modes de réalisation de l’invention.

[30]Le système 100 comprend un encodeur 110 et un décodeur 120, reliés par un canal de communication 130.

[31 ]L’encodeur 110 peut être intégré dans un équipement d’un véhicule automobile, tel qu’un module de contrôle en charge de l’éclairage du véhicule automobile. Un tel module de contrôle peut être de type PCM, pour « Powertrain Control Module » en anglais, ou ECU, pour « Electronic Control Unit » en anglais, par exemple.

[32]Le décodeur 120 peut quant à lui être intégré dans un équipement d’un véhicule automobile, tel qu’un dispositif d’éclairage comprenant des modules d’éclairage aptes à réaliser des fonctions d’éclairage en fonction de données communiquées par le module de contrôle comprenant l’encodeur 110. De manière préférentielle, au moins un module d’éclairage du dispositif d’éclairage est un module pixelisé, par exemple avec une matrice d’éléments électroluminescents tels que des LEDs, avec une matrice de micro-miroirs, de type DMD pour « Digital Micromirror Devices » en anglais, une source monolithique d’éléments électroluminescents sur un même substrat, ou toute autre technologie permettant la réalisation d’un faisceau d’éclairage pixelisé. Une source monolithique implique une pluralité d’éléments semi-conducteurs électroluminescents à dimensions submillimétriques, épitaxiés directement sur un substrat commun, le substrat étant généralement formé de silicium. A l’opposé de matrices de LEDs conventionnelles, dans lesquelles chaque source lumineuse élémentaire est un composant électronique produit de manière individuelle et monté sur un substrat tel qu’un circuit imprimé, PCB, une source monolithique est à considérer comme un composant électronique unique, lors de la production duquel plusieurs plages de jonctions semi-conductrices électroluminescentes sont générées sur un substrat commun, sous forme d’une matrice.

[33]Le canal de communication 130 peut ainsi être une liaison filaire telle qu’un bus CAN ou une liaison Ethernet. Dans ce qui suit, l’exemple d’un bus CAN est considéré à titre illustratif. Il présente l’avantage d’être une liaison sécurisée et peu chère. Toutefois, un bus CAN impose de transmettre des données sous forme d’entiers codés sur 8 bits.

[34]En variante, l’encodeur est intégré dans un module de contrôle du véhicule automobile et le décodeur 120 est intégré dans un serveur distant du véhicule automobile. Dans ce cas, le canal de communication comprend un canal de communication sans fil permettant à l’encodeur d’accéder à un réseau IP dans lequel se trouve le serveur distant comprenant le décodeur 120. Un tel canal de communication sans fil peut être une liaison cellulaire de type 3G, 4G, 5G ou toute génération suivante.

[35]Aucune restriction n’est attachée au canal de communication 130, qui peut ainsi être une liaison filaire ou sans fil. Comme il sera mieux compris à la lecture de ce qui suit, la plupart des canaux de communication sont contraints en débit et/ou en format de codage des données qu’ils transmettent.

[36]Selon l’invention, l’encodeur et le décodeur comprennent chacun une partie d’un réseau de neurones convolutionnel de type auto-encodeur. L’encodeur 110 comprend ainsi une première partie 112 du réseau de neurones convolutionnel auto-encodeur tandis que le décodeur 120 comprend une deuxième partie 122 du réseau de neurones convolutionnel auto-encodeur.

[37]Comme précédemment expliqué, le réseau de neurones convolutionnel auto-encodeur est obtenu par apprentissage non supervisé sur un jeu de données d’entraînement.

[38]Dans l’exemple considéré ici, dans lequel l’encodeur est intégré dans un PCM ou ECU d’un véhicule automobile, et le décodeur est intégré dans un dispositif d’éclairage, les données d’entrée du réseau de neurones convolutionnel auto-encodeur sont des images représentatives du faisceau lumineux à réaliser par le dispositif d’éclairage. De telles images sont également appelées photométries.

[39]Toutefois, aucune restriction n’est attachée aux données d’entrée qui peuvent être tout type d’image. Par exemple, dans l’exemple dans lequel le décodeur 120 est situé dans un serveur distant, les données d’entrée peuvent être des images acquises par une caméra du véhicule.

[40]Un système auto-encodeur est apte à compresser de telles données d’entrée. A cet effet, il est construit par apprentissage non-supervisé sur un jeu de données d’entraînement. Il comprend une couche d’entrée 112 implémentée dans l’encodeur 110 et une couche de sortie 124 implémentée dans un décodeur 120, la couche d’entrée et la couche de sortie ayant le même nombre de nœuds, donc le même nombre de dimensions.

[41 ]Le système auto-encodeur comprend en outre une ou plusieurs couches convolutionnelles cachées, chaque couche convolutionnelle cachée ayant un nombre de dimensions inférieur au nombre de dimensions de la couche d’entrée 112 et de la couche de sortie 124.

[42]Les couches convolutionnelles cachées ayant le nombre de dimensions le plus petit, ou couches centrales, sont aptes à échanger un « code » ou « vecteur latent » et les données échangées entre ces couches centrales sont ainsi une version compressée des données d’entrée.

[43]Les couches centrales peuvent ainsi être mutualisées entre l’encodeur 112 et le décodeur 123 de manière à échanger des données compressées, permettant ainsi de réduire les besoins en débit et la quantité de données échangées entre l’encodeur et le décodeur, tout en minimisant les pertes. La première partie 111 comprend ainsi une couche centrale d’encodage 113 et la deuxième partie 122 comprend une couche centrale de décodage 123. La couche centrale d’encodage 113 et la couche centrale de décodage 123 sont aptes à échanger un code ou vecteur latent comprenant un nombre de dimensions inférieur aux données d’entrée. Le vecteur latent est ainsi une version compressée des données d’entrée.

[44]L’auto-encodeur est entraîné par apprentissage non-supervisé de manière à minimiser l’erreur quadratique entre les données d’entrée et les données de sortie issues de la couche de sortie, étant donné un nombre de dimensions des couches centrales, ou à niveau de compression donnée.

[45]A cet effet, un jeu de données d’entraînement peut être soumis à l’auto- encodeur. Le jeu de données d’entraînement peut comprendre un ensemble d’images, tels que des photométries d’éclairage pour véhicule dans l’exemple considéré ici. Pour chaque image du jeu de données d’entraînement, l’auto-encodeur évalue l’erreur quadratique entre l’image soumise à la couche d’entrée et l’image fournie par la couche de sortie, après traitement par l’auto-encodeur, et fait varier les coefficients de ses neurones ainsi que le nombre de neurones, voire le nombre de couches convolutionnelles cachées, en fonction de cette erreur quadratique, tout en conservant une contrainte pour obtenir un vecteur latent ayant un nombre de dimensions données. Le but est ainsi de minimiser l’erreur quadratique par apprentissage.

[46]Le vecteur latent est une version compressée des données d’entrée, avec un taux de compression CR selon la formule suivante :

CR= (Nbits*lm_Size - NbitsLV*LVdim) / Nbits*lm_Size ; dans laquelle Nbits est le nombre de bits sur lequel est codé chaque pixel de l’image d’entrée, lm_Size est la taille de l’image en nombre de pixels, NbitsLV est le nombre de bits codant chaque dimension du vecteur latent, qui est fixe et généralement égal à 32bits, et LVdim est le nombre de dimensions du vecteur latent.

[47]De manière plus générale, Nbits*lm_Size représente la taille en nombre de bits des données d’entrée.

[48]Pour une taille d’image donnée, le taux de compression CR peut ainsi varier en faisant varier le nombre de dimensions LVdim du vecteur latent.

[49]Les taux de compression suivants peuvent notamment être obtenus :

- CR = 92 % pour LVdim = 516 ;

- CR = 84 % pour LVdim = 1024 ;

- CR = 52 % pour LVdim = 3072.

[50]Ainsi, plus le nombre de dimensions du vecteur latent est faible, plus le taux de compression CR est élevé. La sélection d’un taux de compression peut dépendre d’indicateurs de qualité comparant les données de sortie avec les données d’entrée. De tels indicateurs peuvent comprendre un rapport signal à bruit de crête, ou PSNR pour « Peak Signal to Noise Ratio » en anglais, ou une erreur moyenne quadratique, ou MSE pour « Mean Square Error » par exemple.

[51 ]Par exemple, un nombre de dimensions du vecteur latent assurant un PSNR supérieur à un seuil donné, tel que 30 par exemple, pourra être fixé. [52]La première partie 111 et la deuxième partie 122 du réseau de neurones convolutionnel auto-encodeur sont ainsi obtenues, et peuvent être implémentées respectivement dans l’encodeur 110 et le décodeur 120. L’auto-encodeur est ainsi réalisé en agençant un canal de communication entre la première partie 111 et la deuxième partie 122.

[53]Chaque dimension du vecteur latent est généralement une valeur flottante codée sur 32 bit, soit un premier format de codage. Une telle valeur est incompatible avec de nombreux canaux de communication, notamment avec un bus CAN qui ne peut transporter que des valeurs entières sur 8 bits.

[54]L’invention propose, afin de pallier à ce problème, d’intégrer un module de quantification 114 dans l’encodeur 110 et un module de déquantification 121 dans le décodeur 120.

[55]Le module de quantification 114 est apte à transformer chaque dimension du vecteur latent du premier format de codage sur N bits, notamment sur 32 bits en valeur flottante, à un deuxième format de codage sur M bits, M étant inférieur à N, avec notamment M=8 pour coder une valeur entière, ou en variante M=16. Le deuxième format de codage est un format de codage compatible avec le canal de communication 130.

[56]En l'occurrence, un deuxième format de codage correspondant à des valeurs entières de 8 bits est compatible avec un bus CAN.

[57]Un exemple de quantification est donné ci-après dans le mode de réalisation spécifique correspondant au passage d’une valeur flottante de 32 bits à une valeur entière sur 8 bits, à titre illustratif uniquement.

[58]Soit un vecteur latent selon le premier format de codage suivant v= [0,1 ; 0,2 ; 0,3], avec trois dimensions, chaque dimension étant une valeur flottante sur 32 bits, comprise entre 0 (vmin) et 0,5 (vmax).

[59]Le module de quantification 114 est donc apte à fournir un vecteur latent quantifié, ayant LVdim dimensions, chaque dimension étant codée selon le deuxième format de codage compatible avec le canal de communication 130.

[60]Le vecteur latent quantifié est obtenu de la manière suivante : Qv= arrondi (v/qscale - qzero) ; dans lequel arrondi() est la fonction permettant de transformer une valeur flottante en une valeur entière par arrondi ; qscale = vmax - vmin ; et qzero = 255 - vmax/qscale.

[61]On obtient ainsi, dans l’exemple donné ci-dessus, le vecteur latent quantifié suivant : Qv = [51 ; 102 ; 153],

[62]Le vecteur latent quantifié Qv peut ainsi être transmis au décodeur 120 via le canal de communication 130.

[63]Sur réception du vecteur latent quantifié Qv, le module de déquantification 121 applique la transformation inverse du module de quantification 112, afin d’obtenir une estimation du vecteur latent, ayant LVdim dimensions et chaque dimension étant selon le premier format de codage. L’estimation du vecteur latent est ainsi fournie en entrée de la deuxième partie 122 du réseau de neurones convolutionnel autoencodeur afin de déterminer des données de sortie. Le réseau de neurones convolutionnel ayant été entraîné par apprentissage machine, les données de sortie sont proches des données d’entrée, et ce malgré la différence entre le vecteur latent issu de la première partie 111 et l’estimation du vecteur latent issu du module de dé-quantification 121.

[64]L’ ajout d’un module de quantification permet de rendre compatible l’utilisation d’un auto-encodeur avec la plupart des canaux de communication, notamment avec un bus CAN. Qui plus est, une telle compatibilité est permise tout en maintenant des indicateurs de qualité élevés pour la compression des données d’entrée.

[65]Les niveaux de compression suivants peuvent être obtenus par le système de la figure 1 avec quantification :

- CR = 98 % pour LVdim = 516 ; - CR = 96 % pour LVdim = 1024 ;

- CR = 88 % pour LVdim = 3072.

[66]En pratique, les indicateurs de qualité de compression tels que le PSNR et le MSE sont maintenus à des niveaux aussi élevés, ou presque aussi élevés, qu’un système auto-encodeur sans quantification.

[67]Ainsi, le système selon l’invention permet une compatibilité d’un réseau de neurones convolutionnel auto-encodeur avec tout type de canal de communication, notamment avec un bus CAN, en augmentant le taux de compression, tout en maintenant des indicateurs de qualité de compression élevés, ce qui permet de minimiser les pertes sur les données de sortie.

[68]La figure 2 présente un procédé de traitement de données d’entrée, mis en œuvre par l’encodeur 110 décrit précédemment en référence à la figure 1 .

[69]Le procédé comprend une étape préalable 200 de stockage de la première partie 111 du réseau de neurones convolutionnel autoencodeur dans une mémoire de l’encodeur 110. L’étape préalable 200 peut en outre comprendre le procédé d’apprentissage permettant d’obtenir le réseau de neurones convolutionnel auto-encodeur, comprenant la première partie 111 et la deuxième partie 122.

[70]Le procédé comprend en outre une étape 201 de réception de données d’entrée par la couche d’entrée 112. Comme décrit précédemment, les données d’entrée peuvent être des données représentatives d’une image, telle qu’une photométrie de dispositif d’éclairage pour véhicule automobile.

[71 ]A une étape 202, les données d’entrée sont traitées par la première partie 111 et un vecteur latent est obtenu en sortie de la première couche centrale d’encodage 113, tel que précédemment décrit.

[72]A une étape 203, chaque dimension du vecteur latent est quantifiée dans le deuxième format de codage par le module de quantification 114, tel que précédemment décrit, afin d’obtenir un vecteur latent quantifié compatible avec une transmission sur le canal de communication 130.

[73]A une étape 204, le vecteur latent quantifié est transmis sur le canal de communication 130 par l’encodeur 110.

[74]La figure 3 présente un procédé de décodage de données, mis en œuvre par le décodeur 120 décrit précédemment en référence à la figure 1 .

[75]Le procédé comprend une étape préalable 300 de stockage de deuxième partie 122 du réseau de neurones convolutionnel autoencodeur dans une mémoire du décodeur 120. L’étape préalable 200 peut en outre comprendre le procédé d’apprentissage permettant d’obtenir le réseau de neurones convolutionnel auto-encodeur, comprenant la première partie 111 et la deuxième partie 122.

[76]A une étape 301 , le module de dé-quantification 121 reçoit le vecteur latent quantifié. A une étape 302, le module de dé-quantification 121 détermine une estimation du vecteur latent à partir du vecteur latent quantifié, chaque dimension de l’estimation du vecteur latent étant dans le premier format de codage, par exemple une valeur flottante de 32 bits. Cette étape permet donc de passer du deuxième format de codage au premier format de codage.

[77]A une étape 303, la deuxième partie 122 du réseau de neurones convolutionnel auto-encodeur traite l’estimation du vecteur latent afin d’obtenir des données de sortie, les données de sortie ayant le même nombre de dimensions que les données d’entrées de l’étape 201 du procédé selon la figure 2.

[78]Les données de sortie peuvent être transmises par le décodeur 120 à une étape 304. Par exemple, le décodeur peut transmettre les données de sortie à une mémoire pour stockage. De manière avantageuse dans le mode de réalisation dans lequel l’encodeur 110 est intégré dans un PCM et le décodeur 120 est intégré dans un dispositif de signalisation, les données de sortie peuvent être transmises à un module de commande de sources lumineuses pour réalisation de la photométrie correspondant aux données de sortie. [79]L’invention concerne également un procédé comprenant à la fois les étapes du procédé de la figure 2 mais également les étapes du procédé de la figure 3, l’étape de réception 300 consistant à recevoir le vecteur latent quantifié transmis à l’étape 204.

[80]La figure 4 illustre la structure d’un encodeur 110 selon des modes de réalisation de l’invention.

[81 ]L’encodeur 110 comprend un processeur 401 configuré pour communiquer de manière unidirectionnelle ou bidirectionnelle, via un ou des bus ou via une connexion filaire, avec une mémoire 402 telle qu’une mémoire de type « Random Access Memory », RAM, ou une mémoire de type « Read Only Memory », ROM, ou tout autre type de mémoire (Flash, EEPROM, etc). En variante, la mémoire 402 comprend plusieurs mémoires des types précités. De manière préférentielle, la mémoire 402 est une mémoire non volatile.

[82]La mémoire 402 stocke, de manière permanente ou temporaire, l’ensemble des données générées suite à la mise en œuvre des étapes 201 à 204 du procédé de traitement de données décrit ci-dessus, et peut stocker la première partie 111 du réseau de neurones convolutionnel lors de l’étape 200.

[83]Le processeur 401 est apte à exécuter des instructions, stockées dans la mémoire 402, pour la mise en œuvre des étapes 202 et 203 du procédé illustré en référence à la figure 2. De manière alternative, le processeur 401 peut être remplacé par un microcontrôleur conçu et configuré pour réaliser les étapes 202 et 203 du procédé selon la figure 3.

[84]Le module de quantification 114 présenté précédemment est ainsi réalisé par le processeur 401 ou le microcontrôleur. Encore en variante, un processeur ou un micro-contrôleur dédié à la fonction de quantification est prévu en plus du processeur 401 , qui réalise ainsi le traitement par la première partie du réseau de neurones convolutionnel auto-encodeur.

[85]L’encodeur 110 peut comprendre une interface d’entrée 403 apte à obtenir les données d’entrée lors de l’étape 201 décrite précédemment. Aucune restriction n’est attachée à la première interface d’entrée 403 qui peut être une interface filaire par exemple, ou alternativement sans fil.

[86]L’encodeur 110 peut comprendre en outre une deuxième interface, de sortie, 404 apte à transmettre le vecteur latent quantifié, lors de l’étape 204 décrite précédemment. La deuxième interface 404 est ainsi reliée fonctionnellement au canal de communication 130.

[87]La figure 5 illustre la structure d’un décodeur 120 selon des modes de réalisation de l’invention.

[88]Le décodeur 120 comprend un processeur 501 configuré pour communiquer de manière unidirectionnelle ou bidirectionnelle, via un ou des bus ou via une connexion filaire, avec une mémoire 502 telle qu’une mémoire de type « Random Access Memory », RAM, ou une mémoire de type « Read Only Memory », ROM, ou tout autre type de mémoire (Flash, EEPROM, etc). En variante, la mémoire 502 comprend plusieurs mémoires des types précités. De manière préférentielle, la mémoire 502 est une mémoire non volatile.

[89]La mémoire 502 est apte à stocker, de manière permanente ou temporaire, l’ensemble des données générées suite à la mise en œuvre des étapes 301 à 304 du procédé de décodage de données décrit ci- dessus, et peut stocker la deuxième partie 122 du réseau de neurones convolutionnel lors de l’étape 300.

[90]Le processeur 501 est apte à exécuter des instructions, stockées dans la mémoire 502, pour la mise en œuvre des étapes 302 et 303 du procédé illustré en référence à la figure 3. De manière alternative, le processeur 501 peut être remplacé par un microcontrôleur conçu et configuré pour réaliser les étapes 302 et 303 du procédé selon la figure 3.

[91 ]Le module de dé-quantification 121 présenté précédemment est ainsi réalisé par le processeur 501 ou le microcontrôleur. Encore en variante, un processeur ou un micro-contrôleur dédié à la fonction de déquantification est prévu en plus du processeur 501 , qui réalise ainsi le traitement par la deuxième partie 122 du réseau de neurones convolutionnel auto-encodeur. [92]Le décodeur 120 peut comprendre une interface d’entrée 503 apte à recevoir le vecteur latent quantifié, lors de l’étape 301 décrite précédemment. Aucune restriction n’est attachée à la première interface d’entrée 503, qui est reliée fonctionnellement au canal de communication 130 décrit précédemment.

[93]Le décodeur 120 peut comprendre en outre une deuxième interface, de sortie, 504 apte à transmettre les données de sortie, lors de l’étape 304 décrite précédemment.

[94]La présente invention ne se limite pas aux formes de réalisation décrites ci-avant à titre d’exemples ; elle s’étend à d’autres variantes.