DE102022105650A1 - Erkennung von flicker-balken mit mehrfachbelichtungssensoren - Google Patents

Erkennung von flicker-balken mit mehrfachbelichtungssensoren Download PDF

Info

Publication number
DE102022105650A1
DE102022105650A1 DE102022105650.3A DE102022105650A DE102022105650A1 DE 102022105650 A1 DE102022105650 A1 DE 102022105650A1 DE 102022105650 A DE102022105650 A DE 102022105650A DE 102022105650 A1 DE102022105650 A1 DE 102022105650A1
Authority
DE
Germany
Prior art keywords
image
flicker
exposure
bars
flicker bars
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
DE102022105650.3A
Other languages
English (en)
Inventor
Hugh Phu Nguyen
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE102022105650A1 publication Critical patent/DE102022105650A1/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/70Circuitry for compensating brightness variation in the scene
    • H04N23/745Detection of flicker frequency or suppression of flicker wherein the flicker is caused by illumination, e.g. due to fluorescent tube illumination or pulsed LED illumination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/50Control of the SSIS exposure
    • H04N25/53Control of the integration time
    • H04N25/531Control of the integration time by controlling rolling shutters in CMOS SSIS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10141Special mode during image acquisition
    • G06T2207/10144Varying exposure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20224Image subtraction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Studio Devices (AREA)

Abstract

Mit Wechselstrom betriebene Lichtquellen können bewirken, dass Bilder, die mit einem Rolling-Shutter-Sensor aufgenommen werden, alternierende dunklere und hellere Bereiche enthalten, die als Flicker-Balken bekannt sind, da einige Sensorzeilen anderen Lichtintensitäten ausgesetzt werden als andere. Flicker-Balken können kompensiert werden, indem sie aus Bildern extrahiert werden, die mit Belichtungszeiten aufgenommen wurden, die sich zeitlich mindestens teilweise überschneiden. Aufgrund der Überschneidung können die Bilder voneinander subtrahiert werden, sodass der Szeneninhalt sich im Wesentlichen gegenseitig aufhebt und Flicker-Balken zurückbleiben. Die Bilder können für ein selbes Einzelbild sein, das durch mindestens einem Sensor aufgenommen wurde, wie z. B. verschiedene Belichtungszeiten für ein Einzelbild. Die Bilder, die zur Extraktion von Flicker-Balken verwendet werden, können zum Beispiel mit unterschiedlichen Belichtungszeiten aufgenommen werden, die einen gemeinsamen Startzeitpunkt haben, wie z. B. mit einem Mehrfachbelichtungssensor, bei dem die Lichtwerte während der Lichtintegration zu unterschiedlichen Zeiten ausgelesen werden. Zwei oder mehr Bilder, die für ein Einzelbild erfasst werden, können zur Flicker-Balkenextraktion verwendet werden, z. B. die zwei Bilder, die Flicker-Balken mit der größten Phasendifferenz enthalten.

