Brevet FR3073346A1 — publié le 20190510

Procédé de codage d'une texture et dispositifs et procédé associés La présente invention concerne un procédé de codage d'une texture d'un objet sous forme d'un code, la texture étant formée par une pluralité de points présentant chacun une couleur décrite par des données colorimétriques. La présente invention concerne également un procédé de décodage, un code-barres, une puce électronique, un produit programme d'ordinateur, un support d'informations, un ensemble de codage et un ensemble de décodage associés. Il est souhaitable de pouvoir coder tout type de couleur sous forme d'un codage de faible taille. Pour cela, il est connu du document WO 2014/012969 un procédé de codage par compression adaptative de la couleur d'un objet sous une forme multispectrale, le procédé comportant une étape de détermination d'un identifiant de la couleur sous la forme d'un code dédié à la logistique et possédant une structure de gestion distribuée de type EAN (« European Article Numbering »), UPC (« Universal Product Code ») ou DNS (« Domain Name System »). Le procédé de codage comportant également une étape d'insertion d'une balise au début dudit code indiquant qu'il s'agit d'un code de couleur, ainsi que le type de stockage et une étape de création d'un codage de couleur interprétable en lecture directe à la fois par un être humain et par un ordinateur sous la forme de trois éléments : un échantillon de la couleur ou d'une texture, un nom et un code-barre/une puce, à l'aide dudit code et de la balise qui donnent accès à la réflectance spectrale bidirectionnelle de la couleur stockée soit en local, soit en réseau, soit à la fois en local et en réseau, et avec un modèle de rendu déterminé par ladite balise Dans ce document, il est indiqué que le procédé peut être étendu à un polygone uniforme et à une texture formée à partir de points ou de polygones en appliquant le procédé de codage pour chaque point. Toutefois, pour des textures complexes, typiquement une variation spatiale d'une couleur depuis une teinte claire vers une teinte foncée, le codage précédent conduit à des codes ne pouvant être stocké ou mémorisée dans un espace suffisamment restreint comme celui d'un QR-code. Il existe donc un besoin pour un procédé de codage d'une texture d'un objet permettant de coder sur un QR-code tout type de texture. Pour cela, il est proposé un procédé de codage d'au moins une texture d'un objet sous forme d'un code, chaque texture étant formée par une pluralité de points présentant chacun une couleur décrite par des données colorimétriques, le procédé comportant les étapes suivantes: 2 - application d'un descripteur sur chaque texture pour obtenir un descripteur spatial de la texture, - compression des données colorimétriques de chaque point pour obtenir des informations compressées, 5 - chiffrement des informations compressées pour obtenir des informations chiffrées, et - génération d'un code par agencement des informations chiffrées selon le descripteur de texture. Suivant des modes de réalisation particuliers, le procédé de codage comprend une 10 ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toute combinaison techniquement possible : - le descripteur spatial établit un lien entre une position sur le code et une partie des points. - le lien varie au cours du temps. 15 - le descripteur spatial est obtenu à partir d'une technique ou d'une combinaison de techniques, chaque technique étant choisie parmi : - les textons de Julesz, - un motif binaire local, - des champs de Markov aléatoires gaussiens, et 20 - des histogrammes de gradients orientés. - le procédé comporte, en outre, les étapes suivantes : - détermination d'un identifiant pour chaque couleur sous la forme d'un identifiant dédié à la logistique et possédant une structure de gestion distribuée de type EAN (« European Article Numbering »), UPC (« Universal 25 Product Code ») ou DNS (« Domain Name System »), et - insertion d'une balise au débit du identifiant indiquant qu'il s'agit d'un code de couleur, ainsi que le type de stockage ; et - le code est interprétable en lecture directe à la fois par un être humain et par un ordinateur sous la forme de trois éléments : un échantillon d'une texture, 30 un nom et un code-barre/une puce, à l'aide de l'identifiant et de la balise qui donnent accès à la réflectance spectrale bidirectionnelle de la couleur stockée soit en local, soit en réseau, soit à la fois en local et en réseau, et avec un modèle de rendu déterminé par la balise. une URL (« Uniform Resource Locator ») primaire est fournie par ladite balise et 35 une URL secondaire est fournie par le code. 3 - le stockage de l'information de réflectance spectrale bidirectionnelle est réparti entre un bloc « local » et un bloc en réseau ou « nuage ». - le lien entre le bloc local et le bloc « nuage » est réalisé par la balise et l'identifiant. 5 - les fonctions caractérisant la couleur de l'objet, notamment la réflectance spectrale, font l'objet d'un double niveau de compression : interpolation par spline cubique scellée, puis description des coordonnées des points d'interpolation via des pas relatifs entre points en abscisse et en ordonnée. - le procédé comporte en outre une étape de stockage dans le bloc de stockage 10 « local » d'un minimum d'informations pour représenter une texture, à savoir une balise indiquant le type de stockage local, un identifiant de la couleur sous la forme d'un code EAN, UPC ou DNS, le nom de la couleur et la réflectance spectrale -diffuse uniforme de la couleur. - le procédé comporte, en outre une étape de stockage du bloc local à l'intérieur 15 d'un code-barres du type « QR-code » (marque déposée). - le procédé comporte, en outre, une étape de stockage du bloc local à l'intérieur d'un code-barres du type « Data Matrix » (marque déposée). - le procédé comporte, en outre, une étape de stockage du bloc local l'intérieur d'une puce, la puce étant notamment une puce RFID. 20 - le procédé comporte, en outre, une étape consistant à apposer en surimpression sur le code-barre/la puce ou à côté une étiquette avec un échantillon de la couleur qu'il représente. - le procédé est mis en oeuvre avec un téléphone portable, une tablette ou un ordinateur munis d'un capteur d'image ou d'un lecteur de puce. 25 - le procédé est mis en oeuvre avec une sonde dédiée pour le code-barre ou la puce. - le procédé met en oeuvre le modèle de réflectance de Lambert. - le procédé met en oeuvre le modèle de réflectance de Phong et Blinn. - le procédé met en oeuvre le modèle de réflectance de Torrance et Sparrow. 30 - le procédé met en oeuvre le modèle de réflectance de Beckmann et Spizzichino. - le procédé met en oeuvre le modèle de réflectance de Oren et Nayar. - le procédé met en oeuvre le modèle de réflectance de Ward. - le procédé met en oeuvre le modèle de réflectance d'Ashikhmin. - le procédé met en oeuvre le modèle de réflectance de He. 35 - le procédé met en oeuvre dans un bloc de stockage « nuage » une compression par harmoniques sphériques. 4 - le procédé met en oeuvre dans le bloc de stockage « nuage » une compression par longueurs apposées sur une sphère géodésique. - le procédé met en oeuvre dans le bloc de stockage « nuage> une compression par ondelettes sphériques. 5 La présente description décrit également un procédé de décodage d'un code pour obtenir une texture d'un objet, la texture étant formée par une pluralité de points présentant chacun une couleur décrite par des données colorimétriques, le procédé comprenant les étapes suivantes : - fourniture d'un descripteur spatial de texture, 10 - obtention d'informations chiffrées par utilisation du descripteur de texture appliqué sur le code, - déchiffrement des informations chiffrées pour obtenir des informations compressées, - décompression des informations compressées pour obtenir des données 15 colorimétriques de chaque point, et - reconstitution de la texture à l'aide des données colorimétriques et du descripteur spatial de texture. La présente description porte aussi sur un support d'informations, notamment code-barres, puce électronique ou tatouage numérique, comportant un code susceptible 20 d'être obtenu par le procédé de codage tel que décrit précédemment. La présente description décrit également un produit programme d'ordinateur comportant un support lisible d'informations, sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de programme, le programme d'ordinateur étant chargeable sur une unité de traitement de données et adapté pour entraîner la mise en 25 oeuvre d'un procédé tel que décrit précédemment lorsque le programme d'ordinateur est mis en oeuvre sur l'unité de traitement des données.. La présente description porte aussi sur un produit programme d'ordinateur comportant un support lisible d'informations, sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de programme, le programme d'ordinateur étant 30 chargeable sur une unité de traitement de données et adapté pour entraîner la mise en oeuvre d'un procédé tel que décrit précédemment lorsque le programme d'ordinateur est mis en oeuvre sur l'unité de traitement des données. La présente description décrit également un support lisible d'informations sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de 35 programme, le programme d'ordinateur étant chargeable sur une unité de traitement de données et adapté pour entraîner la mise en oeuvre d'un procédé tel que décrit 5 précédemment lorsque le programme d'ordinateur est mis en oeuvre sur l'unité de traitement des données. La présente description porte aussi sur un ensemble de codage d'au moins une texture d'un objet sous forme d'un code, chaque texture étant formée par une pluralité de 5 points présentant chacun une couleur, l'ensemble comportant : - un spectrophotomètre adapté pour collecter des données colorimétriques relatives à la couleur de chaque point, un calculateur adapté à mettre en oeuvre les étapes suivantes: - application d'un descripteur sur chaque texture pour obtenir un 10 descripteur spatial de la texture, - compression des données colorimétriques de chaque point pour obtenir des informations compressées, - chiffrement des informations compressées pour obtenir des informations chiffrées, et 15 - génération d'un code par agencement des informations chiffrées selon le descripteur de texture. La présente description décrit également un ensemble de décodage d'un code pour obtenir au moins une texture d'un objet, chaque texture étant formée par une pluralité de points présentant chacun une couleur décrite par des données 20 colorimétriques, comportant : - un lecteur propre à lire le code, - un calculateur propre à mettre en oeuvre les étapes suivantes : - réception d'un descripteur spatial de texture, - obtention d'informations chiffrées par utilisation du descripteur de texture 25 appliqué sur le code, - déchiffrement des informations chiffrées pour obtenir des informations compressées, - décompression des informations décompressées pour obtenir des données colorimétriques de chaque point, et 30 - reconstitution de la texture à l'aide des données colorimétriques et du descripteur spatial de texture. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit de modes de réalisation de l'invention, donnée à titre d'exemple uniquement. 6 Il est proposé un procédé de codage dont la mise en oeuvre est maintenant décrite en référence à l'ordinogramme de la figure 2 qui illustre un exemple de mise en oeuvre d'un procédé de codage d'une texture d'un objet sous forme d'un code. La texture est formée par une pluralité de points présentant chacun une couleur. 5 Autrement formulé, une texture est un agencement spatial de couleurs. La couleur d'un point peut être décrite par des données colorimétriques. Pour obtenir un bon rendu de couleur, la couleur n'est pas simplement caractérisée par ses coordonnées trichromatiques dans un espace colorimétrique, comme l'espace CIE XYZ. Il convient également de prendre en compte l'état de surface, 10 notamment via les notions de brillance ou de rugosité. Pour cela, la couleur est caractérisée par des modèles de réflectance spectrale prenant en compte le rendu des surfaces. De tels modèles sont qualifiés de « bidirectionnels » du fait de leur triple dépendance aux longueurs d'onde-de l'illuminant de l'objet, à l'angle incidence selon lequel l'illuminant illumine le point de l'objet et à l'angle 15 incidence selon lequel le détecteur observe le point de l'objet. Parmi de tels modèles, il est possible de citer le modèle de réflectance Lambert, le modèle de réflectance de Phong et Blinn, le modèle de réflectance de Torrance et Sparrow, le modèle de réflectance de Beckmann et Spizzichino, le modèle de réflectance de Oren et Nayar, le modèle de réflectance de Ward, le modèle de réflectance 20 d'Ashikhmin et le modèle de réflectance de He. Dans chacun de ces modèles, cela implique que chaque couleur est décrite par un nombre important de données colorimétriques, au moins dix données. Eu égard au nombre de points d'une texture, mille par exemple, le nombre de données devient important pour coder les informations de manière synthétique. 25 Le procédé de codage proposé vise à coder les informations précédentes en diminuant la quantité d'informations mémorisées avec peu de perte lors de la restitution de la texture. Cela permet d'obtenir un code. Le procédé de codage comporte une étape d'application, une étape de compression, une étape de déchiffrement et une étape de génération. 30 A l'étape d'application, il est appliqué un descripteur sur la texture pour obtenir un descripteur spatial de la texture. Selon un exemple simple, le descripteur spatial établit un lien entre une position sur le code et une partie des points. Typiquement, le descripteur spatial indique qu'une pluralité de points est codée 35 par un seul point sur le code. 7 Selon les modes de réalisation, la pluralité de points forme une région continue ou une pluralité de régions de même forme (par exemple, des lignes espacées). Selon un exemple plus élaboré, le descripteur spatial est obtenu à partir d'une technique ou d'une combinaison de techniques, chaque technique étant choisie parmi les 5 textons de Julesz, un motif binaire local, des champs de Markov aléatoires gaussiens et des histogrammes de gradients orientés. Chacune de ces techniques permet de segmenter la texture. Dans tous les cas, le descripteur spatial permet qu'un point du code puisse coder pour une pluralité de points de l'objet. 10 Lors de l'étape de compression, la couleur de chaque point est compressée pour obtenir des informations compressées. La compression correspond, par exemple, à la combinaison de plusieurs opérations. Notamment, la combinaison d'une transformation, d'un filtre passe-bande et d'une fonction de codage est intéressante. 15 Par exemple, la transformation est une transformée en cosinus discrète, une transformée de Fourier ou une transformée en ondelettes. A titre d'illustration, la fonction de codage est un codage de longueur de plage, un codage Huffman ou un codage arithmétique. De préférence, l'étape de compression correspond à la mise en oeuvre, pour 20 chaque point, du procédé de codage par compression adaptative qui est décrit dans le document WO 2014/012969. Il est ainsi obtenu des informations compressées. Lors de l'étape de chiffrage, une opération de chiffrement est mise en oeuvre. L'opération de chiffrement est appliquée sur les informations compressées et permet 25 d'obtenir des informations chiffrées. L'opération de chiffrement est, par exemple, une opération cryptographique. Lors de l'étape de génération, il est généré un code par agencement des informations compressées selon le descripteur de texture. Selon un mode de réalisation préféré, le descripteur de texture est également codé 30 dans le code pour faciliter le décodage. Par exemple, le descripteur de texture est inséré sous forme d'une référence dans un en-tête, la personne devant utiliser le code ayant une table de correspondance entre les références et les descripteurs de texture associés. Le procédé de codage permet d'obtenir un code représentatif de la texture qui présente une taille relativement faible. 35 La diminution permet notamment d'insérer le code dans un support d'information. Le support d'informations varie de nature selon l'application considérée. 8 Selon un exemple, le support d'informations est du papier, une image elle-même, une photo, une vidéo, un document ou un code-barres. Par exemple, le code-barres est un code de type « QR-code » (marque déposée) ou un code du type « Data Matrix » (marque déposée) ou un code du type « Aztec » 5 (marque déposée). De manière alternative, le code peut également être codée sur une puce électronique, notamment une puce RFID. En variante, le code est inséré dans un tatouage numérique (aussi dénommé « watermark »). 10 Selon un autre cas, le code est inséré dans un environnement de réalité augmentée. Le code permet une mémorisation en local ou en nuage. Le code est lisible, dans certains cas, à l'oeil nu et via un ordinateur. La présence d'une étape de chiffrement assure que les données sont protégées, ce qui permet d'utiliser le procédé de codage 15 pour certifier l'authenticité d'un objet. Selon un mode de réalisation, le procédé de codage est mis en oeuvre par l'interaction entre un système et un produit programme d'ordinateur. Le système est un ordinateur. Plus généralement, le système est un calculateur électronique propre à manipuler 20 et/ou transformer des données représentées comme des quantités électroniques ou physiques dans des registres du système et/ou des mémoires en d'autres données similaires correspondant à des données physiques dans des mémoires, des registres ou d'autres types de dispositifs d'affichage, de transmission ou de mémorisation. Le système comporte un processeur comprenant une unité de traitement de 25 données, des mémoires et un lecteur de support d'informations. Le système comprend également un clavier et une unité d'affichage. Le produit programme d'ordinateur comporte un support lisible d'informations. Un support lisible d'informations est un support lisible par le système, usuellement par l'unité de traitement de données. Le support lisible d'informations est un médium 30 adapté à mémoriser des instructions électroniques et capables d'être couplé à un bus d'un système informatique. A titre d'exemple, le support lisible d'informations est une disquette ou disque souple (de la dénomination anglaise de « floppy disk »), un disque optique, un CD-ROM, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, une mémoire 35 EPROM, une mémoire EEPROM, une carte magnétique ou une carte optique. 9 Sur le support lisible d'informations est mémorisé un programme d'ordinateur comprenant des instructions de programme. Le programme d'ordinateur est chargeable sur l'unité de traitement de données et est adapté pour entraîner la mise en oeuvre d'un procédé de codage lorsque le 5 programme d'ordinateur est mis en oeuvre sur l'unité de traitement des données. Alternativement, le procédé de codage est mis en oeuvre à l'aide d'un ensemble de codage comportant un spectrophotomètre pour collecter des données colorimétriques relatives à la texture de l'objet pour chaque point et un calculateur adapté à coder les données colorimétriques pour obtenir un code. 10 De manière réciproque, il est également proposé un procédé de décodage en miroir du procédé de codage. Par exemple, le procédé de décodage est un procédé de décodage du code pour obtenir la texture d'un objet. Le procédé de décodage comporte la fourniture d'un descripteur spatial de texture, la fourniture pouvant être obtenue par la fourniture du code 15 seulement. Le procédé de décodage comporte également les étapes d'obtention d'informations chiffrées par utilisation du descripteur de texture appliqué sur le code, de déchiffrement des informations chiffrées pour obtenir des informations compressées, de décompression des informations compressées pour obtenir des données colorimétriques de chaque point, et de reconstitution de la texture à l'aide des données colorimétriques et 20 du descripteur spatial de texture. Le procédé de décodage est, par exemple, mis en oeuvre par le système tel que précédemment décrit. En variante, le procédé de décodage est mis en oeuvre à l'aide d'un ensemble de décodage comportant un lecteur propre à lire le code et un calculateur. 25 En variante, le descripteur spatial inclut une dimension temporelle. Par exemple, une position correspond à la couleur d'un (ou de plusieurs) pixel à un premier instant et la même position correspond à la couleur d'un autre pixel (ou de plusieurs autres) à un deuxième instant distant du premier instant. Dans ce cas, un point du code permet de coder temporellement plusieurs points. 30 Ce type de descripteur dans lequel le lien entre la position sur le code et une partie des points varie au cours du temps est un descripteur « spatiotemporel » utilisé notamment pour des codes à inscrire sur des vidéos. L'invention REVENDICATIONS1.- Procédé de codage d'au moins une texture d'un objet sous forme d'un code, chaque texture étant formée par une pluralité de points présentant chacun une couleur décrite par des données colorimétriques, le procédé comportant les étapes suivantes: - application d'un descripteur sur chaque texture pour obtenir un descripteur spatial de la texture, - compression des données colorimétriques de chaque point pour obtenir des informations compressées, - chiffrement des informations compressées pour obtenir des informations chiffrées, et - génération d'un code par agencement des informations chiffrées selon le descripteur de texture. 2.- Procédé de codage selon la revendication 1, dans lequel le descripteur spatial établit un lien entre une position sur le code et une partie des points. 3.- Procédé de codage selon la revendication 2, dans lequel le lien varie au cours du temps. 20 4.- Procédé de codage selon l'une quelconque des revendications 1 à 3, dans lequel le descripteur spatial est obtenu à partir d'une technique ou d'une combinaison de techniques, chaque technique étant choisie parmi : - les textons de Julesz, 25 - un motif binaire local, - des champs de Markov aléatoires gaussiens, et - des histogrammes de gradients orientés. 5.- Procédé de décodage d'un code pour obtenir une texture d'un objet, la texture 30 étant formée par une pluralité de points présentant chacun une couleur décrite par des données colorimétriques, le procédé comprenant les étapes suivantes : - fourniture d'un descripteur spatial de texture, - obtention d'informations chiffrées par utilisation du descripteur de texture appliqué sur le code, 35 - déchiffrement des informations chiffrées pour obtenir des informations compressées, 11 - décompression des informations compressées pour obtenir des données colorimétriques de chaque point, et - reconstitution de la texture à l'aide des données colorimétriques et du descripteur spatial de texture. 5 6.- Support d'informations, notamment code-barres, puce électronique ou tatouage numérique, comportant un code susceptible d'être obtenu par le procédé de codage selon l'une quelconque des revendications 1 à 4. 10 7.- Produit programme d'ordinateur comportant un support lisible d'informations, sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de programme, le programme d'ordinateur étant chargeable sur une unité de traitement de données et adapté pour entraîner la mise en oeuvre d'un procédé selon l'une des revendications 1 à 5 lorsque le programme d'ordinateur est mis en oeuvre sur l'unité de 15 traitement des données. 8.- Support lisible d'informations sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de programme, le programme d'ordinateur étant chargeable sur une unité de traitement de données et adapté pour entraîner la mise en oeuvre d'un procédé selon l'une des revendications 1 à 5 lorsque le programme d'ordinateur est mis en oeuvre sur l'unité de traitement des données. 9.- Ensemble de codage d'au moins une texture d'un objet sous forme d'un code, chaque texture étant formée par une pluralité de points présentant chacun une couleur, l'ensemble comportant : - un spectrophotomètre adapté pour collecter des données colorimétriques relatives à la couleur de chaque point, - un calculateur adapté à mettre en oeuvre les étapes suivantes: - application d'un descripteur sur chaque texture pour obtenir un descripteur spatial de la texture, - compression des données colorimétriques de chaque point pour obtenir des informations compressées, - chiffrement des informations compressées pour obtenir des informations chiffrées, et - génération d'un code par agencement des informations chiffrées selon le descripteur de texture. 12 10.- Ensemble de décodage d'un code pour obtenir au moins une texture d'un objet, chaque texture étant formée par une pluralité de points présentant chacun une couleur décrite par des données colorimétriques, comportant : 5 - un lecteur propre à lire le code, - un calculateur propre à mettre en oeuvre les étapes suivantes : - réception d'un descripteur spatial de texture, - obtention d'informations chiffrées par utilisation du descripteur de texture appliqué sur le code, 10 - déchiffrement des informations chiffrées pour obtenir des informations compressées, - décompression des informations décompressées pour obtenir des données colorimétriques de chaque point, et - reconstitution de la texture à l'aide des données colorimétriques et du 15 descripteur spatial de texture.