Multidonnées

Arithmétique

Traitement des donnéesMultidonnéesArithmétique

Le module d'arithmétique permet de réaliser des opérations arbitraires sur un seul champ de données ou sur les points correspondant à plusieurs champs (jusqu'à huit pour l'instant). Et bien que ce ne soit pas le but premier, il peut aussi être utilisé comme une calculatrice avec évaluation immédiate lors de l'entrée d'une expression numérique simple. La syntaxe est décrite dans la section Expressions.

L'expression peut contenir les variables suivantes, celles-ci représentant les valeurs des champs de données d'entrée :

VariableDescription
d1, …, d8 Valeur du pixel. La valeur est en donnée en unités physiques de base, par exemple pour une hauteur de 233 nm la valeur de d1 sera de 2.33e-7.
m1, …, m8 Valeur de masque du pixel. La valeur de masque est soit 0 (pour les pixels non masqués) soit 1 (pour les pixels masqués). Les variables de masque peuvent aussi être utilisées si aucun masque n'est présent ; la valeur est alors 0 pour tous les pixels.
bx1, …, bx8 Dérivée horizontale du pixel. Là encore la valeur est donnée en unités physiques. La dérivée est calculée symétriquement autour du pixel, excepté pour les pixels de bord d'images pour lesquels la dérivée n'est calculée que d'un côté du pixel.
by1, …, by8 Dérivée verticale du pixel, définie de manière identique à la dérivée horizontale.
x Coordonnée horizontale du pixel (en unités réelles). Elle est la même pour tous les champs pour des raisons de compatibilité (voir plus bas).
y Coordonnée verticale du pixel (en unités réelles). Elle est la même pour tous les champs pour des raisons de compatibilité (voir plus bas).

De plus, la constante π est utilisable et peut être invoquée avec π ou pi.

Tous les champs de données apparaissant dans l'expression doivent être compatibles. Cela signifie que leurs dimensions (des pixels et physiques) doivent être identiques. Les autres champs de données, c'est-à-dire ceux n'entrant pas dans l'expression, sont sans effet. Le résultat est toujours donné dans un nouveau champ de données du fichier courant (qui peut être différent des fichiers de tous les opérandes).

Comme l'évaluation ne peut inférer automatiquement les unités physiques du résultat, les unités doivent être spécifiées explicitement. Ceci peut être fait de deux manières : soit en sélectionnant un champ de données ayant les mêmes unités que celles attendues pour le résultat, ou en choisissant l'option Spécifier les unités et en tapant les unités.

La table qui suit liste plusieurs exemples d'expressions simples :

ExpressionSignification
-d1 Inversion de valeur. Le résultat est très similaire à la fonction Inverser les Valeurs, à la différence que cette dernière inverse les valeurs autour de la moyenne, alors qu'ici on change simplement le signe des valeurs.
(d1 - d2)^2 Différence au carré de deux champs.
d1 + m1*1e-8 Modification des valeurs sous le masque. Ici la valeur 10-8 est ajoutée à tous les pixels masqués.
d1*m3 + d2*(1-m3) Combinaison de deux champs de données. Les pixels sont pris des champs 1 ou 2, en fonction du masque du champ 3.

En mode calculatrice l'expression est immédiatement évaluée lors de la frappe et le résultat est affiché sous l'entrée de l'expression. Aucune action n'est néecssaire pour passer des expressions avec champs de données à la calculatrice : les expressions ne contenant que des quantités numériques sont immédiatement évaluées, les expressions faisant appel à des champs de données sont utilisées pour calculer un nouveau champ. La prévisualisation affichant le résultat d'une opération contenant des champs de données n'est pas immédiatement mise à jour pendant la frappe ; vous pouvez la mettre à jour en cliquant sur le bouton Mise à jour ou en pressant simplement la touche Entrée dans la ligne d'entrée de l'expression.

Incrustation d'un détail

Traitement des donnéesMultidonnéesIncruster un détail

L'incrustation permet d'insérer l'image d'un détail en haute résolution dans une plus grande image. L'image sur laquelle est lancée cette fonction forme l'image de base, de grande taille.

