Eine Publikation der Swissprofessionalmedia AG
PDF download
Code der Image Processing Pipeline ist frei erhältlich : Ausgabe 19/2015, 19.11.2015

Professionelle Bilder für die Industrie

In der industriellen Bildverarbeitung, Computer Vision und Überwachung gilt, dass gute Bilder die Voraussetzung für erfolgreiche Resultate sind. Wie werden aber Bilder professionell aufbereitet? Auf diese Fragen geht der folgende Artikel ein. Er behandelt Aspekte der Belichtungszeit, des Weiss- abgleichs, der Farbkalibration, der Linsen-Entzerrung und der Bildschärfung.

Autor: Patrick Roth und Dr. Jürg M. Stettbacher, Stettbacher Signal Processing AG, Text und Bilder

Die im folgenden Fachbeitrag beschriebene Image Processing Pipeline wurde für die Kamera O-3000 von Stettbacher Signal Processing AG implementiert. Der Code ist frei erhältlich. Die O-3000-Kameras bieten den Vorteil, dass die Interface-Spezifikation sowie alle Treiber und Beispielprogramme offen gelegt sind und frei für eigene Zwecke verwendet werden dürfen. Digitale Kameras, auch wie die O-3000, liefern nicht von sich aus gute Bilder. Nebst geeigneter Beleuchtung sind in der Regel ausgeklügelte Bildverarbeitungs- algorithmen nötig, um das Bild oder den Stream naturgetreu erscheinen zu lassen. Solche Algorithmen sind in einer Image Processing Pipeline implementiert.

Bildsensor und Objektiv

Jede Kamera braucht ein Objektiv mit geeigneter Brennweite und Apertur. Die Szene wird durch das Linsensystem des Objektivs auf den Bildsensor projiziert. Der Sensor besteht aus einem Array von lichtempfindlichen Pixeln und misst die Intensität des einfallenden Lichtes. Die O-3000-Kameras nehmen Objektive der Typen S-, C-, und CS-Mount auf und verfügen über eine USB-High-Speed-Schnittstelle. Der Sensor hat eine Auflösung von 1,2 Megapixel und liefert im Normalbetrieb Bilder mit 12 Bit pro Pixel. Im HDR-Modus (High Dynamic Range) erzielt die Kamera eine Dynamik von über 115 dB, was rund 20 Bit pro Pixel entspricht.

Regelung der Belichtungszeit und Pixelverstärkung

Bei Kamerasystemen mit einer fixen Apertur wird die Helligkeit des Bildes mit der Belichtungszeit und der Pixelverstärkung variiert. Beide Methoden bergen gewisse Gefahren bei dunklen Szenen, denn eine lange Belichtungszeit führt bei bewegten Objekten zu Unschärfe und eine hohe Pixel-Verstärkung führt zu Bildrauschen. Beides ist ungewollt, so dass ein Kompromiss gesucht werden muss. Die Helligkeit der aufgenommenen Szene lässt sich einfach mit einem Histogramm analysieren und mit einer geeigneten Kombination aus Belichtungszeit und Pixelverstärkung einstellen. Die O-3000 hat bereits einen Algorithmus implementiert, der die Helligkeit des Bildes automatisch optimiert und zählt daher zu den halb intelligenten Kameras; ebenfalls wird eine manuelle Pixelverstärkung und Belichtungszeit unterstützt.

Rekonstruktion der Farbwerte

Die Pixelwerte von CMOS-Bildsensoren liegen im Bayer-Format vor. Die RGB-Farbwerte (Rot, Grün, Blau) müssen pro Pixel zuerst rekonstruiert werden. Es gibt verschiedene Algorithmen, die sich im Rechenaufwand und in der erzielbaren Qualität stark unterscheiden. Hier wird der sogenannte Nearest-Neighbor-Algorithmus verwendet, der den RGB-Farbwert aus den Nachbarpixeln bestimmt.

Weissabgleich

Unterschiedliche Lichtquellen haben verschiedene Farbtemperaturen. Der Begriff der Farbtemperatur stammt vom schwarzen Körper, der bei der betreffenden Temperatur mit der entsprechenden Farbe strahlt. Eine durchschnittliche Glühlampe erzeugt ein warm-weisses, gelbliches Licht. Man sagt, sie habe eine tiefe Farbtemperatur, während eine Leuchtstofflampe mit höherer Farbtemperatur in einem kalt-weissen, bläulichen Farbton abstrahlt. Das Licht der Quelle wird von der Umgebung reflektiert, so dass ein aufgenommenes Bild einen Farbstich entsprechend der Beleuchtung aufweist. Der Weissabgleich soll diese Tönung ausgleichen und das Bild natürlich erscheinen lassen. Entsprechende Algorithmen ermitteln und korrigieren fortlaufend die dominante Farbe im Bild.

