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.

 

 

Exemple commenté d’utilisation : Van Gogh, Fritillaires dans un vase en cuivre, 1887

Image

Fritillaires 1887

Van Gogh, Fritillaires, 1887

Ce tableau est une œuvre de V. Van Gogh (1853-1890) réalisée en 1887 à Paris, alors que le peintre étudie les idées néo-impressionnistes de Paul Signac (1863-1935), notamment en ce qui concerne sur la couleur.
On peut en trouver une reproduction numérique de bonne qualité sur le site Wikipedia Commons. Cette peinture est exposée au Musée d’Orsay à Paris, qui en fait une présentation commentée.

Cette œuvre est particulièrement intéressante ici pour son utilisation des contrastes et des oppositions de couleurs, que nous allons pouvoir analyser et représenter visuellement avec l’outil de synthèse.

A première vue, le contraste coloré voulu par l’auteur se divise donc en deux applications :

  • un contraste de luminosité, entre des fleurs éclatantes, le reflet du vase et les ombres ;
  • un contraste de teinte, entre des rouges-orangés et des bleus-violacés.

L’analyse de l’image avec les paramètres par défaut, HSL en en 2D, nous donne le résultat suivant :

Analyse VVG Fritillaires 1

Analyse avec les paramètres par défaut

La disposition angulaire des couleurs indique la présence d’une opposition orangés / bleus de saturations assez variées, ainsi que l’utilisation de verts moins diversifiés, dont la saturation maximale reste à un niveau moyen. La dimension des symboles et leur confusion centrale (superposition) ne permet pas d’aller bien plus loin dans l’analyse, il faut donc affiner les paramètres de la représentation.

Nouveaux paramètres :

  • Écart d’échantillonnage 40 (pour prendre en compte plus d’échantillons)
  • Seuil de différence entre groupes : 10 (pour des groupes de couleurs plus précis)
  • Espace de travail : CieL*a*b (pour une meilleure prise en compte de la perception visuelle)
Analyse VVG Fritillaires 2

Analyse avec des paramètres plus adaptés

Par rapport à la représentation précédente, on obtient une image plus précise, plus lisible, mais il reste tout de même un grand nombre de superpositions au centre de la figure (beaucoup de couleurs peu saturées). On voit par exemple que la ligne d’oppositions principales orange / bleu se complète certes d’un groupe de verts moyens mais aussi d’une ligne de jaunes de saturations variées, qui ne se retrouve pas dans la teinte opposée (les bleu-verts). Cependant, les différences de luminosité sont masquées par le type de représentation qui, par défaut, présente la saturation sur le second axe.

Pour aller plus loin, on peut donc regarder comment cette répartition des teintes se réalise quand on prend en compte la luminosité à la place de la saturation des couleurs.

Analyse VVG Fritillaires 2

Analyse en mode HLS

La dispersion des couleurs sur l’axe de la luminosité semble aussi assez réduite, mais comme elle se trouve dans un intervalle autour de valeurs moyennes, on obtient un anneau de teintes qui permet de les distinguer plus facilement. Cela peut être le résultat d’une photographie trop peu contrastée de l’œuvre. Cette nouvelle figure montre, de plus, qu’il existe un « pont » une liaison entre les bleus et les verts ainsi que quelques teintes violacées, auparavant perdues dans la superposition des couleurs.

Comment faire pour éviter ces superpositions qui gênent la lecture ? Deux solutions :

1. Réduire la taille des symboles (mais ils risquent d’être très petits)

Analyse VVG Fritillaires 3ter

Réduction des symboles à 4%

2. Utiliser la transparence (mais les couleurs vont se mélanger)

Analyse VVG Fritillaires 3bis

3. Utiliser la représentation en 3D

 

Analyse VVG Fritillaires HLS 3D

3D HSL vue de dessus

La représentation 3D par défaut vue de dessus correspond à l’image 2D, pour en faciliter l’utilisation.

Analyse VVG Fritillaires HLS 3D

3D HLS vue de côté

En faisant pivoter cette représentation selon l’axe des X on obtient une meilleure lisibilité des 3 composantes colorées :

  • la teinte est comme précédemment matérialisée par l’angle
  • la luminosité par la distance horizontale à la ligne centrale
  • la saturation par la position verticale sur l’axe Z (en bleu, vertical ici)

La représentation complémentaire en HSL apporte des précisions utiles :

Analyse VVG Fritillaires HSL 3D

Analyse 3D HSL (zoom)

On peut ici faire des remarques supplémentaires :

  • les rouges sont généralement moins denses et moins lumineux que les jaunes, formant un gradient en éventail.
  • les bleus sont plus isolés dans les teintes, on voit peu de teintes intermédiaires vers les verts et les violets.
  • les verts se lient aux rouges par les densités et luminosités faibles, ils s’étendent peu vers les fortes luminosités mais varient quelque peu de teinte.
  • un violet nettement délimité, présent en trois valeurs de luminosité non dégradées.
  • une forme en cône inversé sur la représentation HSL, qui indique une relation entre faible saturation et faible luminosité. Plus la couleur est claire, plus elle sera dense, dans ce tableau. Le contraste de luminosité annoncé est donc bien lisible et se double d’un contraste de densité qui est lié.