Description

  • HINTERGRUND
  • Ein Rolling-Shutter-Sensor kann verwendet werden, um Licht für ein Bild zu erfassen, indem eine Szene entweder vertikal oder horizontal abgetastet wird, um im Zeitablauf verschiedene Zeilen des Sensors zu belichten. Wenn die Szene eine Lichtquelle enthält, deren Intensität sich im Laufe der Zeit, in der das Licht erfasst wird, verändert - wie z.B. eine Lichtquelle, die mit 50 Hz (Hertz)- oder 60 Hz-Wechselstrom betrieben wird - können einige Zeilen anderen Lichtintensitäten ausgesetzt werden als andere. Diese Ungleichheit in der Lichtintensität kann Flicker-Balkenbildung, bei der das Bild alternierende Balken aus helleren und dunkleren Bereichen enthält, oder andere visuellen Artefakte zur Folge haben. Flicker-Balkenbildung kann kompensiert werden, indem Flicker-Balken aus den Bildern extrahiert werden, die Schwingfrequenz der Lichtquelle (z. B. 50 oder 60 Hz Wechselstrom) anhand der extrahierten Flicker-Balken bestimmt wird und die Belichtungszeit des Sensors auf ein Vielfaches der halben Schwingfrequenz eingestellt wird.
  • Ein herkömmlicher Ansatz zur Extraktion von Flicker-Balken besteht darin, zwei aufeinanderfolgende Einzelbilder (Frames) voneinander zu subtrahieren. Wenn der Szeneninhalt sich zwischen den zwei Einzelbildern nicht ändert, hebt der Inhalt sich gegenseitig auf, während Flicker-Balken zurückbleiben, die das Ergebnis der Subtraktion der Flicker-Balken jedes Einzelbilds sind und in der Regel in beiden Einzelbildern an verschiedenen Stellen erscheinen. Doch wenn die Szene sich zwischen den zwei Einzelbildern ändert, wird das Subtraktionsergebnis den Inhalt enthalten, der mit den Flicker-Balken vermischt ist, was die Erkennung von Flicker-Balken erschwert. Wenn die zwei Einzelbilder zudem mit bestimmten Bildraten aufgenommen werden, sind die Flicker-Balken aus den zwei Einzelbilder in Phase, sodass sie sich gegenseitig aufheben und das Subtraktionsergebnis keinen Hinweis darauf enthält, ob die jeweiligen Einzelbilder Flicker-Balken enthalten. Dadurch können Flicker-Balken unerkannt bleiben, obwohl sie in den vom Sensor erzeugten Bildern vorhanden sind.
  • ZUSAMMENFASSUNG
  • Ausführungsformen der vorliegenden Erfindung betreffen die Flicker-Balkenextraktion für Mehrfachbelichtungssensoren. Es werden Systeme und Verfahren offenbart, die es ermöglichen, Daten zu extrahieren, die Flicker-Balken aus Bildern erfassen, bei denen es weniger wahrscheinlich ist, dass sie Restinhalte aus einer Szene enthalten, und die leichter verwendbar sind, um eine Schwingfrequenz einer oder mehrerer Lichtquellen, die die Flicker-Balken verursacht haben, abzuleiten.
  • Im Gegensatz zu traditionellen Ansätzen zur Extraktion von Flicker-Balken können Bilder, die zur Extraktion von Flicker-Balken verwendet werden, mit Belichtungszeiten aufgenommen werden, die sich zeitlich mindestens teilweise überschneiden. Wenn die Bilder voneinander subtrahiert werden, hebt sich der Szeneninhalt im Wesentlichen gegenseitig auf, wodurch Flicker-Balken zurückbleiben. In mindestens einer Ausführungsform können die Bilder für ein selbes Einzelbild sein, das von mindestens einem Sensor aufgenommen wurde. Die Bilder können zum Beispiel Mehrfachbelichtungen umfassen, die der mindestens eine Sensor in einem Einzelbild aufnimmt. In einer oder mehreren Ausführungsformen können die Bilder, die zur Extraktion von Flicker-Balken verwendet werden, mit unterschiedlichen Belichtungszeiten aufgenommen werden, die einen gemeinsamen Startzeitpunkt haben, z. B. mit einem Mehrfachbelichtungssensor, bei dem die Lichtwerte während der Lichtintegration zu unterschiedlichen Zeiten ausgelesen werden. Zur Flicker-Balkenextraktion können zwei oder mehr Bilder verwendet werden, wie z. B. die Bilder, die Flicker-Balken mit der größten Phasendifferenz enthalten.
  • Figurenliste
  • Die vorliegenden Systeme und Verfahren für personalisierte Kalibrierungsfunktionen zur Blickerfassung des Benutzers in autonomen Fahranwendungen werden im Folgenden Bezug nehmend auf die beigefügten Zeichnungen im Detail beschrieben:
    • 1 ist ein Datenflussdiagramm, das ein beispielhaftes System darstellt, das einen Prozess zur Kompensation von Flicker-Balken in Bildern gemäß Ausführungsformen der vorliegenden Erfindung durchführt;
    • 2 ist ein beispielhafter Graph, der veranschaulicht, wie Flicker-Balken gemäß Ausführungsformen der vorliegenden Erfindung durch eine schwingende Lichtquelle erzeugt werden können;
    • 3A ist ein beispielhafter Graph der Wellenformen von Flicker-Balken gemäß Ausführungsformen der vorliegenden Erfindung;
    • 3B ist ein beispielhafter Graph der Wellenformen von Flicker-Balken und eines Flicker-Balkens, das Ausführungsformen der vorliegenden Erfindung gemäß erhalten wird, indem Flicker-Balken voneinander subtrahiert werden;
    • 4 ist ein Beispiel für Kamerapositionen und Sichtfelder für ein beispielhaftes autonomes Fahrzeug gemäß Ausführungsformen der vorliegenden Erfindung;
    • 5 ist ein Ablaufplan, der ein Verfahren zur Kompensation von Flicker-Balken unter Verwendung von Bildern zeigt, die Ausführungsformen der vorliegenden Erfindung gemäß über eine gemeinsame Zeitperiode hinweg aufgenommen wurden;
    • 6 ist ein Ablaufplan, der ein Verfahren zur Kompensation von Flicker-Balken unter Verwendung von Bildern zeigt, die Ausführungsformen der vorliegenden Erfindung gemäß über sich teilweise überschneidende Zeitperioden hinweg aufgenommen wurden;
    • 7 ist ein Ablaufplan, der ein Verfahren zur Kompensation von Flicker-Balken unter Verwendung von Bildern zeigt, die Ausführungsformen der vorliegenden Erfindung gemäß über verschiedene Zeitperioden hinweg aufgenommen wurden;
    • 8 ist ein Blockdiagramm eines beispielhaften Computergeräts, das zur Verwendung in der Implementierung von Ausführungsformen der vorliegenden Erfindung geeignet ist; und
    • 9 ist ein Blockdiagramm eines beispielhaften Datenzentrums, das zur Verwendung in der Implementierung von Ausführungsformen der vorliegenden Erfindung geeignet ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen der vorliegenden Erfindung betreffen die Flicker-Balkenextraktion für Mehrfachbelichtungssensoren. Es werden Systeme und Verfahren offenbart, die es ermöglichen, Daten zu extrahieren, die Flicker-Balken aus Bildern erfassen, bei denen es weniger wahrscheinlich ist, dass sie Restinhalte aus einer Szene enthalten, und die leichter verwendbar sind, um eine Schwingfrequenz einer oder mehrerer Lichtquellen, die die Flicker-Balken verursacht haben, abzuleiten.
  • Auch wenn die vorliegende Erfindung in Bezug auf ein beispielhaftes autonomes Fahrzeug 400 (hier auch als „Fahrzeug 400“ oder „Ego-Fahrzeug 400“ bezeichnet, das hier auf 4B Bezug nehmend als Beispiel beschrieben wird) beschrieben werden kann, ist dies nicht einschränkend zu verstehen. Die Systeme und Verfahren, die hier beschrieben werden, sind zum Beispiel auch in nicht-autonomen Fahrzeugen, teilautonomen Fahrzeugen (z. B. in adaptiven Fahrerassistenzsystemen (ADAS)), Fahrzeugen in Kombination mit Anhängern, gelenkten und ungelenkten Robotern oder Roboterplattformen, Lagerfahrzeugen, Geländefahrzeugen, fliegenden Wasserfahrzeugen, Booten, Shuttles, Noteinsatzfahrzeugen, Motorrädern, elektrischen oder motorisierten Zweirädern, Flugzeugen, Baufahrzeugen, Unterwasserfahrzeugen, Drohnen und/oder anderen Fahrzeugtypen anwendbar. Auch wenn die vorliegende Erfindung in Bezug auf das autonome Fahren beschrieben werden kann, ist dies nicht einschränkend zu verstehen. Die Systeme und Verfahren, die hier beschrieben werden, sind zum Beispiel auch in der Robotik, der Unterhaltungselektronik (z. B. die Kamera von Mobiltelefonen), in Luftfahrtsystemen, in der Schifffahrt und/oder in anderen Technologiebereichen anwendbar, in denen eine oder mehrere Kameras, die für Flicker-Balken anfällig sind, eingesetzt werden können.
  • Im Gegensatz zu herkömmlichen Ansätzen zur Flicker-Balkenextraktion können die Bilder, die zur Extraktion der Flicker-Balken verwendet werden, mit Belichtungszeiten aufgenommen werden, die sich zeitlich mindestens teilweise überschneiden. Daher ist es wahrscheinlicher, dass der von jedem Bild erfasste Szeneninhalt ähnlich ist, wodurch die Flicker-Balken leichter von anderen Bildinhalten zu unterscheiden sind. Wenn die Bilder zum Beispiel voneinander subtrahiert werden, hebt sich der Szeneninhalt im Wesentlichen gegenseitig auf, wodurch Flicker-Balken zurückbleiben. In mindestens einer Ausführungsform können die Bilder für ein selbes Einzelbild sein, das von mindestens einem Sensor aufgenommen wurde. Die Bilder können zum Beispiel Mehrfachbelichtungen umfassen, die der mindestens eine Sensor in einem Einzelbild aufnimmt. Im Gegensatz zu herkömmlichen Ansätzen zur Flicker-Balkenextraktion können die Bilder, die zur Extraktion von Flicker-Balken verwendet werden, mit unterschiedlich langen Belichtungszeiten aufgenommen werden. Dadurch ist es wahrscheinlicher, dass die Flicker-Balken jedes Bilds phasenverschoben sind, selbst wenn die Bilder über Zeitperioden aufgenommen wurden, die sich mindestens teilweise überschneiden.
  • In einer oder mehreren Ausführungsformen können die Bilder, die zur Extraktion von Flicker-Balken verwendet werden, mit unterschiedlichen Belichtungszeiten aufgenommen werden, die einen gemeinsamen Startzeitpunkt haben, z. B. mit einem Mehrfachbelichtungssensor, bei dem die Lichtwerte während der Lichtintegration zu unterschiedlichen Zeiten ausgelesen werden. Zum Beispiel können Lichtwerte aus dem Mehrfachbelichtungssensor ausgelesen werden, um ein schwach belichtetes Bild eines Einzelbilds zu erzeugen, später ausgelesen werden, um ein mittel belichtetes Bild des Einzelbilds zu erzeugen, und noch später ausgelesen werden, um ein stark belichtetes Bild des Einzelbilds zu erzeugen. Zur Flicker-Balkenextraktion können zwei oder mehr Bilder verwendet werden, wie z. B. die Bilder, die Flicker-Balken mit der größten Phasendifferenz enthalten.
  • Auf 1 Bezug nehmend, ist 1 ein Datenflussdiagramm, das ein Beispiel eines Systems 100 veranschaulicht, das gemäß Ausführungsformen der vorliegenden Erfindung einen Prozess zur Kompensation von Flicker-Balken in Bildern durchführt. Es versteht sich, dass diese und andere Anordnungen, die hier beschrieben werden, lediglich beispielhaft sind. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Reihenfolgen, Funktionsgruppen usw.) können zusätzlich zu oder anstelle der gezeigten verwendet werden, und einige Elemente können auch ganz entfallen. Ferner sind viele der Elemente, die hier beschrieben werden, funktionale Einheiten, die als einzelne oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und an jedem geeigneten Ort implementiert werden können. Verschiedene Funktionen, die hier als durch Einheiten durchgeführt beschrieben werden, können durch Hardware, Firmware und/oder Software durchgeführt werden. Zum Beispiel können verschiedene Funktionen durch einen Prozessor durchgeführt werden, der Anweisungen ausführt, die im Speicher gespeichert sind.
  • Das System 100 kann, neben anderen Komponenten, einen oder mehrere Bildsensoren 102, einen Bildaufnahme-Manager 104, einen Bildanalysator 106 und einen Konfigurationsbestimmer 108 umfassen. Zusammenfassend können der oder die Bildsensor(en) 102 einen oder mehrere Bildsensoren umfassen, die in der Lage sind, Bilder zu erfassen, die durch eine oder mehrere Lichtquellen erzeugte Flicker-Balken enthalten. Der Bildaufnahme-Manager 104 kann dazu konfiguriert sein, Bildsensor(en) 102 und/oder andere Komponenten (z. B. Kamerakomponenten), die sich auf die Aufnahme von Bildern auswirken, zu verwalten oder zu steuern, indem er Kameraparameter steuert, die sich auf die Belichtungszeit, die Bildrate, die Helligkeit, die Blende, die Brennweite, die ISO-Empfindlichkeit usw. auswirken. Beispiele für Bilder sind die Bilder 110A, 110B und 110C (auch als „Bilder 110“ bezeichnet). Der Bildanalysator 106 kann dazu konfiguriert sein, die mit Bildsensor(en) 102 aufgenommen Bilder zu analysieren, zum Beispiel eines oder mehrere der Bilder zur Verwendung bei der Extraktion von Flicker-Balkendaten auszuwählen und/oder Flicker-Balkendaten aus dem oder den Bildern zu extrahieren. Zum Beispiel kann der Bildanalysator 106 Flicker-Balkendaten extrahieren, die für Flicker-Balken 112 aus zwei oder mehr Bildern 110 repräsentativ sind oder diesen auf andere Weise entsprechen.
  • Der Konfigurationsbestimmer 108 kann dazu konfiguriert sein, auf der Basis der Flicker-Balken 112 eine Konfiguration mindestens eines Sensors wie z. B. eines oder mehrerer der Bildsensoren 102 zu bestimmen. Die Konfiguration kann bestimmt werden, um Flicker-Balken in künftigen Bildern zu reduzieren oder zu beseitigen, oder Lichtquellen, die Flicker-Balken erzeugen können, auf andere Weise zu kompensieren. Zum Beispiel kann die Konfiguration verwendet werden, um mit dem mindestens einen Sensor ein oder mehrere Bilder aufzunehmen. Im dargestellten Beispiel kann der Bildaufnahme-Manager 104 (und/oder ein Bildaufnahme-Manager, der einem oder mehreren anderen Sensoren zugeordnet ist) die Konfiguration verwenden, um ein Bild oder mehrere Bilder aufzunehmen (z. B. unter Verwendung des oder der Bildsensoren 102 oder eines oder mehrerer anderer Sensoren).
  • Wie hier beschrieben, kann der Bildaufnahme-Manager 104 dazu konfiguriert sein, Bildsensor(en) 102 und/oder andere Komponenten (z. B. Kamerakomponenten), die sich auf die Bildaufnahme auswirken, zu verwalten oder zu steuern. Bilddaten eines Bilds, wie z. B. des Bilds 110A, 110B oder 110C, können einen Satz von Pixelwerten für eine gegebene Belichtung des Bildsensors 102 oder einen Satz von aggregierten Werten aus Mehrfachbelichtungen darstellen. Die Werte können der Helligkeit oder Intensität des Lichts in einer Szene entsprechen oder diese anzeigen, und können Farbinformation entsprechen oder diese anzeigen oder nicht. Ferner können die Bilddaten eines Bilds vollständigen oder partiellen Daten entsprechen, die aus dem Bildsensor 102 ausgelesen wurden (z. B. eine oder mehrere Zeilen und/oder Teile davon), und können in einem RAW-Format, vorverarbeiteten Format oder verarbeiteten Format vorliegen.
  • Als Beispiel, ohne darauf beschränkt zu sein, kann der Bildaufnahme-Manager 104 durch Hardware und/oder Software (z. B. Firmware) eines Kamerageräts implementiert sein, das Bildsensor(en) 102 enthält. Die Bildsensoren 102 können einen oder mehrere Rolling-Shutter-Sensoren umfassen, zum Beispiel einen Rolling-Shutter-CMOS (Complementary Metal Oxide Semiconductor)-Sensor. Ein Rolling-Shutter-Sensor kann sich auf einen Bildsensor beziehen, der in der Lage ist, mit einer Rolling-Shutter-Aufnahme ein oder mehrere Bilder zu aufzunehmen. Eine Rolling-Shutter-Aufnahme kann Licht für Bild(er) erfassen, indem sie eine Szene entweder vertikal oder horizontal abtastet, um im Zeitablauf verschiedene Zeilen des Sensors zu belichten. Dies steht im Gegensatz zur Global-Shutter-Aufnahme, bei der alle Zeilen gleichzeitig belichtet werden.
  • Für ein einziges Einzelbild kann der Bildaufnahme-Manager 104 Bildsensor(en) verwenden, um eine beliebige Anzahl von Bildern aufzunehmen, wie z. B. ein einziges Bild oder mehrere Bilder. Bei mehreren Bildern können ein oder mehrere der Bilder kombiniert, aggregiert, ausgewählt und/oder auf andere Weise vom Bilderfassungsmanager 104 verwendet werden, um ein Einzelbild zu erzeugen. In einer oder mehreren Ausführungsformen kann ein Bildsensor 102 als Einzelbelichtungssensor verwendet werden. Ein Einzelbelichtungssensor kann eine Zeitperiode lang belichtet werden, und Lichtwerte für Pixel können ausgelesen und vom Bildaufnahme-Manager 104 verwendet werden, um ein Bild für ein Einzelbild (z. B. das Bild 110A, 110B oder 110C) zu erzeugen. In einer oder mehreren Ausführungsformen kann ein Bildsensor 102 jedoch als Mehrfachbelichtungssensor verwendet werden. Ein Mehrfachbelichtungssensor kann mehrere Zeitperioden lang belichtet werden, und Lichtwerte für Pixel können für ein Einzelbild mehrmals ausgelesen und vom Bildaufnahme-Manager 104 verwendet werden, um für jede Zeitperiode, die zur Erzeugung eines Einzelbilds verwendet wird, ein Bild zu erzeugen. Zum Beispiel kann das Bild 110A einer ersten Zeitperiode entsprechen, das Bild 110B kann einer zweiten Zeitperiode entsprechen, und das Bild 110C kann einer dritten Zeitperiode entsprechen.
  • In einer oder mehreren Ausführungsformen kann bei einem Mehrfachbelichtungssensor die Lichtintegration über die Zeitperioden hinweg fortgesetzt werden. Zum Beispiel kann die Lichtintegration durch Auslesen jedes der Bilder 110 nicht zurückgesetzt werden. Daher kann das Bild 110A ein Bild mit schwacher Belichtung, das Bild 110B kann ein Bild mit mittlerer Belichtung, und das Bild 110C kann ein Bild mit starker Belichtung umfassen. Auch wenn drei Bilder 110 dargestellt sind, können die Bilder 110 mehr oder weniger Bilder umfassen. Dabei kann die Belichtung, die zur Erzeugung des Bilds 110B verwendet wird, sich mit der Belichtung, die zur Erzeugung des Bilds 110A verwendet wird, überschneiden, und die Belichtung, die zur Erzeugung des Bilds 110C verwendet wird, kann sich mit den anderen Belichtungen überschneiden. Der Mehrfachbelichtungssensor kann ein HDR (High Dynamic Range)-Sensor sein, und die Bilder können zur Erzeugung eines HDR-Einzelbilds verwendet werden.
  • Wenn eine Szene, die durch Bildsensor(en) 102 erfasst wird, eine Lichtquelle enthält, deren Intensität sich im Laufe der Zeit, in der das Licht erfasst wird, verändert, wie z. B. eine mit 50 Hz (Hertz) oder 60 Hz-Wechselstrom (AC) betriebene Lichtquelle, können einige Zeilen anderen Lichtintensitäten ausgesetzt werden als andere. Diese Ungleichheit in der Lichtintensität kann Flicker-Balkenbildung, bei der das Bild alternierende Balken aus helleren und dunkleren Bereichen enthält, oder andere visuelle Artefakte zur Folge haben. Nun auf 2 Bezug nehmend, zeigt 2 einen beispielhaften Graphen 200, der veranschaulicht, wie Flicker-Balken gemäß Ausführungsformen der vorliegenden Erfindung durch eine schwingende Lichtquelle erzeugt werden können.
  • Im Graphen 200 kann die Achse 210A die Zeit darstellen, und die Achse 210B kann die Helligkeit oder Intensität des Lichts darstellen. Die Wellenform 212 kann einer mit Wechselstrom (AC) betriebenen Lichtquelle entsprechen. Die Zeilenintensität 214A kann den Integrationsumfang des Lichts für eine Einzelzeile des Bildsensors 102 über eine Zeitperiode darstellen, in welcher der Bildsensor 102 Lichtquelle(n) ausgesetzt wird. Die Zeilenintensität 214B kann den Integrationsumfang des Lichts für eine andere Einzelzeile des Bildsensors 102 über die Zeitperiode darstellen, in welcher der Bildsensor 102 Lichtquelle(n) ausgesetzt wird. Wie zu ersehen ist, ist der Integrationsumfang bei den verschiedenen Zeilen unterschiedlich, was auf die Veränderlichkeit der Wellenform 212 und die unterschiedlichen Zeiten, an welchen die Zeilen der Lichtquelle ausgesetzt waren, zurückzuführen ist. Dies kann sich in einem Bild, das mit dem Bildsensor 102 aufgenommen wurde, als Flicker-Balkenbildung niederschlagen, wie in 3A dargestellt.
  • Nun auf 3A Bezug nehmend, ist 3A ein beispielhafter Graph 300 der Wellenformen 310A, 310B und 310C von Flicker-Balken gemäß Ausführungsformen der vorliegenden Erfindung. Im Graphen 300 kann die Achse 312A die Zeit darstellen, und die Achse 312B kann die Helligkeit oder Intensität des Lichts darstellen. Die Wellenform 310A kann Flicker-Balken des Bilds 110A (z. B. ein Bild mit schwacher Belichtung) entsprechen, die Wellenform 310B kann Flicker-Balken des Bilds 110B (z. B. ein Bild mit mittlerer Belichtung) entsprechen, und die Wellenform 310C kann Flicker-Balken des Bilds 110C (z. B. ein Bild mit starker Belichtung) entsprechen.
  • Der Bildanalysator 106 kann dazu konfiguriert sein, die mit Bildsensor(en) 102 aufgenommen Bilder zu analysieren, zum Beispiel eines oder mehrere der Bilder zur Verwendung bei der Extraktion von Flicker-Balkendaten auszuwählen und/oder Flicker-Balkendaten aus dem oder den Bildern zu extrahieren. Zum Beispiel kann der Bildanalysator 106 Daten extrahieren, die für andere Flicker-Balken 112 aus zwei oder mehr Bildern 110 repräsentativ sind oder diesen auf andere Weise entsprechen. Die Flicker-Balken 112 können aus mindestens einem Teil der Flicker-Balken abgeleitet werden, die den Wellenformen 310A, 310B und/oder 310C entsprechen. Zum Beispiel können die Flicker-Balken 112 eine Aggregation von Flicker-Balken aus einem oder mehreren der Bilder 110 umfassen, wie in 3B beispielhaft dargestellt.
  • Nun auf 3B Bezug nehmend, ist 3B ein beispielhafter Graph 350 von Wellenformen 322 und 324 von Flicker-Balken und einer Wellenform 320 eines Flicker-Balkens, die sich Ausführungsformen der vorliegenden Erfindung gemäß durch Subtraktion der Flicker-Balken voneinander ergibt. In 3B kann die Wellenform 320 eine Aggregation der Wellenformen 322 und 324 umfassen. Die Wellenform 320 kann sich durch Aggregation, Subtraktion und/oder anderweitige Kombination mindestens einiger der Flicker-Balken ergeben, die den Wellenformen 322 und 324 entsprechen. In mindestens einer Ausführungsform können vor der Aggregation der Wellenformen 322 und 324 eine oder mehrere der Wellenformen in der Amplitude skaliert worden sein, um das in 3B gezeigte Ergebnis zu erhalten (z. B. so, dass die Wellenformen dieselbe oder im Wesentlichen dieselbe Amplitude aufweisen).
  • Flicker-Balken eines Bilds können mathematisch als sin(x + p) ausgedrückt werden, wobei p die Phase sein kann, die die tatsächliche Lage eines Flicker-Balkens in einer Aufnahmeebene wiedergibt, und x die Frequenz der Flicker-Balken sein kann. Die Subtraktion von Flicker-Balken für zwei Bilder kann dann durch Gleichung (1) ausgedrückt werden: A s i n ( x + α ) A s i n ( x + b ) = 2 A s i n ( a b 2 ) cos ( x + a + b 2 )
    Figure DE102022105650A1_0001
    wobei p = α für die Flicker-Balken eines Bilds und p = b für die Flicker-Balken eines anderen Bilds. Die Flicker-Balken, die durch die Wellenformen 310A, 310B und 3 IOC angezeigt werden, können Phasen und/oder Amplituden aufweisen, die sich bei verschiedenen Bildern 110 voneinander unterscheiden. Aus Gleichung (1) geht jedoch hervor, dass die Subtraktion der Flicker-Balken voneinander Flicker-Balken (z. B. die Flicker-Balken 112) ergeben kann, die zwar die gleiche Frequenz x wie die anderen Flicker-Balken, jedoch eine andere Amplitude und Phase haben. Daher kann die Frequenz x der Wellenform 320 einer Schwingfrequenz der einen oder mehreren Lichtquelle(n) entsprechen und vom Konfigurationsbestimmer 108 verwendet werden, um eine Konfiguration zu bestimmen, die die Schwingung der Lichtquelle(n) kompensiert. Zum Beispiel kann die Lichtintensität einer Leuchtstofflampe eine Sinuswelle sein, deren Frequenz jedoch doppelt so hoch wie die Frequenz des Stroms ist. Daher kann das Licht bei einem 50Hz-Stromgenerator mit 100 Hz schwingen und bei einem 60Hz-Generator kann das Licht mit 120 Hz schwingen.
  • Der Bildanalysator 106 kann zur Extraktion von Flicker-Balkendaten aus einem oder mehreren Bildern jeden geeigneten Ansatz verwenden. Beispielsweise, und ohne darauf beschränkt zu sein, können mindestens Teile der Bilder voneinander subtrahiert werden (in einigen Beispielen nach dem Downsampling oder anderweitigen Skalieren der Bilder), um Bilddaten zu erzeugen, die die Flicker-Balken 112 enthalten. Zum Beispiel kann der Bildanalysator 106 Kanalinformation von zwei ausgewählten gespeicherten Bildern (und/oder Teilen davon) Pixel für Pixel subtrahieren, um ein Differenzbild zu erzeugen. Nach der Subtraktion der zwei Bilder kann der Bildanalysator 106 an jeder Pixelzeile des Differenzbilds eine Operation durchführen (in einigen Beispielen nach dem Downsampling oder anderweitigen Skalieren des Differenzbilds). Wenn das Differenzbild (z. B. nach dem Herunterskalieren) zum Beispiel 64 Zeilen mal 64 Pixel groß ist, kann der Bildanalysator 106 die Summe der 64 Pixel in jeder Zeile berechnen, was 64 Werte ergibt, wobei jeder Wert die Summe der Pixeldaten für eine der 64 Zeilen ist. Als weiteres Beispiel kann der Bildanalysator 106 jede der Zeilensummen auf kleinere Werte skalieren, z. B. durch Skalieren von 16-Bit-Summen auf 12-Bit-Werte, was 64 Werte ergibt, wobei jeder Wert die skalierte Summe der Pixeldaten für eine der 64 Zeilen ist. Als weiteres Beispiel kann der Bildanalysator 106 den durchschnittlichen Pixelwert für die 64 Pixel in jeder Zeile berechnen, was 64 Werte ergibt, wobei jeder Wert der durchschnittliche Pixelwert für eine der 64 Zeilen ist. Es ist anzumerken, dass die Berechnung des durchschnittlichen Pixelwerts für die 64 Pixel in jeder Zeile als ein Sonderfall der Berechnung der skalierten Summe der 64 Pixel in jeder Zeile zu betrachten ist. Als weiteres Beispiel kann der Bildanalysator 106 die Summen-, die skalierte Summen- oder die Durchschnittsfunktion zuerst auf herunterskalierte Bilder anwenden und für jedes gespeicherte Einzelbild ein 1×64-Array erzeugen. Als weiteres Beispiel kann der Bildanalysator 106 die den ausgewählten Einzelbildern entsprechenden 1×64-Arrays dann subtrahieren.
  • Der Bildanalysator 106 kann dann eine eindimensionale (1D) diskrete CosinusTransformation (DCT) der Differenzwerte generieren. Die DCT kann jede geeignete Anzahl von Klassen (bins) aufweisen, z. B. 32 oder 64 Klassen, wobei die erste Klasse die Gleichstromkomponente der Differenzwerte darstellt und jede nachfolgende Klasse die Energie bei einer Frequenz darstellt, die eine aufeinanderfolgende Zweierpotenz ist. Zum Beispiel kann die erste Klasse die Gleichstromkomponente darstellen, die zweite Klasse kann die Energie bei 2 Hz darstellen, die dritte Klasse kann die Energie bei 4 Hz darstellen, die vierte Klasse kann die Energie bei 8 Hz darstellen, und so weiter. Der Bildanalysator 106 kann dann aus den DCT-Daten (die vorverarbeitet worden sein können) eine Flicker-Balkenfrequenz der Flicker-Balken 112 berechnen.
  • Wie hier beschrieben, können die Bilder (z. B. zwei von den Bildern 110), die vom Bildanalysator 106 zur Extraktion von Flicker-Balken verwendet werden, mit Belichtungen aufgenommen werden, die sich zeitlich mindestens teilweise überschneiden. Daher ist es wahrscheinlicher, dass der von jedem Bild erfasste Szeneninhalt ähnlich ist, wodurch die Flicker-Balken 112 leichter von anderen Bildinhalten zu unterscheiden sind. Wenn zum Beispiel zwei Bilder 110 (oder ein oder mehrere davon abgeleitete Bilder) voneinander subtrahiert werden, hebt sich der Szeneninhalt im Wesentlichen gegenseitig auf, wobei die Flicker-Balken 112 zurückbleiben, sodass diese leichter vom Bildanalysator 106 extrahiert werden können.
  • Wie hier beschrieben, kann der Bildanalysator 106 in einer oder mehreren Ausführungsformen allgemein mindestens zwei Bilder verwenden, die mindestens einige gleiche oder ähnliche Inhalte (z. B. die gleichen realen Orte) aufnehmen und mit denselben oder verschiedenen Bildsensoren aufgenommen wurden. In Ausführungsformen, in denen Bilder unterschiedliche Inhalte enthalten, kann der Bildanalysator 106 entsprechende Bereiche der Bilder ausschließen und/oder unberücksichtigt lassen. Zudem kann der Bildanalysator 106 in machen Ausführungsformen Unterschiede in der realen Perspektive und/oder Position eines oder mehrerer Bildsensoren, die zur Aufnahme der Bilder verwendet werden, kompensieren. Die Verwendung dieser Ansätze kann für Ausführungsformen geeignet sein, die verschiedene Bildsensoren und/oder Kameras zur Aufnahme der Bilder verwenden. In verschiedenen Ausführungsformen kann zur Aufnahme der Bilder jedoch derselbe Bildsensor und dieselbe Kamera verwendet werden. Die Bilder können zum Beispiel Teile eines selben Einzelbilds sein, das durch mindestens einen Sensor aufgenommen wurde. In bestimmten Ausführungsformen können die Bilder (z. B. die Bilder 110) Mehrfachbelichtungen umfassen, die der mindestens eine Sensor in einem Einzelbild erfasst hat.
  • Im Gegensatz zu herkömmlichen Ansätzen zur Flicker-Balkenextraktion können die Bilder, die zur Extraktion von Flicker-Balken verwendet werden, mit unterschiedlich langen Belichtungszeiten aufgenommen werden. Dadurch ist es wahrscheinlicher, dass die Flicker-Balken jedes Bilds phasenverschoben sind, selbst wenn die Bilder über Zeitperioden hinweg aufgenommen wurden, die sich mindestens teilweise überschneiden. Bei einem Rolling-Shutter-System zum Beispiel können Pixel in derselben Zeile gleichzeitig belichtet werden, während Pixel in verschiedenen Zeilen zu unterschiedlichen Zeiten belichtet werden, während der Verschluss an den Zeilen vorbeiläuft. Wenn die Breite des Rolling-Shutter-Fensters der Belichtungszeit E entspricht und die i. te Zeile eines Bilds zwischen Zeitpunkten t und t + E belichtet wird, kann das kumulative Licht, das durch diese Zeile F (t) integriert wird, durch Gleichung (2) ausgedrückt werden: F ( t ) = t t + E l ( T ) d T ,
    Figure DE102022105650A1_0002
    wobei l(T) die Intensität einer schwingenden Lichtquelle ist. Die Intensität l(T) ist direkt proportional zur Leistung P , die ihrerseits direkt proportional zum Quadrat des Stroms ist. Daher lässt sich die Gleichung (2) zu Gleichung (3) umschreiben: F ( t ) = t t + E P 2 ( 1 c o s ( 4 π ƒ t ) ) d t = P E 2 P 4 π ƒ sin ( 2 π ƒ E ) cos ( 4 π ƒ t + 2 π ƒ E ) .
    Figure DE102022105650A1_0003
  • Dies deutet daraufhin, dass das integrierte Licht eine Sinuswelle mit derselben Frequenz wie das Licht selbst ist (doppelt so hoch wie die des Wechselstroms), was bewirkt, dass Flicker-Balken als alternierende dunkle und helle horizontale Balken erscheinen. Der Ausdruck cos(4πft + 2πfE) weist daraufhin, dass die Phase der Bilder unterschiedlich gemacht werden kann, indem für jedes Bild eine unterschiedliche Belichtungszeit E verwendet wird.
  • Aus den vorstehenden Gleichungen geht hervor, dass Bilder durch die Belichtungszeiten so eingestellt werden können, dass Flicker-Balken aus den Bildern extrahiert werden können, ohne sich gegenseitig aufzuheben. In Ausführungsformen, in welchen die Bilder zu unterschiedlichen Zeiten aufgenommen werden (z. B. als Teil verschiedener Einzelbilder), indem für die Bilder verschiedene Belichtungszeiten verwendet werden, ist es daher dem Bildanalysator 106 möglich, Flicker-Balkendaten daraus extrahieren, selbst wenn die Aufnahmezeiten andernfalls dazu führen würden, dass sich die Flicker-Balken gegenseitig aufheben. In Ausführungsformen, in welchen die Bilder zu Zeiten aufgenommen werden, die sich mindestens teilweise überschneiden, ermöglicht es die Verwendung unterschiedlicher Zeiten zur Aufnahme der Bilder, die Flicker-Balkendaten aus diesen zu extrahieren. In einer oder mehreren Ausführungsformen kann der Bildaufnahme-Manager 104 so konfiguriert sein, dass die Belichtungszeiten für die Aufnahme von Bildern, die zur Bestimmung der Flicker-Balken verwendet werden, dazu konfiguriert sein können, Belichtungszeiten, bei denen Flicker-Balken sich aufheben würden, zu vermeiden. Wenn der Bildaufnahme-Manager 104 zum Beispiel eine automatische Belichtung verwendet, kann die automatische Belichtung dazu konfiguriert sein, Belichtungszeiten, bei denen die Flicker-Balken sich aufheben würden, zu vermeiden.
  • Mit der Änderung der Zeit t schwankt auch der zeitabhängige Ausdruck in Gleichung (3) zwischen -1 und 1. Dadurch schwankt das integrierte Licht zwischen Punkten bei P E 2 P 4 π ƒ sin ( 2 π ƒ E ) und  P E 2 + P 4 π ƒ sin ( 2 π ƒ E ) .
    Figure DE102022105650A1_0004
    Daher ist die Sichtbarkeit V(E) der Flicker-Balken direkt proportional zur Differenz zwischen diesen zwei Punkten, wie in Gleichung (4) ausgedrückt: V ( E ) = ( P E 2 P 4 π ƒ sin ( 2 π ƒ E ) ) ( P E 2 P 4 π ƒ sin ( 2 π ƒ E ) ) = P 2 π ƒ sin ( 2 π ƒ E )
    Figure DE102022105650A1_0005
  • Dies zeigt, dass die Flicker-Korrektur durchgeführt werden kann, indem die Belichtungszeit auf 1 2 ƒ
    Figure DE102022105650A1_0006
    oder ein beliebiges positives ganzzahliges Vielfaches von 1 2 ƒ
    Figure DE102022105650A1_0007
    eingestellt wird, da sin(nπ) = 0 für jede positive Ganzzahl n.
  • Aus den obigen Gleichungen geht auch hervor, dass bestimmte Bilder im Vergleich zueinander Flicker-Balkendaten erzeugen können, die Flicker-Balken deutlicher erfassen. Wenn zum Beispiel die Bilder 110A, 110B und 110C gegeben sind, können Flicker-Balken leichter extrahiert werden, wenn die Bilder 110A und 110B verwendet werden, da die Flicker-Balken zwischen diesen Bildern stärker phasenverschoben sind als die Flicker-Balken zwischen den Bildern 110A und 110C. In mindestens einer Ausführungsform kann bei einer gegebenen Vielzahl von Bildern der Bildanalysator 106 dazu konfiguriert sein, die Bilder auszuwählen, die Flicker-Balken enthalten, die am meisten voneinander phasenverschobenen sind oder anderweitig die sichtbarsten Flicker-Balken erzeugen würden. Daher kann der Bildanalysator 106 mindestens auf der Basis derjenigen Bilder, deren Flicker-Balken stärker phasenverschoben sind als die der Bilder 110A und 110C, die Flicker-Balken unter Verwendung der Bilder 110A und 110B extrahieren. Zum Beispiel kann der Bildanalysator 106 eine Phasendifferenz berechnen oder auf andere Weise bestimmen, um die Bilder auszuwählen, oder er kann auf andere Weise dazu konfiguriert sein, für die Flicker-Balkenextraktion die Bilder auszuwählen, deren Flicker-Balken am stärksten phasenverschobenen sind.
  • Wie hier beschrieben, kann der Konfigurationsbestimmer 108 dazu konfiguriert sein, eine oder mehrere Konfiguration(en) mindestens eines Sensors wie z.B. eines oder mehrerer der Bildsensoren 102 auf der Basis der Flicker-Balken 112 zu bestimmen. Zum Beispiel kann der Konfigurationsbestimmer 108 auf der Basis der Schwingfrequenz der einen oder mehreren Lichtquellen, die anhand der Flicker-Balkendaten berechnet oder anderweitig angezeigt wird, eine Konfiguration bestimmen, welche die Schwingfrequenz reduziert, beseitigt oder auf andere Weise kompensiert. In einer oder mehreren Ausführungsformen kann die Konfiguration durch Kameraparameter wie jene definiert sein, die sich auf die Belichtungszeit, die Bildrate, die Helligkeit, die Blende, die Brennweite, die ISO-Empfindlichkeit usw. auswirken. In mindestens einer Ausführungsform passt die Konfiguration die Belichtungszeit eines Einzelbilds und/oder eines oder mehrerer Teilbilder eines Einzelbilds (z. B. ein Bild mit schwacher Belichtung, ein Bild mit starker Belichtung, ein Bild mit mittlerer Belichtung usw.) an, um eine Flicker-Balkenbildung, die mit einer oder mehreren identifizierten Wechselstromkomponenten der Lichtquelle(n) im Zusammenhang steht, zu reduzieren oder zu beseitigen. Andere Kameraparameter wie z. B. die Bildrate können konstant gehalten werden.
  • Der Bildaufnahme-Manager 104 (und/oder ein anderer Bildaufnahme-Manager 104) kann die mit dem Konfigurationsbestimmer 108 bestimmte(n) Konfiguration(en) zur Aufnahme eines oder mehrerer Bilder verwenden. Zum Beispiel können Bildsensor(en) 102, die zur Flicker-Balkenextraktion verwendete Bilder aufgenommen haben, verwendet werden, um die nachfolgende Bildern mit einer vom Konfigurationsbestimmer 108 bestimmten Konfiguration aufzunehmen, und/oder ein oder mehrere andere Bildsensor(en) können verwendet werden, um nachfolgende Bilder aufzunehmen. Beispielsweise können Bildsensor(en) 102 einen Mehrfachbelichtungssensor umfassen, während Bildsensor(en), die die Konfiguration verwenden, die mit dem Konfigurationsbestimmer 108 bestimmt wurde, ein Einzelbelichtungssensor sein können, der keine Mehrfachbelichtung unterstützt, was in der Regel kostengünstiger als ein Mehrfachbelichtungssensor ist. Zusätzlich oder alternativ dazu können ein oder mehrere andere Mehrfachbelichtungssensoren eine Konfiguration verwenden, die mit dem Konfigurationsbestimmer 108 bestimmt wurde.
  • Zum Beispiel zeigt 4 ein Beispiel für Kamerapositionen und Sichtfelder für ein beispielhaftes autonomes Fahrzeugs 400 gemäß Ausführungsformen der vorliegenden Erfindung. Das autonome Fahrzeug 400 kann eine beliebige Anzahl von Kameras aufweisen, wie z. B. Stereokamera(s) 468, Weitwinkelkamera(s) 470 (z. B. Fischaugenkameras), Infrarotkamera(s) 472, Surround-View-Kamera(s) 474 (z. B. 360-Grad-Kameras), Kamera(s) mit langer Reichweite und/oder mittlerer Reichweite 498 und/oder andere Kameratypen. Eine beliebige Kombination von Kameras kann zur Steuerung des autonomen Fahrens und/oder von Funktionen des adaptiven Fahrerassistenzsystemens (ADAS) verwendet werden. Mit den offenbarten Ansätzen können Bilder, wie hier beschrieben (die z. B. zur Flicker-Balkenextraktion verwendet werden oder auf der Basis der Flicker-Balkenextraktion erzeugt werden), mit einer beliebigen Kombination von Kameras des autonomen Fahrzeugs 400 erzeugt werden. Zum Beispiel können Kamera(s), die zur Flicker-Balkenextraktion verwendet werden, einen oder mehrere Mehrfachbelichtungssensor(en) umfassen, um Ausführungsformen einzusetzen, die bei der Extraktion von Flicker-Balken Bilder für ein einzelnes Einzelbild verwenden. Dann kann jede Kombination der Kameras aus der Flicker-Balkenextraktion Nutzen ziehen, selbst wenn eine Kamera keine Mehrfachbelichtung unterstützt oder wenn die Kamera derart konfiguriert ist, dass sie zur Flicker-Balkenextraktion weniger geeignet ist. Auch wenn ein autonomes Fahrzeug 400 dargestellt ist, können ähnliche Ansätze für andere Arten von Maschinen (z. B. Roboter) oder Umgebungen mit mehreren Kameras verwendet werden.
  • Jeder Block jedes hier beschriebenen Verfahrens umfasst einen Rechenprozess, der mit einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Zum Beispiel können verschiedene Funktionen von einem Prozessor durchgeführt werden, der Anweisungen ausführt, die im Speicher gespeichert sind. Das Verfahren kann auch in Form von computerausführbaren Anweisungen, die auf Computer-Speichermedien gespeichert sind, ausgeführt sein. Das Verfahren kann durch eine eigenständige Anwendung, einen Dienst oder einen gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige Beispiele zu nennen. Zudem werden beispielhafte Verfahren Bezug nehmend auf das System 100 von 1 beschrieben. Diese Verfahren können jedoch zusätzlich oder alternativ dazu von einem beliebigen System oder einer beliebigen Kombination von Systemen ausgeführt werden, einschließlich der hier beschriebenen, ohne darauf beschränkt zu sein.
  • Nun auf 5 Bezug nehmend, ist 5 ein Ablaufplan, der ein Verfahren 500 zur Kompensation von Flicker-Balken unter Verwendung von Bildern zeigt, die gemäß Ausführungsformen der vorliegenden Erfindung über eine gemeinsame Zeitperiode hinweg aufgenommen wurden. Das Verfahren 500 umfasst in Block B502 das Empfangen mindestens eines Teils eines ersten Bilds, das erste Flicker-Balken enthält und über eine erste Zeitperiode aufgenommen wurde. Zum Beispiel kann der Bildanalysator 106 erste Bilddaten vom Bildsensor 102 empfangen, der über eine erste Zeitperiode einer oder mehreren Lichtquelle(n) ausgesetzt wurde. Die ersten Bilddaten können mindestens für einen Teil des Bilds 110A eines Einzelbilds repräsentativ sein, wobei das Bild 110A Flicker-Balken enthält, die der Wellenform 310A entsprechen.
  • Das Verfahren 500 umfasst in Block B504 das Empfangen mindestens eines Teils eines zweiten Bilds, das zweite Flicker-Balken enthält und mindestens über die erste Zeitperiode und eine zweite Zeitperiode aufgenommen wurde. Zum Beispiel kann der Bildanalysator 106 zweite Bilddaten vom Bildsensor 102 empfangen, der mindestens über die erste Zeitperiode und die zweite Zeitperiode der oder den Lichtquelle(n) ausgesetzt wurde. Die zweiten Bilddaten können mindestens für einen Teil des Bilds 110B des Einzelbilds (oder des Bilds 110C in anderen Beispielen) repräsentativ sein, wobei das Bild 110B Flicker-Balken enthält, die der Wellenform 310B entsprechen.
  • Das Verfahren 500 umfasst in Block B506 das Bestimmen einer Konfiguration mindestens eines Kameraparameters mindestens auf der Basis einer Differenz zwischen den ersten Flicker-Balken und den zweiten Flicker-Balken. Zum Beispiel kann der Bildanalysator 106 anhand der ersten Bilddaten und der zweiten Bilddaten eine Differenz zwischen den ersten Flicker-Balken und den zweiten Flicker-Balken berechnen. Der Konfigurationsbestimmer 108 kann eine Konfiguration mindestens eines Kameraparameters mindestens auf der Basis dieser Differenz bestimmen. Der mindestens eine Kameraparameter kann auf den Bildsensor 102 und/oder einen oder mehrere andere Bildsensoren angewandt werden, um ein oder mehrere Bilder aufzunehmen.
  • Nun auf 6 Bezug nehmend, ist 6 ein Ablaufplan, der ein Verfahren 600 zur Kompensation von Flicker-Balken unter Verwendung von Bildern zeigt, die gemäß Ausführungsformen der vorliegenden Erfindung über sich teilweise überschneidende Zeitperioden aufgenommen wurden. Das Verfahren 600 umfasst in Block B602 das Empfangen mindestens eines Teils eines ersten Bilds, das erste Flicker-Balken enthält und über eine erste Zeitperiode aufgenommen wurde. Zum Beispiel kann der Bildanalysator 106 erste Bilddaten empfangen, die mindestens für einen Teil des Bilds 110A repräsentativ sind, das über eine erste Zeitperiode mit einer ersten Belichtung durch eine oder mehrere Lichtquelle(n) aufgenommen wurde. Das Bild 110A enthält Flicker-Balken, die der von der oder den Lichtquelle(n) erzeugten Wellenform 310A entsprechen.
  • Das Verfahren 600 umfasst in Block B604 das Empfangen mindestens eines Teils eines zweiten Bilds, das zweite Flicker-Balken enthält und mindestens über die erste Zeitperiode aufgenommen wurde, die sich teilweise mit der ersten Zeitperiode überschneidet. Zum Beispiel kann der Bildanalysator 106 zweite Bilddaten vom Bildsensor 102 empfangen, der über eine zweite Zeitperiode, der sich mindestens teilweise mit der ersten Zeitperiode überschneidet, der oder den Lichtquelle(n) ausgesetzt wurde. Die zweiten Bilddaten können mindestens für einen Teil des Bilds 110B des Einzelbilds (oder des Bilds 110C in anderen Beispielen) repräsentativ sein, wobei das Bild 110B Flicker-Balken enthält, die der Wellenform 310B entsprechen.
  • Das Verfahren 600 umfasst in Block B606 das Bestimmen einer Schwingfrequenz einer oder mehrerer Lichtquelle(n) mindestens auf der Basis der ersten Flicker-Balken und der zweiten Flicker-Balken. Zum Beispiel kann der Bildanalysator 106 unter Verwendung der ersten Bilddaten und der zweiten Bilddaten mindestens auf der Basis der ersten Flicker-Balken und der zweiten Flicker-Balken eine Schwingfrequenz der Lichtquelle(n) (z. B. der Wellenform 320) bestimmen. Der Bildanalysator 106 kann außerdem Daten übertragen, die mindestens auf der Basis der Schwingfrequenz die Konfiguration mindestens eines Sensors bewirken. Zum Beispiel können dem Konfigurationsbestimmer 108 Daten bereitgestellt werden, die für die Schwingfrequenz repräsentativ sind, um bei der Konfiguration des mindestens einen Sensors (z. B. des Bildsensors 102) verwendet zu werden.
  • Nun auf 7 Bezug nehmend, ist 7 ein Ablaufplan, der ein Verfahren 700 zur Kompensation von Flicker-Balken unter Verwendung von Bildern zeigt, die Ausführungsformen der vorliegenden Erfindung gemäß über verschiedene Zeitperioden aufgenommen wurden. Das Verfahren 700 umfasst in Block B702 das Aufnehmen eines ersten Bilds mit ersten Flicker-Balken über eine erste Zeitperiode. Zum Beispiel kann der Bildaufnahme-Manager 104 den Bildsensor 102 verwenden, um das Bild 110A mit einer ersten Belichtung durch eine oder mehrere Lichtquelle(n) über eine erste Zeitperiode aufzunehmen. Das Bild 110A kann Flicker-Balken enthalten, die durch die Lichtquelle(n) erzeugt wurden und der Wellenform 310A entsprechen.
  • Das Verfahren 700 umfasst in Block B704 das Aufnehmen eines zweiten Bilds mit zweiten Flicker-Balken über eine zweite Zeitperiode, die sich von der ersten Zeitperiode unterscheidet. Zum Beispiel kann der Bildaufnahme-Manager 104 den Bildsensor 102 verwenden, um über eine zweite Zeitperiode, die sich von der ersten Zeitperiode unterscheidet, das Bild 110B (oder 110C) mit einer zweiten Belichtung durch die Lichtquelle(n) aufzunehmen. Das Bild 110B kann Flicker-Balken enthalten, die durch die Lichtquelle(n) erzeugt wurden und der Wellenform 310B entsprechen.
  • Das Verfahren 700 umfasst in Block B706 das Konfigurieren mindestens eines Kameraparameters mindestens auf der Basis einer Schwingfrequenz einer oder mehrerer Lichtquelle(n), die mindestens auf der Basis der ersten Flicker-Balken und der zweiten Flicker-Balken bestimmt wird. Zum Beispiel kann der Bildaufnahme-Manager 104 (oder ein anderer Bildaufnahme-Manager) mindestens einen Kameraparameter mindestens auf der Basis einer Schwingfrequenz der Lichtquelle(n) konfigurieren, die mindestens auf der Basis der Flicker-Balken des Bilds 110A und der Flicker-Balken des Bilds 110B bestimmt wird.
  • BEISPIELHAFTES COMPUTERGERÄT
  • 8 ist ein Blockdiagramm eines beispielhaften Computergeräts 800, das zur Verwendung in der Implementierung einiger Ausführungsformen der vorliegenden Erfindung geeignet ist. Das Computergerät 800 kann ein Verbindungssystem 802 umfassen, das die folgenden Geräte direkt oder indirekt miteinander verbindet: Speicher 804, eine oder mehrere Zentraleinheiten (CPUs) 806, eine oder mehrere Grafikverarbeitungseinheiten (GPUs) 808, eine Kommunikationsschnittstelle 810, Ein-/Ausgabe (E/A)-Anschlüsse 812, Ein-/Ausgabe-Komponenten 814, eine Stromversorgung 816, eine oder mehrere Darstellungskomponenten 818 (z. B. Anzeige(n)) und eine oder mehrere Logikeinheiten 820. In mindestens einer Ausführungsform können Computergeräte 800 eine oder mehrere virtuelle Maschinen (VMs) umfassen, und/oder jede ihrer Komponenten kann virtuelle Komponenten (z. B. virtuelle Hardwarekomponenten) umfassen. Als nicht einschränkende Beispiele können eine oder mehrere der GPUs 808 eine oder mehrere vGPUs umfassen, eine oder mehrere der CPUs 806 können eine oder mehrere vCPUs umfassen, und/oder eine oder mehrere der Logikeinheiten 820 können eine oder mehrere virtuelle Logikeinheiten umfassen. Als solche können Computergeräten 800 diskrete Komponenten (z. B. eine volle GPU, die des Computergeräts 800 fest zugeordnet ist), virtuelle Komponenten (z. B. ein Teil einer GPU, die des Computergeräts 800 fest zugeordnet ist) oder eine Kombination davon umfassen.
  • Obwohl die verschiedenen Blöcke in 8 als über das Verbindungssystem 802 mit Leitungen verbunden dargestellt sind, ist dies nicht einschränkend zu verstehen und dient nur der Klarheit. In einigen Ausführungsformen kann beispielsweise eine Darstellungskomponente 818 wie z. B. ein Anzeigegerät als E/A-Komponente 814 betrachtet werden (z. B., wenn die Anzeige ein Berührungsbildschirm ist). Als weiteres Beispiel können die CPUs 806 und/oder GPUs 808 Speicher enthalten (z. B. kann der Speicher 804 ein Speichergerät zusätzlich zum Speicher der GPUs 808, der CPUs 806 und/oder anderer Komponenten darstellen). Mit anderen Worten, das Computergerät von 8 ist lediglich beispielhaft. Zwischen Kategorien wie „Arbeitsstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Gerät“, „mobiles Gerät“, „Handheld-Gerät“, „Spielkonsole“, „elektronische Steuereinheit (ECU)“, „Virtual-Reality-System“ und/oder anderen Geräte- oder Systemtypen wird nicht unterschieden, da sie alle als im Umfang des Computergeräts von 8 liegend betrachtet werden.
  • Das Verbindungssystem 802 kann eine oder mehrere Verbindungen oder Busse darstellen, wie z. B. einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination daraus. Das Verbindungssystem 802 kann einen oder mehrere Bus- oder Link-Typen umfassen, z. B. einen ISA (Industry Standard Architecture)-Bus, einen EISA (Extended Industry Standard Architecture)-Bus, einen VESA (Video Electronics Standards Association)-Bus, einen PCI (Peripheral Component Interconnect)-Bus, einen PCIe (Peripheral Component Interconnect Express)-Bus und/oder einen anderen Bus- oder Link-Typ. In einigen Ausführungsformen sind zwischen Komponenten direkte Verbindungen vorhanden. Zum Beispiel kann die CPU 806 direkt mit dem Speicher 804 verbunden sein. Außerdem kann die CPU 806 direkt mit der GPU 808 verbunden sein. Bei einer direkten oder Punkt-zu-Punkt-Verbindung zwischen Komponenten kann das Verbindungssystem 802 einen PCIe-Link zur Herstellung der Verbindung enthalten. In diesen Beispielen muss im Computergerät 800 kein PCI-Bus enthalten sein.
  • Der Speicher 804 kann verschiedene computerlesbare Medien umfassen. Computerlesbare Medien können jedes verfügbare Medium sein, auf welches das Computergerät 800 zugreifen kann. Computerlesbare Medien können sowohl flüchtige als auch nichtflüchtige Medien sowie entnehmbare und nicht entnehmbare Datenträger einschließen. Als nicht einschränkendes Beispiel können die computerlesbaren Medien Computerspeichermedien und Kommunikationsmedien umfassen.
  • Computer-Speichermedien können sowohl flüchtige als nicht flüchtige und/oder entnehmbare als auch nicht entnehmbare Datenträger einschließen, die in einem Verfahren oder einer Technologie zur Speicherung von Information wie z. B. computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Datentypen implementiert sind. Zum Beispiel kann der Speicher 804 computerlesbare Anweisungen (die z. B. ein oder mehrere Programme und/oder ein oder mehrere Programmelemente, wie z. B. ein Betriebssystem darstellen) speichern. Computer-Speichermedien können, ohne aber darauf beschränkt zu sein, einen RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, eine CD-ROM, DVD oder einen anderen optischen Speicher, Magnetbandkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichergeräte oder jedes andere Medium einschließen, das verwendbar ist, um die gewünschte Information zu speichern, und auf welches das Computergerät 800 zugreifen kann. Computerspeichermedien, wie hier verwendet, schließen keine Signale an sich ein.
  • Die Computerspeichermedien können typischerweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Datentypen in einem modulierten Datensignal wie z. B. einer Trägerwelle oder einem anderen Transportmechanismus verkörpern und schließen jedes Informationsbereitstellungsmedium ein. Der Ausdruck „moduliertes Datensignal“ bezieht sich auf ein Signal, das eine oder mehrere Eigenschaften aufweist, die eingestellt oder verändert werden, um Information in das Signal zu codieren. Zum Beispiel, und ohne darauf beschränkt zu sein, können Computerspeichermedien drahtgebundene Medien wie z. B. ein verdrahtetes Netzwerk oder eine direkt verdrahtete Verbindung und drahtlose Medien wie z. B. akustische, HF-, Infrarot- und andere drahtlose Medien einschließen. Kombinationen aus den obigen Medien fallen ebenfalls in den Umfang computerlesbarer Medien.
  • Die CPU(s) 806 können dazu konfiguriert sein, mindestens einige der computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponente(n) des Computergeräts 800 auszuführen, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Die CPU(s) 806 können jeweils einen oder mehrere Kerne (z. B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) umfassen, die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die CPU(s) 806 können jeden beliebigen Prozessortyp umfassen und je nach Typ des implementierten Computergeräts 800 unterschiedliche Prozessortypen enthalten (z. B. Prozessoren mit weniger Kernen für mobile Geräte und Prozessoren mit mehr Kernen für Server). Je nach Typ des Computergeräts 800 kann der Prozessor zum Beispiel ein Advanced RISC Machines (ARM)-Prozessor sein, der mit Reduced Instruction Set Computing (RISC) arbeitet, oder ein x86-Prozessor, der mit Complex Instruction Set Computing (CISC) arbeitet. Das Computergerät 800 kann zusätzlich zu einem oder mehreren Mikroprozessor(en) oder zusätzlichen Coprozessoren wie z. B. arithmetische Coprozessoren eine oder mehrere CPUs 806 umfassen.
  • Zusätzlich zu oder alternativ zu den CPU(s) 806 können die GPU(s) 808 dazu konfiguriert sein, mindestens einige der computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Computergeräts 800 auszuführen, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Eine oder mehrere GPU(s) 808 können eine integrierte GPU sein (z. B. mit einer oder mehreren der CPU(s) 806), und/oder eine oder mehrere GPU(s) 808 können eine diskrete GPU sein. In Ausführungsformen können eine oder mehrere GPU(s) 808 ein Coprozessor einer oder mehrerer CPU(s) 806 sein. Die GPU(s) 808 können vom Computergerät 800 zum Rendern von Grafiken (z. B. 3D-Grafiken) oder zur Durchführung allgemeiner Berechnungen verwendet werden. Die GPU(s) 808 können zum Beispiel für allgemeine Berechnungen in GPUs (GPGPU) verwendet werden. Die GPU(s) 808 können Hunderte oder Tausende von Kernen umfassen, die in der Lage sind, Hunderte oder Tausende von Software-Threads gleichzeitig zu verarbeiten. Die GPU(s) 808 können in Reaktion auf Rendering-Befehle (z. B. Rendering-Befehle von CPU(s) 806, die über eine Host-Schnittstelle empfangen werden) Pixeldaten für Ausgabebilder erzeugen. Die GPU(s) 808 können Grafikspeicher wie z. B. einen Anzeigespeicher zum Speichern von Pixeldaten oder anderen geeigneten Daten wie z. B. GPGPU-Daten umfassen. Der Anzeigespeicher kann Teil des Speichers 804 sein. Die GPU(s) 808 können zwei oder mehr GPUs umfassen, die (z. B. über einen Link) parallel arbeiten. Der Link kann die GPUs direkt verbinden (z. B. mit NVLINK) oder kann die GPUs über einen Schalter verbinden (z. B. mit NVSwitch). In Kombination miteinander kann jede GPU 808 Pixeldaten oder jede GPGPU Daten für verschiedene Teile einer Ausgabe oder für verschiedene Ausgaben erzeugen (z. B. eine erste GPU für ein erstes Bild und eine zweite GPU für ein zweites Bild). Jede GPU kann ihren eigenen Speicher haben oder den Speicher gemeinsam mit anderen GPUs nutzen.
  • Zusätzlich oder alternativ zu den CPU(s) 806 und/oder den GPU(s) 808 können Logikeinheit(en) 820 dazu konfiguriert sein, mindestens einige der computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Computergeräts 800 auszuführen, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. In Ausführungsformen können die CPU(s) 806, die GPU(s) 808 und/oder die Logikeinheit(en) 820 einzeln oder gemeinsam eine beliebige Kombination der Verfahren, Prozesse und/oder Teile davon durchführen. Eine oder mehrere der Logikeinheiten 820 können in einer oder mehreren CPU(s) 806 und/oder GPU(s) 808 integriert sein und/oder eine oder mehrere der Logikeinheiten 820 können Einzelkomponenten sein oder auf andere Weise außerhalb der CPU(s) 806 und/oder der GPU(s) 808 liegen. In Ausführungsformen können eine oder mehrere der Logikeinheiten 820 ein Koprozessor einer oder mehrerer CPU(s) 806 und/oder einer oder mehrerer GPU(s) 808 sein.
  • Beispiele für Logikeinheit(en) 820 schließen einen oder mehrere Verarbeitungskerne und/oder Komponenten davon wie z. B. Tensor-Kerne (Tensor Cores (TCs)), Tensor-Verarbeitungseinheiten (Tensor Processing Units (TPUs)), Pixel Visual Cores (PVCs), Visionsverarbeitungseinheiten (Vision Processing Units (VPUs)), Grafik-Verarbeitungscluster (Graphics Processing Clusters (GPCs)), Textur-Verarbeitungscluster (Texture Processing Clusters (TPCs)), Streaming-Multiprozessoren (SMs), Baumdurchlaufeinheiten (Tree Traversal Units (TTUs)), KI-Beschleuniger (Artificial Intelligence Accelerators (AIAs)), Deep Learning-Beschleuniger (Deep Learning Accelerators (DLAs)), arithmetische Logikeinheiten (ALUs), anwendungsspezifische integrierte Schaltkreise (ASICs), Fließkomma-Einheiten (FPUs), Eingabe-/Ausgabe (E/A)-Elemente, PCI (Peripheral Component Interconnect)- oder PCIe (Peripheral Component Interconnect Express)-Elemente und/oder dergleichen ein.
  • Die Kommunikationsschnittstelle 810 kann einen oder mehrere Empfänger, Sender und/oder Transceiver umfassen, die es dem Computergerät 800 ermöglichen, mit anderen Computergeräten über ein elektronisches Kommunikationsnetzwerk zu kommunizieren, einschließlich drahtgebundener und/oder drahtloser Kommunikation. Die Kommunikationsschnittstelle 810 kann Komponenten und Funktionalitäten einschließen, die die Kommunikation über eine Anzahl verschiedener Netzwerke wie z. B. drahtlose Netzwerke (z. B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), drahtgebundene Netzwerke (z. B. Kommunikation über Ethernet oder InfiniBand), Low-Power-Weitverkehrsnetze (z. B. LoRaWAN, SigFox usw.) und/oder das Internet ermöglichen.
  • Die E/A-Anschlüsse 812 ermöglichen es dem Computergerät 800, logisch mit anderen Geräten einschließlich E/A-Komponenten 814, Darstellungskomponente(n) 818 und/oder anderer Komponenten, von denen einige in des Computergeräts 800 eingebaut (z.B. darin integriert) sein können, gekoppelt zu werden. Beispielhafte E/A-Komponenten 814 schließen ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, einen Gamecontroller, eine Satellitenschüssel, einen Scanner, einen Drucker, ein drahtloses Gerät usw. ein. Die E/A-Komponenten 814 können eine natürliche Benutzerschnittstelle (NUI) bereitstellen, die Luftgesten, Sprache oder andere physiologische Eingaben eines Benutzers verarbeitet. In manchen Fällen können die Eingaben zur Weiterverarbeitung an ein geeignetes Netzwerkelement übertragen werden. Eine NUI kann eine beliebige Kombination aus Spracherkennung, Stifterkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf dem Bildschirm als auch neben dem Bildschirm, Luftgesten, Kopf- und Augenverfolgung und Berührungserkennung (wie weiter unten ausführlicher beschrieben) im Zusammenhang mit einer Anzeige des Computergeräts 800 implementieren. Das Computergerät 800 kann Tiefenkameras wie z. B. stereoskopische Kamerasysteme, Infrarot-Kamerasysteme, RGB-Kamerasysteme, Berührungsbildschirm-Technologie und Kombinationen daraus zur Gesten-Detektion und - Erkennung und Steuerung einschließen. Zusätzlich kann das Computergerät 800 Beschleunigungsmesser oder Gyroskope (z. B. als Teil einer Trägheitsmesseinheit (IMU)) einschließen, die eine Bewegungserkennung ermöglichen. In manchen Beispielen kann die Ausgabe von Beschleunigungsmessern oder Gyroskopen vom Computergerät 800 verwendet werden, um immersive erweiterte Realität oder virtuelle Realität zu rendern.
  • Die Stromversorgung 816 kann eine fest verdrahtete Stromversorgung, eine Batteriestromversorgung oder eine Kombination daraus sein. Die Stromversorgung 816 kann das Computergerät 800 mit Strom versorgen, um den Betrieb der Komponenten des Computergeräts 800 zu ermöglichen.
  • Die Darstellungskomponente(n) 818 können eine Anzeige (z. B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, ein Head-up-Display (HUD), andere Typen von Anzeigen oder eine Kombination daraus), Lautsprecher und/oder andere Darstellungskomponenten umfassen. Die Darstellungskomponente(n) 818 können Daten von anderen Komponenten (z. B. GPU(s) 808, CPU(s) 806 usw.) empfangen und die Daten (z. B. als Bild, Video, Ton usw.) ausgeben.
  • BEISPIELHAFTES DATENZENTRUM
  • 9 stellt ein beispielhaftes Datenzentrum 900 dar, das in mindestens euner Ausführungsform der vorliegenden Erfindung verwendet werden kann. Das Datenzentrum 900 kann eine Datenzentrumsinfrastrukturebene 910, eine Framework-Ebene 920, eine Software-Ebene 930 und/oder eine Anwendungsebene 940 umfassen.
  • Wie in 9 dargestellt, kann die Datenzentrumsinfrastrukturebene 910 einen Ressourcen-Orchestrator 912, gruppierte Rechenressourcen 914 und Knoten-Rechenressourcen („Knoten-RR“) 916(1)-916(N), umfassen, wobei „N“ eine beliebige positive Ganzzahl darstellt. In mindestens einer Ausführungsform können die Knoten-RR 916(1)-916(N), ohne darauf beschränkt zu sein, eine beliebige Anzahl von Zentraleinheiten (CPUs) oder anderen Prozessoren (einschließlich Beschleunigern, feldprogrammierbaren Gate-Arrays (FPGAs), Grafikprozessoren oder Grafikverarbeitungseinheiten (GPUs) usw.), Arbeitsspeicher (z. B. , dynamischer Festwertspeicher), Speichergeräten (z. B. Festkörper- oder Plattenlaufwerke), Netzwerk-Eingabe-/Ausgabe (NW E/A)- Geräten, Netzwerk-Switches, virtuelle Maschinen (VMs), Stromversorgungsmodulen und/oder Kühlmodulen usw. umfassen. In manchen Ausführungsformen können eine oder mehrere Knoten-RR unter den Knoten-RR 916(1)-916(N) einem Server entsprechen, der eine oder mehrere der obigen Rechenressourcen aufweist. Darüber hinaus können die Knoten-RR 916(1)-9161(N) in manchen Ausführungsformen eine oder mehrere virtuelle Komponenten wie z. B. vGPUs, vCPUs und/oder dergleichen umfassen, und/oder eine oder mehrere der Knoten-RR 916(1)-916(N) können einer virtuellen Maschine (VM) entsprechen.
  • In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 914 separate Gruppierungen von Knoten-RR 916 umfassen, die in einem oder mehreren Racks (nicht dargestellt) oder zahlreichen Racks in Datenzentren an verschiedenen geografischen Standorten (ebenfalls nicht dargestellt) untergebracht sind. Separate Gruppierungen von Knoten-RR 916 innerhalb gruppierter Rechenressourcen 914 können gruppierte Rechen-, Netzwerk- oder Speicher-Ressourcen umfassen, die dazu konfiguriert oder vorgesehen sein können, eine oder mehrere Arbeitslasten zu unterstützen. In mindestens einer Ausführungsform können mehrere Knoten-RR 916, die CPUs, GPUs und/oder anderer Prozessoren einschließen, in einem oder mehreren Racks gruppiert sein, um Rechenressourcen zur Unterstützung einer oder mehrerer Arbeitslasten bereitzustellen. Das oder die Racks können auch eine beliebige Anzahl von Stromversorgungsmodulen, Kühlmodulen und/oder Netzwerk-Switches in beliebiger Kombination umfassen.
  • Der Ressourcen-Orchestrator 922 kann einen oder mehrere Knoten-RR 916(1)-916(N) und/oder gruppierte Rechenressourcen 914 konfigurieren oder auf andere Weise steuern. In mindestens einer Ausführungsform kann der Ressourcen-Orchestrator 922 ein Verwaltungsorgan für die Software-Design-Infrastruktur (SDI) des Datenzentrums 900 umfassen. Der Ressourcen-Orchestrator 922 kann Hardware, Software oder einer Kombination daraus umfassen.
  • In mindestens einer Ausführungsform, wie in 9 gezeigt, kann die Framework-Ebene 920 einen Job-Scheduler 932, einen Konfigurationsmanager 934, einen Ressourcenmanager 936 und/oder ein verteiltes Dateisystem 938 umfassen. Die Framework-Ebene 920 kann ein System zur Unterstützung der Software 952 der Software-Ebene 930 und/oder einer oder mehrerer Anwendung(en) 942 der Anwendungsebene 940 umfassen. Die Software 952 oder die Anwendung(en) 942 können webbasierte Dienstsoftware oder Anwendungen umfassen, wie z. B. jene, die von Amazon Web Services, Google Cloud und Microsoft Azure angeboten werden. Die Framework-Ebene 920 kann, ohne darauf beschränkt zu sein, ein freies und Open Source Software-Webapplikationsframework wie Apache SparkTM (im Folgenden „Spark“ genannt) sein, das ein verteiltes Dateisystem 938 zur Verarbeitung großer Datenmengen (z. B. „Big Data“) verwenden kann. In mindestens einer Ausführungsform kann der Job Scheduler 932 einen Spark-Treiber umfassen, um die Planung der Arbeitslasten, die von verschiedenen Ebenen des Datenzentrums 900 unterstützt werden, zu erleichtern. Der Konfigurationsmanager 934 kann in der Lage sein, verschiedene Ebenen wie die Software-Ebene 930 und die Framework-Ebene 920 einschließlich Spark und des verteilten Dateisystems 938 zu konfigurieren, um die Verarbeitung großer Datenmengen zu unterstützen. Der Ressourcenmanager 936 kann in der Lage sein, gebündelte oder gruppierte Rechenressourcen zu verwalten, die zur Unterstützung des verteilten Dateisystems 938 und des Job Schedulers 932 zugeordnet oder zugewiesen sind. In mindestens einer Ausführungsform können gebündelte oder gruppierte Rechenressourcen gruppierte Rechenressourcen 914 auf der Infrastrukturebene 910 des Datenzentrums einschließen. Der Ressourcenmanager 1036 kann sich mit dem Ressourcen-Orchestrator 912 abstimmen, um diese zugeordneten oder zugewiesenen Rechenressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann die in der Software-Ebene 930 enthaltene Software 952 Software einschließen, die von mindestens einem Teil der Knoten-RR 916(1)-916(N), der gruppierten Rechenressourcen 914 und/oder des verteilten Dateisystems 938 der Framework-Ebene 920 verwendet wird. Eine oder mehrere Arten von Software können, ohne darauf beschränkt zu sein, Suchsoftware für Internet-Webseiten, Scansoftware für E-Mail-Viren, Datenbanksoftware und Streaming-Software für Videoinhalte umfassen.
  • In mindestens einer Ausführungsform können die in der Anwendungsebene 940 enthaltenen Anwendung(en) 942 eine oder mehrere Anwendungstypen umfassen, die mindestens von einem Teil der Knoten-RR 916(1)-916(N), der gruppierten Rechenressourcen 914 und/oder des verteilten Dateisystems 938 der Framework-Ebene 920 verwendet werden. Die Anwendungstypen können, ohne darauf beschränkt zu sein, eine beliebige Zahl von Anwendungen umfassen, wie z. B. eine Genomik-Anwendung, Cognitive Computing, und eine Maschinenlernanwendung, einschließlich Trainings- oder Inferencing-Software, Maschinenlern-Framework-Software (z. B. PyTorch, TensorFlow, Caffe usw.) und/oder andere Maschinenlernanwendungen, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden.
  • In mindestens einer Ausführungsform können der Konfigurationsmanager 934, der Ressourcenmanager 936 und der Ressourcen-Orchestrator 912 auf der Basis einer beliebigen Menge und Art von Daten, die auf jede technisch machbare Weise erfasst werden, eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen implementieren. Selbstmodifizierende Aktionen können einen Datenzentrumsbetreiber des Datenzentrums 900 davon entbinden, möglicherweise schlechte Konfigurationsentscheidungen zu treffen, um nicht ausgelastete und/oder schlecht funktionierende Teile eines Datenzentrums zu vermeiden.
  • Das Datenzentrum 900 kann Tools, Dienste, Software oder andere Ressourcen enthalten, um ein oder mehrere Maschinenlernmodelle zu trainieren oder unter Verwendung eines oder mehrerer Maschinenlernmodelle gemäß einer oder mehreren hier beschriebenen Ausführungsformen Information vorherzusagen oder zu inferieren. Zum Beispiel können ein oder mehrere Maschinenlernmodelle trainiert werden, indem unter Verwendung von Software und/oder Rechenressourcen, die oben in Bezug auf das Datenzentrum 900 beschrieben wurden, Gewichtungsparameter einer neuronalen Netzarchitektur berechnet werden. In mindestens einer Ausführungsform können trainierte oder eingesetzte Maschinenlernmodelle, die einem oder mehreren neuronalen Netzen entsprechen, verwendet werden, um unter Verwendung der oben in Bezug auf das Datenzentrum 900 beschriebenen Ressourcen Information zu inferieren oder vorherzusagen, indem sie Gewichtungsparameter verwenden, die durch eine oder mehrere Trainingstechniken, wie z. B., ohne jedoch darauf beschränkt zu sein, die hier beschriebenen berechnet wurden.
  • In mindestens einer Ausführungsform kann das Datenzentrum 900 CPUs, anwendungsspezifische integrierte Schaltungen (ASICs), GPUs, FPGAs und/oder andere Hardware (oder entsprechende virtuelle Rechenressourcen) verwenden, um das Training und/oder Inferencing unter Verwendung der oben beschriebenen Ressourcen durchzuführen. Darüber hinaus können eine oder mehrere der oben beschriebenen Software- und/oder Hardware-Ressourcen als ein Dienst konfiguriert sein, der es Benutzern ermöglicht, Information wie z. B. Bilderkennung, Spracherkennung oder andere KI-Dienste zu trainieren oder zu inferieren.
  • BEISPIELHAFTE NETZWERKUMGEBUNGEN
  • Netzwerkumgebungen, die zur Verwendung in der Implementierung von Ausführungsformen der Erfindung geeignet sind, können ein oder mehrere Client-Geräte, Server, Netzwerkspeicher (NAS), andere Backend-Geräte und/oder andere Gerätetypen umfassen. Die Client-Geräte, Server und/oder anderen Gerätetypen (z. B. jedes Gerät) können in einer oder mehreren Instanzen der Computergerät(e) 800 von 8 implementiert sein - z. B. kann jedes Gerät ähnliche Komponenten, Merkmale und/oder Funktionalitäten der Computergerät(e) 800 aufweisen. Wenn Backend-Geräte (z. B. Server, NAS usw.) implementiert sind, können die Backend-Geräte außerdem Teil eines Datenzentrums 900 sein, das hier auf 9 Bezug nehmend beispielhaft beschrieben wurde.
  • Komponenten einer Netzwerkumgebung können über ein oder mehrere Netzwerk(e), die drahtgebunden, drahtlos oder beides sein können, miteinander kommunizieren. Das Netzwerk kann mehrere Netzwerke oder ein Netzwerk von Netzwerken umfassen. Das Netzwerk kann beispielsweise ein oder mehrere Weitverkehrsnetze (WANs), ein oder mehrere lokale Netzwerke (LANs), ein oder mehrere öffentliche Netzwerke wie z. B. das Internet und/oder ein öffentliches Telefonnetz (PSTN) und/oder ein oder mehrere private Netzwerke umfassen. Wenn das Netzwerk ein drahtloses Telekommunikationsnetz umfasst, können Komponenten wie z. B. eine Basisstation, ein Kommunikationsturm oder sogar Zugangspunkte (sowie andere Komponenten) drahtlose Konnektivität bereitstellen.
  • Kompatible Netzwerkumgebungen können eine oder mehrere Peer-to-Peer-Netzwerkumgebung(en) - in diesem Fall darf ein Server nicht in einer Netzwerkumgebung enthalten sein - und eine oder mehrere Client-Server-Netzwerkumgebungen - in diesem Fall können ein oder mehrere Server in einer Netzwerkumgebung enthalten sein - umfassen. In Peerto-Peer-Netzwerkumgebungen kann die Funktionalität, die hier in Bezug auf einen oder mehrere Server beschrieben wurde, auf einer beliebigen Anzahl von Client-Geräten implementiert sein.
  • In mindestens einer Ausführungsform kann eine Netzwerkumgebung eine oder mehrere Cloud-basierte Netzwerkumgebungen, eine verteilte Rechenumgebung, eine Kombination daraus usw. umfassen. Eine Cloud-basierte Netzwerkumgebung kann eine Framework-Ebene, einen Job-Scheduler, einen Ressourcen-Manager und ein verteiltes Dateisystem umfassen, die auf einen oder mehreren Servern implementiert sind, welche einen oder mehrere Kernnetzwerkserver und/oder Edge-Server umfassen können. Eine Framework-Ebene kann ein Framework zur Unterstützung der Software einer Software-Ebene und/oder einer oder mehrerer Anwendungen einer Anwendungsebene umfassen. Die Software oder Anwendung(en) können auch webbasierte Dienst-Software oder -Anwendungen umfassen. In Ausführungsformen können ein oder mehrere Client-Geräte webbasierte Dienst-Software oder - Anwendungen verwenden (z. B., indem über eine oder mehrere Anwendungsprogrammierschnittstellen (APIs) auf Dienst-Software und/oder -Anwendungen zugegriffen wird). Die Framework-Ebene kann, ohne darauf beschränkt zu sein, eine Art freies und Open-Source-Software-Webapplikationsframework wie z. B. eines sein, das ein verteiltes Dateisystem zur Verarbeitung großer Datenmengen (z. B. „Big Data“) verwenden kann.
  • Eine Cloud-basierte Netzwerkumgebung kann Cloud-Computing und/oder Cloud-Speicher bereitstellen, die eine beliebige Kombination der hier beschriebenen Rechen- und/oder Datenspeicherfunktionen (oder einen oder mehrere Teil(e) davon) durchführen. Jede dieser verschiedenen Funktionen kann auf Zentral- oder Kernserver an mehreren Standorten verteilt sein (z. B. in einem oder mehreren Datenzentren, die innerhalb eines Staats, einer Region, eines Lands, weltweit usw. verteilt sein können). Wenn eine Verbindung zu einem Benutzer (z. B. einem Client-Gerät) relativ nahe an Edge-Server(n) liegt, kann ein Kernserver den Edge-Server(n) mindestens einen Teil der Funktionalität zuweisen. Eine Cloud-basierte Netzwerkumgebung kann privat (z. B. auf eine einzelne Organisation beschränkt), öffentlich (z. B. für viele Organisationen verfügbar) und/oder eine Kombination daraus (z. B. eine hybride Cloud-Umgebung) sein.
  • Client-Gerät(e) können mindestens einige der Komponenten, Merkmale und Funktionalitäten der beispielhaften Computergerät(e) 800 umfassen, die hier Bezug nehmend auf 8 beschrieben wurde. Ein Client-Gerät kann beispielsweise, ohne darauf beschränkt zu sein, als Personal Computer (PC), Laptop, mobiles Gerät, Smartphone, Tablet-Computer, intelligente Uhr, tragbarer Computer, persönlicher digitaler Assistent (PDA), MP3-Player, Virtual-Reality-Headset, globales Positionsbestimmungssystem (GPS) oder GPS-Gerät, Videoplayer, Videokamera, Überwachungsgerät oder -system, Fahrzeug, Boot, fliegendes Wasserfahrzeug, virtuelle Maschine, Drohne, Roboter, tragbares Kommunikationsgerät, Klinikgerät, Spielgerät oder -system, Unterhaltungssystem, Fahrzeugcomputersystem, Embedded-System-Controller, Fernbedienung, Zubehör, Unterhaltungselektronikgerät, Arbeitsstation, Edge-Gerät und eine beliebige Kombination dieser aufgeführten Geräte oder jedes anderen geeigneten Geräts ausgeführt werden.
  • Die Erfindung kann im allgemeinen Kontext von Computercode oder maschinenlesbaren Anweisungen, einschließlich computerausführbarer Anweisungen wie z. B. Programmmodulen beschrieben werden, die von einem Computer oder einem anderen Gerät wie z. B. einem persönlichen digitalen Assistenten (PDA) oder einem anderen Handheld-Gerät ausgeführt werden. Allgemein beziehen sich Programmmodule, die Routinen, Programme, Objekte, Komponenten, Datenstrukturen, usw. einschließen, auf einen Code, der bestimmte Aufgaben durchführt oder bestimmte abstrakte Datentypen implementiert. Die Erfindung kann in einer Vielzahl von Systemkonfigurationen einschließlich Handheld-Geräten, Unterhaltungselektronik, Universal computern, spezialisierteren Computern usw. realisiert werden. Die Erfindung kann auch in verteilten Rechenumgebungen ausgeführt werden, in denen Aufgaben durch Fernverarbeitungseinheiten ausgeführt werden, die durch ein Kommunikationsnetzwerk miteinander verbunden sind.
  • Wenn hier zwei oder mehr Elemente durch „und/oder“ verbunden sind, ist dies als nur ein Element oder eine Kombination von Elementen aufzufassen. Zum Beispiel kann „Element A, Element B und/oder Element C“ nur Element A, nur Element B, nur Element C, Element A und Element B, Element A und Element C, Element B und Element C oder die Elemente A, B und C einschließen. Darüber hinaus kann „mindestens eines vom Element A oder vom Element B“ mindestens eines vom Element A, mindestens eines vom Element B oder mindestens eines vom Element A und mindestens eines vom Element B einschließen. Ferner kann „mindestens eines der Elemente A und vom Element B“ mindestens eines vom Element A, mindestens eines vom Element B oder mindestens eines vom Element A und mindestens eines vom Element B einschließen.
  • Der Gegenstand der vorliegenden Erfindung wird hier auf spezifische Weise beschrieben, um gesetzliche Anforderungen zu erfüllen. Doch die Beschreibung an sich soll den Umfang dieser Erfindung nicht einschränken. Vielmehr haben die Erfinder in Betracht gezogen, dass der beanspruchte Gegenstand auch auf andere Weise ausgeführt werden kann, um verschiedene Schritte oder Kombinationen von Schritten, die mit denen vergleichbar sind, die in diesem Dokument beschrieben wurden, in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien zu umfassen. Auch wenn hier die Begriffe „Schritt“ und/oder „Block“ verwendet wurden, um verschiedene Elemente der verwendeten Verfahren zu bezeichnen, sind die Begriffe nicht so zu interpretieren, dass sie eine bestimmte Reihenfolge unter oder zwischen hier offenbarten Schritten implizieren, es sei denn, die Reihenfolge von Einzelschritten wird ausdrücklich beschrieben.

