Un nouveau style pour le débruitage : ondelettes sur canaux RVB

Bonjour à tous

En continuant à expérimenter des choses avec la réduction de bruit sur darktable, je me suis aperçu qu’on pouvait faire des choses sympas avec le module réduction de bruit de profil en mode ondelettes en traitant les 3 canaux RVB séparément.
Voici donc le style qui en a découlé :
https://drive.google.com/open?id=1OF4f7nwKCzpYGERs1YFrTMuHoWDTwpxl
Je n’ai pas pu l’uploader sur dtsyles.net pour le moment, je réessayerai plus tard.

Ce style cherche à obtenir un bon débruitage en un clic (y compris pour des images assez bruitées) mais évidemment, suivant les images ça peut donner des rendus un peu différents, lisser un peu trop sur certaines, et pas assez sur d’autres. C’est un compromis à ajuster.

Quelques infos pour l’utilisation :
Si le rendu est trop lissé, diminuer l’opacité et/ou la force des 3 premières instances.
Si au contraire il reste trop de bruit de luminance, augmenter l’opacité et/ou force des 3 premières instances.
A savoir, le canal vert est souvent moins bruité que les 2 autres, et il contient la plupart du temps une bonne dose des détails. C’est pour cela que l’opacité est plus faible dans mon style sur ce canal, et c’est bon à avoir en tête (même si ce n’est pas une règle absolue) lorsqu’on cherche le bon compromis lissage/bruit.
S’il reste du bruit de chrominance, augmenter la force du module qui est en fusion « couleur TSV ».

Ce style peut marcher assez bien (à mon humble avis) sur une grande variété d’images, des peu bruitées aux très bruités (avec quand même une certaine limite, au bout d’un certain niveau de bruit « extreme » ça ne marche plus), c’est tout son intérêt.

Quelques explications sur la manière dont je suis arrivé à ces réglages :
J’avais commencé par remarquer qu’on pouvait parfois diminuer efficacement le bruit de luminance en préservant des détails en utilisant le module réduction de bruit bilatéral avec les curseurs à fond, sauf celui du vert au minimum.
J’ai également constaté en regardant les canaux RVB d’images bruitées que les canaux rouges et bleus sont plus bruités que le vert.
C’est logique en pratique, sur une matrice de Bayer, on a 2 fois plus de pixels pour le vert que pour le rouge ou le bleu : les erreurs prennent donc moins d’importance lors du dématriçage.
De plus, j’ai lu je sais plus où que la plupart du temps, les pixels « verts » sont ceux qui reçoivent le plus de lumière, et les pixels « rouges » ceux qui en reçoivent le moins.
J’ai voulu reproduire l’effet que j’avais au filtre bilateral avec des instances en mode ondelette, une sur le canal rouge et une sur le bleu. Et ça marche pas mal !
Le problème de débruiter canal par canal, c’est que ça change un peu les couleurs de l’image, typiquement j’obtenais pas mal de pixels trop vert.
En faisant une réduction sur le vert aussi, et en utilisant une dernière instance en mode de fusion couleur, ça permet de résoudre tout ça.
Les opacités des 3 modules ont été ajustées en gros (c’est pas des valeurs gravées dans le marbre, j’ai trouvé ça en tâtonnant, et d’autres valeurs peuvent mieux marcher parfois, mais je pense que c’est assez générique), en suivant l’hypothèse que le vert est moins bruité que le bleu qui est moins bruité que le rouge; d’où le fait que l’opacité pour le vert est plus faible que celle pour le bleu, qui est plus faible que celle pour le rouge.
Enfin, le module filtre passe bas sert à enlever les pixels qui auraient été mal traités par les ondelettes : quand on a une force trop faible avec les ondelettes il reste des pixels « trop clairs » un peu isolés, et leur couleur est pas rétablie correctement par le module d’ondelette avec fusion couleur TSV. Ça peut se corriger en augmentant la force, mais je voulais pas un rendu vraiment trop lissé (y compris lissé en couleur), et rester assez générique.
Du coup, un coup de filtre passe bas, avec un rayon faible, plus une augmentation de la luminosité, et le tout en mode assombrir, et ça permet que les pixels qui sont vraiment bien plus clairs que leurs voisins soient ramenés à des valeurs plus faibles, tandis que les autres ne sont pas modifiés.

Voilà, j’espère que ça pourra vous être utile :slight_smile: :smiley:

