Est-ce une méthode correcte pour la correction du bruit à motif fixe?

12

Je suis actuellement impliqué dans un projet de programmation d'un capteur d'imagerie. Notre capteur nous fait du bruit, nous voulons donc le corriger. Quelqu'un d'autre sur le projet a eu l'idée de prendre une image "noire", c'est-à-dire de mettre le capuchon d'objectif et de prendre une image censée être entièrement noire. (Évidemment, ce n'est pas dû au bruit) À ce stade, lors des captures suivantes, il prend les valeurs des pixels de l'image noire et les soustrait de l'image régulièrement capturée.

L'image semble meilleure et la plupart du bruit est supprimé, mais je ne suis pas convaincu que ce soit la meilleure approche pour éliminer le bruit en raison des éléments suivants:

La plage de l'image fixe est de [-172 194] (366 valeurs), contre la plage standard de [0 255]. Quand il est redessiné, il revient à [0 255], et il semble mieux, mais je pense que c'est incorrect.

Je dois mentionner que la nouvelle image est prise en basse lumière.

Cette méthode est-elle correcte pour éliminer le bruit? Pourquoi ou pourquoi pas?

NominSim
la source
Cette méthode particulière (image "noire") est une forme d'étalonnage de capteur, qui n'est pas du DSP pur (elle est également liée à la physique, par exemple - vous devez modéliser des défauts physiques). Par exemple, cette approche particulière tente de compenser les défauts de pixels chauds.
MSalters
d'accord avec @PaulR
Simon Bergot
vous pouvez vérifier la solution dans ce lien: ardueye.com/pmwiki.php?n=Main.StonymanLens
selma
si nous traitons avec des images satellites, les méthodes de calcul seront les mêmes? Je veux dire comment calculer l'image noir / blanc pour obtenir les valeurs pures de décalage et de gain? Existe-t-il une description de code du calcul FPN dans Matlab? Merci pour tous les conseils !!!

Réponses:

12

L'image noire est la somme d'un motif fixe et d'un bruit sombre (qui suit très probablement une distribution normale car elle résulte généralement des fluctuations actuelles). Vous voulez soustraire le motif fixe, mais pas le bruit sombre - la soustraction de bruit aléatoire d'un signal augmente simplement le bruit global et diminue ainsi la qualité du signal.

Pour obtenir une bonne estimation du motif fixe, vous devez capturer un nombre important d'images (disons 25, bien que 100 vous laissera bien sûr avec seulement la moitié du bruit), et les faire la moyenne. Étant donné que le bruit sombre est (devrait être) non corrélé dans le temps, il est en moyenne, de sorte que vous vous retrouvez avec un motif fixe à faible bruit que vous pouvez soustraire de vos futures images, et cela n'augmentera pas le bruit dans votre image.

Notez que le motif fixe dépend généralement du temps d'exposition (une caméra CCD, par exemple, peut accumuler des électrons pendant les opérations de décalage), vous devrez donc effectuer un étalonnage pour chaque temps d'exposition. Si vous modifiez souvent les temps d'exposition et si c'est possible, vous pouvez configurer votre expérience pour capturer une série de cadres sombres après chaque expérience, ce qui signifie que vous obtenez un étalonnage pour chaque expérience.

Si vous soustrayez un cadre sombre à faible bruit (c'est-à-dire en moyenne), vous obtiendrez des valeurs négatives (car le bruit sombre se produisant lors de l'acquisition d'image peut avoir des valeurs négatives), mais la plage de votre image ne devrait pas augmenter de manière significative. Si c'est le cas, c'est un signe que vous n'avez pas en moyenne assez d'images sombres, ou que le motif fixe a changé depuis que vous utilisez un temps d'exposition différent.

Jonas
la source
1
Je seconde totalement @Jonas. Si vous souhaitez maintenant réduire le bruit sombre en plus de supprimer le motif constant, la seule solution est de refroidir le capteur.
Jean-Yves
1
Cela suppose que le bruit du motif fixe n'est que des «décalages». De nombreux capteurs avec FPN ont également des variations de gain dans chaque pixel également, donc lorsqu'ils sont exposés à une scène "blanc pur", il y aura toujours un FPN même après avoir supprimé les décalages mesurés dans l'obscurité ...
Martin Thompson
@MartinThompson: C'est un bon point, mais en pratique, il peut être très difficile de garantir une scène "blanc pur". C'est pourquoi je n'utilise aucun gain si je peux l'aider :).
Jonas
@MartinThompson Martin, quelle est la meilleure pratique pour corriger les paramètres de gain. Je ne peux pas penser à un moyen facile de tout rendre blanc à une durée d'exposition donnée.
Ktuncer
1
@Ktuncer: Je ne pense pas que vous deviez le rendre blanc pur - plus vous pouvez le rendre brillant, mieux vous pouvez le corriger. Tant que la luminosité est uniforme sur toute la scène, vous pouvez utiliser la valeur moyenne des pixels comme "cible" à corriger
Martin Thompson
7

cette approche est valable et est en fait utilisée dans certains appareils photo haut de gamme: le capteur prend d'abord une photo avec l'obturateur fermé, et la soustrait à la "vraie" photo. Cela présente deux avantages:

  • il corrige le bruit du motif fixe
  • il rend l'image linéaire

Cette méthode peut donner des résultats différents pour différents temps d'exposition.

Le bruit photonique reste intact.

Simon Bergot
la source
4

Je pense que cela dépend du capteur que vous utilisez.

Vous pouvez prendre une série d'images (par exemple 10 000) avec le capuchon d'objectif en place et comparer l'écart moyen / standard pour chaque pixel. Si possible, vous pouvez faire de même pour une image uniforme "lumineuse" (pas de surexposition, juste une luminosité uniforme).

S'il existe des différences significatives entre les «moyennes sombres», la soustraction de la moyenne sombre pour chaque pixel est une bonne idée. S'il existe des différences significatives entre (moyenne lumineuse - moyenne sombre) pour chaque pixel, la division par cette "image moyenne blanche" pourrait également être une amélioration.

Mais il faut vraiment faire ces statistiques pour savoir ce qui a du sens.

Niki Estner
la source
3

Habituellement, les valeurs négatives doivent être tronquées à zéro lorsque vous soustrayez le cadre sombre.

Je suis surpris que la soustraction du cadre sombre vous donne des valeurs de -172. Cela signifie que:

  • Votre niveau de bruit est élevé - au moins 172 quelque part
  • Votre bruit varie beaucoup d'une image à l'autre. Dans ce cas, la soustraction de trame sombre n'est pas très efficace.

Pouvez-vous publier des images d'un cadre normal, d'un cadre sombre, puis de la version soustraite?

japreiss
la source
L'appareil photo peut tenter de corriger les conditions de faible luminosité en augmentant le temps de capture. En conséquence, les pixels chauds accumuleront plus de bruit. En outre, la lecture du capteur peut être non linéaire, auquel cas vous ne pouvez pas du tout les soustraire.
MSalters
negative values should be truncated to zero when you subtract the dark frame. Vous ne devriez pas faire cela, car cela vous empêchera de faire un bon travail pour débruiter les zones sombres de votre image. Il est préférable de garder le bruit «naturel» avant de vraiment tenter de le supprimer.
Simon Bergot
C'était mon problème avec la méthode, si vous ne tronquez pas les valeurs à zéro, vous vous retrouvez avec une plage plus grande que ce qu'une image devrait produire, donc lorsque vous la redimensionnez, vous semblez masquer les données, par opposition aux valeurs tronquées qui semblent également vous empêche d'obtenir une correction appropriée