Wie kann ich mit wxPropView Bildfehler von Sensoren korrigieren?

mvBlueFOX, mvBlueFOX3, mvBlueCOUGAR, mvBlueLYNX-X

Bitte lesen Sie die folgenden Hinweise, bevor Sie mit der Korrektur beginnen:

Werden alle drei folgenden Korrekturverfahren angewendet, müssen diese in der aufgelisteten Reihenfolge durchgeführt werden:

  1. Korrektur der defekten Pixel
  2. Dunkelstrom-Korrektur
  3. Flatfield-Korrektur

Damit die Korrektur über die ganze Bildfläche ausgeführt wird, setzen Sie den AOI zurück auf Default (Rechte Maustaste „Restore Default“ über dem jeweiligen Width- oder Height-Wert unter „Setting → Base → Camera“).

Sie können die Korrektur-Daten unterschiedlich abspeichern. Welche Abspeichermöglichkeiten es gibt, können Sie den jeweiligen Kamera-Handbüchern im Kapitel „GUI → wxPropView → How to work with wxPropView → Storing and restoring settings“.

Alle Korrekturen, welche über „Setting → Base → ImageProcessing“ zur Verfügung stehen, werden:

  1. Host-seitig ausgeführt und benötigen daher Prozessorleistung.
  2. Gibt es für alle MATRIX VISION Kameras.

Bei mvBlueCOUGAR-X kann die Flatfield-Korrektur auch auf der Kamera ausgeführt werden. Das Dokument geht im Flatfield-Korrektur-Abschnitt darauf ein. Generell gilt: Falls für die mvBlueCOUGAR-X Familie weitere kamera-seitige Korrekturen implementiert werden, dann werden diese unter „Setting → Base → Camera → GenICam“ zu finden sein. Fragen Sie uns, falls Sie wissen wollen, was hierzu geplant ist.

Alle Grauwerte, die in den Korrekturen verwendet werden, gehen von einem 8-Bit Ausgangsbild aus.

Defekte Pixel (engl.: defective pixels)

Aufgrund von zufälligen Prozessabweichungen können Sensorhersteller nicht garantieren, dass sich alle Pixel bei gleichen Lichtverhältnissen gleich verhalten. Diese Abweichungen werden Blemish (dt.: Makel, Fehler) oder defekte Pixel genannt. Es gibt zwei Arten von defekten Pixeln:

  1. Leaky Pixel (bei Dunkelaufnahmen)
  2. Cold Pixel (bei Lichtaufnahmen)

Leaky Pixel

Wenn der Sensor nicht belichtet wird, erzeugen Leaky Pixel einen im Vergleich zum Durchschnitt höheren Auslesecode. Dies wird durch helle Punkte auf einem dunklen Hintergrund deutlich. Leaky Pixel werden als Pixel mit einem Auslesecode höher als Tleak des ADC-Codes definiert (siehe Abbildung 1).

files/mv11/images/support/faq/ImageErrors_01.gifAbbildung 1: Pixelverteilung während Dunkeltests

Spezifikation von defekten Pixel

Die Anzahl von Leaky Pixeln hängt vom Gain und von der Belichtungszeit ab. Daraus errechnet sich das Gesamtintegrationsprodukt GTProduct:

  • GTProduct = Linear Gain Setting * Integration time

Leaky Pixel Korrektur (Theorie)
Mithilfe der Nachbarpixel werden die defekten Pixel ersetzt. Dabei gibt es unterschiedliche Möglichkeiten, welche Nachbarn verwendet werden. Vorhandene Replace Methoden sind:

  • 3 x 1 Average
  • 3 x 3 Median

Leaky Pixel Korrektur (Praxis)
Folgende Schritte sind zur Korrektur notwendig (siehe Abbildung 3):

  • GTProduct = 360 msec (Gain_dB = 0 dB, Belichtungszeit (Expose_us) = 360 msec)
  • Objektiv komplett abdunkeln
  • Filtermode = Calibrate leaky pixel
  • Aufnahme eines Bildes (Acquire [Acquisition Mode = SingleFrame])
  • Korrektur einschalten durch Auswahl einer Replace-Methode: “Replace 3x1 average” oder “Replace 3x3 median”
  • Korrekturdaten mit „Action → Capture Settings → Save Active Device Settings“ speichern
    (Einstellungen werden in die Registry geschrieben)

Nach einem Neustart des Systems müssen die Capture Settings neu geladen werden.

Der Filter überprüft:

  • Pixel > LeakyPixelDeviation_ADCLimit (Abweichung unter ADC-Limit, Standardwert = 50)

Alle Pixel über diesem Wert haben einen zu großen Leckstrom.

Cold Pixel

