Réduction de bruit

Bruit de l'image

Les images souffrent de différents types de bruit :

  1. Le bruit impulsionnel

    • Ce type de bruit (parfois appelé “bruit poivre et sel”) provient généralement de pixels chauds ou froids. Il est généralement traité en utilisant l’empilement par rejet, mais vous devrez parfois y faire face si vous traitez une image seule, non empilée.

  2. Bruit blanc gaussien additif

    • Ce type de bruit est typique des photographies bien éclairées : il provient des fluctuations thermiques et électroniques du dispositif d’acquisition, et le niveau de bruit est indépendant du signal. Il peut être réduit au moment de la capture en utilisant des caméras refroidies, et il est réduit lors de l’empilement car l’empilement de \(n\) images augmente le signal corrélé d’un facteur \(n\) alors que le bruit non corrélé n’augmente que d’un facteur \(\sqrt{n}\). C’est également le type de bruit que la plupart des algorithmes de débruitage classiques sont conçus pour éliminer.

  3. Bruit de Poisson

    • Lorsque l’on a affaire à des images pauvres en photons, le caractère du bruit cesse d’être principalement gaussien et la nature probabiliste du comptage des photons devient significative, voire dominante. Ceci est modélisé par une distribution de Poisson et ce type de bruit dépend du signal.

Réduction du bruit dans Siril

Siril fournit des algorithmes classiques de débruitage bien étudiés et à la pointe de la technologie. Les critères qui nous ont poussé à choisir les algorithmes présentés ici étaient les suivants :

  • L’algorithme devait être analysé dans des revues académiques à comité de lecture, avec une description de l’algorithme et une comparaison quantitative objective de ses performances.

  • Les auteurs doivent avoir mis à disposition une implémentation F/OSS. Ceci est important pour éviter les problèmes de propriété intellectuelle et, lorsque les implémentations de référence ont été utilisées directement, pour assurer la compatibilité des licences.

  • Les algorithmes doivent fonctionner à une vitesse raisonnable.

  • Enfin, l’implémentation de l’algorithme doit être capable de traiter des données de pixels en virgule flottante 32 bits.

La technologie de débruitage par réseau neuronal a été étudiée, mais écartée pour le moment en raison de la complexité de son développement. La performance de débruitage des réseaux neuronaux peut typiquement battre les approches classiques jusqu’à un dB de rapport signal/bruit de pointe, mais la performance dépend fortement du réseau neuronal entraîné sur des données représentatives des données réelles.

denoise-dialog

Fenêtre du réduction de bruit

Algorithmes : Bruit impulsionnel

Siril élimine principalement le bruit d'impulsion par l'empilement avec rejet sigma. Si vous utilisez cette méthode d'empilement, vous ne devriez pas avoir de problèmes avec le bruit impulsionnel. Cependant, si vous travaillez sur une seule exposition, vous pouvez trouver du bruit d'impulsion dans votre image. Celui-ci doit être traité à l'aide de la fonction Correction cosmétique de Siril avant toute autre réduction de bruit, car la présence de bruit impulsionnel peut fausser les algorithmes de réduction de bruit et créer des artefacts. Elle fonctionne de la même manière que le rejet sigma, mais sur les pixels voisins. Tout pixel dont l'intensité est éloignée de plus de n écarts types de ses voisins sera rejeté et remplacé par une valeur basée sur la médiane des voisins. Dans l'outil de réduction de bruit, la correction cosmétique est active par défaut et intervient avant toute autre étape de réduction de bruit. (Même si la suppression du bruit d'impulsion a déjà été effectuée, il n'y a pas d'inconvénient à laisser ce paramètre activé). La correction cosmétique peut également être appliquée manuellement en utilisant l'outil Correction cosmétique dans le menu Traitement de l'image.

Algorithmes : Bruit blanc gaussien additif

