DE102019213184A1 - Verfahren und system zum automatischen weissabgleich auf basis von tiefem lernen - Google Patents

Verfahren und system zum automatischen weissabgleich auf basis von tiefem lernen Download PDF

Info

Publication number
DE102019213184A1
DE102019213184A1 DE102019213184.0A DE102019213184A DE102019213184A1 DE 102019213184 A1 DE102019213184 A1 DE 102019213184A1 DE 102019213184 A DE102019213184 A DE 102019213184A DE 102019213184 A1 DE102019213184 A1 DE 102019213184A1
Authority
DE
Germany
Prior art keywords
cnn
white point
point estimate
confidence
white
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019213184.0A
Other languages
English (en)
Inventor
Jarno Nikkanen
Lauri Suomela
Joni-Matti Maatta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102019213184A1 publication Critical patent/DE102019213184A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/84Camera processing pipelines; Components thereof for processing colour signals
    • H04N23/88Camera processing pipelines; Components thereof for processing colour signals for colour balance, e.g. white-balance circuits or colour temperature control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control
    • H04N1/6077Colour balance, e.g. colour cast correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/646Circuits for processing colour signals for image enhancement, e.g. vertical detail restoration, cross-colour elimination, contour correction, chrominance trapping filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

Ein System, ein Gegenstand und ein Verfahren zum Durchführen eines auf tiefem Lernen basierenden automatischen Weißabgleichs verwenden ein neuronales Netz in Verbindung mit anderen Algorithmen zum automatischen Weißabgleich, die kein neuronales Netz einsetzen.

