Produkte
Service & Support
Branchen & Lösungen
Karriere
Unternehmen
Version 3.0
·
Zuletzt bearbeitet am 2025-04-08

Korrektur von Bildfehlern bei Bildsensoren

1. 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. Balluff bietet mehrere Verfahren zur Korrektur dieser Fehler. Standardmäßig handelt es sich dabei um Host-basierte Berechnungen, einige Gerätefamilien unterstützen jedoch gerätebasierte Korrekturen, was CPU-Last einspart und die Latenzzeit verringert:

Gerätefamilie

Algorithmusgestützte Erkennung und Korrektur

Listenbasierte Korrektur

Speichermöglichkeit für Defekte-Pixel-Liste

Flat-Field Correction (Host)

Flat-Field Correction (Device)

BVS CA-GX0

-

-

X

X

X

BVS CA-GX2

Wenn Binning/Decimation eingeschaltet ist -> wird keine Liste gespeichert

X

X

X

-

BVS CA-GT1

X

-

-

X

X

BVS CA-SF

Wenn Binning/Decimation eingeschaltet ist -> wird keine Liste gespeichert

X

X

X

-

Die Entfernung defekter Pixel erfordert im Allgemeinen zwei Teilaufgaben:

  • Erkennung von defekten Pixeln

  • Korrektur von defekten Pixeln

Beide Aufgaben können an verschiedenen "Orten" durchgeführt werden:

  • Erkennung und Korrektur auf dem Host mit Impact Acquire

  • Erkennung auf dem Host mit Impact Acquire, Korrektur auf dem Gerät mit mvDefectivePixelCorrectionControl des Geräts im listenbasierten Modus

  • Erkennung und Korrektur auf der Kamera unter Verwendung von mvDefectivePixelCorrectionControl im algorithmusbasierten Modus.

Wenn die Erkennung nicht in Echtzeit erfolgt, d. h. während der Bildaufnahme selbst, ist es notwendig, die erkannten Defekte irgendwo zu speichern. Dies kann entweder auf dem Gerät oder auf dem Host oder beides sein.

1.1. Host-basierte Erkennung defekter Pixel

Wie bereits erwähnt, kann die Defektpixelliste mit Impact Acquire erstellt werden. Da es drei Arten von Defekten gibt, bietet Impact Acquire drei Kalibrierungsmethoden zur Erkennung:

  1. Leaky Pixel (im Dunkeln)
    sind Pixel, die einen höheren Auslesecode als der Durchschnitt erzeugen

  2. Hot Pixel (bei normalen Lichtverhältnissen)
    sind Pixel, die einen höheren nichtproportionalen Auslesecode erzeugen, wenn die Temperatur steigt

  3. Cold Pixel (nter Standardlichtbedingungen)
    sind Pixel, die einen niedrigeren Auslesecode als der Durchschnitt erzeugen, wenn der Sensor belichtet wird (z. B. aufgrund von Staubpartikeln auf dem Sensor)

1.1.1. Erkennung von Leaky Pixel

Zur Erkennung von Leaky pixel sind folgende Schritte erforderlich:

  1. Gain ("Setting -> Base -> Camera -> GenICam -> Analog Control -> Gain = 0 dB") und Exposure "Setting -> Base -> Camera -> GenICam -> Acquisition Control -> ExposureTime = 360 msec" auf die gegebenen Betriebsbedingungen einstellen. Die Gesamtzahl der im Array gefundenen defekten Pixel hängt von der Verstärkung und der Belichtungszeit ab.

  2. Das Objektiv vollständig abdunkeln.

  3. Den (Filter-) "Mode = Calibrate leaky pixel" einstellen.

  4. Bild aufnehmen (z.B. durch Drücken von Acquire im ImpactControlCenter mit "Acquisition Mode = SingleFrame").

Der Filter prüft:

Pixel > LeakyPixelDeviation_ADCLimit // (Standardwert: 50)

Alle Pixel oberhalb dieses Wertes werden als Leaky Pixel betrachtet.