Le principal algorithme de réduction du bruit blanc Gaussien additif utilisé dans Siril est le débruitage bayésien non local (NL-Bayes) [Lebrun2013].

  • Les algorithmes de débruitage non local ont représenté une amélioration majeure par rapport aux précédents filtres linéaires centrés sur le pixel. NL-Bayes est une version améliorée des algorithmes de débruitage non local précédents et offre l'un des meilleurs algorithmes classiques de débruitage de bruit blanc Gaussien. Il est légèrement meilleur que l'algorithme moderne "de référence" de réduction du bruit Block Matching and 3D tranform (BM3D) et beaucoup plus rapide à exécuter.

  • Le paramètre clé requis pour optimiser les performances des algorithmes de débruitage du bruit blanc gaussien additif est le paramètre sigma : l’écart-type du bruit. Siril mesure le niveau de bruit directement à partir des données de l’image et le transmet à l’algorithme NL-Bayes. Par conséquent, dans l’outil de débruitage de Siril, il n’y a rien à configurer pour NL-Bayes, et ce dernier s’utilise très simplement.

Siril fournit en complément à NL-Bayes un certain nombre d’autres algorithmes de réduction du bruit :

  • Débruitage adaptatif à double domaine (DA3D) [Pierazzo2017]

    • Cet algorithme prend la sortie de NL-Bayes et l’utilise comme image guide. Cette image guide est utilisée pour retraiter l’image originale en effectuant un rétrécissement dans le domaine fréquentiel sur des patchs adaptés à la forme et aux données. Cela améliore légèrement les performances de NL-Bayes avec un coût de calcul supplémentaire. Les patchs adaptés à la forme et aux données sont sélectionnés dynamiquement, ce qui concentre les calculs sur les zones les plus détaillées de l’image. Cette méthode peut également contribuer à réduire les artefacts en forme d’escalier présents dans l’image guide.

    • Dans l’outil de débruitage de Siril, DA3D est un simple bouton sans paramètres optionnels.

  • L’itération Renforcer, Opérer, Soustraire (appelé ici itération SOS) [Romano2015]

    • SOS fonctionne en itérant l’algorithme de débruitage primaire plusieurs fois. À chaque itération, l’image est “renforcée” par l’ajout d’une proportion de l’image bruitée d’origine. L’algorithme NL-Bayes est exécuté sur cette image renforcée, après quoi l’estimation précédente est soustraite.

    • L’image x à une itération \(k+1\) est donnée par \(x_{k+1}=f(y+x_k)-x_k\)\(y\) est l’image bruitée d’entrée.

    • Dans l’outil de débruitage de Siril, SOS est composé d’un bouton avec deux paramètres : le nombre d’itérations peut être réglé, et la proportion de l’image bruitée mélangée à chaque itération (rho) peut être définie. Évitez de régler rho trop haut car cela peut entraîner des problèmes de convergence de l’algorithme SOS : les valeurs par défaut (3 itérations et rho = 0.2) sont généralement correctes.

Algorithmes : Bruit de Poisson et Poisson-Gaussien

  • Transformée stabilisatrice de variance d’Anscombe [Mäkitalo2011], [Mäkitalo2012]

    • Les transformées de stabilisation de la variance sont utilisées pour les images présentant un bruit de Poisson ou de Poisson-Gaussien afin de minimiser la dépendance du bruit vis-à-vis du signal et de le faire ressembler davantage à un bruit blanc gaussien, que NL-Bayes réussit bien à éliminer, puis une transformée inverse est appliquée à la fin. La transformation choisie pour Siril est la transformation d’Anscombe \(A : x\rightarrow 2\times \sqrt{\left(x+\frac{3}{8}\right)}\)

    • Comme la transformation n’est pas linéaire, l’utilisation de l’inverse algébrique direct entraîne un biais en sortie. Siril utilise donc une approximation à forme fermée de l’inverse exact non biaisé, qui est rapide à calculer et produit une amélioration substantielle par rapport à d’autres formes d’inverse telles que l’inverse asymptotique.

    • Dans l’outil de débruitage de Siril, la VST d’Anscombe est un simple bouton sans aucun paramètre optionnel.

Notez que seul un des algorithmes de débruitage complémentaires mentionnés ci-dessus peut être choisi à la fois.

L’animation ci-dessous montre ce qu’il est possible de faire en utilisant la stabilisation de la variance avec une image pauvre en photons, dans ce cas une seule image de la nébuleuse du Pélican de 5min prise avec un filtre rouge, montrée avec la fonction de transfert d’écran Auto Ajustement. Notez l’absence de flou, de gonflement ou de perte de détails autour des étoiles et le bord net de la nébuleuse dans la partie inférieure gauche de l’image par rapport à ce que l’on pourrait obtenir avec des schémas de réduction du bruit plus basiques. Une fois étiré de façon plus sympathique et combiné avec d’autres canaux, cela améliorerait grandement la qualité réalisable à partir de données très limitées (bien que l’accumulation de données soit toujours la meilleure solution pour réduire le bruit d’une image empilée !)