Le détail peut être positionné manuellement par-dessus l'image de base en utilisant la souris. Le bouton Améliorer peut être utilisé pour trouver les coordonnées exactes dans le voisinage de la position actuelle donnant la corrélation maximale entre le détail et l'image de base. La meilleure position peut aussi être recherchée sur la totalité de l'image de base à l'aide du bouton Localiser.

Notez que la recherche de corrélation est insensible aux échelles et aux décalages, ainsi l'ajustement automatique étant seulement basé sur les motifs des données, les hauteurs absolues ne jouent aucun rôle.

Le Résultat de l'échantillonnage contrôle la taille et la résolution de l'image finale :

Sur-échantillonner l'image globale
La résolution de l'image finale est déterminée par celle du détail. L'image résultante est donc plus grande.
Sous-échantillonner le détail
La résolution de l'image finale est déterminée par l'image de base. L'image du détail sera donc réduite.

La Mise à niveau du détail permet de modifier les valeurs z du détail :

Aucune
Aucun ajustement des valeurs z n'est appliqué.
Valeur moyenne
Toutes les valeurs du détail sont décalées d'une constante de manière à ce que leur valeur moyenne corresponde à celle de la zone correspondante de l'image de base.

Fusion d'images

Traitement des donnéesMultidonnéesFusion

Les images faisant partie d'une image plus grande peuvent être fusionnées à l'aide de cette fonction. L'image sur laquelle on la lance forme l'image de base, l'image sélectionnée par Fusionner avec représente le second opérande. Le côté de l'image de base sur lequel sera attaché la seconde image est contrôllé par la sélection Placer le second opérande.

Si les images sont parfaitement juxtaposables, celles-ci peuvent être directement placées côte à côte sans ajustement. Ce cas peut être géré en sélectionnant Aucun adns le contrôle de l'alignement Aligner le second opérande.

Toutefois, un ajustement est souvent nécessaire. Si les images sont de même taille et alignées perpendiculairement à la direction de fusion alors le seul degré de liberté consiste en une superposition. La méthode d'alignement Joindre peut être utilisée dans ce cas. Contrairement à la recherche de corrélation décrite plus bas, les valeurs absolues des données sont mises en correspondance. Ce qui fait que cette option est adaptée pour fusionner des images ayant de très faibles variations, à conditions que leurs hauteurs absolues soient correctement définies.

L'option Corrélation réalise un alignement automatique basée sur une recherche de la meilleure corrélation. La recherche est réalisée à la fois selon la direction parallèle au côté d'alignement et selon la direction perpendiculaire. Si un décalage est présent le long de la direction parallèle, l'image résultante est agrandie de manière à contenir totalement les deux images (les données non définies étant remplie par une valeur d'arrière-plan).

L'option Traitement des bords n'est utile que dans le cas d'images désalignées. Elle contrôle le traitement des zones de recouvrement des images sources :

Premier opérande
Les valeurs des zones de recouvrement sont prises depuis l'image de base.
Second opérande
Les valeurs des zones de recouvrement sont prises depuis la seconde image.
Doux
Une transition douce entre la première et la seconde image est réalisée sur la zone de recouvrement à l'aide d'une moyenne pondérée utilisant une fonction de pondération adaptée.

Rognage mutuel

Traitement des donnéesMultidonnéesRognage mutuel

Deux images légèrement différentes d'une même zone (par exemple avant et après traitement) peuvent être rognées pour ne garder que les zones d'intersection (ou dit autrement, les zones de non-intersection sont supprimées) à l'aide de ce module.

La zone d'intersection est déterminée par corrélation de l'image la plus grande par rapport au centre de la plus petite image. Les résolutions des deux images (nombre de pixels par unité de longueur) doivent être identiques.

Ici le seul paramètre est Sélectionner le second opérande - la corrélation entre celui-ci et l'image courante sera calculée et les deux champs de données seront rognés pour supprimer les parties proches des bords sans intersection.

Corrélation croisée

