L’outil de synthèse colorée en version carnet JS Observable

Image

Pour rendre plus simple mais aussi plus ouverte l’utilisation de l’outil de création d’une palette synthétique à partir d’une image, il vient d’être porté sur le site de carnets interactifs Observable :
https://observablehq.com/@ljegou/color-abstract-via-multidim-kmeans

Le principe de ces carnets est d’offrir une plateforme interactive de modification et d’exécution de code, ce qui permet de l’utiliser directement mais aussi de le copier et d’en examiner le fonctionnement.

L’un des points qui restait à améliorer était la façon dont l’outil sélectionne les groupes de couleurs représentatifs de l’image, ce qui correspond à une segmentation. Les versions précédentes de l’outil utilisent un algorithme à base d’agglomération progressive des couleurs selon leur proximité, qui fonctionne mais n’est pas très rapide, notamment avec les espaces colorimétriques complexe (comme CIE*Lav et CIE*Luv).

Le choix de l’espace de définition des couleurs

Pour aller vers des algorithmes de segmentation plus robustes et plus rapides, j’ai utilisé ici une méthode assez classique, celle des K-Moyennes (ou K-Means en anglais). Cette méthode produit des segmentations assez rapidement en utilisant un semis aléatoire de départ, qui est affiné progressivement. Il en découle que les segmentations peuvent varier légèrement d’une exécution à l’autre.

J’utilise ici une version multi-dimensionnelle des K-Moyennes proposée par Stanley Fork , détectée et présentée pour Observable par Philippe Rivière. Ici, la segmentation est effectuée sur les valeurs de composante des couleurs échantillonnées dans l’image, selon l’espace colorimétrique retenu (par exemple, les composantes R, V et B en trichromie simple). La rapidité d’exécution permet d’utiliser différents modèles colorimétriques de mesure des couleurs, ce qui permet de les comparer rapidement.

L’autre intérêt de la plateforme Observable, c’est qu’elle gère très bien le travail avec les formes graphiques vectorielles, via la bibliothèque de fonctions SVG D3. Cela permet de pourvoir télécharger directement toutes les illustrations générées au format SVG ou PNG. De même, on peut facilement télécharger les structures de données au format texte JSON :

La palette synthétique détectée, sous la forme d’une structure JSON classée.

Observable propose aussi une bibliothèque pour générer rapidement des graphiques complexes, Plot, que j’ai utilisée ici pour proposer deux histogrammes de la palette synthétique détectée, triée par effectifs décroissants ou par teinte.

Histogramme de la palette détectée, par effectifs décroissants.
Histogramme de la palette détectée, trié selon la teinte.

Exemple d’utilisation

Pour utiliser l’application, quelques étapes :
– Charger une image (JPEG ou PNG, la taille de l’image influe le temps de calcul).
– La synthèse colorée se calcule avec les valeurs par défaut des paramètres, que l’on peut affiner.

La montagne Sainte Victoire de Paul Cézanne, 1902-1904.

Paramètres :
– Nombre de clusters colorés à rechercher : détermine le niveau de regroupement. Choisir plus de clusters (symboles sur le graphique) offrira une analyse plus fine.
– Sampling step : écart d’échantillonnage. L’outil simplifie l’image en une série de points séparés dans l’image par cet écart en pixels. Plus de points affine l’analyse mais allonge le calcul.
– Min. luminosity : Limite minimale de prise en compte des couleurs de l’image, pour ne pas s’occuper des parties trop sombres.

Les paramètres d’analyse de l’image de la Sainte Victoire de Paul Cézanne

Résultat de l’analyse, un graphique par cercles proportionnels sur deux axes en représentation polaire (la teinte est l’angle, le rayon correspond soit à la saturation, soit à la luminosité) :

Le résultat de l’analyse de l’image avec les paramètres ci-dessus.

Comme d’habitude, je suis preneur de toute remarque et commentaire sur l’utilisation de cet outil, n’hésitez pas à l’utiliser et à le modifier à votre tour (on peur “forker” un carnet, c’est à dire en créer une version de copie, sur son propre compte Observable).

À vous de jouer !

Color problems – Emily Noyes Vanderpoel

Image

© éditions The Circadian Press with Sacred Bones

Un manuel pratique pour l’utilisation des couleurs

Les éditions Circadian Press et Sacred Bones ont eu la bonne idée de proposer une réédition moderne de ce manuel pratique publié à l’origine en 1901. L’ouvrage, dans son édition originale est dans le domaine public et disponible également gratuitement via l’Internet Archive ou le site The Public Domain Review.

Emily Noyes Vanderpoel (1842-1939) est une artiste et écrivaine américaine, connue pour son travail en peinture et ses ouvrages historiques. En 1901, elle propose un ouvrage novateur par son approche et son contenu. En quoi ce manuel, vieux de plus d’un siècle est-il intéressant ? D’un point de vue théorique (en histoire de l’art) mais aussi pratique, par sa méthode et les très nombreuses palettes associatives, tirées du réel, qu’il propose.

Intérêt pour la théorie de la couleur

Dès le titre, l’objectif de l’ouvrage est annoncé : traiter de manière synthétique des problèmes que l’utilisation de la couleur peut poser, depuis leur perception jusqu’à leur combinaison. L’auteur s’intéresse donc à la théorie de la perception de la couleur, avec un contenu qui semble aujourd’hui étonnamment avancé : physiologie de la rétine, sensibilité variée aux longueurs d’onde, déficiences de perception (daltonisme / dyschromatopsie.

Expérience de classement des couleurs de fils de laine par un daltonien.

Ensuite, l’ouvrage s’intéresse aux approches théoriques de définition des couleurs, via les composantes : Teinte – Saturation – Luminosité, en suivant et en résumant notamment les idées de Goethe sur les interactions colorées, l’influence du contexte sur la perception d’une couleur et leur combinaisons, d’où le besoin de traiter des couleurs par palettes (en syntagme, comme diraient les sémioticiens).

Le cercle chromatique pour l’étude des oppositions et compléments colorés.

L’auteure s’intéresse au chapitre suivant aux contrastes colorés, selon les composantes décrites précédemment, mais en s’intéressant aussi aux compléments, ce qui rappelle le cercle coloré notamment promu par Goethe. Le contraste simultané qui sera cher à J. Itten est évoqué, mais l’auteure se base surtout sur les travaux d’E. Chevreul pour cette description. Elle en dégage des “règles” pratiques très simples et qui ont pour but de guider l’artiste débutant.e.

Illustration de différents types d’harmonie des couleurs.

On en arrive logiquement à un chapitre sur les harmonies, de contraste/complément comme au chapitre précédent mais aussi en mode monochromatique, par dégradés et, surtout, dans une forme complexe, plus proche de la réalité des œuvres picturales, sous la forme de palettes proportionnées. C’est dans ce dernier domaine que l’ouvrage développe son contenu le plus original et intéressant, en prenant des exemples du monde réel (généralement décoratifs : des tapis persans, des tissus, des vases, des meubles…) et en les organisant selon les règles d’harmonie développées précédemment, en les illustrant par des palettes tout à fait originales en ce qu’elles proposent des assemblages de couleurs sous la forme de mosaïques colorées compactes.

Les palettes colorées

En effet, parmi les 117 planches en couleurs de l’ouvrage on trouve une cinquantaine de palettes-mosaïques, tirées de sources matérielles comme des tissus, des tapis, des poteries et cloisonnés. C’est ici l’apport sensiblement original de l’auteure, qui propose une simplification / interprétation du réel dans sa composition colorée, un résumé des couleurs d’un objet matériel décoratif intéressant.

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 ?