Description

  • HINTERGRUND
  • Viele digitale Kameras nehmen eine automatische Weißabgleichsanpassung vor. Insbesondere dann, wenn sich die Beleuchtungsquellen von Szene zu Szene ändern, beispielsweise von natürlichem Tageslicht draußen zu Innenbeleuchtung, rechnet ein automatischer Weißabgleichalgorithmus (AWB-Algorithmus) den Weißpunkt aus, um die Änderungen an der Beleuchtungsquelle zu berücksichtigen. Alle anderen Farben basieren auf dem Weißpunkt. Bei Erfolg wird Farbkonstanz erreicht, bei der eine Farbe unabhängig von der Beleuchtungsquelle als die gleiche Farbe erscheint. Herkömmliche AWB-Algorithmen haben allerdings oft Probleme mit komplexen Szenen, beispielsweise mit mehreren Beleuchtungsquellen. Eine Lösung ist es, Algorithmen mit faltenden neuronalen Netzen (CNN-Algorithmen) zu verwenden, die gezeigt haben, dass sie Farbgenauigkeit und - konstanz in solchen Situationen verbessern, solange die Beleuchtungssituation für eine Szene eine ist, die einem solchen Netz bekannt ist, so dass das Netz trainiert worden ist, die bestimmte Beleuchtung oder verwendete Beleuchtungskombination zu erkennen. Somit entstehen viele Farbfehler, weil neue Szenetypen, mit denen das Netz keine Erfahrung hat, nicht angemessen analysiert werden können. Der typische CNN-Trainingsdatensatz ist zu klein, um auf eine angemessene Anzahl von Beleuchtungssituationen verallgemeinern zu können, die typischerweise in der Welt erlebt werden. Daraus ergibt sich eine Bildqualität, die für einen Anwender merklich gering ist. Zudem ist in vielen Fällen die Kamerainvarianz gering, so dass das CNN für einen Kamerasensor nicht unbedingt für einen anderen Kamerasensor gut ist, da die Rohbilddaten von verschiedenen Kameras zu verschiedenen Beleuchtungschromatizitäten führen können.
  • Figurenliste
  • Das hierin beschriebene Material wird beispielhaft und nicht einschränkend in den begleitenden Figuren gezeigt. Der Einfachheit und Klarheit halber sind in den Figuren gezeigte Elemente nicht unbedingt maßstabsgetreu. Zum Beispiel können die Abmessungen mancher Elemente relativ zu anderen Elementen der Klarheit halber übertrieben sein. Ferner wurden, wenn es angemessen erschien, Bezugszeichen unter den Figuren wiederholt, um entsprechende oder analoge Elemente anzugeben. Es zeigen:
    • 1 eine schematische Darstellung einer Bildverarbeitungsvorrichtung gemäß mindestens einer der Implementierungen hierin;
    • 2 eine schematische Darstellung eines neuronalen Netzes, das automatischen Weißabgleich durchführt, gemäß mindestens einer der Implementierungen hierin;
    • 2A eine schematische Darstellung beispielhafter tiefer Schichten für automatischen Weißabgleich (AWB-Schichten) des neuronalen Netzes von 2;
    • 3 ein graphisches Ablaufdiagramm, das ein Verfahren zum automatischen Weißabgleich mit neuronalem Netz gemäß mindestens einer der Implementierungen hierin zeigt;
    • 4A ein Ablaufdiagramm eines Verfahrens zum automatischen Weißabgleich unter Verwendung neuronaler Netze und anderer AWB-Algorithmen gemäß mindestens einer der Implementierungen hierin;
    • 4B ein Ablaufdiagramm eines weiteren Verfahrens zum automatischen Weißabgleich unter Verwendung neuronaler Netze und anderer AWB-Algorithmen gemäß mindestens einer der Implementierungen hierin;
    • 5A ein Ablaufdiagramm eines Verfahrens zum kamerainvarianten automatischen Weißabgleich gemäß mindestens einer der Implementierungen hierin;
    • 5B ein Ablaufdiagramm eines Verfahrens einer Weißkartenerzeugung zum automatischen Weißabgleich gemäß mindestens einer der Implementierungen hierin;
    • 6 einen Graphen einer xy-Chromatizitätsebene nach CIE-1931, der Graugrenzen zeigt;
    • 7-9 Graphen sich ergebender Weißkarten für drei getesteter Kameras gemäß mindestens einer der Implementierungen hierin, die linearisierte [R/G,B/G]-Rohdaten zeigen, die automatisch aus der generischen xy-Weißkarte nach CIE-1931 erzeugt sind;
    • 10A einen Graphen von Spektralempfindlichkeiten dreier getesteter Kameras gemäß mindestens einer der Implementierungen hierin;
    • 10B einen Graphen von Chromatizitätsantworten dreier getesteter Kameras gemäß mindestens einer der Implementierungen hierin;
    • 11-18 Feldwirklichkeitsbilder, die mit Bildern mit variierenden Fehlerraten verglichen werden, um die Unterschiede zwischen verschiedenen Winkeln zu zeigen;
    • 19 eine veranschaulichende Darstellung eines Beispielsystems;
    • 20 eine veranschaulichende Darstellung eines weiteren Beispielsystems; und
    • 21 eine weitere beispielhafte Vorrichtung, wobei alles gemäß mindestens einer der Implementierungen der vorliegenden Offenlegung angeordnet ist.
  • GENAUE BESCHREIBUNG
  • Eine oder mehrere Implementierungen werden nun unter Bezugnahme auf die enthaltenen Figuren beschrieben. Obwohl spezifische Konfigurationen und Anordnungen erörtert werden, wird dies nur zu Beispielzwecken getan. Fachleute werden erkennen, dass andere Konfigurationen und Anordnungen eingesetzt werden können, ohne vom Gedanken und Geltungsbereich der Beschreibung abzuweichen. Es wird für Fachleute offensichtlich sein, dass die hierin beschriebenen Techniken und/oder Anordnungen zudem in einer Reihe anderer Systeme und Anwendungen, die sich von den hierin beschriebenen unterscheiden, eingesetzt werden können.
  • Obwohl die folgende Beschreibung verschiedene Implementierungen darlegt, die in einer Architektur wie beispielsweise Ein-Chip-System-Architekturen (SoC-Architekturen) umgesetzt werden können, sind die Implementierungen der Techniken und/oder Anordnungen, die hierin beschrieben werden, nicht auf bestimmte Architekturen und/oder Rechensysteme beschränkt und können von jeder Architektur und/oder von jedem Rechensystem für ähnliche Zwecke umgesetzt werden. Zum Beispiel können verschiedene Architekturen, die z. B. mehrere Chips mit integrierten Schaltungen (IC-Chips) und/oder Baugruppen, die Beschleuniger für neuronale Netze umfassen, und/oder verschiedene Rechenvorrichtungen und/oder Unterhaltungselektronik-Vorrichtungen (CE-Vorrichtungen) wie Abbildungsvorrichtungen, digitale Kameras, Smartphones, Webkameras, Videokameras, Videospiel-Tafeln oder -Konsolen, Beistellgeräte und so weiter umfassen, die hierin beschriebenen Techniken und/oder Anordnungen umsetzen. Obwohl die folgende Beschreibung zahlreiche spezifische Einzelheiten wie Logikimplementierungen, Typen und Beziehungen von Systemkomponenten, Entscheidungen bezüglich Logikpartitionierung/Integration und so weiter darlegt, kann der beanspruchte Gegenstand ferner ohne solche spezifischen Einzelheiten umgesetzt werden. In anderen Fällen kann manches Material wie beispielsweise Steuerstrukturen und vollständige Softwarebefehlssequenzen nicht genau beschrieben sein, um das hierin offengelegte Material nicht zu verunklaren. Das hierin offengelegte Material kann in Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert werden.
  • Das hierin offengelegte Material kann zudem als Befehle implementiert werden, die auf einem maschinenlesbaren Medium oder Speicher gespeichert sind und die von einem oder mehreren Prozessoren gelesen und ausgeführt werden. Ein maschinenlesbares Medium kann ein beliebiges Medium und/oder einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer Form, die von einer Maschine (z. B. einer Rechenvorrichtung) gelesen werden kann, umfassen. Zum Beispiel kann ein maschinenlesbares Medium einen Nur-Lese-Speicher (ROM); einen Direktzugriffsspeicher (RAM); ein Magnetplattenspeichermedium; ein optisches Speichermedium, Flash-Speichervorrichtungen; elektrische, optische, akustische oder andere Formen sich ausbreitender Signale (z. B. Trägerwellen, Infrarotsignale, digitale Signale und so weiter) und anderes umfassen. In einer weiteren Form kann ein nichtflüchtiges Element wie etwa ein nichttransitorisches computerlesbares Medium mit jedem der vorher erwähnten oder anderen Beispielen verwendet werden, wenn es an sich kein transitorisches Signal umfasst. Dies umfasst Elemente, die selbst kein Signal sind, die Daten zeitweise in einer „transitorischen“ Form halten, wie etwa RAM und so weiter.
  • Verweise in der genauen Beschreibung auf „eine Implementierung“, „eine beispielhafte Implementierung“ und so weiter geben an, dass die beschriebene Implementierung ein/e bestimmtes Merkmal, Struktur oder Charakteristik umfasst, aber nicht jede Implementierung zwingend das/die bestimmte/s Merkmal, Struktur oder Charakteristik umfasst. Darüber hinaus beziehen sie sich nicht notwendigerweise auf dieselbe Implementierung. Wenn ein/e bestimmtes Merkmal, Struktur oder Charakteristik in Verbindung mit einer Implementierung beschrieben ist, wird ferner geltend gemacht, dass es in der Kenntnis von Fachleuten liegt, ein/e solche/s Merkmal, Struktur oder Charakteristik in Verbindung mit anderen Implementierungen zu setzen, ob es hierin ausdrücklich beschrieben ist oder nicht.
  • Systeme, Elemente und Verfahren zum Durchführen von automatischem Weißabgleich basierend auf tiefem Lernen.
  • Ein automatischer Weißabgleich (AWB) beinhaltet ein Lösen eines Farbkonstanzproblems, das nach räumlicher Farbkorrektur zur genauen Wiedergabe der Farben in dem rekonstruierten Bild angewendet wird. Weißabgleich ahmt die einzigartige Fähigkeit des menschlichen visuellen Systems nach, das Aussehen von Objekten unter verschiedenen Beleuchtungsbedingungen mit der gleichen Farbe wahrzunehmen. Der AWB-Algorithmus versucht, Chromatizitätskoordinaten zu finden, die die Farbe eines neutralen „weißen“ Objekts auf dem Bild oder den Weißpunkt definieren. Wenn einmal die Chromatizität der Beleuchtungsquelle geschätzt ist, werden verschiedene Farbkanäle des Eingabebilds mit Weißabgleichverstärkungen korrigiert, um das Aussehen von Weiß in dem Ausgabebild konstant zu halten.
  • Herkömmliche AWB-Algorithmen haben noch viele Schwierigkeiten mit der Genauigkeit in komplexen Beleuchtungssituationen. Es gibt noch viele Fälle, die zu klaren Farbfehlern führen. Daher sind faltende neuronale Netze (CNNs) beliebte Werkzeuge für viele Arten von Bildanalyseproblemen einschließlich des Durchführens von AWB geworden, weil komplexe Beleuchtungssituationen tendenziell gut bewältigen. Vgl. beispielsweise Anil Baslamisli, „Camera Sensor Invariant Auto White Balance Algorithm Weighting", Masterarbeit, Tampere University of Technology (2016); Yanlin Quian et al. „Deep structured-output regression learning for computational color constancy", 23rd International Conference on Pattern Recognition (ICPR), S. 1899-1904. Cancun (2016) (hierin als Yanlin-1 bezeichnet); Yanlin Quian et al. „Recurrent Color Constancy", IEEE International Conference on Computer Vision (ICCV), S. 5459-5467, Venedig (2017) (hierin als Yanlin-2 bezeichnet); Caglar Aytekin et al. „Deep multi-resolution color constancy", IEEE International Conference on Image Processing (ICIP), Beijing (2017) (hierin als Aytekin-1 bezeichnet); and Caglar Aytekin et al. „A Dataset for Camera Independent Color Constancy" IEEE Transactions on Image Processing, Vol.27, Nr.2, (Feb. 2018) (hierin als Aytekin-2 bezeichnet).
  • Die veröffentlichten CNN-Verfahren funktionieren gut für ausgewählte akademische Datenbanken, bei denen eine einzelne Datenbank normalerweise etwa 500 bis 3000 Bilder aufweist, wobei eine Gesamtmenge einschließlich verschiedener veröffentlichter Datenbanken etwa 20000 Bilder beträgt. Es treten jedoch Schwierigkeiten auf, weil viele CNNs für AWB nicht auf einen kommentierten Datensatz von ausreichender Größe trainiert werden, um einen genauen AWB zu liefern, der eine akzeptable Menge der weltweit bekannten Beleuchtungsumgebungen abdeckt, so dass die 20000 Bilder immer noch eine unzureichend niedrige Anzahl von Bildern sind. Somit führen neue Arten von Beleuchtung in Szenen in Kombination mit neuem Szeneninhalt, dem ein neuronales Netz zuvor nicht begegnet ist (oder mit anderen Worten solche Arten von Beleuchtung, die beispielsweise nicht in den bekannten Datenbanken enthalten sind), zu einer Weißpunktschätzung von schlechter Qualität. Die derzeitige Menge an Beleuchtungsumgebungen und Szeneninhalt, die der Datensatz in den bekannten Datenbanken abdeckt, reicht einfach nicht aus, um die gewünschte Verallgemeinerungsfähigkeit zu erreichen, damit echte Produkte auf der ganzen Welt angemessen betrieben werden können.
  • Zusätzlich zu diesen Schwierigkeiten erfordert die Feldwirklichkeits-Kommentierung von Bildern, um mehr Daten zu den AWB-Datenbanken hinzuzufügen, oftmals ein derart hohes Fachwissen und eine derart teure Ausrüstung, dass sie von Nichtfachleuten nicht auf der ganzen Welt ausführlich durchgeführt werden kann, sondern vom Haupthersteller/Entwickler (oder einer zuständigen Entität). Dies verlangsamt die Sammlung von Daten und das Wachstum der Datenbank erheblich.
  • Eine weitere Schwierigkeit beim Durchführen von AWB unter Verwendung von CNNs besteht darin, dass in den meisten Fällen die Kamerainvarianz, d. h. die Fähigkeit, mit zuvor nicht gesehenen Kamerasensortypen zu arbeiten (oder auf diese zu verallgemeinern), schlecht ist. Die Kamerainvarianz wird nicht automatisch mittels CNNs ermöglicht, da das exakt gleiche Rohbild von einem Kamerasensor zu einer unterschiedlichen Beleuchtungssättigung für einen anderen Kamerasensor führen kann. Das einfache Trainieren eines neuronalen Netzes mit vielen verschiedenen Kamerasensortypen löst dieses Problem nicht und führt stattdessen zu einer schlechten Genauigkeit, da die Unterschiede bei den Sensortypen zum CNN-Training in einem so relativ kleinen Datensatz zu viele Variablen hinzufügen, wodurch die Genauigkeit beeinträchtigt wird. Beispielsweise kann genau das gleiche Rohbild aufgrund der unterschiedlichen Spektralempfindlichkeit der Kameras für verschiedene Kamerasensoren unterschiedliche Beleuchtungen liefern. Wenn also genau derselbe Rohbildwert als Eingabe für ein CNN vorgegeben wird, der sich aus zwei unterschiedlichen Beleuchtungen für zwei unterschiedliche Kamerasensoren mit unterschiedlichen Spektralempfindlichkeit ergeben könnte, müsste das CNN zwei unterschiedliche Ausgaben für dieselbe Eingabe ausgeben, was nicht möglich ist, wenn alle Kamerasensoren nur in den gleichen Trainingssatz geworfen sind. Dies würde auch erfordern, dass ein extrem großer Trainingsdatensatz für jeden unterschiedlichen Sensor erfasst wird, was praktisch unmöglich ist.
  • Eine weitere Schwierigkeit bei der AWB-Genauigkeit betrifft die Kalibrierung von Kameras, um eine Weißkarte und Grundlinien-RGB-Werte für die Kamera zu erzeugen, um graubasierte AWB-Algorithmen wie etwa eine Grausuche, die die Definition von Grau für Bilder verfeinert, die von einem bestimmten Kamerasensor aufgenommen wurden, durchzuführen und auch eine Weißpunktschätzung zu liefern. Die Graudefinition wird dann verwendet, um einen Weißpunkt des Bildes zu bestimmen. Eine Weißkarte ist ein Kamerakennfeld, das den Bereich brauchbarer Weißpunkte für die Kamera definiert und verwendet werden kann, um zu bestimmen, welche Farbwerte potenzielle Graubereiche in einem Bild sind. Die Graubereiche können verwendet werden, um die Beleuchtungs-Chromatizität abzuschätzen, da Graubereiche die Chromatizität der Beleuchtung nicht ändern, wenn Licht von ihnen reflektiert wird. Die Kalibrierung zum Bestimmen einer Weißkarte, die für die Bilder für die AWB-Operationen verwendet werden soll, erfordert häufig eine relativ große Menge an Abstimmung der Bildqualität (IQ-Abstimmung), bevor die AWB-Operationen korrekt ausgeführt werden können, da eine große Menge an neuen Rohbildern erfasst werden müssen, um den Bereich möglicher BeleuchtungsChromatizitäten abzudecken. Dies kann ein manuelles Optimieren der Weißkarten und/oder anderer derartiger Algorithmusparameter umfassen, um einen Grundlinien-Weißpunkt und RGB-Pixelwerte festzulegen. Dies kann beispielsweise einige Tage bis Wochen Aufwand für Erfassung und Abstimmung von AWB-Bildern bedeuten. Gegenwärtig hängen der Zeitaufwand und das daraus resultierende erreichte Qualitätsniveau erheblich von den Projektparametern, den Projektqualitätszielen und der Erfahrung des IQ-Abstimmungs-Ingenieurs ab. Dadurch ist dieser manuelle Prozess anfällig für viele Fehler, die die Bildqualität reduzieren können.
  • Um diese Probleme zu lösen, führen das Verfahren und das System hierin einen AWB mit tiefem Lernen in Kombination mit anderen kamerasteuerungs-AWB-Algorithmen, die nicht auf einem neuronalen Netz basieren, derart ein, dass kompensiert wird, dass kommentierte Datensätze für das neuronale Netz um Größenordnungen zu klein sind. Die vorliegenden Kamera-AWB-Verfahren funktionieren auf der ganzen Welt und in einer sehr großen Vielfalt von Beleuchtungsumgebungen gut. So funktionieren die vorliegenden AWB-Verfahren gut bei Szenen, die sich von allem, was das AWB-CNN während des Trainings gesehen hat, sehr unterscheiden, wodurch deutlich wahrnehmbare Fehler beschränkt oder vollständig vermieden werden.
  • Die vorliegenden AWB-Verfahren, die hierin offenbart werden, verwenden sowohl CNN-basierte Unteralgorithmen als auch nicht CNN-basierte Algorithmen. Ein Nicht-CNN-Algorithmus oder Nicht-CNN-Weißpunkt (oder Weißpunktschätzung) sind diejenigen, die kein neuronales Netz verwenden, obwohl die Nicht-CNN-Algorithmen stattdessen ein neuronales Netz verwenden können, um die Angemessenheit der Weißpunktschätzung zu testen, beispielsweise durch Erzeugen einer Gewichtung für die Algorithmusausgabe. Durch einen Ansatz werden der geschätzte Weißpunkt aus dem CNN-Algorithmus und den Nicht-CNN-Algorithmen gewichtet und kombiniert, um eine gewichtete „Basis“-Weißpunktschätzung zu bilden. Dieser Basisweißpunkt (oder diese Weißpunktschätzung) könnte ein endgültiger AWB-Weißpunkt sein, um Verstärkungen einzustellen oder RGB-Pixelwerte zu verfeinern, um sie für andere Nicht-AWB-Anwendungen bereitzustellen, oder könnte eine endgültige Weißpunktschätzung einer anfänglichen AWB-Stufe (oder tatsächlich eine anfängliche Weißpunktschätzung) sein, die in der Tat weiter verfeinert werden kann, bis eine echte endgültige Weißpunktschätzung von anderen Modulen erzeugt wird, um Verstärkungen oder verfeinerte RGB-Werte festzulegen, die für Nicht-AWB-Anwendungen bereitgestellt werden.
  • Zur Verbesserung der Szeneninvarianz werden sowohl die CNN- als auch die Nicht-CNN-Weißpunktschätzungen gewichtet und zu Anteilen kombiniert, die durch ihre Gewichtung angegeben sind, um die Basisweißpunktschätzung zu bilden. Dies kann beinhalten, dass bestimmt wird, dass die CNN-Gewichtung oder Konfidenz null oder nahe null ist, was darauf hindeuten kann, dass der Datensatz des CNN immer noch nicht groß genug für ein bestimmtes zu analysierendes Bild war. In diesem Fall kann die Basisweißpunktschätzung die Nicht-CNN-Algorithmen vollständig (oder nahezu vollständig) bilden, die in diesem Fall als Ausweichlösung angesehen werden können. Andernfalls kann auch das Gegenteil der Fall sein, wenn die CNN-Weißpunktschätzung einen hohen Konfidenz- oder Gewichtungswert aufweist und die Nicht-CNN-Weißpunktschätzung(en) eine Konfidenz (oder Gewichtung) von null (oder nahezu null) aufweisen. Viele Verhältnisse zwischen diesen beiden Fällen können verwendet werden, um die Weißpunktschätzungen zu kombinieren, um den Basisweißpunkt zu bilden. Dies führt zu einer starken Steigerung der Anpassungsfähigkeit, indem mehr von der oder die gesamte Weißpunktschätzung aus dem Algorithmus für ein bestimmtes Bild mit dem hochgenauen CNN-basierten Algorithmus bereitgestellt wird, oder mit anderen Worten, dies führt zu einer erhöhten Szeneninvarianz, so dass die Szenen mit einer Beleuchtung, der das CNN noch nicht begegnet ist, mit einem der AWB-Algorithmen oder einer Kombination davon immer noch gute Ergebnisse erzielen können. Die Nicht-CNN-Algorithmen können maxRGB, Grey-World, Shades-of-Grey, Grey-Edge, Gamut-Mapping, Farbkorrelation usw. umfassen.
  • Der CNN-Betrieb selbst wird genauer gemacht, indem ein Konfidenzschätzungskanal zusätzlich zu den durch Chromatizität definierten Kanälen (wie beispielsweise drei RGB-Kanälen, einer für jede Farbe) verwendet wird. Der Konfidenzschätzungskanal wird als Gewichtung für die anderen Chromatizitätskanäle verwendet und dann wird ein Kombinationswert, beispielsweise ein Durchschnitt, verwendet, um die RGB-Weißpunktschätzung aus den drei Chromatizitätskanälen zu bilden. Diese Kanäle werden durch tiefe AWB-Schichten an dem Ende des CNN geliefert und danach werden die Konfidenzschätzungswerte als Gewichtungen auf die Chromatizitätskanäle in einer adaptiven Zusammenlegungsschicht angewendet. Die Konfidenzschätzungswerte werden auch verwendet, um ein normierendes Konfidenzschätzungsgewicht für die CNN-Weißpunktschätzung für die Kombination mit den hier beschriebenen Nicht-CNN-Algorithmen zu bilden. Das normierende Konfidenzschätzungsgewicht wird durch eine Normierungsfunktion gebildet, die den Durchschnitt der Konfidenzschätzungswerte einer Konfidenzkarte, die den Konfidenzschätzungskanal bildet, durch die Standardabweichung der Konfidenzkarte dividiert.
  • Bezüglich des Problems der Kamerasensorinvarianz wurde festgestellt, dass das Durchführen der AWB-Algorithmen in einem Referenzraum die Invarianz des CNN und anderer AWB-Algorithmen wesentlich verbessert. Dieser Vorgang kann das Transformieren von RGB-Sensordaten in den Referenzraum und dann wieder zurück in den RGB-Sensorraum, sobald die Weißpunktschätzungen erstellt wurden, beinhalten. Der Referenzraum wird gebildet, indem die Spektralcharakteristiken mehrerer verschiedener Sensortypen normiert werden, beispielsweise durch Bestimmen einer Kombination der Parameter des Sensor-RGB-Raums, beispielsweise eines Durchschnitts. Dies verbessert die Kamerainvarianz, indem Referenzwerte erstellt werden, die im Vergleich zu der direkten Differenz zwischen den Werten eines Kamerasensors und eines anderen Kamerasensors näher an den Werten eines Kamerasensors liegen. Dies macht die Unterstützung neuer Kamerasensoren möglich, zumal die Erfassung neuer Trainingsdaten in realen Produkten aufgrund des enormen Aufwands, der mit der Erfassung und dem Training verbunden ist, und des Zeitaufwands für solche Vorgänge nicht möglich ist. Die Hinzufügung neuer Spektralcharakteristiken kann für einen neuen Kamerasensor innerhalb von ein oder zwei Stunden erfolgen. Alternativ können die Informationen sogar von Anbietern von Kameramodulen bezogen werden, um die Referenzraumparameter zu erzeugen. Weitere Einzelheiten sind nachstehend angegeben.
  • Im Hinblick auf die Weißkarte können die Spektralcharakteristiken auch verwendet werden, um Weißkarten zu berechnen, um die Grundlinienabstimmung des Chromazitätsraums eines Kamerasensors zu automatisieren. Im Allgemeinen führen die hierin offenbarten Verfahren dies durch, indem sie die spektrale Leistungsverteilung von Graugrenzpunkten in einem verschobenen Farbraum bestimmen und dann Spektralcharakteristiken der spektralen Leistungsverteilung der Grenzpunkte verwenden, um Sensor-RGB-Werte zu bestimmen. Dies führt zu einem geringeren IQ-Abstimmungsaufwand, da die Spektralcharakteristik des Kameramoduls erforderlich ist und eine Grundlinie bildet, jedoch keine manuelle Anpassung von Weißkarten und/oder anderen derartigen Algorithmusparametern erforderlich ist. Die Weißkarten werden aus der gleichen, unveränderlichen Spektralcharakteristik erzeugt. Dies kann die Anzahl von Tagen, die für die Erfassung und Optimierung von AWB-Bildern benötigt werden, erheblich reduzieren. Mit dieser Technik werden qualitativ hochwertige Bilder durchweg mit viel weniger Zeitaufwand für die Erzeugung der Grundlinien-Chromazitätswerte für den Kamerasensor und ohne starke Abhängigkeit von den oben erwähnten variierenden Projektparametern, Projektqualitätszielen und der Erfahrung des IQ-Abstimmungs-Ingenieurs erzielt.
  • Unter Verwendung der oben genannten Techniken wird im Vergleich zu herkömmlichen AWB-Systemen wie dem in Aytekin-2 beschriebenen und anderen nachstehend getesteten Systemen eine bessere Genauigkeit mit einer Verringerung der Fälle von schweren Fehlern um etwa 30 % bis 65 % erzielt. Somit erzeugen die vorliegenden Verfahren Bilder von einer Kamera mit einer höheren Farbgenauigkeit, und zwar fast unabhängig von der Beleuchtungsumgebung und dem Szeneninhalt in der Szene, die von einer Kamera aufgenommen wird, und dies wird mit weniger Aufwand bei der der Bildqualitäts-Abstimmung (IQ-Abstimmung) und mit weniger nötigem Fachwissen von IQ-Abstimmungs-Ingenieuren erreicht.
  • Unter Bezugnahme auf 1 führt eine Bildverarbeitungsvorrichtung 100 den AWB und andere hier beschriebene verwandte Verfahren durch und hat eine Vorverarbeitungseinheit 102 zum Verarbeiten von Rohbilddaten von einem oder mehreren Kamerasensoren, die mindestens für das AWB ausreicht, kann jedoch auch die Vorverarbeitung für alle 3A-Operationen umfassen, einschließlich automatischer Belichtungssteuerung (AEC) und automatischem Fokus (AF) zusätzlich zu AWB oder anderer Bildverarbeitungsanwendungen, die die Qualität von Bildern verbessern, die von einer oder mehreren Kameras aufgenommen wurden. Wie es nachstehend beschrieben ist, kann die Vorverarbeitungseinheit 102 eine AWB-Referenzraumeinheit 150 zum Durchführen von Farbraumkonvertierungen von einem RGB-Sensorraum in einen spektralbasierten Referenzraum, wie es nachstehend beschrieben ist, und zum Durchführen der AWB-Operationen in dem Referenzraum für eine größere Sensorinvarianz umfassen. Eine Rückkonvertierungs-Referenzraumeinheit 152 zum Rückkonvertieren der Referenzraumdaten in einen RGB-Sensorraum kann an einer Reihe von verschiedenen Stellen in der AWB-Pipeline (oder -Vorrichtung) 100 bereitgestellt sein, ist hier jedoch bei der Anfangs-AWB-Schätzungseinheit 104 gezeigt, um angewendet zu werden, nachdem die CNN-Weißpunktschätzung in dem Referenzraum erzeugt worden ist.
  • Die Vorrichtung 100 hat auch eine Anfangs-Weißpunkt-Schätzungseinheit (WP-Schätzungseinheit) 104. Die WP-Schätzungseinheit 104 verwendet zwei oder mehr AWB-Algorithmen, die als Algorithmuseinheiten 106, 108 und 110 gezeigt sind und mindestens einen Algorithmus N umfassen, der ein tiefer AWB-Algorithmus ist. Mit anderen Worten wird ein auf einem neuronalen Netz basierender AWB-Algorithmus und in den vorliegenden Beispielen ein faltendes neuronales AWB-Netz (AWB-CNN) verwendet. Das CNN weist mindestens eine Faltungsschicht auf, die AWB-Kanäle zum Ausgeben von Primärfarbraumkanälen mit Werten eines geschätzten CNN-Weißpunkts bereitstellt, indem ein Konfidenzschätzungskanal zum Modifizieren der hierin beschriebenen Weißpunktschätzungswerte verwendet wird. Die anderen AWB-Algorithmen 1, 2 usw. sind Nicht-CNN-Algorithmen (oder Algorithmen ohne neuronales Netz), die kein CNN verwenden, um einen geschätzten Weißpunkt zu erzeugen. Die Typen von Algorithmen wie Grey-World usw. sind an anderer Stelle hier aufgelistet. Ein solcher Algorithmus könnte ein CNN oder ein anderes neuronales Netz verwenden, um Geweichte festzulegen, die auf die Nicht-CNN-Weißpunkte anzuwenden sind, wie es weiter unten beschrieben ist.
  • Eine Einheit für auf neuronalen Netzen basierende Gewichtung und Entscheidung (NNWD-Einheit) 112 bestimmt eine Basisweißpunktschätzung für eine weitere Verfeinerungsverarbeitung und könnte zumindest teilweise auf der CNN-Weißpunktschätzung basieren. Durch eine Option kombiniert die NNWD-Einheit 112 einen gewichteten CNN-Weißpunkt mit gewichteten Weißpunkten von anderen Nicht-CNN-Algorithmen, um den Basisweißpunkt für die weitere Verarbeitung zu berechnen. Durch diese Option kann die Gewichtung des CNN-Weißpunkts unter Verwendung einer Normierungsfunktion durchgeführt werden, die aufgrund ihrer guten Ergebnisse bei der genauen Festlegung der Konfidenz für die CNN-Weißpunktschätzung eine bessere Szeneninvarianz liefert und daher zu Bildern guter Qualität führt, selbst wenn das CNN der Beleuchtungsumgebung zuvor noch nicht begegnet ist. Dies schließt ein, dass die Gewichtung für den CNN-Algorithmus 0 ist und er nicht in der Basisweißpunktschätzung enthalten ist, wenn bekannt ist, dass der CNN-Algorithmus für eine bestimmte Situation (wie eine bestimmte Beleuchtungsumgebung) nicht geeignet ist. Wenn dies nicht ausreichend ist, werden einer oder mehrere der Nicht-CNN-Algorithmen als Ausweichlösung verwendet, um die Basisweißpunktschätzung und eine akzeptable Bildqualität zu liefern, wodurch das System sehr hochgradig an unterschiedliche Beleuchtungsumgebungen anpassbar ist.
  • Eine Blitzweißabgleicheinheit 116 handhabt dann den anfänglichen Weißpunkt, wenn ein Blitz- oder Lichtprojektor verwendet wurde, um ein Bild aufzunehmen, um die chromatischen Bildwerte entsprechend anzupassen, bevor eine End-WP-Schätzungseinheit 120 einen endgültigen Weißpunkt bestimmt. Wenn kein Blitz verwendet wurde und eine hohe Konfidenz für die CNN-basierte Weißpunktschätzung vorlag, fährt der Prozess direkt mit der End-WB-Schätzungseinheit 120 fort. Wenn andernfalls kein Blitz verwendet wurde, aber das Vertrauen in den CNN-basierten Weißpunkt niedrig ist, dann führt eine Grausucheinheit 118 eine Grausuche durch, um die Graubereiche eines Bildes zu verfeinern, bevor die endgültige Weißpunktanalyse durch die End-WP-Schätzungseinheit 120 durchgeführt wird, um einen graubezogenen AWB-Algorithmus anzuwenden. Dies kann die Einschränkung des Farbkorrelationsbereichs (CCT) beinhalten.
  • Für eine Form verwendet die Grausucheinheit 118 eine Weißkarte von einer Weißkarteneinheit 154, um Grundlinien-RGB-Werte von anfänglichen Weißpunktkandidaten aus der Weißkarte festzulegen und eine endgültige Weißpunktschätzung zu liefern. Weitere Einzelheiten zu einer Grausuche sind nachstehend angegeben. Die herkömmliche Technik kann verwendet werden, um die Weißkarte zu liefern, aber ansonsten wird eine schnellere, effizientere Spektralbildcharakterisierungstechnik durch die Weißkarteneinheit 154 verwendet, die die IQ-Abstimmungseffizienz erhöht und Informationen über die Beleuchtungschromazitätsverteilung im CIExy-Farbraum mit einer Spektralcharakteristik des Kameramoduls werden gesammelt, die durch Analysieren von Bildern bei spezifischen getrennten Wellenlängen gesammelt und anschließend wird die spektrale Leistungsverteilung für jede CIExy-Koordinate von Graugrenzen geschätzt, wie es nachstehend erläutert ist. Diese Weißkarten werden beispielsweise bei der Kalibrierung einer Kamera bestimmt und hochgeladen.
  • Die End-WB-Schätzungseinheit 120 führt AWB-Algorithmen wie beispielsweise verschiedene gedächtnisfarbbasierte und bevorzugte farbwiedergabebasierte Algorithmen durch, die den Weißpunkt noch modifizieren könnten, insbesondere nachdem die Grausuche angewendet wurde. Ansonsten können die gleichen Nicht-CNN-Algorithmen, wie sie bei der Anfangs-WB-Schätzungseinheit verwendet werden, wie beispielsweise die hier erwähnten graubezogenen Algorithmen und/oder andere AWB-Algorithmen, verwendet werden, um den endgültigen Weißpunkt auf der Basis der Modellierung des Farberscheinungsbildes bereitzustellen, also einen „genauen“ Weißpunkt nach Weißpunkt-Stabilisierungstechniken (wenn kein Blitz verwendet wird), und der CCT für den resultierenden Weißpunkt wird berechnet.
  • Endanwendungen 122 können die endgültigen und genauen Weißpunkte und den CCT empfangen, um die Chromatizitätswerte für ein oder mehrere Bilder gemäß dem festgelegten Weißpunkt festzulegen. Die Endanwendungen können auch Verstärkungen empfangen, um auf der Grundlage des endgültigen Weißpunkts verfeinerte Chromatizitätswerte zu bilden, oder sie können die AWBangepassten Chromatizitätswerte selbst empfangen. Solche Endanwendungen 122 können verschiedene Video- und Fotoerfassungsanwendungen umfassen, die den AWB verwenden, um die Bilddatenqualität anzupassen, beispielsweise zum Aufnehmen weiterer Bilder oder für Anzeigeanwendungen, die für Kameravorschaubildschirme auf Mobilvorrichtungen und andere Foto- und Videoaufnahmeanwendungen und Anzeigeanwendungen auf vielen verschiedenen Erfassungs- und Anzeigevorrichtungen umfassen. Andere Endanwendungen, die sich in hohem Maße auf AWB stützen, umfassen Aufgaben maschinellen Sehens wie die Objekterkennung.
  • Unter Bezugnahme auf 2 gibt ein neuronales Netz 200, das der von der tiefen AWB-Einheit 110 eingesetzte Algorithmus N ist, eine geschätzte CNN-Weißpunktschätzung aus. Das neuronale Netz empfängt vorverarbeitete Bildpixeldaten 202 in einem erwarteten Farbraum wie RGB und kann drei Farbwerte R, G, B in Vektorform empfangen. Das hier anhand des Netzes 200 gezeigte Beispiel zeigt, dass die 1080x720-Pixel-Bilder mit einem für jede RGB-Farbe versehen werden.
  • Obwohl viele verschiedene Netzarchitekturen verwendet werden könnten, gibt das Netz 200 eine beispielhafte Architektur an. Ein Abschnitt des Netzes weist jeweils eine Faltungsschicht auf, die wie folgt nummeriert ist. Das Netz umfasst eine Faltungsschicht 1 mit einer Schicht einer gleichgerichteten Lineareinheit (ReLU-Schicht) zum Entfernen von negativen Vorzeichen im Anschluss 204. Die Schicht 204 liefert 96 Kanäle (ch) mit jeweils 268x178-Merkmalskarten. Die nächste Schicht ist eine Normierungsschicht 1 206, die die Kanalstruktur wie die vorherige Schicht 1 liefert. Eine Zusammenlegungsschicht 1 208 ist dann bereitgestellt und gibt 96 Kanäle mit jeweils 134x89-Merkmalskarten aus, um einen Abschnitt 1 des Netzes abzuschließen. In einem nächsten Abschnitt 2 ist eine Faltung+ReLU-Schicht 2 210 eine expandierende Schicht und liefert 256 Kanäle mit jeweils 134x89-Merkmalskarten und dann liefert eine Normierungsschicht 2 212 die gleiche Kartengröße wie die Kanäle in der vorherigen Schicht. Eine Zusammenlegungsschicht 2 214 liefert dann 256 Kanäle mit jeweils 67x44-Merkmalskarten.
  • Bei anderen Formen könnten diese früheren Schichten der Netzarchitektur 200 durch eine SqueezeNet-Architektur ersetzt sein, die beispielsweise punktweise 1×1-Filter verwendet (siehe Iandola, FN et al., „Squeezenet: Alexnet-Level Accuracy With 50x Fewer Parameters And < 0.5 MB Model Size“, ICLR (2017)), wodurch die Anzahl der Parameter weiter reduziert wird und damit der Energieverbrauch für den Betrieb des AWB reduziert wird.
  • Der nächste Abschnitt weist dann eine einzelne Schicht mit einer Faltung+ReLU-Schicht 3 216 auf, die 384 Kanäle mit jeweils 67x44-Merkmalskarten liefert, und dann behält eine Faltung+ReLU-Schicht 4 218 die gleiche Kanalgröße und Anzahl wie die vorherige Schicht bei. Dann hat eine Faltung+ReLU-Schicht 5 220 256 Kanäle mit der gleichen Größe wie die vorherige Schicht. Eine Zusammenlegungsschicht 5 222 behält die gleiche Anzahl von Kanälen wie die vorherige Schicht bei, jedoch mit jeweils viel kleineren Merkmalskarten (33x22).
  • Die letzten zwei Faltungsschichten des Netzes werden als tiefe AWB-Schichten betrachtet. Dies umfasst eine Faltungsschicht 6 (tiefer AWB) 224, die mit einer Ausscheidung 226 gekoppelt ist, das die Kanäle auf 64 bei jeweils 30×19-Merkmalskarten reduziert. Danach weist eine Faltungsschicht 7 (tiefer AWB) 228 einen ReLU-Teil oder eine ReLU-Schicht 7 230 auf, die jeweils vier Kanäle mit einer 32x21-Merkmalskarte liefert. Hier ist ein Kanal für jede primäre Chromatizität R, G und B bereitgestellt und der vierte Kanal ist ein Konfidenzschätzungskanal. Die vier Schichten werden an eine adaptive Zusammenlegungsschicht 232 geliefert. Die adaptive Zusammenlegungsschicht liefert die drei Chromatizitätswerte für einen Basisweißpunkt (oder eine Basisweißpunktschätzung). Die Basisweißpunktschätzung kann ein endgültiger Weißpunkt zum Bilden von Verstärkungen und/oder verfeinerten RGB-Werten, die von anderen Anwendungen verwendet werden, sein, wird jedoch in den meisten Fällen als ein anfänglicher Weißpunkt betrachtet, der analysiert wird, um beispielsweise weiter verfeinert und an die End-Weißabgleichseinheit 120 (1) geliefert zu werden.
  • Unter Bezugnahme auf 2A wird die adaptive Zusammenlegungsschicht 232 im Einzelnen erläutert. In den herkömmlichen AWB-CNNs gibt die letzte Faltungsschicht des Netzes die Beleuchtungs-RGB-Kanäle aus und diese werden typischerweise über eine oder mehrere vollständig verbundene Schichten zu einem RGB-Beleuchtungsschätzungsvektor kombiniert. In dem vorliegenden Netz 200 werden vollständig verbundene Schichten nicht verwendet. Stattdessen erzeugt die Faltungsschicht 228 (mit der ReLU 230) einen vierten Kanal (Schätzungskonfidenzkartenkanal oder nur Konfidenzkanal) 240, der eine 2D-Konfidenzkarte, die die Bildbereiche angibt, die mit größter Wahrscheinlichkeit eine zuverlässige Beleuchtungsschätzung erzeugen, liefert oder ist. Die letzte Faltungsschicht 7 228/230 erzeugt auch die drei Chromatizitätskanäle oder -karten 242, 244 und 246 für die drei primären Chromatizitätswerte, um die Weißpunktschätzung zu bilden. Die adaptive Zusammenlegungsschicht 232 wendet die Konfidenzkarte als Gewichte auf die anderen drei Kanäle 242, 244 und 246 an. Bei einer Form ist dies eine Element-für-Element-Operation, beispielsweise bei einer Skalarprodukt-Operation, um gewichtete Chromatizitätswerte in gewichteten Karten 248, 250 und 252 zu bilden. Der Mittelwert jeder der drei Karten mit gewichteten RGB-Kanälen 248, 250 und 252 wird dann berechnet und als CNN-Weißpunktschätzung des CNN verwendet und bildet einen resultierenden RGB-Vektor, der die Beleuchtungsschätzung repräsentiert.
  • Unter Bezugnahme auf 3 ist eine andere Möglichkeit zum Zusammenfassen der Operationen des neuronalen Netzes mit der adaptiven Zusammenlegungsschicht grafisch mit zwei beispielhaften Eingabebildern 302 und 312 gezeigt, die aus vorverarbeiteten Roheingaben mit jeweils 720x1080x3 Kanälen gebildet sind. Das neuronale Netz wird angewendet, um jeweils geschätzte Beleuchtungschromatizitätskarten 304 und 314 von 21x32x3 für jedes Bild zu bilden. Diese werden Element für Element mit den geschätzten Konfidenzkarten 308 bzw. 316 für 21x32x1 multipliziert. Dies ergibt einen gewichteten Mittelwert 310 bzw. 318 für jeden primären Chromatizitätskanal, was den endgültigen Weißpunktvektor 1x1x3 ergibt.
  • In Bezug auf das Training des neuronalen Netzes ist eine Fehlerfunktion, die beim Training verwendet wird, ein Winkelfehler zwischen dem RGB-Vektor der ausgegebenen CNN-Weißpunktschätzung und dem Feldwirklichkeitsvektor. Daher lernt das neuronale Netz, solche Kombinationen von 2D-Beleuchtungsschätzungen und Konfidenzkarten für den CNN-Ausgabeweißpunkt c auszugeben, bei denen der Winkelfehler ε minimiert ist (als Verlustfunktion zum Trainieren des NN): ε c , c G T = arccos ( c c G T c c G T )
    Figure DE102019213184A1_0001
    wobei GT für Feldwirklichkeit steht.
  • Unter Bezugnahme auf 4A ist ein beispielhafter Prozess 400 ein computerimplementiertes Verfahren zum automatischen Weißabgleich mittels neuronalem Netz für die Bildverarbeitung und insbesondere zum Betreiben eines faltenden neuronalen AWB-Netzes mit einem Konfidenzschätzungskanal und zum Bestimmen der Eignung (oder des Konfidenzgewichts) der resultierenden CNN-Weißpunktschätzung, um eine Basis-Weißpunktschätzung zu erzeugen. In der dargestellten Implementierung kann der Prozess 400 eine oder mehrere Operationen, Funktionen oder Aktionen umfassen, wie sie durch eine oder mehrere Operationen 402 bis 408 veranschaulicht sind, die geradzahlig nummeriert sind. Als nicht einschränkendes Beispiel kann der Prozess 400 hierin gegebenenfalls unter Bezugnahme auf beispielhafte Bildverarbeitungsvorrichtungen (oder Netze) 100, 200, 300 und 1900 von 1-3 bzw. 19 beschrieben werden.
  • Der Prozess 400 kann ein „Erhalten von Bilddaten mindestens eines Bildes“ 402 umfassen. Dies kann ein Erhalten von Rohbilddaten umfassen, die von einem Kameramodul oder einem anderen Bilderfassungsmodul gestreamt werden. Das Kameramodul, beispielsweise das Kameramodul 1902 (19), kann Teil einer einzelnen Bilderfassungsvorrichtung sein, die das offenbarte AWB-System enthält, oder es kann von dem offenbarten System entfernt vorliegen. Diese Operation kann auch eine ausreichende Vorverarbeitung umfassen, um AWB durchzuführen. Dies kann eine Schwarzwertkorrektur, Linsenschattierungskorrekturen und eine Linearisierung (mit anderen Worten eine Linearisierung der Antwortkurve eines Bildsensors für die Farbtonkorrektur) umfassen. Bei einer Form können die Bilddaten in Form eines Statistikgitters vorliegen, das Blau/Grün- und Rot/Grün-Farbverhältnisse in dem RGB-Farbraum liefert. Dies kann übereinstimmend mit den Einheiten des Chromatizitätsraums, der verwendet wird, bereitgestellt sein. Somit könnten abhängig von dem Chromatizitätsraum stattdessen andere Einheiten oder Statistiken verwendet werden. Die Bilddaten können auch nach Bedarf heruntergetaktet werden.
  • Der Prozess 400 kann ein „Eingeben der Bilddaten in mindestens ein faltendes neuronales Netz (CNN), das dazu ausgelegt ist, mindestens eine Weißpunktschätzung mit automatischem Weißabgleich (AWB-Weißpunktschätzung) zu liefern, und mindestens einen Chromatizitätskartenkanal und mindestens einen Konfidenzkartenkanal mit Konfidenzschätzwerten, die als Gewichtungen für Werte des mindestens einen Chromatizitätskartenkanals verwendet werden sollen, aufweist“ 404 umfassen. Wie es bereits vorstehend beschrieben wurde, beinhaltet diese Operation ein Eingeben der Bilddaten in ein AWB-CNN, wie z. B. das CNN 200, um drei Chromatizitätskanäle und mindestens einen Konfidenzschätzungskanal (oder Konfidenzkartenkanal) zu erzeugen. Wie es vorstehend beschrieben ist, enthält der zusätzliche Kanal, der die Konfidenzkarte bildet, Konfidenzschätzwerte, die trainiert wurden, um die anderen Chromatizitätskanäle zu gewichten. Sobald die Konfidenzkarte verwendet wird, um die Chromatizitätskanäle an einer adaptiven Zusammenlegungsschicht als letzter oder nahezu letzter Schicht des CNN zu gewichten, wird jeder gewichtete Kanal beispielsweise durch Durchschnittsbildung auf einen einzelnen Wert reduziert, um einen einzelnen Chromatizitätswert als eine der Primärfarbkoordinaten für eine CNN-Weißpunktschätzung als eine Ausgabe des CNN-Algorithmus zu liefern, wodurch ein 1x1x3-Vektor als die CNN-Weißpunktschätzung geliefert wird.
  • Der Prozess 400 kann dann ein „Bestimmen eines normierenden Konfidenzkartengewichts zumindest teilweise auf Basis der einzelnen Konfidenzschätzwerte“ 406 und in einem Beispiel sowohl einen Durchschnitt der Konfidenzschätzwerte als auch die Standardabweichung der Konfidenzschätzwerte umfassen. Insbesondere wird die 2D-Konfidenzkarte beispielsweise wie folgt auf einen einzelnen Gewichtungswert reduziert, wobei eine Funktion f die Konfidenzschätzwerte auf einen Bereich von [0,1] normieren soll: w C N N = f ( m i t t e l ( K o n f i d e n z k a r t e ) s t d ( K o n f i d e n z k a r t e ) )
    Figure DE102019213184A1_0002
    Dabei ist std die Standardabweichung der Konfidenzkarte. Das Gewicht WCNN ist das Gewicht, das auf eine CNN-Weißpunktschätzung CCNN und als Konfidenzwert angewendet werden kann. Dies ist eine Implementierung mit geringer Berechnungskomplexität, die sehr gute Ergebnisse liefert, da sie die Konfidenz des CNN-Weißpunkts so genau widerspiegelt. Es versteht sich, dass es andere Möglichkeiten geben könnte, das Mittel und die Standardabweichung zu kombinieren, oder dass andere Werte anstelle oder zusätzlich zu dem Mittelwert und dem Standardabweichungswert der Konfidenzkarte verwendet werden könnten, die auch dazu dienen würden, die Eignung (oder Genauigkeit) des CNN-Weißpunkts anzugeben. Dies könnte das Trainieren eines separaten neuronalen Netzes für diese Funktion umfassen.
  • Der Prozess 400 kann als Nächstes Folgendes umfassen: „Bestimmen einer Basisweißpunktschätzung, was ein Verwenden sowohl einer gewichteten Weißpunktschätzung des CNN, gewichtet durch das normierende Konfidenzkartengewicht, und einer gewichteten Weißpunktschätzung mindestens eines Nicht-CNN-AWB-Algorithmus umfasst“ 408. Hier liefern das offenbarte Verfahren und System einen genaueren Weißpunkt, indem der CNN-Weißpunkt verwendet wird, wenn die Konfidenz für den CNN-Weißpunkt hoch ist, aber wenn die Konfidenz niedrig ist, ein oder mehrere Nicht-CNN-Algorithmen als Ausweichoption verwendet werden. Genauer gesagt werden die gewichteten Weißpunkte sowohl des CNN-Algorithmus als auch des Nicht-CNN-Algorithmus in eine Gleichung eingebracht, die einen Anteil jedes Ergebnisses (CNN-AWB und Nicht-CNN-AWB) gemäß den Gewichten verwendet, die auf die beiden Typen von AWB-Algorithmen angewendet werden. Somit liefert die Konfidenzschätzung WCNN die Gewichtung zwischen einer Tief-AWB-Beleuchtungsschätzung und den Nicht-CNN-AWB-Algorithmus-Beleuchtungsschätzungen. Dies erlaubt es, mehr von der CNN-Weißpunktschätzung zu verwenden, wenn das CNN auf einem ausreichenden Trainingsdatensatz basiert und eine bessere Genauigkeit als die Nicht-CNN-Algorithmen bietet. Für eine bessere Qualität werden jedoch mehr von den Nicht-CNN-Algorithmen verwendet, wenn das Ergebnis des CNN-Algorithmus von schlechter Qualität ist, wenn also z. B. der Trainingsdatensatz zu klein war. Wenn immer mehr Trainingsdaten hinzugefügt werden, wird erwartet, dass die Häufigkeit der Verwendung der Ausweichoption abnimmt. Die kombinierte Basisweißpunktschätzung wird wie folgt berechnet: c B A S E = w C N N c C N N + i = 1 N w i c i , w C N N + i = 1 N w i = 1
    Figure DE102019213184A1_0003
    Dabei ist N die Anzahl der verwendeten Nicht-CNN-Algorithmen, ci die Weißpunktschätzung eines Nicht-CNN-Algorithmus und wi sind die Nicht-CNN-Gewichte für jeden Nicht-CNN-Algorithmus. Die Gewichte wi können durch Heuristiken, die beispielsweise auf der Größe der Farbskala für ein bestimmtes Bild basieren (je größer die Farbskala, desto wahrscheinlicher ist die Schätzung genau), oder durch Trainieren eines anderen neuronalen Netzes zum Bewerten der Konfidenz eines Algorithmus für ein bestimmtes Eingabebild bestimmt werden, wie es von Baslamisli (oben zitiert) offenbart wurde, der neuronale Netze verwendet, um die Erfolgswahrscheinlichkeit für jeden unterschiedlichen Typ eines getesteten Nicht-CNN-Algorithmus zu bestimmen. Es versteht sich, dass hier ein oder mehrere Nicht-CNN-AWB-Algorithmen in der Gleichung enthalten sein können.
  • CBASE kann die „endgültige“ anfängliche Weißpunktschätzung, die durch andere AWB-Module verfeinert werden soll, oder der endgültige Weißpunkt, der verwendet wird, um Verstärkungen zu berechnen und Farbwerte anzupassen, sein, von denen jeder an andere Nicht-AWB-Anwendungen, die den Weißpunkt (oder Verstärkungen oder Bilddaten, die bereits durch Anwenden des Weißpunkts geändert wurden) verwenden, geliefert werden kann.
  • Unter Bezugnahme auf 4B ist ein beispielhafter Prozess 450 ein computerimplementiertes Verfahren zum automatischen Weißabgleich mittels eines neuronalen Netzes für Bildverarbeitung und insbesondere zum Bestimmen eines Basisweißpunkts unter Verwendung von sowohl CNN-basierten Weißpunktschätzungen als auch Nicht-CNN-Weißpunktschätzungen. In der dargestellten Implementierung kann der Prozess 450 eine oder mehrere Operationen, Funktionen oder Aktionen umfassen, wie sie durch eine oder mehrere Operationen 452 bis 464 dargestellt sind, die geradzahlig nummeriert sind. Als nicht einschränkendes Beispiel kann der Prozess 400 hierin gegebenenfalls unter Bezugnahme auf beispielhafte Bildverarbeitungsvorrichtungen (oder Netze) 100, 200, 300 und 1900 von 1-3 bzw. 19 beschrieben werden.
  • Der Prozess 450 kann ein „Erhalten von Bilddaten mindestens eines Bildes“ 452 umfassen, und dies entspricht der vorstehend beschrieben Operation 402 des Prozesses 400.
  • Der Prozess 450 kann ein „Eingeben der Bilddaten in mindestens ein faltendes neuronales Netz (CNN), das dazu ausgelegt ist, mindestens eine CNN-Weißpunktschätzung mit automatischem Weißabgleich (AWB-CNN-Weißpunktschätzung) zu liefern, und mindestens einen Chromatizitätskartenkanal und mindestens einen Konfidenzkartenkanal mit Konfidenzschätzwerten, die als Gewichtungen für Werte des mindestens einen Chromatizitätskartenkanals verwendet werden sollen, aufweist“ 454 umfassen. Dies ist auch vorstehend beschrieben und die Erklärung gilt hier genauso.
  • Der Prozess 450 kann ein „Bestimmen unter Verwendung der Konfidenzschätzwerte, ob die CNN-Weißpunktschätzung ausreichend genau ist oder nicht“ 456 umfassen und wie es oben für die Operation 406 (Prozess 400) erläutert ist, umfasst dies ein Bilden eines normierenden Konfidenzschätzungsgewichts für die CNN-Weißpunktschätzung, und dies kann eine Normierungsfunktion einbeziehen, die die Konfidenzschätzwerte des Konfidenzkartenkanals normiert, und in einem Beispiel wird sowohl das Mittel als auch die Standardabweichung der Konfidenzkarte verwendet und in einer Form wird das Mittel durch die Standardabweichung dividiert, um das CNN-Gewicht zu berechnen. Andernfalls könnten andere Berechnungen mit den Konfidenzkartenwerten verwendet werden, um das Konfidenzschätzungsgewicht zu bestimmen.
  • Der Prozess 450 kann ein „Bereitstellen eines Basisweißpunkts, der einen Anteil der CNN-Weißpunktschätzung in Abhängigkeit von der bestimmten Genauigkeit enthält, was Alternativen von 0 Prozent der CNN-Weißpunktschätzung, wobei nichts von der CNN-Weißpunktschätzung den Basisweißpunkt bildet, und 100% der CNN-Weißpunktschätzung, wobei die CNN-Weißpunktschätzung 100% des Basisweißpunkts bildet, umfasst“ 458 umfassen. Dies ist vorgesehen, um zu klarzustellen, dass zusätzlich zur proportionalen Verwendung der AWB-CNN- und Nicht-CNN-Algorithmen, Gewichte von 0 und 1 immer noch vorkommen können, was zu einer Situation führt, in der der CNN-Weißpunkt effektiv durch eines oder mehrere der Nicht-CNN-Algorithmus-Ergebnisse ersetzt wird oder umgekehrt. Im ersteren Fall kann der CNN-Algorithmus als die Haupt-AWB-Methode angesehen werden, während die Nicht-CNNs als die Ausweichmethode angesehen werden können.
  • Alternativ kann der CNN-Weißpunkt vollständig ersetzt werden, wenn das CNN-Gewicht WCNN innerhalb einer bestimmten Schwelle von 0 liegt (oder die Summe von wi innerhalb einer bestimmten Schwelle von 1 (oder 100 %) liegt), und das Gegenteil für die Verwendung von 100 % des CNN-Gewichts ohne Verwendung eines der Weißpunkte des Nicht-CNN-Algorithmus wahr sein, wenn das WCNN-Gewicht innerhalb einer bestimmten Schwelle von 1 liegt (oder die Summe von wi innerhalb einer bestimmten Schwelle von 0 liegt).
  • Unter Bezugnahme auf 5A ist ein beispielhafter Prozess 500 ein computerimplementiertes Verfahren zum automatischen Weißabgleich mittels eines neuronalen Netzes für Bildverarbeitung und insbesondere zum Verwenden eines Referenzraums zum Ausführen der CNN-AWB-Operationen. In der dargestellten Implementierung kann der Prozess 500 eine oder mehrere Operationen, Funktionen oder Aktionen enthalten, wie sie durch eine oder mehrere Operationen 502 bis 512 veranschaulicht sind, die geradzahlig nummeriert sind. In einem nicht einschränkenden Beispiel kann der Prozess 500 hierin gegebenenfalls unter Bezugnahme auf beispielhafte Bildverarbeitungsvorrichtungen (oder Netze) 100, 200 und 1900 von 1-2 und 19 beschrieben werden.
  • Ein Farbraumtransformationsprozess wird verwendet, um die Kamerainvarianz für die hierin beschriebenen CNN-AWB-Operationen zu erhöhen, wodurch die Qualität der Bilder für eine viel größere Vielfalt von Kamerasensortypen erhöht wird. Die Einzelheiten werden im Folgenden angegeben.
  • Der Prozess 500 kann ein „Erhalten von RGB-Roh-Sensorbilddaten mindestens eines Bildes“ 502 umfassen, wobei die Bilder erhalten werden, um eine AWB-Verarbeitung durchzuführen, wie es vorstehend bei den Prozessen 400 und 450 beschrieben ist.
  • Der Prozess 500 kann ein „Vorverarbeiten von Bilddaten“ 504 umfassen, was mindestens ein Durchführen einer Schwarzpegelsubtraktion, einer optionalen Linearisierung (z. B. für eine Farbtonkorrektur) und einer Farbschattierungskorrektur sowie andere Vorverarbeitungsoperationen, die vorstehend für die Prozesse 400 und 450 beschrieben sind, umfassen.
  • Der Prozess 500 kann ein „Transformieren von RGB-Sensorbilddaten in einen Referenzraum“ 506 umfassen. Insbesondere wird eine Kamerainvarianz durch Transformieren der Sensor-RGB-Bilddaten in einen Referenzfarbraum erreicht, der zum Ausführen der hier beschriebenen AWB-Operationen verwendet wird. Ein solcher Referenzraum kann ein Durchschnitt oder ein anderer repräsentativer Raum sein, der beispielsweise auf einem Durchschnitt oder anderen kombinierten Chromatizitätswerten basiert, und von mehreren verschiedenen Kamerasensoren sein, um die maximalen Unterschiede zwischen Farbräumen zu verringern, das der Unterschied von einem bestimmten Kamerasensor zu einem anderen bestimmten Kamerasensor groß genug sein kann, um Farbfehler zu verursachen. Daher ist eine gute Wahl für den Referenzfarbraum eine, die der durchschnittlichen Spektralantwort der Primärfarben typischer Kamerasensoren (z. B. ausgewählter Sony- und OVT-Kameramodule) entspricht, um große Konvertierungskoeffizienten zu vermeiden, die Fehler in hohem Maße verstärken können. Die vorverarbeiteten Eingangs-Sensor-RGB-Bilddaten können über eine 3x3-Matrixoperation in den Referenzraum transformiert werden: x ' = G x ( 4 ) = | wR ' / w R 0 0 0 wG ' / wG 0 0 0 wB ' / wB | ( 5 )
    Figure DE102019213184A1_0004
    Dabei sind solche Transformationsmatrizen bekannt. Die Matrix wird zum Berechnen von Transformationschromatizitätswerten eines Farbraums verwendet, was beispielsweise sRGB-Farbkorrekturmatrix- Berechnungen (sRGB-CCM-Berechnungen) ähnelt. Hierbei können die Berechnungen zumindest teilweise auf Spektralantworten der Primärfarben der Kamera und des Zielfarbraums basieren, die beispielsweise in einem Bereich von 380 nm bis einschließlich 780 nm in Intervallen von 5 nm abgetastet werden.
  • Der Prozess 500 kann dann ein „Durchführen von CNN-Algorithmen, um Weißpunktschätzungen im Referenzraum zu bestimmen“ 508 umfassen. Dies kann sowohl das Training des AWB als auch zumindest die Operation des AWB-CNN-Algorithmus zum Erhalten einer CNN-Weißpunktschätzung umfassen, obwohl die Nicht-CNN-AWB-Algorithmen auch in dem Referenzraum betrieben werde können, einschließlich der AWB-Operationen, nachdem die CNN-Weißpunktschätzung erstellt wurde, und durch die Erzeugung eines endgültigen Weißpunkts hindurch, falls dies gewünscht ist.
  • Der Prozess 500 kann ein „Durchführen einer inversen Transformation von Referenzraumbilddaten zurück zu Sensor-RGB-Bilddaten“ 510 umfassen, und schließlich kann eine inverse Matrix angewendet werden, um die Referenzraumbilddaten zurück zu Sensor-RGB-Bilddaten zu transformieren.
  • Danach kann der Prozess 500 ein „Bestimmen von Weißabgleichsverstärkungen basierend auf de-transformierten Weißpunktschätzungen“ 512 umfassen, wodurch die Chromatizitätswerte der restlichen Bilddaten basierend auf dem bestimmten endgültigen Weißpunkt angepasst werden (ob sie nun unter Verwendung nur der CNN-Algorithmen in dem Referenzraum und anschließendes Faktorisieren der Nicht-CNN-Algorithmen oder unter Verwendung sowohl der CNN- als auch der Nicht-CNN-Algorithmen mit Bestimmung in dem Referenzraum bestimmt werden).
  • Unter Bezugnahme auf 5B ist ein beispielhafter Prozess 550 ein computerimplementiertes Verfahren zum automatischen Weißabgleich für Bildverarbeitung und insbesondere zum Erzeugen einer Weißkarte für bestimmte AWB-Algorithmen, die Graubereiche eines Bildes definieren. In der dargestellten Implementierung kann der Prozess 550 eine oder mehrere Operationen, Funktionen oder Aktionen umfassen, wie sie durch eine oder mehrere Operationen 552 bis 564 veranschaulicht sind, die geradzahlig nummeriert sind. In einem nicht einschränkenden Beispiel kann der Prozess 550 hierin gegebenenfalls unter Bezugnahme auf beispielhafte Bildverarbeitungsvorrichtungen (oder Netze) 100, 200 und 1900 von 1-2 und 19 beschrieben werden.
  • Wie oben erwähnt kann eine Grausuche angewendet werden, wenn die Konfidenz des Basisweißpunkts CBASE aus der anfänglichen WP-Schätzungseinheit niedrig ist. Die Entscheidung, die Grausuche anzuwenden, kann vorgenommen werden, indem beispielsweise ein Anfangs- oder Basisweißpunktgewicht WBASE für den Anfangs- oder Basisweißpunkt CBASE berechnet wird (Gleichung 3) und das Gewicht WBASE mit einer Schwelle verglichen wird. Das Gewicht WBASE kann durch WBASE = max(wi), i ∈ {1,..., N} mit Variablen aus der obigen Gleichung (3) berechnet werden, mit der Ausnahme, dass wi auch WCNN umfasst. Wenn das Gewicht WBASE unter der Schwelle liegt, wird eine Grausuche angewendet, um den anfänglichen Weißpunkt zu verfeinern. Wenn also beispielsweise keines der Gewichte des CNN- und des Nicht-CNN-Algorithmus über der Schwelle liegt, wird die Grausuche angewendet. Es ist zu beachten, dass, da die Gewichte wi in Gleichung (3) so definiert wurden, dass ihre Summe 1 ist, die Konfidenz pro Algorithmus in diesem Teil ein nicht skaliertes Gewicht ist, das nicht unbedingt zu 1 summiert. Die Grausuche liefert einen verfeinerten Weißpunkt, der als letzter Weißpunkt verwendet werden könnte oder weiter verfeinert werden könnte, wie es nachstehend erwähnt wird.
  • Die Grausuche und andere herkömmliche AWB-Grundlinien-AWB-Algorithmen erfordern möglicherweise eine „Weißkarte“ als Kameracharakterisierung, die den Bereich der brauchbaren Weißpunkte unter Bezugnahme auf die linearisierten Rohbilddaten des Kamerasensors [R/G, B/G] unter realen Abbildungsbedingungen definiert. Die Weißkarte kann dann von einem Grausuchen-Unteralgorithmus verwendet werden, um Graubereiche eines bestimmten Bildes zu bestimmen, die dann von vollständigen graubasierten AWB-Algorithmen verwendet werden, um Weißpunktschätzungen zu erzeugen. Die Weißkarte kann auf der Basis der Spektralcharakteristik eines Kameramoduls berechnet werden, die erhalten werden kann, indem die Antwort des Kameramoduls bei verschiedenen sichtbaren Wellenlängen gemessen wird, beispielsweise von 380 nm bis 780 nm, und indem für jeden erzeugten Wellenlängenstimulus ein Rohbild aufgenommen wird. Dies wird erreicht, indem eine Monochromatorvorrichtung verwendet und dann die Spektralantwort für jede Farbkomponente aus diesen Rohbildern berechnet wird. In einem CIExy-Farbraum ist eine kamerasensorunabhängige Beleuchtungschromatizitätsverteilung definiert. Diese CIExy-Weißkarte kann durch Verwenden der Spektralcharakteristik des Kameramoduls und durch Schätzen einer spektralen Leistungsverteilung (SPD) für einzelne CIExy-Koordinaten, wie es hierin erläutert ist, in eine kameraabhängige Chromatizitätsebene konvertiert werden. Dies reduziert die Zeit und den Aufwand für die IQ-Abstimmung erheblich, wie es nachstehend beschrieben ist.
  • Um diese Aufgaben zu erfüllen, kann der Prozess 550 ein „Erhalten von Bilddaten mindestens eines Bildes“ 552 umfassen und dies kann ein Erhalten von Rohbilddaten umfassen, die noch nicht vorverarbeitet sind. Dies kann auch in einer Kalibrierungsphase der Kamera oder des Kameraprodukts erfolgen, beispielsweise in einer Rechenvorrichtung einschließlich eines Smartphones. Die Kalibrierungsphase kann beispielsweise stattfinden, bevor eine Kamera an Verbraucher verkauft wird.
  • Unter Bezugnahme auf 6 kann die Weißkarte auf kameraunabhängige Weise in der üblichen CIE-1931-xy-Chromatizitätsebene definiert werden, indem die hellgrauen oberen und unteren Grenzen 602 und 604 auf dem ebenen Graphen 600 über und unter der schwarzen Planck-Ortslinie (Schwarzkörperstrahler-Ortslinie) 606 abgebildet werden. Einige stark chromatische Lichtquellen wie Niederdruck-Natriumdampflampen wurden in dieser Weißkarte absichtlich weggelassen, um eine übermäßige Beeinflussung der Grenzorte zu vermeiden. Die allgemeinen Graugrenzen und insbesondere die Grenzpunkte (BPs), die die Graugrenze definieren, müssen zur Verwendung zum Festlegen der Graubereiche für einen Kamerasensor in den [R/G,B/G]-Farbraum der Kamera konvertiert werden.
  • Die anfängliche Konvertierung von der CIExy-Chromatizitätsebene zu Kamera-[R/G,B/G] kann durch Erzeugen von Kandidaten-Spektralleistungsverteilungen (Kandidaten-SPDs) für die Grenzpunkte der CIExy-Weißkarte und Verwenden der Spektralcharakteristik {SR, SG, SB}, um die entsprechenden Sensor-RGB-Werte wie folgt zu berechnen, erfolgen:
  • Um Graugrenzen im Kamera-[R/G,B/G]-Raum zu bestimmen, kann der Prozess 550 ein „Bestimmen der korrelierten Farbtemperatur (CCT) von Graugrenzpunkten“ 554 umfassen. Somit wird für jeden Grenzpunkt xyBP in der CIE-xy-Chromatizitätsebene zunächst eine korrelierte Farbtemperatur CCTBP berechnet. Dies erfolgt durch Auftragen von xy-Koordinaten der Punkte in der CIE-xy-Chromatizitätsebene und Lesen der angezeigten CCTs, die nach bekannten Formeln auf der Ebene festgelegt sind.
  • Der Prozess 550 kann dann ein „Bestimmen der CCT-Spektralleistungsverteilung (CCT-SPD) basierend auf der CCT“ 556 umfassen. Insbesondere wird bei gegebener CCTBp die SPDCCT basierend auf dem CIE-Tageslichtmodell (für >4000 K) oder dem Schwarzkörperstrahlermodell (<4000 K) berechnet, auch unter Vorgabe eines glatten Übergangs zwischen den beiden Modellen in der Nähe von 4000 K. Dies sind allgemein bekannte Gleichungen zur Berechnung der SPD auf der Basis der CCT für Tageslicht und für Schwarzkörperstrahler und sie finden sich beispielsweise in G. Wyszecki und WSStiles, „Color Science", 2. Auflage, Hoboken, NJ: Wiley 2000.
  • Der Prozess 550 kann ein „Bestimmen der entsprechenden CIE-1931-xy-Koordinate basierend auf der SPDCCT558 umfassen. Hier wird die entsprechende CIE-1931-xy aus der SPDCCT (bezeichnet mit xyCCT) berechnet und dies wird durch SPD-zu-CIExy-Konvertierung erreicht, beispielsweise in dem Werkzeug Matlab OptProp. Die Konvertierung kann durchgeführt werden, indem die CIE X-, Y-, Z-Basisfunktionen mit der SPD multipliziert werden und die resultierenden X, Y und Z berechnet werden (wodurch die SPD als Funktion der Wellenlänge integriert wird) und dann x und y berechnet werden.
  • Der Prozess 550 kann ein „Bestimmen der Grenzpunkt-SPD (BP-SPD) basierend auf der Gewichtung von SPDCCT mit XYZ-Basisfunktionen zum Verschieben der entsprechenden CIE-1931-xy-Koordinate von CCT zu BP“ 560 umfassen. Dies wird durch einen Fehlerfunktionsoptimierer gelöst. Die Fehlerfunktion ist der euklidische Abstand zwischen dem ursprünglichen xyBP und dem aktuellen xyBP, der der aktuellen SPDBP entspricht. Die Parameter, die während der Optimierung geändert werden, sind die Gewichte für die verschiedenen XYZ-Basisfunktionen. Sobald die Differenz klein genug ist, kommt der Optimierer zu dem Schluss, dass die richtige SPDBP erreicht wurde. Somit wird der SPDBP des Grenzpunkts berechnet, indem von SPDCCT ausgegangen wird und die SPD mit XYZ-Basisfunktionen gewichtet wird, um das entsprechende CIE-1931-xy von xyCCT nach xyBP zu verschieben. Nach der Berechnung der SPDBP kann das entsprechende Sensor-RGB wie folgt berechnet werden: X = λ = 380 780 S X ( λ ) S P D B P ( λ ) , X { R , G , B }
    Figure DE102019213184A1_0005
    Dabei ist S die oben erwähnte Spektralcharakteristik {SR, SG, SB} und λ ist die Wellenlänge.
  • Der Prozess 550 kann optional ein „Erweitern der Weißkarte durch Hinzufügen eines Satzes von SPDs, um Lichtquellen abzudecken, die nicht durch den ersten Satz von SPDBP abgedeckt sind“ 562 umfassen, und dies wird durch Hinzufügen der SPDs dieser zusätzlichen Lichtquellen zu der Liste von SPDs für das Konvertieren in [R/G,B/G] zusätzlich zu den SPDBP-SPDS erreicht. Dies sollte die SPDs mindestens aller CIE-F-Serien-Fluoreszenzlichtquellen und eines repräsentativen Satzes von LED-Lichtquellen umfassen, um die von SPDBP-SPDS gut abgedeckten Lichtquellen für Tageslicht und Schwarzkörper zu ergänzen. Für einige Kamerasensoren kann es insbesondere an der unteren Grenze zu streng sein, einige fluoreszierende Lichtquellen mit sehr spitzen SPDs abzudecken, die eine sehr grünliche Beleuchtungs-Chromatizität erzeugen. Daher kann die Weißkarte basierend auf einem zusätzlichen Satz von SPDs, die diese Lichtquellentypen abdecken, weiter erweitert werden (hauptsächlich relevant für grünlich fluoreszierende Lichtquellen, die sich bei einigen Kamerasensoren stärker in grünlicher Beleuchtungsrichtung erstrecken).
  • Der Prozess 550 kann ein „Verwenden von Spektralcharakteristiken von BP-SPDs zum Bestimmen von Sensor-RGB-Werten“ 564 umfassen und dies liefert die Weißkarte in dem Kamera-RGB-Farbraum. Insbesondere werden SPDBP für jeden oder einzelne CIExy-Weißkarten-Grenzpunkte bestimmt, wodurch eine Weißkarte aus den SPDs gemäß Gleichung (6) gebildet wird, und die resultierende Weißkarte ist in Kamera-RGB in einer [R/G,B/G]-Chromatizitätsebene spezifiziert.
  • Bei einer Form kann dann ein Grausuchalgorithmus durchgeführt werden, der den anfänglichen Weißpunkt (oder Basis-Weißpunkt) verfeinert und einen endgültigen genauen Weißpunkt liefert. Ein solcher Algorithmus wird von Nikkanen, J. T., „Color Constancy by Characterization of Illumination Chromaticity“, Optical Engineering, 50(5), 057204 (2011) offenbart. Die End-WB-Schätzungseinheit 120 (1) kann dann den endgültigen Weißpunkt weiter verfeinern, indem verschiedene Algorithmen auf Basis von Gedächtnisfarben und bevorzugten Farbwiedergaben verwendet werden, die den Weißpunkt noch modifizieren können.
  • Die sich ergebende Weißkarte deckt Tageslicht/Himmelslicht und glühende Arten von Lichtquellen und viele andere Lichtquellen, deren Chromatizität nahe an der Planck-Ortslinie oder an der CIE-Tageslichtortslinie liegt (selbst wenn ihre SPD weit von den verwendeten SPDs entfernt ist), korrekt ab. In 7-9 (Graphen 700, 800 und 900) sind Weißkarten für die drei Kameras, die nachstehend getestet wurden, in einem linearisierten Rohfarbraum [R/G, B/G], der automatisch aus der generischen CIE-1931-xy-Weißkarte erzeugt wurde, dargestellt.
  • Testergebnisse
  • Eine vorab erstellte Datenbank wurde beim Trainieren, Validieren und Testen von Kameras verwendet, um die CNN-Leistungsfähigkeit sowie die Kamera- und Szeneninvarianz zu testen. Gegenwärtig enthält die Datenbank Tausende von vielseitigen Innen- und Außenaufnahmen, die in einer Reihe von Ländern auf der ganzen Welt zu verschiedenen Jahres- und Tageszeiten unter Verwendung von drei verschiedenen Kameras mit unterschiedlichen Spektralempfindlichkeiten aufgenommen wurden, wie sie in dem Graphen der spektralen Leistungsverteilung 1000 von 10A gezeigt ist. Ein R/G-B/G-Farbraumgraph 1050 (10B) zeigt, wie diese unterschiedlichen Spektralempfindlichkeiten zu unterschiedlichen Weißpunkten für die gleichen beispielhaften Lichtquellen führen. Der üblicherweise verwendete Winkelfehler der obigen Gleichung (1) zwischen den geschätzten Beleuchtungsschätzungen und den Feldwirklichkeits-Beleuchtungsschätzungen wurde als die Fehlermetrik verwendet. Dieselben Szenen wurden gleichzeitig mit jeder der drei Kameras aufgenommen. Daher unterscheidet sich nur die Kamera, um ein Testen der Kamerainvarianz unabhängig von der Szeneninvarianz zu ermöglichen.
  • Unter Bezugnahme auf die 11-18 veranschaulichen die Bilder 1100 bis 1800 verschiedene Größen von Winkelfehlern, um eine bessere Vorstellung davon zu geben, was die Fehlergrößen angeben, und um die Auswirkung der IQ-Abstimmung von verschiedenen Größen von Fehlern zu veranschaulichen. Die Bilder 1100 bis 1400 zeigen die Feldwirklichkeit, während die entsprechenden Bilder 1500 bis 1800 die Winkelfehlerbilder zeigen. Die Bilder stammen aus der für die Experimente verwendeten Datenbank. Der Algorithmus, der diese Fehler verursachte, ist ein Beispiel für einen konventionellen AWB-Algorithmus aus der Wissenschaft ohne Abstimmung. Mit anderen Worten werden Metriken wie DeltaE2000 normalerweise nicht für AWB-Vergleiche auf Algorithmusebene verwendet, so dass die subjektiven IQ-Abstimmungsentscheidungen der Farbkonvertierung keinen Einfluss auf das Ergebnis haben und sich die Tests nur auf die Genauigkeit des Weißpunkts konzentrieren können. Dies kann in Tests durchgeführt werden, bei denen der Weißpunkt bekannt sein kann, d. h. nicht, wenn endgültige Kameravorrichtungen als Black Box getestet werden.
  • Als grobe Richtlinie bedeutet ein Fehler unter 3° gute Genauigkeit und ist ein Fehler, der wahrscheinlich keinen merklichen Farbfehler verursacht, wohingegen ein Fehler über 5° wahrscheinlich einen merklichen Farbfehler verursacht. Die wahrgenommene subjektive Auswirkung auf die Farbqualität in einem bestimmten Bild hängt von verschiedenen Faktoren wie etwa der verwendeten Farbkonvertierung (Koeffizientengrößen und mögliche Farbsättigungserhöhung), dem Bildinhalt (wichtige Gedächtnisfarben oder nicht), Beobachterpräferenzen usw. ab.
  • Versuche wurden durchgeführt, bei denen der CNN-Algorithmus allein und mit Nicht-CNN-Algorithmen unter Verwendung des hier beschriebenen Gewichtungsverfahrens angewendet wurde und beides wurde mit einem herkömmlichen Algorithmus verglichen. Eine Reduzierung der Anzahl der Bilder mit schwerwiegenden Fehlern hat die deutlichste Auswirkung auf die IQ für Endanwender. Es wurde herausgefunden, dass das CNN alleine immer noch mehr Fehler als herkömmliche Algorithmen aufweisen kann, aber wenn die Konfidenzschätzung gemäß den vorliegenden Verfahren für die Kombination der CNN- und Nicht-CNN-Algorithmen verwendet wird, so dass CNN nur verwendet wird, wenn es stark ist, dann zeigt das Verfahren eine deutliche Reduzierung des Anteils der schwerwiegenden Fehler. Eine gute Verbesserung wird auch für die Kamera in dem hierin offenbarten Prozess der spektralen Charakterisierung erzielt. Dies zeigt, dass mit einem völlig neuen Kameramodul sehr gute Ergebnisse mit geringem Aufwand erzielt werden können, und zwar ohne den langwierigen Aufwand, der herkömmlicherweise erforderlich ist, um eine ausreichende Vielseitigkeit für den CNN-Datensatz zu erzielen, um qualitativ hochwertige Ergebnisse zu erzielen und die Weißkarten-Abstimmungen zu erzeugen.
  • In Bezug auf die oben beschriebenen Prozesse können einer oder mehrere der Operationen der Prozesse (oder des Netzes) von 2 und 4A-5B als Antwort auf Befehle durchgeführt werden, die von einem oder mehreren Computerprogrammprodukten geliefert werden. Solche Programmprodukte können Signalträgermedien umfassen, die Befehle bereitstellen, die, wenn sie beispielsweise von einem Prozessor ausgeführt werden, die hierin beschriebene Funktionalität bieten können. Die Computerprogrammprodukte können in einer beliebigen Form von einem oder mehreren maschinenlesbaren Medien bereitgestellt werden. So kann beispielsweise ein Prozessor, der einen oder mehrere Prozessorkerne enthält, eine oder mehrere der Operationen der hier beschriebenen beispielhaften Prozesse als Antwort auf Programmcode und/oder Befehle oder Befehlssätze ausführen, die von einem oder mehreren Computern oder maschinenlesbaren Medien an den Prozessor vermittelt werden. Im Allgemeinen kann ein maschinenlesbares Medium Software in Form von Programmcode und/oder Befehlen oder Befehlssätzen vermitteln, die veranlassen können, dass eine der Vorrichtungen und/oder Systeme wie hierin beschrieben arbeitet. Das maschinen- oder computerlesbare Medium kann ein nichttransitorisches Element oder Medium sein, beispielsweise ein nichttransitorisches computerlesbares Medium, und kann mit jedem der oben erwähnten Beispiele oder anderen Beispielen verwendet werden, solange es an sich kein transitorisches Signal umfasst. Es umfasst andere Elemente als ein Signal an sich, die Daten vorübergehend in einer „transitorischen“ Art und Weise halten können, wie z. B. RAM und so weiter.
  • Wie in jeder hierin beschriebenen Implementierung verwendet bezieht sich der Begriff „Modul“ auf eine beliebige Kombination von Softwarelogik, Firmwarelogik und/oder Hardwarelogik, die dazu ausgelegt ist, die hierin beschriebene Funktionalität bereitzustellen. Die Software kann als Softwarepaket, Code und/oder Befehlssatz oder Befehle verkörpert sein, und „Hardware“, wie sie in einer hierin beschriebenen Implementierung verwendet wird, kann beispielsweise einzeln oder in beliebiger Kombination festverdrahtete Schaltungen, programmierbare Schaltungen, Zustandsmaschinenschaltungen und/oder Firmware, die Befehle speichert, die von einer programmierbaren Schaltung ausgeführt werden, umfassen. Die Module können zusammen oder einzeln als Schaltungen ausgeführt sein, die Teil eines größeren Systems sind, beispielsweise eine integrierte Schaltung (IC), ein Ein-Chip-System (SoC) usw. Beispielsweise kann ein Modul in einer Logikschaltungsanordnung zur Implementierung der hier diskutierten Codiersysteme mittels Software, Firmware oder Hardware verkörpert sein.
  • Wie er in einer hierin beschriebenen Implementierung verwendet wird, bezieht sich der Begriff „Logikeinheit“ auf eine beliebige Kombination von Firmware-Logik und/oder Hardware-Logik, die dazu ausgelegt ist, die hierin beschriebene Funktionalität bereitzustellen. Die „Hardware“, wie sie in einer hierin beschriebenen Implementierung verwendet wird, kann zum Beispiel einzeln oder in beliebiger Kombination festverdrahtete Schaltungen, programmierbare Schaltungen, Zustandsmaschinenschaltungen und/oder Firmware, die Befehle speichert, die von programmierbaren Schaltungen ausgeführt werden, umfassen. Die Logikeinheiten können zusammen oder einzeln als Schaltungsanordnung ausgeführt sein, die Teil eines größeren Systems ist, beispielsweise eine integrierte Schaltung (IC), ein Ein-Chip-System (SoC) usw. Beispielsweise kann eine Logikeinheit in einer Logikschaltungsanordnung für die Implementierungsfirmware oder -hardware der hier diskutierten Codierungssysteme ausgeführt sein. Fachleute werden erkennen, dass Operationen, die von Hardware und/oder Firmware ausgeführt werden, alternativ mittels Software implementiert werden können, die als Softwarepaket, Code und/oder Befehlssatz oder Befehle verkörpert sein kann, und auch erkennen, dass die Logikeinheit auch einen Softwareabschnitt verwenden kann, um ihre Funktionalität zu implementieren.
  • Wie er in jeder hierin beschriebenen Implementierung verwendet wird, kann sich der Begriff „Komponente“ auf ein Modul oder eine Logikeinheit beziehen, so wie diese Begriffe oben beschrieben wurden. Dementsprechend kann sich der Begriff „Komponente“ auf eine beliebige Kombination von Softwarelogik, Firmwarelogik und/oder Hardwarelogik beziehen, die dazu ausgelegt ist, die hierin beschriebene Funktionalität bereitzustellen. Fachleute werden beispielsweise erkennen, dass Operationen, die von Hardware und/oder Firmware ausgeführt werden, alternativ mittels eines Softwaremoduls implementiert werden können, das als Softwarepaket, Code und/oder Befehlssatz verkörpert sein kann, und auch erkennen, dass eine Logikeinheit auch einen Softwareabschnitt verwenden kann, um ihre Funktionalität zu implementieren.
  • Unter Bezugnahme auf 19 ist ein beispielhaftes Bildverarbeitungssystem 1900 gemäß zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet. In verschiedenen Implementierungen kann das beispielhafte Bildverarbeitungssystem 1900 eine Abbildungsvorrichtung 1902 aufweisen, um erfasste Bilddaten zu bilden oder zu empfangen. Dies kann auf verschiedene Arten implementiert sein. In einer Form kann das Bildverarbeitungssystem 1900 daher eine Digitalkamera oder eine andere Bilderfassungsvorrichtung sein und die Abbildungsvorrichtung 1902 kann in diesem Fall die Kamera-Hardware und die Software, das Modul oder die Komponente des Kamerasensors sein. In anderen Beispielen kann das Bildverarbeitungssystem 1900 eine Abbildungsvorrichtung 1902 aufweisen, die eine Kamera enthält oder sein kann, und die Logikmodule 1904 können mit der Abbildungsvorrichtung 1902 zur weiteren Verarbeitung der Bilddaten aus der Ferne kommunizieren oder auf andere Weise kommunikationstechnisch gekoppelt sein.
  • In jedem Fall kann eine solche Technologie eine Kamera wie etwa ein Digitalkamerasystem, eine spezielle Kameravorrichtung oder ein Bildtelefon umfassen, egal ob eine Standbild- oder Videokamera oder eine Kombination aus beiden. Somit kann die Abbildungsvorrichtung 1902 in einer Form Kamera-Hardware und -Optik mit einem oder mehreren Sensoren sowie Steuerungen für Autofokus, Zoom, Blende, ND-Filter, automatische Belichtung, Blitz und Aktor umfassen. Diese Steuerungen können Teil eines Sensormoduls oder einer Komponente 1906 zum Betreiben des Sensors sein. Die Sensorkomponente 1906 kann Teil der Abbildungsvorrichtung 1902 sein oder kann Teil der logischen Module 1904 oder beider sein. Eine solche Sensorkomponente kann verwendet werden, um Bilder für einen Sucher zu erzeugen und Standbilder oder Videos aufzunehmen. Die Abbildungsvorrichtung 1902 kann auch eine Linse, einen Bildsensor mit einem RGB-Bayer-Farbfilter, einen analogen Verstärker, einen A/D-Umsetzer, andere Komponenten zum Umsetzen von einfallendem Licht in ein digitales Signal und dergleichen und/oder Kombinationen davon aufweisen. Das digitale Signal kann hier auch als Rohbilddaten bezeichnet werden.
  • Andere Formen umfassen eine Abbildungsvorrichtung vom Kamerasensortyp oder dergleichen (beispielsweise eine Webcam oder einen Webcam-Sensor oder einen anderen Bildsensor vom Typ komplementärer Metall-Oxid-Halbleiter (CMOS)) ohne die Verwendung einer Rot-Grün-Blau-Tiefenkamera (RGB-Tiefenkamera) und/oder einer Mikrofon-Anordnung, um festzustellen, wer spricht. Der Kamerasensor kann neben dem rollenden Verschluss auch andere Arten von elektronischen Verschlüssen unterstützen, wie beispielsweise den globalen Verschluss und viele andere Verschlusstypen. In anderen Beispielen kann eine RGB-Tiefenkamera und/oder eine Mikrofonanordnung zusätzlich oder alternativ zu einem Kamerasensor verwendet werden. In einigen Beispielen kann die Abbildungsvorrichtung 1902 mit einer Blickverfolgungskamera versehen sein. Die Abbildungsvorrichtung 1902 kann auch einen Linsenaktor oder eine Linsensteuerung 1908 aufweisen, die eine Linse und einen Linsentreiber oder eine Treiberlogik aufweist, die Befehle zum Bewegen der Linse empfängt und/oder einen elektrischen Strom zum Bewegen der Linse anlegt.
  • In dem dargestellten Beispiel können die Logikmodule 1904 die 3A-Komponente 1910 umfassen, die wiederum eine AF-Komponente 1918, eine Komponente für automatischen Weißabgleich (AWB-Komponente) 1912 und eine Komponente zur automatischen Belichtungssteuerung (AEC-Komponente) 1917 umfassen kann. Die 3A-Komponenteneinheit 1910 kann auch andere Komponenten wie beispielsweise eine Linsenschattierungskorrekturkomponente und eine Lichtquellenschätzungseinheit aufweisen, die hier nicht gezeigt sind. Die AWB-Komponente 1912 kann eine Vorverarbeitungseinheit 1940 aufweisen, die die oben erwähnten Aufgaben ausführt, und kann optional eine Referenzraumeinheit 1942 umfassen, die wie oben beschrieben betrieben wird, um die Kamerainvarianz zu erhöhen. Die AWB-Komponente 1912 kann zudem eine AWB-CNN-Einheit 1944 mit einer Trainingseinheit 1946, die von der physischen Vorrichtung 1902 entfernt sein kann und aus der Ferne offline arbeiten kann, wenn sie nicht physisch an der Vorrichtung 1900/1902 ausgeführt wird, und eine AWB-Nicht-CNN-Einheit sowie eine AWB-NN-Gewichtungs-und-Entscheidungs-Einheit 1950, die dazu dient, die oben erläuterte erhöhte Szeneninvarianz zu bieten, aufweisen. Eine Blitzeinheit 1952 und eine Grausucheinheit 1954 sind zur weiteren Verfeinerung eines Basisweißpunkts bereitgestellt und wie oben beschrieben kann die Grausucheinheit 1954 optional Weißkarten aus einer Kalibrierungseinheit 1958 empfangen, die eine Weißkarteneinheit 1960 verwendet, die dazu ausgelegt ist, die Effizienz der IQ-Abstimmung zu steigern, wie es oben ausführlich beschrieben ist. Eine End-WB-Einheit 1956 liefert endgültige Weißpunkte sowie eine CCT und andere Anwendungen 1962, um Bilder wie ebenfalls oben beschrieben zu verarbeiten und anzuzeigen. Die Aufgaben, die von diesen Einheiten ausgeführt werden, sind oben beschrieben, wobei die Beschreibung der Aufgabe oder ähnlicher Einheiten, die die Aufgaben ausführen, dem Namen der Einheit hier bei der Vorrichtung 1900 entspricht oder diesem zugeordnet ist. Die 3A-Komponenteneinheit 1910 kann von einem oder mehreren Prozessoren 1920 betrieben werden oder sogar ganz oder teilweise darin angeordnet sein und diese können einen oder mehrere ISPs 1922 (oder DSPs) und/oder einen oder mehrere Beschleuniger neuronaler Netze (NNAs) 1926 umfassen können, um die Operationen auszuführen. Die Logikmodule 1904 können kommunikationstechnisch mit den Komponenten der Abbildungsvorrichtung 1902 gekoppelt sein, um Rohbilddaten zu empfangen. In diesen Fällen wird angenommen, dass die Logikmodule 1904 als von der Abbildungsvorrichtung getrennt betrachtet werden. Dies muss nicht so sein und die Logikmodule können auch als Teil der Abbildungsvorrichtung angesehen werden.
  • Das Bildverarbeitungssystem 1900 kann einen oder mehrere Prozessoren 1920, die einen dedizierten Bildsignalprozessor (ISP) 1922 wie beispielsweise den Intel Atom umfassen können, Speicher 1924, die AWB-Algorithmusdaten und Bilddaten in verschiedenen Formen und Versionen enthalten können oder auch nicht, eine oder mehrere Anzeigen 1928 zum Bereitstellen von Bildern 1930, einen Codierer 1932 und eine Antenne 1934 aufweisen. In einer beispielhaften Implementierung kann das Bildverarbeitungssystem 1900 die Anzeige 1928, mindestens eine Prozessor 1920, der mit der Anzeige kommunikationstechnisch gekoppelt ist, einen Speicher 1924, der kommunikationstechnisch mit dem Prozessor gekoppelt, aufweisen, um die hier beschriebenen Operationen wie oben erläutert auszuführen. Der Codierer 1932 und die Antenne 1934 können bereitgestellt sein, um die modifizierten Bilddaten zur Übertragung an andere Vorrichtungen, die das Bild anzeigen oder speichern können, zu komprimieren und um alle erforderlichen Daten zur Unterstützung der Komprimierung/Dekomprimierung bereitzustellen. Es versteht sich, dass das Bildverarbeitungssystem 1900 auch einen Decodierer zum Empfangen und Decodieren von Bilddaten zur Verarbeitung durch das System 1900 umfassen kann (oder der Codierer 1932 einen Decodierer umfassen kann). Andernfalls kann das verarbeitete Bild 1930 auf der Anzeige 1928 angezeigt werden oder in dem Speicher 1924 gespeichert werden. Wie dargestellt kann jede dieser Komponenten in der Lage sein, miteinander und/oder mit Teilen der Logikmodule 1904 und/oder der Abbildungsvorrichtung 1902 zu kommunizieren. Somit können die Prozessoren 1920 kommunikationstechnisch sowohl mit der Abbildungsvorrichtung 1902 als auch mit den Logikmodulen 1904 zum Betreiben dieser Komponenten gekoppelt sein. Obwohl das Bildverarbeitungssystem 1900, wie es in 19 gezeigt ist, bei einem Ansatz einen bestimmten Satz von Blöcken oder Aktionen, der bestimmten Komponenten oder Modulen zugeordnet ist, umfassen kann, können diese Blöcke oder Aktionen anderen Komponenten oder Modulen zugeordnet sein als der hier dargestellten bestimmten Komponente oder dem entsprechenden Modul.
  • Unter Bezugnahme auf 20 betreibt ein beispielhaftes System 2000 gemäß der vorliegenden Offenbarung einen oder mehrere Aspekte des hier beschriebenen Bildverarbeitungssystems. Aus der Natur der nachfolgend beschriebenen Systemkomponenten wird ersichtlich, dass solche Komponenten bestimmten Teilen oder Teilen des oben beschriebenen Bildverarbeitungssystems zugeordnet oder zum Betreiben derselben verwendet werden können. In verschiedenen Implementierungen kann das System 2000 ein Mediensystem sein, obwohl das System 2000 nicht auf diesen Kontext beschränkt ist. Beispielsweise kann das System 2000 in eine digitale Standbildkamera, eine digitale Videokamera, eine Mobilvorrichtung mit Kamera- oder Videofunktionen wie etwa ein Bildtelefon, eine Webcam, ein PC, einen Laptop-Computer, einen Ultra-Laptop-Computer, ein Tablet, ein Berührungsfeld, einen tragbaren Computer, einen handgetragenen Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Mobiltelefon/PDA-Kombination, einen Fernseher, eine intelligente Vorrichtung (z. B. ein Smartphone, ein Smart-Tablet oder ein intelligenter Fernseher), eine Mobilinternetvorrichtung (MID), eine Nachrichtenübermittlungsvorrichtung, eine Datenkommunikationsvorrichtung und so weiter integriert sein.
  • In verschiedenen Implementierungen umfasst das System 2000 eine Plattform 2002, die mit einer Anzeige 2020 gekoppelt ist. Die Plattform 2002 kann Inhalt aus einer Inhaltsvorrichtung wie etwa einer oder mehreren Inhaltsdienstvorrichtungen 2030 oder einer oder mehreren Inhaltslieferungsvorrichtungen 2040 oder ähnlichen Inhaltsquellen empfangen. Ein Navigationscontroller 2050 mit einer oder mehreren Navigationsfunktionen kann verwendet werden, um beispielsweise mit der Plattform 2002 und/oder der Anzeige 2020 zu interagieren. Jede dieser Komponenten wird nachstehend ausführlicher beschrieben.
  • In verschiedenen Implementierungen kann die Plattform 2002 eine beliebige Kombination eines Chipsatzes 2005, eines Prozessors 2010, eines Speichers 2012, eines Ablagespeichers 2014, eines Grafikuntersystems 2015, Anwendungen 2016 und/oder eines Funkgeräts 2018 umfassen. Der Chipsatz 2005 kann eine Kommunikation zwischen dem Prozessor 2010, dem Speicher 2012, dem Ablagespeicher 2014, dem Grafikuntersystem 2015, Anwendungen 2016 und/oder dem Funkgerät 2018 bereitstellen. Beispielsweise kann der Chipsatz 2005 einen Speicheradapter (nicht dargestellt) umfassen, der eine Kommunikation mit dem Speicher 2014 bereitstellen kann.
  • Der Prozessor 2010 kann als ein Prozessor für einen Computer mit komplexem Befehlssatz (CISC) oder einen Computer mit reduziertem Befehlssatz (RISC); mit dem x86-Befehlssatz kompatible Prozessoren, Mehrkernprozessoren oder irgendein anderer Mikroprozessoren oder einen andere Zentralverarbeitungseinheit (CPU) implementiert sein. In verschiedenen Implementierungen kann der Prozessor 2010 ein oder mehrere Zweikern-Prozessoren, ein oder mehrere Zweikern-Mobilprozessoren usw. sein.
  • Der Speicher 2012 kann als eine flüchtige Speichervorrichtung wie beispielsweise ein Direktzugriffsspeicher (RAM), ein dynamischer Direktzugriffsspeicher (DRAM) oder ein statischer RAM (SRAM) implementiert sein, ist jedoch nicht darauf beschränkt.
  • Der Ablagespeicher 2014 kann als eine nichtflüchtige Speichervorrichtung wie beispielsweise ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk, eine interne Speichervorrichtung, eine angeschlossene Speichervorrichtung, ein Flash-Speicher, ein batteriegesicherter SDRAM (synchroner DRAM) und/oder eine Speichervorrichtung, auf die über ein Netz zugegriffen werden kann, implementiert sein. In verschiedenen Implementierungen kann der Ablagespeicher 2014 eine Technologie zum Verbessern der Speicherleistung und des Schutzes für wertvolle digitale Medien, wenn beispielsweise mehrere Festplatten enthalten sind, umfassen.
  • Das Grafikuntersystem 2015 kann eine Verarbeitung von Bildern wie Standbildern oder Videos zur Anzeige einschließlich eines Vorschaubildschirms einer Kamera durchführen. Das Grafikuntersystem 2015 kann beispielsweise eine Grafikverarbeitungseinheit (GPU) oder eine Visualverarbeitungseinheit (VPU) sein. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Grafikuntersystem 2015 und die Anzeige 2020 kommunikationstechnisch zu koppeln. Beispielsweise kann die Schnittstelle eine hochauflösende Multimedia-Schnittstelle (HDMI), ein Anzeigeport, eine drahtlose HDMI und/oder ein drahtlose HD-kompatible Techniken sein. Das Grafikuntersystem 2015 kann in den Prozessor 2010 oder den Chipsatz 2005 integriert sein. In einigen Implementierungen kann das Grafikuntersystem 2015 eine eigenständige Karte sein, die kommunikationstechnisch mit dem Chipsatz 2005 gekoppelt ist. Das Grafikuntersystem 2015 und/oder der Prozessor 2010 können ein oder mehrere Bildsignalprozessoren (ISPs) umfassen oder sein. Das Grafikuntersystem und/oder der Prozessor 2010 können auch einen oder mehrere Beschleuniger neuronaler Netze umfassen.
  • Die hier beschriebenen Grafik- und/oder Videoverarbeitungstechniken können in verschiedenen Hardware-Architekturen implementiert werden. Beispielsweise können Grafik- und/oder Videofunktionalität in einen Chipsatz integriert sein. Alternativ kann ein diskreter Grafik- und/oder Videoprozessor verwendet werden. Als noch eine weitere Implementierung können die Grafik- und/oder Videofunktionen von einem Allzweckprozessor bereitgestellt werden, der einen Mehrkernprozessor umfasst. In weiteren Implementierungen können die Funktionen in einer Unterhaltungselektronikvorrichtung implementiert sein.
  • Das Funkgerät 2018 kann ein oder mehrere Funkgeräte enthalten, die in der Lage sind, Signale unter Verwendung verschiedener geeigneter drahtloser Kommunikationstechniken zu senden und zu empfangen. Solche Techniken können Kommunikation über ein oder mehrere drahtlose Netze beinhalten. Beispielhafte drahtlose Netze umfassen (ohne darauf beschränkt zu sein) drahtlose lokale Netze (WLANs), drahtlose persönliche Netze (WPANs), drahtlose Metropolregionsnetze (WMANs), Mobilfunknetze und Satellitennetze. Beim Kommunizieren über solche Netze kann das Funkgerät 2018 gemäß einem oder mehreren geeigneten Standards in beliebiger Version arbeiten.
  • In verschiedenen Implementierungen kann die Anzeige 2020 einen beliebigen Bildschirm oder eine beliebige Anzeige vom Fernsehtyp umfassen. Die Anzeige 2020 kann beispielsweise einen Computeranzeigebildschirm, ein Berührungsschirmanzeige, einen Videomonitor, eine fernsehähnliche Vorrichtung und/oder einen Fernseher umfassen. Die Anzeige 2020 kann digital und/oder analog sein. In verschiedenen Implementierungen kann die Anzeige 2020 eine holographische Anzeige sein. Die Anzeige 2020 kann auch eine transparente Oberfläche sein, die eine visuelle Projektion empfangen kann. Solche Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekten vermitteln. Beispielsweise können solche Projektionen eine visuelle Überlagerung für eine Anwendung für mobile erweiterte Realität (MAR-Anwendung) sein. Unter der Kontrolle einer oder mehrerer Softwareanwendungen 2016 kann die Plattform 2002 die Anwenderschnittstelle 2022 auf der Anzeige 2020 anzeigen.
  • In verschiedenen Implementierungen können das eine oder mehreren Inhaltsdienstvorrichtungen 2030 von jedem nationalen, internationalen und/oder unabhängigen Dienst gehostet und somit für die Plattform 2002 beispielsweise über das Internet zugänglich sein. Die eine oder mehreren Inhaltsdienstvorrichtungen 2030 können mit der Plattform 2002 und/oder der Anzeige 2020 gekoppelt sein. Die Plattform 2002 und/oder die eine oder mehreren Inhaltsdienstvorrichtungen 2030 können mit einem Netz 2060 gekoppelt sein, um Medieninformationen mit dem Netz 2060 auszutauschen (z. B. zu senden und/oder zu empfangen). Die eine oder mehreren Inhaltsliefervorrichtungen 2040 können auch mit der Plattform 2002 und/oder der Anzeige 2020 gekoppelt sein.
  • In verschiedenen Implementierungen können die eine oder mehreren Inhaltsdienstvorrichtungen 2030 einen Kabelfernsehkasten, einen PC, ein Netz, ein Telefon, internetfähige Vorrichtung oder ein Gerät, das digitale Informationen und/oder Inhalt liefern kann, und jede andere ähnliche Vorrichtung, die zu unidirektionaler oder bidirektionaler Kommunikation von Inhalt zwischen Inhaltsanbietern und Plattform 2002 und/oder Anzeige 2020 über das Netz 2060 oder direkt in der Lage ist, umfassen. Es versteht sich, dass der Inhalt unidirektional und/oder bidirektional zu und von einer der Komponenten in dem System 2000 und einem Inhaltsanbieter über das Netz 2060 übertragen werden kann. Beispiele für Inhalt können jegliche Medieninformationen umfassen, einschließlich beispielsweise Video, Musik, medizinische und spielbezogene Informationen und so weiter.
  • Die eine oder mehreren Inhaltsdienstvorrichtungen 2030 können Inhalt wie Kabelfernsehprogramme empfangen, die Medieninformationen, digitale Informationen und/oder anderen Inhalt umfassen. Beispiele für Inhaltsanbieter können Kabel- oder Satellitenfernsehen, Radio- oder Internet-Inhaltsanbieter sein. Die gegebenen Beispiele sollen Implementierungen gemäß der vorliegenden Offenbarung in keiner Weise einschränken.
  • In verschiedenen Implementierungen kann die Plattform 2002 Steuersignale von dem Navigationscontroller 2050 mit einer oder mehreren Navigationsfunktionen empfangen. Die Navigationsfunktionen des Controllers 2050 können beispielsweise verwendet werden, um mit der Anwenderschnittstelle 2022 zu interagieren. In Implementierungen kann der Navigationscontroller 2050 ein Zeigevorrichtung sein, die eine Computerhardwarekomponente (insbesondere eine Vorrichtung für die Schnittstelle mit dem Menschen) sein kann, die es einem Anwendet ermöglicht, räumliche (z. B. kontinuierliche und mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme wie etwa grafische Anwenderoberflächen (GUI) sowie Fernseher und Monitore ermöglichen es dem Anwender, den Computer oder Fernseher mit physischen Gesten zu steuern und Daten an ihn zu liefern.
  • Bewegungen der Navigationsfunktionen des Controllers 2050 können auf einer Anzeige (z. B. der Anzeige 2020) durch Bewegungen eines Zeigers, Cursors, Fokusrings oder anderer auf der Anzeige angezeigter visueller Indikatoren widergespiegelt werden. Beispielsweise können unter der Kontrolle von Softwareanwendungen 2016 die Navigationsfunktionen, die sich auf dem Navigationscontroller 2050 befinden, auf virtuelle Navigationsfunktionen abgebildet werden, die beispielsweise auf der Anwenderschnittstelle 2022 angezeigt werden. In Implementierungen kann der Controller 2050 keine separate Komponente sein, sondern kann in die Plattform 2002 und/oder die Anzeige 2020 integriert sein. Die vorliegende Offenbarung ist jedoch nicht auf die Elemente oder den hier gezeigten oder beschriebenen Kontext beschränkt.
  • In verschiedenen Implementierungen können Treiber (nicht gezeigt) eine Technologie aufweisen, die es Anwendern beispielsweise ermöglicht, die Plattform 2002 wie einen Fernseher nach dem anfänglichen Hochfahren sofort mit einem Knopfdruck ein- und auszuschalten, wenn sie aktiviert ist. Die Programmlogik kann es der Plattform 2002 ermöglichen, Inhalt zu Medienadaptern oder anderen Inhaltsdienstvorrichtungen 2030 oder Inhaltsliefervorrichtungen 2040 zu streamen, auch wenn die Plattform ausgeschaltet ist. Außerdem kann der Chipsatz 2005 Hardware und/oder Software-Unterstützung für beispielsweise 8.1-Surround- Ton und/oder hochauflösenden (7.1-) Surround-Ton aufweisen. Treiber können einen Grafiktreiber für integrierte Grafikplattformen umfassen. In Implementierungen kann der Grafiktreiber eine Grafikkarte für die Peripheriekomponenten-Express-Schnittstelle (PCI-Express-Grafikkarte) umfassen.
  • In verschiedenen Implementierungen können eine oder mehrere der in dem System 2000 gezeigten Komponenten integriert sein. Zum Beispiel können die Plattform 2002 und die eine oder mehreren Inhaltsdienstvorrichtungen 2030 integriert sein oder die Plattform 2002 und die eine oder mehreren Inhaltsliefervorrichtungen 2040 können integriert sein oder beispielsweise die Plattform 2002, die eine oder mehreren Inhaltsdienstvorrichtungen 2030 und die eine oder mehreren Inhaltsliefervorrichtungen 2040 können integriert sein. In verschiedenen Implementierungen können die Plattform 2002 und die Anzeige 2020 eine integrierte Einheit sein. Die Anzeige 2020 und die eine oder mehreren Inhaltsdienstvorrichtungen 2030 können beispielsweise integriert sein oder die Anzeige 2020 und die eine oder mehreren Inhaltsliefervorrichtungen 2040 können beispielsweise integriert sein. Diese Beispiele sollen die vorliegende Offenbarung nicht einschränken.
  • In verschiedenen Implementierungen kann das System 2000 als ein drahtloses System, ein drahtgebundenes System oder eine Kombination aus beidem implementiert sein. Wenn das System 2000 als ein drahtloses System implementiert ist, kann es Komponenten und Schnittstellen umfassen, die zur Kommunikation über ein gemeinsam genutztes drahtloses Medium geeignet sind, wie beispielsweise eine oder mehrere Antennen, Sender, Empfänger, Sendeempfänger, Verstärker, Filter, Steuerlogik usw. Ein Beispiel für gemeinsam genutzte Funkmedien kann Abschnitte eines drahtlosen Spektrums wie etwa das HF-Spektrum usw. umfassen. Wenn das System 1900 als drahtgebundenes System implementiert ist, kann es Komponenten und Schnittstellen umfassen, die zur Kommunikation über drahtgebundene Kommunikationsmedien geeignet sind, wie z. B. eine Netzschnittstellenkarte (NIC), einen Plattencontroller, einen Videocontroller, einen Audiocontroller und dergleichen. Beispiele für drahtgebundene Kommunikationsmedien können Drähte, Kabel, Metallleitungen, Leiterplatten (PCB), Rückwandplatinen, Vermittlungs-Fabrics, Halbleitermaterial, Drähte mit verdrillten Aderpaaren, Koaxialkabel, Lichtwellenleiter usw. umfassen.
  • Die Plattform 2002 kann einen oder mehrere logische oder physische Kanäle zum Übermitteln von Informationen einrichten. Die Informationen können Medieninformationen und Steuerinformationen umfassen. Medieninformationen können sich auf alle Daten beziehen, die für einen Anwender bestimmten Inhalt repräsentieren. Beispiele für Inhalt können beispielsweise Daten aus einer Sprachkonversation, einer Videokonferenz, einem Streaming-Video, einer E-Mail-Nachricht („E-Mail“), einer Sprachnachricht, alphanumerischen Symbolen, Grafiken, Bildern, Videos, Texten usw. sein. Daten aus einer Sprachkonversation können beispielsweise Sprachinformationen, Ruheperioden, Hintergrundgeräusche, Komfortrauschen, Töne usw. sein. Steuerinformationen können sich auf Daten beziehen, die Befehle, Anweisungen oder Steuerwörter für ein automatisiertes System darstellen. Beispielsweise können Steuerinformationen verwendet werden, um Medieninformationen durch ein System zu leiten oder einen Knoten anzuweisen, die Medieninformationen auf eine vorbestimmte Weise zu verarbeiten. Die Implementierungen sind jedoch nicht auf die Elemente oder den in 20 gezeigten oder beschriebenen Kontext beschränkt.
  • Unter Bezugnahme 21 und wie vorstehend beschrieben können die Systeme 1900 und 2000 in unterschiedlichen physischen Stilen oder Formfaktoren ausgeführt sein, was eine Vorrichtung 2100 mit kleinem Formfaktor umfasst, die gemäß zumindest einigen Implementierungen der vorliegenden Offenbarung ausgelegt ist. So können die Systeme 1900 oder 2000 in einigen Beispielen über die Vorrichtung 2100 implementiert sein. In anderen Beispielen können andere Geräte oder Systeme oder Teile davon über die Vorrichtung 2100 implementiert sein. In verschiedenen Implementierungen kann die Vorrichtung 2100 beispielsweise als mobile Rechenvorrichtung mit Drahtlosfähigkeiten implementiert sein. Eine mobile Rechenvorrichtung kann sich auf eine beliebige Rechenvorrichtung beziehen, die ein Verarbeitungssystem und eine mobile Energiequelle oder -versorgung wie beispielsweise eine oder mehrere Batterien aufweist.
  • Beispiele einer mobilen Rechenvorrichtung können einen PC, einen Laptop-Computer, einen Ultra-Laptop-Computer, ein Tablet, ein Berührungsfeld, einen tragbaren Computer, einen handgetragenen Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Mobiltelefon/PDA-Kombination, eine intelligente Vorrichtung (z. B. ein Smartphone, ein Smart-Tablet oder einen intelligenten Fernseher), eine Mobilinternetvorrichtung (MID), eine Nachrichtenübermittlungsvorrichtung, eine Datenkommunikationsvorrichtung, Kameras usw. umfassen
  • Beispiele für eine mobile Rechenvorrichtung können auch Computer umfassen, die dazu ausgelegt sind, von einer Person getragen zu werden, wie beispielsweise Handgelenkcomputer, Fingercomputer, Ringcomputer, Brillencomputer, Gürtelschnallencomputer, Armbandcomputer, Schuhcomputer, Bekleidungscomputer und andere tragbare Computer. In verschiedenen Implementierungen kann eine mobile Rechenvorrichtung beispielsweise als ein Smartphone implementiert sein, das Computeranwendungen sowie Sprachkommunikation und/oder Datenkommunikation ausführen kann. Obwohl einige Implementierungen mit einer mobilen Rechenvorrichtung beschrieben sein können, die beispielsweise als Smartphone implementiert ist, ist zu beachten, dass andere Implementierungen auch unter Verwendung anderer drahtloser mobiler Rechenvorrichtungen implementiert sein können. Die Implementierungen sind in diesem Zusammenhang nicht beschränkt.
  • Wie es in 21 gezeigt ist, kann die Vorrichtung 2100 ein Gehäuse mit einer Vorderseite 2101 und einer Rückseite 2102 umfassen. Die Vorrichtung 2100 umfasst eine Anzeige 2104, eine Eingabe-/Ausgabe-Vorrichtung (E/A-Vorrichtung) 2106 und eine integrierte Antenne 2108. Die Vorrichtung 2100 kann auch Navigationsfunktionen 2112 umfassen. Die E/A- Vorrichtung 2106 kann eine beliebige geeignete E/A- Vorrichtung zum Eingeben von Informationen in eine mobile Rechenvorrichtung umfassen. Beispiele für die E/A-Vorrichtung 2106 können eine alphanumerische Tastatur, ein numerisches Tastenfeld, ein Berührungsfeld, Eingabetasten, Knöpfe, Schalter, Mikrofone, Lautsprecher, eine Spracherkennungsvorrichtung und Software usw. umfassen. Informationen können auch über das Mikrofon 201 in die Vorrichtung 2100 eingegeben oder durch ein Spracherkennungsvorrichtung digitalisiert werden. Wie gezeigt kann die Vorrichtung 2100 eine Kamera 2105 (z. B. mit einer Linse, einer Blende und einem Bildsensor) und einen Blitz 2110 umfassen, die in die Rückseite 2102 (oder an anderer Stelle) der Vorrichtung 2100 integriert ist.
  • Verschiedene Implementierungen können unter Verwendung von Hardwareelementen implementiert werden, einschließlich der oben angegebenen, die als Beschleuniger neuronaler Netze (NNAs) implementiert sind. Andernfalls können die Implementierungen, wenn es nicht spezifiziert ist, als Hardwareelemente, Softwareelemente oder eine Kombination von beiden implementiert sein. Beispiele für andere Hardwareelemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktoren usw.), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikvorrichtungen (PLD), Digitalsignalprozessoren (DSP), feldprogrammierbare Gatteranordnungen (FPGA), Logikgatter, Register, Halbleiterbauelemente, Chips, Mikrochips, Chipsätze usw. sein. Beispiele für Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API), Befehlssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon umfassen. Die Bestimmung, ob eine Implementierung unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann in Abhängigkeit von einer beliebigen Anzahl von Faktoren wie beispielsweise der gewünschten Rechenrate, den Leistungsaufnahmepegeln, den Wärmetoleranzen, dem Verarbeitungszyklusbudget, den Eingangsdatenraten, den Ausgangsdatenraten, den Speicherressourcen, den Datenbusgeschwindigkeiten und anderen Design- oder Leistungsbeschränkungen variieren.
  • Ein oder mehrere Aspekte mindestens einer Implementierung können durch repräsentative Befehle implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors repräsentiert, und die, wenn sie von einer Maschine gelesen werden, die Maschine dazu veranlassen, Logik zum Durchführen der hierin beschriebenen Techniken herzustellen. Solche Darstellungen, die als „IP-Kerne“ bekannt sind, können auf einem konkreten maschinenlesbaren Medium gespeichert und an verschiedene Kunden oder Fertigungsstätten geliefert werden, um in die Fertigungsmaschinen geladen zu werden, die die Logik oder den Prozessor tatsächlich herstellen.
  • Obwohl bestimmte hierin dargelegte Merkmale unter Bezugnahme auf verschiedene Implementierungen beschrieben wurden, soll diese Beschreibung nicht in einem einschränkenden Sinne ausgelegt werden. Daher wird angenommen, dass verschiedene Abwandlungen der hier beschriebenen Implementierungen sowie andere Implementierungen, die für Fachleute auf dem Gebiet, auf das sich die vorliegende Offenbarung bezieht, offensichtlich sind, unter den Gedanken und Umfang der vorliegenden Offenbarung fallen.
  • Die folgenden Beispiele beziehen sich auf weitere Implementierungen.
  • In einem Beispiel umfasst ein computerimplementiertes Verfahren zum automatischen Weißabgleich für Bildverarbeitung Folgendes: Erhalten von Bilddaten mindestens eines Bildes; Eingeben der Bilddaten in mindestens ein faltendes neuronales Netz (CNN), das dazu ausgelegt ist, mindestens eine Weißpunktschätzung mit automatischem Weißabgleich (AWB-Weißpunktschätzung) zu liefern, und mindestens einen Chromatizitätskartenkanal und mindestens einen Konfidenzkartenkanal mit Konfidenzschätzwerten, die als Gewichte verwendet werden sollen, die auf Werte des einen oder der mehreren Chromatizitätskanäle anzuwenden sind, aufweist; Bestimmen eines normierenden Konfidenzkartengewichts zumindest teilweise basierend auf den einzelnen Konfidenzschätzwerten; und Bestimmen einer Basisweißpunktschätzung, was ein Verwenden sowohl einer gewichteten Weißpunktschätzung des CNN, gewichtet durch das normierende Konfidenzkartengewicht, und einer gewichteten Weißpunktschätzung mindestens eines Nicht-CNN-AWB-Algorithmus umfasst.
  • Eine weitere Implementierung des Verfahrens, wobei das Bestimmen eines normierenden Konfidenzkartengewichts ein Normieren der Konfidenzschätzwerte durch Teilen eines Durchschnitts der Konfidenzschätzwerte durch eine Standardabweichung der Konfidenzschätzwerte umfasst; wobei die Weißpunktschätzungen proportioniert werden, indem die Summe aus (1) dem Gewicht des CNN und (2) der Summe der Gewichte der Nicht-CNN-Algorithmen gleich 1 gesetzt wird; wobei das Bestimmen einer Basisweißpunktschätzung ein Gewichten der Weißpunktschätzung des CNN und der Nicht-CNN-Algorithmen jeweils mit ihren eigenen Gewichten und anschließend ein Summieren der gewichteten Weißpunktschätzungen umfasst; wobei das eine oder die mehreren einzelnen Gewichte des Nicht-CNN-Algorithmus zumindest teilweise auf einer Farbskalengröße für das mindestens eine Bild basieren, so dass das Gewicht desto größer ist, je größer die Farbskala ist; wobei das eine oder die mehreren einzelnen Gewichte des Nicht-CNN-Algorithmus unter Verwendung eines separaten neuronalen Netzes zum Bewerten von Konfidenzwerten für den Nicht-CNN-Algorithmus bestimmt werden; wobei der mindestens eine Nicht-CNN-AWB-Algorithmus mit mindestens einem Algorithmus von maxRGB, Grey-World, Shades-of-Grey, Grey-Edge, Gamut-Mapping, Farbkorrelation verwandt ist; wobei die Basisweißpunktschätzung vollständig aus der CNN-Weißpunktschätzung gebildet wird, während die Nicht-CNN-Algorithmen ein Gewicht von null oder nahe null haben, und die Basisweißpunktschätzung vollständig aus einem oder mehreren Nicht-CNN-Algorithmen gebildet wird, wenn der CNN-Algorithmus ein Gewicht von null oder nahe null hat.
  • Das Verfahren kann auch ein Betreiben einer adaptiven Zusammenlegungsschicht des CNN umfassen, was ein Gewichten mindestens eines der Chromatizitätskartenkanäle unter Verwendung der Konfidenzschätzwerte als Gewichtungswerte, die auf den Chromatizitätskartenkanal angewendet werden; Ausgeben einer Weißpunktschätzung aus dem CNN unter Verwendung der resultierenden gewichteten Werte des Chromatizitätskartenkanals; und Verwenden der Weißpunktschätzung, um Chromatizitätswerte für das mindestens eine Bild festzulegen, umfasst; wobei das Gewichten mindestens eines der Chromatizitätskartenkanäle ein Multiplizieren der Konfidenzschätzwerte mit entsprechenden Chromatizitätswerten Element für Element umfasst, um die Konfidenzschätzwerte als Gewichte anzuwenden; wobei das Betreiben der adaptiven Zusammenlegungsschicht ein Erhalten eines einzelnen repräsentativen Wertes von jedem Chromatizitätskanal als Wert einer Basisweißpunktschätzung des CNN umfasst, wobei der einzelne repräsentative Wert das Mittel der gewichteten Chromatizitätswerte eines Chromatizitätskanals ist; Betreiben von zwei aufeinanderfolgenden tiefen Faltungsschichten für automatischen Weißabgleich (AWB-Faltungsschichten) des CNN, die eine erste tiefe AWB-Faltungsschicht, die das CNN auf 64 Kanäle reduziert, und eine zweite tiefe AWB-Faltungsschicht, die die 64 Kanäle auf vier Kanäle, die einen der Konfidenzkartenkanäle und drei Chromatizitätskartenkanäle umfassen, die jeweils für eine RGB-Farbraum-Primärfarbe dienen, reduziert, wobei die vier Kanäle an die adaptive Zusammenlegungsschicht geliefert werden; Transformieren der Bilddaten des mindestens einen Bildes aus sensorspezifischen Bilddaten in einen Referenzraum; Betreiben mindestens des CNN in dem Referenzraum; und Transformieren resultierender Weißpunktschätzungen aus dem Referenzraum zurück in sensorspezifische Bilddaten; Erzeugen einer Weißkarte brauchbarer Weißpunkte, um eine Grausuche durchzuführen, um Graubereiche eines Bildes zu bestimmen, wobei das Erzeugen umfasst: Erhalten von Offline-Bilddaten, die eine Beleuchtungschromatizitätsverteilung für einen Kamerasensor in einem CIExy-Farbraum angeben; Erzeugen einer Spektralcharakteristik des Kamerasensors unter Verwendung der Beleuchtungschromatizitätsverteilung; Schätzen einer spektralen Leistungsverteilung (SPD) für einzelne CIExy-Koordinaten unter Verwendung der Spektralcharakteristik; und Bilden mindestens einer Weißkarte brauchbarer Weißpunkte unter Verwendung der spektralen Leistungsverteilung.
  • Bei noch einer weiteren Implementierung umfasst ein computerimplementiertes System zum automatischen Weißabgleich für Bildverarbeitung mindestens eine Kamera, die mindestens ein Bild einer Videosequenz oder eines Standbildes aufnimmt; eine Anzeige; mindestens einen Speicher, der Bilddaten des mindestens einen Bildes speichert; und mindestens einen Prozessor, der kommunikationstechnisch mit der Anzeige und dem Speicher gekoppelt ist, wobei der Prozessor dazu ausgelegt ist, folgendermaßen zu arbeiten; Erhalten von Bilddaten des mindestens einen Bildes; Eingeben der Bilddaten in mindestens ein faltendes neuronales Netz (CNN), das dazu ausgelegt ist, mindestens eine CNN-Weißpunktschätzung für automatischen Weißabgleich (AWB-CNN-Weißpunktschätzung) auszugeben, und mindestens einen Chromatizitätskartenkanal und mindestens einen Konfidenzkartenkanal mit Konfidenzschätzwerten, die als Gewichte verwendet werden sollen, die auf Werte des mindestens einen Chromatizitätskanals anzuwenden sind, aufweist; Bestimmen unter Verwendung der Konfidenzschätzwerte, ob die CNN-Weißpunktschätzung ausreichend genau ist oder nicht; und Bereitstellen eines Basisweißpunkts, der einen Anteil der CNN-Weißpunktschätzung in Abhängigkeit von der bestimmten Genauigkeit enthält, einschließlich 0 Prozent der CNN-Weißpunktschätzung, wobei nichts von der CNN-Weißpunktschätzung den Basisweißpunkt bildet, und 100 % der CNN-Weißpunktschätzung, wobei die CNN-Weißpunktschätzung 100 % des Basisweißpunkts bildet.
  • Das System in einem weiteren Beispiel, wobei der mindestens eine Prozessor dazu ausgelegt ist, alle drei Alternativen zum Liefern des Basisweißpunkts bereitzustellen: (a) nur basierend auf der CNN-Weißpunktschätzung, (b) basierend auf mindestens einer Nicht-CNN-AWB-Weißpunktschätzung, die unter Verwendung eines AWB-Algorithmus erzeugt wurde, ohne Berücksichtigung der CNN-Weißpunktschätzung, und (c) einen Anteil der CNN-Weißpunktschätzung und einen Anteil mindestens einer Nicht-CNN-AWB-Weißpunktschätzung; wobei der Basisweißpunkt durch Proportionieren mehrerer Weißpunktschätzungen gebildet wird, wenn festgestellt wird, dass die CNN-Weißpunktschätzung ungenau ist; wobei das Bestimmen, ob die CNN-Weißpunktschätzung ausreichend genau sein wird oder nicht, ein Berechnen des Basisweißpunkts unter Verwendung sowohl einer gewichteten CNN-Weißpunktschätzung, die die Genauigkeit der CNN-Weißpunktschätzung angibt, als auch einer gewichteten Weißpunktschätzung mindestens eines Nicht-CNN-AWB-Algorithmus umfasst, wobei die gewichtete Weißpunktschätzung des CNN ein normierendes Konfidenzkartengewicht ist, das durch Normieren der Konfidenzschätzwerte erhalten wird, wobei sowohl ein Durchschnitt der Konfidenzschätzwerte als auch eine Standardabweichung der Konfidenzschätzwerte verwendet wird, wobei das normierende Konfidenzkartengewicht berechnet wird, indem der Durchschnitt der Konfidenzschätzwerte durch die Standardabweichung der Konfidenzschätzwerte dividiert wird.
  • Bei einem Ansatz enthält mindestens ein computerlesbares Medium mehrere Befehle, die als Antwort auf die Ausführung auf einer Rechenvorrichtung veranlassen, dass die Rechenvorrichtung folgendermaßen arbeitet: Erhalten von Offline-Bilddaten, die eine Beleuchtungschromatizitätsverteilung für einen Kamerasensor in einem CIExy-Farbraum angeben; Erzeugen einer Spektralcharakteristik des Kamerasensors unter Verwendung der Beleuchtungschromatizitätsverteilung; Schätzen einer spektralen Leistungsverteilung (SPD) für einzelne CIExy-Koordinaten unter Verwendung der Spektralcharakteristik; Bilden mindestens einer Weißkarte brauchbarer Weißpunkte unter Verwendung der spektralen Leistungsverteilung; und Verwenden der Weißkarte zum Bestimmen einer Weißpunktschätzung eines Bildes.
  • Die Befehle der Rechenvorrichtung bei anderen Ansätzen, wobei die Spektralcharakteristik des Kamerasensors durch Messen der Antwort des Kamerasensors bei verschiedenen sichtbaren Wellenlängen erzeugt wird; wobei die Befehle veranlassen, dass die Rechenvorrichtung arbeitet, indem sie Graugrenzpunkte (BPs) aus der Weißkarte durch Gewichten der korrelierten Farbtemperatur-SPDs (CCT-SPDs) mit XYZ-Basisfunktionen berechnet, um die entsprechende CIE-1931-xy-Koordinate von xyCCT zu xyBP zu verschieben; wobei die Befehle veranlassen, dass die Rechenvorrichtung folgendermaßen arbeitet: Eingeben von Laufzeit-Bilddaten in mindestens ein faltendes neuronales Netz (CNN), das dazu ausgelegt ist, mindestens eine Weißpunktschätzung mit automatischem Weißabgleich (AWB-Weißpunktschätzung) zu liefern, und mindestens einen Chromatizitätskanal und mindestens einen Konfidenzkartenkanal mit Konfidenzschätzwerten, die als Gewichte zum Anwenden auf Werte des mindestens einen Chromatizitätskanals verwendet werden sollen, aufweist; Bestimmen eines einzelnen normierenden Konfidenzkartengewichts zumindest teilweise basierend auf den einzelnen Konfidenzschätzwerten; und Bestimmen einer Basisweißpunktschätzung, was ein Verwenden von (a) der Schätzung des einzelnen normierenden Konfidenzkartengewichts und des Weißpunkts des CNN und (b) einer Gewichts- und Weißpunktschätzung mindestens eines Nicht-CNN-AWB-Algorithmus umfasst, wobei die Basisweißpunktschätzung unter Verwendung der Weißkarte verfeinert wird, um den Weißpunkt zu bilden.
  • In einem weiteren Beispiel kann mindestens ein maschinenlesbares Medium mehrere Befehle enthalten, die als Antwort auf die Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung dazu veranlassen, das Verfahren gemäß einem der vorstehenden Beispiele auszuführen.
  • In einem weiteren Beispiel kann eine Vorrichtung Mittel zum Durchführen der Verfahren gemäß einem der vorstehenden Beispiele umfassen.
  • Die vorstehenden Beispiele können spezielle Merkmalskombinationen umfassen. Die vorstehenden Beispiele sind jedoch in dieser Hinsicht nicht beschränkt und in verschiedenen Implementierungen können die vorstehenden Beispiele ein Ausführen einer Teilmenge solcher Merkmale, ein Ausführen einer anderen Reihenfolge solcher Merkmale, ein Ausführen einer anderen Kombination solcher Merkmale und/oder ein Ausführen zusätzlicher Merkmale neben den ausdrücklich aufgeführten Merkmalen umfassen. Beispielsweise können alle Merkmale, die hierin unter Bezugnahme auf beispielhafte Verfahren beschrieben sind, unter Bezugnahme auf beispielhafte Vorrichtungen, beispielhafte Systeme und/oder beispielhafte Elemente implementiert werden und umgekehrt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Anil Baslamisli, „Camera Sensor Invariant Auto White Balance Algorithm Weighting“, Masterarbeit, Tampere University of Technology (2016); Yanlin Quian et al. „Deep structured-output regression learning for computational color constancy“, 23rd International Conference on Pattern Recognition (ICPR), S. 1899-1904 [0009]
    • Cancun (2016) (hierin als Yanlin-1 bezeichnet); Yanlin Quian et al. „Recurrent Color Constancy“, IEEE International Conference on Computer Vision (ICCV), S. 5459-5467 [0009]
    • Venedig (2017) (hierin als Yanlin-2 bezeichnet); Caglar Aytekin et al. „Deep multi-resolution color constancy“, IEEE International Conference on Image Processing (ICIP), Beijing (2017) (hierin als Aytekin-1 bezeichnet) [0009]
    • Caglar Aytekin et al. „A Dataset for Camera Independent Color Constancy“ IEEE Transactions on Image Processing, Vol.27, Nr.2, (Feb. 2018) [0009]
    • G. Wyszecki und WSStiles, „Color Science“, 2. Auflage, Hoboken, NJ: Wiley 2000 [0063]

