Concepts de Lynkeos
Lynkeos utilise certains concepts de traitement du signal, qui sont détaillés ci-dessous.
Signal et bruit
L'image enregistrée par le détecteur n'est pas parfaite (sinon, pourquoi utiliseriez vous ce logiciel ?). Elle peut être décrite comme une image parfaite, détériorée par divers processus (la turbulence par exemple).
En traitement du signal, l'image parfaite est appelée "le signal" et les détériorations, "les bruits".
Le terme "bruit" est plus exactement employé pour une détérioration statistiquement aléatoire, pour un processus systématique on emploie le terme "biais".
Quand beaucoup d'images sont additionnées, le signal et les biais sont additionnés (ils croissent linéairement avec le nombre d'images), tandis que le bruit est additionné quadratiquement. Cela signifie que le bruit résultant est égal à la racine de carrée de la somme des carrés du bruit dans chaque image (vous vous rappelez ? Ce satané théorême de Pythagore ?). En bref, quand vous accumulez les images, le signal et les biais augmentent plus vite que le bruit aléatoire : accumulez 4 images, le signal et les biais sont multipliés par 4 (ben oui!), et les bruits par 2, le signal est deux fois plus fort par rapport au bruit dans l'image résultante. Mais comme les biais s'accumulent avec le signal, il faut les corriger avant l'accumulation.
Les bruits et biais dont souffrent nos images sont :
- La turbulence : la turbulence atmosphérique fait bouger l'image de façon aléatoire, la déforme et la rend floue.
- La non uniformité de transmission/sensibilité : comme notre système optique n'est pas parfait (rien ne l'est en ce bas monde!), la lumière n'est pas transmise uniformément sur la surface du détecteur. Le cas le plus connu est le vignettage : un assombrissement dans les coins. Les photosites (pixels) du détecteur ne possèdent pas tous la même sensibilité à la lumière, l'effet sur l'image capturée est le même que ci-dessus.
- Le bruit de photons : comme l'a proposé A. Einstein en 1905, la lumière interagit de façon discrète avec notre détecteur ; le quantum de lumière fut plus tard baptisé "photon". Sous la même illumination, le nombre de photons frappant deux photosites est différent, car la "capture" d'un photon est (dans l'état actuel des connaissances) aléatoire.
- Le biais et le bruit thermique : les photons délogent des électrons du semiconducteur, lequels s'accumulent dans le puit de potentiel du photosite. Le problème est que les électrons ne sont pas tous produits par des photons, ils sont aussi produit par l'agitation thermique dans le substrat du détecteur. Ces électrons "thermiques" s'accumulent aussi dans les photosites. Le nombre d'électrons thermiques dans un photosite dépend de la température du détecteur, des propriétés du substrat dans la région du photosite et du temps d'intégration (le temps qui s'est écoulé depuis que le photosite a été vidé). Ceci est un biais thermique. Mais comme la production d'électrons thermique est statistiquement aléatoire, il y a un bruit thermique aléatoire, analogue au bruit de photons.
- Le bruit de transfert et de lecture : les électrons d'un photosite sont déplacés de puit de potentiel en puit de potentiel jusqu'à ce qu'ils arrivent dans un dernier puit où ils sont "lus". Certains électrons sont perdus durant le transfert et la lecture est sujette à des bruits électroniques. La perte par transfert est négligeable dans une webcam car les autres bruits sont largement plus puissants.
- Le bruit de quantification : ce nombre d'électrons est transformé par quelque magie noire du silicium en une valeur numérique par un convertisseur analogique numérique. Le pas de ce convertisseur n'est pas d'un électron, mais beaucoup plus. Donc, deux nombres différents d'électrons peuvent être convertis en la même valeur. Ceci est un bruit. Ce bruit n'est pas aléatoire par nature. Mais si les bruit aléatoires ont une amplitude supérieure au pas du convertisseur, on peut le traiter comme s'il était aléatoire. Suivant la caméra ou le sujet, ceci peut être un biais inconnu ou un bruit "imitation d'aléatoire".
Beaucoup de fonctions de ce logiciel servent à réduire le niveau d'un type de bruit :
- Le biais thermique est corrigé en soustrayant une image thermique de toutes les images et en accumulant beaucoup d'images (pour niveler le bruit thermique restant).
- Les biais de non uniformité sont corrigés en divisant chaque image par une image de champ.
- Les mouvements aléatoires provoqués par la turbulence sont corrigés en réalignant toutes les images.
- Les bruits de photons, de lecture et de quantification sont diminués en accumulant un grand nombre d'images.
- Le flou provoqué par la turbulence et des imperfections optiques, peut être diminué par un filtre de déconvolution.
Calibration des images
Avant tout traitement, chaque image doit être calibrée, cad : retirer les biais.
Pour créer les images de calibration décrites ci-après, tous les réglages de la webcam doivent être (sauf si précisé) les mêmes que lors de l'enregistrement des images à traiter.
Image thermique
L'image thermique est la moyenne d'un grand nombre d'images enregistrée avec le télescope fermé, à la même température que lors de l'enregistrement des images à traiter.
Elle est soustraite de chaque image avant traitement.
Image de champ
L'image de champ est la somme (normalisée à un) d'un grand nombre d'images enregistrée avec le télescope pointé sur un champ illuminé uniformément, avec une durée d'exposition donnant une image suffisament brillante mais non saturée. C'est une mesure de la non uniformité du produit transmission x sensibilité.
Chaque image est divisée par l'image de champ avant traitement.
Alignement des images
Pour réaligner deux images, Lynkeos utilise leur inter-corrélation.
Pour aller plus vite (ou moins lentement...), il utilise une transformée de Fourier rapide (TFR), c'est pourquoi la zone de recherche d'alignement est un carré, dont le coté est une puissance de deux.
Il cherche alors un pic dans le résultat d'inter-corrélation, ce qui donne le décalage entre les deux images.
Ce traitement est influencé par deux préférences utilisateur :
- La fréquence de coupure d'alignement est la fréquence au dessus de laquelle les spectres des images sont mis a zéro.
- Ceci permet d'éviter de faux alignements sur du "bruit systématique" comme l'entrelacement des trames vidéo.
- Le seuil de précision d'alignement définit la valeur maximum de l'écart type du pic de corrélation ; si l'écart type est inférieur à cette valeur, l'alignement est réussi.
Analyse de la qualité des images
Pour évaluer la qualité d'une image, Lynkeos donne le choix entre deux méthodes : l'une est basée sur l'entropie de l'image, l'autre sur son spectre de puissance.
1. Analyse de l'entropie
L'analyse de l'entropie mesure la "quantité d'information" présente dans l'image. Les images nettes contiennent en général plus d'information.
Cette méthode est en général efficace sur les images planétaires.
2. Analyse du spectre de puissance
Dans le cas de l'analyse du spectre de puissance, on utilise encore la TFR pour des question de rapidité, la zone d'analyse est donc un carré dont le coté est une puissance de deux. Le niveau de qualité est la moyenne du spectre de puissance entre deux fréquences, qui sont réglables dans les préférences utilisateur :
- Seuil de basse fréquence d'analyse : définit la fréquence en dessous de laquelle il n'y a que du "flou".
- Seuil de haute fréquence d'analyse : définit la fréquence au dessus de laquelle il n'y a que du bruit.
Cette méthode ne s'est pas montrée particuliérement efficace, mais est conservée pour des raisons historiques ; comme c'était la seule méthode disponible dans les premiéres versions de Lynkeos, elle sert peut être à quelqu'un.
Aucune méthode d'analyse n'est parfaite, jusqu'à présent. Donc, si vous connaissez un super algorithme d'analyse, faites le moi connaître.
Accumulation
Pour accumuler les images, Lynkeos décale les images pour compenser leurs désalignement, à une fraction de pixels près. Chaque pixels est découpé en 4 selon les fractions de pixels du décalage, puis accumulé dans les pixels de l'image résultante.
L'accumulation des valeurs RVB des pixels est faite en nombres à précision flottante, il n'y a donc aucun risque de "débordement de luminosité" en additionnant un grand nombre d'images lumineuses.
Traitement final
Le traitement final est effectué en appliquant divers filtres de traitement d'image. L'application contient les traitements suivants.
- La déconvolution consiste à diminuer le flou de l'image, qui est une convolution, d'où le nom. Elle est réalisée en divisant le spectre de l'image par le convolueur présumé, une gaussienne dans notre cas. Le seuil est la valeur du module du spectre du convolueur en dessous de laquelle la division n'est pas faite (filtre de Wiener). Ceci évite d'amplifier les plus hautes fréquences au delà du raisonnable (essayez un seuil trés bas pour voir de quoi je parle).
- La déconvolution de Lucy Richardson est un algorithme itératif qui effectue aussi une déconvolution sur l'image. Il est plus difficile à maîtriser, mais peut donner de mailleurs résultats. Le convolueur est choisi parmi une courbe de Gauss, un échantillon de l'image à traiter, ou lu dans un fichier image.
- Le filtre d'ondelettes est un traitement où l'image est découpée en couches de fréquences (chacune isolée en appliquant une ondelette, d'où le nom), et chaque couche amplifiée ou atténuée séparément.
- Le masque flou est la version numérique d'une technique de laboratoire. Cela consiste à soustraire l'image originale "floutée" à elle même. Ceci amplifie les détails et amoindrit les variations de luminosité à grande échelle.
D'autres traitements d'image peuvent être ajoutés à l'application par des greffons (ou plugins, en franglais).
L'image traitée est une image RVB en nombres à précision flottante, elle est ramenée en RVB entier sur 8 bits pour affichage dans le cadre image, à partir des niveaux de noir et de blanc donnés par l'utilisateur.
Il n'y a, là encore, aucun risque de débordement de luminosité, quel que soit le traitement effectué (n'oubliez pas d'ajuster les niveaux).
L'image traitée est convertie de la même façon pour l'enregistrer dans un fichier.
Référence ...