Comment corriger les défauts image du capteur en utilisant wxPropView?

Merci de parcourir les notes suivantes :

Si vous appliquez toutes les méthodes de correction, merci de suivre l'ordre suivant :

  1. Correction du défaut de pixelsDefective pixels correction
  2. Correction "Dark current"
  3. Correction "Flat-field"

Pour corriger l'image entière, vous devez réinitialiser les AOI (clic droit "“Restore Default” sur chaque valeur de taille (largeur et hauteur) dans “Setting → Base → Camera”).

Vous avez plusieurs possibilités pour sauvegarder les paramètres de correction. Le chapitre  “GUI → wxPropView → How to work with wxPropView → Storing and restoring settings” des manuels caméras décrit les différentes méthodes.

Toutes les corrections disponibles dans “Setting → Base → ImageProcessing” sont

  1. Exécutées dans le PC maître et réclame de la puissance CPU.
  2. Sont disponibles pour toutes les caméras MATRIX VISION.

Pour les modèles mvBlueCOUGAR-X, il est possible d’exécuter la correction flat-field dans la caméra elle-même. Ce document le décrit dans la section « flat-field correction ». D’une façon générale : Si la caméra offre une correction embarquée, vous trouverez celle-ci décrite dans “Setting → Base → Camera → GenICam”. Si vous avez des questions complémentaires, notamment concernant le bon chaînage des corrections embarquées, merci de nous contacter.

Toutes les corrections ci-dessous ont fait avec des images de 8 bit et cela explique les niveaux de gris que nous avons choisi.

Pixels en défaut

Due aux fluctuations dans le processus de fabrication, tous les pixels d’un capteur image ne réagissent pas de la même façon à une même quantité de lumière. Ces variations sont connues sous le terme « défaut pixels » (defective pixels).

  1. Pixels « chauds » (Leaky pixels) dans le noir
  2. Pixels « froids » (Cold pixels) dans des conditions standards d’éclairage.

Pixels chauds (Leaky Pixel)

Ce sont des pixels qui restituent une valeur de lecture supérieure à la moyenne environnante, quand le capteur n’est pas exposé. Ils se manifestent par leur aspect brillant dans un fond noir. Ces pixels chauds sont définis comme des pixels qui ont une valeur de lecture qui dévie de plus de Tleak de la moyenne du code de conversion de l’ADC, comme présenté en figure 1. Un exemple de la cause potentielle d’un pixel chaud peut être un courant de fuite important au niveau de la photodiode.

 

files/mv11/images/support/faq/ImageErrors_01.gifFigure 1: Distribution des pixels lors d'un test "image noire".

Caractérisation du problème

Le nombre total de pixels défectueux dans le capteur est fonction du gain et du temps d’intégration choisis. Pour trouver le maximum de pixels défectueux dans les conditions choisies, il faut suivre la procédure suivante :

  • GTProduct = Gain linéaire * Temps d’intégration

Correction des pixels chauds (Théorie)

En utilisant différemment les pixels voisins, vous pouvez « remplacer » les pixels défectueux. Les méthodes de remplacement disponibles sont :

  • Moyennage 3 x 1
  • Median 3 x 3

Correction des pixels chauds (pratique)

  • GTProduct = 360 msec (Gain_dB = 0 dB, temps d’exposition (Expose_us) = 360 msec)
  • Obturez complètement l’ouverture objectif
  • Filtermode = Calibrate leaky pixel
  • Prenez une image (snap)
  • Pour activer la correction, sélectionnez une méthode de remplacement: “Replace 3x1 average” ou “Replace 3x3 median”
  • Sauvegardez les données de correction à l’aide de “Action → Capture Settings → Save Active Device Settings
    (Les paramètres sont sauvés dans les registres)

Ce filtre contrôle :

  • Pixel > LeakyPixelDeviation_ADCLimit // (standard: 50)

Tous les pixels au dessus de cette valeur ont un courant de fuite élevé.

Pixels froids