Merci @rawfiner, super boulot en complément de ce que tu avais déjà partager. Je vais tester sur mon échantillon de photos du Gx7 en haut ISO et certainement celles du Gx8 à venir.

Merci jpg54 pour le compliment :slight_smile:
Je suis intéressé d’avoir des retours, donc n’hésitez pas à me dire si vous trouvez ça pratique/utile/inutile/trop lissé/etc… et si des images posent problème, je suis intéressé d’avoir les raws pour pouvoir voir tout ça et pouvoir éventuellement ajuster le style :wink:

Au fait, tu as essayé ton style sur la photo de la biche ?

Oui, la biche c’est typiquement le genre de photo vraiment trop extrèmement bruitée, ça marche pas bien dessus, l’algo des ondelettes galère à preserver des détails.
Pour la biche faudra attendre un peu plus, je tente de développer une approche de débruitage raw qui pourrait peut être permettre de débruiter des cas extrèmes comme la biche, mais c’est loin d’être fini haha :smiley: :smiley: :smiley:

Je suis patient. :cool: :cool: :cool:

Je viens d’essayer avec mon échantillon de photos de 1600 à 25600 ISO de mon Lumix Gx7. Je n’ai pas changé les réglages et j’ai comparé avec le style d’Aurélien (aussi sans changer les réglages).
A 1600 et 3200, entre les 2 traitements, mon cœur balance, j’ai une petite préférence ton style qui est plus rapide.
A 6400, il prend l’avantage avec un bruit plus maîtrisé au détriment de certains détails très fins.
A 12800 et 25600, cet avantage est encore plus net. Je pense certainement utiliser en priorité sauf dans quelques situations et aussi au niveau de la rapidité d’exécution qui est moi rédhibitoire quand on se déplace à 100% dans la photo.
Bien sûr, c’est mon humble avis et pour mon échantillon.

Super merci pour ton avis !
J’avais testé sur ton image (cathédrale) à 25600 ISO que tu m’avais passé :smiley:

Je n’ai pas d’échantillons de photo d’ISO élevés - mon appareil ne supporte pas vraiment et surtout je ne sais pas traiter avec votre finesse le bruit.

Néanmoins, le résultat sur quelques photo est plutôt prometteur et consomme nettement moins de puissance que les styles d’Aurelien — les photos en montant les ISO, qui me donneraient plus de possibilités et d’efficacité sur le terrain sont peut-être à moi. Bref luv u :wink:

Oui @rawfiner, je l’ai aussi essayé sur la photo de la cathédrale et aussi une autre de Metz. Si tu veux les 2 séries, je peux te les passer ?

J’ai testé à 12800 ISO. Ton style est meilleur sur le sujet que le mien, par contre il fait apparaître une texture grainée dans l’arrière-plan :

Ton débruitage :

Mon débruitage :

Je précise que, dans mon style, la lenteur vient du fait que j’utilise 2 modules de débruitage bilatéral, qui apportent un petit supplément de lissage mais sont optionnels.

Super @kadomaeurope, c’est chouette si ça peut t’être utile !
@jpg54 je veux bien celle de Metz du coup, merci, je me fais petit à petit une collection de photos bruitées, c’est toujours pratique pour tester les idées / algos ! :smiley:
[hr]
@aurelienpierre merci pour ta comparaison. C’est toujours interessant de pouvoir comparer, d’autant plus avec des photos de personnes, je trouve que ce sont les plus dures à débruiter (parce qu’on est forcement plus exigeant en terme de lissage que sur des photos autres je trouve). Pour la texture grainée, à voir si en augmentant l’opacité sur l’instance en fusion sur le bleu ça arrange pas un peu ça, mais c’est clair que c’est pas encore le style parfait haha :wink: :smiley:

Je te mets en ligne demain matin et te donne le lien en M.P.

Parfait merci :slight_smile:

Ok je viens de paufiner mon style en reprenant tes idées, rawfiner, notamment en appliquant le principe de la séparation RGB aux moyennes non-locales. J’ai aussi viré les modules bilatéraux, qui en plus de ralentir donnent un bruit « nuageux » dans ce cas.

Image source :

Style « Denoise 2.1 » :

Gardez à l’esprit qu’on est zoomé à 100 % sur une image de 36 Mpix, donc je garde toujours un peu de bruit. À 50 % de zoom, ça donne ça :

