Alignement
La registration ou alignement est essentiellement le processus d'alignement des images d'une séquence pour pouvoir les traiter par la suite. Tous les processus décrits ci-après calculent la transformation à appliquer à chaque image afin d'être alignée avec l'image de référence de la séquence.
La force de Siril réside dans la grande variété d'algorithmes d'alignement proposés. Chaque méthode est expliquée ci-dessous. L'appui sur le bouton Aligner lance l'alignement de la séquence.
Il est possible de choisir le canal d'alignement. Le vert est le canal par défaut pour les images en couleur, la luminance pour les monochromes. Le signe (*) apparaissant après le nom du canal signifie que des données d'alignement sont déjà disponibles pour ce canal. Lors du traitement des images, les données d'alignement sont extraites du canal par défaut s'il est disponible (pour les images RVB : Vert, sinon retour au Bleu puis au Rouge).
Théorie
Processus d'alignement
Ce que nous appelons Alignement est en fait un processus en trois étapes :
Détecter les caractéristiques à faire correspondre dans toutes les images
Calculer les transformations entre chaque image et l'image de référence
Appliquer la transformation calculée à chaque image pour obtenir de nouvelles images
Selon la méthode d'alignement choisie, les 3 étapes se déroulent (ou non) en un seul processus. Siril utilise les valeurs par défaut les plus raisonnables (choisir d'appliquer ou non la transformation calculée) en fonction de la méthode d'alignement sélectionnée, mais la compréhension de la machinerie interne peut vous aider à modifier ce comportement pour mieux répondre à vos besoins.
Algorithmes
Le tableau ci-dessous détaille les différents algorithmes utilisés pour les 2 premières étapes (détection et calcul de la transformation).
Méthode d'alignement |
Détection des caractéristiques |
Calcul de la transformation |
Translation |
Euclidien |
Similarité |
Affine |
Homographie |
Annuler la distorsion |
---|---|---|---|---|---|---|---|---|
Global |
Correspondance des triangles + RANSAC |
sous-pixel |
x |
x |
x |
x |
||
2 passes |
sous-pixel |
x |
x |
x |
x |
|||
1-2-3 étoiles |
PSF minimisation dans la boîte de sélection |
Décomposition en valeur singulière (2-3 étoiles) Différence (1 étoile) |
sous-pixel (1 étoile) |
(2-3 étoiles) |
||||
Alignement par motif de l'image |
correlation croisée avec boîte de sélection |
pixel |
||||||
KOMBAT |
Max de convolution dans le domaine spatial dans la boîte de sélection |
pixel |
||||||
Comète |
PSF minimisation dans la boîte de sélection |
Décalages du vecteur vitesse à l'aide d'horodatages |
sous-pixel |
|||||
Manuelle |
Vos yeux |
Vos mains |
pixel |
|||||
Astrométrie |
From astrometric solution |
sous-pixel |
x |
x |
Il est également important de garder à l'esprit comment la séquence alignée est introduite dans le processus d'empilement qui est généralement utilisé juste après l'alignement :
si la transformation consiste uniquement en des décalages de pixels, l'algorithme d'empilement peut utiliser ces décalages à la volée lors de la lecture des images. Cela signifie qu'il n'est pas nécessaire de générer des "images alignées". Cela permet de gagner de l'espace de stockage et d'éviter l'interpolation. C'est, bien sûr, au détriment d'un alignement moins précis (c'est-à-dire d'une précision inférieure au pixel) mais c'est généralement utilisé sur des images planétaires/de chance où l'échantillonnage est faible. Cette méthode peut également être appliquée avec une méthode d'alignement qui calcule les décalages sous-pixel. Au cours du processus d'empilement, les décalages seront arrondis à la précision du pixel. Dans tout autre cas, c'est-à-dire lorsque l'empilement est alimenté par une séquence où l'alignement a calculé des transformations plus complexes que de simples décalages mais que les images alignées n'ont pas été sauvegardées, Siril émettra un avertissement vous invitant à exporter les images alignées avant de procéder à l'empilement.
Dans tous les autres cas, une fois les transformations calculées, les images transformées doivent être sauvegardées avant de procéder à l'empilement, généralement nommées avec le préfixe
r_
.
Transformations de l'image
Siril utilise des transformations linéaires, avec différents degrés de liberté, pour mettre en correspondance une image avec l'image de référence :
Translation est un mapping rigide à 2 degrés de liberté (décalages x/y), bien adapté aux images sans distorsion, sans mise à l'échelle et sans rotation de champ. Il ne nécessite qu'une seule paire d'étoiles (ou de caractéristiques) à faire correspondre pour définir la transformation.
Euclidien est un mapping rigide à 3 degrés de liberté (déplacements x/y + une rotation), pour des images sans distorsion, sans mise à l'échelle. Il faut qu'au moins 2 paires d'étoiles soient appariées pour définir la transformation.
Similarité est un mapping à 4 degrés de liberté (une échelle, une rotation et des décalages x/y) plus rigide que l'homographie, bien adaptée aux images sans distorsion. Il faut qu'au moins 2 paires d'étoiles soient appariées pour définir la transformation.
Affine est un mapping à 6 degrés de liberté (deux échelles, un cisaillement, une rotation et des décalages x/y) plus rigide que l'homographie, bien adapté aux images avec peu de distorsion. Elle nécessite la mise en correspondance d'au moins 3 paires d'étoiles pour définir la transformation.
Homographie est la transformation par défaut qui utilise une transformation à 8 degrés de liberté pour déformer les images sur le cadre de référence. Cette transformation est bien adaptée au cas général et fortement recommandée pour les images à grand champ. Elle nécessite la mise en correspondance d'au moins 4 paires d'étoiles pour définir la transformation.
Image de référence
C'est l'image qui est utilisée comme référence commune pour calculer les transformations qui envoient toutes les images de la séquence sur cette image particulière.
Si elle n'est pas définie manuellement, l'image de référence est choisie selon les critères suivants :
si la séquence a déjà été alignée, il s'agit de la meilleure image, en termes de FWHM la plus faible ou de qualité la plus élevée selon le type d'alignement
Sinon, c'est la première image de la séquence qui n'est pas exclue.
Pour spécifier une image comme référence, vous pouvez :
Ouvrir le sélecteur d'images, sélectionner l'image à définir comme nouvelle référence et cliquer sur le bouton Image de référence.
Utiliser la commande setref. Par exemple, si vous voulez définir l'image n°10 comme référence :
setref 10
Ligne de commande Siril
setref sequencename image_number
Pendant l'empilement, l'image de référence est également utilisée comme référence de normalisation, si la normalisation est activée.
Méthodes d'alignement
Alignement global
Il s'agit probablement de l'algorithme le plus puissant et le plus précis pour aligner les images du ciel profond.
L'alignement global est basé sur la méthode de similarité des triangles pour identifier automatiquement les étoiles communes dans chaque image [Valdes1995]. Notre implémentation est basée sur le programme match de Michael Richmond. Ensuite, l'algorithme RANSAC [Fischler1981] est utilisé sur les listes d'étoiles pour rejeter les aberrations et déterminer la matrice de projection. La robustesse de l'algorithme dépend de la capacité à détecter les étoiles tout en évitant les fausses détections. Siril dispose d'un algorithme de détection des étoiles très élaboré qui évite autant que possible de sélectionner des objets qui ne sont pas des étoiles dans le temps le plus court possible. La détection des étoiles les plus brillantes est généralement la plus importante. Cependant, s'il est nécessaire de détecter des étoiles moins brillantes, alors la fenêtre PSF Dynamique peut être utilisée pour ajuster les paramètres de détection.
Il y a peu d'options associées à cette méthode d'alignement car elle est assez automatique.
Le menu déroulant Transformation permet de choisir entre différentes transformations.
Avertissement
La mise en correspondance initiale des étoiles utilise l'algorithme de similarité des triangles, en conséquence le minimum de paires d'étoiles doit être au moins de 3 pour Translation, Similarité et Affine et de 4 pour Homographie.
Les autres options sont :
Le bouton Min. paires d'étoiles définit le nombre minimum de paires d'étoiles qu'une image donnée peut avoir par rapport à l'image de référence. Si une image donnée a moins de paires d'étoiles, elle ne sera pas alignée. A droite de cette option se trouve un bouton qui ouvre l'outil PSF Dynamique.
L'option Maximum d'étoiles ajustées définit le nombre maximum d'étoiles à rechercher dans chaque image (par défaut 2000). Plus cette valeur est grande, plus il y aura d'étoiles potentiellement détectées, résultant en une détection plus longue mais un alignement plus précis.
Enfin, la dernière option, Aligner les étoiles dans la sélection, si vous voulez exécuter l'algorithme d'alignement global des étoiles dans la zone sélectionnée dans l'image de référence. Si aucune sélection n'est effectuée, cette option est ignorée.
Ligne de commande Siril
register sequencename [-2pass] [-noout] [-upscale] [-prefix=] [-minpairs=] [-transf=] [-layer=] [-maxstars=] [-nostarlist] [-interp=] [-noclamp] [-selected]
Alignement 2 passes
L'alignement global des étoiles est effectué en deux passes, ce qui permet de choisir l'image de référence à partir des informations sur les étoiles détectées au lieu de choisir automatiquement la première image de la séquence. Les options proposées sont similaires à l'algorithme Alignement global mais cette méthode ne crée aucune séquence et toutes les informations d'alignement sont enregistrées dans le fichier seq
.
Pendant la détection des étoiles, Siril fixe un maximum de 2000 étoiles à trouver (ceci peut aussi être changé avec l'option appropriée). Dans le cas où plus d'une image a atteint les limites maximales d'étoiles, les listes d'étoiles de toutes les images sont examinées à nouveau. Un nouveau seuil de détection minimum est défini pour pouvoir trier les images à la fois par nombre d'étoiles détectées et par FWHM.
Sauf indication contraire, les listes d'étoiles de toutes les images sont sauvegardées lors de l'utilisation de cette méthode, l'extension .fit(s)
étant remplacée par .lst
. Ceci permet de ré-exécuter l'algorithme 2pass très rapidement avec des paramètres différents, par exemple une transformation différente. Dans le cas où la détection des étoiles a été modifiée, le processus détecte ces changements et relance l'analyse si nécessaire.
Cet alignement doit généralement être suivi par Appliquer l'alignement existant afin d'appliquer la transformation et de construire une nouvelle séquence, à moins que vous n'ayez choisi de calculer le Translation
.
Ces lignes effectuent un alignement en deux passes sur une séquence nommée pp_light et l'appliquent. La sortie est une séquence pp_light.
# Align lights in 2 passes
register pp_light -2pass
seqapplyreg pp_light
Ces lignes effectuent un alignement en deux passes sur une séquence nommée colors et l'appliquent tout en recadrant les images de sortie à la surface commune minimale. La sortie est une séquence pp_colors. Ceci peut être utile avant de composer des images mono (les zones qui ne sont pas communes à toutes les images sont recadrées).
# Align layers in 2 passes and crop away borders
register colors -2pass
seqapplyreg colors -framing=min
Alignement sur 1-2-3 étoiles
Lorsque les images contiennent peu d'étoiles, par exemple dans le cas des images de ciel profond rapide où le temps d'exposition est inférieur à une seconde. Il est possible que l'algorithme d'alignement global échoue, même si vous modifiez les paramètres de détection dans la fenêtre PSF Dynamique. Il peut alors être intéressant de faire une détection manuelle des étoiles que l'on veut aligner. C'est l'intérêt de l'algorithme d'alignement de 1, 2 ou 3 étoiles.
Le principe de cette méthode est de dessiner une zone de sélection autour d'une étoile et de cliquer sur le bouton Pointer l'étoile 1, et ainsi de suite.
Si une seul étoile est sélectionnée, seul la translation entre les images sera calculé. En conséquence, le bouton Translation seulement est automatiquement sélectionné. Les valeurs de translation sont alors stockées dans le fichier
seq
.Si deux ou trois étoiles sont sélectionnées, la rotation peut être calculée et appliquée pour créer une nouvelle séquence. Cependant, si l'option Translation seulement est sélectionnée, ce qui n'est pas obligatoire, seuls les décalages seront calculés.
L'option Suivre le mouvement de l'étoile utilise la position des étoiles trouvées dans l'image précédente comme nouveau centre pour l'alignement de l'image actuelle. Cela permet de réduire la zone de sélection, d'accélérer l'alignement et de tenir compte de la dérive ou des images comportant un grand nombre d'étoiles.
Avertissement
L'activation de cette option implique que l'alignement n'est pas parallélisé et qu'il s'exécute sur un seul cœur du processeur.
Alignement par motif de l'image (planétaire - disque entier)
Il s'agit d'un simple alignement par translation en utilisant la méthode de corrélation croisée dans le domaine spatial.
Cette méthode est rapide et est utilisée pour aligner les films planétaires, dans lesquels des informations contrastées peuvent être observées sur de grandes zones de l'image. Elle peut également être utilisée pour l'alignement d'images du ciel profond. Néanmoins, il faut garder à l'esprit qu'il s'agit d'une méthode d'alignement en un seul point, ce qui la rend peu adaptée à l'alignement de planètes en haute définition. Mais elle permet d'ancrer efficacement les images pour stabiliser la séquence. Il suffit de faire une sélection autour de l'objet (la planète par exemple) et de s'assurer que son mouvement pendant la séquence est contenu dans la sélection. Seule la translation peut être calculée avec cette méthode.
KOMBAT
Cette méthode provient de la bibliothèque OpenCV, une bibliothèque largement utilisée dans Siril. Ils expliquent :
Il suffit de faire glisser l'image modèle sur l'image d'entrée (comme dans la convolution 2D) et de comparer le modèle et le patch de l'image d'entrée sous l'image modèle. Plusieurs méthodes de comparaison sont implémentées dans OpenCV. (Vous pouvez consulter la documentation pour plus de détails). Il renvoie une image en niveaux de gris, où chaque pixel indique dans quelle mesure le voisinage de ce pixel correspond au modèle.
En pratique, il suffit de tracer une sélection autour de l'objet (la planète par exemple) et de s'assurer que son mouvement au cours de la séquence est contenu dans la sélection. Seule la translation peut être calculée avec cette méthode.
Alignement Comète/Astéroïdes
L'outil d'alignement cométaire fonctionne d'une façon très simple, en deux étapes.
Dans le sélecteur d'image, sélectionnez la première image de la séquence, entourer le noyau cométaire, ensuite cliquer sur le bouton Pointer objet dans #1.
Ensuite sélectionnez la dernière image de la séquence, entourez le noyau cométaire, ensuite cliquez sur le bouton Pointer objet dans #2.
La vitesse de la comète \(\Delta x\) et \(\Delta y\) est calculé en pixel par heure si tout est ok.
Avertissement
L'alignement de la comète doit se faire sur des images dont les étoiles ont été préalablement alignées. Soit via une nouvelle séquence, avec l'alignement global, soit en ayant sauvegardé les informations d'alignement dans le fichier seq
. Dans ce dernier cas, l'option Cumul données alignment (expliquée ci-dessous) prend tout son sens.
Note
Pour fonctionner pleinement, les images doivent être horodatées. Seules les images FITS, SER et TIFF sont compatibles avec cette fonctionnalité.
Alignement manuel
Cette dernière méthode d'alignement est très particulière, ce qui explique sa position à part, et permet d'aligner les images manuellement. Bien entendu, seule la translation entre les images est autorisée.
La première chose à faire est de définir deux aperçus dans l'image. En cliquant sur le bouton Définir 1er aperçu (Définir la première prévisualisation), vous initialiserez la première prévisualisation. Il faut alors cliquer sur une zone de l'image, idéalement une étoile à proximité d'un bord de l'image pour définir la zone de prévisualisation. Un clic sur le second bouton Définir 2d aperçu permet de faire de même sur un second point.
Il est très important d'avoir une image de référence déjà définie avec le Sélecteur d'image. Par défaut, il s'agit de la première image. L'utilisateur est libre de choisir celle qu'il veut. Elle servira d'image de référence, vu par transparence, pour aligner les images manuellement avec les boutons numériques. Ensuite, parcourez les images une à une pour appliquer la même méthode à l'ensemble de la séquence.
Appliquer Alignement Existant
Il ne s'agit pas d'un algorithme, mais plutôt d'une commodité pour appliquer les données d'alignement précédemment calculées et stockées dans le fichier de séquence. La méthode d'interpolation peut être sélectionnée dans la section Sortie d'alignement. Vous pouvez également utiliser le filtrage d'image pour éviter d'aligner des images inutiles, comme dans l'empilement Rejet des images. Il y a aussi une option Drizzle pour appliquer l'alignement en utilisant le drizzle au lieu de l'interpolation. Voir la section Drizzle pour plus de détails.
Quatre méthodes de cadrage sont disponibles :
: Actuelle utilise l'image actuelle comme image de référence. Il s'agit du comportement par défaut.
: maximum (zone de délimitation) ajoute un bord noir autour de chaque image si besoins affin qu'aucune partie de l'image soit recadré lors de l'alignement.
: minimum (zone commune) recadre chaque image sur la zone qu'elle a en commun avec toute les images de la séquence.
: centre de gravité détermine la meilleur position de cadrage en tant que centrer de gravité (cog) de toutes les images.
Ligne de commande Siril
seqapplyreg sequencename { -upscale | -drizzle { [-scale=] [-pixfrac=] [-kernel=] [-flat=] } } [-interp=] [-noclamp] [-layer=] [-framing=] [-prefix=] [-filter-fwhm=value[%|k]] [-filter-wfwhm=value[%|k]] [-filter-round=value[%|k]] [-filter-bkg=value[%|k]] [-filter-nbstars=value[%|k]] [-filter-quality=value[%|k]] [-filter-incl[uded]]
[-filter-fwhm=value[%|k]] [-filter-wfwhm=value[%|k]] [-filter-round=value[%|k]] [-filter-bkg=value[%|k]]
[-filter-nbstars=value[%|k]] [-filter-quality=value[%|k]] [-filter-incl[uded]]
Sortie d'alignement
Ce cadre contient tous les éléments de sortie de la séquence.
Le bouton Drizzle active l'algorithme drizzle pour le traitement de cette séquence. Voir la section Drizzle pour plus de détails.
Avertissement
La contrepartie de cette technique est que la quantité de mémoire et d'espace disque nécessaire à la création et au traitement des images drizzle est multipliée par le carré du facteur d'échelle du drizzle.
Lorsque le bouton Enregistrer la transformation dans le fichier seq uniquement est coché, les images transformées ne sont pas sauvegardées en tant que nouvelle séquence alignée. Dans les deux cas, les matrices de transformation sont enregistrées dans le fichier de séquence. Les données d'alignement peuvent alors être inspectées et certaines images désélectionnées, avant d'appliquer les transformations à l'aide de la méthode Appliquer l'alignement existant. Cette option est automatiquement cochée pour les méthodes d'alignement qui produisent des données d'alignement translation seulement. Si cette option n'est pas cochée, il est possible de définir un préfixe pour la nouvelle séquence qui sera créée. Par défaut, il s'agit de
r_
.Si une nouvelle séquence est créée, avec l'application d'une transformation complète, alors les pixels des images résultantes sont interpolés par un algorithme laissé au choix de l'utilisateur. Il existe 5 algorithmes d'interpolation possibles, plus une option Aucun :
Plus Proches Voisins
Bilinéaire
Bicubique
Zone de relation des pixels
Lanczos-4
Aucun
Les méthodes d'interpolation les plus efficaces sont généralement bicubiques et Lanczoz (utilisées par défaut). Cependant, elles nécessitent que l'option Contrainte de l'interpolation soit activée pour éviter les artefacts en anneaux autour des étoiles. Mais cette dernière peut s'avérer inutile dans certains cas. Nous vous recommandons de tester avec vos images.
Le cas particulier de Aucun est réservé au cas de l'alignement global et de l'application de l'alignement existant. Si vous souhaitez exporter ou sauvegarder une séquence qui ne contient que de la translation, sans utiliser d'interpolation (afin de ne pas modifier les valeurs des pixels), vous devez sélectionner Aucun.
La dernière option Cumul données alignement, doit être cochée si vous voulez que les nouvelles données d'alignement soient ajoutées aux précédentes. Cette option est utile lorsque la séquence a été précédemment alignée en utilisant une méthode qui ne construit pas une nouvelle séquence, mais elle doit être décochée lorsque l'algorithme comète/astéroïde est appliqué plusieurs fois de suite.
Alignement astrométrique
Introduit dans la version 1.3, c'est le mode préféré pour assembler des mosaïques ou des images avec peu de chevauchement. Son panneau est très similaire à Appliquer l'alignement existant car les informations pour exporter les images alignées ont déjà été calculées lorsque l'on procède à l'astrométrie de la séquence.
Les options spécifiques à ce mode sont les suivantes :
Le bouton Estimer qui lancera le calcul du cadrage, mais sans exporter les images. Cette information peut être intéressante pour connaître à l'avance la taille des images exportées. Cela tient compte de la méthode de cadrage sélectionnée et du facteur d'échelle choisi dans la Sortie d'alignement
En appuyant sur Estimer, la console affichera une sortie comme celle-ci :
Output image: 4961 x 4605 pixels (assuming a scaling factor of 0.80)
Space required for storage: 130.7 MiB
Le panneau de sortie d'alignement présente également quelques particularités :
L'option annuler distorsion permet d'utiliser les CoefficientsSIP. Cette option ne sera activée que si la solution astrométrique des images contient ces coefficients. Cela peut s'avérer utile lors de l'alignement d'images en présence de distorsion optique.
Échelle peut être réglé entre 0.1 et 2 pour mieux contrôler la taille des images de sortie.
Ligne de commande Siril
seqapplyastrometry sequencename [-interp=] [-noclamp] [-noundistort] [-scale=] [-framing=] [-prefix=] [-filter-fwhm=value[%|k]] [-filter-wfwhm=value[%|k]] [-filter-round=value[%|k]] [-filter-bkg=value[%|k]] [-filter-nbstars=value[%|k]] [-filter-quality=value[%|k]] [-filter-incl[uded]]
[-filter-fwhm=value[%|k]] [-filter-wfwhm=value[%|k]] [-filter-round=value[%|k]] [-filter-bkg=value[%|k]]
[-filter-nbstars=value[%|k]] [-filter-quality=value[%|k]] [-filter-incl[uded]]
Références
Fischler, M. A., & Bolles, R. C. (1981). Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography. Communications of the ACM, 24(6), 381-395.
Valdes, F. G., Campusano, L. E., Velasquez, J. D., & Stetson, P. B. (1995). FOCAS automatic catalog matching algorithms. Publications of the Astronomical Society of the Pacific, 107(717), 1119.