Claims (20)

  1. Verfahren, umfassend: Empfangen erster Bilddaten von einem oder mehreren Mehrfachbelichtungssensor(en), die über eine erste Zeitperiode einer oder mehreren Lichtquellen ausgesetzt wurden, wobei die ersten Bilddaten für mindestens einen Teil eines ersten Bilds eines Einzelbilds repräsentativ sind und das erste Bild erste Flicker-Balken enthält, die durch die Lichtquelle(n) erzeugt wurden; Empfangen zweiter Bilddaten von dem oder den Mehrfachbelichtungssensor(en), die mindestens über die erste Zeitperiode und eine zweite Zeitperiode, die auf die erste Zeitperiode folgt, einer oder mehreren Lichtquellen ausgesetzt wurden, wobei die zweiten Bilddaten mindestens für einen Teil eines zweiten Bilds des Einzelbilds repräsentativ sind und das zweite Bild zweite Flicker-Balken enthält, die durch die Lichtquelle(n) erzeugt wurden; und Bestimmen einer Konfiguration mindestens eines Kameraparameters auf der Basis mindestens einer Differenz zwischen den ersten Flicker-Balken und den zweiten Flicker-Balken, die unter Verwendung der ersten Bilddaten und der zweiten Bilddaten berechnet wird.
  2. Verfahren nach Anspruch 1, wobei der mindestens eine Kameraparameter eine Belichtungszeit umfasst, die zur Aufnahme eines oder mehrerer Bilder verwendet wird, und die Belichtungszeit einem Vielfachen der halben Schwingfrequenz der Lichtquelle(n) entspricht.
  3. Verfahren nach Anspruch 1 oder 2, wobei das erste Bild und das zweite Bild mit Belichtungszeiten aufgenommen werden, die einen gemeinsamen Startzeitpunkt haben.
  4. Verfahren nach einem der vorherigen Ansprüche, außerdem umfassend ein Berechnen der Differenz unter Verwendung der ersten Bilddaten und der zweiten Bilddaten auf der Basis mindestens einer ersten Phasendifferenz zwischen den ersten Flicker-Balken und den zweiten Flicker-Balken, die größer ist als eine zweite Phasendifferenz zwischen den ersten Flicker-Balken und dritten Flicker-Balken eines dritten Bilds des Einzelbilds, das mit dem einen oder mehreren Mehrfachbelichtungssensor(en) aufgenommen wurde.
  5. Verfahren nach einem der vorherigen Ansprüche, außerdem umfassend ein Konfigurieren einer oder mehrerer Belichtungszeit(en), die von dem oder den Mehrfachbelichtungssensor(en) verwendet werden, derart, dass die ersten Flicker-Balken und die zweiten Flicker-Balken voneinander phasenverschoben sind.
  6. Verfahren nach einem der vorherigen Ansprüche, wobei der mindestens eine Kameraparameter ein Parameter des einen oder mehrerer Mehrfachbelichtungssensor(en) ist.
  7. Verfahren nach einem der vorherigen Ansprüche, wobei der mindestens eine Kameraparameter ein Parameter eines oder mehrerer Einzelbelichtungssensor(en) ist.
  8. Verfahren nach einem der vorherigen Ansprüche, wobei die Differenz zwischen den ersten Flicker-Balken und den zweiten Flicker-Balken mindestens auf der Basis der Subtraktion der ersten Flicker-Balken und der zweiten Flicker-Balken voneinander berechnet wird.
  9. System, umfassend: eine oder mehrere Verarbeitungseinheiten; ein oder mehrere Speichergeräte, die Anweisungen speichern, die, wenn sie von der oder den Verarbeitungseinheit(en) ausgeführt werden, die Verarbeitungseinheit(en) dazu veranlassen, Operationen auszuführen, die Folgendes umfassen: Empfangen erster Bilddaten, die mindestens für einen Teil eines ersten Bilds repräsentativ sind, das mit einer ersten Belichtung durch eine oder mehrere Lichtquelle(n) über einen erste Zeitperiode aufgenommen wurde, wobei das erste Bild erste Flicker-Balken enthält, die durch die Lichtquelle(n) erzeugt wurden; Empfangen von zweiten Bilddaten, die mindestens für einen Teil eines zweiten Bilds repräsentativ sind, das mit einer zweiten Belichtung durch eine oder mehrere Lichtquelle(n) über eine zweite Zeitperiode, die sich teilweise mit der ersten Zeitperiode überschneidet, aufgenommen wurde, wobei das zweite Bild zweite Flicker-Balken enthält, die durch die Lichtquelle(n) erzeugt wurden; Bestimmen, unter Verwendung der ersten Bilddaten und der zweiten Bilddaten, einer Schwingfrequenz der Lichtquelle(n) mindestens auf der Basis der ersten Flicker-Balken und der zweiten Flicker-Balken; und Übertragen von Daten, die mindestens auf der Basis der Schwingfrequenz die Konfiguration mindestens eines Sensors bewirken.
  10. System nach Anspruch 9, wobei das erste Bild und das zweite Bild von einem selben Einzelbild sind, das durch einen oder mehrere Mehrfachbelichtungssensor(en) aufgenommen wurde.
  11. System nach Anspruch 9 oder 10, wobei das erste Bild mit einen ersten Sensor und das zweite Bild mit einem zweiten Sensor aufgenommen wird.
  12. System nach einem der Ansprüche 9 bis 11, wobei die Konfiguration die einer Belichtungszeit ist, die der mindestens eine Sensor zur Aufnahme eines oder mehrerer Bilder verwendet.
  13. System nach einem der Ansprüche 9 bis 12, wobei das erste Bild und das zweite Bild mit Belichtungszeiten aufgenommen werden, die einen gemeinsamen Startzeitpunkt haben.
  14. System nach einem der Ansprüche 9 bis 13, wobei das Bestimmen der Schwingfrequenz das Berechnen einer Differenz zwischen den ersten Flicker-Balken und den zweiten Flicker-Balken umfasst.
  15. System nach einem der Ansprüche 9 bis 14, wobei das System in mindestens einem enthalten ist von: einem Steuersystem für eine autonome oder halbautonome Maschine; einem Wahrnehmungssystem für eine autonome oder halbautonome Maschine; einem System zur Durchführung von Simulationsoperationen; einem System zur Durchführung von Deep-Learning-Operationen; einem System, das mit einem Edge-Device implementiert ist; einem System, das mit einem Roboter implementiert ist; einen System, das eine oder mehrere virtuelle Maschinen (VMs) integriert; einem System, das mindestens zum Teil in einem Datenzentrum implementiert ist; oder einem System, das mindestens zum Teil mit Cloud-Computing-Ressourcen implementiert ist.
  16. Prozessor, umfassend: einen oder mehrere Schaltkreise, um mit einer ersten Belichtung durch eine oder mehrere Lichtquelle(n) über eine erste Zeitperiode ein erstes Bild aufzunehmen, wobei das erste Bild erste Flicker-Balken enthält, die durch die Lichtquelle(n) erzeugt wurden, mit einer zweiten Belichtung durch die Lichtquelle(n) über eine zweite Zeitperiode, die sich von der ersten Zeitperiode unterscheidet, ein zweites Bild aufzunehmen, wobei das zweite Bild zweite Flicker-Balken enthält, die durch die Lichtquelle(n) erzeugt wurden, und mindestens einen Kameraparameter auf der Basis mindestens einer Schwingfrequenz der Lichtquelle(n), die mindestens auf der Basis der ersten Flicker-Balken und der zweiten Flicker-Balken bestimmt wird, zu konfigurieren.
  17. Prozessor nach Anspruch 16, wobei das erste Bild und das zweite Bild von einem selben Einzelbild sind, das durch ein oder mehrere Mehrfachbelichtungssensor(en) eines Kamerageräts aufgenommen wurde.
  18. Prozessor nach Anspruch 16 oder 17, wobei das erste Bild und das zweite Bild mit Belichtungszeiten aufgenommen werden, die einen gemeinsamen Startzeitpunkt haben.
  19. Prozessor nach einem der Ansprüche 16 bis 18, wobei die erste Belichtung für eine erste Zeitperiode erfolgt, die innerhalb einer zweiten Zeitperiode für die zweite Belichtung auftritt.
  20. Prozessor nach einem der Ansprüche 16 bis 19, wobei der oder die Schaltkreis(e) die eines Kamerageräts sind.