Les tests permettant de détecter / corriger les pixels froids sont réalisés dans des conditions lumineuses normales. Le niveau lumineux est choisi de façon à ce que les pixels restituent des valeurs relativement importantes (environ 70% du niveau de saturation). Les pixels froids sont ceux qui produisent une valeur de sortie inférieure à la moyenne, quand le capteur est exposé à la lumière. Ils se manifestent par leur faible intensité, comparée à l’uniformité lumineuse qui les entoure. Ces pixels peut être détectés en exposant le capteur à la lumière, en détectant ceux qui « dérivent » au-delà d’un pourcentage Tcold de la moyenne, comme montré dans la Figure 2.

Un exemple de cause potentielle d’un pixel froid est une particule de poussière couvrant le pixel.

 

files/mv11/images/support/faq/ImageErrors_02.gif

Figure 2: Distribution des pixels lors du test "image lumineuse".

Correction des pixels froids (théorie)

Tout comme les pixels chauds, on remplace les valeurs des pixels froids par celle de leur voisinage. Il y a également plusieurs possibilités de voisinage que vous pouvez utiliser.

Correction des pixels froids (practique)

Pour corriger les pixels froids, les étapes suivantes sont nécessaires (Voir Figure 3):

  • Illumination du capteur à approximativement 50 - 70 % de la saturation (soit une moyenne de niveaux de gris d’environ 128 à 180)
  • Filtermode = Calibrate cold pixel
  • Faites l’acquisition d’une image (snap)
  • Pour activer la correction, sélectionnez une méthode de remplacement: “Replace 3x1 average” ou “Replace 3x3 median”
  • Sauvegardez les données de correction à l’aide de “Action → Capture Settings → Save Active Device Settings
    (Données sauvées dans les registres)

Le filtre contrôle :

  • Pixel > Tcold (Valeur par défaut : 15 %)
  • Tcold = Dérive de la moyenne des niveaux de gris (ColdPixelDeviation_pc)

Tous les pixels en dessous de cette valeur ont une dynamique trop faible.

 

files/mv11/images/support/faq/ImageErrors_03.jpg

Figure 3: Defective pixels filter

Courant de Noir

DLe courant de Noir est une caractéristique des capteurs image qui signifie que ces capteurs délivrent un courant même dans l’obscurité totale. Cet effet est provoqué par la chaleur ambiante, qui crée des charges spontanées. Ce signal se surimpose au informations image. La production du courant de Noir dépend de deux facteurs :

  1. Le temps d’exposition
    Plus l’exposition est longue, plus le courant de Noir est important. Ce qui veut dire qu’avec de longs temps d’exposition, il peut arriver que le courant de Noir provoque la surexposition du capteur.
  2. Température
    En refroidissant le capteur le courant de Noir peut être notablement abaissé. (approximativement, tous les 6°C le courant est divisé par deux).

Correction du courant de Noir (théorie)

La correction se fait pixel à pixel, c'est-à-dire que le premier pixel (en haut à gauche de l’image) de l’image d’origine sera corrigée avec le pixel identique de l’image d’ajustement.

Comme le courant de Noir est répétable, vous pouvez tout aussi bien utiliser une « image courant de Noir » acquise avant ou après l’image à traiter, et « la soustraire » de celle-ci pixel à pixel. Pour obtenir un meilleur résultat, il est nécessaire d’acquérir l’image à traiter et l’image courant de Noir avec les mêmes paramètres d’exposition et de température.

Après la correction, l’image de l’objet acquis demeure dans l’image originale.

Note: Les images courant de Noir (comme les autres images en général) sont affectés par du bruit. Ce bruit montre l’incertitude des quantités à mesurer, comme il apparait dans toutes les mesures physiques. Comme la différence de deux sources de bruit non corrélée n’est jamais nulle, la différence entre deux images courant de Noir n’est pas nulle, car il reste toujours un bruit de fond résiduel.

Correction du courant de Noir (pratique)

