Essai du ColorReader : capturer des couleurs sur le terrain

Source : Jim Lennon Photographer
175-H2 Commerce Drive Hauppauge NY
631-617-5872

La société américaine DataColor, spécialisée dans les outils numériques pour la mesure et le calibrage des couleurs, propose depuis peu un outil original de mesure autonome des couleurs, le ColorReader, sorte de petite sonde portable. Elle existe en deux versions, avec ou sans écran d’affichage, la première nécessitant la connexion avec un smartphone (via bluetooth) pour afficher les couleurs mesurées.

Le produit est destiné surtout aux concepteurs et architectes d’intérieur qui veulent retrouver facilement la couleur d’un objet, d’un mur, d’une boiserie, dans les catalogues et nuanciers professionnels (RAL, NCS, etc.). L’application pour smartphones permet, au-delà du simple affichage des couleurs, de créer, de sauvegarder et de diffuser des palettes.

L’intérêt pour le concepteur graphique est assez évident, même si indirect : pouvoir saisir des couleurs et des gammes colorées directement « sur le terrain », sans avoir à scanner ou à photographier des objets (livres, reproductions ou œuvres d’art), sans avoir à se préoccuper des réglages de l’éclairage et du calibrage des appareils de prise de vue. Certes, la mesure est un peu approximative à cause de la taille de l’ouverture de mesure de l’appareil (environ 5mm), mais elle est rapide et pratique.

Pour tester son utilisation dans le cadre de la recherche de gammes colorées issues de livres d’art, nous avons voulu extraire des gammes de quelques œuvres de F. Kupka (1871-1957), à partir du « Carnet d’Expo » publié par Gallimard et la RMN en 2018 à propos de l’exposition actuelle au Grand-Palais.

La gamme jaune – 1907

Le premier tableau de l’ouvrage se prête particulièrement à l’exercice de la recherche d’un assemblage de couleurs, il s’agit d’un travail quasi monochromatique, La Gamme Jaune, produit en 1907 et exposé en 1910.

Selon les spécialistes, il s’agit d’une référence directe au travail descriptif et systématique d’Eugène Chevreul (1864).

La mesure par le ColorReader, en prenant soin de placer l’objet sur des zones à peu près homogènes, donne la gamme simplifiée suivante :

#7a5734
#d58e35
#d9ac2d
#b9a52e
#c4b45d
#b6a680
#937246
#d9a038

Naturellement, l’ordre et surtout la proportion des couleurs ne sont pas forcément ceux du tableau (qui peut être « lu », de toutes façons, différemment par chacun), mais on retrouve ici les couleurs de l’artiste dans une traduction trichromatique pour écran.

L’analyse du tableau avec l’outil de synthèse colorée permet de mieux visualiser les proportions et les relations entre les différentes couleurs :

Plans par couleurs (Femme dans les triangles) – 1910-1911

Le tableau suivant reprend certaines des tonalités jaunes du précédent et joue là encore explicitement sur les tons pour les assembler dans une sorte de clair-obscur modulant les transparences.

La lecture par le ColorReader nous donne une série de mesures assez fines :

#345242
#3a3732
#2c3b45
#484433
#72583c
#86743e
#948c7b
#939c6d
#b96f3c
#d6833a
#d5ac5e
#d3ae75

L’étude avec l’outil de synthèse colorée révèle ce que l’on pressent dans la gamme ci-dessus, un jeu sur la saturation dans les jaunes complété par quelques focalisations en bleu-vert et mauve sombre.

 

Grand nu, plan par couleurs – 1909-1910

Cette œuvre est très colorée, la couleur faisant office de perspective par plans en offrant du relief par le jeu des ombres entre teintes claires et teintes foncées. Chaque teinte marquée semble en effet présente selon plusieurs modalités de luminosité.

#7996b6
#555881
#c8bcb8
#b58b82
#7f5e80
#b9ad7e
#728074
#b7b9c4
#b9ad7e
#b78360

Le ColorReader nous indique les références des teintes, l’outil d’analyse étudie leurs proportions et relations et montre bien les écartes de saturation par teinte :

Dans l’analyse par luminosité, on remarque même des effets de « crochet » dans les bleus et les verts, des dégradés de luminosité jouant sur une faible variation de teinte, peut-être dus à la superposition de touches transparentes et à l’effet de la texture de la toile :

 

Le Miroir Ovale – 1909-1910

Dans cette dernière toile Kupka nous offre de nouveau un jeu sur la teinte et la luminosité, avec le reflet d’un personnage dans des tons de vert dont les ombres sont rouges violacées, accompagné de taches lumineuses marron-orange clair.