1.1.2. Erkennung von Hot Pixel und Cold Pixel

Mit "Mode = Calibrate Hot And Cold Pixel" können beide Erkennungen gleichzeitig durchführt werden.

Zur Erkennung von Hot oder Cold Pixel sind die folgenden Schritte notwendig:

  • Es wird eine gleichmäßige Sensorausleuchtung von ca. 50 - 70 % Sättigung (d.h. einen durchschnittlichen Grauwert zwischen 128 und 180) benötigt.

  • Den (Filter-) "Mode = Calibrate Hot Pixel" oder "Mode = Calibrate Cold Pixel" oder "Mode = Calibrate Hot And Cold Pixel" einstellen.

  • Ein Bild aufnehmen (z.B. durch Drücken von Acquire im ImpactControlCenter mit "Acquisition Mode = SingleFrame").

Der Filter prüft:

Pixel > T[hot] // (Standardwert: 15 %)

// T[hot] = Abweichung vom mittleren Grauwert

Pixel < T[cold] // (Vorgabewert: 15 %)

// T[kalt] = Abweichung vom mittleren Grauwert

 

Abbildung 1: Bildkorrekturen: DefectivePixelsFilter

Durch die Wiederholung der Korrekturen für defekte Pixel werden die Korrekturdaten akkumuliert, was zu einem höheren Wert in "DefectivePixelsFound" führt. Wenn Sie die Korrekturdaten zurücksetzen oder den Korrekturvorgang wiederholen möchten, müssen Sie den Filtermodus auf "Reset Calibration Data" setzen. Um die Anzahl der erkannten defekten Pixel zu begrenzen, kann die Eigenschaft "DefectivePixelsMaxDetectionCount" verwendet werden.

 

1.2. Speichern von defekten Pixeldaten auf dem Gerät

Zum Speichern und Laden der defekten Pixeldaten stehen entsprechende Funktionen zur Verfügung:

  • "int mvDefectivePixelDataLoad( void )"

  • "int mvDefectivePixelDataSave( void )"

Der Bereich "Einstellung -> Basis -> ImageProcessing -> DefectivePixelsFilter" wurde ebenfalls erweitert (siehe Abbildung 2). Zunächst gibt der "DefectivePixelsFound" die Anzahl der gefundenen defekten Pixel an. Die Koordinaten sind nun über die Eigenschaften "DefectivePixelOffsetX" und "DefectivePixelOffsetY" verfügbar. Darüber hinaus ist es möglich, diese Werte manuell zu bearbeiten, hinzuzufügen und zu löschen (per Rechtsklick auf den "DefectivePixelOffset" und Auswahl von "Append Value" oder "Delete Last Value"). Zweitens, mit den Funktionen

  • "int mvDefectivePixelReadFromDevice( void )"

  • "int mvDefectivePixelWriteToDevice( void )"

können Sie die Daten des Filters mit dem Gerät austauschen und umgekehrt.

Klicken Sie einfach mit der rechten Maustaste auf "mvDefectivePixelWriteToDevice" und klicken Sie auf "Execute", um die Daten auf das Gerät zu schreiben (und die Daten an die Funktion Storing pixel data on the device zu übergeben). Um die Daten dauerhaft im nichtflüchtigen Speicher des Geräts zu speichern, muss anschließend auch "mvDefectivePixelDataSave" aufgerufen werden!

Abbildung 2: Bildkorrekturen: DefectivePixelsFilter (ab Treiberversion 2.17.1 und Firmwareversion 2.12.406)

Beim Öffnen des Geräts lädt das Gerät die fehlerhaften Pixeldaten aus dem Gerät. Wenn Pixel im Filter vorhanden sind (über Kalibrierung), können Sie die Werte trotzdem aus dem Gerät laden. In diesem Fall werden die Werte mit den vorhandenen zusammengeführt. D.h. es werden neue hinzugefügt und Duplikate entfernt.

 

Abbildung 3: Defekte Pixeldaten werden in das Gerät geschrieben (ab Treiberversion 2.17.1 und Firmwareversion 2.12.406)

 

 

 