Traitement des donnéesMultidonnéesCorrélation croisée

Ce module détermine les corrélations locales des détails de deux images différentes. La sortie idéale renvoie le décalage de chaque pixel de la première image tel qu'il apparaît dans la seconde. Ceci peut être utilisé pour déterminer les variations locales de la surface après l'avoir acquise deux fois (les décalages peuvent par exemple provenir d'une déformation de l'échantillon ou d'un dysfonctionnement de l'appareil de mesure).

Pour chaque pixel du premier opérande (l'image courante), le module prend son voisinage et cherche la meilleure corrélation du seconde opérande dans la zone définie. La position du maximum de corrélation est utilisée pour déterminer la valeur du décalage des pixels du premier opérande.

Second opérande
Image utilisée pour la comparaison avec le second opérande - l'image de base.
Dimensions de recherche
Détermine la zone où l'algorithme recherchera dans le voisinage (dans le second opérande). Cette zone doit être plus grande que la taille de la fenêtre. Il faut augmenter cette taille s'il existe de grandes différences entre les deux images.
Taille de la fenêtre
Détermine la taille du voisinage local (dans le premier opérande). Elle doit être plus petite que la zone de recherche. L'augmentation de cette valeur permet d'améliorer la fonctionnalité du module, mais elle augmentera le temps de calcul.
Type de sortie
Détermine le format de sortie (décalage des pixels).
Ajouter un masque de corrélation basse
Pour certains pixels (n'ayant pas de voisinage marqué) le score de corrélation peut être faible dans toute la zone, mais l'algorithme trouvera toujours un maximum de corrélation. Pour identifier ces pixels et ne pas les utiliser par la suite, vous pouvez laisser le module appliquer un masque de basse corrélation pour les décalage de pixels ayant une probabilité élevée d'être peu précis.

Masquer par corrélation

Traitement des donnéesMultidonnéesMasquer par corrélation

Ce module recherche la corrélation d'un motif dans l'image courante. La position du motif est alors marquée par un masque dans la fenêtre de données.

Noyau de corrélation
Image à trouver dans l'image de base.
Type de sortie
Plusieurs sorties sont disponibles : maxima de corrélation locale (points individuels), masques de la taille du noyau pour chaque maxima de corrélation (intéressant lors des présentations), ou simplement le score de corrélation.
Méthode de corrélation
Permet de sélectionner l'algorithme de calcul de corrélation.
Seuil
Seuil permettant de déterminer si un maximum local doit être considéré comme un « noyau de corrélation trouvé à cet endroit ».

Traitement par réseau neuronal

Le traitement par réseau neuronal peut être utilisé pour calculer un type de données à partir d'un autre, même si la relation entre les deux n'est pas connue de manière explicite. La relation est construite implicitement dans le réseau au travers d'un processus appelé entraînement, qui utilise des données d'entrée et de sortie connues, généralement dénommées modèle et signal. Dans ce processus, le réseau est optimisé de manière à reproduire le plus fidèlement possible le signal à partir du modèle. Un réseau ainsi préparé peut ensuite être utilisé pour traiter les données modèle pour lesquelles le signal n'est pas disponible, et obtenir – de manière approximative – l'allure du signal. Une autre application possible est l'approximation de méthodes de traitement parfaitement définies mais gourmandes en temps de calcul. Dans ce cas le signal est la sortie de la méthode exacte et le réseau neuronal est préparé de manière à la reproduire.

L'apprentissage et l'application étant deux étapes séparées, celles-ci sont disponibles sous deux fonctions différentes dans Gwyddion.

Apprentissage

Traitements des donnéesMultidonnéesApprentissage d'un réseau neuronal

Les fonctions principales permettant de contrôler le processus d'apprentissage sont présentes dans l'onglet Apprentissage :

Modèle
Données modèle, c'est-à-dire l'entrée pour l'apprentissage. Des modèles multiples peuvent être choisis de manière séquentielle pour l'apprentissage (avec les données signal correspondantes).
Signal
Données signal, c'est-à-dure la sortie que le réseau doit pouvoir reproduire après apprentissage. Les données signal doivent être compatibles avec les données modèles, c'est-à-dire que le nombre de pixels et les dimensions physiques doivent être identiques.
Étapes d'apprentissage
Nombre d'étapes d'apprentissage à réaliser après avoir appuyé sur Lancer l'apprentissage. Chaque étape consiste en une passe sur la totalité des données signal. Il est possible de définir un nombre d'étapes nul ; aucune passe d'apprentissage ne sera réalisée mais le modèle sera évalué avec le réseau et vous pourrez oberver le résultat.
Lancer l'apprentissage
Démarre la phase d'apprentissage. Le processus est relativement long, surtout si les données et/ou la taille de fenêtre sont grands.
Ré-initialiser
Initialise le réseau neuronal dans un état sans apprentissage. Plus précisément, cette fonction affecte des poids aléatoires aux neurones.
Mode du masque
Il est possible de réaliser l'apprentissage sur un sous-ensemble du signal, défini par un masque sur les données signal (le masquage du modèle n'aurait pas de sens à cause de la taille de fenêtre).

Les paramètres du réseau de neurones peuvent être modifiés dans l'onglet Paramètres. Le fait de changer la taille de fenêtre ou le nombre de nœuds ré-initialise le réseau (de la même manièr que le bouton Ré-initialiser).

Largeur de fenêtre
Taille horizontale de la fenêtre. Les données d'entrée du réseau consistent en une zone autour du pixel modèle, appelée fenêtre. La fenêtre est centrée sur le pixel, il est donc préférable d'utiliser une taille impaire.
Hauteur de fenêtre
Taille verticale de la fenêtre.
Nœuds cachés
Nombre de nœuds dans la couche « cachée » du réseau de neurones. Un nombre élevé peut aboutir à un réseau plus efficace, par contre l'apprentissage et l'application seront plus longs. Ce nombre est typiquement petit par rapport au nombre de pixels de la fenêtre.
Puissance XY de la source
Puissance selon laquelle les unités des dimensions latérales doivent apparaître dans le signal. Ceci n'est utilisé que lors de l'application du réseau.
Puissance Z de la source
Puissance selon laquelle les unités de « hauteur » du modèle doivent apparaître dans le signal. Ceci n'est utilisé que lors de l'application du réseau.
Unités fixées
Unités fixées du résultat. Celles-ci sont combinées avec les autres paramètres d'unités, pour obtenir des unités indépendantes unités d'entrée il faudra donc mettre les deux puissances à 0. Ceci n'est utilisé que lors de l'application du réseau.

Un réseau neuronal peut être sauvé après l'apprentissage, ou rechargé pour subir un nouvel apprentissage sur des données différentes, etc. La liste des réseaux est semblable aux pré-réglages d'import de fichiers bruts.

En plus des réseaux de la liste, un réseau supplémentaire sans nom est disponible ainsi que le réseau en cours d'apprentissage. Lors du chargement d'un réseau, celui en cours d'apprentissage devient une copie du réseau chargé. Un nouvel apprentissage ne modifie pas les réseaux nommés ; pour sauvegarder un réseau après apprentissage (sous un nom existant ou nouveau) vous devez utiliser le bouton Enregistrer.

Application

Traitement des donnéesMultidonnéesAppliquer un réseau neuronal

L'application d'un réseau neuronal est simple : il suffit d'en choisir un dans la liste et presser OK. Le réseau sans nom en cours d'apprentissage est aussi présent dans la liste sous le nom « Apprentissage en cours ».

Comme les réseaux de neurones traitent et produisent des données normalisées, ceux-ci ne préservent pas correctement les proportions, en particulier si l'échelle du modèle d'entraînement diffère sensiblement de celle des données réelles. Si la sortie est censée être à l'échelle par rapport à l'entrée, vous pouvez activer l'option Mettre à l'échelle proportionnellement à l'entrée qui met la sortie à l'échelle en considérant le rapport inverse entre la plage de donnée actuelle et celle de l'apprentissage.