Le ColorReader nous propose la gamme suivante :

#b59861
#9fb075
#7b965d
#2d6e6b
#146762
#86aea5
#48858a
#64749d
#4e415d
#626172
#623a4a

L’analyse des proportions et relations colorées indique que, plutôt qu’une juxtaposition de « plaques » colorées, l’artiste utilise en fait avec le jeu des touches une gamme quasi-continue de teintes de l’orangé au mauve-bleu en passant par tous les verts (seul le mauve-rosé semble avoir été l’objet d’un mélange de coloris séparés) :

 

Au final, le ColorReader, comme outil d’échantillonnage sur le terrain, pour reprendre le vocabulaire des naturalistes, est un très intéressant complément de la boîte à outils de l’amateur de couleurs. En utilisant sa capacité à traduire rapidement, puis stocker une couleur repérée par le ou la chercheur.e, ainsi que l’expérience de ce dernier ou cette dernière pour sélectionner visuellement les teintes à mesurer, on peut facilement se constituer des palettes ou en extraire depuis des représentations matérielles, physiques ou des objets « naturels ». Il faudra d’ailleurs tester, dans un prochain billet, cette possibilité sur des teintes véritablement naturelles cette fois.

La nomenclature Werner rééditée

En passant

Avant l’existence des palettes de couleurs référencées, souvent présentées sous la forme d’éventails colorés, un des moyens les plus utilisés pour attribuer un nom et une valeur à une couleur consistait à la comparer avec celles reproduites dans un ouvrage spécialisé : la nomenclature Werner’s, du nom du géologue allemand qui en a eu l’idée, publiée par Patrick Syme, un peintre écossais, en 1821.

Cet ouvrage a connu un succès certain auprès des scientifiques « de terrain » du XIXe siècle, le plus célèbre de ses utilisateurs ayant été Charles Darwin, qui disposaient ainsi d’un moyen de décrire précisément les couleurs de leurs spécimens au moment de leur observation ou récolte. Les peintres et décorateurs s’en sont aussi beaucoup servi car l’auteur décrit comment recréer les couleurs en mélangeant les teintes de base et propose une organisation structurée des couleurs selon ces principes.

L’ouvrage est disponible librement en ligne dans les rayons de Archive.org, mais il a aussi été réédité de belle façon par Smithonian Books.

Une version python pour l’outil de synthèse colorée

Lien

Dans le but de pouvoir analyser des images de grande taille plus rapidement, un re-développement de l’outil sous Python a été réalisé.

Le code source est disponible librement sur ce dépôt Github : https://github.com/ljegou/PyColorTool

Description du fonctionnement

Ce projet utilise la bibliothèque Flask, qui permet de créer des applications web multi-threads, c’est à dire avec plusieurs traitements possibles en parallèle. Cela permet d’offrir une interface graphique (page HTML) et de pouvoir suivre l’avancement des analyses (barre de progression).

L’analyse elle-même est bâtie autour d’une clusterisation (classification) de type K-Moyennes, réalisée par la bibliothèque SciKit-Learn du projet SciPy (de type KMeans++, plus précisément).

Ainsi, la méthode de regroupement des couleurs est légèrement différente de celle proposée par l’outil JavaScript, mais plus rapide.

Le paramétrage est aussi plus simple : on ne choisit que le nombre de classes de couleurs à créer, puis des paramètres de présentation (taille, opacité des cercles, type d’axe radial).

 

La représentation graphique des résultats est réalisée automatiquement dans le mode « radar » par la bibliothèque MatPlotLib, ce qui permet d’obtenir un graphe configurable (échelle de la grille, unités des axes, position des libellés, rotation, etc.).

Il reste des possibilités de configuration à fournir, comme le choix de l’espace de couleurs utilisé pour le calcul des regroupements (ici HSV par défaut), mais l’application fonctionne déjà de façon à être testée facilement.

N’hésitez pas à la réutiliser et à proposer des compléments !

Simplification visuelle d’une image : atténuer les traits fins contrastés

OUtil simplification, août 2015

Lien vers l’outil : http://www.geotests.net/test/simplification/laplacian.html?l=fr

Dans la série d’idées issues du travail de thèse (2013) sur l’utilisation de méthodes esthétiques pour la cartographie thématique, on trouve les outils concernant l’utilisation de coordinations de couleurs (détection/visualisation et construction, qui ont fait l’objet de développements dans le présent carnet).