single-sub

Débruitage d’une image pauvre en photon

Modulation

La modulation consiste à mélanger une proportion de l’image bruitée d’origine dans le résultat final. Cela réduit évidemment les performances du débruitage, mais dans certains cas, si le débruitage a laissé des zones plates de l’image un peu trop lisses et non naturelles, vous pouvez utiliser la modulation pour restaurer l’apparence de la microtexture dans ces régions.

Quand utiliser la réduction du bruit

Les algorithmes de réduction du bruit sont conçus pour éliminer le bruit blanc gaussien et devraient donc être plus performants sur des images non étirées : si un bruit blanc est étiré de manière non linéaire, ses caractéristiques changent et il n'est plus blanc. Il est toujours possible d'effectuer une réduction du bruit sur des images étirées et d'obtenir une amélioration, mais elle ne sera peut-être pas aussi efficace que si elle était appliquée au stade linéaire.

Interface de réduction du bruit

L’outil de réduction du bruit Siril est accessible de deux manières : via l’interface graphique ou via la ligne de commande. L’interface graphique est présentée ci-dessous. Remarque : les options avancées de SOS sont masquées si SOS n’est pas sélectionné.

dialogue

Interface graphique de la réduction de bruit de Siril

La réduction du bruit peut également être appliquée à l’aide de la ligne de commandes de Siril, soit dans la console, soit dans des scripts. Le format est le suivant :

Ligne de commande Siril

denoise [-nocosmetic] [-mod=m] [ -vst | -da3d | -sos=n [-rho=r] ] [-indep]
Réduit le bruit de l'image en utilisant l'algorithme bayésien non local décrit par Lebrun, Buades et Morel.

Il est fortement recommandé d'appliquer une correction cosmétique pour éliminer le bruit sel et poivre avant d'exécuter le réducteur de bruit, et par défaut cette commande applique automatiquement la correction cosmétique. Toutefois, si celle-ci a déjà été effectuée plus tôt dans le flux de travail, elle peut être désactivée ici à l'aide de la commande optionnelle -nocosmetic.

Un argument optionnel -mod=m peut être donné, où 0 <= m <= 1. Le pixel de sortie est calculé comme suit :* out=m x d + (1 − m) x in*, où d est la valeur de pixel réduite du bruit. Une valeur de modulation de 1 n'appliquera aucune modulation. Si le paramètre est omis, il est par défaut à 1.

L'argument optionnel -vst peut être utilisé pour appliquer la transformation de stabilisation de variance Anscombe généralisée avant NL-Bayes. Cela est utile avec des images à faible luminosité telles que des images simples, où le bruit suit une distribution de Poisson ou Poisson-Gaussien plutôt qu'une distribution principalement gaussienne. Il ne peut pas être utilisé en conjonction avec DA3D ou SOS, et pour le débruitage d'images empilées, il n'est généralement pas bénéfique.

L'argument optionnel -da3d peut être utilisé pour activer le débruitage Data-Adaptive Dual Domain (DA3D) en tant qu'algorithme de débruitage final. Cela utilise la sortie de BM3D comme image de guidage pour affiner le débruitage. Il améliore les détails et réduit les artefacts en escalier.

L'argument optionnel -sos=n peut être utilisé pour activer le renforcement itératif de la détection de bruit Strengthen-Operate-Subtract (SOS), avec le nombre d'itérations spécifié par n. En particulier, ce renforceur peut produire de meilleurs résultats si l'algorithme NL-Bayes non renforcé produit des artefacts dans les zones de fond de ciel. Si à la fois -da3d et -sos=n sont spécifiés, le dernier spécifié sera appliqué.

L'argument facultatif -rho=r peut être spécifié, où 0 < r < 1. Cela est utilisé par le booster SOS pour déterminer la quantité d'image bruitée ajoutée au résultat intermédiaire entre chaque itération. Si -sos=n n'est pas spécifié, le paramètre est ignoré.