Claims (25)

  1. Computerimplementiertes Verfahren zum automatischen Weißabgleich für Bildverarbeitung, das Folgendes umfasst: Erhalten von Bilddaten mindestens eines Bildes; Eingeben der Bilddaten in mindestens ein faltendes neuronales Netz (CNN), das dazu ausgelegt ist, mindestens eine Weißpunktschätzung mit automatischem Weißabgleich (AWB-Weißpunktschätzung) zu liefern, und mindestens einen Chromatizitätskartenkanal und mindestens einen Konfidenzkartenkanal mit Konfidenzschätzwerten, die als Gewichte zum Anwenden auf Werte des mindestens einen Chromatizitätskartenkanals verwendet werden sollen, aufweist; Bestimmen eines normierenden Konfidenzkartengewichts zumindest teilweise basierend auf den einzelnen Konfidenzschätzwerten; und Bestimmen einer Basisweißpunktschätzung, was ein Verwenden sowohl einer gewichteten Weißpunktschätzung des CNN, gewichtet durch das normierende Konfidenzkartengewicht, als auch einer gewichteten Weißpunktschätzung mindestens eines Nicht-CNN-AWB-Algorithmus umfasst.
  2. Verfahren nach Anspruch 1, wobei das Bestimmen eines normierenden Konfidenzkartengewichts ein Normieren der Konfidenzschätzwerte durch Teilen eines Durchschnitts der Konfidenzschätzwerte durch eine Standardabweichung der Konfidenzschätzwerte umfasst.
  3. Verfahren nach Anspruch 1, wobei die Weißpunktschätzungen proportioniert werden, indem die Summe aus (1) dem Gewicht des CNN und (2) der Summe der Gewichte der Nicht-CNN-Algorithmen gleich 1 gesetzt wird.
  4. Verfahren nach Anspruch 1, wobei das Bestimmen einer Basisweißpunktschätzung ein Gewichten der Weißpunktschätzung des CNN und der Nicht-CNN-Algorithmen jeweils mit ihren eigenen Gewichten und anschließend ein Summieren der gewichteten Weißpunktschätzungen umfasst.
  5. Verfahren nach Anspruch 1, wobei das eine oder die mehreren einzelnen Gewichte des Nicht-CNN-Algorithmus zumindest teilweise auf einer Farbskalengröße für das mindestens eine Bild basieren, so dass das Gewicht desto größer ist, je größer die Farbskala ist.
  6. Verfahren nach Anspruch 1, wobei das eine oder die mehreren einzelnen Gewichte des Nicht-CNN-Algorithmus unter Verwendung eines separaten neuronalen Netzes zum Bewerten von Konfidenzwerten für den Nicht-CNN-Algorithmus bestimmt werden.
  7. Verfahren nach Anspruch 1, wobei der mindestens eine Nicht-CNN-AWB-Algorithmus mit mindestens einem Algorithmus von maxRGB, Grey-World, Shades-of-Grey, Grey-Edge, Gamut-Mapping und Farbkorrelation verwandt ist.
  8. Verfahren nach Anspruch 1, wobei die Basisweißpunktschätzung vollständig aus der CNN-Weißpunktschätzung gebildet wird, während die Nicht-CNN-Algorithmen ein Gewicht von null oder nahe null haben, und die Basisweißpunktschätzung vollständig aus einem oder mehreren Nicht-CNN-Algorithmen gebildet wird, wenn der CNN-Algorithmus ein Gewicht von null oder nahe null hat.
  9. Verfahren nach Anspruch 1, das Folgendes umfasst: Betreiben einer adaptiven Zusammenlegungsschicht des CNN, was ein Gewichten mindestens eines der Chromatizitätskartenkanäle unter Verwendung der Konfidenzschätzwerte als Gewichtungswerte, die auf den Chromatizitätskartenkanal angewendet werden, umfasst; Ausgeben einer Weißpunktschätzung aus dem CNN unter Verwendung der resultierenden gewichteten Werte des Chromatizitätskartenkanals; und Verwenden der Weißpunktschätzung, um Chromatizitätswerte für das mindestens eine Bild festzulegen.
  10. Verfahren nach Anspruch 9, wobei das Gewichten mindestens eines der Chromatizitätskartenkanäle ein Multiplizieren der Konfidenzschätzwerte mit entsprechenden Chromatizitätswerten Element für Element umfasst, um die Konfidenzschätzwerte als Gewichte anzuwenden.
  11. Verfahren nach Anspruch 9, wobei das Betreiben der adaptiven Zusammenlegungsschicht ein Erhalten eines einzelnen repräsentativen Wertes von jedem Chromatizitätskanal als Wert einer Basisweißpunktschätzung des CNN umfasst.
  12. Verfahren nach Anspruch 11, wobei der einzelne repräsentative Wert das Mittel der gewichteten Chromatizitätswerte eines Chromatizitätskanals ist.
  13. Verfahren nach Anspruch 9, das Folgendes umfasst: Betreiben von zwei aufeinanderfolgenden tiefen Faltungsschichten für automatischen Weißabgleich (AWB-Faltungsschichten) des CNN, die eine erste tiefe AWB-Faltungsschicht, die das CNN auf 64 Kanäle reduziert, und eine zweite tiefe AWB-Faltungsschicht, die die 64 Kanäle auf vier Kanäle, die einen der Konfidenzkartenkanäle und drei Chromatizitätskartenkanäle umfassen, die jeweils für eine RGB-Farbraum-Primärfarbe dienen, reduziert, wobei die vier Kanäle an die adaptive Zusammenlegungsschicht geliefert werden, umfassen.
  14. Verfahren nach Anspruch 1, das Folgendes umfasst: Transformieren der Bilddaten des mindestens einen Bildes aus sensorspezifischen Bilddaten in einen Referenzraum; Betreiben mindestens des CNN in dem Referenzraum; und Transformieren resultierender Weißpunktschätzungen aus dem Referenzraum zurück in sensorspezifische Bilddaten.
  15. Verfahren nach Anspruch 1, das ein Erzeugen einer Weißkarte brauchbarer Weißpunkte umfasst, um eine Grausuche durchzuführen, um Graubereiche eines Bildes zu bestimmen, wobei das Erzeugen umfasst: Erhalten von Offline-Bilddaten, die eine Beleuchtungschromatizitätsverteilung für einen Kamerasensor in einem CIExy-Farbraum angeben; Erzeugen einer Spektralcharakteristik des Kamerasensors unter Verwendung der Beleuchtungschromatizitätsverteilung; Schätzen einer spektralen Leistungsverteilung (SPD) für einzelne CIExy-Koordinaten unter Verwendung der Spektralcharakteristik; und Bilden mindestens einer Weißkarte brauchbarer Weißpunkte unter Verwendung der spektralen Leistungsverteilung.
  16. Computerimplementiertes System zum automatischen Weißabgleich für Bildverarbeitung, das Folgendes umfasst: mindestens eine Kamera, die mindestens ein Bild einer Videosequenz oder eines Standbildes aufnimmt; eine Anzeige; mindestens einen Speicher, der Bilddaten des mindestens einen Bildes speichert; und mindestens einen Prozessor, der kommunikationstechnisch mit der Anzeige und dem Speicher gekoppelt ist, wobei der Prozessor dazu ausgelegt ist, folgendermaßen zu arbeiten: Erhalten von Bilddaten des mindestens einen Bildes; Eingeben der Bilddaten in mindestens ein faltendes neuronales Netz (CNN), das dazu ausgelegt ist, mindestens eine CNN-Weißpunktschätzung für automatischen Weißabgleich (AWB-CNN-Weißpunktschätzung) auszugeben, und mindestens einen Chromatizitätskartenkanal und mindestens einen Konfidenzkartenkanal mit Konfidenzschätzwerten, die als Gewichte zum Anwenden auf Werte des mindestens einen Chromatizitätskartenkanals verwendet werden sollen, aufweist; Bestimmen unter Verwendung der Konfidenzschätzwerte, ob die CNN-Weißpunktschätzung ausreichend genau ist oder nicht; und Bereitstellen eines Basisweißpunkts, der einen Anteil der CNN-Weißpunktschätzung in Abhängigkeit von der bestimmten Genauigkeit enthält, einschließlich 0 Prozent der CNN-Weißpunktschätzung, wobei nichts von der CNN-Weißpunktschätzung den Basisweißpunkt bildet, und 100 % der CNN-Weißpunktschätzung, wobei die CNN-Weißpunktschätzung 100 % des Basisweißpunkts bildet.
  17. System nach Anspruch 16, wobei der mindestens eine Prozessor dazu ausgelegt ist, alle drei Alternativen zum Liefern des Basisweißpunkts bereitzustellen: (a) nur basierend auf der CNN-Weißpunktschätzung, (b) basierend auf mindestens einer Nicht-CNN-AWB-Weißpunktschätzung, die unter Verwendung eines AWB-Algorithmus erzeugt wurde, ohne Berücksichtigung der CNN-Weißpunktschätzung, und (c) einen Anteil der CNN-Weißpunktschätzung und einen Anteil mindestens einer Nicht-CNN-AWB-Weißpunktschätzung.
  18. System nach Anspruch 16, wobei der Basisweißpunkt durch Proportionieren mehrerer Weißpunktschätzungen gebildet wird, wenn festgestellt wird, dass die CNN-Weißpunktschätzung ungenau ist.
  19. System nach Anspruch 16, wobei das Bestimmen, ob die CNN-Weißpunktschätzung ausreichend genau ist oder nicht, ein Berechnen des Basisweißpunkts unter Verwendung sowohl einer gewichteten CNN-Weißpunktschätzung, die die Genauigkeit der CNN-Weißpunktschätzung angibt, als auch einer gewichteten Weißpunktschätzung mindestens eines Nicht-CNN-AWB-Algorithmus umfasst.
  20. Verfahren nach Anspruch 19, wobei die gewichtete Weißpunktschätzung des CNN ein normierendes Konfidenzkartengewicht ist, das durch Normieren der Konfidenzschätzwerte erhalten wird, wobei sowohl ein Durchschnitt der Konfidenzschätzwerte als auch eine Standardabweichung der Konfidenzschätzwerte verwendet wird.
  21. System nach Anspruch 20, wobei das normierende Konfidenzkartengewicht berechnet wird, indem der Durchschnitt der Konfidenzschätzwerte durch die Standardabweichung der Konfidenzschätzwerte dividiert wird.
  22. Computerlesbares Medium bzw. computerlesbare Medien, die mehrere Befehle enthalten, die als Antwort auf ihre Ausführung auf einer Rechenvorrichtung veranlassen, dass die Rechenvorrichtung folgendermaßen arbeitet: Erhalten von Offline-Bilddaten, die eine Beleuchtungschromatizitätsverteilung für einen Kamerasensor in einem CIExy-Farbraum angeben; Erzeugen einer Spektralcharakteristik des Kamerasensors unter Verwendung der Beleuchtungschromatizitätsverteilung; Schätzen einer spektralen Leistungsverteilung (SPD) für einzelne CIExy-Koordinaten unter Verwendung der Spektralcharakteristik; Bilden mindestens einer Weißkarte brauchbarer Weißpunkte unter Verwendung der spektralen Leistungsverteilung; und Verwenden der Weißkarte zum Bestimmen einer Weißpunktschätzung eines Bildes.
  23. Medium nach Anspruch 22, wobei die Spektralcharakteristik des Kamerasensors durch Messen der Antwort des Kamerasensors bei verschiedenen sichtbaren Wellenlängen erzeugt wird.
  24. Maschinenlesbares Medium bzw. maschinenlesbare Medien, die mehrere Befehle enthalten, die als Antwort auf ihre Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung dazu veranlassen, das Verfahren nach einem der Ansprüche 1-15 auszuführen.
  25. Vorrichtung, die Mittel zum Durchführen des Verfahrens nach einem der Ansprüche 1-15 umfasst.