On y évoque aussi l’idée d’une simplification visuelle de l’image (notamment cartographique) par l’atténuation d’un des éléments principaux de la complexité visuelle : les éléments fins contrastés (Cf. cet article ou celui-ci). On pense, entre autres, aux contours noirs sur fond clair des objets de la carte, dont la prégnance visuelle est inutilement forte (notamment avec les réglages par défaut de certains logiciels).

Pour essayer de mettre en œuvre cette simplification avec un outil accessible, c’est-à-dire facilement et rapidement utilisable, selon l’habitude ici, on a donc développé un prototype basé sur une idée simple : il existe des filtres automatiques de détection des contours, on peut donc essayer de produire des images où ils seraient atténués, par soustraction / combinaison de pixels.

Restait à trouver le bon filtre et la bonne méthode de développement, pour produire un outil web fonctionnel, qui réponde assez vite pour une utilisation simple.

Les filtres disponibles

Le filtrage linéaire d’une image raster, composée de pixels, consiste à créer une nouvelle image dont les valeurs de pixels sont issues d’un calcul. Ce calcul croise les valeurs de l’image d’origine avec une petite matrice, appelée noyau ou masque de convolution. (Cf. la synthèse de la Wikipedia pour un aperçu général du traitement d’image par filtres linéaires). Les filtres les plus connus sont ceux de flou (gaussien), de renforcement, de débruitage ou de détection de lignes.

La série de filtres pertinents pour la détection des contours forme une petite liste, dans laquelle les plus prometteurs sont ceux dits Laplaciens ou dérivés, utilisant des masques de convolution dont les valeurs forment une sorte d’entonnoir (ou chapeau mexicain à l’envers) :

Le fonctionnement de ces filtres peut être grossièrement résumé en disant que les fortes différences entre un pixel et son entourage, potentiel indice d’un contour intéressant à détecter, vont être isolées (par exagération extrême des différences).

Différents filtres ont été testés, pour n’en garder que deux, le filtre Laplacien évoqué ci-dessus, amélioré en un filtre Laplacien de Gaussienne (LoG) et la différence de gaussiennes (DoG). Ce dernier type de filtre est en fait une approximation du premier, plus rapide à calculer mais d’un fonctionnement légèrement différent, qui peut être complémentaire. Il se base sur le calcul de la différence entre deux flous gaussiens de portée variable (pour repérer les zones de l’image où le changement de couleur est brusque).

Les deux types de filtres se basent donc sur la convolution de l’image, que l’on peut paramétrer selon plusieurs éléments :

  • la taille du masque : 3×3, 5×5 ou 7×7 pixels de côté ;
  • la forme de la courbe en entonnoir, réglée par le paramètre Sigma.

A ces deux éléments, on ajoute des traitements annexes :

  • un flou gaussien préalable de l’image source, pour éventuellement la lisser un peu ;
  • un flou gaussien du résultat du filtre de détection des contours, avant combinaison, idem.

La différence entre les deux filtres tient à la finalité du paramètre nommé « facteur » dans l’outil :

  • pour le filtre LoG : coefficient multiplicateur de la pointe du masque ;
  • pour la DoG : écart entre les sigmas des deux gaussiennes dont on fait la différence.

La combinaison des images

Une fois le filtre calculé, il faut le combiner avec l’image d’origine pour réaliser l’atténuation des contours recherchée. Cette combinaison, ou mode de fusion, peut être réalisée selon différents calculs, pour atténuer les contours ou, au contraire, les isoler pour les visualiser.

af_SC521 af_SC521_att
Image d’origine (source) Contours fortement atténués
af_SC521_visu af_SC521_att
Contours visualisés Contours légèrement atténués

Pour aider à l’utilisation de l’outil, les paramètres de filtrage et de combinaison pour produire ces différents résultats ont été regroupés dans des « préréglages », que l’on peut ensuite raffiner de manière interactive.

Conseils d’utilisation

Les filtres utilisés sont assez sensibles à la taille des images et à l’épaisseur moyenne des contours. Selon l’image source, il faut donc faire varier les valeurs des paramètres, notamment de taille du masque (grande image -> grand masque) et le facteur de force de la courbe (ou de différence de gaussiennes).

Évaluation de l’outil

Reste maintenant à tester l’outil sur diverses images, pour vérifier son fonctionnement et estimer son efficacité à en simplifier la lecture, à en atténuer la complexité visuelle.

Pour ce faire, une enquête en ligne va être conçue, mais en attendant, n’hésitez pas à tester et à nous faire remonter tout souci d’utilisation ou remarque, merci d’avance !

Détails techniques de fonctionnement