1.3. Host-basierte Defektpixel-Korrektur

Nachdem eine Defektliste erstellt wurde, kann eine hostbasierte Korrektur mit Impact Acquire durchgeführt werden.

Zur Korrektur der defekten Pixel stehen verschiedene Ersetzungsmethoden zur Verfügung:

  1. "Replace 3x1 average"

    Ersetzt die erkannten defekten Pixel durch den Durchschnittswert des linken und rechten Nachbarpixels (3x1)

  2. "Replace 3x3 median"

    Ersetzt die erkannten defekten Pixel durch den Medianwert, der aus den nächstgelegenen Nachbarpixeln in einer 3 x 3 Region berechnet wird.

  3. "Replace 3x3 Filtered Data Averaged"

    Ersetzt die erkannten defekten Pixel und behandelt sie so, als ob sie mit einem 3-mal-3-Filteralgorithmus verarbeitet worden wären, bevor sie diesen Filter erreichten.

    Nur für Geräte empfohlen, die keine Kompensation defekter Pixel bieten; gepackte RGB- oder gepackte YUV444-Daten werden benötigt. Siehe Aufzählungswert dpfmReplaceDefectivePixelAfter3x3Filter im entsprechenden API-Handbuch für zusätzliche Details über diesen Algorithmus und wann und warum er benötigt wird

1.4. Listenbasierte Defektpixelkorrektur auf dem Gerät

Wie bereits beschrieben, ist es möglich, Listen von defekten Pixeln auf das Gerät zu laden. Es können verschiedene Algorithmen verwendet werden, um festzustellen, ob ein Pixel defekt ist oder nicht, was davon abhängt, wie stark ein Pixel abweichen darf, von der Temperatur, der Verstärkung und der Belichtungszeit. Wie bereits beschrieben, ist die listenbasierte Korrektur deterministisch, d. h. es ist genau bekannt, welche Pixel korrigiert werden.

Die listenbasierte Korrektur hat jedoch einige Nachteile:

  • Bei der Produktion wird eine Standardliste im Gerät gespeichert, die aber möglicherweise nicht zur Zielanwendung passt, da die Temperatur-/Belichtungszeiteinstellungen sehr unterschiedlich sind.

    → Es ist notwendig, die Liste mit Hilfe eines Erkennungsalgorithmus zu erstellen (oder Impact Acquire zu unterstützen)

  • Mit der Zeit und der Alterung des Sensors können/werden neue Defekte auftreten.

  • Es funktioniert nicht in den Modi Binning/Decimation

  • Der Speicher für die Speicherung defekter Pixel ist begrenzt

1.5. Adaptive/algorithmusbasierte Korrektur auf dem Gerät

In diesem Fall führt das Gerät die Erkennung und Korrektur on-the-fly durch, ohne eine Fehlerliste zu verwenden.

Die adaptive Korrektur behebt die oben erwähnten Nachteile der listenbasierten Methode. Während die Korrektur selbst (d. h. welche Pixel zur Korrektur eines erkannten Fehlers verwendet werden) die gleiche ist, werden keine statischen Informationen aus einer Liste verwendet, sondern sie werden "on the fly" erkannt.

Um vernünftige Schwellenwerte zu verwenden, wird das Wissen über die Rauschstatistik des Sensors genutzt, um die Ausreißer zu erkennen. Diese werden ebenfalls "on the fly" korrigiert. Da es sich um einen dynamischen Ansatz handelt, funktioniert er auch im Binning/Decimation-Modus und würde auch neu auftretende Fehler erkennen.

Dennoch gibt es einige Nachteile:

  • Es ist nicht deterministisch

  • Es können falsch positive Ergebnisse erkannt werden, d. h. nicht defekte Pixel könnten als defekt behandelt werden.

  • Wenn Pixel am Rande der verwendeten Schwellenwerte liegen, können sie in einem Bild korrigiert werden, im nächsten aber nicht mehr.

Auf BVS CA-SF-Geräten wird die adaptive Korrektur immer verwendet, wenn:

  • keine Liste auf dem Gerät gespeichert ist

  • Binning oder Decimation verwendet wird