Merci de suivre ces étapes :

  • Obturer la lentille
  • OffsetAutoCalibration = Off (voir Figure 4)
  • Changer l’Offset_pc jusqu’à ce que vous constatiez une amplitude dans l’histogramme (voir Figure 5)
  • Positionnez le temps d’exposition en rapport avec l’application en cours
  • Filtermode = Calibrate (voir Figure 6)
  • Faites l’acquisition d’une image (snap)
  • Pour activer la correction: Filtermode = On
  • Sauvegardez l’image de correction à l’aide de “Action → Capture Settings → Save Active Device Settings
    (Les paramètres sont sauvés dans les registres)

Le filtre acquiert une série d’images qu’il moyenne, pour générer l’image de correction du courant de Noir.

files/mv11/images/support/faq/ImageErrors_04.jpg

Figure 4: OffsetAutoCalibration = Off

files/mv11/images/support/faq/ImageErrors_05.jpg

Figure 5: Exemple d'histogramme

files/mv11/images/support/faq/ImageErrors_06.jpg

Figure 6: Filtermode = Calibrate

Variations de sensibilité

Chaque pixel d’un capteur image est un « détecteur » avec ses propres caractéristiques. C’est notamment le cas en ce qui concerne la sensibilité spectrale. La différence de sensibilité – dépendant du type de capteur – peut dépasser 10%. C’est trop pour être ignoré, et ces différences doivent être corrigées. Pour solutionner ce problème, un « fond d’image » reflétant ces différences de sensibilité va être généré par le filtre, puis appliqué à l’image acquise, pour la corriger.

Correction « Flat-field »  (Champ plat : théorie)

L’image flat-field est une acquisition faite avec la mise au point idéale d’une surface uniformément éclairée.  Entre cette acquisition et l’opération de correction flat field de l’image souhaitée il n’est pas autorisé de changement, ni de capteur ni d’optique. Pour réduire les erreurs pendant l’opération de correction Flat Field, il est recommandé d’acquérir l’image de correction avec une saturation de 50 à 75% en s’aidant de l’histogramme.

Ensuite, l’image à traiter est « divisée » par l’image de correction Flat Field et elle est normalisée par la valeur moyenne du pixel de l’image Flat Field. Par exemple, si un pixel du capteur est recouvert à 50% par une poussière, la luminosité mesurée par ce pixel est donc réduite, à la fois dans l’image de correction et dans l’image à traiter. La division par la faible luminance dans l’image de correction Flat Field aide à augmenter la luminance du pixel de l’image traitée, tel qu’elle devrait être sans la poussière.

Avant la division vous devez soustraire une image de courant de Noir de l’image de l’objet, comme celle de correction Flat Field, dans le cas ou une image courant de Noir a été générée.

Correction Flat-field (pratique)

Merci de suivre ces étapes :

  • Eclairez le capteur image avec une lumière uniforme à 50 - 70 % de saturation
  • Filtermode = Calibrate (voir Figure 7)
  • Débutez une acquisition « Live snap »
  • Pour activer la correction: Filtermode = On
  • Sauvegardez l’image de correction à l’aide de “Action → Capture Settings → Save Active Device Settings
    (Les paramètres sont sauvés dans les registres)

Le filtre acquiert x images et calcule l’image de correction Flat Field.

 

files/mv11/images/support/faq/ImageErrors_07.jpg

Figure 7: Filtermode = Calibrate

 

Caméra à correction flat-field embarquée

 

Avec la gamme GigE Vision mvBlueCOUGAR-X, il est possible d’exécuter la correction Flat Field placée dans le FPGA de la caméra. Egalement, vous pouvez sauver l’image Flat Field dans la caméra. Cependant, cela dépend de la résolution du capteur. Vous pouvez vérifier dans “Setting → Base → Camera → GenICam” pour contrôler si le modèle spécifique de votre caméra supporte ou non ce mode de correction (soit “mv Flat Field Correction Control”):

files/mv11/images/support/faq/ImageErrors_08.jpg

Figure 8: Filtermode = Calibrate

Dans le chapitre “Use Cases → Using real-time flat field correction (FFC)” vous trouverez une description détaillée de l’utilisation de la correction Flat Field embarquée dans la caméra.

Retour