L’outil fonctionne sur le principe habituel d’une page Web, les calculs sont réalisés par des fonctions Javascript. Il utilise la bibliothèque de fonctions « Canvas filters » développée par Ilmari Heikkinen (sous licence MIT). Le code source (dans la page html) contient d’autres filtres et plusieurs types de paramètres fonctionnels. Ils n’ont pas été utilisés dans la version finale de l’interface pour la garder assez simple.

Lorsque vous traitez une image de votre disque dur, elle n’est pas mise en ligne sur le site de l’outil, les traitements se font localement, sur votre ordinateur.

D’autres billets pourront être rédigés pour expliquer plus en détail le fonctionnement des traitements, si cela s’avère utile.

A propos de la palette « arc-en-ciel » favorisée par les climatologues

Une palette toujours considérée comme néfaste

gfs_T2ma_global_20_aa

Modèle climatologique, Levi Cowan, 2015

La palette dite « arc-en-ciel », qui consiste à balayer toutes les teintes avec une même intensité pour représenter un phénomène quantitatif (qui varie souvent dans une seule dimension), est depuis longtemps utilisée par certains scientifiques, particulièrement en climatologie.

Cette palette se moque évidemment de la (forte) capacité de la couleur (teinte) à transmettre l’idée de différence, de distinction, et semble croire que le lecteur sera capable de lire une gradation, une variation progressive de la valeur du phénomène alors que les teintes parcourent progressivement l’arc-en-ciel.

Ces deux suppositions vont bien sûr à l’encontre des enseignements de la sémiologie graphique et de la psychologie cognitive de la perception. Elles sont évidemment très préjudiciables pour les personnes atteintes d’un déficit de perception des teintes (approximativement 8% de la population masculine et 0,5% de la population féminine).

Ces pratiques ont été dénoncées spécifiquement par plusieurs collègues :

L’outil de synthèse colorée présenté dans ces pages permet d’illustrer clairement les problèmes posés par ce mode de représentation.

Illustration avec l’outil de synthèse colorée

L’image utilisée pour cet exemple a récemment fait parler d’elle car il s’agit d’un modèle des anomalies de températures dans le monde pour la journée du 25 février 2015, par rapport aux moyennes calculées sur la période 1981-2010. On y voit clairement la vague de froid qui frappe l’est des États-Unis depuis quelques jours, que certains pourraient tenir comme preuve à l’encontre de l’idée du changement climatique.

On en trouve la version originale sur le site de l’auteur des modélisations, Levi Cowan.

Analysée en mode HLS, cette carte donne le résultat suivant :

Carte climat analyse HLS

Mode HLS

Les paramètres utilisés sont :

  • Échantillonnage : 10 pixels
  • Seuil de détection des couleurs : 6
  • Espace colorimétrique : CIELab (rgb)
  • Coef. d’agrandissement des symboles : 160%
Climato 3D

Analyse en 3D

L’image produite montre nettement des alignements de teinte, qui plus est avec des tailles de symboles graduées (les phénomènes extrêmes de température sont heureusement peu fréquents et peu étendus). Ce qui pose problème, c’est bien sûr que l’on peut compter quatre alignements, deux importants et deux plus faibles, selon des sens de progression parfois opposés, alors qu’il ne s’agit que d’une variable monodimensionnelle (avec certes deux sous-composantes : positive et négative).

On se rend compte, enfin, que la gamme des verts a été oubliée de cette palette, peut-être pour réduire l’effet disparate d’une variation complète dans la gamme des teintes ?

Article dans la revue du Comité Français de Cartographie

Lien

La revue du CFC, dans sa dernière livraison de décembre 2014, publie les actes des rencontres « Enseigner la Sémiologie Graphique » qui se sont déroulées en avril dernier à Montpellier.

La communication présentée par votre serviteur (L. Jégou) est disponible en ligne :

Une approche esthétique pour l’enseignement de la composition des gradients colorés en cartographie thématique.

(avant de l’être directement sur le site du CFC).

Aide de l’outil de synthèse colorée

L’outil de synthèse colorée, dans sa v2, a pour objectif de produire une représentation graphique, 2D ou 3D, qui permet d’analyser l’utilisation des couleurs dans une image.

Cette analyse se base sur :

  • une décomposition des couleurs en leurs composantes de Teinte, Saturation et Luminosité (TSL ou HSL en anglais),
  • leur regroupement en ensembles de couleurs proches,
  • puis en la représentation graphique par symboles proportionnels des quantités de pixels de chaque ensemble (En 2D, la superposition des symboles se fait dans l’ordre décroissant de taille pour éviter les masquages).