Image source :

Style « Denoise 2 » :

Style « Denoise 2.1 » :

Lien vers le nouveau style : https://www.dropbox.com/s/qrhq44lty9sggpf/Denoise%20v2.1.dtstyle?dl=1

Quelques notes :

  1. la texture dans l’arrière-plan de l’essai précédent vient du module « zones de couleurs » où le bleu a été assombri… En présence de bruit, on assombrit alors seulement les pixels non bruités de l’arrière-plan et on fait apparaître cette texture.

  2. le passe-bas en assombrissement est une mauvaise idée en portrait : on atténue les reflets brillants dans l’œil et sur les lèvres. En fait, cet usage ressemble à ce que fait le module « pixels chauds ». Celui a des réglages assez conservateurs, il suffit de les pousser plus fort (diminuer le seuil, augmenter la force : voir la dernière capture d’écran).

  3. le dématriçage Amaze avec lissage des couleurs à 5 passes donne un sacré supplément de débruitage sans effort

Merci pour ton analyse @aurelienpierre
C’est super que ça te permette de peaufiner ton style :slight_smile:
Le rendu parait bien ! Faudra que je teste ça :wink:
La raison pour laquelle j’utilisais les ondelettes plutôt que les moyennes non locales est qu’à ISO très élevé, je trouve que les moyennes non locales gèrent mal le bruit de gros grain (pour rentrer dans la technique, la zone de recherche de patchs similaires est trop réduite pour atténuer efficacement le bruit de gros grain), alors que les ondelettes continuent de s’en sortir. Après, on devrait probablement pas essayer de prendre des photos à des ISOs si élevés haha, mais parfois c’est pratique quand on peut pas faire autrement !
En tout cas c’est bien, petit à petit on progresse :smiley:

On va finir par converger vers un résultat légendaire.

J’ai refait des tests, et effectivement, avec les moyennes non-locales en luminance on a parfois une « disruption » du grain sans réel bénéfice concernant le débruitage (le grain devient discontinu mais pas moins visible, donc c’est moins beau).

Je viens de tester ton style « 2.1 » sur quelques images, et le résultat me plait bien !
Par contre je constate quasi aucune différence en désactivant les modules de moyennes non locales, les opacités sont sans doutes un peu faibles non ?

Moi j’ai un résultat différent avec ou sans les moyennes non-locales, mais comme c’est profilé pour un capteur, ça doit dépendre du capteur et de la qualité du profil. Peut-être qu’il faut effectivement pousser l’opacité. J’ai fait tous mes tests à 12800 ISO aussi. L’avantage, c’est que si tu appliques le style à une image à bas ISO, il semble que çe ne floute rien (donc ça s’adapte tout seul au niveau de bruit).

Quelques exemples de comparaison (à regarder en grand) avec et sans les modules de moyennes non locales avec des photos de 3 boitiers différents (le martin pêcheur et le sachet de thé proviennent du même boîtier) :

Il y a une légère différence, mais je trouve qu’il faut vraiment regarder très attentivement le résultat pour la voir. Je ne sais pas si ça vaut le surcoup de traitement dût aux 3 instances de moyennes non locales.
Tous les raws sont disponibles ici si tu veux tester : https://drive.google.com/drive/folders/11LxZWpZbS66m7vFdcoIHNTiG20JnwlJT?usp=sharing à l’exception de la statue, où c’est un raw à toi que tu nous avais soumis ici.

Je suis bien d’accord qu’utiliser le module de réduction de bruit de profil c’est pratique pour s’adapter à tous les ISOs.

Qques remarques/questions au dela de ça :

  • pourquoi est ce que tu as choisi une opacité sur le bleu bien plus grande que sur le rouge dans les modules de moyenne non locales ?
  • je pense que le module avec la fusion couleur devrait être placé après tous les modules travaillant canaux par canaux, y compris les modules de moyennes non locales. En travaillant canal par canal il y a un risque d’obtenir des pixels de couleur fausse. Qu’en penses tu ?

Et pour information, j’ai fait une demande sur redmine pour qu’on puisse avoir 3 sliders d’opacités (un par canal) lorsqu’on selectionne un mode de fusion « RGB » : https://www.darktable.org/redmine/issues/12291
Ça évitera d’exécuter 3 fois le même module avec exactement les mêmes paramètres avec juste la fusion qui change, ça donnera un débruitage plus rapide.