DE102019213184.0A 2018-10-02 2019-09-02 Verfahren und system zum automatischen weissabgleich auf basis von tiefem lernen Pending DE102019213184A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/150,153 US10791310B2 (en) 2018-10-02 2018-10-02 Method and system of deep learning-based automatic white balancing
US16/150,153 2018-10-02

Publications (1)

Publication Number Publication Date
DE102019213184A1 true DE102019213184A1 (de) 2020-04-02

Family

ID=65231263

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019213184.0A Pending DE102019213184A1 (de) 2018-10-02 2019-09-02 Verfahren und system zum automatischen weissabgleich auf basis von tiefem lernen

Country Status (2)

Country Link
US (1) US10791310B2 (de)
DE (1) DE102019213184A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11825209B2 (en) 2020-11-05 2023-11-21 Samsung Electronics Co., Ltd. Data pre-processing for cross sensor automatic white balance

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020098953A1 (en) * 2018-11-16 2020-05-22 Huawei Technologies Co., Ltd. Meta-learning for camera adaptive color constancy
CN111628946B (zh) * 2019-02-28 2021-10-26 华为技术有限公司 一种信道估计的方法以及接收设备
CN109961102B (zh) * 2019-03-30 2021-06-22 北京市商汤科技开发有限公司 图像处理方法、装置、电子设备及存储介质
WO2020215180A1 (zh) * 2019-04-22 2020-10-29 华为技术有限公司 图像处理方法、装置和电子设备
KR102082970B1 (ko) * 2019-04-29 2020-02-28 주식회사 루닛 기계학습을 위한 정규화 방법 및 그 장치
US20220207777A1 (en) * 2019-04-30 2022-06-30 Signify Holding B.V. Luminance distribution determination
DE102019209282A1 (de) * 2019-06-26 2020-12-31 Robert Bosch Gmbh Verfahren zum Erhalten einer Infrarotdarstellung einer Bildsituation und Recheneinheit, System und Computerprogramm zu dessen Durchführung
CN110363151B (zh) * 2019-07-16 2023-04-18 中国人民解放军海军航空大学 基于双通道卷积神经网络虚警可控的雷达目标检测方法
CN112241935B (zh) * 2019-07-18 2023-05-26 杭州海康威视数字技术股份有限公司 图像处理方法、装置及设备、存储介质
KR102658688B1 (ko) * 2019-11-04 2024-04-17 엘지전자 주식회사 이미지 조도 향상을 위한 방법 및 장치
US11849264B2 (en) 2019-11-22 2023-12-19 Samsung Electronics Co., Ltd. Apparatus and method for white balance editing
CN110928552B (zh) * 2019-11-29 2021-07-16 联想(北京)有限公司 摄像模组的画质调控处理方法及系统
CN113747085B (zh) * 2020-05-30 2023-01-06 华为技术有限公司 拍摄视频的方法和装置
CN112333437B (zh) * 2020-09-21 2022-05-31 宁波萨瑞通讯有限公司 AI camera调试参数生成仪
CN114531578B (zh) * 2020-11-23 2023-11-07 华为技术有限公司 光源光谱获取方法和设备
US11924590B2 (en) * 2021-04-13 2024-03-05 Teledyne Flir Commercial Systems, Inc. Image color correction systems and methods
CN115514948B (zh) * 2021-06-07 2023-08-08 荣耀终端有限公司 图像调节方法以及电子设备
US11606544B2 (en) * 2021-06-08 2023-03-14 Black Sesame Technologies Inc. Neural network based auto-white-balancing
CN115633260A (zh) * 2021-08-12 2023-01-20 荣耀终端有限公司 一种色度信息的确定方法及相关电子设备
CN113676716B (zh) * 2021-08-23 2022-10-14 深圳创维-Rgb电子有限公司 白平衡控制方法、装置、终端设备以及存储介质
KR20230031580A (ko) * 2021-08-27 2023-03-07 삼성전자주식회사 복수의 이미지 센서를 포함한 영상 획득 장치 및 이를 포함하는 전자 장치
WO2023063979A1 (en) * 2021-10-15 2023-04-20 Zeku, Inc. Apparatus and method of automatic white balancing
CN114677291B (zh) * 2022-02-25 2023-05-12 荣耀终端有限公司 一种图像处理方法、装置及相关设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7576797B2 (en) * 2001-06-25 2009-08-18 Texas Instruments Incorporated Automatic white balancing via illuminant scoring autoexposure by neural network mapping
TW200632771A (en) * 2005-03-10 2006-09-16 Avisonic Technology Corp Automatic white balance method applicable for color digital image
JP4702635B2 (ja) * 2007-07-17 2011-06-15 富士フイルム株式会社 オートホワイトバランス補正値算出装置、方法およびプログラムならびに撮像装置
US8004566B2 (en) * 2008-02-13 2011-08-23 Qualcomm Incorporated Self calibration of white balance for a digital camera device using correlated color temperature data
JP2010178151A (ja) * 2009-01-30 2010-08-12 Brother Ind Ltd 画像処理装置、画像処理プログラム及び画像処理方法
US9756222B2 (en) * 2013-06-26 2017-09-05 Nvidia Corporation Method and system for performing white balancing operations on captured images
WO2015030705A1 (en) 2013-08-26 2015-03-05 Intel Corporation Automatic white balancing with skin tone correction for image processing
US9386289B2 (en) 2014-04-29 2016-07-05 Intel Corporation Automatic white balancing with chromaticity measure of raw image data
US9794540B2 (en) * 2015-04-17 2017-10-17 Google Inc. Hardware-based convolutional color correction in digital images
EP3449628B1 (de) * 2016-04-25 2022-12-14 Zhejiang Dahua Technology Co., Ltd Verfahren, systeme und medien zur weissabgleichsanpassung in bildern
US10757384B2 (en) * 2017-09-28 2020-08-25 Gopro, Inc. Desaturation control

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11825209B2 (en) 2020-11-05 2023-11-21 Samsung Electronics Co., Ltd. Data pre-processing for cross sensor automatic white balance

