EP4602517A1 - Auto-encodeur pour véhicule automobile avec quantification - Google Patents
Auto-encodeur pour véhicule automobile avec quantificationInfo
- Publication number
- EP4602517A1 EP4602517A1 EP23790014.7A EP23790014A EP4602517A1 EP 4602517 A1 EP4602517 A1 EP 4602517A1 EP 23790014 A EP23790014 A EP 23790014A EP 4602517 A1 EP4602517 A1 EP 4602517A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- dimensions
- latent vector
- encoder
- coding format
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
Definitions
- the present invention relates to the field of data compression, in particular image data.
- the invention applies in particular, but not exclusively, to data exchanged in or by a motor vehicle.
- An auto-encoder system is a convolutional artificial neural network obtained by unsupervised learning on a training dataset, comprising an input layer and convolutional layers implemented in an encoder and inverted convolutional layers and a decoding layer. output implemented in a decoder, the input layer and the output layer having the same number of nodes, therefore the same number of dimensions.
- the auto-encoder system thus comprises one or more hidden convolutional layers, each hidden layer having a number of dimensions less than the number of dimensions of the input layer and the output layer.
- the hidden layer with the smallest number of dimensions, or central layer is called the “code” or “latent vector” and the data represented in this central layer is thus a compressed version of the input data.
- the autoencoder is trained by unsupervised learning so as to minimize the squared error between the input data and the output data from the output layer, given a number of dimensions of the layer central, or at a given compression level.
- the central layer can thus be shared between the encoder and the decoder so as to exchange compressed data, thus making it possible to reduce the bandwidth requirements and the quantity of data exchanged between the encoder and the decoder, while minimizing the loss.
- each dimension of the central layer is generally encoded as a float value over a large number of bits, notably over 32 bits.
- such coding is not compatible with many data links, in particular with a CAN bus which only accepts 8-bit integer data.
- data links other than a CAN bus it may also be required to compress the core layer data even further.
- a first aspect of the invention relates to a data encoding method, the method being implemented in an encoder storing layers of neurons comprising an input layer and at least one hidden convolutional layer d 'a convolutional neural network of auto-encoder type, the input layer comprising a first number of dimensions and said at least one hidden convolutional layer comprising a second number of dimensions, the second number of dimensions being less than the first number of dimensions , the encoding process comprising the following operations:
- a second aspect of the invention relates to a method for decoding compressed data, the method being implemented in a decoder storing layers of neurons comprising, an output layer and at least one hidden layer of a network of convolutional neurons of auto-encoder type, the output layer comprising a first number of dimensions and said at least one hidden convolutional layer comprising a second number of dimensions, the second number of dimensions being less than the first number of dimensions, the decoding method including the following operations:
- a CAN bus has the advantage of being a secure and inexpensive connection, also used in numerous equipment, notably in motor vehicles.
- the input data and the output data may be representative of lighting photometry for a motor vehicle.
- the method may further comprise a prior step of unsupervised learning of the auto-encoder convolutional neural network on a training data set.
- a third aspect of the invention relates to a computer program comprising instructions for implementing the method according to the first aspect or the second aspect of the invention, when these instructions are executed by a processor.
- a fourth aspect of the invention relates to an encoder comprising:
- a memory storing layers of neurons comprising an input layer and at least one hidden convolutional layer of an auto-encoder convolutional neural network, said input layer comprising a first number of dimensions and said at least one convolutional layer hidden comprising a second number of dimensions, the second number of dimensions being less than the first number of dimensions;
- a processor configured to process input data by the layers of neurons so as to obtain a latent vector of size equal to the second number of dimensions, each dimension of the latent vector being coded according to a first N-bit coding format, and quantify each dimension of the latent vector according to a second coding format on M bits, M being strictly less than N, to obtain a quantized latent vector;
- a fifth aspect of the invention relates to a decoder comprising:
- a memory storing layers of neurons comprising an output layer and at least one hidden convolutional layer of a convolutional neural network of the auto-encoder type, said output layer comprising a first number of dimensions and said at least one convolutional layer hidden comprising a second number of dimensions, the second number of dimensions being less than the first number of dimensions;
- a first interface capable of receiving through a communication channel a quantized latent vector of size equal to the second number of dimensions, each dimension of the quantized latent vector being coded according to a second coding format on M bits, said communication channel being compatible with the second coding format;
- a processor configured to de-quantize the quantized latent vector into a latent vector estimate according to a first coding format, in which each dimension of the latent vector estimate is coded according to a first N-bit coding format, N being strictly greater than M, and to process the latent vector by the layers of neurons so as to obtain output data of size equal to the first number of dimensions;
- a sixth aspect of the invention relates to a system comprising an encoder according to the fourth aspect of the invention and a decoder according to the fifth aspect of the invention.
- the encoder can be integrated into a central control module of a motor vehicle and the decoder can be integrated into a lighting device of the motor vehicle.
- FIG. 1 illustrates an auto-encoder system according to embodiments of the invention
- FIG. 24 is a diagram illustrating the steps of an input data processing method according to embodiments of the invention.
- FIG. 25 is a diagram illustrating the steps of a data decoding method according to embodiments of the invention.
- FIG. 26 [26][Fig 4] illustrates a structure of an encoder according to embodiments of the invention
- FIG. 1 illustrates a structure of a decoder according to embodiments of the invention.
- Figure 1 illustrates an auto-encoder system 100 according to embodiments of the invention.
- the system 100 includes an encoder 110 and a decoder 120, connected by a communication channel 130.
- the encoder 110 can be integrated into equipment of a motor vehicle, such as a control module responsible for the lighting of the motor vehicle.
- a control module can be of the PCM type, for “Powertrain Control Module” in English, or ECU, for “Electronic Control Unit” in English, for example.
- the decoder 120 can for its part be integrated into equipment of a motor vehicle, such as a lighting device comprising lighting modules capable of performing lighting functions based on data communicated by the control module comprising the encoder 110.
- a lighting device comprising lighting modules capable of performing lighting functions based on data communicated by the control module comprising the encoder 110.
- at least one lighting module of the lighting device is a pixelated module, for example with a matrix of electroluminescent elements such as LEDs, with a matrix of micro- mirrors, of the DMD type for “Digital Micromirror Devices” in English, a monolithic source of electroluminescent elements on the same substrate, or any other technology allowing the production of a pixelated lighting beam.
- a monolithic source involves a plurality of electroluminescent semiconductor elements with submillimeter dimensions, epitaxied directly on a common substrate, the substrate generally being made of silicon.
- each elementary light source is an electronic component produced individually and mounted on a substrate such as a printed circuit, PCB
- a monolithic source is to be considered as a single electronic component, during the production of which several areas of light-emitting semiconductor junctions are generated on a common substrate, in the form of a matrix.
- the communication channel 130 can thus be a wired link such as a CAN bus or an Ethernet link.
- a wired link such as a CAN bus or an Ethernet link.
- a CAN bus is considered for illustrative purposes. It has the advantage of being a secure and inexpensive connection.
- a CAN bus requires transmitting data in the form of 8-bit coded integers.
- the encoder is integrated into a control module of the motor vehicle and the decoder 120 is integrated into a remote server of the motor vehicle.
- the communication channel includes a wireless communication channel allowing the encoder to access an IP network in which the remote server is located comprising the decoder 120.
- a wireless communication channel may be a cellular link of the 3G, 4G, 5G or any subsequent generation type.
- the encoder and the decoder each comprise a part of a convolutional neural network of the auto-encoder type.
- the encoder 110 thus comprises a first part 112 of the auto-encoder convolutional neural network while the decoder 120 comprises a second part 122 of the auto-encoder convolutional neural network.
- the auto-encoder convolutional neural network is obtained by unsupervised learning on a training dataset.
- the input data of the convolutional neural network autoencoder are images representative of the light beam to be produced by the lighting device. Such images are also called photometrics.
- the input data which can be any type of image.
- the input data may be images acquired by a vehicle camera.
- An auto-encoder system is capable of compressing such input data. For this purpose, it is built by unsupervised learning on a training dataset. It includes an input layer 112 implemented in the encoder 110 and an output layer 124 implemented in a decoder 120, the input layer and the layer of output having the same number of nodes, therefore the same number of dimensions.
- the auto-encoder system further comprises one or more hidden convolutional layers, each hidden convolutional layer having a number of dimensions less than the number of dimensions of the input layer 112 and the output layer 124.
- the hidden convolutional layers having the smallest number of dimensions, or central layers, are able to exchange a “code” or “latent vector” and the data exchanged between these central layers is thus a compressed version of the data of entrance.
- the central layers can thus be shared between the encoder 112 and the decoder 123 so as to exchange compressed data, thus making it possible to reduce the bandwidth requirements and the quantity of data exchanged between the encoder and the decoder, while minimizing losses.
- the first part 111 thus comprises a central encoding layer 113 and the second part 122 comprises a central decoding layer 123.
- the central encoding layer 113 and the central decoding layer 123 are capable of exchanging a code or latent vector comprising a number of dimensions less than the input data.
- the latent vector is thus a compressed version of the input data.
- the autoencoder is trained by unsupervised learning so as to minimize the squared error between the input data and the output data from the output layer, given a number of dimensions of the central layers , or at a given compression level.
- a training dataset can be submitted to the autoencoder.
- the training dataset may include a set of images, such as vehicle lighting photometries in the example considered here.
- the autoencoder evaluates the squared error between the image submitted to the input layer and the image provided by the output layer, after processing by the autoencoder, and varies the coefficients of its neurons as well as the number of neurons, or even the number of hidden convolutional layers, as a function of this quadratic error, while retaining a constraint to obtain a latent vector having a number of given dimensions. The goal is thus to minimize the quadratic error by learning.
- the latent vector is a compressed version of the input data, with a compression rate CR according to the following formula:
- Nbits*lm_Size represents the size in number of bits of the input data.
- the compression rate CR can thus vary by varying the number of LVdim dimensions of the latent vector.
- [50]Thus the lower the number of dimensions of the latent vector, the higher the CR compression rate. Selecting a compression rate may depend on quality metrics comparing output data with input data. Such indicators may include a peak signal to noise ratio, or PSNR for “Peak Signal to Noise Ratio” in English, or a mean square error, or MSE for “Mean Square Error” for example.
- PSNR peak signal to noise ratio
- MSE mean square error
- the first part 111 and the second part 122 of the auto-encoder convolutional neural network are thus obtained, and can be implemented respectively in the encoder 110 and the decoder 120.
- the auto-encoder is thus produced by arranging a communication channel between the first part 111 and the second part 122.
- each dimension of the latent vector is generally a floating value coded on 32 bits, i.e. a first coding format. Such a value is incompatible with many communication channels, in particular with a CAN bus which can only transport 8-bit integer values.
- the invention proposes, in order to overcome this problem, to integrate a quantification module 114 in the encoder 110 and a dequantization module 121 in the decoder 120.
- the second coding format is a coding format compatible with the communication channel 130.
- a second coding format corresponding to 8-bit integer values is compatible with a CAN bus.
- the quantification module 114 is therefore capable of providing a quantified latent vector, having LVdim dimensions, each dimension being coded according to the second coding format compatible with the communication channel 130.
- the quantized latent vector Qv can thus be transmitted to the decoder 120 via the communication channel 130.
- the dequantization module 121 applies the inverse transformation of the quantification module 112, in order to obtain an estimate of the latent vector, having LVdim dimensions and each dimension being according to the first coding format.
- the estimate of the latent vector is thus provided as input to the second part 122 of the autoencoder convolutional neural network in order to determine output data.
- the convolutional neural network having been trained by machine learning, the output data are close to the input data, despite the difference between the latent vector from the first part 111 and the estimate of the latent vector from the module of de-quantification 121.
- compression quality indicators such as PSNR and MSE are maintained at levels as high, or almost as high, as an autoencoder system without quantization.
- the system according to the invention allows compatibility of an auto-encoder convolutional neural network with any type of communication channel, in particular with a CAN bus, by increasing the compression rate, while maintaining indicators high compression quality, which helps minimize losses in the output data.
- Figure 2 presents an input data processing method, implemented by the encoder 110 described previously with reference to Figure 1.
- the method comprises a preliminary step 200 of storing the first part 111 of the autoencoder convolutional neural network in a memory of the encoder 110.
- the preliminary step 200 may further comprise the learning method making it possible to obtain the auto-encoder convolutional neural network, comprising the first part 111 and the second part 122.
- the method further comprises a step 201 of receiving input data by the input layer 112.
- the input data can be data representative of an image, such as photometry lighting device for a motor vehicle.
- a step 202 the input data is processed by the first part 111 and a latent vector is obtained at the output of the first central encoding layer 113, as previously described.
- each dimension of the latent vector is quantized in the second coding format by the quantification module 114, such as previously described, in order to obtain a quantified latent vector compatible with transmission on the communication channel 130.
- the quantized latent vector is transmitted on the communication channel 130 by the encoder 110.
- Figure 3 presents a data decoding method, implemented by the decoder 120 described previously with reference to Figure 1.
- the method comprises a preliminary step 300 of storing the second part 122 of the autoencoder convolutional neural network in a memory of the decoder 120.
- the preliminary step 200 can further comprise the learning method making it possible to obtain the network of auto-encoder convolutional neurons, comprising the first part 111 and the second part 122.
- the de-quantization module 121 receives the quantized latent vector.
- the de-quantization module 121 determines an estimate of the latent vector from the quantized latent vector, each dimension of the estimate of the latent vector being in the first coding format, for example a 32-bit floating point value. . This step therefore makes it possible to move from the second coding format to the first coding format.
- the second part 122 of the auto-encoder convolutional neural network processes the estimation of the latent vector in order to obtain output data, the output data having the same number of dimensions as the data d inputs to step 201 of the method according to Figure 2.
- the output data may be transmitted by the decoder 120 at step 304.
- the decoder may transmit the output data to a memory for storage.
- the output data can be transmitted to a light source control module for carrying out the photometry corresponding to the output data.
- the invention also relates to a method comprising both the steps of the method of Figure 2 but also the steps of the method of Figure 3, the reception step 300 consisting of receiving the quantized latent vector transmitted to the step 204.
- Figure 4 illustrates the structure of an encoder 110 according to embodiments of the invention.
- the encoder 110 comprises a processor 401 configured to communicate unidirectionally or bidirectionally, via one or more buses or via a wired connection, with a memory 402 such as a “Random Access Memory” type memory, RAM, or a “Read Only Memory”, ROM, or any other type of memory (Flash, EEPROM, etc.).
- memory 402 includes several memories of the aforementioned types.
- memory 402 is a non-volatile memory.
- the memory 402 stores, permanently or temporarily, all of the data generated following the implementation of steps 201 to 204 of the data processing method described above, and can store the first part 111 of the convolutional neural network during step 200.
- the processor 401 is able to execute instructions, stored in the memory 402, for the implementation of steps 202 and 203 of the method illustrated with reference to Figure 2.
- the processor 401 can be replaced by a microcontroller designed and configured to carry out steps 202 and 203 of the method according to Figure 3.
- the quantification module 114 presented previously is thus produced by the processor 401 or the microcontroller. Still as a variant, a processor or a micro-controller dedicated to the quantification function is provided in addition to the processor 401, which thus carries out the processing by the first part of the auto-encoder convolutional neural network.
- the encoder 110 may include an input interface 403 capable of obtaining the input data during step 201 described above. No restriction is attached to the first input interface 403 which can be a wired interface for example, or alternatively wireless.
- the encoder 110 may further comprise a second output interface 404 capable of transmitting the quantified latent vector, during step 204 described previously.
- the second interface 404 is thus functionally connected to the communication channel 130.
- Figure 5 illustrates the structure of a decoder 120 according to embodiments of the invention.
- the decoder 120 comprises a processor 501 configured to communicate unidirectionally or bidirectionally, via one or more buses or via a wired connection, with a memory 502 such as a “Random Access Memory” type memory, RAM, or a “Read Only Memory” type memory, ROM, or any other type of memory (Flash, EEPROM, etc.).
- memory 502 includes several memories of the aforementioned types.
- memory 502 is a non-volatile memory.
- the memory 502 is able to store, permanently or temporarily, all of the data generated following the implementation of steps 301 to 304 of the data decoding method described above, and can store the second part 122 of the convolutional neural network during step 300.
- the processor 501 is able to execute instructions, stored in the memory 502, for the implementation of steps 302 and 303 of the method illustrated with reference to Figure 3.
- the processor 501 can be replaced by a microcontroller designed and configured to carry out steps 302 and 303 of the method according to Figure 3.
- the de-quantization module 121 presented previously is thus produced by the processor 501 or the microcontroller. Still as a variant, a processor or a microcontroller dedicated to the dequantization function is provided in addition to the processor 501, which thus carries out the processing by the second part 122 of the auto-encoder convolutional neural network.
- the decoder 120 may include an input interface 503 capable of receiving the quantized latent vector, during step 301 described above. No restrictions are attached to the first input interface 503, which is functionally connected to the communication channel 130 described above.
- the decoder 120 may further comprise a second output interface 504 capable of transmitting the output data, during step 304 described previously.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
Abstract
L'invention concerne un système (100) comprenant un encodeur (110) et un décodeur (120), une première partie (111) d'un réseau de neurones convolutionnel auto-encodeur étant intégrée dans l'encodeur et une deuxième partie (122) du réseau de neurones convolutionnel auto-encodeur étant intégré dans le décodeur L'encodeur et le décodeur sont aptes à communiquer via un canal de communication (130). Un vecteur latent issu de la première partie du réseau de neurones est quantifié par l'encodeur afin d'être transmis sur le canal de communication, puis dé-quantifié par le décodeur avant traitement par la deuxième partie du réseau de neurones convolutionnel auto-encodeur.
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.
Claims
[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.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR2210644A FR3140976B1 (fr) | 2022-10-16 | 2022-10-16 | Auto-encodeur pour véhicule automobile avec quantification |
| PCT/EP2023/078673 WO2024083740A1 (fr) | 2022-10-16 | 2023-10-16 | Auto-encodeur pour véhicule automobile avec quantification |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4602517A1 true EP4602517A1 (fr) | 2025-08-20 |
Family
ID=85380951
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP23790014.7A Pending EP4602517A1 (fr) | 2022-10-16 | 2023-10-16 | Auto-encodeur pour véhicule automobile avec quantification |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP4602517A1 (fr) |
| CN (1) | CN120359520A (fr) |
| FR (1) | FR3140976B1 (fr) |
| WO (1) | WO2024083740A1 (fr) |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR3115747B1 (fr) * | 2020-10-30 | 2023-10-06 | Valeo Vision | Procédé de gestion des données d'image et dispositif d'éclairage automobile |
-
2022
- 2022-10-16 FR FR2210644A patent/FR3140976B1/fr active Active
-
2023
- 2023-10-16 WO PCT/EP2023/078673 patent/WO2024083740A1/fr not_active Ceased
- 2023-10-16 CN CN202380085765.7A patent/CN120359520A/zh active Pending
- 2023-10-16 EP EP23790014.7A patent/EP4602517A1/fr active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| CN120359520A (zh) | 2025-07-22 |
| FR3140976A1 (fr) | 2024-04-19 |
| WO2024083740A1 (fr) | 2024-04-25 |
| FR3140976B1 (fr) | 2025-10-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12380541B2 (en) | Method and apparatus for training image restoration model, electronic device, and computer-readable storage medium | |
| CN111009018A (zh) | 基于深度神经网络的图像降维和重建方法 | |
| EP0588736B1 (fr) | Procédé de masquage d'erreurs de transmission d'image compressée en MPEG | |
| FR2627926A1 (fr) | Procede et dispositif de codage de signaux video numeriques, et dispositif de decodage correspondant | |
| FR2954036A1 (fr) | Procede et systeme pour la determination de parametres de codage sur des flux a resolution variable | |
| WO2009147182A1 (fr) | Procede et systeme permettant de proteger un flux video compresse contre les erreurs survenant lors d'une transmission | |
| WO2024083740A1 (fr) | Auto-encodeur pour véhicule automobile avec quantification | |
| FR2676608A1 (fr) | Procede de codage d'images en couleurs a fort taux de compression sans filtrage, procede de decodage, codeur, decodeur et application correspondants. | |
| CN120639906A (zh) | 频率空间混合联合信源信道编码方法及无线图像传输方法 | |
| WO2024079339A1 (fr) | Récepteur pour décompression de données avec rehaussement par auto-encodeur | |
| FR3115747A1 (fr) | Procédé de gestion des données d'image et dispositif d'éclairage automobile | |
| WO1999018734A1 (fr) | Procede de controle du taux de compression d'images numeriques | |
| WO2022175626A1 (fr) | Determination d'un mode de codage d'image | |
| FR3145661A1 (fr) | Procédé et dispositif de détermination d’un type de bus de données utilisé pour la transmission de signaux entre périphériques dans un véhicule | |
| EP3843410A1 (fr) | Procédés de transmission et de réception de flux, dispositifs et programme d'ordinateur associés | |
| FR3102269A1 (fr) | Procédé et dispositif de détection d’une intrusion sur un bus de données d’un véhicule | |
| FR3148696A1 (fr) | Procédé et dispositif de compression avec pertes et relative à des zones d’intérêts d’images numériques utilisant des paramètres déterminés à partir d’un réseau de neurones. | |
| Wang | Semantic Communication System for Vehicle Detection Based on CNN Encoder and Supernet Architecture | |
| WO2025261758A1 (fr) | Procédés de codage et de décodage, dispositifs et programme d'ordinateur correspondants | |
| FR3162093A1 (fr) | Procédé et dispositif de généralisation d’un modèle de classification d’image pour système d’aide à la conduite d’un véhicule | |
| WO2025261757A1 (fr) | Procédés de codage et de décodage, dispositifs et programme d'ordinateur correspondants | |
| EP1596607A1 (fr) | Procédé et dispositif de génération de vecteurs candidats pour les systèmes d'interpolation d'images par estimation et compensation de mouvement | |
| EP4602810A1 (fr) | Procédé d'apprentissage d'un système de compression basé sur un réseau de neurones artificiels de bout en bout | |
| EP1741254A1 (fr) | Procede d"optimisation de la repartition d"une puissance d"emission entre des sous-canaux, pour une transmission par multiplexage frequentiel | |
| EP3203737A1 (fr) | Procédé et dispositif d'encodage d'un signal numérique multidimensionnel, en particulier un signal d'image, et procédé et dispositif correspondants de décodage |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20250318 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) |