Bei Standardlichtverhältnissen mit einem Pegel, der beim Auslesen zu einer Sättigung von z.B. 70 % führt, kann es Pixel geben, die bei der Belichtung einen geringeren Auslesecode erzeugen als der Durchschnitt. Diese Pixel werden Cold Pixel genannt und diese haben bei einem gleichmäßig ausgeleuchteten Hintergrund eine geringere Intensität als andere. Indem der Sensor belichtet wird, können Cold Pixel als Pixel, die mit dem Prozentsatz Tcoldvom Mittelwert abweichen, aufgespürt werden (siehe Abbildung 2).
Cold Pixel können z.B. durch Staubpartikel auf einem Pixel verursacht werden.

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

Abbildung 2: Pixelverteilung während Lichttests

Cold Pixel Korrektur (Theorie)

Entsprechend der Leaky Pixel Korrektur werden auch bei der Cold Pixel Korrektur mithilfe der Nachbarpixel die defekten Pixel ersetzt. Hierbei gibt es ebenfalls unterschiedliche Möglichkeiten, welche Nachbarn verwendet werden.

Cold Pixel Korrektur (Praxis)

Folgende Schritte sind zur Korrektur notwendig (siehe Abbildung 3):

  • Homogene Sensorausleuchtung ca. 50 - 70 % Dynamik (d.h., durchschnittlicher Grauwert liegt zwischen 128 und 180)
  • Filtermode = Calibrate cold pixel
  • Aufnahme eines Bildes (Snap)
  • Korrektur einschalten durch Auswahl einer Replace-Methode: “Replace 3x1 average” oder “Replace 3x3 median”
  • Korrekturdaten mit „Action → Capture Settings → Save Active Device Settings“ speichern
    (Einstellungen werden in die Registry geschrieben)

Nach einem Neustart des Systems müssen die Capture Settings neu geladen werden.

Der Filter überprüft:

  • Pixel > Tcold (Default: 15 %)
  • Tcold = Abweichung vom durchschnittlichen Grauwert (ColdPixelDeviation_pc)

Alle Pixel unter diesem Wert haben eine zu schwache Dynamik.

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

Abbildung 3: Defective Pixel Filter

Hinweis: Falls Sie die oben genannte Korrekturen mehrmals durchführen sollten, dann werden die Korrekturdaten kumuliert, was zu einem höheren „DefectivePixelFound“ Wert führt. Sie können die Korrekturdaten zurücksetzen, indem Sie den (Filter-)Mode = Reset Calibration Data” auswählen.

Dunkelstrom (engl.: dark current)

Dunkelstrom bezeichnet die Eigenart von Bildsensoren, auch bei völliger Dunkelheit ein Bildsignal zu liefern. Technisch bedeutet dies, dass durch Wärme spontan Ladungsträger gebildet werden. Dieses Signal überlagert die Bildinformation. Die Produktion von Dunkelstrom ist abhängig von zwei Gegebenheiten:

  1. Belichtungszeit
    Je länger belichtet wird, desto größer wird der Dunkelstromanteil. D.h., bei langer Belichtungszeit kann der Dunkelstrom alleine zu einem überbelichteten Sensorchip führen.
  2. Temperatur
    Durch Kühlen des Sensorchips kann die Dunkelstromproduktion stark gesenkt werden (ca. alle 6 °C wird der Dunkelstrom halbiert).

Dunkelstromkorrektur (Theorie)

Die Korrektur erfolgt pixelweise, d.h., das erste Pixel (z.B. links oben in der Bildecke) des Rohbildes wird mit dem entsprechenden Pixel in den Korrekturbildern korrigiert.
Da der Dunkelstrom reproduzierbar ist, kann zur Korrektur eines Rohbildes ein davor oder danach aufgenommenes Dunkelstrombild pixelweise abgezogen werden. Wichtig zu beachten ist einzig, dass das Roh- und Dunkelstrombild bei gleicher Belichtungszeit und Temperatur aufgenommen wurden. Nach der Korrektur bleibt das Signal des aufgenommenen Objektes übrig.

Hinweis: Dunkelstromaufnahmen (wie andere Aufnahmen auch!) sind generell mit einem gewissen Anteil an Rauschen versehen. Dieses Rauschen stellt die Unsicherheit einer Messgröße dar, wie sie überall in der Physik auftritt. Da die Differenz von zwei unkorrelierten Rauschquellen niemals null ist, ist die Differenz zweier Dunkelstrombilder ebenfalls nicht null. In der Regel bleibt Rauschen übrig.

Dunkelstromkorrektur (Praxis)

Folgende Schritte sind zur Korrektur notwendig:

  • Objektiv abdunkeln
  • OffsetAutoCalibration = Off (siehe Abbildung 4)
  • Offset_pc so lange ändern, bis eine Amplitude im Histogramm sichtbar wird (siehe Abbildung 5)
  • Belichtungszeit entsprechend der Applikation einstellen
  • Filtermode = Calibrate (siehe Abbildung 6)
  • Aufnahme eines Bildes
  • Korrektur einschalten: (Filter-)Mode = On
  • Korrekturbild mit „Action → Capture Settings → Save Active Device Settings“ abspeichern
    (Einstellungen werden in die Registry geschrieben)