Also Published As

Publication number Publication date
US20190045163A1 (en) 2019-02-07
US10791310B2 (en) 2020-09-29

Similar Documents

Publication Publication Date Title
DE102019213184A1 (de) Verfahren und system zum automatischen weissabgleich auf basis von tiefem lernen
DE112018002228B4 (de) Konfigurierbare faltungsmaschine für verschachtelte kanaldaten
US11037278B2 (en) Systems and methods for transforming raw sensor data captured in low-light conditions to well-exposed images using neural network architectures
DE102018120304A1 (de) Verfahren und System zur Bildverzerrungkorrektur für Bilder, die durch Verwenden einer Weitwinkellinse aufgenommen werden
DE102019106252A1 (de) Verfahren und System für Lichtquellenschätzung zur Bildverarbeitung
US10614603B2 (en) Color normalization for a multi-camera system
WO2018018470A1 (zh) 一种去除图像噪声的方法、装置、设备及卷积神经网络
DE102018119625A1 (de) Reduzieren von strukturierten IR-Mustern bei der Stereoskopischen Tiefensensorbildgebung
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
US20130114894A1 (en) Blending of Exposure-Bracketed Images Using Weight Distribution Functions
DE202021102736U1 (de) Elektronische Vorrichtung, enthaltend eine Anzeige mit variabler Schirmgrösse
DE102016115292A1 (de) Verfahren und Vorrichtung zur automatischen Belichtungswerterfassung für High Dynamic Range Imaging
DE112018007730T5 (de) 3d objekterkennung unter verwendung von 3d konvolutionalen neuronalen netzen mit tiefenbasierten multiskalierungsfiltern
EP3381012B1 (de) Verfahren und system zur erzeugung eines ausgangsbildes aus einer vielzahl entsprechender eingangsbildkanäle
DE112017005207B4 (de) Verfahren zur Identifizierung von Lichtquellen, entsprechendes System und Computerprogrammprodukt
JP2021531571A (ja) 証明書画像抽出方法及び端末機器
CN108230407B (zh) 一种图像的处理方法和装置
DE102020200310A1 (de) Verfahren und System zur Dunstreduzierung für die Bildverarbeitung
DE102016122790A1 (de) Unterstützter automatischer Weißabgleich
DE102020133963A1 (de) Systeme und Verfahren zur Abbildrauschunterdrückung unter Verwendung von tiefen gefalteten Netzwerken
KR20210064193A (ko) 화상 처리 장치 및 화상 처리 방법, 그리고 프로그램
CN113822830A (zh) 基于深度感知增强的多曝光图像融合方法
DE102016121426A1 (de) Verfahren und Vorrichtung zum Interpolieren von Pixelfarben aus Farb- und panchromatischen Kanälen auf Farbkanäle
CN111062993A (zh) 色彩合并的作画图像处理方法、装置、设备及存储介质
Puthussery et al. Wdrn: A wavelet decomposed relightnet for image relighting

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: HGF EUROPE LLP, DE

Representative=s name: HGF EUROPE LP, DE