Farbkalibration

Nehmen verschiedene Kameras dieselbe Farbe auf, so liefert jede einen anderen RGB-Wert. Der Grund liegt auf der Hand: Jede Kamera hat leicht andere elektrische und optische Eigenschaften. Um die Farben realitätsgetreu wiederzugeben, müssen die kameraspezifischen RGB-Werte kalibriert werden. Dazu verwendet man Referenzfarben, zum Beispiel eine Color-Checker-Grafik, die verschiedene bekannte Farbflächen enthält.

Jede Farbfläche entspricht einem Punkt in einem bekannten Standard-Farbraum. Beim Kalibrationsprozess wird die Color-Checker-Grafik fotografiert und mit den tatsächlichen Farbwerten verglichen. Daraus wird eine Transformationsgleichung abgeleitet. Deren Lösung ist eine Korrekturmatrix, die den kameraspezifischen Farbraum in den standardisierten Farbraum abbildet.

Linsenentzerrung

Je nach Brennweite weisen Objektive eine kissen- oder tonnenförmige Verzeichnung auf. Ausserdem kann es sein, dass die Optik nicht exakt parallel zur Achse des Bildsensors ausgerichtet ist. Glücklicherweise sind die resultierenden Verzerrungen anhand von Modellen berechenbar und können einfach korrigiert werden. Die Summe aller Verzerrungen lässt sich messen, indem beispielsweise ein Gittermuster aufgenommen wird. Durch Adaption der Modellparameter kann man sicherstellen, dass alle Gitterlinien rechtwinklig aufeinanderstehen. Ist das erreicht, so ist die Verzeichnung korrigiert.

Schärfe verbessern

Um ein Bild schärfer erscheinen zu lassen, werden gewisse Elemente des Bildes verstärkt. Beispielsweise wird die Kontur eines Objekts stärker gezeichnet. In der Bildverarbeitung gibt es verschiedene Ansätze, um dies zu erreichen. Ein global geschärftes Bild verstärkt alle Gradienten gleichmässig. Dieses Vorgehen ist wenig rechenintensiv, hat aber den Nachteil, dass es auch das Bildrauschen anhebt. Das Verfahren lässt sich deutlich verbessern, indem nur dort geschärft wird, wo die kritische Stellen vorhanden sind. Es werden also nur jene Regionen im Bild geschärft, wo sich beispielsweise Kanten befinden.

Gammakorrektur

Ursprünglich wurde die Gammakorrektur entwickelt, um das nicht-lineare Verhalten von Röhrenmonitoren zu kompensieren. Der Gammawert ist ein Mass für die Stärke einer nicht-linearen Helligkeitstransformation. Damit werden dunkle oder helle Bildbereiche für das menschliche Auge bezüglich der Helligkeit gestreckt. Dabei macht man in ganz hellen oder ganz dunklen Bereichen versteckte Details sichtbar. Die Transformation verwendet eine einfache Potenzfunktion. Gammawerte, die kleiner sind als 1,0 sind, hellen dunkle Szenen auf, während sich die hellen Pixel nur wenig ändern. Das Gegenteil geschieht bei Gammawerten, die grösser als 1,0 sind. 

Infoservice

Stettbacher Signal Processing AG
Neugutstrasse 54, 8600 Dübendorf
Tel. 043 299 57 23, Fax 043 299 57 25
dsp@stettbacher.chwww.stettbacher.ch


Firmenprofil

Stettbacher Signal Processing AG bietet seit über 15 Jahren F+E-Dienstleistungen für anspruchsvolle Projekte in den Bereichen Maschinensteuerungen, elektronische Mess-, Regelungs- und Kommunikationstechnik für Analytik, Qualitätssicherung, Antriebstechnik, Medizin, Pharma, Verteidigung und Training an. Die Firma setzt die O-3000-Kamera in eigenen Projekten ein und vertreibt sie auf dem Markt. Der Inhaber und Gründer von SSP, Jürg Stettbacher, erwarb nach seiner FEAM-Lehre auf dem zweiten Bildungsweg seine Matura und studierte an der ETH Ingenieurwissenschaften. Danach war er wissenschaftlicher Mitarbeiter am Institut für Signal- und Informationsverarbeitung der ETH Zürich, wo er im Bereich der Signalverarbeitung für binaurale Audiometrie doktorierte.