Nach einem Neustart des Systems müssen die Capture Settings neu geladen werden.

Der Filter nimmt eine Anzahl von x Bildern auf und mittelt diese Dunkelstrombilder zu einem Korrekturbild.

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

Abbildung 4: OffsetAutoCalibration = Off

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

Abbildung 5: Histogrammdarstellung eines Beispielprogrammes

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

Abbildung 6: Filtermode = Calibrate

Empfindlichkeitsvariation

Jedes Pixel eines Sensorchips ist streng genommen ein einzelner Detektor für sich mit seinen ganz eigenen Detektionseigenschaften. Dies betrifft insbesondere die Empfindlichkeit bzw. die spektrale Empfindlichkeit. Der Empfindlichkeitsunterschied kann - abhängig vom Sensor - mehr als 10% betragen. Dies ist zu viel, um ignoriert werden zu können, die Empfindlichkeitsunterschiede müssen korrigiert werden. Dies erfolgt, indem zur Kalibrierung eines jeden Pixels ein vollkommen gleichmäßiger Hintergrund als Flatfield (dt.: Weißbild) aufgenommen wird und später zur Korrektur des Rohbildes herangezogen wird.

Flatfield-Korrektur (Theorie)

Ein Weißbild ist eine Aufnahme mit der späteren Optik einen gleichmäßigen Hintergrund (grau oder weiß). Zwischen der Aufnahme des Weißbildes und des Objektes, das fotografiert werden soll, darf die Optik nicht verändert werden. Um Fehler durch die Weißbildkorrektur gering zu halten, ist eine Sättigung des Weißbildes im Histogramm von 50 bis 75 Prozent günstig. Anschließend dividiert man das aufgenommene Bild des Objektes durch das Weißbild und normiert es auf den spezifischen Pixelwert des Weißbildes (Weißbildkorrektur). Wenn beispielsweise ein Pixel des Sensorchips durch Staub zu 50% abgedeckt wird, ist die dort gemessene Intensität sowohl beim Bild des aufgenommenen Objekts als auch beim Weißbild reduziert. Durch die Division durch den kleinen Helligkeitswert im Weißbild wird der Helligkeitswert im Bild des Objekts auf jenen Wert angehoben, den er ohne Staub hätte.
Wenn auch ein Dunkelbild aufgenommen wurde, ist dieses vor der Division sowohl vom Bild des Objekts als auch vom Weißbild zu subtrahieren.


Flatfield-Korrektur (Praxis)

Folgende Schritte sind zur Korrektur notwendig:

  • Gleichmäßiger Hintergrund (grau oder weiß)
  • Kein Pixel darf übersättigt sein - das ist der Grund, weshalb wir eine Sättigung des Weißbildes im Histogramm von 50 bis 75 Prozent empfehlen (dies entspricht ein Grauwert unter 190 bei 8-Bit Bilddaten)
  • Filtermode = Calibrate (siehe Abbildung 7)
  • Aufnahme mit Live starten
  • Korrektur einschalten: (Filter-)Mode = On
  • Korrekturbild mit „Action → Capture Settings → Save Active Device Settings“ abspeichern
    (Einstellungen werden in die Registry geschrieben)

Hinweis: Die Flatfield-Korrektur gibt es bei der mvBlueFOX3 nur Host-basiert.

Der Filter nimmt eine Anzahl von x Bildern (je nach Parameter-Wert CalibrationImageCount) auf und mittelt diese Weißbilder zu einem Korrekturbild.

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

Abbildung 7: Filtermode = Calibrate


Flatfield-Korrektur kamera-seitig ausführen

Bei der GigE Vision Kamerafamilie mvBlueCOUGAR-X können Flatfield-Korrekturen aufgrund des großen FPGAs auf der Kamera ausgeführt und das Korrekturbild je nach Auflösung auch auf der Kamera gespeichert werden. Ob das jeweilige Modell diese kamera-seitige Korrektur unterstützt, können Sie daran erkennen, ob unter „Setting → Base → Camera → GenICam“ das Control „mv Flat Field Correction Control“ vorhanden ist oder nicht

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

Abbildung 8: Kamera-seitige Flatfield-Korrektur

Die kamera-seitige Flatfield-Korrektur kann folgendermaßen aktiviert werden:

  • Setzen Sie die mv Flat-Field Correction Calibration Image Count beispielsweise auf 5.
  • Damit werden 5 Bilder gemittelt, bevor die FFC-Faktoren zur Rauschreduzierung berechnet werden.
  • Stoppen Sie die Live-Aufnahme (Continuous) und starten Sie die Kalibration mittels Rechtsklick auf “int mvFFCCalibrate()” –> Execute.
  • Abschließend müssen Sie noch die Korrektur aktivieren: Setzen Sie hierzu mv Flat-Field Correction Enable = 1

Je nach Sensor kann dies eine gewisse Zeit in Anspruch nehmen, da die Daten in den internen Flashspeicher gespeichert werden müssen (gelbe LED blinkt).

Zurück