DE102022105650.3A 2021-03-12 2022-03-10 Erkennung von flicker-balken mit mehrfachbelichtungssensoren Pending DE102022105650A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/199,797 2021-03-12
US17/199,797 US11451718B1 (en) 2021-03-12 2021-03-12 Detecting flicker bands using multi-exposure sensors

Publications (1)

Publication Number Publication Date
DE102022105650A1 true DE102022105650A1 (de) 2022-09-15

Family

ID=83005249

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022105650.3A Pending DE102022105650A1 (de) 2021-03-12 2022-03-10 Erkennung von flicker-balken mit mehrfachbelichtungssensoren

Country Status (3)

Country Link
US (1) US11451718B1 (de)
CN (1) CN115082279A (de)
DE (1) DE102022105650A1 (de)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110255786A1 (en) * 2010-04-20 2011-10-20 Andrew Hunter Method and apparatus for determining flicker in the illumination of a subject
US9432590B2 (en) 2014-01-22 2016-08-30 Nvidia Corporation DCT based flicker detection
JP2016034094A (ja) * 2014-07-31 2016-03-10 ソニー株式会社 画像処理装置、画像処理方法、プログラム、およびイメージセンサ
US10986284B2 (en) * 2019-03-11 2021-04-20 Intel Corporation Light flicker mitigation in machine vision systems