2. Flat-Field-Korrektur

Jedes Pixel eines Bildsensors ist ein einzelner Detektor mit eigenen Eigenschaften. Dies gilt insbesondere für die Empfindlichkeit bzw. die spektrale Empfindlichkeit. Um dieses Problem (einschließlich Objektiv- und Beleuchtungsvariationen) zu lösen, wird eine einfarbige Kalibrierungsplatte (z.B. weiß oder grau) als Flat-Field aufgenommen, die zur Korrektur des Originalbildes verwendet wird. Zwischen der Flat-Field-Korrektur und der späteren Anwendung darf die Optik nicht verändert werden. Um Fehler bei der Flat-Field-Korrektur zu reduzieren, ist eine Sättigung zwischen 50 % und 75 % des Flat-Fields im Histogramm sinnvoll.

Um eine Flat-Field-Korrektur durchzuführen, sind folgende Schritte erforderlich:

  • Eine einfarbige und gleichmäßig "gefärbte" Kalibrierungsplatte (z.B. weiß oder grau) wird benötigt.

  • Kein einziges Pixel darf gesättigt sein - deshalb empfehlen wir, den maximalen Grauwert im hellsten Bereich auf max. 75% der Grauskala einzustellen (d.h. auf Grauwerte unter 190 bei Verwendung von 8-Bit-Werten)

  • Unter "Einstellung -> Basis -> Kamera -> GenICam -> Bildformatsteuerung -> PixelFormat" BayerXY auswählen.

  • Den (Filter-) "Modus = Kalibrieren" (Abbildung 4) setzen.

  • Live-Aufnahme ("Acquire" mit "Acquisition Mode = Continuous") starten.

  • Die Korrektur aktivieren: Den (Filter-) "Mode = On" setzen.

  • Die Einstellungen einschließlich der Korrekturdaten über "Action -> Capture Settings -> Save Active Device Settings" setzen

    (Die Einstellungen können in der Windows-Registrierung oder in einer Datei gespeichert werden)

 

Abbildung 4: Bildkorrekturen: Host-basierte Flatfield-Korrektur

Nach einem Neustart des Geräts müssen Sie die Aufnahmeeinstellungen neu laden.

Der Filter nimmt eine Anzahl von Bildern auf (entsprechend dem Wert von CalibrationImageCount, z.B. 5) und mittelt die Flat-Field-Bilder zu einem Korrekturbild.

2.1. Host-basierte Flat-Field-Korrektur mit Kalibrierungs-AOI

In manchen Fällen kann es erforderlich sein, nur einen bestimmten Bereich innerhalb des Sichtfeldes des Geräts zur Berechnung der Korrekturwerte zu verwenden. In diesem Fall wird nur ein bestimmter AOI zur Berechnung des Korrekturfaktors verwendet.

Die "Host-basierte Flat-Field-Korrektur" kann auf folgende Weise durchgeführt werden:

  • Alle notwendigen Einstellungen können unter "ImageProcessing"-> "FlatfieldFilter" gefunden werden.

  • Den Aufnahmemodus "Continuous" stoppen.

  • "CalibrationImageCount" auf z.B. 5 setzen.

  • Den "Mode" auf "Calibrate" setzen.

  • "CalibrationAoiMode" auf "UseAoi" setzen.

  • Die Eigenschaften ("X, Y und W, H"), die unter "CalibrationAOI" erscheinen, auf die gewünschte AOI einstellen.

  • Den Erfassungsmodus "Continuous" starten.

  • Die Korrektur aktivieren: Den "Mode" auf "On".

 

Abbildung 5: Bildkorrekturen: Host-basierte Flatfield-Korrektur mit Kalibrierungs-AOI

2.2. Host-basierte Flat-Field-Korrektur mit Korrektur-AOI

In manchen Fällen kann es erforderlich sein, nur einen bestimmten Bereich im Sichtfeld des Geräts zu korrigieren. In diesem Fall werden die Korrekturwerte nur auf einen bestimmten Bereich angewendet. Für den Rest des Bildes beträgt der Korrekturfaktor nur 1,0.