Principe de l’analyse :

  1. Dans le cadre n°1, cliquer sur le bouton pour choisir une image sur votre ordinateur. (L’outil est une page html qui va travailler dans votre navigateur, rien n’est envoyé sur le serveur).
  2. Une première analyse est réalisée, avec les paramètres par défaut.
  3. Vous pouvez modifier les paramètres pour varier ou améliorer l’analyse (cf. les descriptions d’utilisation en 2D et en 3D).

Description des paramètres

  • Écart d’échantillonnage

L’outil utilise un échantillonnage régulier des pixels de l’image pour accélérer le traitement qui pourrait être long. Pour qu’une proportion plus grande de l’image soit analysée, réduisez ce paramètre (mais attention à l’augmentation des temps de traitement).

  • Seuil de différence

Le principe de base de l’analyse est de regrouper les couleurs trouvées en des ensembles de valeurs proches, selon leurs 3 composantes (selon le type d’espace colorimétrique, de mode de définition de couleurs, utilisé, cf. ci-dessous). Ce paramètre permet de regrouper les couleurs dont la différence de valeur est inférieure au seuil fixé.

  • Couleurs principales à exclure

Dans le cas d’une image avec un fond occupant une large surface (par exemple une carte sur fond blanc), il est possible d’enlever la (ou les) couleur(s) de ce fond de la représentation du résultat de l’analyse.

  • Espace de couleurs de travail

La mesure des différences entre la couleur du pixel examiné et celles des groupes déjà trouvés dans l’image s’effectue en calculant la moyenne des différences des composantes des couleurs. Ces composantes diffèrent selon l’espace colorimétrique choisi, c’est-à-dire le moyen de définir informatiquement une couleur.

Dans l’outil, quatre espaces sont disponibles :

  • YUV : ce système sépare luminance (Y) de chrominance (U et V), il est notamment utilisé pour la télévision. Les trois composantes prennent des valeurs entre 0 et 255.
  • HSL : Teinte (sur 360), saturation et luminosité (sur 100).
  • CieL*a*b* et CieL*u*v : modèles établis pour mieux prendre en compte les spécificités de la vision humaine des couleurs. Composantes entre 0 et 255. Les calculs sont plus longs dans ces espaces (mais plus justes).
  • Luminosité min et max

On peut ici réduire l’intervalle de travail lorsque l’on veut restreindre la représentation à une partie seulement de l’image du point de vue de sa luminosité, pour la rendre plus lisible.

  • Contours des cercles

Les cercles colorés de la représentation en 2D peuvent être dessinés avec un contour de luminosité contrastée, pour mieux les distinguer lorsqu’ils sont très clairs ou superposés à d’autres cercles.

  • Libellés des axes

Ce paramètre permet de gérer l’affichage du libellé des axes sur la représentation en 2D.

  • Taille des symboles

On peut ici choisir un pourcentage de modification de la taille des symboles.

  • Axes en 2D

Dans la représentation en 2D, il faut choisir lesquelles des 3 composantes seront réparties sur les 2 axes disponibles (la troisième étant perdue).

  • Type d’analyse

On détermine ici entre une analyse de toute l’image ou seulement des points d’une ligne (a dessiner sur l’image par deux clics sur ses extrémités).

  • Couleur (de référence) du groupe

Cet important paramètre permet de sélectionner quel sera l’indicateur statistique pour calculer la différence de couleur entre le pixel en cours d’analyse et les groupes de couleurs déjà formés précédemment : la moyenne ou la médiane des groupes. L’utilisation de la médiane allonge un peu le temps d’analyse.

  • Opacité

On peut ici choisir d’utiliser des symboles transparents, avec une opacité inférieure à 1.

Fonction du remplacement de la couleur

Avec le panneau n°4, l’outil propose une fonction de remplacement de tout un groupe de couleurs par une couleur choisie.

  1. cliquer sur le bouton « choix de la couleur »
  2. cliquer dans la représentation en 2D sur le groupe de couleurs à remplacer
  3. choisir la couleur de remplacement en cliquant dans le rectangle (dont la valeur par défaut est « ffffff », soit blanc).
  4. cliquer sur le dernier bouton « remplacer la couleur » pour obtenir une image PNG du résultat.

Exportation de la représentation

Le panneau n°5 permet enfin d’exporter la figure résultat de l’analyse sous la forme de :

  • fichiers PNG (pixel) ou SVG (vecteurs) pour l’analyse en 2D
  • fichier PNG pour l’analyse en 3D.