Par défaut, DA3D ou SOS ne sont pas appliqués, car l'amélioration de la réduction de bruit est généralement relativement faible et ces techniques nécessitent un temps de traitement supplémentaire.

En de très rares occasions ,lors du débruitage des images en couleur, des artefacts de couleur en bloc peuvent apparaître. L'argument optionnel -indep peut être utilisé pour éviter cela en effectuant le débruitage de chaque canal séparément. Cela est plus lent mais éliminera les artefacts

Comparaison

Les images ci-dessous fournissent une comparaison simpliste des différents algorithmes. Notez qu’une seule image est utilisée : en pratique, les différents algorithmes seront mieux adaptés à des images différentes. Vous pouvez cliquer sur toutes les images pour les visualiser avec un zoom de 100 %.

Image originale bruitée

bruité

Imagebruitée

Débruitage avec NL-Bayes uniquement

bruité

Débruitage avec NL-Bayes uniquement

Débruitage avec NL-Bayes uniquement, avec une modulation de 75% pour restaurer une certaine microtexture

modulation

Utilisation de la modélisation

Débruitage avec NL-Bayes en utilisant la transformée d'Anscombe

vst

Débruitage avec NL-Bayes, stabilisation de la variance avec la transformée d'Anscombe. Un zoom non interpolé de 200% est montré à droite.

Débruitage avec DA3D en utilisant une image guide NL-Bayes

da3d

Débruitage avec DA3D, image guide préparée avec NL-Bayes. Un zoom non interpolé de 200% est montré à droite.

Débruitage avec NL-Bayes et SOS

sos

Débruitage avec des itérations NL-Bayes et SOS. Un zoom non interpolé de 200% est montré à droite.

Limitations

La principale limitation est que les algorithmes fonctionnent mieux lorsque le bruit est de nature gaussienne (ou peut être rendu approximativement gaussien à l'aide du VST). Il y a quelques raisons pour lesquelles cela pourrait ne pas être vrai :

  • Si l'image a déjà été fortement traitée, par exemple avec une déconvolution ou une accentuation par ondelettes, le caractère du bruit ne sera généralement plus gaussien. Si la réduction du bruit et la déconvolution font toutes deux partie de votre flux de travail, la réduction du bruit doit être effectuée en premier.

  • Les images couleur peuvent être moins bien débruitées que les images couleur mono ou composites. Une petite réduction du bruit blanc gaussien de luminance est obtenue mais, suite au processus de débruitage, le caractère du bruit est modifié de sorte qu'il n'est plus bien modélisé comme bruit blanc gaussien et n'est pas éliminé très efficacement. De plus, pour les images monochromes OSC et composées, le bruit de chrominance tend à ne pas être bien modélisé comme bruit blanc gaussien et nécessite un traitement différent. À l'heure actuelle, le bruit de chrominance est mieux traité dans les logiciels de manipulation d'images à usage général tels que GIMP.

Références

[Lebrun2013]

Lebrun, M., Buades, A., & Morel, J. M. (2013) Implementation of the “Non-Local Bayes” (NL-Bayes) Image Denoising Algorithm. Image Processing On Line, 3 , pp. 1–42. https://doi.org/10.5201/ipol.2013.16

[Pierazzo2017]

Pierazzo, N., & Facciolo, G. (2017). Data adaptive dual domain denoising: a method to boost state of the art denoising algorithms. Image Processing On Line, 7, 93-114. https://doi.org/10.5201/ipol.2017.203

[Mäkitalo2011]

Mäkitalo, M., & Foi, A. (2012, March). Poisson-gaussian denoising using the exact unbiased inverse of the generalized anscombe transformation. In 2012 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 1081-1084). IEEE. https://doi.org/10.1109/ICASSP.2012.6288074

[Mäkitalo2012]

Makitalo, M., & Foi, A. (2011). A closed-form approximation of the exact unbiased inverse of the Anscombe variance-stabilizing transformation. IEEE transactions on image processing, 20(9), 2697-2698. https://doi.org/10.1109/TIP.2011.2121085

[Romano2015]

Romano, Y., & Elad, M. (2015). Boosting of image denoising algorithms. SIAM Journal on Imaging Sciences, 8(2), 1187-1219. https://doi.org/10.1137/140990978