Die "Host-basierte Flatfield-Korrektur" kann wie folgt eingestellt werden:

  • Alle notwendigen Einstellungen können unter "ImageProcessing"-> "FlatfieldFilter" gefunden werden.

  • Den Aufnahmemodus "Continuous" stoppen.

  • "CalibrationImageCount" auf z.B. 5 setzen.

  • Den "Mode" auf "Calibrate" setzen.

  • Den Erfassungsmodus "Continuous" starten.

  • Die Korrektur aktivieren: Den "Mode" auf "On".

  • "CorrectionAOIMode" auf "UseAoi" setzen.

  • Die Eigenschaften ("X, Y und W, H"), die unter "CorrectionAOI" erscheinen, auf die gewünschte AOI einstellen.

 

Abbildung 6: Bildkorrekturen: Host-basierte Flatfield-Korrektur mit Korrektur-AOI

2.3. Gerätebasierte Flat-Field-Korrektur

Die gerätebasierte Flat-Field-Korrektur unterstützt volle AOI und 14-Bit-zu-14-Bit-Korrektur (12-Bit-Koeffizienten). Dies ermöglicht eine Pixel-zu-Pixel-Korrektur und spart Dutzende von % CPU-Last und senkt die Latenzzeit. Zur Verringerung des Rauschens ist eine Mittelwertbildung über eine Reihe von "mv Flat-Field Correction Calibration Images" möglich. Es wird dann ein Korrekturbild im Gerät berechnet. Dies kann einige Zeit / Anzahl der Bilder dauern, das Gerät blinkt jedoch grün. Für alle Benutzereinstellungen kann ein Korrekturbild gespeichert werden.

Die gerätebasierte Flat-Field-Korrektur ist unabhängig vom Offset und verwendet einen Trigger im Run-Mode (z.B. externer Trigger).

Abbildung 7: ImpactControlCenter - Einstellungen

Die gerätebasierte Flat-Field-Korrektur kann wie folgt eingestellt werden:

  • "mv Flat-Field Correction Calibration Image Count" auf z.B. 5 setzen.

    Dadurch werden 5 Bilder gemittelt, bevor die FFC-Faktoren berechnet werden, um die Auswirkungen des Rauschens zu verringern.

  • Den Erfassungsmodus "Continuous" stoppen.

  • Mit der rechten Maustaste auf "int mvFFCCalibrate()" -> "Execute" klicken.

  • Die Korrektur aktivieren: "mv Flat-Field Correction Enable = 1" setzen.

Je nach Sensor kann dies einige Zeit in Anspruch nehmen, da die Daten im internen Flash-Speicher abgelegt werden (gelbe LED leuchtet).

2.4. Gerätebasierte Flat-Field-Korrektur mit Kalibrier-AOI

In einigen Fällen kann es erforderlich sein, nur einen bestimmten Bereich innerhalb des Sichtfeldes des Geräts zur Berechnung der Korrekturwerte zu verwenden. In diesem Fall wird nur ein bestimmter AOI zur Berechnung des Korrekturfaktors verwendet.

Die "gerätebasierte Flachfeldkorrektur mit AOI" kann wie folgt eingestellt werden:

  • Den Erfassungsmodus "Continuous" starten.

  • Die Eigenschaften ("OffsetX, OffsetY und W, H") verwenden, um den gewünschten AOI für die FFC-Berechnung zu konfigurieren.

    Die Erfassung zunächst anhalten, um W und H in Image Format Control zu ändern. Nur OffsetX und OffsetY können im laufenden Betrieb geändert werden.

  • "mvFFCCalibrationImageCount" auf z.B. 5 setzen.

    Dadurch werden 5 Bilder gemittelt, bevor die FFC-Faktoren berechnet werden, um die Auswirkungen des Rauschens zu verringern.

  • Falls noch nicht in Schritt 2 geschehen, den Erfassungsmodus "Continuous" stoppen.

  • Dann mit der rechten Maustaste auf "int mvFFCCalibrate()" -> "Execute" klicken.

  • Die Eigenschaften ("OffsetX, OffsetY und W, H") verwenden, um die volle Bildgröße oder die gewünschte AOI einzustellen.

  • Die Korrektur aktivieren: Den Wert "mvFFCEnable = 1" setzen.

 

