-
HINTERGRUND
-
Bildaufnahmegeräte, wie etwa Kameramodule, sind herkömmlich in verschiedene andere mobile Rechengeräte, wie etwa Smartphones oder Tablet-Computer, integriert. Typischerweise sind Kameramodule, die in mobilen Rechengeräten integriert sind, als ein oder mehr im Wesentlichen würfelartige Module implementiert. Die jüngste Entwicklung zum Minimieren der Breite oder Dicke der zugrundeliegenden, mobilen Rechengeräte hat notwendigerweise zu einer ähnlichen Entwicklung des Minimierens der Höhe der integrierten Kameramodule geführt.
-
Unglücklicherweise werden die einfallenden Lichtstrahlen aufgrund der komprimierten Höhe der integrierten Kameramodule im Vergleich zu weniger kompakten Systemen bei extremeren Winkeln empfangen. Dies kann zu einem ungewünschten Effekt (Objektivschattierung genannt) führen, wobei Bilder in der Mitte mit einer erhöhten Helligkeit und in Richtung zu den Rändern mit im Wesentlichen niedrigerer Helligkeit erzeugt werden.
-
Heutige fotografische Techniken sind in der Lage, diesen Effekt zu berücksichtigen und abzumildern. Typischerweise werden Korrekturen der Objektivschattierung ausgeführt, indem in jedes hergestellte Kameramodul Koeffizienten einprogrammiert werden, die anschließend auf Bilddaten angewendet werden. Weil jedoch der Grad der Objektivschattierung von der Lichtquelle (oder „Beleuchtungsquelle”) abhängt, die in dem Bildmotiv (typischerweise über einen Prozess des Weißabgleichs bestimmt) erkannt wird, kann die Menge der programmierten Koeffizienten erheblich sein.
-
Darüber hinaus erfordert die tatsächliche Berechnung der Koeffizienten herkömmlicherweise umfangreiche Messungen und Kalibrierung, die für jedes Kameramodul spezifisch sind. Das heißt, die Bestimmung der Koeffizienten erfordert herkömmlicherweise die Erzeugung von mehreren Modellen der „Oberflächen” des Kameramoduls, wobei die tatsächliche Anzahl der Oberflächen der Anzahl der Beleuchtungsquellen entspricht, die in einem Bild erfasst werden können. Herkömmliche Techniken zum Erzeugen dieser Oberflächen umfassen das Erzeugen einer Vielzahl von Bildern mit jedem Kameramodul unter einer Vielzahl von Beleuchtungsbedingungen. Dies kann mehr als zehn oder mehr Bilder pro Moduleinheit umfassen und erfordert Einrichtungen zum Erzeugen von jeder der unterstützten Beleuchtungsbedingungen. Infolgedessen können herkömmliche Techniken zur Kalibrierung der Objektivschattierung sehr ineffiziente Prozesse sein, die im Wesentlichen intensive Mengen an Zeit und Aufwand erfordern, insbesondere für Einheiten, die in großer Stückzahl gefertigt werden.
-
ZUSAMMENFASSUNG
-
Diese Zusammenfassung wird bereitgestellt, um eine Auswahl von Konzepten in einer vereinfachten Form einzuführen, die unten in der ausführlichen Beschreibung näher beschrieben werden. Diese Zusammenfassung ist nicht dazu gedacht, Schlüsselmerkmale oder wesentliche Merkmale des beanspruchten Gegenstandes zu identifizieren, noch ist sie dazu gedacht, dahingehend verwendet zu werden, den Schutzumfang des beanspruchten Gegenstandes zu begrenzen.
-
Ausführungsformen der vorliegenden Erfindung sind auf Verfahren und Systeme zum Ausführen von automatischen Objektivschattierungskorrekturen unter Verwendung von modulspezifischen Kalibrationen gerichtet. Gemäß einem Aspekt der Erfindung wird ein Verfahren bereitgestellt, das über drei Hauptphasen ausgeführt wird.
-
Während einer ersten Phase werden radial symmetrische Komponentendatensätze aus Prüfungen bestimmt, die für Kameramodule des zu kalibrierenden Typs gemeinsam sind. Gemäß verschiedener Ausführungsformen kann diese Phase offline (z. B. in einem Laboratorium) und unabhängig von dem Mess- und Kalibrierungsprozess (d. h. der zweiten Phase) pro Modul in der Werkshalle ausgeführt werden. Die extrahierten Daten werden dazu verwendet, Messungen der Basisoberflächen der Bildaufnahmekomponenten (d. h. Objektive, Filter, Sensoren) für eine Menge von Bildobjekt-Beleuchtungsquellen zu erzeugen, und werden von den Kameramodulen des Kameramodultyps gemeinsam benutzt. Diese Daten können in einem Datenspeicher gespeichert oder in einer Software (wie etwa einem Treiber) inkludiert werden, wobei die Software in jedes der Kameramodule eingeladen und zum Interagieren mit jedem der Kameramodule benutzt wird.
-
Während der zweiten Phase wird die tatsächliche Messung des Schattierungsprofils von einem oder mehreren spezifischen Kameramodulen ausgeführt. Gemäß Ausführungsformen kann diese Messung beispielsweise für jedes Kameramodul während der Herstellung als Teil des Kalibrierungsprozesses ausgeführt werden. In jedem spezifischen Kameramodul wird aus den resultierenden Messdaten eine Kalibrierungsoberfläche erzeugt. Die Kalibrierungsoberfläche kann in dem Datenspeicher von diesem Modul (z. B. in einem einmal programmierbaren Datenspeicher des Moduls), oder in einem anderen Verfahren, das sie für den Kameratreiber zugänglich macht, gespeichert werden. Gemäß verschiedener Ausführungsformen kann diese Kalibrierungsoberfläche als eine modulspezifische Bezier-Korrekturoberfläche unter einer vorbestimmten Lichtquelle als Beleuchtungsquelle ausgedrückt werden.
-
Die dritte und letzte Phase ist die Extrapolationsphase. In dieser Phase werden die Basismessoberflächen eines Kameramoduls, die in der ersten Phase bestimmt worden sind, extrapoliert und mit der modulspezifischen Bezier-Korrekturoberfläche und Kalibrierungsdaten aus der zweiten Phase modifiziert. Gemäß einer Ausführungsform wird die dritte und letzte Phase in dem Kameramodul selbst (z. B. durch einen Treiber) ausgeführt. In weiteren Ausführungsformen kann diese Phase während der Boot-Sequenz des Kameramoduls – oder des zugrundeliegenden Rechengeräts (z. B. Mobiltelefon) ausgeführt werden. Die ausgegebenen Oberflächen aus dieser Phase werden dazu verwendet, die Schattierungsprofile in dem Kameramodul in Abhängigkeit von der Bestimmung der Lichtquelle zu korrigieren. Beispielsweise werden, wenn ein Bild eines Bildmotivs einmal von dem Kameramodul erfasst ist, die in dem Bildmotiv vorhandene Beleuchtungsquelle bzw. die vorhandenen Beleuchtungsquellen (typischerweise über einen Prozess des Weißabgleichs) bestimmt. Wenn die vorhandene Beleuchtungsquelle bzw. die vorhandenen Beleuchtungsquellen einmal detektiert sind, wird die korrigierten Objektivschattierungs-Oberfläche, die den detektierten Beleuchtungsquelle(n) zugeordnet ist, referenziert, und Koeffizienten aus der korrigierten Objektivschattierungsoberflächen werden auf die Pixelwerte angewendet, um Objektivschattierungseffekte zu korrigieren.
-
Dadurch, dass zu Beginn Basismessoberflächen für einen gesamten Modultyp bestimmt werden und dass von einzelnen erfassten Bildern aufgenommene, modulspezifische Kalibrierungen angewendet werden, sind die verschiedenen Ausführungsformen der vorliegenden Erfindung in der Lage, die umfangreiche, mühsame und zeitintensive Kalibrierung für individuelle Module, die typisch für herkömmliche Techniken ist, zu vermeiden, während noch stets effektive Korrekturen der Objektivschattierung in aufgenommenen Bilddaten beibehalten werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die beigefügten Zeichnungen, die in diese Beschreibung aufgenommen werden und einen Teil derselben bilden, veranschaulichen Ausführungsformen der Erfindung und dienen, zusammen mit der Beschreibung, zum Erläutern der Prinzipien der Erfindung:
-
1 zeigt eine beispielhafte Darstellung einer Bild-Erfassungseinrichtung, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
2 zeigt eine beispielhafte Darstellung eines in einem mobilen Rechengerät angeordneten Kameramoduls, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
3 zeigt eine beispielhafte Betriebsumgebung, in der verschiedene Ausführungsformen der vorliegenden Erfindung ausgeführt werden können, gemäß verschiedener Ausführungsformen der vorliegenden Erfindung.
-
4 zeigt ein Ablaufdiagramm eines beispielhaften, Computerimplementierten Prozesses zum Erzeugen von Messungen von Basisoberflächen für eine Vielzahl von Beleuchtungsquellen, gemäß verschiedener Ausführungsformen der vorliegenden Erfindung.
-
5 zeigt ein Ablaufdiagramm eines beispielhaften Prozesses zum Messen der Schattierungsprofile eines spezifischen Moduls in der Kalibrierung in der Werkshalle, gemäß verschiedener Ausführungsformen der vorliegenden Erfindung.
-
6 zeigt ein Ablaufdiagramm eines beispielhaften Prozesses zum Erzeugen einer Objektivschattierungsoberfläche für eine beliebige Lichtquelle, unter Verwendung einer Kalibrierungsoberfläche und einer Basisoberfläche, gemäß verschiedener Ausführungsformen der vorliegenden Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Es wird nun in Einzelheiten auf mehrere Ausführungsformen Bezug genommen. Während der Gegenstand im Zusammenhang mit den alternativen Ausführungsformen beschrieben wird, so sollte verstanden werden, dass diese nicht dazu gedacht sind, den beanspruchten Gegenstand auf diese Ausführungsformen zu beschränken. Im Gegenteil, der beanspruchte Gegenstand ist dazu gedacht, Alternativen, Modifikationen und Äquivalente abzudecken, die innerhalb des Geists und des Schutzumfangs des beanspruchten Gegenstands, so wie dieser durch die beigefügten Ansprüche definiert ist, enthalten sind.
-
Des Weiteren werden in der nachfolgenden, ausführlichen Beschreibung zahlreiche spezifische Einzelheiten dargelegt, um ein tiefgehendes Verständnis des beanspruchten Gegenstandes zu liefern. Es wird jedoch von einem Fachmann erkannt, dass Ausführungsformen ohne diese spezifischen Einzelheiten oder mit Äquivalenten derselben ausgeführt werden können. In anderen Fällen wurden bekannte Prozesse, Prozeduren, Komponenten und Schaltkreise nicht in Einzelheiten beschrieben, um Aspekte und Merkmale des Gegenstands nicht unnötigerweise zu verschleiern.
-
Teile der nachfolgenden ausführlichen Beschreibung werden in Form eines Prozesses vorgestellt und erläutert. Obwohl Schritte und Abfolgen desselben hierin in Figuren offenbart sind, die den Betriebsablauf dieser Prozesse beschreiben, sind diese Schritte und Abfolgen beispielhaft. Ausführungsformen sind gut dazu geeignet, verschiedene andere Schritte oder Variationen der Schritte, die hierin in den Ablaufdiagrammen der Figuren vorgetragen sind, und in einer Reihenfolge, die von der hierin dargestellten und beschriebenen Reihenfolge verschieden ist, auszuführen.
-
Einige Teile der ausführlichen Beschreibung werden in Form von Prozeduren, Schritten, Logikblocks, Verarbeitung und anderen symbolischen Darstellungen von Operationen auf Datenbits, die in einem Computerspeicher ausgeführt werden können, vorgestellt. Diese Beschreibungen und Darstellungen sind die Mittel, die von den Fachleuten auf dem Gebiet der Datenverarbeitung verwendet werden, um anderen Fachleuten den Inhalt ihrer Arbeit am effektivsten weiterzugeben. Eine Prozedur, ein von einem Computer ausgeführter Schritt, ein Logikblock, ein Prozess, usw. wird hierin, und allgemein, als eine selbstkonsistente Abfolge von Schritten oder Befehlen, die zu einem gewünschten Ergebnis führen, angesehen. Die Schritte sind solche, die physikalische Manipulationen von physikalischen Größen erfordern. Normalerweise, jedoch nicht notwendigerweise, nehmen diese Größen die Form von elektrischen oder magnetischen Signalen an, die in der Lage sind, in einem Computersystem gespeichert, übertragen, kombiniert, verglichen oder anderweitig manipuliert zu werden. Es hat sich gelegentlich als zweckdienlich erwiesen, hauptsächlich aus Gründen der allgemeinen Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen oder dergleichen zu bezeichnen.
-
Es sollte jedoch im Gedächtnis behalten werden, dass alle diese und ähnliche Ausdrücke zu den geeigneten physikalischen Größen zugeordnet werden sollen und lediglich geeignete Bezeichnungen sind, die auf diese Größen angewendet werden. Außer wenn dies spezifisch, anders als es aus den folgenden Erläuterungen offensichtlich ist, erwähnt ist, so wird gewürdigt, dass hierin insgesamt Erörterungen, die Ausdrücke, wie etwa „ugreifen”, „schreiben”, „enthalten”, „speichern”, „übertragen”, „durchlaufen”, „zuordnen”, „identifizieren” oder dergleichen, Aktionen und Prozesse eines Computersystems oder eines ähnlichen elektronischen Rechengeräts, bezeichnen, das Daten, die innerhalb der Register und Daten gespeichertes Computersystems als physikalische (elektronische) Größen dargestellt sind, in andere Daten, die in ähnlicher Weise als physikalische Größen innerhalb der Datenspeicher oder Register oder anderer derartiger Informationsspeicher, Übertragungs- oder Anzeigegeräte des Computersystems dargestellt sind, manipuliert und transformiert.
-
Beispielhafte Kameramodule und Betriebsumgebungen
-
Ausführungsformen des beanspruchten Gegenstandes sind auf Verfahren und Systeme zum Ausführen von modulspezifischen, automatischen Objektivschattierungskorrekturen für Bilder, die unter Verwendung eines Bildaufnahmegeräts aufgenommen worden sind, gerichtet. 1 zeigt eine beispielhafte Darstellung eines Bildaufnahmegeräts 100 gemäß einer Ausführungsform der vorliegenden Erfindung. Wie in 1 dargestellt, kann die Bildaufnahmeeinrichtung 100 als ein Kameramodul 101 eines Kameramodultyps implementiert werden und kann eine Vielzahl von Linsen 103, einen auf einem Substrat 107 montierten Bildsensor 105 und einen Schaltkreis 109 umfassen. Gemäß verschiedener Ausführungsformen kann das Kameramodul 101 vollständig oder teilweise in einem größeren, mobilen Rechengerät, wie etwa eine Digitalkamera, ein Smartphone, ein Minicomputer, ein E-Reader, ein Tablet- oder Laptop-Computer usw., verkapselt sein. Wie gezeigt, ist das Kameramodul 101 mit einer Vielzahl von Linsen 103, die in Reihe angeordnet sind, dargestellt. In weiteren Ausführungsformen können ein oder mehr Filter (z. B. Infrarotfilter) unterhalb, oberhalb, und/oder zwischen zwei oder mehr der Vielzahl von Linsen 103 angeordnet sein. Wie in Fig. 100 dargestellt, ist die Reihe von Linsen 101 über einem Bildsensor 105, der dazu ausgelegt ist, eingestrahlte Eingabe (Licht) durch die Optik zu empfangen, angeordnet. Der Bildsensor 105 selbst kann beispielsweise als eine Fotodiode implementiert sein und kann über einem Substrat 105 angeordnet sein. In einigen Ausführungsformen kann das Substrat 105 im Wesentlichen aus Siliziumdioxid (SiO2) zusammengesetzt sein. In einigen Ausführungsformen kann der Schaltkreis 109 als ein Verbindungsanschluss, über den Daten zwischen dem Bildsensor 105 zu einer oder mehreren anderen Komponenten (nicht gezeigt), wie etwa einem Datenspeicher und/oder Prozessor, übertragen werden können, implementiert sein.
-
2 zeigt eine beispielhafte Darstellung eines Kameramoduls, das in einer mobilen Recheneinrichtung 200 gemäß einer Ausführungsform der vorliegenden Erfindung angeordnet ist. Wie in 2 vorgestellt, ist die mobile Recheneinrichtung 200 als ein Mobiltelefon, wie etwa ein Smartphone 201, implementiert. Gemäß verschiedenen Ausführungsformen ist das Smartphone 201 mit einem Kameramodul 203, wie etwa die oben beschriebene Bildaufnahmeeinrichtung 100, ausgestattet. Wie dargestellt, ist ein wesentlicher Teil (angezeigt durch den Abschnitt mit gepunkteter Linie) des Kameramoduls 203 innerhalb der Struktur des Smartphones 201 eingeschlossen. In einigen Ausführungsformen kann nur eine oberseitige Linse 205 des Kameramoduls 203 exponiert sein, was einen Zugang für eine Eingabe (Lichtstrahlen) ermöglicht. Alle anderen Teile des Kameramoduls 203, wie etwa ein Bildsensor (nicht gezeigt) oder ein Verbindungsanschluss 207, können durch von dem Smartphone 201 umschlossen oder anderweitig für einen externen Zugang durch das Smartphone 201 im Wesentlichen verdeckt sein. Wie in Fig. 200 dargestellt, kann das Smartphone 201 dazu verwendet werden, über das Kameramodul 203 fotografische Bilder aufzunehmen. Die Steuerung des Kameramoduls 203 kann über eine Benutzerschnittstelle des Smartphones 201, wie etwa über physikalische Tasten, oder eine im Bild integrierte, auf einer Anzeigeeinrichtung des Smartphones 201 angezeigte, grafische Benutzerschnittstelle gesteuert werden. In noch weiteren Ausführungsformen kann die Verwendung von bestimmten Hardware-Ressourcen, wie etwa Datenspeicher und/oder ein oder mehrere Prozessoren in dem Smartphone 201, mit dem Kameramodul 203 für Zwecke der Bildaufnahme und -herstellung gemeinsam benutzt werden.
-
3 zeigt eine Darstellung einer beispielhaften Betriebsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung. Ein Digitalsystem 300 zeigt die Komponenten eines grundlegenden Systems gemäß Ausführungsformen der vorliegenden Erfindung, das die Ausführungsplattform für bestimmte hardwarebasierte und softwarebasierte Funktionalitäten bereitstellt. Obwohl in dem System 300 bestimmte Komponenten offenbart sind, so sollte gewürdigt werden, dass derartige Komponenten Beispiele sind. Das heißt, Ausführungsformen der vorliegenden Erfindung sind dazu geeignet, verschiedene andere Komponenten oder Variationen der im System 300 vorgetragenen Komponenten aufzuweisen. Es wird gewürdigt, dass die Komponenten im System 300 mit anderen Komponenten als den dargestellten zusammenwirken können, und dass nicht alle der Komponenten des Systems 300 notwendigerweise erforderlich sind, um die Ziele des Systems 300 zu erreichen.
-
In einer typischen Ausführungsform umfasst das System 300 einen Sensor 303, einen Bildsignalprozessor (ISP, Image Signal Processor) 305, einen Datenspeicher 307, ein Eingabemodul 309, eine zentrale Verarbeitungseinheit (CPU) 311, ein Anzeigegerät 313, einen Kommunikationsbus 315 und eine Leistungsquelle 316. Die Leistungsquelle 316 führt dem System 300 Leistung zu und kann, beispielsweise, eine Gleichstrom- oder eine Wechselstrom-Leistungsquelle sein. Die CPU 311 und der ISP 305 können auch in einem einzigen integrierten Schaltkreisgehäuse integriert sein, und die CPU 313 und der ISP 305 können verschiedene Ressourcen gemeinsam benutzen, wie etwa Befehlslogik, Puffer, funktionelle Einheiten und dergleichen, oder es können für eine Bildverarbeitung und allgemeine Operationen gesonderte Ressourcen bereitgestellt werden. Das System 300 kann beispielsweise als eine Digitalkamera, ein Tablet, eine Kamera eines Mobiltelefons, ein tragbares Gerät (z. B. ein Audiogerät, ein Unterhaltungsgerät, ein handhaltbares Gerät), eine Webcam, ein Videogerät (z. B. ein Camcorder) und dergleichen, implementiert werden.
-
Der Sensor 303 empfängt Licht über eine Optik 301 und wandelt das empfangene Licht in ein Signal (z. B. digital oder analog) um. Gemäß einiger Ausführungsformen kann die Optik 301 dauerhaft an dem System 300 befestigt sein. Alternativ kann die Optik 301 abnehmbar und austauschbar mit Linsen mit anderen Eigenschaften sein. Diese Eigenschaften können beispielsweise Brennweiten, Blendenöffnungen und Klassifizierungen umfassen. In typischen Ausführungsformen kann die Optik 301 aus Glas aufgebaut sein, obwohl alternative Materialien, wie etwa Quarz oder geformter Kunststoff, ebenfalls verwendet werden können. Der Sensor 303 kann irgendeiner aus einer Vielfalt von optischen Sensoren sein, einschließlich, jedoch nicht beschränkt auf: komplementäre Metalloxid-Halbleiter (CMOS) oder ein Sensor mit ladungsgekoppelten Einrichtungen (CCD, Charge Coupled Device). Der Sensor 303 ist mit einem Kommunikationsbus 315 gekoppelt und kann über den Kommunikationsbus 315 aufgenommene Bilddaten bereitstellen. In weiteren Ausführungsformen umfasst der Sensor 303 eine Fähigkeit zum Messen von Lichtintensität, und die empfangenen Bilddaten können Daten umfassen, die der bestimmten Lichtintensität in einem Bildobjekt oder Bild zugeordnet sind.
-
Der Bildsignalprozessor (ISP) 305 ist mit dem Kommunikationsbus 315 gekoppelt und verarbeitet die von dem Sensor 303 erzeugten Daten. Genauer gesagt verarbeitet der Bildsignalprozessor 305 Daten von dem Sensor 302 zum Speichern in dem Datenspeicher 307. Beispielsweise kann der Bildsignalprozessor 305 ein Dateiformat für ein in dem Datenspeicher 307 zu speicherndes Bild komprimieren und bestimmen.
-
Das Eingabemodul 309 erlaubt die Eingabe einer Benutzereingabe in das System 300, die dann, neben anderen Dingen, das Aufnehmen von Daten durch den Sensor 303 und die nachfolgende Verarbeitung durch den ISP 305 steuern kann. Das Eingabemodul 309 kann umfassen, ist jedoch nicht beschränkt auf: Navigations-Pads, Tastaturen (z. B. QWERTY), Tasten, Touchscreen-Steuerungen (z. B. über das Anzeigegerät 313) und dergleichen.
-
Die zentrale Verarbeitungseinheit (CPU) 311 empfängt Befehle über das Eingabemodul 309 und kann eine Vielfalt von Operationen steuern, einschließlich, jedoch nicht beschränkt auf Datenerfassung und Konfiguration des Sensors 303, Verarbeitung durch das ISP 305 und Verarbeitung (z. B. die Addition, Übertragung und Entfernung) von Bildern und/oder Video aus dem Datenspeicher 307.
-
Erzeugen einer Basisoberfläche für jede Art von Beleuchtung
-
4 zeigt ein Ablaufdiagramm 400 eines beispielhaften computerimplementierten Prozesses zum Erzeugen von Messungen von Basisoberflächen- für eine Vielzahl von Beleuchtungsquellen, gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In einer Ausführungsform kann der Prozess in einem Laboratorium, offline und unabhängig von den pro Modul und in einer Werkshalle ausgeführten Mess- und Kalibrierungsprozessen ausgeführt werden. Die Schritte 401–413 beschreiben beispielhafte Schritte des Ablaufdiagramms 200 gemäß verschiedener hierin beschriebener Ausführungsformen. Der Zweck dieser Phase ist es, Messungen von Basisoberflächen zu erzeugen, die die am meisten radial symmetrische Antwort darstellt, die allen Modulen eines bestimmten Typs (d. h. mit demselben Schattierungsprofil, mit Ausnahme von Herstellungsvariationen) gemeinsam ist.
-
Im Schritt 401 wird eine Anzahl von typischen Modulen erlangt und analysiert. Die Module können beispielsweise als ein Satz aus der Produktionslinie erhalten werden, und können Standardvariationen in der Produktion repräsentieren. Gemäß einigen Ausführungsformen kann eine statistisch signifikante Anzahl, beispielsweise 50–100 Module, in diesem Schritt erlangt und analysiert werden.
-
Im Schritt 403 werden spektrale Abtastungen bzw. Scans von den (vorbestimmten) Beleuchtungsquellen, die verwendet werden, um die Module während einer Kalibrierung in der Werkshalle (d. h. die „Kalibrierungs-Beleuchtungsquellen”) zu messen. Analog werden im Schritt 405 spektrale Scans der Beleuchtungsquellen, für die eine Schattierungskorrekturoberfläche gewünscht ist („Soll-Beleuchtungsquellen”) erlangt. Diese Beleuchtungsquellen können einem vorbestimmten Satz von Beleuchtungsquellen zugeordnet sein, die bestimmt und verwendet werden können, um Farbwerte in einem aufgenommenen Bild während eines automatischen Weißabgleichvorgangs, der in einer Bildaufnahmeeinrichtung ausgeführt wird, einzustellen. Gemäß verschiedener Ausführungsformen kann der Satz von Beleuchtungsquellen umfassen (jedoch nicht beschränkt sein auf): natürliches Sonnenlicht, fluoreszierende Beleuchtungsquellen, Quecksilber-Beleuchtungsquellen oder Hybrid-Beleuchtungsquellen, die zwei oder mehrere Beleuchtungsquellen kombinieren. In einer alternativen Ausführungsform können die spektralen Scans, die den Kalibrierungs-Beleuchtungen und den Soll-Beleuchtungen zugeordnet sind, im Vorhinein erzeugt werden, außerhalb des Prozesses 400 ausgeführt werden, und als Daten in einem Datenspeichergerqät (z. B. einer Datenbank) gespeichert werden. Gemäß dieser Implementierungen können stattdessen die Daten von den spektralen Scans, die der Kalibrierungs-Beleuchtung und der Soll-Beleuchtung zugeordnet sind, in den Schritten 403 und 405, respektive, referenziert werden.
-
Gemäß weiterer Ausführungsformen kann jedes Modul des Modultyps im Schritt 407 durch einen Monochromator abgetastet bzw. gescannt werden, um einen spektralen Scan des Moduls mit ausreichender Wellenlängenauflösung zu erzeugen. Ein Scan kann beispielsweise Messungen des Schwarzniveau-Offsets und Scans von 300 [nm] bis 800 [nm] und mit 5 nm Auflösung umfassen. Wenn die Scans der Kameramodule von dem Monochromator einmal verfügbar sind, wird im Schritt 409 für jedes Modul eine Konfiguration erzeugt. Die Konfiguration kann beispielsweise erzeugt werden, indem ein automatischer Kqalibrierungsprozess für jedes Modul über softwareimplementierte Werkzeuge ausgeführt wird und die Konfiguration der Modul-Post-Kalibrierung bestimmt werden. Im Schritt 411 wird dann jedes Kameramodul dazu verwendet, ein Bild unter Bedingungen zu erzeugen, die so simuliert worden sind, dass sie der Kalibrierungsbeleuchtung für jeden Typ der Soll-Beleuchtungsquellen entsprechen. Die erzeugten Bilder werden dann als Daten (z. B. als eine Datei) gespeichert. In einigen Ausführungsformen können die Daten als eine Rohbild(oder RAW)-Datei gespeichert werden.
-
Die Basisoberflächen für jeden Beleuchtungstyp werden erzeugt, indem die im Schritt 411 erzeugten Bilder im Schritt 413 über die Vielzahl der Module gemittelt werden. Die Erzeugung der Mittelwerte kann in einigen Ausführungsformen automatisch ausgeführt werden, ebenfalls über softwareimplementierte Werkzeuge. In einer Ausführungsformen können die Mittelwerte über das Ausführen eines Skripts berechnet werden, das in Schleifen über die Daten der Soll-Beleuchtungsquelle und der Kameramodule (beispielsweise in einem Verzeichnis) hinweg arbeitet, und für jedes Modul das jeder Beleuchtungsquelle zugeordnete, erzeugte Bild lädt, die Bilddaten mit demselben Bild von anderen Modulen summiert, und das Ergebnis als eine Oberfläche von Messdaten abspeichert. Die resultierende Oberfläche ist die Basisoberfläche für die spezifische Beleuchtungsquelle.
-
Gemäß verschiedener Ausführungsformen können die Daten, die die Basisoberfläche darstellen, in einem Datenspeicher in und/oder gehörend zu dem Kameramodul gespeichert werden. In weiteren Ausführungsformen können die Daten der Basisoberfläche in die Softwaretreiber geschrieben werden, die verwendet werden, um mit dem Kameramodul in einem mobilen Rechengerät, wie etwa einer Digitalkamera, einem Smartphone, einem Klein-Computer, einem E-Reader, einem Tablet- oder Laptop-Computer usw. zu interagieren. Für jede Basisoberfläche wird eine Bezier-Darstellung erzeugt, indem die Basisoberflächen für jedes Modul spezifisch kalibriert werden. In einer Ausführungsform führt eine Ausgabe der Kalibrierung zur Berechnung von Bezier-Koeffizienten für einen Beleuchtungstyp und wird unten in näheren Einzelheiten beschrieben.
-
Messen des Schattierungsprofils eines spezifischen Moduls während einer Kalibrierung in einer Werkshalle
-
5 zeigt ein Ablaufdiagramm 500 eines beispielhaften Prozesses zum Messen des Schattierungsprofils eines spezifischen Moduls während einer Kalibrierung in der Fabrik- bzw. Werkshalle, gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In einer Ausführungsform wird der Prozess während einer Produktionsherstellung eines Kameramoduls ausgeführt. Die Schritte 501–507 beschreiben beispielhafte Schritte des Ablaufdiagramms 500 gemäß der hierin beschriebenen verschiedenen Ausführungsformen. Gemäß einem Aspekt wird das Ablaufdiagramm 500 während der zweiten von drei Phasen ausgeführt, um modulspezifische, korrigierte Oberflächenmessungen für ein Kameramodul für eine automatische Korrektur der Objektivschattierung zu erzeugen. Der Zweck dieser Phase ist es, eine Schattierungs-Korrektur-Oberfläche nach Bezier für ein spezifisches Modul unter einer Lichtquelle während einer Kalibrierung in der Werkshalle zu erzeugen. Gemäß einigen Ausführungsformen können die Schritte 501–507 unter Verwendung von softwareimplementierten Werkzeugen, die in einem Computersystem ausgeführt werden, durchgeführt werden.
-
Wie in 5 dargestellt, beginnt der in dem Ablaufdiagramm 500 gezeigte Prozess beim Schritt 501, indem als eine Eingabe ein Bild von einer gleichförmigen, Flachfeld-Bildobjekt empfangen wird, das mit einem bestimmten Modul, für das die Kalibrierung durchgeführt wird, unter einer bekannten Beleuchtungsquelle (die oben mit Verweis auf 4 beschriebene Kalibrierungs-Beleuchtung) aufgenommen wird. In einigen Ausführungsformen kann das Bild von einer externen Quelle (z. B. aus einer Datenbank) referenziert werden. In noch anderen Ausführungsformen kann das Bild vorbearbeitet werden, um bestimmte Eigenschaften zu zeigen. Beispielsweise können diese Eigenschaften die Subtraktion eines Schwarzniveaus in dem Bild und/oder die Eliminierung „von schlechten Pixeln” oder anderen Sensor-Artefakten in dem Bild umfassen. In noch weiteren Ausführungsformen kann das Bild von einer sub-gesampelten Version der Version mit voller Auflösung begleitet sein.
-
Im Schritt 503 wird das Schattierungsprofil des Kameramoduls empfangen. In einigen Ausführungsformen kann das Schattierungsprofil des Kameramoduls in dem Datenspeicher des Moduls selbst gespeichert werden. Alternativ kann das Schattierungsprofil des Moduls aus einem zugänglichen Speichergerät, wie etwa einer Datenbank, referenziert werden. In einigen Ausführungsformen kann das Schattierungsprofil eines Kameramoduls als eine Kombination von zwei Komponenten modelliert werden. Die erste Komponente ist radial und weitestgehend rotationssymmetrisch. Die relative Beleuchtungs(RI, Relative Illumination)-Charakteristik der Optik, das Hauptstrahlwinkel(CRA, Chief Ray Angle)-Profil-Sensors und die spektrale Antwort des Infrarot-(IR)-Filters als eine Funktion des Einfallwinkels sind die hauptsächlich Beitragenden zu der Form der radialen Komponente. Als solche hängt diese Komponente stark von der Art der Beleuchtung ab und variiert in der Herstellung idealerweise nicht signifikant. Die zweite Komponente ist in ihrer Natur nicht radial, und kann einen horizontalen/diagonalen Intensitätsgradienten umfassen, der für jeden Farbkanal unterschiedlich ist, was einen Farbschattierungseffekt über das Sichtfeld ergibt. Diese Komponente ist zum großen Teil das Ergebnis einer Fehlausrichtung eines u-Linsen-Arrays (im Vergleich zu dem Hauptstrahlwinkelprofil der Optik) und, bis zu einem gewissen Grad auch einer Nichtgleichförmigkeit der Pixelantwort. Es wird angenommen, dass diese Komponente in guter Annäherung weitgehend unabhängig von der Beleuchtung ist.
-
In Schritt 505 werden Korrekturoberflächen für jeden Farbkanal in dem in Schritt 501 empfangenen Bild aus dem im Schritt 503 empfangenen Schattierungsprofil des Kameramoduls erzeugt. In einer Ausführungsform wird eine Korrekturoberfläche erzeugt, indem in jedem Farbkanal und für jeden Pixel in dem Bild der Maximalwert gefunden wird, und indem dieser durch den Farbwert des Pixelwerts dividiert wird. In einigen Ausführungsformen kann ein Fall-Off-Faktor angewendet werden, um die Korrekturoberfläche zu modifizieren. Der Fall-Off-Faktor kann in einigen Ausführungsformen als eine quadratische Funktion des Abstands von der Mitte des Bildes (oder dem Radius) implementiert werden. In noch weiteren Ausführungsformen kann ferner eine optionale Farbunausgewogenheit eingestellt werden. Um beispielsweise Unausgewogenheiten im grünen Kanal zu korrigieren, kann ein unterer grüner Kanal in dem Schattierungsprofil mit dem Verhältnis zwischen dem oberen grünen Kanal und dem unteren multipliziert werden.
-
Im Schritt 507 wird eine Bezier-Koeffizienten-Darstellung dieser Oberflächen berechnet. Um dies auszuführen, wird die Oberfläche zunächst in eine Vielzahl von Teilbereichen unterteilt, deren Größen auf der Grundlage der Konfiguration des Kameramoduls (das im Schritt 409 des Ablaufdiagramms 400 bestimmt wurde) bestimmt werden. Danach wird in jedem Teilbereich eine Optimierung gemäß kleinster Quadrate ausgeführt, um einen oder mehr Bezier-Koeffizienten, die die Oberfläche beschreiben, zu bestimmen. Das Bestimmen der Bezier-Koeffizienten kann ausgeführt werden durch (ist jedoch nicht beschränkt auf) die folgenden Schritte:
- a. Berechnen der Größen der Teilbereiche. Typischerweise werden Standard-Teilbereiche gewählt.
- b. Berechnen der Chrominanz(z. B. u, v)-Werte in jedem Pixel in dem Bild, die den Größen der Flecken entsprchen.
- c. Berechnen der Bezier-Polynorne dritten Grades aus den Chrominanz-Werten.
- d. Für jeden Farbkanal, Bilden eines überbestimmten, linearen Systems, in dem 100 Bezier-Koeffizienten die Variablen (der Vektor x) sind und die Anzahl der Gleichungen die Anzahl der Pixel in der Korrekturoberfläche (der Vektor b) ist. In einer Ausführungsform kann das System ausgedrückt werden als Ax = b, wobei die Matrix A die Bezier-Polynomelemente dritten Grades enthält, die mit den Bezier-Koeffizienten multipliziert werden, um die Oberfläche anzunähern. Es wird angenommen, dass A dünn (Skinny) und von vollem Rang (Full Rang) ist (d. h. es gibt mehr Oberflächenpunkte als Bezier-Koeffizienten und sie ist nicht unzureichend bzw. defizient (Deficiened).
- e. Aus der Gleichung Ax = b wird das Optimierungsproblem definiert und gelöst, indem die über die kleinsten Quadrate angenäherte Lösung –x ^ = (ATA)–1ATb berechnet wird.
- f. Der ganzzahlige und der bruchteilige Anteil der Koeffizienten wird skaliert, um die gewünschte Auflösung in der Ausgabe anzugleichen.
-
Einmal berechnet, können die Bezier-Koeffizienten als Daten (z. B. als eine Konfigurationsdatei) gespeichert werden und in einem Datenspeicher des Kameramoduls programmiert werden. Gemäß einigen Ausführungsformen werden diese Daten in einem einmal-programmierbaren Speicher des Kameramoduls gespeichert. Zusätzlich zu den Schattierungsoberflächen kann der Maximalwert von jedem Farbkanal berechnet und für einen automatischen Weißabgleich verwendet werden.
-
Erzeugen einer Objektivschattierungsoberfläche für eine beliebige Beleuchtungsquelle unter Verwendung einer Kalibrierungsoberfläche und einer Basisoberfläche
-
6 zeigt ein Ablaufdiagramm 600 eines beispielhaften Prozesses zum Erzeugen einer Objektivschattierungsoberfläche für eine beliebige Lichtquelle unter Verwendung einer Kalibrierungsoberfläche und einer Basisoberfläche, gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. Die Schritte 601–607 beschreiben beispielhafte Schritte des Ablaufdiagramms 500 gemäß der hierin beschriebenen verschiedenen Ausführungsformen. Gemäß einem Aspekt wird das Ablaufdiagramm 600 während der letzten der drei Phasen ausgeführt, die zum Erzeugen von modulspezifischen, korrigierten Oberflächenmessungen für ein Kameramodul zur automatischen Objektivschattierungskorrektur ausgeführt werden. Der Zweck dieser Phase ist es, eine modulspezifische Schattierungskorrekturoberfläche nach Bezier (oder mehrere Oberflächen) für eine Soll-Beleuchtung (eine „Soll-Bezier-Oberfläche”) zu erzeugen, unter Verwendung von Daten, die in den ersten beiden Phasen gesammelt worden sind – eine modulspezifische Kalibrierungsoberfläche, die unter einer KalibrierungsBeleuchtung während des Kalibrierungsschritts in der Werkshalle gemessen wurde (eine „Bezier-Kalibrierungs-Oberfläche”), und mindestens zwei Basisoberflächen zu der Kalibrierungsbeleuchtung und den Soll-Beleuchtungsoberflächen, die in der ersten Phase berechnet worden sind.
-
In einer Ausführungsform wird der Prozess von einem Treiber während des Boot-Vorgangs einer mobilen Recheneinrichtung, in der ein Kameramodul umfasst ist, ausgeführt. Die für das Kameramodul einzigartigen Kalibrierungsdaten werden im Schritt 601 von dem Treiber während des Hochfahrens (Boot) gelesen. Im Schritt 603 liest der Treiber auch die Basisoberflächendaten, die an die Kalibrierungsbeleuchtung („Basis-Kalibrierungsoberfläche”) anpasst ist und (im Schritt 605) die Basisoberfläche, die an die Soll-Beleuchtung angepasst ist („Basis-Solloberfläche”) – beide werden in Bezier-Koeffizienten dargestellt und in einen Datenspeicher, der für den Treiber zugänglich ist, eingebrannt.
-
Das Erzeugen der Soll-Bezier-Oberfläche kann unter Verwendung der Basisoberflächenmessungen, die in Fig. 400 gemäß der folgenden mathematischen Formel bestimmt wurden, ausgeführt werden. – Für jeden Bezier-Koeffizienten berechne (in der Bezier-Domäne): targetBezierSurfac (i) = calibrationBezierSurface (i)· BaseTargetSurface (i) / BaseCalibrationSurface (i)
-
In einigen Ausführungsformen kann ein konfigurierbarer Fall-Off-Faktor angewendet werden, der dem gewünschten Licht-Abfall (Fall-Off) der endgültigen Soll-Bezier-Oberfläche steuert. Um den Fall-Off in der Bezier-Domäne zu implementieren, kann der Treiber ein symmetrisches Schattierungsprofil erzeugen, dass an die räumlichen Positionen der Bezier-Koeffizienten über dem Sichtfeld angepasst ist, und jeden Koeffizienten mit einem geeigneten Fall-Off-Faktor multiplizieren. Diese Faktoren können erzeugt werden, indem die quadrierten Radien an jeder räumlichen Position von jedem Bezier-Koeffizienten (in Bezug auf die Mitte des Bildes) berechnet werden, und dann folgendes berechnet wird:
-
Die resultierende Ausgabe wird angewendet, indem der Fall-Off-Faktor mit jedem Koeffizienten der Kalibrierungs-Bezier-Oberfläche multipliziert wird, und kann wie folgt ausgedrückt werden: targetBezierSurface (i) = falloff (i)·calibrationBezierSurface (i)· BaseTargetSurface (i) / BaseCalibrationSurface (i).
-
Die Ausgabeoberflächen von dieser dritten und letzten Phase werden dazu verwendet, die Schattierungsprofile in dem Kameramodul in qAbhängigkeit von der Bestimmung der Beleuchtungsquelle/n zu korrigieren. Beispielsweise werden, wenn einmal ein Bild eines Bildobjekts von dem Kameramodul aufgenommen worden ist, die Beleuchtungsquelle bzw. die Beleuchtungsquellen, die in dem Bildobjekt vorhanden ist/sind, (typischerweise über einen Prozess des Weißabgleichs) bestimmt. Wenn die vorhandene Beleuchtungsquelle bzw. die vorhandenen Beleuchtungsquellen einmal detektiert worden sind, werden die korrigierten Objektivschattierungsoberflächen, die den detektierten Beleuchtungsquelle(n) zugeordnet sind, referenziert, und die Koeffizienten der korrigierten Objektivschattierungsoberfläche werden auf die Pixelwerte angewendet, um Objektivschattierungseffekte zu korrigieren.
-
Demgemäß liefern Ausführungsformen der vorliegenden Erfindung, wie hierin beschrieben, eine effiziente Alternative zu herkömmlichen Herangehensweisen zum Ausführen einer automatisierten Objektivschattierungskalibrierung und -korrektur. Indem zu Beginn Basismessoberflächen für einen gesamten Modultyp bestimmt werden und eine aus einzelnen aufgenommenen Bildern erlangte, modulspezifische Kalibrierung angewendet wird, sind die verschiedenen Ausführungsformen der vorliegenden Erfindung in der Lage, die umfangreiche, mühsame und zeitintensive Kalibrierung für individuelle Module, die für herkömmliche Techniken typisch ist, wobei in aufgenommenen Bilddaten noch stets eine effektive Objektivschattierungskorrektur beibehalten wird.
-
Obwohl der Gegenstand in einer Sprache beschrieben worden ist, die für strukturelle Merkmale und/oder prozessgebundene Schritte spezifisch ist, so sollte verstanden werden, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht notwendigerweise auf die oben beschriebenen spezifischen Merkmale oder Schritte begrenzt ist. Vielmehr sind die oben beschriebenen, spezifischen Merkmale und Schritte als beispielhafte Formen zum Implementieren der Ansprüche offenbart.