Le fait de visualiser les trois composantes colorées en même temps, à l’aide d’une interface utilisateur qui permet de varier l’angle et la position de l’observation de manière précise et interactive, offre donc un moyen plus complet pour l’analyse des proportions et des relations colorées d’une image.

 

Outil de synthèse colorée d’une image : version 2

Humeur du moment

L’outil d’analyse et de représentation synthétique des couleurs d’une image a profité d’une nouvelle session de développement pour améliorer l’interface utilisateur et corriger les derniers bugs d’affichage. De manière moins visible, le code source a été rationalisé et optimisé, pour une compréhension et une réutilisation plus simple.

La nouvelle adresse de l’outil est désormais :

http://www.geotests.net/couleurs/v2/

Les principales modifications fonctionnelles sont :

  • Modification du mode de calcul des groupes de couleur : plus précis, évite les doublons, mais plus gourmand en temps de calcul (attention aux images de grande taille).
  • Amélioration de la visualisation 3D : plus lisible et munie d’un panneau de commande pour les déplacements et rotations de camera.
  • Ajout d’un export de la représentation 2D au format vectoriel SVG.
  • Ajout d’un export PNG (raster) de la représentation 3D.

Une nouvelle version de la page d’aide à l’utilisation est en cours de rédaction et sera disponible dans la journée.

Outil de synthèse colorée : sauvegarde des palettes

Une fonctionnalité manquait à l’outil de synthèse colorée : la possibilité de sauvegarder la palette trouvée, la liste des couleurs et de leurs proportions,

Un petit lien est donc maintenant disponible sous la liste des 20 premières couleurs de la palette trouvée, à droite de l’outil :

Sauvegarde de la palette

 

Ce lien permet le téléchargement d’un fichier texte au format CSV (séparateur : point-virgule, lisible par un tableur), qui contient les valeurs des composantes des couleurs dans leur espace colorimétrique d’origine (YUV, HSL CIELab ou CIELuv), dans l’espace écran RVB, le nombre de pixels échantillonnés et l’encodage hexadécimal (HTML).

Nouvel outil de création de gradients doubles

Image


inflexion

On utilise très souvent les gradients doubles en cartographie thématique, par exemple lorsque le phénomène à représenter présente des valeurs positives et négatives, ou qu’il existe un seuil utile dans ses valeurs (moyenne, indice 100, etc.).

L’outil de création de gradients pouvait être utilisé en deux fois pour créer une telle double progression, mais il est plus simple désormais d’utiliser un nouvel outil développé spécifiquement :

En français : http://www.geotests.net/couleurs/gradients_inflex.html
En anglais : http://www.geotests.net/couleurs/gradients_inflex_en.html

L’outil propose la modification d’une quatrième composante : la transparence, en plus des trois classiques, teinte, saturation et luminosité, suite à une idée de F. Bahoken. Cette fonction a aussi été ajoutée à l’outil de création de gradients d’une seule progression.

Nouvelle version de l’outil de synthèse colorée

Image

De nouveaux développements de cet outil ont été effectués, pour prendre en compte des idées intéressantes : la possibilité de rendre transparents les symboles de l’analyse (F. Bahoken) et le choix de la méthode de représentation des groupes de couleurs.

Rappel, les URLs de l’outil :

En français : http://www.geotests.net/couleurs/frequs_svg.html?l=fr
En anglais : http://www.geotests.net/couleurs/frequs_svg.html

Synthèses colorée avec transparence

Transparence dans les symboles de l’analyse

 La transparence des symboles permet de visualiser leur plus ou moins grande superposition, dans le cas de réglages favorisant des groupes de couleurs proches. Elle produit en outre des visualisations qui ont un intérêt esthétique dans le mélange des couleurs.

moyenne et médiane Analyse de la carte avec un gradient jaune-vert.

La seconde modification de l’outil concerne la méthode selon laquelle les couleurs d’un même groupe sont représentés par une couleur et donc par un symbole unique. Auparavant c’est la moyenne des couleurs du groupe qui avait ce rôle représentatif, mais le risque existe que la couleur moyenne d’un groupe n’existe pas réellement dans l’image. On a donc ajouté la possibilité d’utiliser la couleur médiane, c’est à dire celle qui est représentée en plus grand nombre dans le groupe.

Dans certains cas, le résultat de l’analyse sera donc légèrement différent selon la méthode utilisée, surtout si on utilise des paramètre produisant un petit nombre de symboles sur l’analyse (ie. un seuil de regroupement important).

Dans tous les cas on conseille de faire varier légèrement les paramètres de seuil et de tester plusieurs espaces colorimétriques de calcul, l’algorithme d’analyse étant sensible et pouvant produire des résultats sensiblement différents dans les détails.