Die Flat-Field-Korrektur wird auf das gesamte Bild angewendet.

Abbildung 8: ImpactControlCenter - Berechnungs-AOI für Flat-Field-Korrektur setzen

 

Wenn der FFC wie erwartet funktioniert, ist es möglich, die FFC-Kalibrierungswerte im Gerät zu speichern, wenn die Eigenschaft mvFFCImageSave verfügbar ist. Je nach Sensor wird dies einige Zeit in Anspruch nehmen, da die Daten im internen Flash-Speicher abgelegt werden (gelbe LED leuchtet). Die FFC-Werte können dann mit dem Befehl mvFFCImageLoad aus dem Flash geladen werden. Wenn die Werte bei jedem Einschalten des Geräts geladen werden sollen, kann dies durch die Einstellung "mvFFCAutoLoadMode = On" erfolgen.

Farbgeräte mit einer FW-Version kleiner als 2.40 verwenden einen Multiplikationsfaktor von 1,3 auf den Korrekturfaktor jeder Farbe. Dieser Faktor minimiert Farbartefakte, wenn die Szene heller wird. Neuere Firmware-Versionen verwenden einen Multiplikationsfaktor von 1,0 und verwenden zur Minimierung von Farbartefakten die oben beschriebene AOI-Methode.

 

Abbildung 9: ImpactControlCenter - FFC-Werte speichern/laden

Disclaimer

Die hier unentgeltlich bereitgestellte technische Information zu Ihrer Anfrage basiert auf dem von BALLUFF vorliegenden Kenntnisstand um Sie bestmöglich bei Ihrer technischen Fragestellung bzw. Anwendung zu unterstützen und Lösungsansätze aufzuzeigen.

Nachdem die technische Information unentgeltlich zur Verfügung gestellt wird, ist die Sach- und Rechtsmängelhaftung von BALLUFF ausgeschlossen, es sei denn, es liegt eine vorsätzliche oder grob fahrlässige Pflichtverletzung von BALLUFF oder Arglist auf Seiten von BALLUFF vor. Diesbezüglich haftet BALLUFF auf Schadenersatz wegen Mängeln der technischen Information oder wegen der Verletzung sonstiger vertraglicher oder außervertraglicher Pflichten nur bei Vorsatz oder grober Fahrlässigkeit. Die vorstehende Haftungsbeschränkung gilt nicht bei Arglist, bei Verletzungen des Lebens, des Körpers oder der Gesundheit, bei der Übernahme einer Garantie sowie bei der Haftung nach dem Produkthaftungsgesetz. Eine weitergehende Haftung von BALLUFF ist ausgeschlossen.

Prüfen Sie vor dem Einsatz in Anlagen und Maschinen, ob die hier bereitgestellte, unentgeltliche Information für Ihre Anwendung geeignet ist. Mit der Nutzung der hier unentgeltlich vorgelegten Informationen erkennen Sie diese Haftungsregelung an.

Energy consumption labeling
Energy consumption labeling

EPREL - European Product Database for Energy Labeling

Haben Sie Fragen oder Anregungen? Wir sind für Sie da.

Sie haben mehrere Möglichkeiten mit uns in Kontakt zu treten. Wir freuen uns, Ihnen weiterhelfen zu können.

Kontaktieren Sie uns direkt per Telefon: +49 7158 173-555


Balluff GmbH

Zabergäustraße 8
73765 Neuhausen a.d.F.

Kostenloses Produktmuster

Um ein kostenloses Musterprodukt in den Warenkorb legen zu können, müssen wir alle normalen Produkte aus dem Warenkorb entfernen. Sind Sie sicher, dass Sie fortfahren möchten