Also Published As

Publication number Publication date
US20220294970A1 (en) 2022-09-15
CN115082279A (zh) 2022-09-20
US11451718B1 (en) 2022-09-20

Similar Documents

Publication Publication Date Title
DE112018007721T5 (de) Aufnehmen und modifizieren von 3D-Gesichtern unter Verwendung neuronaler Bild-und Zeitverfolgungsnetze
DE112016001524T5 (de) Informationsverarbeitungseinrichtung, Informationsverarbeitungsverfahren und Programm
DE112016005809T5 (de) Lichtfeld-Rendering eines Bildes unter Verwendung variabler Rechenkomplexität
DE102022110657A1 (de) High-dynamic-range-bildverarbeitung mit festen kalibrierungseinstellungen
DE102019218373A1 (de) Hemisphären-cubemap-projektionsformat inabbildungsumgebungen
DE102022100638A1 (de) Tracking und Kompensation von Pixeldegradation bei Display-Technologien
DE112021000108T5 (de) Entrauschungstechniken für rekurrente unschärfen bei raytracing-anwendungen
DE112022002079T5 (de) Hochpräzise semantische bildbearbeitung mit neuronalen netzen für systeme und anwendungen zur erzeugung synthetischer daten
DE102019005885A1 (de) Umgebungskartengenerierung und Lochfüllung
DE102022121508A1 (de) Extraktion von ereignisinformation aus spielprotokollendurch natursprachenverarbeitung
DE102019121200A1 (de) Bewegungsadaptives rendern mittels shading mit variabler rate
DE102022118651A1 (de) Mehrfachauflösung-hash-codierung für neuronale netzwerke
DE102021125895A1 (de) Latenzbestimmungen für einrichtungen mit menschlicher schnittstelle
DE102021104310A1 (de) Reservoir-basiertes räumlich-zeitliches resampling nach wichtigkeit unter verwendung einer globalen beleuchtungsdatenstruktur
DE102021132529A1 (de) Adaptive zeitliche bildfilterung zum rendern einer realistischen beleuchtung
DE102021128286A1 (de) Adaptives abtasten mit einer zielabtastrate
WO2015186284A1 (ja) 画像処理装置、画像処理方法及びプログラム
DE102023125923A1 (de) Generative modelle maschinellen lernens für datenschutzerhaltende synthetische datenerzeugung unter verwendung von diffusion
DE102020210030A1 (de) Verfahren und Vorrichtung zur Visualisierung von dreidimensionalen Objekten
DE102022105650A1 (de) Erkennung von flicker-balken mit mehrfachbelichtungssensoren
DE112022002137T5 (de) Hybrides differenzierbares Rendering für Lichttransportsimulationssysteme und -Anwendungen
DE102021117294A1 (de) 3D-Texturieren mittels eines Renderverlusts
CN115048954A (zh) 一种仿视网膜的目标检测方法、装置、存储介质及终端
DE102022120999A1 (de) Inverses transformations-sampling durch raytracing
DE102022100517A1 (de) Verwenden von intrinsischen funktionen zum schattenentrauschen in raytracinganwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0005243000

Ipc: H04N0023760000