DE102021004572A1 - Entrauschen von Bildern, die mittels Monte-Carlo-Wiedergaben wiedergegeben werden - Google Patents

Entrauschen von Bildern, die mittels Monte-Carlo-Wiedergaben wiedergegeben werden Download PDF

Info

Publication number
DE102021004572A1
DE102021004572A1 DE102021004572.6A DE102021004572A DE102021004572A1 DE 102021004572 A1 DE102021004572 A1 DE 102021004572A1 DE 102021004572 A DE102021004572 A DE 102021004572A DE 102021004572 A1 DE102021004572 A1 DE 102021004572A1
Authority
DE
Germany
Prior art keywords
pixel
radiance
image
pixels
feature vector
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
DE102021004572.6A
Other languages
English (en)
Inventor
Mustafa Isik
Michael Yanis Gharbi
Matthew David Fisher
Krishna Bhargava Mullia Lakshminarayana
Jonathan EISENMANN
Frederico Perazzi
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.)
Adobe Inc
Original Assignee
Adobe Inc
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 Adobe Inc filed Critical Adobe Inc
Publication of DE102021004572A1 publication Critical patent/DE102021004572A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/60Extraction of image or video features relating to illumination properties, e.g. using a reflectance or lighting model
    • 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/20076Probabilistic image processing
    • 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/20081Training; Learning
    • 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/20084Artificial neural networks [ANN]
    • 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/20216Image averaging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Processing (AREA)

Abstract

Es werden mehrere pixelbasierte Abtastpunkte innerhalb eines Bildes identifiziert, wobei Abtastpunkte eines Pixels innerhalb des Pixels verteilt sind. Es wird für einzelne Abtastpunkte von einzelnen Pixeln ein entsprechender Strahldichtevektor abgeschätzt. Ein Strahldichtevektor beinhaltet einen oder mehrere Strahldichtewerte, die Licht, das an einem Abtastpunkt empfangen wird, beschreiben. Ein erstes maschinell lernendes Modul generiert für jedes Pixel einen entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektor auf Grundlage der Strahldichtevektoren, die den Abtastpunkten innerhalb jenes Pixels zugeordnet sind. Ein zweites maschinell lernendes Modul generiert für jedes Pixel einen entsprechenden endgültigen Strahldichtemerkmalsvektor auf Grundlage eines zwischenzeitlichen Strahldichtemerkmalsvektors für jenes Pixel und eines oder mehrerer weiterer zwischenzeitlicher Strahldichtemerkmalsvektoren für ein oder mehrere weitere Pixel benachbart zu jenem Pixel. Es werden ein oder mehrere Kerne auf Grundlage der endgültigen Strahldichtemerkmalsvektoren generiert und auf entsprechende Pixel des Bildes angewendet, um ein weniger verrauschtes Bild zu generieren.

Description

  • Gebiet der Offenbarung
  • Die vorliegende Offenbarung betrifft allgemein das Entrauschen von Bildern und insbesondere Techniken zum Entrauschen von Bildern, die mittels Monte-Carlo-Methoden wiedergegeben werden.
  • Hintergrund
  • Eingedenk der in den letzten Jahren zu beobachtenden Weiterentwicklung von Computergrafiken können synthetische Bilder mittels eines Computers generiert werden. Es kann beispielsweise eine Bildverarbeitungsanwendung benutzt werden, um ein synthetisches Bild aus einer synthetischen oder virtuellen Szene digital zu generieren, wobei die Szene verschiedene digital generierte Objekte beinhaltet. Typischerweise sieht ein derartiges synthetisches Bild gegebenenfalls nicht fotorealistisch aus, was vom Mangel an Anleuchteffekten innerhalb der synthetischen Szene herrührt. Eine Szenendatei beschreibt die virtuelle Szene und enthält Information über Geometrie, Anleuchten, Schattierung, Sichtpunkte und/oder andere Attribute. Der Prozess des Hinzufügens von Anleuchteffekten zu der synthetischen Szene, damit das sich ergebende synthetische Bild fotorealistisch aussieht, wird oftmals als fotorealistische Wiedergabe (photorealistic rendering) der synthetischen Szene oder im Rahmen der vorliegenden Offenbarung als Wiedergabe der Szene bezeichnet. In jedem Fall kann die Szene von einer Bildverarbeitungsanwendung auf Grundlage der Szenendatei wiedergegeben werden. Wiedergabetechniken beinhalten Methodiken, die versuchen, die Wechselwirkung von Licht mit verschiedenen Objekten innerhalb des Bildes zu simulieren, was als Lichttransportmodellierung (Light Transport Modelling) bezeichnet wird. Die Darstellung von Licht und dessen Wechselwirkung mit verschiedenen Szenenelementen innerhalb des Bildes erhöht die Realitätsnähe des Inhalts, der in dem Bild dargestellt wird. Bestehende Techniken für eine derartige fotorealistische Wiedergabe synthetischer Szenen beinhalten beispielsweise die Monte-Carlo-Methodik. Die Monte-Carlo-Methodik generiert jedoch gegebenenfalls verrauschte Bilder, und zwar insbesondere dann, wenn die Anzahl von Abtastpunkten, die für die Monte-Carlo-Methodik benutzt wird, vergleichsweise niedrig ist. Verkompliziert wird dieses Problem dadurch, dass eine vergleichsweise große Anzahl von Abtastpunkten einen nicht trivialen Rechenaufwand verursacht. Derartige erhöhte Rechenkosten stehen der Verarbeitung in Echtzeit entgegen.
  • Zusammenfassung
  • Offenbart werden Techniken zum Entrauschen eines Bildes. Ein Verfahren zum Entrauschen eines ersten Bildes umfasst beispielsweise ein innerhalb einzelner Pixel von mehreren Pixeln des ersten Bildes erfolgendes Identifizieren von entsprechenden mehreren Abtastpunkten. Für einzelne Abtastpunkte einzelner Pixel wird ein entsprechender Strahldichtevektor (radiance vector) abgeschätzt. Ein Strahldichtevektor eines Abtastpunktes beinhaltet einen oder mehrere Strahldichtewerte, die Licht, das an dem Abtastpunkt empfangen wird, beschreiben. Ein erstes maschinell lernendes Modul generiert für einzelne Pixel einen entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektor auf Grundlage der Strahldichtevektoren, die den entsprechenden mehreren Abtastpunkten innerhalb des entsprechenden Pixels zugeordnet sind. Ein zweites maschinell lernendes Modul generiert für einzelne Pixel einen entsprechenden endgültigen Strahldichtemerkmalsvektor. Im Detail bedeutet dies, dass ein erster endgültiger Strahldichtemerkmalsvektor für ein erstes Pixel wenigstens teilweise auf Grundlage (a) eines zwischenzeitlichen Strahldichtemerkmalsvektors für das erste Pixel und (b) eines oder mehrerer weiterer zwischenzeitlicher Strahldichtemerkmalsvektoren für ein oder mehrere weitere Pixel benachbart zu dem ersten Pixel generiert wird. Ein oder mehrere Teilsätze von Filtergewichtungen oder Kernen (kernel) werden wenigstens teilweise auf Grundlage der endgültigen Strahldichtemerkmalsvektoren generiert. Im Detail bedeutet dies, dass ein Kern eine zweidimensionale Faltungsmatrix ist, den man sich als Maske oder Filter vorstellen kann, die/der eine vergleichsweise kleine Matrix (klein beispielsweise relativ zu dem Bild, auf das er angewendet wird) umfasst. Jeder Teilsatz kann einen oder mehrere Kerne beinhalten. Der eine oder die mehreren Teilsätze von Kernen werden auf ein oder mehrere entsprechende Pixel des ersten Bildes angewendet, um ein zweites Bild zu generieren. In einigen Fällen weist das zweite Bild weniger Rauschen auf und ist fotorealistischer als das erste Bild.
  • Bereitgestellt wird bei einem weiteren Beispiel ein System zum Wiedergeben eines fotorealistischen Bildes aus einem ursprünglichen Bild, das mehrere Pixel umfasst. Das System beinhaltet einen oder mehrere Prozessoren; und ein Bildentrauschungsteilsystem, das von dem einen oder den mehreren Prozessoren ausführbar ist. Ausgelegt ist das Teilsystem bei einigen Beispielen zu einem für jedes Pixel der mehreren Pixel des ursprünglichen Bildes erfolgenden Generieren eines entsprechenden Strahldichtemerkmalsvektors und eines entsprechenden Hilfsmerkmalsvektors. Ausgelegt ist das Teilsystem des Weiteren zu einem Generieren wenigstens eines ersten Teilsatzes von Kernen und eines zweiten Teilsatzes von Kernen auf Grundlage der Strahldichtemerkmalsvektoren und der Hilfsmerkmalsvektoren der mehreren Pixel. Ausgelegt ist das Teilsystem zu einem Falten des ersten Teilsatzes von Kernen mit dem ursprünglichen Bild, um ein erstes Bild zu generieren. Ausgelegt ist das Teilsystem in einigen Fällen zu einem Falten des zweiten Teilsatzes von Kernen mit dem ersten Bild, um ein zweites Bild zu generieren, das relativ zu dem ursprünglichen Bild fotorealistisch ist.
  • Bereitgestellt wird bei einem weiteren Beispiel ein Computerprogrammerzeugnis, das ein oder mehrere nichttemporäre maschinenlesbare Medien beinhaltet, die mit Anweisungen codiert sind, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass ein Prozess zum Verringern von Rauschen innerhalb eines Digitalbildes ausgeführt wird. Bei einigen Beispielen umfasst der Prozess ein Identifizieren von ersten mehreren Abtastpunkten innerhalb eines ersten Pixels von mehreren Pixeln, die ein erstes Bild beinhalten, und von zweiten mehreren Abtastpunkten innerhalb eines zweiten Pixels der mehreren Pixel. Für jeden Abtastpunkt der ersten und zweiten mehreren Abtastpunkte wird ein entsprechender Strahldichtevektor abgeschätzt, wobei ein Strahldichtevektor eines Abtastpunktes einen oder mehrere Strahldichtewerte beinhaltet, die Licht, das an dem Abtastpunkt empfangen wird, zugeordnet sind. Der Prozess beinhaltet des Weiteren ein Generieren (i) eines ersten zwischenzeitlichen Strahldichtemerkmalsvektors für das erste Pixel wenigstens teilweise auf Grundlage der Strahldichtevektoren, die jedem der ersten mehreren Abtastpunkte zugeordnet sind, und (ii) eines zweiten zwischenzeitlichen Strahldichtemerkmalsvektors für das zweite Pixel wenigstens teilweise auf Grundlage der Strahldichtevektoren, die jedem der zweiten mehreren Abtastpunkte zugeordnet sind. Der Prozess beinhaltet des Weiteren ein Generieren eines ersten endgültigen Strahldichtemerkmalsvektors für das erste Pixel und eines zweiten endgültigen Strahldichtemerkmalsvektors für das zweite Pixel wenigstens teilweise auf Grundlage der ersten und zweiten zwischenzeitlichen Strahldichtemerkmalsvektoren. Der Prozess beinhaltet des Weiteren ein Generieren eines oder mehrerer Kerne wenigstens teilweise auf Grundlage des ersten endgültigen Strahldichtemerkmalsvektors und des zweiten endgültigen Strahldichtemerkmalsvektors und ein Anwenden des einen oder der mehreren Kerne auf ein oder mehrere entsprechende Pixel des ersten Bildes zum Generieren eines zweiten Bildes, wobei das zweite Bild weniger Rauschen als das erste Bild aufweist. Das zweite Bild kann als fotorealistischer als das erste Bild wahrgenommen werden.
  • Figurenliste
    • 1 ist ein Blockdiagramm zur schematischen Darstellung von ausgewählten Komponenten einer exemplarischen Rechenvorrichtung mit Konfigurierung zum Generieren eines verrauschten Bildes mittels der Monte-Carlo-Methodik (oder mit einem anderen Zugriff auf das verrauschte Bild) und zum Entrauschen oder wenigstens zu erreichenden Verringern des Rauschens in dem verrauschten Bild entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 2 ist ein Blockdiagramm zum schematischen Darstellen von ausgewählten Komponenten eines exemplarischen Systems, das die Rechenvorrichtung von 1 umfasst, die mit einer Servervorrichtung / Servervorrichtungen kommuniziert, wobei die Kombination der Rechenvorrichtung und der Servervorrichtung / Servervorrichtungen konfiguriert ist zum Generieren eines verrauschten Bildes mittels der Monte-Carlo-Methodik (oder für einen anderen Zugriff auf das verrauschte Bild) und zum Entrauschen oder wenigstens zu erreichenden Verringern des Rauschens in dem verrauschten Bild entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 3A zeigt eine exemplarische Szene, aus der ein Bild generiert und durch die hier erläuterten Techniken entrauscht werden soll, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 3B zeigt eine Szene, ein vergleichsweise verrauschtes Bild, das aus der Szene mittels einer Monte-Carlo-Wiedergabe mit 8 Abtastpunkten pro Pixel (8 SPP) generiert worden ist, und ein vergleichsweise rauschfreies Bild, das durch Entrauschen des verrauschten Bildes generiert worden ist, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 3C zeigt mehrere benachbarte Pixel einer Szene, die wiedergegeben werden soll, sowie exemplarische Abtastpunkte einiger exemplarischer Pixel entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 4 zeigt ein Strahldichtemerkmalsvektoren generierendes Modul mit Konfigurierung zum Empfangen eines entsprechenden Strahldichtevektors für jeden von mehreren Abtastpunkten von mehreren Pixeln einer Szene und zum Generieren eines entsprechenden endgültigen Strahldichtevektors für jedes Pixel der mehreren Pixel, wobei die endgültigen Strahldichtevektoren zum Entrauschen eines verrauschten Bildes der Szene nutzbar sind, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 5 zeigt ein Hilfsmerkmalsvektoren generierendes Modul mit Konfigurierung zum Empfangen eines entsprechenden Hilfsvektors für jeden von mehreren Abtastpunkten von mehreren Pixeln einer Szene und zum Generieren eines entsprechenden endgültigen Hilfsvektors für jedes Pixel der mehreren Pixel, wobei die endgültigen Hilfsvektoren zum Entrauschen eines verrauschten Bildes der Szene nutzbar sind, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 6A, 6B und 6C zeigen das Generieren von jeweiligen exemplarischen Kernen, die als Filter zum Entrauschen eines verrauschten Bildes benutzt werden, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 7A zeigt das Entrauschen eines verrauschten Bildes mittels mehrerer Entrauschungsstufen, wobei jede Stufe einen Teilsatz von entsprechenden Kernen nutzt, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 7B zeigt einen exemplarischen Faltungsvorgang zwischen einem Teilsatz von Kernen und einem verrauschten Bild entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 7C zeigt exemplarischen Pseudocode zum Zusammenfassen von Vorgängen, die in 7A und 7B gezeigt sind, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
    • 8A und 8B sind Flussdiagramme zur kollektiven Darstellung einer exemplarischen Methodik zum Entrauschen eines verrauschten Bildes, das mittels Monte-Carlo-Wiedergabe generiert worden ist, derart, dass das entrauschte Bild weniger Rauschen aufweist und fotorealistischer als das verrauschte Bild ist, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
  • Detailbeschreibung
  • Offenbart werden Techniken zum Wiedergeben von fotorealistischen Bildern. Besonders nützlich sind die Techniken im Kontext einer Monte-Carlo-Wiedergabe eines verrauschten Bildes aus einer synthetischen Szene mittels vergleichsweise weniger Abtastpunkte, wobei die Techniken zum Entrauschen des verrauschten Bildes angewendet werden können. Da das anfängliche verrauschte Bild mittels einer vergleichsweise niedrigen Anzahl von Abtastpunkten generiert wird, sind der rechentechnische Aufwand und die aufzuwendende Zeit zur Ausführung der Monte-Carlo-Methodik vergleichsweise klein. In jedem Fall wird eine Szenendatei, die Information zur Beschreibung von verschiedenen Attributen der synthetischen Szene beinhaltet, zum Generieren von Strahldichte- und Hilfsvektoren benutzt. Die Entrauschungstechniken nutzen Deep Learning zum Lernen von Merkmalsvektoren für jedes Pixel des verrauschten Bildes auf Grundlage der Strahldichte- und Hilfsvektoren. Paarweise gegebene Beziehungen (so beispielsweise L2-Abstände) zwischen den Merkmalsvektoren werden sodann berechnet, um zu entscheiden, wie viel Strahldichte ein Pixel zu seinen benachbarten Pixeln beitragen sollte. Insbesondere werden L2-Abstände zwischen Paaren von Merkmalsvektoren benutzt, um Gewichtungen für verschiedene Kerne zu generieren, die in einer entsprechenden Entrauschungsstufe benutzt werden. In einer ersten Entrauschungsstufe wird beispielsweise ein erster Teilsatz von Kernen mit dem verrauschten Bild gefaltet, um ein erstes zwischenzeitliches Bild zu generieren. In einer zweiten Entrauschungsstufe wird ein zweiter Teilsatz von Kernen mit dem ersten zwischenzeitlichen Bild gefaltet, um ein zweites zwischenzeitliches Bild zu generieren. Dieser Prozess setzt sich auf Grundlage der gegebenen Anzahl von Stufen fort. Die endgültige Entrauschungsstufe gibt das endgültige wenig verrauschte fotorealistische Bild aus.
  • Die fotorealistischen Bilder, die mittels Techniken, wie sie hier bereitgestellt werden, generiert worden sind, sind mit Blick auf Qualität und Realitätsnähe mit Bildern vergleichbar, die mittels zeit- und ressourcenaufwändiger Monte-Carlo-Wiedergaben mit viel mehr Abtastpunkten generiert werden. Die hier offenbarten Techniken sind schnell (da beispielsweise zu Anfang eine schwach abtastende Monte-Carlo-Methodik zum Generieren des verrauschten Bildes eingesetzt wird) und können in Echtzeit oder nahezu in Echtzeit implementiert werden, was sie für die Wiedergabe bei einer interaktiven Framerate / interaktiven Frameraten geeignet macht. Zahlreiche Ausführungsformen und Abwandlungen erschließen sich im Lichte der vorliegenden Offenbarung.
  • Allgemeine Übersicht
  • Wie vorstehend erläutert worden ist, wird die Monte-Carlo-Methodik oftmals dafür benutzt, eine synthetische Szene wiederzugeben, um ein realistisches Bild aus der synthetischen Szene mittels einer Szenendatei zu generieren. Die Monte-Carlo-Methodik zielt beispielsweise darauf, eine fotorealistische Version der Szene zu generieren, indem sie gewünschte Strahldichte- oder Lichtpegel einzelnen Pixeln der synthetischen Szene zuteilt. Monte-Carlo umfasst eine Rechentechnik, die ein wiederholtes willkürliches Abtasten nutzt, um zu nummerischen Abschätzungen unbekannter Information zu gelangen. Die Anzahl von Abtastpunkten, die während Monte-Carlo benutzt wird, legt die Qualität der Abschätzung fest. Da der Abtastprozess stochastisch ist, tritt bei den Ergebnissen beispielsweise eine Varianz auf, die sich als Rauschen äußert, weshalb die Anzahl von Abtastpunkten beispielsweise vervierfacht werden muss, um den Fehler zu halbieren. Es wird daher eine vergleichsweise große Anzahl von Abtastungen für die Konvergenz benötigt. Werden entsprechend Monte-Carlo-Methoden zur Bildwiedergabe benutzt, so kann ein schwächeres Abtasten eine qualitativ schlechte (beispielsweise verrauschte) Wiedergabe generieren; umgekehrt kann ein stärkeres Abtasten eine qualitativ gute (beispielsweise vergleichsweise rauschfreie) Abtastung generieren. Zum Generieren eines qualitativ guten und authentisch fotorealistischen Bildes muss die Anzahl von Abtastungen vergleichsweise groß sein, was den rechentechnischen Aufwand und/oder die Rechenzeit der Monte-Carlo-Methodik vergrößert. Sogar bei heutzutage vorhandenen hohen Rechenleistungen kann es vergleichsweise lange Zeit (gemessen beispielsweise in Stunden) dauern, komplexe Szenen mittels Monte-Carlo wiederzugeben, um rauschfreie (oder ein Rauschen unterhalb einer Schwelle aufweisende) Ergebnisse zu erzeugen.
  • Bereitgestellt werden hier daher Techniken zum Entrauschen eines verrauschten Bildes, das durch eine Monte-Carlo-Methodik wiedergegeben wird. Da das anfängliche verrauschte Bild mittels einer vergleichsweise niedrigen Anzahl von Abtastpunkten generiert werden kann, sind der rechentechnische Aufwand und der Zeitaufwand zum Ausführen der Monte-Carlo-Methodik beide vergleichsweise niedrig. Die Entrauschungstechniken nutzen Deep Learning zum Lernen eines Merkmalsvektors aus jedem Abtastpunkt in jedem von mehreren Pixeln des verrauschten Bildes. Derartige Entrauschungstechniken nutzen sodann eine paarweise gegebene Affinität derartiger Deep-Merkmale zum Berechnen von Abständen (so beispielsweise von L2-Abständen) zwischen Merkmalsvektoren, um zu entscheiden, wie viel Strahldichte ein Pixel zu seinen benachbarten Pixeln beitragen sollte. Diese paarweise gegebene Beziehung zwischen Merkmalsvektoren ergibt die Wiedergabe von wenig verrauschten fotorealistischen Bildern. Die fotorealistischen Bilder, die mittels derartiger Techniken generiert werden, sind mit Blick auf Qualität und Realitätsnähe mit Bildern vergleichbar, die mittels zeit- und ressourcenaufwändiger Monte-Carlo-Wiedergaben mit viel mehr Abtastpunkten generiert werden. Die hier erläuterten Techniken sind vergleichsweise schnell (da zu Anfang beispielsweise eine schwach abtastende Monte-Carlo-Methodik zum Generieren des verrauschten Bildes eingesetzt wird) und können mit einer interaktiven Framerate implementiert werden, was nachstehend noch detaillierter erläutert wird.
  • Im Detail bedeutet dies, dass entsprechend einigen exemplarischen Ausführungsformen ein verrauschte Bilder generierendes Modul eines Bildentrauschungssystems eine Monte-Carlo-Wiedergabe einer synthetischen Szene mittels einer vergleichsweise geringeren Anzahl von Abtastpunkten pro Pixel (Sampling Points Per Pixel SPP) generiert. Bei einem bloßen Beispiel können 8 SPP, 16 SPP oder 24 SPP für die Monte-Carlo-Wiedergabe benutzt werden, obwohl auch eine höhere Anzahl von Abtastpunkten benutzt werden kann, so dies mit den Eigenheiten einer gegebenen Anwendung verträglich ist. Die Monte-Carlo-Methodik zielt beispielsweise darauf, eine fotorealistische Version der Szene zu generieren, indem gewünschte Strahldichte- oder Lichtpegel einzelnen Pixeln der synthetischen Szene zugeteilt werden. Da die Monte-Carlo-Wiedergabe eine vergleichsweise niedrige SPP-Anzahl nutzt, ist das sich ergebende Bild vergleichsweise verrauscht und weit davon entfernt, als fotorealistisch wahrgenommen zu werden.
  • Während der Monte-Carlo-Wiedergabe oder im Anschluss an diese identifiziert das Bildentrauschungssystem innerhalb eines jeden Pixels entsprechende mehrere Abtastpunkte. Die Abtastpunkte eines Pixels können innerhalb des Pixels willkürlich verteilt sein. Verschiedene hier erläuterte Beispiele gehen von einem 8-SPP-Szenario aus; andere geeignete SPP-Szenarien können bei anderen Beispielen, wie einsichtig sein sollte, jedoch ebenfalls benutzt werden.
  • Ein Merkmalsidentifizierungsmodul des Bildentrauschungssystems identifiziert für jeden Abtastpunkt Si ein oder mehrere Strahldichtemerkmale. Die Strahldichtemerkmale betreffen beispielsweise Attribute oder Charakteristika der Strahldichte eingehenden Lichtes an dem Abtastpunkt Si. Bei einigen derartigen exemplarischen Ausführungsformen wird das eingehende Licht an dem Abtastpunkt in verschiedene Kategorien kategorisiert, so beispielsweise (i) direktes Anleuchten und diffuse Reflexion, (ii) direktes Anleuchten und spiegelnde Reflexion, (iii) indirektes Anleuchten und diffuse Reflexion und (iv) indirektes Anleuchten und spiegelnde Reflexion, wobei die Strahldichtemerkmale auf Grundlage dieser Kategorisierung identifiziert werden. Das Bildentrauschungssystem (bisweilen auch einfach als „System“ bezeichnet) generiert sodann für jeden Abtastpunkt eines jeden Pixels des verrauschten Bildes einen entsprechenden Strahldichtevektor Lsi (wobei Si der Index für den Abtastpunkt ist), was nachstehend noch detaillierter erläutert wird.
  • Das Merkmalsidentifizierungsmodul des Bildentrauschungssystems identifiziert zudem für jeden Abtastpunkt Si ein oder mehrere Hilfsmerkmale. Die Hilfsmerkmale des Abtastpunktes Si beinhalten verschiedene Merkmale oder Attribute, die den Abtastpunkt Si eindeutig definieren oder beschreiben. Die Hilfsmerkmale beinhalten intrinsische Eigenschaften (so beispielsweise Rauheit, Emissivität, Albedo) des Abtastpunktes Si wie auch Eigenschaften des Abtastpunktes Si relativ zu einer Position der Kamera (so beispielsweise den Abstand von der Kamera oder die „Tiefe“ diesbezüglich). Das System generiert sodann für jeden Abtastpunkt eines jeden Pixels einen entsprechenden Hilfsvektor. Ein Hilfsvektor Asi wird beispielsweise für den Abtastpunkt Si generiert, wie nachstehend noch detaillierter erläutert wird.
  • Anschließend empfängt ein Strahldichtemerkmalsvektoren generierendes Modul des Bildentrauschungssystems für jeden Abtastpunkt die entsprechenden Strahldichtevektoren der entsprechenden Abtastpunkte. Ein maschinell lernendes Modul (so beispielsweise ein neuronales Netzwerkmodul) des Strahldichtemerkmalsvektoren generierenden Moduls generiert beispielsweise für jedes Pixel einen entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektor. Daher empfängt das maschinell lernende Modul die Strahldichtevektoren pro Abtastpunkt und generiert den zwischenzeitlichen Strahldichtemerkmalsvektor pro Pixel. Das maschinell lernende Modul wird beispielsweise darauf trainiert zu identifizieren, wie mehrere Strahldichtevektoren entsprechend verschiedenen Abtastpunkten eines spezifischen Pixels verarbeitet und gemittelt werden sollen, um den entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektor für jenes spezifische Pixel zu generieren. Bei einem bloßen Beispiel ist das maschinell lernende Modul ein neuronales Netzwerk, das darauf trainiert ist, Muster in den Strahldichtevektoren zu detektieren und die Art zu bestimmen, auf die die Strahldichtevektoren kombiniert oder gemittelt werden sollen, um die zwischenzeitlichen Strahldichtemerkmalsvektoren zu bilden, was noch detaillierter erläutert wird.
  • Anschließend generiert das Strahldichtemerkmalsvektoren generierende Modul des Bildentrauschungssystems für jedes Pixel einen entsprechenden endgültigen Strahldichtemerkmalsvektor und einen entsprechenden oder mehrere entsprechende Skalierungsfaktoren. Das Strahldichtemerkmalsvektoren generierende Modul beinhaltet beispielsweise ein weiteres neuronales Netzwerkmodul, das die zwischenzeitlichen Strahldichtemerkmalsvektoren empfängt und die endgültigen Strahldichtemerkmalsvektoren generiert. Bei einigen derartigen exemplarischen Ausführungsformen wird das neuronale Netzwerkmodul darauf trainiert, ein Kreuzkorrelieren von Strahldichtemerkmalen von benachbarten Pixeln vorzunehmen, um die endgültigen Strahldichtemerkmalsvektoren zu generieren. Das neuronale Netzwerkmodul bestimmt beispielsweise, wie Strahldichtewerte, die einem Pixel zugeordnet sind, zu einem benachbarten Pixel beitragen können. Das neuronale Netzwerkmodul breitet Strahldichteattribute eines ersten Pixels räumlich zu einem oder mehreren benachbarten Pixeln aus (wenn beispielsweise das erste Pixel und ein oder mehrere benachbarte Pixel einige ähnliche Strahldichteattribute aufweisen und/oder in einem selben oder ähnlichen Abschnitt des Bildes sind) und generiert die endgültigen Strahldichtemerkmalsvektoren der Pixel entsprechend, wie noch detaillierter erläutert wird.
  • Bei einigen Ausführungsformen weist jeder endgültige Strahldichtemerkmalsvektor eine Anzahl von Abschnitten auf, die zur Anzahl von Entrauschungsstufen passt. Verschiedene hier erläuterte Beispiele gehen von drei Entrauschungsstufen aus, weshalb jeder endgültige Strahldichtemerkmalsvektor drei entsprechende Abschnitte aufweist. Ein endgültiger Strahldichtemerkmalsvektor F_Ri für ein exemplarisches Pixel i weist beispielsweise drei Abschnitte F_Ri_1, F_Ri_2 und F_Ri_3 auf. Bei einigen derartigen Ausführungsformen werden zudem für ein einzelnes Pixel i drei entsprechende Skalierungsfaktoren ai 1, ai 2, and ai 3 generiert, was ebenfalls noch erläutert wird. Abwandlungen hieran erschließen sich.
  • Des Weiteren empfängt ein Hilfsmerkmalsvektoren generierendes Modul des Bildentrauschungssystems für jeden Abtastpunkt die entsprechenden Hilfsvektoren der entsprechenden Abtastpunkte. Ein maschinell lernendes Modul (so beispielsweise ein neuronales Netzwerkmodul) des Hilfsmerkmalsvektoren generierenden Moduls generiert beispielsweise für ein gegebenes Pixel einen entsprechenden zwischenzeitlichen Hilfsmerkmalsvektor. Daher empfängt das maschinell lernende Modul die Hilfsvektoren pro Abtastpunkt und generiert den zwischenzeitlichen Hilfsmerkmalsvektor pro Pixel. Das maschinell lernende Modul wird beispielsweise darauf trainiert zu identifizieren, wie mehrere Hilfsvektoren entsprechend verschiedenen Abtastpunkten eines spezifischen Pixels verarbeitet und gemittelt werden sollen, um den entsprechenden zwischenzeitlichen Hilfsmerkmalsvektor für jenes spezifische Pixel zu generieren. Bei einem bloßen Beispiel ist das maschinell lernende Modul ein neuronales Netzwerk, das darauf trainiert ist, Muster in den Hilfsvektoren zu detektieren und die Art zu bestimmen, auf die die Hilfsvektoren kombiniert oder gemittelt werden sollen, um die zwischenzeitlichen Hilfsmerkmalsvektoren zu bilden, was noch detaillierter erläutert wird.
  • Anschließend generiert das Hilfsmerkmalsvektoren generierende Modul des Bildentrauschungssystems für jedes Pixel einen entsprechenden endgültigen Hilfsmerkmalsvektor. Das Hilfsmerkmalsvektoren generierende Modul beinhaltet beispielsweise ein weiteres neuronales Netzwerkmodul, das die zwischenzeitlichen Hilfsmerkmalsvektoren empfängt, und generiert die endgültigen Hilfsmerkmalsvektoren. Bei einigen Beispielen wird das neuronale Netzwerkmodul darauf trainiert, ein Kreuzkorrelieren von Hilfsmerkmalen von benachbarten Pixeln vorzunehmen, um die endgültigen Hilfsmerkmalsvektoren zu generieren. Das neuronale Netzwerkmodul bestimmt beispielsweise, wie Hilfswerte, die einem Pixel zugeordnet sind, zu einem benachbarten Pixel beitragen können. Das neuronale Netzwerkmodul breitet Hilfsattribute eines ersten Pixels räumlich zu einem oder mehreren benachbarten Pixeln aus, und zwar beispielsweise dann, wenn das erste Pixel und ein oder mehrere benachbarte Pixel einige ähnliche Hilfsattribute aufweisen und/oder in einem selben oder ähnlichen Abschnitt des Bildes sind, und generiert die endgültigen Hilfsmerkmalsvektoren der Pixel entsprechend, was noch detaillierter erläutert wird.
  • Anschließend generiert ein Kerne generierendes Modul des Bildentrauschungssystems K Teilsätze von Kernen entsprechend der Anzahl K von Entrauschungsstufen. Jeder Teilsatz kann einen oder mehrere Kerne beinhalten. Verschiedene hier erläuterte Beispiele weisen drei Entrauschungsstufen auf, weshalb drei Teilsätze von Kernen generiert werden. Man beachte jedoch, dass eine beliebige Anzahl von Entrauschungsstufen in Abhängigkeit von der gegebenen Anwendung genutzt werden kann, was sich im Lichte der vorliegenden Offenbarung erschließt. Was sich ebenfalls im Lichte der vorliegenden Offenbarung erschließt, ist, dass ein Kern eine zweidimensionale Faltungsmatrix ist, den man sich als Maske oder Filter vorstellen kann, die/der eine vergleichsweise kleine Matrix (klein beispielsweise relativ zu dem Bild, auf das er angewendet wird) umfasst. Zu diesem Zweck kann ein Kern benutzt werden, um Bilder in verschiedenen Bildverarbeitungsanwendungen zu verarbeiten. Bei einer exemplarischen Ausführungsform weist jeder Teilsatz Kerne mit einem Wirkabstand (stride) von 2(k-1) auf, wobei k = 1, ..., K gilt, was nachstehend noch erläutert wird. Jeder Kern in dem ersten Teilsatz von Kernen ist bei einem bloßen Beispiel eine 3×3-Matrix entsprechend einem Fenster von 3x3 Pixeln (obwohl bei anderen Beispielen auch eine größere Matrixgröße benutzt werden kann, so beispielsweise eine 13×13-Matrix). Ein zentrales Pixel in einem spezifischen Kern ist ein Zielpixel jenes Kernes, und es wird jener Kern auf das verrauschte Bild angewendet, um den Strahldichtewert jenes spezifischen Zielpixels zu korrigieren. Jeder Kern in dem ersten Teilsatz weist einen Stride bzw. Wirkabstand auf, der auf 2(1-1) = 2° = 1 gesetzt ist. Daher wird jedem Pixel, das 1 Pixel entfernt von dem Zielpixel ist, eine Nicht-Null-Gewichtung beim Generieren des Kernes zugewiesen. Jeder Kern in dem zweiten Teilsatz von Kernen ist eine 5×5-Matrix entsprechend einem Fenster von 5×5 Pixeln. Jeder Kern in dem zweiten Teilsatz weist einen Wirkabstand auf, der auf 2(2-1) = 21 = 2 gesetzt ist. Daher wird jedem Pixel, das 2 Pixel entfernt von dem Zielpixel ist, eine Nicht-Null-Gewichtung beim Generieren des Kernes zugewiesen. Weiteren Pixeln innerhalb des Kernes, die beispielsweise 1 Pixel entfernt sind, wird eine Null-Gewichtung zugewiesen. Jeder Kern in dem dritten Teilsatz von Kernen ist eine 9x9-Matrix entsprechend einem Fenster von 9×9 Pixeln. Jeder Kern in dem dritten Teilsatz weist einen Wirkabstand auf, der auf 2(3-1) = 22 = 4 gesetzt ist. Jedem Pixel, das 4 Pixel entfernt von dem Zielpixel ist, wird daher eine Nicht-Null-Gewichtung beim Generieren des Kernes zugewiesen. Anderen Pixeln innerhalb des Kernes, die beispielsweise 2 oder 3 Pixel entfernt sind, wird eine Null-Gewichtung zugewiesen.
  • Daher weist jeder Kern Gewichtungen auf, die wenigstens einigen Pixeln zugewiesen werden. Kerne mit Wirkabstand 1 weisen beispielsweise 8 Pixel benachbart zu dem Zielpixel auf, wobei jedem dieser 8 benachbarten Pixel entsprechende Nicht-Null-Gewichtungen zugewiesen werden. Kerne mit Wirkabstand 2 weisen 24 Pixel benachbart zu dem Zielpixel auf, wobei 8 der 20 benachbarten Pixel entsprechende Nicht-Null-Gewichtungen zugewiesen werden. Kerne mit Wirkabstand 4 weisen 80 Pixel benachbart zu dem Zielpixel auf, wobei 8 der 80 benachbarten Pixel entsprechende Nicht-Null-Gewichtungen zugewiesen werden.
  • Man gehe davon aus, dass ein Kern ein Pixel i als Zielpixel aufweist; zudem gehe man davon aus, dass einem benachbarten Pixeln j in dem Kern eine entsprechende Nicht-Null-Gewichtung zugewiesen ist. Die Gewichtung, die dem benachbarten Pixel j in dem Kern zugewiesen ist, wird mit wk(i,j) bezeichnet, wobei k die Zählung des Teilsatzes ist, zu dem der Kern gehört. Gehört der Kern beispielsweise zu dem ersten Teilsatz von Kernen, so ist die Gewichtung gleich w1(i, j); gehört der Kern zu dem zweiten Teilsatz von Kernen, so ist die Gewichtung gleich w2(i, j) und so weiter. In jedem Fall wird zum Generieren der Gewichtung wk(i, j) eine erste L2-Norm zwischen (i) einem k-ten Abschnitt des endgültigen Strahldichtemerkmals des Pixels i (beispielsweise F_Ri_k) und (ii) einem k-ten Abschnitt des endgültigen Strahldichtemerkmals des Pixels j (beispielsweise F_Rj_k) berechnet. Des Weiteren wird zudem eine zweite L2-Norm zwischen (i) einem endgültigen Hilfsmerkmal des Pixels i und (ii) einem endgültigen Hilfsmerkmal des Pixels j berechnet. Die Gewichtung wk(i, j) beruht auf der ersten L2-Norm, der zweiten L2-Norm und dem Skalierungsfaktor aj k. Es werden beispielsweise ein negativer Exponent der ersten L2-Norm und ein negativer Exponent der zweiten L2-Norm beim Berechnen der Gewichtung wk(i, j) berücksichtigt. Zudem ist die Gewichtung wk(i, j) proportional zu dem Skalierungsfaktor aj k. Der Skalierungsfaktor aj k bringt eine Asymmetrie zwischen den Gewichtungen wk(i, j) und wk(j, i) ein. Sind die Skalierungsfaktoren beispielsweise nicht vorhanden, so wären die Gewichtungen wk(i, j) und wk(j, i) gleich, da die vorerläuterten ersten und zweiten L2-Normen für die beiden Gewichtungen gleich sind. Sind die Skalierungsfaktoren aj k und aj k jedoch verschieden, so können die sich ergebenden Gewichtungen wk(i, j) und wk(j, i) ebenfalls verschieden sein. Dies kann sicherstellen, dass das Ausmaß des Strahldichtebeitrages eines ersten Pixels zu einem benachbarten zweiten Pixel nicht gleich dem Ausmaß des Strahldichtebeitrages des zweiten Pixels zu dem ersten Pixel ist. Entsprechend stellen die Skalierungsfaktoren sicher, dass ein Ausreißerpixel Strahldichtebeiträge von benachbarten Pixeln empfangen kann, während es im Wesentlichen keine Strahldichte zu den benachbarten Pixeln beiträgt. Ein Pixel ist ein Ausreißerpixel (outlier pixel), wenn das Pixel beispielsweise eine Lichtquelle ist; so emittiert das Ausreißerpixel beispielsweise eine beträchtliche Strahldichte (ist also beispielsweise eine Lichtquelle) im Vergleich zu einem oder mehreren benachbarten Pixeln.
  • Sobald die Kerne der verschiedenen Teilsätze berechnet worden sind, werden die Kerne auf das verrauschte Bild (das zu Anfang mittels der Monte-Carlo-Methodik und mit einer vergleichsweise geringen Anzahl von Abtastpunkten generiert worden ist) angewendet, um das rauschfreie oder rauschverringerte Ausgabebild zu generieren. Kerne des ersten Teilsatzes werden beispielsweise mit dem verrauschten Bild gefaltet, um ein erstes zwischenzeitliches Bild zu generieren. Kerne des zweiten Teilsatzes werden mit dem ersten zwischenzeitlichen Bild gefaltet, um ein zweites zwischenzeitliches Bild zu generieren. Kerne des dritten Teilsatzes werden schließlich mit dem zweiten zwischenzeitlichen Bild gefaltet, um das Ausgabebild zu generieren, das rauschfrei oder wenigstens rauschverringert sowie fotorealistischer als das anfängliche verrauschte Bild ist. Daher werden entsprechend einer derartigen exemplarischen Ausführungsform drei Entrauschungsstufen benutzt, um das endgültige fotorealistische Ausgabebild zu generieren.
  • Die hier erläuterten Techniken bieten einige Vorteile gegenüber herkömmlichen Entrauschungsmethodiken. Bei einigen Ausführungsformen können beispielsweise, wie erläutert worden ist, um einen ausreichend großen räumlichen Kontext für die Kerne zu erhalten, anstelle der Nutzung einer einzigen Stufe mit einem einzigen großen Kern fester Größe mehrere Stufen mit mehreren Kernen, die entsprechende Wirkabstände aufweisen, wie hier erläutert wird, benutzt werden. Man beachte, dass entsprechend einer Ausführungsform ein Kern des dritten Teilsatzes eine Größe von 9x9 Pixeln aufweist, ein Kern des zweiten Teilsatzes eine Größe von 5×5 Pixeln aufweist und ein Kern des ersten Teilsatzes eine Größe von 3×3 Pixeln aufweist. In jedem der Kerne werden jedoch nur 8 Pixel benachbart zu dem Zielpixel mit Nicht-Null-Werten gewichtet. Obwohl der räumliche Kontext des Kernes mit der Stufe steigt, nimmt daher der Rechenaufwand nicht proportional zu, und es wird die gleiche Anzahl von Gewichtungen pro Kern unabhängig von der Stufe, in der der Kern benutzt wird, berechnet. Bei einigen Ausführungsformen kann das Entrauschen daher mit höherer Geschwindigkeit, so beispielsweise bei einer interaktiven Framerate, durchgeführt werden. Das Entrauschen ist beispielsweise schnell, da nicht alle Pixel innerhalb eines jeden Kernes gewichtet werden.
  • Darüber hinaus werden Strahldichte- und Hilfsmerkmalsattribute für mehrere Abtastpunkte intelligent gemittelt, um Mittel pro Pixel durch entsprechende neuronale Netzwerkmodule zu generieren. Immer wenn Attribute von neuen Abtastpunkten verfügbar sind, wird daher das Mittel aktualisiert, um ein verfeinertes Bild zu erhalten. Bei einem Beispiel macht das progressive Wiedergeben des Bildes den Entrauschungsprozess schnell und verwirklicht eine interaktive Framerate für den Entrauschungsprozess.
  • Wie erläutert worden ist, trägt der Skalierungsfaktor zur Asymmetrie beim Strahldichtewertbeitrag bei, wenn die Gewichtungen wk(i, j) bestimmt werden. Entsprechend kann ein Ausreißerpixel Strahldichtebeiträge von benachbarten Pixeln empfangen und dabei nicht merklich zur Strahldichte für die benachbarten Pixel beitragen.
  • Des Weiteren setzt das System Deep Learning ein, um das Entrauschen als Problem des überwachten Lernens (Supervised Learning) zu formulieren. Ist das verrauschte Eingabebild gegeben, so sagen die neuronalen Netzwerke Merkmalsvektoren pro Pixel vorher, indem sie jedes Pixel in seiner räumlichen Umgebung analysieren. Beim Bestimmen dessen, wie viel Strahldichte ein Pixel zu einem anderen Pixel beitragen soll, berechnet das System explizit die Abstände zwischen Merkmalsvektoren dieser Pixel. Daher ermöglicht das System die Nutzung von Netzwerken niedriger Kapazität zu niedrigeren Rechenkosten, was bedingt, dass die hier erläuterten Entrauschungsvorgänge bei interaktiven Frameraten laufen. Daher kann das System auch dann im Wesentlichen rauschfreie oder wenig verrauschte Bilder generieren, wenn das System nur einen Bruchteil der Parameter, die von herkömmlichen Entrauschungssystemen benutzt werden, benutzt.
  • Systemarchitektur
  • 1 ist ein Blockdiagramm zur schematischen Darstellung von ausgewählten Komponenten einer exemplarischen Rechenvorrichtung 100 (die auch als Vorrichtung 100 bezeichnet wird) mit Konfigurierung zum Generieren eines verrauschten Bildes mittels der Monte-Carlo-Methodik und zum Entrauschen oder wenigstens zu erreichenden Verringern des Rauschens in dem verrauschten Bild entsprechend einigen Ausführungsformen der vorliegenden Offenbarung. Wie zu sehen ist, beinhaltet die Vorrichtung 100 ein Bildentrauschungssystem 102 (auch als System 102 bezeichnet), das ermöglicht, dass die Vorrichtung 100 auf ein verrauschtes Bild, das entsprechend der Monte-Carlo-Methodik generiert worden ist, zugreift und das Rauschen in dem verrauschten Bild beseitigt oder wenigstens verringert.
  • Es sollte einsichtig sein, dass die Konfigurierung der Vorrichtung 100 von einer Ausführungsform zur anderen variieren kann. Zu diesem Zweck konzentriert sich die vorliegende Diskussion mehr auf Aspekte der Vorrichtung 100 im Zusammenhang mit dem Verringern von Rauschen in einem verrauschten Bild und weniger auf Standardkomponenten und Funktionalitäten, die für Rechenvorrichtungen typisch sind. Die Vorrichtung 100 umfasst beispielsweise einen Desktop-Computer, einen Laptop-Computer, eine Workstation, einen Server-Computer der Unternehmensklasse, einen Handcomputer, einen Tablet-Computer, ein Smartphone, eine Set-Top-Box, einen Gamecontroller und/oder eine beliebige andere Rechenvorrichtung, die Rauschen in einem Digitalbild verringern kann.
  • Bei der dargestellten Ausführungsform beinhaltet die Vorrichtung 100 ein oder mehrere Softwaremodule mit Konfigurierung zum Implementieren von gewissen hier offenbarten Funktionalitäten wie auch Hardware mit Konfigurierung zum Ermöglichen einer derartigen Implementierung. Diese Hardware- und Softwarekomponenten können unter anderem einen Prozessor 132, einen Speicher 134, ein Betriebssystem 136, I/O-Komponenten (Eingabe/Ausgabe I/O) 138, einen Kommunikationsadapter 140, ein Datenspeichermodul 146 und das Bildentrauschungssystem 102 beinhalten. Eine Digitalcontentdatenbank 148 (die beispielsweise einen nichttemporären Computerspeicher umfasst) speichert verrauschte Bilder und/oder rauschfreie (oder rauschverringerte) Bilder und ist mit dem Datenspeichermodul 146 gekoppelt. Ein Bus und/oder Interconnect 144 ist zudem vorgesehen, um Inter- und Intravorrichtungskommunikationen beispielsweise mittels des Kommunikationsadapters 140 zu ermöglichen. Bei einigen Ausführungsformen beinhaltet das System 100 einen Anzeigebildschirm 142 (auch einfach als Anzeige 142 bezeichnet), während bei einigen anderen Ausführungsformen die Anzeige 142 extern bezüglich des Systems 100 und mit diesem kommunikationstechnisch gekoppelt sein kann. Man beachte, dass bei einem Beispiel Komponenten wie das Betriebssystem 136 und das Bildentrauschungssystem 102 Softwaremodule sein können, die in dem Speicher 132 bzw. 134 gespeichert und von dem Prozessor 132 ausführbar sind. Bei einem Beispiel können wenigstens Abschnitte des Bildentrauschungssystems 102 wenigstens teilweise durch Hardware implementiert sein, so beispielsweise durch eine anwendungsspezifische integrierte Schaltung (ASIC) oder durch einen Microcontroller mit einer oder mehreren eingebetteten Routinen. Der Bus und/oder Interconnect 144 steht symbolisch für alle standardgemäßen und proprietären Technologien, die eine Interaktion der verschiedenen funktionellen Komponenten, die innerhalb der Vorrichtung 100 gezeigt sind, ermöglichen - sei es nun so, dass die Interaktion tatsächlich über eine physische Busstruktur oder über Softwareaufrufe, Request/Response-Konstrukte oder beliebige andere derartige Inter- und Intrakomponenten-Schnittstellentechnologien, wie ersichtlich ist, stattfindet.
  • Der Prozessor 132 kann mittels eines beliebigen geeigneten Prozessors implementiert sein und kann einen oder mehrere Coprozessoren oder Controller, so beispielsweise einen Audioprozessor oder eine Grafikverarbeitungseinheit, beinhalten, um die Verarbeitung von Vorgängen der Vorrichtung 100 zu unterstützen. Auf gleiche Weise kann der Speicher 134 mittels eines beliebigen geeigneten Typs von Digitalspeicher implementiert sein, so beispielsweise mittels eines oder mehrerer von einem Plattenlaufwerk, einem Solid-State-Laufwerk, einem USB-Laufwerk (Universeller Serieller Bus USB), einem Flashspeicher, einem Speicher mit wahlfreiem Zugriff (RAM) oder einer beliebigen geeigneten Kombination des Vorgenannten. Das Betriebssystem 136 kann ein beliebiges geeignetes Betriebssystem umfassen, so beispielsweise Google Android, Microsoft Windows oder Apple OS X. Wie im Lichte der vorliegenden Offenbarung ersichtlich ist, können die hier bereitgestellten Techniken auch ohne Rücksicht auf das spezielle Betriebssystem, das in Verbindung mit der Vorrichtung 100 bereitgestellt wird, implementiert werden und können daher mittels einer beliebigen geeigneten bestehenden oder noch zu entwickelnden Plattform implementiert werden. Der Kommunikationsadapter 140 kann mittels eines beliebigen geeigneten Netzwerkchips oder Chipsatzes implementiert sein, wodurch eine verdrahtete oder drahtlose Verbindung zu einem Netzwerk und/oder anderen Rechenvorrichtungen und/oder einer Ressource möglich wird. Die Vorrichtung 100 beinhaltet zudem eine oder mehrere I/O-Komponenten 138, so beispielsweise eine oder mehrere von einer haptischen Tastatur, der Anzeige 142, einer Maus, einer berührungsempfindlichen oder Touchscreen-Anzeige (beispielsweise der Anzeige 142), einem Trackpack, einem Mikrofon, einer Kamera, einem Scanner und Lokalisierungsdiensten. Allgemein erschließen sich weitere Standardkomponenten und Funktionalitäten, die in dem schematischen Blockdiagramm von 1 kein Pendant haben, ohne Weiteres, und es sollte zudem einsichtig sein, dass die vorliegende Offenbarung nicht auf irgendeine spezifische Hardwarekonfiguration beschränkt sein soll. Daher können weitere Konfigurierungen und Teilkomponenten bei weiteren Ausführungsformen benutzt werden.
  • Ebenfalls in 1 dargestellt ist das Bildentrauschungssystem 102, das auf der Vorrichtung 100 implementiert ist. Bei einer exemplarischen Ausführungsform beinhaltet das System 102 ein Merkmalsidentifizierungsmodul 103, ein Strahldichtemerkmalsvektoren generierendes Modul 104, ein Hilfsmerkmalsvektoren generierendes Modul 108, ein Kerne generierendes Modul 112, ein verrauschte Bilder generierendes Modul 116 und ein rauschverringerte Bilder generierendes Modul 120, die alle noch detaillierter erläutert werden. Bei einem Beispiel sind die Komponenten des Systems 102 in Kommunikation miteinander oder mit anderen Komponenten der Vorrichtung 102 mittels des Busses und/oder Interconnects 144, wie nachstehend noch detaillierter erläutert wird. Die Komponenten des Systems 102 können mit einer oder mehreren anderen Vorrichtungen kommunizieren, darunter mit anderen Rechenvorrichtungen eines Nutzers, Servervorrichtungen (beispielsweise Cloudspeichervorrichtungen), Lizenzierungsservern oder anderen Vorrichtungen/Systemen. Obwohl die Komponenten des Systems 102 in 1 getrennt gezeigt sind, können beliebige der Teilkomponenten zu weniger Komponenten, so beispielsweise zu einer einzigen Komponente, kombiniert oder in mehr Komponenten unterteilt werden, so dies bei einer bestimmten Implementierung dienlich ist.
  • Bei einem Beispiel können die Komponenten des Systems 102, die die hier anhand des Systems 102 erläuterten Funktionen übernehmen, als Teil einer eigenständigen Anwendung, als Modul einer Anwendung, als Plug-in für Anwendungen, als Bibliotheksfunktion oder Funktionen, die von anderen Anwendungen aufgerufen werden können, und/oder als Cloudrechenmodell implementiert sein. Daher können die Komponenten des Systems 102 als Teil einer eigenständigen Anwendung auf einer PC-Vorrichtung oder einer Mobilvorrichtung implementiert sein. Alternativ oder zusätzlich können die Komponenten des Bildentrauschungssystems 102 in einer beliebigen Anwendung implementiert sein, die das Verringern von Rauschen in Bildern ermöglicht, die mittels der Monte-Carlo-Methodik generiert und/oder wiedergegeben werden.
  • 2 ist ein Blockdiagramm zur schematischen Darstellung von ausgewählten Komponenten eines exemplarischen Systems 200, das die Rechenvorrichtung 100 von 1, die mit der Servervorrichtung / den Servervorrichtungen 201 kommuniziert, umfasst, wobei die Kombination aus der Vorrichtung 100 und der Servervorrichtung / den Servervorrichtungen 201 (im Folgenden auch allgemein als Server 201 bezeichnet) konfiguriert sind zum Generieren eines verrauschten Bildes mittels der Monte-Carlo-Methodik (oder für einen anderen Zugang zu dem verrauschten Bild) und zum Entrauschen oder wenigstens zu erreichenden Verringern des Rauschens in dem verrauschten Bild entsprechend einigen Ausführungsformen der vorliegenden Offenbarung. Bei einem Beispiel kann der Kommunikationsadapter 140 der Vorrichtung 100 mittels eines beliebigen geeigneten Netzwerkchips oder Chipsatzes implementiert sein, wodurch eine verdrahtete oder drahtlose Verbindung zu dem Netzwerk 205 und/oder anderen Rechenvorrichtungen und/oder Ressourcen ermöglicht wird. Zu diesem Zweck ist die Vorrichtung 100 mit dem Netzwerk 205 über den Adapter 140 gekoppelt, um Kommunikationen mit anderen Rechenvorrichtungen und Ressourcen, so beispielsweise dem Server 201, zu ermöglichen. Das Netzwerk 205 ist ein beliebiges geeignetes Netzwerk, über das die Rechenvorrichtungen kommunizieren. Das Netzwerk 205 kann ein Ortsbereichsnetzwerk (Local Area Network) (so beispielsweise ein heimbasiertes Netzwerk oder Büronetzwerk), ein Großbereichsnetzwerk (Wide Area Network) (so beispielsweise das Internet) oder eine Kombination aus derartigen Netzwerken - seien sie nun öffentlich, privat oder beides - sein. In einigen Fällen kann der Zugriff auf Ressourcen in einem gegebenen Netzwerk oder Rechensystem Berechtigungsnachweise (credentials) wie Nutzernamen, Passwörter oder einen beliebigen anderen geeigneten Sicherheitsmechanismus erfordern.
  • Bei einer Ausführungsform umfasst der Server 201 eine oder mehrere Vorrichtungen der Unternehmensklasse mit Konfigurierung zum Bereitstellen eines Bereiches von Diensten, die aufgerufen werden, um Dienste zur Verringerung von Rauschen für digitale Bilder, wie sie hier verschiedentlich beschrieben werden, bereitzustellen. Bei einigen Ausführungsformen umfasst der Server 201 ein Bildentrauschungssystem 202, das derartige Dienste, wie sie hier verschiedentlich beschrieben werden, bereitstellt. Obwohl eine Serverimplementierung des Bildentrauschungssystems in 2 gezeigt ist, sollte einsichtig sein, dass allgemein Dutzende, Hunderte, Tausende oder noch mehr derartige Server zum Verwalten einer sogar noch größeren Anzahl von Bildentrauschungsfunktionen benutzt werden können.
  • Bei der dargestellten Ausführungsform beinhaltet der Server 201 ein oder mehrere Softwaremodule mit Konfigurierung zum Implementieren von gewissen hier offenbarten Funktionalitäten wie auch Hardware mit Konfigurierung zum Ermöglichen einer derartigen Implementierung. Diese Hardware- und Softwarekomponenten können unter anderem einen Prozessor 232, einen Speicher 234, ein Betriebssystem 236, ein Bildentrauschungssystem 202 (auch als System 202 bezeichnet), ein Datenspeichermodul 246 und einen Kommunikationsadapter 240 beinhalten. Eine Digitalcontentdatenbank 248 (die beispielsweise einen nichttemporären Computerspeicher umfasst) umfasst verrauschte Bilder und rauschverringerte Bilder und ist mit dem Datenspeichermodul 246 gekoppelt. Ein Bus und/oder Interconnect 144 ist zudem vorgesehen, um Inter- und Intravorrichtungskommunikationen beispielsweise mittels des Kommunikationsadapters 240 und/oder des Netzwerkes 205 zu ermöglichen. Man beachte, dass Komponenten wie das Betriebssystem 236 und das Bildentrauschungssystem 202 Softwaremodule sein können, die in dem Speicher 234 gespeichert und von dem Prozessor 232 ausführbar sind. Die vorhergehende einschlägige Diskussion im Zusammenhang mit dem symbolischen Wesen des Busses und/oder Interconnects 144 ist hier gleichermaßen bei dem Bus und/oder Interconnect 244, wie ersichtlich ist, anwendbar.
  • Der Prozessor 232 ist mittels eines beliebigen geeigneten Prozessors implementiert und kann einen oder mehrere Coprozessoren oder Controller, so beispielsweise einen Audioprozessor oder eine Grafikverarbeitungseinheit, beinhalten, um Verarbeitungsvorgänge des Servers 201 zu unterstützen. Auf gleiche Weise kann der Speicher 234 mittels eines beliebigen geeigneten Typs von Digitalspeicher implementiert sein, so beispielsweise mittels eines oder mehrerer von einem Plattenlaufwerk, einem USB-Laufwerk (Universeller Serieller Bus USB), einem Flashspeicher, einem Speicher mit wahlfreiem Zugriff (RAM) oder einer beliebigen geeigneten Kombination des Vorgenannten. Das Betriebssystem 236 kann ein beliebiges geeignetes Betriebssystem umfassen, wobei das benutzte spezielle Betriebssystem, wie bereits erwähnt worden ist, von keiner speziellen Relevanz ist. Der Kommunikationsadapter 240 kann mittels eines beliebigen geeigneten Netzwerkchips oder Chipsatzes implementiert sein, wodurch eine verdrahtete oder drahtlose Verbindung zu dem Netzwerk 205 und/oder anderen Rechenvorrichtungen und/oder anderen Ressourcen möglich wird. Der Server 201 ist mit dem Netzwerk 205 gekoppelt, um Kommunikationen mit anderen Rechenvorrichtungen und Ressourcen, so beispielsweise der Vorrichtung 100, zu ermöglichen. Allgemein erschließen sich im Lichte der vorliegenden Offenbarung andere Komponenten und Funktionalitäten, die in dem schematischen Blockdiagramm von 2 kein Pendant haben, ohne Weiteres, und es sollte zudem einsichtig sein, dass die vorliegende Offenbarung nicht auf irgendeine spezifische Hardwarekonfiguration beschränkt sein soll. Kurzum, beliebige geeignete Hardwarekombinationen können benutzt werden.
  • Der Server 201 kann einen beliebigen Typ von Daten generieren, speichern, empfangen und übertragen, darunter Digitalcontents und/oder Codes, die derartigen Digitalcontents zugeordnet sind. Wie gezeigt ist, beinhaltet der Server 201 das Bildentrauschungssystem 202, das mit dem System 102 auf der Clientvorrichtung 100 kommuniziert. Bei einem Beispiel können die anhand 1 erläuterten Bildentrauschungsmerkmale in 2 ausschließlich durch das Bildentrauschungssystem 102 implementiert sein, ausschließlich durch das Bildentrauschungssystem 202 implementiert sein und/oder können zwischen den Bildentrauschungssystemen 102 und 202 geteilt sein. Daher sind bei einem Beispiel keine, einige oder alle Bildentrauschungsmerkmale durch das Bildentrauschungssystem 202 implementiert.
  • Das Bildentrauschungssystem 202 umfasst, wenn es beispielsweise in dem Server 201 lokalisiert ist, eine Anwendung, die auf dem Server 201 oder einem Abschnitt einer Softwareanwendung läuft, die auf die Vorrichtung 100 heruntergeladen werden kann. Das System 102 kann beispielsweise eine Webhostinganwendung beinhalten, die ermöglicht, dass die Vorrichtung 100 mit Content von dem Bildentrauschungssystem 202, das auf dem Server 201 gehostet ist, interagiert. Auf diese Weise verringert der Server 201 den Rauschpegel eines Digitalbildes. Daher kann der Ort einiger funktioneller Module in dem System 202 von einer Ausführungsform zur anderen variieren. Obwohl das Kerne generierende Modul 102 in diesem exemplarischen Fall beispielsweise auf der Clientseite gezeigt ist, kann es bei anderen Ausführungsformen auch auf der Serverseite (beispielsweise innerhalb des Systems 202) sein. Eine beliebige Anzahl von Client-Server-Konfigurierungen erschließt sich im Lichte der vorliegenden Offenbarung. Bei wieder anderen Ausführungsformen können die Techniken gänzlich auf einem Nutzercomputer, beispielsweise einfach als eigenständige Bildabwandlungsanwendung, implementiert sein. Obwohl die Digitalcontentdatenbank 148 in diesem exemplarischen Fall auf der Clientseite gezeigt ist, kann sie bei anderen Ausführungsformen auf ähnliche Weise auch auf der Serverseite sein, was beispielsweise bei einer cloudbasierten Bilddatenbank der Fall ist. Die Datenbank mit Digitalcontent und/oder Codes kann daher bezüglich der Vorrichtung 102 lokal oder remote sein, solange sie für Module, die durch das System 102 oder das System 202 implementiert sind, zugänglich sind.
  • Exemplarischer Betrieb
  • 3A zeigt eine exemplarische Szene, aus der ein Bild durch die hier erläuterten Techniken generiert und entrauscht werden soll, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung. Die exemplarische Szene zeigt ein Zimmer neben einem Fenster, wobei das Zimmer einen Tisch, Stühle und zwei Lampen beinhaltet. Ein Schatten der Lampe fällt auf Wände des Zimmers. Ebenso dargestellt ist ein exemplarischer Ort einer Kamera 304, die die Szene 300 aufnehmen soll. Man beachte, dass bei einigen Beispielen die Szene 300 synthetisch generiert ist. Die Kamera ist darüber hinaus bei einigen derartigen Beispielen eine virtuelle Kamera. Ändert sich der Ort der virtuellen Kamera, so ändert sich auch die Perspektive der Szene 300.
  • Die Szene 300 wird zu Anfang synthetisch ohne Anleuchten oder Schatten generiert. Eine derartige Szene sieht nicht wirklichkeitsnah aus. Damit die Szene 300 fotorealistischer aussieht, wird die Szene 300 mittels einer geeigneten Digitalbildwiedergabemethodik, so beispielsweise der Monte-Carlo-Methodik, wiedergegeben.
  • Ein Bild, das aus der Szene 300 generiert wird, das also beispielsweise durch die Monte-Carlo-Methode mittels einer vergleichsweise großen Anzahl von Abtastpunkten generiert wird, kann ein Ground-Truth-Bild sein. Daher ist die Szene 300 vergleichsweise rauschfrei und weist eine vergleichsweise hohe Auflösung auf. Dargestellt innerhalb der Szene ist ein rechteckiger Abschnitt 308, der hier später in Bezug auf 3B erläutert wird.
  • Zudem dargestellt ist ein Weg 312 eines exemplarischen Lichtstrahles, der in die Szene 300 eintritt, von einem exemplarischen Abtastpunkt 316 (der zufällig die Wand ist) der Szene 300 reflektiert wird und die Kamera erreicht. Während einer fotorealistischen Wiedergabe der Szene 300 (beispielsweise mittels der Monte-Carlo-Methodik) werden Attribute (die hier auch als „Hilfsmerkmale“ bezeichnet werden) des Abtastpunktes 316 berücksichtigt. Ist der Abtastpunkt 316 beispielsweise ein glänzendes Objekt, so beispielsweise ein Glas oder ein Spiegel, so wird ein Strahl einfallenden Lichtes von dem Abtastpunkt 316 in einer spezifischen Richtung reflektiert, es tritt beispielsweise eine spiegelnde Reflexion auf, und der Abtastpunkt 316 wird auf spezifische Weise wiedergegeben. Ist der Abtastpunkt 316 demgegenüber ein mattes Objekt, so beispielsweise eine Wand, so wird das Licht gleichmäßiger in vielen (beispielsweise allen) verschiedenen Richtungen reflektiert, es tritt beispielsweise eine diffuse Reflexion auf, und der Abtastpunkt 316 wird auf gänzlich andere Weise wiedergegeben. Beispiele für derartige Attribute oder Hilfsmerkmale beinhalten daher Oberflächencharakteristika des Abtastpunktes 316, einen Abstand des Abtastpunktes 316 von der Kamera wie auch einige andere Hilfsmerkmale, wie sie hier noch detaillierter beschrieben werden. Die Wiedergabe des Abtastpunktes 316 beruht zudem auf der Menge und/oder dem Typ des Lichtes, das aus verschiedenen Richtungen auf den Abtastpunkt 316 auftrifft. Die Wiedergabe des Abtastpunktes 316 beruht zudem beispielsweise darauf, ob der Abtastpunkt eine direkte Beleuchtung, eine indirekte Beleuchtung, eine diffuse Beleuchtung, eine spiegelnde Beleuchtung und dergleichen mehr empfängt, was hier kollektiv als Strahldichtemerkmale an dem Abtastpunkt 316 bezeichnet wird. Die Wiedergabe des Abtastpunktes 316 beruht daher auf Hilfsmerkmalen des Abtastpunktes 316 wie auch Strahldichtemerkmalen des Abtastpunktes 316, wie nachstehend noch detaillierter erläutert wird.
  • 3B zeigt die Szene 300 von 3A, ein vergleichsweise verrauschtes Bild 340, das für die Szene mittels einer Monte-Carlo-Wiedergabe mit 8 Abtastpunkten pro Pixel (8 SPP) wiedergegeben wird, und ein vergleichsweise rauschfreies Bild 344, das durch das Entrauschen des Bildes 340 generiert wird, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung. Wie anhand 3A erläutert wird, ist die Szene 300 von 3A und 3B beispielsweise eine Ground-Truth-Szene, die beispielsweise von der Monte-Carlo-Methodik mittels einer vergleichsweise großen Anzahl von Abtastpunkten wiedergegeben wird.
  • 3B zeigt zudem das Bild 340, das den rechteckigen Abschnitt 308 der Szene 300 darstellt. Das Bild 340 ist ein verrauschtes Bild, das durch die Monte-Carlo-Methodik beispielsweise mittels einer vergleichsweise kleinen Anzahl von Abtastpunkten, so beispielsweise 8 SPP, wiedergegeben wird, was noch erläutert wird.
  • 3B zeigt zudem das Bild 344, das eine entrauschte Version des Bildes 344 darstellt, wie hier noch detaillierter erläutert wird. Das Rauschen in dem Bild 340 wird beispielsweise beseitigt oder verringert, um das Bild 344 zu generieren. Das Generieren des Bildes 344 aus dem Bild 340 wird nachstehend noch detaillierter erläutert.
  • 3C zeigt mehrere benachbarte Pixel einer Szene, die wiedergegeben werden soll, sowie exemplarische Abtastpunkte von zwei exemplarischen Pixeln entsprechend einigen Ausführungsformen der vorliegenden Offenbarung. Dargestellt sind beispielsweise Pixel Y11, Y12, ..., Y46 mit Anordnung in Reihen und Spalten, also in Matrixform. Bei einem Beispiel weist das Pixel Y24 unmittelbar angrenzende Pixel Y13, Y14, Y15, Y23, Y25, Y33, Y34 und Y35 auf. Zudem dargestellt sind Abtastpunkte S_1_24, S_2_24, ..., S_8_24 innerhalb des exemplarischen Pixels Y24. Des Weiteren dargestellt sind Abtastpunkte S_1_42, S_2_42, ..., S_8_42 innerhalb eines weiteren exemplarischen Pixels Y42.
  • In 3C sind daher 8 Abtastpunkte pro Pixel oder 8 SPP dargestellt, obwohl einzelne Pixel auch eine beliebige andere Anzahl von Abtastpunkten in sich aufweisen können. Obwohl die Abtastpunkte für die exemplarischen Pixel Y24 und Y42 dargestellt sind, beinhalten andere Pixel auch derartige Abtastpunkte, obwohl dies in der Figur wegen zeichnerischer Eindeutigkeit nicht dargestellt ist. Die Abtastpunkte eines Pixels sind willkürlich innerhalb des Pixels befindlich. Die Abtastpunkte S_1_24, S_2_24, ..., S_8_24 sind beispielsweise willkürlich innerhalb des Pixels Y24 verteilt, und die Abtastpunkte S_1_42, S_2_42, ..., S_8_42 sind willkürlich innerhalb des Pixels Y42 verteilt.
  • Nachstehende Gleichung 1 ist eine Wiedergabegleichung, die die Verteilung von Lichtenergie in einer Szene an einem beliebigen gegebenen Abtastpunkt im Raum quantifiziert. Sie stellt die Grundlage der modernen fotorealistischen Bildwiedergabe dar. L ( x , ω 0 ) = L e ( x , ω 0 ) + Ω + ƒ ( x , ω i , ω 0 ) . L ( x , ω i ) . ( n , ω i ) d ω i
    Figure DE102021004572A1_0001
  • In Gleichung 1 gilt: L(x, w0) ist eine ausgehende Strahldichte an dem Abtastpunkt x in einer Ausgaberichtung ω0. Der Term Le bezeichnet die Emittanz der Strahldichte an dem Abtastpunkt x in der Ausgaberichtung ω0. Ist der Abtastpunkt x eine Lichtquelle, die Licht oder eine Strahldichte emittiert, so weist der Term Le einen Nicht-Null-Wert auf. Der Integralterm ist die reflektierte Strahldichte an dem Abtastpunkt x in der Ausgaberichtung w0, stellt also Licht dar, das von dem Abtastpunkt x in der Ausgaberichtung ω0 reflektiert wird. Daher ist die gesamte ausgehende Strahldichte L(x, ω0) an dem Abtastpunkt x in der Ausgaberichtung ω0 gleich der Summe der emittierten Strahldichte und der reflektierten Strahldichte an dem Abtastpunkt x.
  • Wie in Gleichung 1 zu sehen ist, wird die reflektierte Strahldichte durch Integration über alle möglichen Eingaberichtungen (beispielsweise durch Integration in allen Eingaberichtungen, die symbolisch mit Ω+ dargestellt werden) berechnet. Der Term ƒ(x, ωi, ω0) ist die bidirektionale Reflektivitätsverteilungsfunktion BRDF (Bidirectional Reflectance Distribution Function BRDF), durch die definiert ist, welcher Bruchteil der Lichtenergie, die aus der Eingaberichtung ωi kommt, in die Ausgaberichtung ω0 an dem Abtastpunkt x reflektiert wird. Die BRDF ist eine Funktion von Oberflächenattributen, die hier als Hilfsmerkmale bezeichnet werden, so beispielsweise die Emissivitätseigenschaft, die Reflexivitätseigenschaft, die Rauheitseigenschaft, die Albedoeigenschaft und/oder andere Eigenschaften des Abtastpunktes x. Der Term L(x, ωi) ist der Strahldichtewert des einfallenden Lichtes aus der Eingaberichtung ωi, und die Integration wird über alle möglichen Richtungen von ωi, wie durch Ω+ dargestellt ist, ausgeführt. Der Term (n. ωi) ist ein Kosinusfaktor, der die Verringerung der Lichtenergie infolgedessen modelliert, dass Licht in größere Flächen unter Grazing-Winkeln (90°-Komplement des Einfallswinkels) gespreizt wird. Hierbei ist n eine Richtung normal oder senkrecht zur Oberfläche des Abtastpunktes x.
  • Idealerweise kann Gleichung 1 zur Wiedergabe eines synthetischen Bildes benutzt werden, damit das Bild fotorealistischer aussieht. Gleichwohl besteht ein vorherrschendes Problem beim Lösen von Wiedergabegleichung 1 darin, dass das Lösen die Berechnung eines rekursiven Integrals erfordert. Da der Integrand des Integrals von Gleichung 1 beispielsweise vieldimensional und während eines Großteils der Zeit diskontinuierlich ist, ist die Nutzung von nummerischen Integrationsmethoden oder einer Closed-Form-Integration im Allgemeinen überhaupt nicht umsetzbar oder schwierig. Entsprechend wird oftmals die Monte-Carlo-Methodik zusammen mit der Strahlverfolgung (ray tracing) zur Lösung von Gleichung 1 benutzt. Die Strahlverfolgung impliziert das Verfolgen von Lichtstrahlen aus einer Lichtquelle, nachdem diese von einem oder mehreren Abtastpunkten reflektiert worden sind und eine Kamera erreichen, und zwar beispielsweise auf dem Lichtweg 312, der in 3A dargestellt ist. Bei der Wegverfolgung wird dieser Weg umgedreht, sodass Licht, das von der Kamera empfangen wird, zur Lichtquelle einschließlich möglicher Reflexionen an verschiedenen Abtastpunkten zurückverfolgt werden kann.
  • Bei einigen Beispielen tastet die Monte-Carlo-Methodik den Integrand von Gleichung 1 willkürlich ab. Ein Monte-Carlo-Abschätzer zum Berechnen von Gleichung 1 für ein einzelnes Pixel i kann folgendermaßen dargestellt werden: L i = 1 N j = 1 N F ( X j ) p ( X j )
    Figure DE102021004572A1_0002
  • In Gleichung 2 ist N gleich der Anzahl von Abtastpunkten pro Pixel. Das Bild 340 wird beispielsweise mittels 8 Abtastpunkten pro Pixel oder 8 SPP, wie auch in 3B dargestellt ist, generiert. Daher gilt in diesem Fall: N = 8. Die Ground-Truth-Szene 300 von 3A und 3B wird mittels einer größeren SPP-Anzahl, so beispielsweise von 4096 SPP, generiert und kann als Ground Truth benutzt werden, um beispielsweise verschiedene der hier erläuterten maschinell lernenden Module zu trainieren.
  • In Gleichung 2 gilt: Li ist die endgültige Strahldichteausgabe pro Pixel, F(x) stellt den Integrand von Wiedergabegleichung 1 dar, Xj ist eine Zufallsvariable, die aus der Wahrscheinlichkeitsdichtefunktion p(x) extrahiert wird, und p(Xj) ist die Wahrscheinlichkeit dafür, die Zufallsvariable Xj zu wählen. Die Domäne von Xj kann die obere Halbkugel der Richtungen Ω+ sein, kann jedoch in Abhängigkeit von einer anderen Parametrisierung der Wiedergabegleichung auch der Satz aus allen Oberflächenpunkten sein. Wie in 3C gezeigt ist, wo das Pixel Y24 mit 8 Abtastpunkten abgetastet wird, wird der Faktor F(X1)/p(X1) beispielsweise für den Abtastpunkt S_1_24 berechnet, der Faktor F(X2)/p(X2) wird für den Abtastpunkt S_2_24 berechnet, und so weiter. Anschließend werden diese Faktoren summiert und durch 8 geteilt, um ein Mittel der Abtastungen entsprechend Gleichung 2 bereitzustellen, wodurch die endgültige Strahldichteausgabe LY24 für das Pixel Y24 generiert wird. Ω+ ist ein Satz, der eine große Anzahl darstellt, die sich unendlichen Dimensionen nähert, wodurch das Lösen von Gleichung 1 mittels beschränkter Rechenleistung schwierig wird. Im Gegensatz hierzu ist die Anzahl von Abtastpunkten N in Gleichung 2 eine endliche Zahl, was die Berechnung von Gleichung 2 ermöglicht.
  • Daher kann Gleichung 2 zur Berechnung von Gleichung 1 folgendermaßen benutzt werden: L ( x , ω 0 ) = L e ( x , ω 0 ) + L i ( x , ω 0 )
    Figure DE102021004572A1_0003
  • Hierbei wird Li(x, w0) von Gleichung 1a mittels der in Gleichung 2 dargestellten Monte-Carlo-Methodik berechnet.
  • Die Abtastgröße N von Gleichung 2 gibt die Qualität oder die Menge des Rauschens innerhalb eines Bildes, das entsprechend Gleichungen 2 und 1a wiedergegeben wird, an. Das Ground-Truth-Bild 300 von 3A und 3B kann beispielsweise mittels eines vergleichsweise hohen Wertes (beispielsweise Hunderte oder Tausende) von N generiert werden. Das Lösen von Gleichung 2 für jedes Pixel der Szene mit einem derart hohen Wert von N ist jedoch rechentechnisch aufwändig und zeitraubend. Im Gegensatz hierzu wird das Bild 340 von 3B mit einem vergleichsweise kleinen Wert (so beispielsweise 8) von N in Gleichung 2 generiert.
  • Wie hier noch detaillierter erläutert wird, werden Gleichungen 2 und 1a benutzt, um verrauschte Bilder wiederzugeben, indem beispielsweise ein vergleichsweise niedriger Wert der Abtastgröße N benutzt wird. 8 SPP wird beispielsweise zusammen mit der Monte-Carlo-Methodik in Gleichung 2 benutzt, um ein verrauschtes Bild wiederzugeben. Anschließend werden verschiedene hier erläuterte Techniken benutzt, um das Rauschen in dem verrauschten Bild zu verringern und ein rauschfreies (oder rauschverringertes) Bild, so beispielsweise den Abschnitt des Bildes 344, der in 3B dargestellt ist, zu generieren.
  • Im Zusammenhang mit dem Entrauschen von Bildern wird eine „Abtastung“ durch F ( X j ) p ( X j )
    Figure DE102021004572A1_0004
    aus Gleichung 2 dargestellt. Jeder Abtastpunkt (so beispielsweise die Abtastpunkte S_1_24, S_2_24 und so weiter, siehe Darstellung in 3C) weist eine entsprechende Abtastung, die durch Vorstehendes dargestellt wird, auf. Jeder Abtastpunkt wird entsprechenden mehreren Strahldichtemerkmalen und entsprechenden mehreren Hilfsmerkmalen zugeordnet. Ein Abtastpunkt Si wird beispielsweise (i) einem entsprechenden Strahldichtevektor Lsi, der mehrere Strahldichtemerkmale umfasst, und (ii) einem entsprechenden Hilfsvektor Asi, der mehrere Hilfsmerkmale umfasst, zugeordnet.
  • Der Strahldichtevektor Lsi umfasst beispielsweise Strahldichtemerkmale für den Abtastpunkt Si, wobei die Strahldichtemerkmale Attribute oder Charakteristika eingehenden Lichtes, das auf den Abtastpunkt Si auftrifft, betreffen. Bei einigen Beispielen wird die Strahldichte eingehenden Lichtes an dem Abtastpunkt in verschiedene Kategorien kategorisiert, so beispielsweise (i) direktes Anleuchten und diffuse Reflexion, (ii) direktes Anleuchten und spiegelnde Reflexion, (iii) indirektes Anleuchten und diffuse Reflexion und (iv) indirektes Anleuchten und spiegelnde Reflexion. Die Kategorien werden generiert, indem ein kartesisches Produkt zwischen (direktes Anleuchten, indirektes Anleuchten) und (diffuse Reflexion, spiegelnde Reflexion) definiert wird, was die vorstehend erläuterten exemplarischen Kategorien ergibt.
  • Die Komponente der direkten Beleuchtung des Strahldichtevektors Lsi für den Abtastpunkt Si umfasst Licht, das direkt von einer Lichtquelle kommt und den Abtastpunkt Si beleuchtet. Im Gegensatz hierzu umfasst die indirekte Beleuchtung der Strahldichtemerkmale Lsi für den Abtastpunkt Si Licht, das an dem Abtastpunkt Si ankommt, nachdem es von einer oder mehreren Oberflächen reflektiert worden ist.
  • Die Reflexion von einer glatten, flachen Oberfläche, so beispielsweise von einem Spiegel, wird als spiegelnde Reflexion bezeichnet. Für einen einzigen eingehenden Lichtstrahl ist bei spiegelnder Reflexion der reflektierte Lichtstrahl in einer spezifischen einzigen Richtung vorhanden. Bei einigen Beispielen umfasst der Strahldichtevektor Lsi für den Abtastpunkt Si eine Komponente der spiegelnden Reflexion von Licht, das an dem Abtastpunkt Si empfangen wird.
  • Im Gegensatz zur spiegelnden Reflexion tritt, wenn eine Oberfläche (wie beispielsweise diejenige von Papier, einer Wand) rau ist, diffuse Reflexion auf. Bei diffuser Reflexion wird das reflektierte Licht in mehreren Richtungen gestreut. Bei einigen Beispielen umfasst der Strahldichtevektor Lsi für den Abtastpunkt Si des Weiteren eine Komponente der diffusen Reflexion von Licht, das an dem Abtastpunkt Si empfangen wird.
  • Daher beinhaltet in dem vorstehend erläuterten Nutzungsfall, in dem die Strahldichte des eingehenden Lichtes an dem Abtastpunkt Si in diese Kategorien kategorisiert worden ist, der Strahldichtevektor Lsi rote (R), blaue (B) und grüne (G) Komponenten (i) des direkten Anleuchtens und der diffusen Reflexion, (ii) des direkten Anleuchtens und der spiegelnden Reflexion, (iii) des indirekten Anleuchtens und der diffusen Reflexion und (iv) des indirekten Anleuchtens und der spiegelnden Reflexion. Für den Abtastpunkt Si ist der Strahldichtevektor Lsi beispielsweise folgendermaßen definiert: L s i = [ R direkt diffus , G direkt diffus , B direkt diffus , R direkt spiegelnd , G direkt spiegelnd , B direkt spiegelnd , R indirekt diffus , G indirekt diffus , B indirekt diffus , R indirekt spiegelnd , G indirekt spiegelnd , B indirekt spiegelnd ]
    Figure DE102021004572A1_0005
  • Hierbei ist Rdirekt diffus die R- oder rote Komponente der direkten Beleuchtung und der diffusen Reflexion, Gdirekl diffus ist die G- oder grüne Komponente der direkten Beleuchtung und der diffusen Reflexion, und so weiter. Daher umfasst der Strahldichtevektor Lsi 12 Floats oder 12 Werte, beispielsweise vier RGB-Werte zur Beschreibung von vier entsprechenden Typen von Beleuchtungen und Reflexionen (beispielsweise (i) direktes Anleuchten und diffuse Reflexion, (ii) direktes Anleuchten und spiegelnde Reflexion, (iii) indirektes Anleuchten und diffuse Reflexion und (iv) indirektes Anleuchten und spiegelnde Reflexion), obwohl der Strahldichtevektor bei einigen anderen Beispielen auch einen oder mehrere andere Typen von Strahldichtemerkmalen beinhalten kann. Bei einigen Beispielen ist der Strahldichtevektor Lsi für den Abtastpunkt Si ein 12-dimensionaler Vektor zur Beschreibung von verschiedenen Kategorien des Lichtes oder der Strahldichte an dem Abtastpunkt Si. Bei einigen Ausführungsformen schätzt das Merkmalsidentifizierungsmodul 103, das in 1 und 2 dargestellt ist, die Strahldichtevektoren für verschiedene Abtastpunkte ab. Für die Abtastpunkte S_1_24 und S_2_24 von 3C werden die Strahldichtevektoren beispielsweise als L_1_24 beziehungsweise L_2_24 dargestellt.
  • Während der Wiedergabe wird die eingehende Strahldichte daher in direkte und indirekte Beleuchtungen sowie diffuse und spiegelnde Reflexionen getrennt. Da die direkte Beleuchtung und die spiegelnde Reflexion im Allgemeinen einen höheren Frequenzgehalt (beispielsweise relativ zur indirekten Beleuchtung und/oder zur diffusen Reflexion) aufweisen, stellt diese Kategorisierung für die maschinell lernenden Module (die nachstehend noch erläutert werden) ein besseres Verständnis der Raumfrequenzkomponenten der Strahldichte des eingegebenen Lichtes bereit.
  • Bei einigen Beispielen umfasst ein Hilfsvektor Asi Hilfsmerkmale eines Abtastpunktes Si. Die Hilfsmerkmale des Abtastpunktes Si beinhalten verschiedene Merkmale oder Attribute, die den Abtastpunkt Si eindeutig definieren oder beschreiben. Die Hilfsmerkmale beinhalten intrinsische Eigenschaften (so beispielsweise die Rauheit) des Abtastpunktes Si wie auch Eigenschaften des Abtastpunktes Si relativ zu einer Position der Kamera (so beispielsweise den Abstand von der Kamera oder die „Tiefe“ bezüglich).
  • Die Hilfsmerkmale definieren die Art, auf die eingehendes Licht von dem Abtastpunkt Si zu der Kamera abgestrahlt werden soll. Erläutert werden hier einige exemplarische Hilfsmerkmale; die Liste ist jedoch nicht erschöpfend, weshalb das hier erläuterte System 102 auch andere geeignete Hilfsmerkmale nutzen kann. Bei einigen Beispielen können die Hilfsmerkmale für ein gegebenes Modell oder eine gegebene Szene in einer entsprechenden Szenendatei beinhaltet sein, die in der Datenbank 148 und/oder 248 von 1 und 2 gespeichert sein kann.
  • Ein erstes Beispiel für Hilfsmerkmale umfasst ein „Normalenmerkmal“, das eine Richtung angibt, die zu einer Oberfläche des Abtastpunktes normal oder senkrecht ist. Die Richtung, die durch das „Normalenmerkmal“ spezifiziert wird, kann eine Richtung, in der Licht von dem Abtastpunkt reflektiert werden soll, auf Grundlage der Richtung eingehenden Lichtes festlegen. Das „Normalenmerkmal“ umfasst drei entsprechende Werte, beispielsweise X-, Y- und Z-Richtungen oder Koordinaten, die in Kombination die Richtung, die normal zu dem Abtastpunkt Si ist, definieren. Die Datenbank 148 umfasst beispielsweise eine Szenendatei, die eine „Normalenkarte“ speichert, die eine Normalenrichtung für verschiedene Pixel und Abtastpunkte innerhalb der Szene spezifiziert.
  • Ein zweites Beispiel für Hilfsmerkmale umfasst ein „Albedomerkmal“. Die Albedo ist ein Maß für die diffuse Reflexion von einer Oberfläche weg und wird auf einer Skala von 0 bis 1 gemessen. 0 entspricht beispielsweise schwarzer Farbe, die einfallende Strahlung vollständig oder in merklicher Menge absorbiert, während 1 weißer Farbe entspricht, die einfallende Strahlung vollständig oder in merklicher Menge reflektiert. Anders gesagt, die Albedo des Abtastpunktes Si ist ein Maß dafür, wie viel Licht von dem Abtastpunkt Si absorbiert oder reflektiert wird. Die Albedo kann bei einigen Beispielen einen dreidimensionalen Wert mit R-, G- und B-Komponenten (Rot, Grün und Blau) aufweisen. Die Szenendatei speichert eine „Albedokarte“, die Albedowerte für verschiedene Pixel und Abtastpunkte innerhalb der Szene spezifiziert.
  • Ein drittes Beispiel für Hilfsmerkmale umfasst ein „Tiefenmerkmal“. Die Tiefe des Abtastpunktes Si ist ein Maß für einen linearen Abstand von der virtuellen Kamera zu dem Abtastpunkt Si. Man beachte, dass dann, wenn sich eine Position der Kamera ändert, auch die Szene aus einer anderen Position aufgenommen wird, wodurch sich auch das Tiefenmerkmal ändert.
  • Ein viertes Beispiel für Hilfsmerkmale umfasst ein „Kameraraumpositionsmerkmal“. Die Szene wird beispielsweise mittels der Kameraraumkoordinate, die eine X-, eine Y- und eine Z-Achse umfasst, generiert, wobei die Kamera den Ursprung des Koordinatensystems bildet. Der Abtastpunkt Si weist daher eine X-, eine Y- und eine Z-Koordinate auf, was eine Position des Abtastpunktes Si relativ zu der Kamera spezifiziert. Man beachte, dass das Tiefenmerkmal aus dem Kameraraumpositionsmerkmal hergeleitet werden kann. Daher werden bei einigen Beispielen sowohl das Tiefen- wie auch das Kameraraumpositionsmerkmal zum Entrauschen der Szene benutzt, während bei einigen anderen Beispielen nur eines von dem Tiefen- und dem Kameraraumpositionsmerkmal benutzt wird.
  • Ein weiteres Beispiel für Hilfsmerkmale umfasst ein emissives Merkmal, das ein Maß für die Lichtemissivität des Abtastpunktes Si ist. Ist der Abtastpunkt Si beispielsweise eine Lichtquelle, so weist der Abtastpunkt Si einen hohen Wert für dieses Merkmal auf. Bei einigen Beispielen ist das emissive Merkmal ein binärer Indikator, der angibt, ob der Abtastpunkt emissiv ist oder nicht.
  • Weitere Beispiele für Hilfsmerkmale umfassen ein metallisches Merkmal und ein transmissives Merkmal. Das metallische Merkmal ist ein binärer Indikator, der angibt, ob eine Oberfläche metallisch ist oder nicht. Eine Metalloberfläche wird beispielsweise mittels eines ersten Wertes des metallischen Merkmales angegeben, während eine Kunststoff- oder Glasoberfläche mittels eines zweiten Wertes des metallischen Merkmals angegeben wird. Das transmissive Merkmal ist ein binärer Indikator, der angibt, ob eine Oberfläche transmissiv ist oder nicht (wie viel Licht beispielsweise durch die Oberfläche hindurchtritt). Bei einigen Beispielen ermöglichen die transmissiven und die metallischen Merkmale, dass die maschinell lernenden Module zwischen Reflexion und Brechung sowie zwischen Dielektrikum und Leiter unterscheiden. Ein weiteres Beispiel für Hilfsmerkmale umfasst ein Rauheitsmerkmal, das zwischen 0 und 1 variiert, um die Rauheit des Abtastpunktes Si anzugeben.
  • Daher beinhalten einige der exemplarischen Hilfsmerkmale, die vorstehend erläutert worden sind, das Normalenmerkmal, das Albedomerkmal, das Tiefenmerkmal, das Kameraraumpositionsmerkmal, das emissive Merkmal, das metallische Merkmal, das transmissive Merkmal und das Rauheitsmerkmal. Für den Abtastpunkt Si wird der Hilfsvektor Asi (beispielsweise von dem Merkmalsidentifizierungsmodul 103 von 1 und 2) folgendermaßen gebildet: A s i = [ X Normalenmerkmal , Y Normalenmerkmal , Z Normalenmerkmal , R Albedo , G Albedo , B Albedo , Tiefe , X Kameraraumposition , Y Kameraraumposition , Z Kameraraumposition , Emissiv , Metallisch , Transmissiv , Rauheit ]
    Figure DE102021004572A1_0006
  • Daher weist der Hilfsvektor Asi, der dem Abtastpunkt Si entspricht, 14 exemplarische Werte auf, nämlich die X-, Y- und Z-Koordinaten des Normalenmerkmals; die R-, G- und B-Werte des Albedomerkmals; das Tiefenmerkmal; die X-, Y- und Z-Koordinaten des Kameraraumpositionsmerkmals; das emissive Merkmal; das metallische Merkmal; das transmissive Merkmal und das Rauheitsmerkmal. Daher ist bei derartigen exemplarischen Ausführungsformen der Hilfsvektor Asi, der dem Abtastpunkt Si entspricht, ein 14-dimensionaler Vektor.
  • Jeder Abtastpunkt Si weist einen entsprechenden Hilfsvektor Asi auf. Für den Abtastpunkt S_1_24 des Pixels Y24 von 3C ist der entsprechende Hilfsvektor beispielsweise gleich A_1_24. Auf ähnliche Weise ist für den Abtastpunkt S_2_24 des Pixels Y24 von 3C der entsprechende Hilfsvektor gleich A_2_24, und so weiter.
  • Wie erläutert worden ist, ist bei einigen Ausführungsformen der Strahldichtevektor Lsi für den Abtastpunkt Si ein 12-dimensionaler Vektor, der Eigenschaften des eingehenden Lichtes an dem Abtastpunkt Si darstellt. Bei einigen derartigen Ausführungsformen ist der Hilfsvektor Asi, der dem Abtastpunkt Si entspricht, ein 14-dimensionaler Vektor, der Charakteristika des Abtastpunktes darstellt. Daher kann eine Kombination aus dem Strahldichtevektor Lsi und dem Hilfsvektor Asi entsprechend dem Abtastpunkt Si benutzt werden, um die Menge des Lichtes, das von dem Abtastpunkt Si abgestrahlt wird, zu berechnen. Daher kann die Kombination des Strahldichtevektors Lsi und des Hilfsvektors Asi benutzt werden, um eine fotorealistische Szene zu generieren, in der die Objekte innerhalb des Bildes realitätsnahe Anleuchteffekte aufweisen. Das System 102 und/oder 103 nutzt den Strahldichtevektor Lsi und den Hilfsvektor Asi zum Entrauschen des verrauschten Bildes 340, wobei das verrauschte Bild 340 ursprünglich mittels einer Monte-Carlo-Methodik mit niedrigem SPP (beispielsweise mit 8 SPP), was noch erläutert wird, wiedergegeben wird.
  • 4 zeigt ein Strahldichtemerkmalsvektoren generierendes Modul 104 (hier auch als Modul 104 bezeichnet, wie in 1 und 2 dargestellt ist) mit Konfigurierung zum Empfangen von Strahldichtevektoren für jeden von mehreren Abtastpunkten von mehreren Pixeln einer Szene und zum Generieren von endgültigen Strahldichtevektoren für jedes Pixel der mehreren Pixel, wobei die endgültigen Strahldichtevektoren zum Entrauschen eines verrauschten Bildes der Szene nutzbar sind, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
  • Eingaben in das Modul 104 sind die Strahldichtevektoren 414 eines jeden von mehreren Abtastpunkten von mehreren Pixeln der wiederzugebenden Szene. Wie vorstehend anhand Gleichung 3 erläutert worden ist, ist der Strahldichtevektor Lsi für einen Abtastpunkt Si beispielsweise ein 12-dimensionaler Vektor, der Charakteristika des eingehenden Lichtes an dem Abtastpunkt Si darstellt. Wie in 3C und 4 gezeigt ist, sind beispielsweise für das Pixel Y24 die Abtastpunkte gleich S_1_24, S_2_24, ..., S_8_24; und für das Pixel Y42 sind die Abtastpunkte gleich S_1_42, S_2_42, ..., S_8_42. Das Modul 104 empfängt die Strahldichtevektoren 414. Für das Pixel Y24 und für die Abtastpunkte S_1_24, S_2_24, ..., S_8_24 empfängt das Modul 104 beispielsweise die Strahldichtevektoren L_1_24, L_2_24, ..., L_8_24 bezugsrichtig. Auf ähnliche Weise empfängt für das Pixel Y42 und für die Abtastpunkte S_1_42, S_2_42, ..., S_8_42 das Modul 104 beispielsweise die Strahldichtevektoren L_1_42, L_2_42, ..., L_8_42 bezugsrichtig.
  • Bei einigen Ausführungsformen gibt das Modul 104 endgültige Strahldichtemerkmalsvektoren 422 (hier auch einfach als „Strahldichtemerkmalsvektoren 422“ bezeichnet) für jedes Pixel der Szene aus. Das Modul 104 gibt beispielsweise einen endgültigen Strahldichtemerkmalsvektor F_R24 für das Pixel Y24, einen endgültigen Strahldichtemerkmalsvektor F_R42 für das Pixel Y42 und allgemein einen endgültigen Strahldichtemerkmalsvektor F_Ri für das Pixel Yi aus. Der Buchstabe „F“ bei dem endgültigen Strahldichtemerkmalsvektor F_Ri gibt an, dass dies der „endgültige“ Strahldichtemerkmalsvektor ist. Der Buchstabe „R“ bei dem endgültigen Strahldichtemerkmalsvektor F_Ri gibt an, dass dies der endgültige „Strahldichtemerkmalsvektor“ ist.
  • Das Modul 104 umfasst ein neuronales Netzwerkmodul 410 (hier auch als „Modul 410“ bezeichnet), das auch als Abtasteinbettungsstufe des Moduls 104 bezeichnet wird. Das neuronale Netzwerkmodul 410, das die Abtasteinbettungsstufe umfasst, codiert alle verrauschten Eingabedaten pro Abtastung (beispielsweise die Strahldichtevektoren 414) zur Abtasteinbettung. Insbesondere empfängt das Modul 410 für ein gegebenes Pixel Strahldichtevektoren 414 von zugeordneten Abtastpunkten. Das Modul 104 generiert auf Grundlage der Strahldichtevektoren 414 von zugeordneten Abtastpunkten des gegebenen Pixels einen entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektor 418 für das Pixel.
  • Das neuronale Netzwerkmodul 410 ist ein maschinell lernendes Modul, das abstimmbare oder lernbare Gewichtungen aufweist, die während einer Trainingsphase des Moduls 410 abgestimmt werden. Die Trainingsphase kann Ground-Truth-Bilder, so beispielsweise das Bild 300 von 3A, nutzen, um die Gewichtungen des Moduls 410 zu trainieren.
  • Für die 8 Abtastpunkte des Pixels Y24 empfängt das Modul 410 beispielsweise entsprechende Strahldichtevektoren L_1_24, L_2_24, ..., L_8_24 bezugsrichtig. Das Modul 410 generiert einen zwischenzeitlichen Strahldichtemerkmalsvektor I_R24 für das Pixel Y24. Das Modell 410 führt eigentlich ein Mitteln der Strahldichtevektoren L_1_24, L_2_24, ..., L_8_24 aus, um den entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektor F_R24 zu generieren; gleichwohl handelt es sich nicht um eine einfache Mittelungsfunktion. Vielmehr ist das Modul 410 darauf trainiert, ein intelligentes und gewichtetes Mitteln durchzuführen, um den zwischenzeitlichen Strahldichtemerkmalsvektor I_R24 aus den 8 Strahldichtevektoren L_1_24, L_2_24, ..., L_8_24 zu generieren.
  • Man beachte, dass der zwischenzeitliche Strahldichtemerkmalsvektor I_R24 für das Pixel Y24 aus den Strahldichtevektoren L_1_24, L_2_24, ..., L_8_24, die den Abtastpunkten des Pixels Y24 zugeordnet sind, generiert ist. Der zwischenzeitliche Strahldichtemerkmalsvektor I_R24 für das Pixel Y24 wird von Strahldichtevektoren von Abtastpunkten von beliebigen benachbarten Pixeln, so beispielsweise von dem benachbarten Pixel Y33, nicht beeinflusst. Daher kann ein Strahldichtevektor eines Abtastpunktes eines Pixels den zwischenzeitlichen Strahldichtemerkmalsvektor eines benachbarten Pixels nicht beeinflussen. Anders gesagt, für ein Pixel i wird der zwischenzeitliche Strahldichtemerkmalsvektor I_Ri auf Grundlage von Strahldichtevektoren von Abtastpunkten innerhalb des Pixels i generiert und wird von einem beliebigen anderen Strahldichtevektor eines beliebigen anderen Abtastpunktes außerhalb des Pixels i nicht beeinflusst.
  • 4 zeigt zudem eine exemplarische Implementierung des Moduls 410. Bei einigen Ausführungsformen umfasst das Modul 410 ein dreistufiges neuronales Netzwerk, das die neuronalen Netzwerkstufen 430a, 430b, 430c aufweist. Eine Leaky-ReLU (Rectified Linear Unit ReLU) 434 ist zwischen den Stufen 430a und 430b vorhanden, und es ist eine weitere Leaky-ReLU 434 zwischen den Stufen 430b und 430c vorhanden. Die ReLUs 434 führen beispielsweise eine Nichtlinearität in dem Modul 440 ein.
  • Die Stufen 430a, 430b, 430c codieren für jeden Abtastpunkt einen entsprechenden Strahldichtevektor. Die Stufen 430a, 430b, 430c detektieren beispielsweise Muster in den Daten und bestimmen, wie die Strahldichtevektoren von Abtastpunkten innerhalb eines spezifischen Pixels kombiniert oder gemittelt werden sollen, um den zwischenzeitlichen Strahldichtemerkmalsvektor 418 für jenes spezifische Pixel auszugeben. Bei einigen Ausführungsformen umfassen die Stufen 430a, 430b, 430c abstimmbare oder lernbare Gewichtungen, die während einer Trainingsphase des Moduls 410 abgestimmt werden. Das Modul 410 wird beispielsweise darauf trainiert zu identifizieren, wie mehrere Strahldichtevektoren 414 von verschiedenen Abtastpunkten eines spezifischen Pixels verarbeitet und gemittelt werden sollen, um den zwischenzeitlichen Strahldichtemerkmalsvektor 418 für jenes spezifische Pixel zu generieren. Bei einem bloßen Beispiel detektiert das Modul 410 Muster in den Strahldichtevektoren und bestimmt die Art, auf die die Strahldichtevektoren kombiniert oder gemittelt werden sollen, um den zwischenzeitlichen Strahldichtemerkmalsvektor 418 zu bilden.
  • Bei der exemplarischen Implementierung von 4 ist jeder zwischenzeitliche Strahldichtemerkmalsvektor 418 ein 64-dimensionaler Vektor. Die erste Stufe 430a empfängt die 12-dimensionalen Strahldichtevektoren 414 und wandelt jeden Vektor in einen entsprechenden 64-dimensionalen Vektor um. Die beiden Stufen 430b, 430c arbeiten auch in dem 64-dimensionalen Raum und geben den 64-dimensionalen zwischenzeitlichen Strahldichtemerkmalsvektor 418 für jedes Pixel aus. Daher transformieren die Stufen 430a, 430b, 430c die 12-dimensionalen Strahldichtevektoren 414 in den 64-dimensionalen Ausgaberaum. Wie erläutert worden ist, berücksichtigen die Stufen 430a, 430b, 430c Abtastpunkte innerhalb eines jeden Pixels, wobei keine Überkreuzbeeinflussung zwischen Pixeln vorhanden ist (ein Abtastpunkt eines ersten Pixels beeinflusst beispielsweise andere Abtastpunkte des ersten Pixels, beeinflusst jedoch Abtastpunkte anderer Pixel nicht). Daher ist keine räumliche Ausbreitung einer Strahldichteeigenschaft über angrenzende oder benachbarte Pixel hinweg vorhanden.
  • Die Ausgabe 432 der Stufe 430c ist ein 64-dimensionaler Vektor Esi pro Abtastpunkt. Daher weist jedes Pixel 8 verschiedene Ausgaben 432 auf. Für das Pixel Y24 ist die Ausgabe 432 beispielsweise E_1_24, E_2_24, ..., E_8_24 entsprechend 8 zugrunde liegenden Abtastpunkten (beispielsweise bei Annahme von 8 SPP, wie anhand 3C erläutert worden ist).
  • Daher empfangen, wie erläutert worden ist, die Abtasteinbettungskomponenten Ψ (beispielsweise die Stufen 430a, 430b, 430c) Strahldichtevektoren Lsi für jeden Abtastpunkt s in jedem Pixel i und nehmen ein Codieren zu einer Abtastcodierung Esi derart vor, dass gilt: Ψ: ℝ12 → ℝd, Ψ(Lsi) = Esi, wobei Esi die Ausgabe 432 der Stufe 430c ist. Hierbei wird bei dem Beispiel von 4 exemplarisch d gleich 64 gesetzt.
  • Ein Mittelungsmodul 434 mittelt sodann für ein spezifisches Pixel die entsprechenden 8 Ausgaben Esi, um einen entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektor 418 für das Pixel zu generieren. Für ein Pixel i mit Abtastpunkten, die allgemein mit s dargestellt werden, lautet die Ausgabe des Mittelungsmoduls 434 folgendermaßen: I _ R i = 1 N s = 1 N E s i
    Figure DE102021004572A1_0007
  • In Gleichung 5 ist N für die exemplarische Implementierung von 3C gleich 8, wobei 8 SPP benutzt wird. Entsprechend Gleichung 5 mittelt das Mittelungsmodul 434 für das Pixel Y24 daher die Ausgaben E_1_24, E_2_24, ..., E_8_24, um einen entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektor I_R24 für das Pixel Y24 zu generieren. Bei einigen Beispielen unterstützt das Mitteln dasjenige, dass die Reihenfolge der Abtastungen in einem Pixel die Ausgabe nicht ändert und die Permutationsinvarianz erhalten bleibt.
  • Die zwischenzeitlichen Strahldichtemerkmalsvektoren 418 geben die Strahldichtevektoren von Gleichung 3 an. Für ein spezifisches Pixel ist der zwischenzeitliche Strahldichtemerkmalsvektor 418 beispielsweise ein Mittel von codierten Versionen der entsprechenden Strahldichtevektoren der entsprechenden Abtastpunkte, wobei das Codieren von den Stufen 430a, 430b, 430c mittels trainierbarer Gewichtungen dieser neuronalen Netzwerkstufen erfolgt. Daher ist der zwischenzeitliche Strahldichtemerkmalsvektor 418 eines Pixels ein intelligentes Mittel von Strahldichtevektoren der entsprechenden Abtastpunkte.
  • Wie in 4 dargestellt ist, umfasst das Modul 104 ein weiteres neuronales Netzwerkmodul 411 (hier auch als Modul 411 bezeichnet), das hier auch als Raumausbreitungsstufe bezeichnet wird. Das Modul 411 empfängt für jedes Pixel der Szene einen entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektor 418 von dem Modul 410. Das Modul 411 empfängt beispielsweise den zwischenzeitlichen Strahldichtemerkmalsvektor I_R24 für das Pixel Y24, den zwischenzeitlichen Strahldichtemerkmalsvektor I_R42 für das Pixel Y42 und allgemein den zwischenzeitlichen Strahldichtemerkmalsvektor I_Ri für ein Pixel i.
  • Bei einigen Ausführungsformen generiert das Modul 411 für jedes Pixel einen entsprechenden endgültigen Strahldichtemerkmalsvektor 422. Das Modul 411 generiert beispielsweise einen endgültigen Strahldichtemerkmalsvektor F_R24 für das Pixel Y24, einen endgültigen Strahldichtemerkmalsvektor F_R42 für das Pixel Y42 und allgemein einen endgültigen Strahldichtemerkmalsvektor F_Ri für ein Pixel i.
  • Wie noch detaillierter erläutert wird, umfasst jeder endgültige Strahldichtemerkmalsvektor mehrere Abschnitte. Bei der exemplarischen Implementierung von 4 und 7A (wobei 7A dreistufige Entrauschungsvorgänge darstellt) wird jeder endgültige Strahldichtemerkmalsvektor in drei Abschnitte unterteilt. Dies bedeutet, dass die Anzahl von Abschnitten eines endgültigen Strahldichtemerkmalsvektors der Anzahl von zu nutzenden Entrauschungsstufen entspricht.
  • Jeder Strahldichtemerkmalsvektor ist bei dem Beispiel von 4 beispielsweise 15-dimensional (beinhaltet also beispielsweise 15 Werte). Die ersten fünf Werte bilden einen ersten Abschnitt des Strahldichtemerkmalsvektors, die nächsten fünf Werte bilden einen zweiten Abschnitt des Strahldichtemerkmalsvektors, und die endgültigen bzw. letzten fünf Werte bilden einen dritten Abschnitt des Strahldichtemerkmalsvektors. Wie in 4 dargestellt ist, ist der Strahldichtemerkmalsvektor F_R24 beispielsweise in [F_R24_1, F_R24_2, F_R24_3] unterteilt, und der Strahldichtemerkmalsvektor F_R42 ist in [F_R42_1, F_R42_2, F_R42_3] unterteilt. Jeder Abschnitt eines Strahldichtemerkmalsvektors wird benutzt, um einen entsprechenden Kern zu generieren, was nachstehend noch detaillierter anhand 6A, 6B und 6C erläutert wird.
  • Bei einigen Ausführungsformen generiert das Modul 411 zudem für jedes Pixel i drei entsprechende Skalierungsfaktoren ai 1, ai 2 und ai 3. Die Anzahl von Skalierungsfaktoren, die für jedes Pixel generiert werden, entspricht der Anzahl der zu nutzenden Entrauschungsstufen (wie bei dem Beispiel von 7A gezeigt ist, werden drei Stufen benutzt). Das Modul 411 generiert beispielsweise den Skalierungsfaktor a24 1, a24 2 und a24 3 für das Pixel Y24. Diese Skalierungsfaktoren führen während des Kerngenerierens eine Asymmetrie ein, wie hier noch detaillierter erläutert wird.
  • Daher empfangen, wie erläutert worden ist, die Raumausbreitungskomponenten Φ (beispielsweise das Modul 411) einen zwischenzeitlichen Strahldichtevektor I_Ri für ein Pixel i und geben drei verschiedene endgültige Strahldichtemerkmalsvektoren F_Ri_k (wobei k gleich 1, 2 und 3 ist) für das Pixel i derart aus, dass gilt: Φ: ℝ64 → ℝ15, Φ (I_Ri) = [F_Ri_1, F_Ri_2, F_Ri_3, ai 1, ai 2, ai 3]. Hierbei ist F_Ri_1 für das Pixel Y24 gleich F_R24_1, F_Ri_2 für das Pixel Y24 ist gleich F_R24_2, und so weiter.
  • Bei einigen Ausführungsformen nimmt das Modul 411 ein Kreuzkorrelieren von Strahldichtemerkmalen von benachbarten Pixeln vor, um die endgültigen Strahldichtemerkmalsvektoren zu generieren. Das Modul 411 bestimmt beispielsweise, wie Strahldichtewerte, die einem Pixel zugeordnet sind, zu einem benachbarten Pixel beitragen können. Man gehe beispielsweise von dem schattierten Abschnitt 348 an einer Wand der Szene 300 von 3B (in dem Bild 344 bezeichnet) und dem angrenzenden angeleuchteten Abschnitt 346 der Wand aus. Benachbarte Pixel innerhalb des Abschnittes 346 sollen leicht ähnliche Strahldichteattribute (beispielsweise ähnliche Strahldichtevektoren) aufweisen, weshalb das Modul 411 über Strahldichteattribute eines Pixels innerhalb des Abschnittes 346 von Strahldichteattributen eines benachbarten Pixels innerhalb desselben Abschnittes 346 lernen kann. Auf ähnliche Weise sollen benachbarte Pixel innerhalb des Abschnittes 348 leicht ähnliche Strahldichteattribute (beispielsweise ähnliche Strahldichtevektoren) aufweisen, weshalb das Modul 411 über Strahldichteattribute eines Pixels innerhalb des Abschnittes 348 von Strahldichteattributen eines benachbarten Pixels innerhalb desselben Abschnittes 348 lernen kann. Das Modul 411 ist jedoch gegebenenfalls nicht in der Lage, über Strahldichteattribute eines Pixels innerhalb des Abschnittes 346 von Strahldichteattributen eines benachbarten Pixels innerhalb des benachbarten Abschnittes 348 zu lernen. Auf ähnliche Weise ist das Modul 411 gegebenenfalls nicht in der Lage, über Strahldichteattribute eines Pixels innerhalb des Abschnittes 348 von Strahldichteattributen eines benachbarten Pixels innerhalb des angrenzenden Abschnittes 346 zu lernen.
  • Daher breitet das Modul 411 bei einigen Ausführungsformen Strahldichteattribute eines ersten Pixels räumlich zu einem oder mehreren benachbarten Pixeln aus, so beispielsweise dann, wenn das erste Pixel und ein oder mehrere benachbarte Pixel einige ähnliche Strahldichteattribute aufweisen und/oder in einem selben oder ähnlichen Abschnitt des Bildes sind. Ist das erste Pixel jedoch entlang einer Kante oder nahe an dieser (beispielsweise nahe an einer Kante der Abschnitte 346 und 348), so tritt die Ausbreitung der Strahldichteattribute über die Kante der zwei Abschnitte hinweg gegebenenfalls nicht auf. Daher beeinflussen Strahldichtemerkmalsvektoren von benachbarten Pixeln innerhalb des Abschnittes 346 einander gegebenenfalls, beeinflussen jedoch gegebenenfalls Pixel des Abschnittes 348 im Wesentlichen nicht. Auf ähnliche Weise beeinflussen Strahldichtemerkmalsvektoren von benachbarten Pixeln innerhalb des Abschnittes 348 einander gegebenenfalls, beeinflussen jedoch gegebenenfalls Pixel des Abschnittes 346 im Wesentlichen nicht.
  • Das Modul 411 umfasst bei der exemplarischen Implementierung von 4 die Stufen 440a, 440b, ..., 440i, also beispielsweise neun verschiedene Stufen. Jede Stufe 440 in 4 beinhaltet eine Zahl, die die Kapazität oder Zahl von Schichten innerhalb der entsprechenden Stufe darstellt. Bei einem bloßen Beispiel gilt: die Stufe 440a umfasst 32 Schichten, die Stufe 440b umfasst 48 Schichten, die Stufe 440c umfasst 64 Schichten, die Stufe 440d umfasst 80 Schichten, die Stufe 440e umfasst 96 Schichten, die Stufe 440f umfasst 80 Schichten, die Stufe 440g umfasst 64 Schichten, die Stufe 440h umfasst 48 Schichten, und die Stufe 440i umfasst 15 Schichten. Bei einigen Ausführungsformen wird ein zweifaches (2×) Maxpooling nach einer einzelnen oder mehreren einzelnen (beispielsweise jeder) der Stufen 440a, 440b, 440c und 440d durchgeführt. Bei einigen Ausführungsformen wird ein zweifaches (2x) bilineares Upsampling nach einer einzelnen oder mehreren einzelnen (beispielsweise jeder) der Stufen 440e, 440f, 440g und 440h durchgeführt.
  • Die Stufen 440 umfassen trainierbare Gewichtungen, die während einer Trainingsphase des Moduls 411 abgestimmt werden. Sobald das Modul 411 trainiert worden ist, kann es daher ein Kreuzkorrelieren von Strahldichtemerkmalsvektoren von benachbarten Pixeln durchführen, um eine bessere Abschätzung von Strahldichteattributen von verschiedenen Pixeln zu erhalten. Wie erläutert worden ist, berücksichtigt die Kreuzkorrelation den Ort der Pixel. Ist ein Pixel an einer Kante eines Abschnittes oder nahe an dieser, so werden Strahldichteattribute des Pixels von Strahldichteattributen eines Pixels auf der anderen Seite der Kante nicht beeinflusst (oder beeinflussen diese nicht).
  • Bei dem Beispiel transformiert das Modul 411 bei der Implementierung von 4 einen 64-dimensionalen zwischenzeitlichen Strahldichtemerkmalsvektor 418 eines Pixels in einen 15-dimensionalen endgültigen Strahldichtemerkmalsvektor 422 des Pixels. Während der Transformation wird der Strahldichtemerkmalsvektor gegebenenfalls von Strahldichteattributen eines oder mehrerer benachbarter Pixel mit ähnlichen Lichtbedingungen beeinflusst.
  • Man gehe beispielsweise davon aus, dass die zwischenzeitlichen Strahldichtemerkmalsvektoren der Pixel Y24, Y33 und Y45 bezugsrichtig gleich I_R24, I_R33 und I_R45 sind. Das Modul 411 generiert die endgültigen Strahldichtemerkmalsvektoren F_R24, F_R33 und F_R45 bezugsrichtig für die Pixel Y24, Y33 und Y45. Daher transformiert das Modul 411 den 64-dimensionalen zwischenzeitlichen Strahldichtemerkmalsvektor I_R24 des Pixels Y24 in den 15-dimensionalen endgültigen Strahldichtemerkmalsvektor F_R24 des Pixels Y24. Während des Transformationsprozesses wird der endgültige Strahldichtemerkmalsvektor F_R24 gegebenenfalls von den Strahldichteattributen von einem oder beiden (oder keinem) der zwischenzeitlichen Strahldichtemerkmalsvektoren I_R33 und I_R45 der benachbarten Pixel Y33 beziehungsweise Y45 beeinflusst.
  • 5 zeigt ein Hilfsmerkmalsvektoren generierendes Modul 108 (hier auch als Modul 108 bezeichnet, wie in 1 und 2 dargestellt ist) der Systeme 102 und/oder 202 mit Konfigurierung zum Empfangen eines entsprechenden Hilfsvektors für jeden von mehreren Abtastpunkten von mehreren Pixeln einer Szene und zum Generieren eines entsprechenden endgültigen Hilfsvektors für jedes Pixel der mehreren Pixel, wobei die endgültigen Hilfsvektoren zum Entrauschen eines verrauschten Bildes der Szene nutzbar sind, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung.
  • Man beachte, dass vorstehend erläuterte Gleichung 3 den Strahldichtevektor Lsi betrifft, wohingegen Gleichung 4 den Hilfsvektor Asi betrifft. Die Strahldichtevektoren Lsi werden in das Modul 104 von 4 eingegeben, wohingegen die Hilfsvektoren Asi in das Modul 108 von 5 eingegeben werden. Daher soll das Modul 104 von 4 strahldichtebezogene Information verarbeiten, während das Modul 108 von 5 hilfsmerkmalsbezogene Information verarbeiten soll. Über diesen grundlegenden Unterschied hinaus ist eine gewisse strukturelle Ähnlichkeit zwischen den Modulen 104 und 108 vorhanden, wie noch erläutert wird.
  • Wie erläutert worden ist, sind die Eingaben in das Modul 108 von 5 die Hilfsvektoren 514 eines jeden von mehreren Abtastpunkten von mehreren Pixeln der wiederzugebenden Szene. Wie vorstehend erläutert worden ist, ist ein Hilfsvektor Asi für einen Abtastpunkt Si beispielsweise ein 14-dimensionaler Vektor zur Darstellung von Charakteristika der Oberfläche des Abtastpunktes Si und des Ortes des Abtastpunktes Si relativ zu der Kameraposition, wie anhand Gleichung 4 erläutert worden ist. Wie in 3C und 5 zu sehen ist, sind für das Pixel Y24 die Abtastpunkte beispielsweise S_1_24, S_2_24, ..., S_8_24; und für das Pixel Y42 sind die Abtastpunkte S_1_42, S_2_42, ..., S_8_42. Das Modul 108 empfängt Hilfsvektoren 514. Für das Pixel Y24 und für die Abtastpunkte S_1_24, S_2_24, ..., S_8_24 empfängt das Modul 108 beispielsweise die Hilfsvektoren A_1_24, A_2_24, ..., A_8_24 bezugsrichtig. Auf ähnliche Weise empfängt das Modul 104 für das Pixel Y42 und für die Abtastpunkte S_1_42, S_2_42, ..., S_8_42 die Hilfsvektoren A_1_42, A_2_42, ..., A_8_42 bezugsrichtig. Das Generieren von Hilfswerktoren ist anhand Gleichung 4 erläutert worden.
  • Bei einigen Ausführungsformen gibt das Modul 108 einen entsprechenden endgültigen Hilfsmerkmalsvektor 522 für jedes Pixel der Szene aus. Das Modul 108 gibt beispielsweise einen endgültigen Hilfsmerkmalsvektor F_A24 für das Pixel Y24, einen endgültigen Hilfsmerkmalsvektor F_A42 für das Pixel Y42 und allgemein einen endgültigen Hilfsmerkmalsvektor F_Ai für das Pixel i aus. Der Buchstabe „F“ gibt in dem endgültigen Hilfsmerkmalsvektor F_Ai an, dass es sich um den „endgültigen“ Hilfsmerkmalsvektor handelt. Der Buchstabe „A“ gibt in dem endgültigen Hilfsmerkmalsvektor F_Ai an, dass es sich um den endgültigen „Hilfsmerkmalsvektor“ handelt.
  • Das Modul 108 umfasst ein neuronales Netzwerkmodul 510 (hier auch als „Modul 510“ bezeichnet), das auch als Abtasteinbettungsstufe des Moduls 108 bezeichnet wird. Das neuronale Netzwerkmodul 510, das die Abtasteinbettungsstufe umfasst, codiert alle verrauschten Eingabedaten pro Abtastung (beispielsweise die Hilfsvektoren 514) zur Abtasteinbettung. Insbesondere empfängt das Modul 510 für ein gegebenes Pixel Hilfsvektoren 514 der zugeordneten Abtastpunkte. Das Modul 108 generiert auf Grundlage der Hilfsvektoren 514 der zugeordneten Abtastpunkte des gegebenen Pixels einen entsprechenden zwischenzeitlichen Hilfsmerkmalsvektor 518 für das Pixel.
  • Das Modul 510 empfängt beispielsweise für die 8 Abtastpunkte des Pixels Y24 bezugsrichtig entsprechende Hilfsvektoren A_1_24, A_2_24, ..., A_8_24. Das Modul 510 generiert einen zwischenzeitlichen Hilfsmerkmalsvektor I_A24 für das Pixel Y24. Das Modul 510 führt eigentlich ein Mitteln der Hilfsvektoren A_1_24, A_2_24, ..., A_8_24 durch, um den entsprechenden zwischenzeitlichen Hilfsmerkmalsvektor F_A24 zu generieren; es handelt sich jedoch nicht um eine einfache Mittelungsfunktion. Vielmehr führt das Modul 510 ein intelligentes und gewichtetes Mitteln durch, um den zwischenzeitlichen Hilfsmerkmalsvektor I_A24 aus den 8 Hilfsvektoren A_1_24, A_2_24, ..., A_8_24 zu generieren.
  • Man beachte, dass der zwischenzeitliche Hilfsmerkmalsvektor I_A24 für das Pixel Y24 aus den Hilfsvektoren A_1_24, A_2_24, ..., A_8_24, die den Abtastpunkten des Pixels Y24 zugeordnet sind, generiert wird. Der zwischenzeitliche Hilfsmerkmalsvektor I_A24 für das Pixel Y24 wird von Hilfsvektoren von Abtastpunkten von beliebigen benachbarten Pixeln, so beispielsweise von dem benachbarten Pixel Y33, nicht beeinflusst. Daher kann ein Hilfsvektor eines Abtastpunktes eines Pixels den zwischenzeitlichen Hilfsmerkmalsvektor eines benachbarten Pixels nicht beeinflussen. Anders gesagt, für ein Pixel i wird der zwischenzeitliche Hilfsmerkmalsvektor I_Ai auf Grundlage von Hilfsvektoren von Abtastpunkten innerhalb des Pixels i generiert und wird nicht von einem beliebigen anderen Hilfsvektor eines beliebigen anderen Abtastpunktes außerhalb des Pixels i beeinflusst.
  • 5 zeigt zudem eine exemplarische Implementierung des Moduls 510, das ein dreistufiges neuronales Netzwerk umfasst, das neuronale Netzwerkstufen 530a, 530b, 530c beinhaltet. Ein Leaky-ReLU 534 ist zwischen den Stufen 530a und 530b vorhanden, und ein weiteres Leaky-ReLU 534 ist zwischen den Stufen 530b und 530c vorhanden. Die ReLUs 534 führen beispielsweise eine Nichtlinearität in dem Modul 510 ein.
  • Die Stufen 530a, 530b, 530c codieren für jede Abtastung einen entsprechenden Hilfsvektor. Die Stufen 530a, 530b, 530c detektieren beispielsweise Muster in den Daten und bestimmen, wie die Hilfsvektoren kombiniert oder gemittelt werden sollen, um die zwischenzeitlichen Hilfsmerkmalsvektoren 518 auszugeben. Bei einigen Ausführungsformen umfassen die Stufen 530a, 530b, 530c abstimmbare oder lernbare Gewichtungen, die während einer Trainingsphase des Moduls 510 abgestimmt werden. Das Modul 510 wird beispielsweise darauf trainiert zu identifizieren, wie mehrere Hilfsvektoren 514 von verschiedenen Abtastpunkten eines spezifischen Pixels verarbeitet und gemittelt werden sollen, um den zwischenzeitlichen Hilfsmerkmalsvektor 518 für jenes spezifische Pixel zu generieren.
  • Bei der exemplarischen Implementierung von 5 ist jeder zwischenzeitliche Hilfsmerkmalsvektor 518 ein 64-dimensionaler Vektor. Die erste Stufe 530a empfängt die 12-dimensionalen Hilfsvektoren 514 und wandelt jeden Vektor in einen 64-dimensionalen Vektor um. Die beiden Stufen 530b, 530c arbeiten auch in dem 64-dimensionalen Raum und geben den 64-dimensionalen zwischenzeitlichen Hilfsmerkmalsvektor 518 für jedes Pixel aus. Die Stufen 530a, 530b, 530c transformieren daher die 12-dimensionalen Hilfsvektoren 514 in den 64-dimensionalen Ausgaberaum. Wie erläutert worden ist, berücksichtigen die Stufen 530a, 530b, 530c Abtastpunkte innerhalb eines jeden Pixels, wobei keine Überkreuzbeeinflussung zwischen Pixeln auftritt (ein Abtastpunkt eines ersten Pixels beeinflusst beispielsweise andere Abtastpunkte des ersten Pixels, beeinflusst jedoch Abtastpunkte anderer Pixel nicht). Daher gibt es keine räumliche Ausbreitung einer Hilfseigenschaft über Pixel hinweg.
  • Die Ausgabe 532 der Stufe 530c ist ein 64-dimensionaler Vektor E"si pro Abtastpunkt Si. Daher weist jedes Pixel 8 verschiedene Ausgaben 532 auf (beispielsweise unter der Annahme von 8 SPP, wie anhand 3C erläutert worden ist). Für das Pixel Y24 ist die Ausgabe 532 beispielsweise gleich E"_1_24, E"_2_24, ..., E"_8_24 entsprechend den 8 zugrunde liegenden Abtastpunkten.
  • Daher empfangen, wie erläutert worden ist, die Abtasteinbettungskomponenten Ψ" (beispielsweise die Stufen 530a, 530b, 530c) Hilfsvektoren Asi ∈ ℝ14 für jeden Abtastpunkt s in jedem Pixel i und nehmen ein Codieren in eine Abtastcodierung E"si derart vor, dass gilt: Ψ": ℝ14 →ℝd, ψ"(Asi) = E"si, wobei E"si die Ausgabe 532 der Stufe 530c ist. Hierbei wird bei dem Beispiel von 5 exemplarisch d gleich 64 gewählt.
  • Ein Mittelungsmodul 534 mittelt sodann für ein spezifisches Pixel die entsprechenden 8 Ausgaben, um einen entsprechenden zwischenzeitlichen Hilfsmerkmalsvektor 518 für das Pixel zu generieren. Für ein Pixel i mit Abtastpunkten, die allgemein mit s dargestellt werden, lautet die Ausgabe des Mittelungsmoduls 534 beispielsweise folgendermaßen: I _ A i = 1 N s = 1 N E ' ' s i
    Figure DE102021004572A1_0008
  • In Gleichung 6 ist N für die exemplarische Implementierung von 3C gleich 8, wobei 8 SPP benutzt wird. Entsprechend Gleichung 6 mittelt das Mittelungsmodul 534 für das Pixel Y24 daher die Ausgaben E"_1_24, E"_2_24, ..., E"_8_24, um einen entsprechenden zwischenzeitlichen Hilfsmerkmalsvektor I_A24 für das Pixel Y24 zu generieren. Bei einigen Beispielen unterstützt das Mitteln dasjenige, dass die Reihenfolge von Abtastungen in einem Pixel die Ausgabe nicht ändert und die Permutationsinvarianz erhalten bleibt.
  • Die zwischenzeitlichen Hilfsmerkmalsvektoren 518 geben die Hilfsvektoren von Gleichung 4 an. Für ein spezifisches Pixel ist der zwischenzeitliche Hilfsmerkmalsvektor 518 beispielsweise ein Mittel von codierten Versionen der entsprechenden Hilfsvektoren der entsprechenden Abtastpunkte, wobei das Codieren von den Stufen 530a, 530b, 530c mittels trainierbarer Gewichtungen dieser neuronalen Netzwerkstufen durchgeführt wird.
  • Bei einigen Ausführungsformen umfasst das Modul 108 des Weiteren ein weiteres neuronales Netzwerkmodul 511 (hier auch als Modul 511 bezeichnet), das hier auch als Raumausbreitungsstufe bezeichnet wird. Das Modul 511 empfängt für jedes Pixel der Szene einen entsprechenden zwischenzeitlichen Hilfsmerkmalsvektor 518 von dem Modul 510. Das Modul 511 empfängt beispielsweise den zwischenzeitlichen Hilfsmerkmalsvektor I_A24 für das Pixel Y24 und den zwischenzeitlichen Strahldichtemerkmalsvektor I_A42 für das Pixel Y42.
  • Bei einigen Ausführungsformen generiert das Modul 511 für jedes Pixel einen entsprechenden endgültigen Hilfsmerkmalsvektor 522 (allgemein als F_ Asi dargestellt). Das Modul 511 generiert beispielsweise einen endgültigen Hilfsmerkmalsvektor F_A24 für das Pixel Y24, einen endgültigen Hilfsmerkmalsvektor F_A42 für das Pixel Y42 und allgemein einen endgültigen Hilfsmerkmalsvektor F_Ai für das Pixel i.
  • Daher empfangen die Raumausbreitungskomponenten Φ" (beispielsweise das Modul 511), wie erläutert worden ist, einen zwischenzeitlichen Hilfsvektor I_Ai für jedes Pixel i und geben einen entsprechenden endgültigen Strahldichtemerkmalsvektor F_Ai für das Pixel i derart aus, dass gilt: Φ": ℝ64 → ℝ4, Φ (I_Ai) = F_Ai.
  • Man beachte, dass jeder endgültige Strahldichtemerkmalsvektor des Moduls 104 von 4 in mehrere Abschnitte unterteilt worden ist (ein endgültiger Strahldichtemerkmalsvektor war beispielsweise eine Verkettung von drei zugrunde liegenden Abschnitten des endgültigen Strahldichtemerkmalsvektors). Im Gegensatz hierzu wird bei einigen Ausführungsformen keine Unterteilung des endgültigen Hilfsmerkmalsvektors von dem Modul 108 bereitgestellt. Bei einigen anderen Ausführungsformen kann jedoch ein endgültiger Hilfsmerkmalsvektor auch in drei entsprechende Abschnitte unterteilt werden, von denen jeder zum Generieren eines entsprechenden Kernes benutzt wird. Man beachte, dass das Modul 411 von 4 Skalierungsfaktoren aj generiert. Im Gegensatz hierzu generiert das Modul 511 von 5 bei einigen Ausführungsformen gegebenenfalls keine derartigen Skalierungsfaktoren.
  • Bei einigen Ausführungsformen nimmt das Modul 511 ein Kreuzkorrelieren von Hilfsmerkmalen von benachbarten Pixeln ähnlich zum Kreuzkorrelieren von Strahldichtemerkmalen durch das Modul 411 des Moduls 104 von 4 vor. Das Modul 511 bestimmt beispielsweise, wie Hilfsmerkmalswerte, die einem Pixel zugeordnet sind, zu einem benachbarten Pixel beitragen können. Man gehe beispielsweise von dem schattierten Abschnitt 348 an einer Wand der Szene 300 von 3B (in dem Bild 344 bezeichnet) und dem benachbarten angeleuchteten Abschnitt 348 der Wand aus. Die beiden Abschnitte 346 und 348 sind Teil einer Wand und können ähnliche Hilfsmerkmale aufweisen. Gleichwohl sollen die Hilfsmerkmale der Wand von denjenigen eines Bildes, das an der Wand hängt, verschieden sein.
  • In einigen Fällen sollen benachbarte Pixel innerhalb der Abschnitte 346 und 348 daher leicht ähnliche Hilfsmerkmalsattribute (beispielsweise ähnliche Hilfsvektoren) aufweisen, weshalb das Modul 511 über Hilfsmerkmalsattribute eines Pixels innerhalb des Abschnittes 346 von Hilfsmerkmalsattributen eines oder mehrerer benachbarter Pixel innerhalb der Abschnitte 346 und/oder 348 lernen kann. Das Modul 511 ist jedoch gegebenenfalls nicht in der Lage, über Hilfsmerkmalsattribute eines Pixels innerhalb des Abschnittes 346 von Hilfsmerkmalsattributen eines benachbarten Pixels eines Bildes, das an der Wand hängt, zu lernen.
  • Daher breitet das Modul 511 bei einigen Ausführungsformen Hilfsmerkmalsattribute eines ersten Pixels räumlich zu einem oder mehreren benachbarten Pixeln aus, und zwar beispielsweise dann, wenn das erste Pixel und ein oder mehrere benachbarte Pixel einige ähnliche Hilfsmerkmalsattribute aufweisen (wenn beispielsweise jedes dieser Pixel Teil einer Wand ist). Ist das erste Pixel jedoch an einer Wand und ist ein zweites Pixel auf einem Bild, das an der Wand hängt, so kann eine Ausbreitung der Hilfsmerkmalsattribute zwischen den ersten und zweiten Pixeln nicht auftreten. Daher beeinflussen Hilfsmerkmalsvektoren von benachbarten Pixeln innerhalb der Abschnitte 346 und/oder 348 einander gegebenenfalls, können jedoch Pixel des Bildes, das an der Wand hängt, im Wesentlichen nicht beeinflussen.
  • Das Modul 511 umfasst bei der exemplarischen Implementierung von 5 die Stufen 540a und 540b, also beispielsweise zwei verschiedene Stufen. Jede Stufe 540 in 5 beinhaltet eine Zahl, die die Kapazität oder Zahl von Schichten innerhalb der Stufe darstellt. Die Stufe 540a umfasst beispielsweise 64 Schichten, während die Stufe 540b vier Schichten umfasst. Die Stufen 540 umfassen trainierbare oder lernbare Gewichtungen, die während einer Trainingsphase des Moduls 511 abgestimmt werden. Sobald das Modul 511 trainiert worden ist, kann es daher ein Kreuzkorrelieren von Hilfsmerkmalsvektoren eines oder mehrerer benachbarter Pixel vornehmen, um eine bessere Abschätzung von Hilfsattributen von verschiedenen Pixeln zu erhalten.
  • Daher transformiert das Modul 511 einen 64-dimensionalen zwischenzeitlichen Hilfsmerkmalsvektor 518 eines Pixels in einen 4-dimensionalen endgültigen Hilfsmerkmalsvektor 522 des Pixels. Während der Transformation wird der Hilfsmerkmalsvektor gegebenenfalls von Hilfsattributen eines oder mehrerer benachbarter Pixel beeinflusst.
  • Man gehe beispielsweise davon aus, dass die zwischenzeitlichen Hilfsmerkmalsvektoren der Pixel Y24, Y33 und Y45 gleich I_A24, I_A33 beziehungsweise I_A45 sind. Das Modul 511 generiert endgültige Hilfsmerkmalsvektoren F_A24, F_A33 und F_A45 für die Pixel Y24, Y33 beziehungsweise Y45. Daher transformiert das Modul 511 den 64-dimensionalen zwischenzeitlichen Hilfsmerkmalsvektor I_A24 des Pixels Y24 in den 4-dimensionalen endgültigen Hilfsmerkmalsvektor F_A24 des Pixels Y24. Während des Transformationsprozesses wird der endgültige Hilfsmerkmalsvektor F_A24 gegebenenfalls von den Strahldichteattributen von einem oder beiden (oder keinem) von den zwischenzeitlichen Hilfsmerkmalsvektoren I_A33 und I_A45 der benachbarten Pixel Y33 beziehungsweise Y45 beeinflusst.
  • Man beachte, dass die Anzahl von Stufen in dem Modul 511 gleich 2 ist, was weniger als die neun Stufen ist, die in dem Modul 411 des Moduls 104 von 4 beinhaltet sind. Daher weist das Raumausbreitungsmodul 511 des Moduls 108 von 5 eine geringere Anzahl von Stufen als das Raumausbreitungsmodul 411 des Moduls 104 von 4 auf. In einigen Fällen kann auch eine höhere Schwankung der Strahldichtedaten bei benachbarten Pixeln als die Schwankung der Hilfsmerkmalsattribute bei benachbarten Pixeln gegeben sein. Pixel der gesamten Wand, so beispielsweise der in der Szene 300 dargestellten Wand, können beispielsweise leicht ähnliche Hilfsmerkmalsattribute aufweisen. Dieselbe Wand weist indes verschiedene Abschnitte auf, die verschiedene Strahldichteattribute aufweisen (beispielsweise liegen einige Abschnitte der Wand im Schatten, während andere Abschnitte der Wand angeleuchtet sind). Entsprechend ist das Detektieren von Strahldichteattributdatenmustern in Pixeln in einigen Fällen problematischer als das Detektieren von Hilfsmerkmalsdatenmustern. Entsprechend weist das Raumausbreitungsmodul 511 des Moduls 108 von 5 bei einigen Ausführungsformen eine geringere Anzahl von Stufen als das Raumausbreitungsmodul 411 des Moduls 104 von 4 auf.
  • 6A, 6B und 6C zeigen das Generieren von jeweiligen Kernen (beispielsweise durch das Kerne generierende Modul 112 von 1 und 2), die als Filter zum Entrauschen eines verrauschten Bildes benutzt werden, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung. Wie vorstehend erläutert worden ist, ist ein Kern eine zweidimensionale Faltungsmatrix oder eine Maske oder ein Filter, die/der eine kleine Matrix (klein beispielsweise relativ zu dem Bild, bei dem er angewendet wird) aufweist. Benutzt werden können derartige Kerne in Bildverarbeitungsanwendungen beispielsweise zum Verwischen, Schärfen, Einprägen, Kantendetektieren und/oder in anderen Bildverarbeitungsanwendungen, die beispielsweise zum Entrauschen wie in der vorliegenden Offenbarung benutzt werden.
  • 6A zeigt beispielsweise das Generieren eines Kernes 620a für ein Zielpixel Y24 von 3C. Der Kern 620a weist beispielsweise den Wirkabstand 2° = 1 auf. Daher wird jedes Pixel, das 1 Pixel entfernt von dem Zielpixel Y24 ist, beim Generieren des Kernes 620a berücksichtigt. Man gehe beispielsweise von einem Kern aus, der eine Matrix von Pixeln mit dem Wirkabstand X und einem Zielpixel als dessen Zentrum umfasst. Benachbarten Pixeln innerhalb des Kernes, die X Pixel entfernt von dem Zielpixel sind, werden Nicht-Null-Gewichtungen zugewiesen, während benachbarten Pixeln innerhalb des Kernes, die nicht X Pixel entfernt von dem Zielpixel sind, Null-Gewichtungen zugewiesen werden. Der Kern 620a von 6A umfasst beispielsweise ein 3×3-Fenster oder eine solche Matrix mit dem Zielpixel Y24 in der Mitte und benachbarten 8 Pixeln, die das Zielpixel umgeben. Die benachbarten Pixel Y33, Y25 und Y15 sind in 6A als Beispiele bezeichnet. Da der Wirkabstand des Kernes gleich 1 ist, sind alle Pixel in dem Kern 620, die 1 Pixel entfernt von dem Zielpixel Y24 sind, in 6A schattiert (im Gegensatz hierzu sind nur einige Pixel in den Kernen von 6B und 6C schattiert), was impliziert, dass alle benachbarten Pixel beim Generieren des Kernes 620a berücksichtigt werden.
  • Um den Kern 620a zu generieren, wird ein endgültiger Strahldichtemerkmalsvektor F_Ri_1 (beispielsweise der erste Abschnitt des endgültigen Strahldichtemerkmalsvektors F_Ri) von dem Modul 104 für jedes schattierte Pixel des Kernes 620a empfangen. Wie anhand 4 erläutert worden ist, ist der endgültige Strahldichtemerkmalsvektor F_Ri in drei Abschnitte unterteilt, nämlich F_Ri_1, F_Ri_2 und F_Ri_3. Der erste Abschnitt F_Ri_1 (beispielsweise für das Pixel Y24, den Abschnitt F_R24_1) des endgültigen Strahldichtemerkmalsvektors F_Ri eines schattierten Pixels i wird zum Generieren des Kernes 620a benutzt. Des Weiteren werden die endgültigen Hilfsmerkmalsvektoren F_Ai von Pixeln, die innerhalb des Kernes 620a schattiert sind, ebenfalls zum Generieren des Kernes 620a benutzt. Die Skalierungsfaktoren aj 1 (die von dem Modul 104 von 4 ausgegeben werden) werden ebenfalls zum Generieren des Kernes 620a benutzt.
  • Jedem schattierten Pixel innerhalb des Kernes (mit Ausnahme des zentralen Zielpixels) wird eine entsprechende Gewichtung zugewiesen. Ist beispielsweise ein zentrales Zielpixel gleich i und ein weiteres Pixel innerhalb des Kernes gleich j, so wird die Gewichtung des Pixels j mittels w1(i, j) dargestellt. Für das Pixel Y15 ist die entsprechende Gewichtung beispielsweise gleich w1(24, 15); für das Pixel Y33 ist die entsprechende Gewichtung gleich w1(24, 33) und so weiter. Der Kern 620a umfasst daher mehrere Gewichtungen w1(i, j) entsprechend mehreren Pixeln. Die Zahl „1“ nach „w“ in der Gewichtung impliziert, dass dies die Gewichtungen für eine erste Entrauschungsstufe sind (oder Zählung k = 1), wie noch erläutert wird.
  • Bei einigen Ausführungsformen generiert das Kerne generierende Modul 112 der Systeme 102 und/oder 104 (in 1 und 2 dargestellt) die Kerngewichtungen w1 (i, j) mittels der Paare von pro Pixel gegebenen endgültigen Strahldichte- und Hilfsmerkmalsvektoren folgendermaßen: w 1 ( i , j ) = a j 1 . e ( F _ R i _ 1 F _ R j _ 1 ) 2 ( F _ A i F _ A j ) 2
    Figure DE102021004572A1_0009
  • In Gleichung 7 ist der Term e die Euler'sche Zahl, die eine mathematische Konstante annähernd gleich 2,71828 ist, während der Operator ||... ||2 die L2-Norm oder den L2-Abstand ausgibt. Der Term ||(F_Ri_1 - F_Rj_1) | |2 innerhalb des Exponenten ist beispielsweise eine L2-Norm oder ein L2-Abstand zwischen dem ersten Abschnitt des endgültigen Strahldichtemerkmalsvektors F_Ri des Pixels i und dem ersten Abschnitt des endgültigen Strahldichtemerkmalsvektors F_Rj des Pixels j. Für die Gewichtung w1(24, 33) entsprechend dem Pixel Y33 ist dieser Term beispielsweise gleich ||(F_R24_1-F_ R33_1)||2.
  • Auf ähnliche Weise ist in Gleichung 7 der Term ||(F_Ai - F_Aj)||2 innerhalb des Exponenten eine L2-Norm oder ein L2-Abstand zwischen dem endgültigen Hilfsmerkmalsvektor F_Ai des Pixels i und dem endgültigen Hilfsmerkmalsvektor F_Aj des Pixels j. Für die Gewichtung w1(24, 33) entsprechend dem Pixel Y33 ist dieser Term beispielsweise gleich ||(F_A24 - F_ A33)||2.
  • Man beachte, dass in Gleichung 7 die Terme innerhalb des Exponenten symmetrisch sind, das heißt, der Beitrag von Pixel i zu Pixel j und der Beitrag von Pixel j zu Pixel i sind gleich. Ohne den Skalierungsfaktor a j 1
    Figure DE102021004572A1_0010
    wären daher die Gewichtungen w1(i, j) und w1(j, i) gleich.
  • Man gehe beispielsweise davon aus, dass das Pixel j eine helle Lichtquelle ist, während das Pixel i keine Lichtquelle ist. Bei diesem Beispiel sind der erste Abschnitt der entsprechenden endgültigen Strahldichtemerkmalsvektoren F_Ri_1 und F_Rj_1 sehr verschieden. In einigen derartigen Fällen ist das Pixel j daher ein Ausreißer, so beispielsweise dort, wo das Pixel j mit hoher energetischer Strahldichte ein Spikerauschen bzw. Rauschspitzen erzeugt. Daher ist der endgültige Strahldichtemerkmalsvektor dieses Pixels tendenziell weit entfernt von endgültigen Strahldichtemerkmalsvektoren von regulären benachbarten Pixeln in dem Raum der gelernten Merkmale. Dies führt zu einem hohen Wert des Exponententerms ||(F_Ai - F_Aj) ||2, was wiederum nahezu einen Null-Wert für die Gewichtungen w1 (i, j) und w1(j, i) ergibt (beispielsweise unter der Annahme, dass der Skalierungsfaktor a j 1
    Figure DE102021004572A1_0011
    nicht benutzt wird). Anders gesagt, wird der Skalierungsfaktor a j 1
    Figure DE102021004572A1_0012
    nicht benutzt, so besteht keine Möglichkeit, dass ein Ausreißerpixel Strahldichtebeiträge von seinen Nachbarn erhält, da die entsprechende Gewichtung sehr nahe an 0 ist.
  • Daher wird bei einigen Ausführungsformen der Skalierungsfaktor a j 1
    Figure DE102021004572A1_0013
    benutzt, um die symmetrische Beziehung zwischen den Gewichtungen w1 (i, j) und w1(j, i) zu brechen. Der Skalierungsfaktor a j 1
    Figure DE102021004572A1_0014
    kann ein Maß dafür sein, wie zuverlässig das Pixel aj für seine benachbarten Pixel ist. Für Ausreißerpixel, also beispielsweise Pixel, die Lichtquellen oder Pixel mit hoher Strahldichte sind (die beispielsweise einen Strahldichtewert aufweisen, der höher als eine Schwelle ist), während benachbarte Pixel Pixel mit niedriger Strahldichte sind, wird der Skalierungsfaktor a j 1
    Figure DE102021004572A1_0015
    niedrig gewählt. Man gehe beispielsweise davon aus, dass das Pixel Y33 ein Ausreißerpixel ist, das ein Pixel mit hoher Strahldichte ist (beispielsweise mit einem Strahldichtewert, der höher als eine Schwelle ist), während das benachbarte Pixel Y24 ein Pixel mit niedriger Strahldichte ist (beispielsweise mit einem Strahldichtewert, der niedriger als die Schwelle ist). Dem Skalierungsfaktor a 33 1
    Figure DE102021004572A1_0016
    wird von dem Modul 411 ein niedriger Wert zugewiesen, während dem Skalierungsfaktor a 24 1
    Figure DE102021004572A1_0017
    von dem Modul 411 ein regulärer, leicht hoher Wert zugewiesen wird. Da der Skalierungsfaktor a 33 1
    Figure DE102021004572A1_0018
    niedrig ist, ist die Gewichtung w1(24, 33), die bei der Berechnung hiervon den Skalierungsfaktor a 33 1
    Figure DE102021004572A1_0019
    nutzt, nunmehr niedrig oder nahezu 0. Da jedoch der Skalierungsfaktor a 24 1
    Figure DE102021004572A1_0020
    nicht niedrig ist, ist die Gewichtung w1(33, 24), die bei der Berechnung hiervon den Skalierungsfaktor a 24 1
    Figure DE102021004572A1_0021
    benutzt, nicht zu niedrig. Dies bedeutet, dass die Gewichtung w1(33, 24) höher als die Gewichtung w1(24, 33) ist (wobei beispielsweise w1 (24, 33) nahezu gleich 0 ist), was von den Differenzen der Skalierungsfaktoren a 33 1
    Figure DE102021004572A1_0022
    und a 24 1
    Figure DE102021004572A1_0023
    herrührt. Daher empfängt das Ausreißerpixel Y33 Nicht-Null-Beiträge von dem regulären Pixel Y24, wohingegen das Ausreißerpixel Y33 im Wesentlichen nicht in der Lage ist, zu dem benachbarten regulären Pixel Y24 beizutragen. Ohne den Skalierungsfaktor a j 1
    Figure DE102021004572A1_0024
    wären die Gewichtungen w1(33, 24) und w1(24, 33) symmetrisch gewesen.
  • Daher kann man sich, wie erläutert worden ist, siehe nochmals Gleichung 7, die Gewichtung w1(i, j) als Faktor oder Gewichtung vorstellen, der/die festlegt, wie viel Strahldichte des Pixels j zur Strahldichte des Pixels I bzw. i beim Entrauschen des verrauschten Bildes beiträgt. Da das verrauschte Bild wenige Abtastpunkte (beispielsweise 8 SPP) aufweist, vergrößern derartige Gewichtungen und die Überkreuzbeeinflussung der Strahldichteattribute bei benachbarten Pixeln die effektive Anzahl von Abtastpunkten, wodurch das Rauschen in dem Bild verringert wird. Der Beitrag des Pixels j zu dem Pixel i ergibt sich über eine Faltung des Kernes 620a mit dem verrauschten Bild, wie hier anhand 7A noch erläutert wird.
  • Daher wird, wie erläutert worden ist, der Kern 620a generiert, indem Gewichtungen w1 (i, j) für jedes schattierte Pixel j innerhalb des Kernes berechnet werden, wobei i das zentrale Pixel des Kernes 620a ist, das wiederum das Zielpixel ist. Für das zentrale Pixel wird keine Gewichtung berechnet, da die Gewichtung w1 (i, i) einfach den Wert ai aufweist.
  • Man beachte, dass der Kern 620a für das Zielpixel i berechnet wird, das bei diesem Beispiel insbesondere das Pixel Y24 ist. Der Kern 620a wird wiederholt berechnet, wobei hier andere Pixel als Zielpixel, wie beispielsweise in 7B dargestellt ist, dienen. Ein anderer Kern wird beispielsweise auf ähnliche Weise generiert, wobei hier das Pixel Y25 als Zielpixel in einem Zentrum dieses Kernes positioniert ist. Darüber hinaus wird noch ein weiterer Kern auf ähnliche Weise generiert, wenn das Pixel Y33 als Zielpixel in einem Zentrum dieses Kernes positioniert ist. Dieser Prozess setzt sich fort, bis 3x3 Kerne für alle Zielpixel des wiederzugebenden Bildes generiert worden sind. Daher wird ein Teilsatz von Kernen mit dem Wirkabstand 2° oder 1 generiert, wobei ein Zielpixel eines jeden Kernes ein entsprechendes Pixel in dem Bild ist. 7B zeigt Beispiele für drei derartige Kerne in dem Teilsatz von Kernen mit dem Wirkabstand 1. Diese Kerne werden für Faltungsvorgänge benutzt, wie nachstehend anhand 7A noch erläutert wird.
  • 6B zeigt das Generieren eines Kernes 620b für das Zielpixel Y24 von 3C. Der Kern 620b weist beispielsweise den Wirkabstand 21 = 2 auf. Daher wird jedes Pixel, das 2 Pixel entfernt von dem Zielpixel Y24 ist, während des Generierens des Kernes 620a berücksichtigt (es wird beispielsweise schattiert und weist eine Nicht-Null-Gewichtung auf). Pixel, die nicht 2 Pixel entfernt von dem Zielpixel sind, werden nicht schattiert, was impliziert, dass diesen Pixeln Null-Gewichtungen zugewiesen werden.
  • Der Kern 620b von 6B umfasst ein 5×5-Fenster oder eine solche Matrix mit dem Zielpixel Y24 in der Mitte und benachbarten 24 Pixeln, die das Zielpixel umgeben. Die benachbarten Pixel Y33 und Y26 sind in 6B als Beispiele bezeichnet. Pixel, die 2 Pixel entfernt von dem Zielpixel Y24 sind, sind in 6B schattiert, was impliziert, dass nur die schattierten Pixel zu dem Zielpixel P24 bzw. Y24, das im Zentrum des Kernes ist, beitragen.
  • Jedes schattierte Pixel innerhalb des Kernes (mit Ausnahme des zentralen Zielpixels) weist eine entsprechende Gewichtung auf. Ist beispielsweise ein zentrales Zielpixel gleich i und ist ein anderes Pixel innerhalb des Kernes gleich j, so wird die Gewichtung des Pixels j mittels w2(i, j) dargestellt. Für das schattierte Pixel Y26 ist die entsprechende Gewichtung beispielsweise gleich w2(24, 26), wohingegen für das nicht schattierte Pixel Y33 keine entsprechende Gewichtung berechnet wird. Der Kern 620b umfasst daher mehrere Gewichtungen w2(i,j) entsprechend mehreren schattierten Pixeln. Die Zahl „2“ nach „w“ in der Gewichtung impliziert, dass dies die Gewichtungen für eine zweite Entrauschungsstufe sind (oder Zählung k = 2), was noch weiter erläutert wird.
  • Bei einigen Ausführungsformen generiert das Kerne generierende Modul 112 der Systeme 102 und/oder 104 (in 1 und 2 dargestellt) die Kerngewichtungen w2(i, j) mittels der Paare von pro Pixel gegebenen endgültigen Strahldichte- und Hilfsmerkmalsvektoren folgendermaßen: w 2 ( i , j ) = a j 2 . e ( F _ R i _ 2 F _ R j _ 2 ) 2 ( F _ A i F _ A j ) 2
    Figure DE102021004572A1_0025
  • Wie ersichtlich ist, ist Gleichung 8 ähnlich zu Gleichung 7. Im Gegensatz zu Gleichung 7, bei der der erste Abschnitt des endgültigen Strahldichtemerkmalsvektors (beispielsweise F_Ri_1) benutzt wird, wird bei Gleichung 8 hingegen der zweite Abschnitt des endgültigen Strahldichtemerkmalsvektors (beispielsweise F_Ri_2), der von dem Modul 104 von 4 generiert wird, benutzt. Im Gegensatz zu Gleichung 7, bei der der Skalierungsfaktor a j 1
    Figure DE102021004572A1_0026
    benutzt wird, wird bei Gleichung 8 darüber hinaus der Skalierungsfaktor a j 2
    Figure DE102021004572A1_0027
    benutzt. Bei einigen Ausführungsformen weisen beide Skalierungsfaktoren a j 1
    Figure DE102021004572A1_0028
    und a j 2
    Figure DE102021004572A1_0029
    für das Pixel j denselben Wert auf, wohingegen bei einigen anderen Ausführungsformen diese Skalierungsfaktoren verschieden sind. Wie erläutert worden ist, werden die Skalierungsfaktoren a j 1
    Figure DE102021004572A1_0030
    und a j 2
    Figure DE102021004572A1_0031
    von dem trainierten neuronalen Netzwerkmodul 411 von 4 generiert. Es sollte einsichtig sein, dass die Erläuterungen im Zusammenhang mit Gleichung 7 gleichermaßen bei Gleichung 8 anwendbar sind.
  • Daher wird der Kern 620b generiert, indem Gewichtungen w2(i, j) für jedes schattierte Pixel j innerhalb des Kernes berechnet werden, wobei i das zentrale Pixel des Kernes 620b ist, das wiederum das Zielpixel ist. Man beachte, dass der Kern 620b für das Zielpixel i berechnet wird, das bei diesem Beispiel speziell das Pixel Y24 ist. Der Kern 620b wird wiederholt berechnet, wobei dann andere Pixel als Zielpixel wirken. Ein weiterer Kern wird beispielsweise auf ähnliche Weise generiert, wobei hier das Pixel Y25 als Zielpixel in einem Zentrum dieses Kernes positioniert ist. Darüber hinaus wird noch ein weiterer Kern auf ähnliche Weise generiert, wobei jedes Pixel Y33 als Zielpixel in einem Zentrum dieses Kernes positioniert ist. Dieser Prozess setzt sich fort, bis 5×5 Kerne für alle Pixel des wiederzugebenden Bildes generiert worden sind. Daher wird der Teilsatz von Kernen mit dem Wirkabstand 21 oder 2 generiert, wobei ein Zielpixel eines jeden Kernes ein entsprechendes Pixel in dem Bild ist. Diese Kerne werden für Faltungsvorgänge benutzt, wie nachstehend anhand 7A noch weiter erläutert wird.
  • 6C zeigt das Generieren eines Kernes 620c für ein Zielpixel Y24 von 3C. Der Kern 620c weist beispielsweise den Wirkabstand 22 = 4 auf. Daher wird jedes Pixel, das 4 Pixel entfernt von dem Zielpixel Y24 ist, während des Generierens des Kernes 620c berücksichtigt. Man beachte, dass jeder der Kerne 620a, 620b und 620c von 6A bis 6C bezugsrichtig für dasselbe Zielpixel Y 24 generiert wird.
  • Der Kern 620c von 6B umfasst ein 9x9-Fenster oder eine solche Matrix mit dem Zielpixel in der Mitte und benachbarten 80 Pixeln, die das Zielpixel umgeben. Die benachbarten Pixel Y20 und Y26 sind in 6C als Beispiele bezeichnet. Pixel, die 4 Pixel entfernt von dem Zielpixel Y24 sind, sind in 6C schattiert, was impliziert, dass nur die schattierten Pixel zu dem Zielpixel P24 bzw. Y24, das im Zentrum des Kernes 620c ist, beitragen.
  • Jedes schattierte Pixel innerhalb des Kernes 620c (mit Ausnahme des zentralen Zielpixels) weist eine entsprechende Nicht-Null-Gewichtung auf. Ist beispielsweise ein zentrales Zielpixel gleich i und ist ein anderes Pixel innerhalb des Kernes gleich j, so wird die Gewichtung des Pixels j mittels w3(i, j) dargestellt. Für das schattierte Pixel Y20 ist die entsprechende Gewichtung beispielsweise gleich w3(24, 20), wohingegen für das nicht schattierte Pixel Y26 keine entsprechende Gewichtung berechnet wird. Der Kern 620c umfasst daher mehrere Gewichtungen w3 (i, j) entsprechend mehreren schattierten Pixeln. Die Zahl „3“ nach „w“ in der Gewichtung impliziert, dass dies die Gewichtungen für eine dritte Entrauschungsstufe sind (oder Zählung k = 3), was noch erläutert wird.
  • Bei einigen Ausführungsformen generiert das Kerne generierende Modul 112 der Systeme 102 und/oder 104 (in 1 und 2 dargestellt) die Kerngewichtungen w3(i, j) mittels der Paare von pro Pixel gegebenen endgültigen Strahldichte- und Hilfsmerkmalsvektoren folgendermaßen: w 3 ( i , j ) = a j 3 . e ( F _ R i _ 3 F _ R j _ 3 ) 2 ( F _ A i F _ A j ) 2
    Figure DE102021004572A1_0032
  • Es ist ersichtlich, dass Gleichung 9 ähnlich zu Gleichung 7 ist. Im Gegensatz zu Gleichung 7, bei der der erste Abschnitt des endgültigen Strahldichtemerkmalsvektors (beispielsweise F_Ri_1) benutzt wird, wird bei Gleichung 9 jedoch der dritte Abschnitt des endgültigen Strahldichtemerkmalsvektors (beispielsweise F_Ri_3), der von dem Modul 104 von 4 generiert wird, benutzt. Im Gegensatz zu Gleichung 7, bei der der Skalierungsfaktor a j 1
    Figure DE102021004572A1_0033
    benutzt wird, wird bei Gleichung 9 darüber hinaus der Skalierungsfaktor a j 3
    Figure DE102021004572A1_0034
    für das Pixel j benutzt. Bei einigen Ausführungsformen weisen die Skalierungsfaktoren a j 1 ,
    Figure DE102021004572A1_0035
    a j 2
    Figure DE102021004572A1_0036
    und a j 3
    Figure DE102021004572A1_0037
    für das Pixel j denselben Wert auf, wohingegen diese Skalierungsfaktoren bei einigen anderen Ausführungsformen verschieden sind. Wie erläutert worden ist, werden diese Skalierungsfaktoren von dem trainierten neuronalen Netzwerkmodul 411 von 4 generiert. Wie ersichtlich ist, sind die Erläuterungen zu Gleichungen 7 und 8 gleichermaßen bei Gleichung 9 anwendbar.
  • Daher wird der Kern 620c generiert, indem Gewichtungen w3(i, j) für jedes schattierte Pixel j innerhalb des Kernes 620c berechnet werden, wobei / das zentrale Pixel des Kernes 620c ist, das wiederum das Zielpixel ist. Man beachte, dass der Kern 620c für das Zielpixel i berechnet wird, das bei diesem Beispiel speziell das Pixel Y24 ist. Der Kern 620c wird wiederholt berechnet, wobei dann andere Pixel als Zielpixel dienen. Ein weiterer Kern wird beispielsweise auf ähnliche Weise generiert, wobei hier das Pixel Y25 als Zielpixel in einem Zentrum dieses Kernes positioniert ist. Darüber hinaus wird noch ein weiterer Kern auf ähnliche Weise generiert, wobei hier das Pixel Y33 als Zielpixel in einem Zentrum dieses Kernes positioniert ist. Dieser Prozess setzt sich fort, bis 9×9 Kerne für alle Pixel des wiederzugebenden Bildes generiert worden sind. Daher wird ein Teilsatz von Kernen mit dem Wirkabstand 22 oder 4 generiert, wobei ein Zielpixel eines jeden Kernes ein entsprechendes Pixel in dem Bild ist. Diese Kerne mit dem Wirkabstand 4 werden für Faltungsvorgänge benutzt, wie nachstehend anhand 7A noch erläutert wird.
  • 7A zeigt das Entrauschen eines verrauschten Bildes 340 mittels mehrerer Entrauschungsstufen, wobei jede Stufe einen Teilsatz von entsprechenden Kernen nutzt, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung. Verschiedene Vorgänge, die anhand 7A erläutert werden, werden von dem rauschverringerte Bilder generierenden Modul 120 von 1 und 2 durchgeführt. Ein verrauschtes Bild 340 bildet beispielsweise das Eingabebild von 7A, wobei ein Abschnitt des verrauschten Bildes 340 auch in 3B und 7A dargestellt ist. Wie anhand 3B und Gleichungen 2 und 1a erläutert worden ist, ist das Bild 340 ein verrauschtes Bild, das mittels der Monte-Carlo-Wiedergabe mit beispielsweise 8 Abtastungen pro Pixel (8 SPP) generiert worden ist. Das verrauschte Bilder generierende Modul 116 des Systems 102 (wie in 1 und 2 dargestellt) generiert beispielsweise das verrauschte Bild 340. Bei einem Beispiel wird das verrauschte Bild 340 entsprechend Gleichungen 2 und 1a, wie hier erläutert worden ist, mit 8 SPP generiert.
  • Wie in 7A dargestellt ist, wird der Kern 620a mit dem verrauschten Bild 340 beispielsweise von dem rauschverringerte Bilder generierenden Modul 120 gefaltet. 7B zeigt einen Faltungsvorgang zwischen einem Teilsatz von Kernen (beispielsweise dem Kern 620a) mit dem Wirkabstand 1 und dem verrauschten Bild 340 entsprechend einigen Ausführungsformen der vorliegenden Offenbarung. Wie in 7A und 7B zu sehen ist, werden einzelne Pixel des verrauschten Bildes 340 mittels eines entsprechenden Kernes verarbeitet. Wie in 7B gezeigt ist, wird beispielsweise das Pixel Y24 des Bildes 340 mittels eines Kernes 620a_24 verarbeitet, wobei der Kern 620a_24 das Pixel Y24 als zentrales Pixel oder Zielpixel aufweist. Auf ähnliche Weise wird das Pixel Y25 des Bildes 340 mittels eines Kernes 620a_25 verarbeitet, wobei der Kern 620a_25 das Pixel Y25 als zentrales Pixel oder Zielpixel aufweist. Auf ähnliche Weise wird das Pixel Y26 des Bildes 340 mittels eines Kernes 620a_26 verarbeitet, wobei der Kern 620a_26 das Pixel Y26 als zentrales Pixel oder Zielpixel aufweist. Allgemein bedeutet dies, dass ein Pixel des verrauschten Bildes 340 mit einem entsprechenden Kern 620a_i verarbeitet wird, wobei der Kern 620a_i das Pixel Yi als zentrales Pixel oder Zielpixel aufweist. Die Kerne 620a_24, 620a_25, 620a_26 und allgemein ausgedrückt 620a_i werden alle ähnlich zum Generieren des Kernes 620a von 6A generiert (bei dem Kern 620a von 6A wird beispielsweise ein Beispiel für die in 7B benutzten 3x3 Kerne erläutert). Das verrauschte Bild 340 wird von den mehreren Kernen 620a verarbeitet (beispielsweise gefaltet, wie nachstehend noch anhand Gleichung 10 erläutert wird), um ein erstes zwischenzeitliches Bild 708 zu generieren. Das Rauschen in dem Bild 708 ist rauschschwächer als in dem Bild 340.
  • Wie in 7A dargestellt ist, wird das Bild 708 auf ähnliche Weise von den Kernen 620b gefaltet, um ein zweites zwischenzeitliches Bild 720 zu generieren. Man beachte, dass ungeachtet dessen, dass ein einziger repräsentativer Kern 620b in 7A, wie anhand 7B erläutert worden ist, für jedes Zielpixel des Bildes 708 dargestellt ist, ein entsprechender Kern mit dem Wirkabstand 2 und mit dem Zielpixel im Zentrum des Kernes vorhanden ist.
  • Darüber hinaus wird das Bild 712 auf ähnliche Weise von den Kernen 620c verarbeitet, um ein endgültiges rauschfreies Bild 344 zu generieren. Man beachte, dass ungeachtet dessen, dass ein einzelner repräsentativer Kern 620c in 7A, wie anhand 7B erläutert worden ist, für jedes Zielpixel des Bildes 712 dargestellt ist, ein entsprechender Kern mit dem Wirkabstand 4 und mit dem Zielpixel im Zentrum vorhanden ist.
  • Daher wird das verrauschte Bild 340 iterativ von den Kernen 620a, 620b, 620c verarbeitet, um das rauschfreie Bild 344 (wie in 3B dargestellt ist) endgültig zu generieren. Ein Ausgabebild einer jeden Stufe in 7A weist weniger Rauschen als das Eingabebild der Stufe auf. Das Bild 708 weist beispielsweise weniger Rauschen als das Bild 304 auf, das Bild 712 weist weniger Rauschen als das Bild 708 auf, und das Bild 344 schließlich weist weniger Rauschen als das Bild 712 auf. Das Bild 344 wird als „rauschfrei“ bezeichnet, da dieses Bild vergleichsweise weniger Rauschen (oder gar kein Rauschen) im Vergleich zu den Bildern 340, 708 und 712 aufweist, obwohl das Bild 344 ein gewisses Restrauschen aufweisen kann. Das Bild 340 ist eine verrauschte Version, und das Bild 344 ist eine fotorealistische rauschverringerte (oder rauschfreie) Version einer entsprechenden Szene.
  • Wie erläutert worden ist, wird jeder Kern bei einem Faltungsvorgang an einem Bild, das von einer vorherigen Stufe ausgegeben wird, benutzt. Der Kern 620a wird beispielsweise bei einem Faltungsvorgang an dem Bild 340, das von dem verrauschte Bilder generierenden Modul 116 ausgegeben wird, benutzt, um das erste zwischenzeitliche Bild 708 zu generieren. Der Kern 620b wird bei einem Faltungsvorgang an dem ersten zwischenzeitlichen Bild 708 benutzt, um das zweite zwischenzeitliche Bild 712 zu generieren. Schließlich wird der Kern 620c bei einem Faltungsvorgang an dem zweiten zwischenzeitlichen Bild 712 benutzt, um das endgültige rauschfreie (oder rauschverringerte) Bild 344 zu generieren.
  • Obwohl bei dem Beispiel von 7A drei Stufen der Entrauschungsvorgänge dargestellt sind, kann das System 102 bei einigen anderen Beispielen mit beliebigen anderen geeigneten Anzahlen von Stufen, so beispielsweise 2, 4 oder mehr, implementiert sein. Selbstredend treten bei dem System 102 bei einer Änderung der Anzahl von Stufen weitere entsprechende Änderungen auf, so beispielsweise das Generieren einer anderen Anzahl von Teilsätzen von Kernen, das Unterteilen der endgültigen Strahldichtemerkmalsvektoren in eine andere Anzahl von Abschnitten und dergleichen mehr, wie sich im Lichte der vorliegenden Offenbarung ergibt.
  • Die nachfolgende Gleichung erläutert das Verarbeiten eines Zielpixels eines Bildes aus einer vorherigen Stufe mittels entsprechender Kerne, um ein Ausgabebild jener Stufe zu generieren: L ^ i = 1 W i j N i L j . w k ( i , j )
    Figure DE102021004572A1_0038
  • In Gleichung 10 bezeichnet der Term Lj den Strahldichtewert des Pixels j in dem Bild aus der vorherigen Stufe, während der Term L̂i den Strahldichtewert des Zielpixels i in dem Bild, das von der aktuellen Stufe ausgegeben wird, bezeichnet. Gleichung 10 zeigt daher den Faltungsvorgang, der anhand 7A erläutert worden ist. Der Term wk(i, j) ist die Gewichtung, die einen Beitrag des Pixels j zu dem Pixel i festlegt, wobei k die Nummer der Stufe bezeichnet.
  • Für die erste Stufe von 7A, wo der Kern 620a benutzt wird, bezeichnet der Term Lj beispielsweise den Strahldichtewert des Pixels j in dem verrauschten Bild 340, während der Term L̂i den Strahldichtewert des Pixels i in dem Bild 708 der Ausgabe durch die erste Stufe bezeichnet. In der ersten Stufe nutzt Gleichung 10 die Gewichtung w1(i, j), die entsprechend Gleichung 7 berechnet worden ist. In der ersten Stufe wird das Entrauschen an dem i-ten Pixel mittels des Strahldichtewertes Lj von benachbarten Pixeln aus dem Satz Ni durchgeführt. Für ein spezifisches Zielpixel i ist der Satz Ni ein Satz von schattierten Pixeln innerhalb des entsprechenden Kernes. Daher bezeichnet für das Pixel Y24 der Satz Ni für die erste Stufe alle schattierten Pixel in dem Kern 620a von 6A. Dies bedeutet, dass alle 8 Pixel benachbart zu dem Pixel Y24 zu dem Strahldichtewert L̂24 des Zielpixels Y24 in dem Ausgabebild 708 beitragen.
  • Auf ähnliche Weise bezeichnet für die zweite Stufe von 7A, wo der Kern 620b benutzt wird, der Term Lj den Strahldichtewert des Pixels j in dem Bild 708, und der Term L̂i bezeichnet den Strahldichtewert des Pixels i in dem Bild 712 der Ausgabe durch die zweite Stufe. In der zweiten Stufe nutzt Gleichung 10 die Gewichtung w2(i, j), die entsprechend Gleichung 8 berechnet worden ist. In der zweiten Stufe wird das Entrauschen an dem i-ten Pixel mittels des Strahldichtewertes Lj der benachbarten Pixel aus dem Satz Ni durchgeführt. Für ein spezifisches Zielpixel, so beispielsweise das Pixel Y24, bezeichnet der Satz Ni für die zweite Stufe beispielsweise alle schattierten Pixel in dem Kern 620b von 6B. Für die zweite Stufe und für das Zielpixel Y24 beinhaltet der Satz Ni beispielsweise das schattierte Pixel Y26, schließt jedoch das nicht schattierte Pixel Y33 aus, wie in 6B dargestellt ist. Dies bedeutet, dass die 8 schattierten Pixel in dem Kern 620b von 6B, die 2 Pixel entfernt von dem Pixel Y24 sind, zu dem Strahldichtewert L24 des Zielpixels Y24 in dem Ausgabebild 712 beitragen. Daher trägt beispielsweise das schattierte Pixel Y26 zu dem Strahldichtewert L̂24 des Zielpixels Y24 in dem Ausgabebild 712 bei, während das nicht schattierte Pixel Y33 zu dem Strahldichtewert L̂24 des Zielpixels Y24 in dem Ausgabebild 712 nicht beiträgt.
  • Auf ähnliche Weise bezeichnet für die dritte oder letzte Stufe von 7A, wo der Kern 620c benutzt wird, der Term Lj den Strahldichtewert des Pixels j in dem Bild 712, und der Term L̂i bezeichnet den Strahldichtewert des Pixels i in dem Bild 344 der Ausgabe durch die dritte Stufe. In der dritten Stufe nutzt Gleichung 10 die Gewichtung w3(i, j), die entsprechend Gleichung 9 berechnet worden ist. Darüber hinaus bezeichnet für ein spezifisches Zielpixel, so beispielsweise das Pixel Y24, der Satz Ni für die dritte Stufe alle schattierten Pixel in dem Kern 620c von 6C. Für die zweite Stufe und für das Zielpixel Y24 beinhaltet der Satz Ni beispielsweise das schattierte Pixel Y20, schließt jedoch das nicht schattierte Pixel Y26 aus, wie in 6C dargestellt ist. Daher trägt beispielsweise das schattierte Pixel Y20 zu dem Strahldichtewert L̂24 des Zielpixels Y24 in dem Ausgabebild 344 bei, während das nicht schattierte Pixel Y26 zu dem Strahldichtewert L̂24 des Zielpixels Y24 in dem Ausgabebild nicht beiträgt.
  • In Gleichung 10 wird der Term 1 W i
    Figure DE102021004572A1_0039
    zur Normierung benutzt. Bei einem Beispiel wird Wi folgendermaßen berechnet: W i = j N i w k ( i , j )
    Figure DE102021004572A1_0040
  • Daher ist für ein gegebenes Zielpixel i der Term Wi die Summe aller Gewichtungen wk(i, j), die in Gleichung 10 verwendet werden.
  • 7C zeigt Pseudocodes 790, die die in 7A dargestellten Vorgänge zusammenfassen, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung. In 7C wird L̂1 beispielsweise auf L initialisiert, das das Licht oder die Strahldichtewerte von Pixeln des verrauschten Bildes 340 ist. Die Stufenzählung lautet k = 1. Die Pseudocodes 790 gehen sodann zu Schritt 2 über, wo Gewichtungen wk(i, j) berechnet werden. Während der ersten Iteration ist wk (i,j) gleich w1 (i, j), das entsprechend Gleichung 7 berechnet wird. Bei Schritt 3 wird Gleichung 10 bei Kernen mit dem Wirkabstand 2k-1 (beispielsweise 2° oder 1 für die erste Iteration der Pseudocodes 790) an L̂1 angewendet, um L̂2 zu generieren, wobei L̂2 das Bild 708 von 7A ist. Beim vierten Schritt wird, wenn die Zählung k kleiner als die Gesamtzahl der Stufen K ist (wobei K bei dem Beispiel von 7A gleich 3 ist), die Zählung k inkrementiert, und es kehren die Vorgänge schleifenartig zu Schritt 2 zurück. Sobald die Vorgänge für alle drei Stufen vollständig sind, ist die endgültige Ausgabe gleich L̂4, das das endgültige rauschfreie Bild 344 ist.
  • 8A und 8B sind Flussdiagramme zur kollektiven Darstellung einer exemplarischen Methodik 800 zum Entrauschen eines verrauschten Bildes, das mittels der Monte-Carlo-Wiedergabe generiert worden ist, derart, dass das verrauschte Bild weniger Rauschen aufweist und fotorealistischer als das verrauschte Bild ist, entsprechend einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 800 kann beispielsweise mittels der in 1 und/oder 2 dargestellten und hier beschriebenen Systemarchitektur implementiert sein. Andere Systemarchitekturen können bei anderen Ausführungsformen, wie sich im Lichte der vorliegenden Offenbarung erschließt, gleichwohl auch benutzt werden. Zu diesem Zweck soll die Korrelation der in 3A gezeigten verschiedenen Funktionen mit den in 1 und 2 dargestellten spezifischen Komponenten und Funktionen keine strukturellen und/oder Nutzungsbeschränkungen implizieren. Vielmehr können andere Ausführungsformen beispielsweise variierende Grade der Integration beinhalten, wobei mehrere Funktionalitäten effektiv von einem System durchgeführt werden. Bei einem weiteren Beispiel können mehrere Funktionalitäten effektiv von mehr als einem System durchgeführt werden. Obwohl hier verschiedene Vorgänge des Verfahrens 800 derart erläutert werden, dass sie von dem Bildentrauschungssystem 102 der Rechenvorrichtung 100 durchgeführt werden, können einer oder mehrere dieser Vorgänge auch von dem Bildentrauschungssystem 202 des Servers 201 durchgeführt werden.
  • Wie in 8 gezeigt ist, umfasst das Verfahren 800 bei 804 ein Wiedergeben eines ersten Bildes, das mehrere Pixel umfasst, beispielsweise durch das verrauschte Bilder generierende Modul 116 (wie in 1 und 2 dargestellt ist). Bei einigen Beispielen wird das erste Bild mittels der Monte-Carlo-Methodik, also beispielsweise mittels der vorerläuterten Gleichungen 2 und 1a, wiedergegeben. Ein Beispiel für das erste Bild ist das verrauschte Bild 340 von 3B. Das erste Bild ist bei einigen Beispielen ein synthetisches Modell oder eine Szene, das/die digital generiert worden sind.
  • Die Monte-Carlo-Methodik zielt darauf, die synthetische Szene wiederzugeben, um ein realistisches Bild aus der synthetischen Szene mittels einer Szenendatei zu generieren. Die Monte-Carlo-Methodik zielt beispielsweise darauf, ein fotorealistisches Bild der Szene zu generieren, indem einzelnen Pixeln der synthetischen Szene gewünschte Strahldichte- oder Lichtpegel zugeteilt werden. Die Monte-Carlo-Wiedergabe nutzt gleichwohl eine geringere SPP-Anzahl, so beispielsweise 4, 8, 12 oder eine andere geeignete Zahl, die kleiner als beispielsweise 24, 48, 96, 128 oder 256 ist. Die Monte-Carlo-Wiedergabe nutzt die niedrigere SPP-Zahl beispielsweise als Folge eines beschränkten Rechenbudgets und/oder zum Einsparen von Zeit für eine derartige Berechnung. Das verrauschte Bild 340 von 3B wird beispielsweise mittels einer Monte-Carlo-Wiedergabe mit 8 SPP generiert. Entsprechend ist, da die Monte-Carlo-Wiedergabe eine niedrigere SPP-Zahl nutzt, das sich ergebende Bild verrauscht und weit vom Fotorealismus entfernt. Verschiedene Vorgänge des Verfahrens 800 zielen darauf, das Rauschen in dem verrauschten Bild, das mittels der Monte-Carlo-Wiedergabe mit niedrigerem SPP generiert wird, zu verringern.
  • Das Verfahren 800 geht sodann von 804 zu 806 über. Bei 806 werden innerhalb eines jeden Pixels entsprechende mehrere Abtastpunkte identifiziert. 3C zeigt beispielsweise exemplarische Abtastpunkte S_1_24, S_2_24, ..., S_8_24 innerhalb des exemplarischen Pixels Y24 sowie exemplarische Abtastpunkte S_1_42, S_2_42, ..., S_8_42 innerhalb des exemplarischen Pixels Y42. Für das Beispiel von 3C werden 8 Abtastpunkte pro Pixel oder 8 SPP berücksichtigt, obwohl eine beliebige andere Anzahl von Abtastpunkten berücksichtigt werden kann. Bei einigen Beispielen können die bei 806 identifizierten Abtastpunkte dieselben Abtastpunkte sein, die zum Generieren des verrauschten ersten Bildes mittels der Monte-Carlo-Wiedergabe bei 804 benutzt worden sind. Daher können bei einigen derartigen Beispielen die Vorgänge bei Block 806 ein Teilsatz von Vorgängen bei Block 804 sein, und es können die Vorgänge von Blöcken 804 und 806 kombiniert werden.
  • Das Verfahren 800 geht sodann zu zwei verschiedenen Zweigen über. Folgt man beispielsweise dem ersten Zweig, so geht das Verfahren 800 von 806 zu 808 über, wo für jeden Abtastpunkt eines jeden Pixels ein entsprechender Strahldichtevektor (beispielsweise von dem Merkmalsidentifizierungsmodul 103, das in 1 und 2 dargestellt ist) abgeschätzt wird. Die Strahldichtevektoren werden beispielsweise als Eingabe für das Strahldichtemerkmalsvektoren generierende Modul 104 von 4 bereitgestellt. Vorerläuterte Gleichung 3 erläutert die Abschätzung von Strahldichtevektoren für einzelne Abtastpunkte.
  • Das Verfahren 800 geht sodann von 808 zu 816 über. Bei 816 wird für jedes Pixel ein entsprechender zwischenzeitlicher Strahldichtemerkmalsvektor beispielsweise von dem Strahldichtemerkmalsvektoren generierenden Modul 104 von 4 generiert. Das neuronale Netzwerkmodul 410, das auch als Abtasteinbettungsstufe bezeichnet wird, empfängt beispielsweise die Strahldichtevektoren pro Abtastpunkt und generiert einen zwischenzeitlichen Strahldichtemerkmalsvektor pro Pixel. Das Modul 410 ist beispielsweise darauf trainiert zu identifizieren, wie mehrere Strahldichtevektoren 414 entsprechend verschiedenen Abtastpunkten eines spezifischen Pixels verarbeitet und gemittelt werden sollen, um den entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektor 418 für jenes spezifische Pixel zu generieren. Bei einem bloßen Beispiel detektiert das Modul 410 Muster in den Strahldichtevektoren und bestimmt die Art, auf die die Strahldichtevektoren kombiniert oder gemittelt werden sollen, um den zwischenzeitlichen Strahldichtemerkmalsvektor 418, wie anhand 4 erläutert worden ist, zu bilden.
  • Das Verfahren 800 geht sodann von 816 zu 824 über. Bei 824 werden für jedes Pixel ein entsprechender endgültiger Strahldichtemerkmalsvektor und ein entsprechender oder mehrere entsprechende Skalierungsfaktoren beispielsweise von dem Strahldichtemerkmalsvektoren generierenden Modul 104 von 4 generiert. Bei einigen Ausführungsformen weist, wie anhand 4 erläutert worden ist, jeder endgültige Strahldichtemerkmalsvektor eine Anzahl von Abschnitten auf, die zur Anzahl von Entrauschungsstufen passt. Bei dem Beispiel von 7A werden beispielsweise drei Stufen benutzt, weshalb bei diesem Beispiel jeder endgültige Strahldichtemerkmalsvektor drei Abschnitte aufweist. Der endgültige Strahldichtemerkmalsvektor F_R24 für das exemplarische Pixel Y24 weist beispielsweise drei Abschnitte F_R24_1, F_R24_2 und F_R24_3 auf.
  • Bei einigen Ausführungsformen wird für jedes Pixel ein einzelner Skalierungsfaktor aj generiert. Bei einigen anderen Ausführungsformen werden für ein einzelnes Pixel i drei entsprechende Skalierungsfaktoren ai 1, ai 2 und ai 3 generiert, wie in 4 gezeigt ist. Das neuronale Netzwerkmodul 411, das auch als Raumausbreitungsstufe bezeichnet wird, empfängt beispielsweise die zwischenzeitlichen Strahldichtemerkmalsvektoren und generiert die endgültigen Strahldichtemerkmalsvektoren und Skalierungsfaktoren, wie vorstehend anhand 4 erläutert worden ist. Wie ebenfalls anhand 4 erläutert worden ist, breitet das Modul 411 Strahldichteattribute eines ersten Pixels räumlich zu einem oder mehreren benachbarten Pixeln aus, und zwar beispielsweise dann, wenn das erste Pixel und ein oder mehrere benachbarte Pixel einige ähnliche Strahldichteattribute aufweisen und/oder in einem selben oder ähnlichen Abschnitt des Bildes sind, und generiert die endgültigen Strahldichtemerkmalsvektoren der Pixel entsprechend.
  • Wie wiederum in 8A gezeigt ist, weist das Verfahren 800 zudem einen zweiten Zweig von dem Block 806 weg auf, wobei in diesem zweiten Zweig das Verfahren 800 von 806 zu 812 übergeht. Bei 812 wird für jeden Abtastpunkt eines jeden Pixels ein entsprechender Hilfsvektor (beispielsweise von dem Merkmalsidentifizierungsmodul 103, das in 1 und 2 dargestellt ist) abgeschätzt. Die Hilfsvektoren werden beispielsweise als Eingabe für das Hilfsmerkmalsvektoren generierende Modul 108 von 5 bereitgestellt. Vorstehend erläuterte Gleichung 4 erläutert die Abschätzung von Hilfsvektoren für einzelne Abtastpunkte.
  • Das Verfahren 800 geht sodann von 812 zu 820 über, wo für jedes Pixel ein entsprechender zwischenzeitlicher Strahldichtemerkmalsvektor beispielsweise von dem Hilfsmerkmalsvektoren generierenden Modul 108 von 5 generiert wird. Das neuronale Netzwerkmodul 510, das auch als Abtasteinbettungsstufe bezeichnet wird, empfängt beispielsweise die Hilfsvektoren pro Abtastpunkt und generiert einen zwischenzeitlichen Hilfsmerkmalsvektor 518 pro Pixel. Das Modul 510 ist beispielsweise darauf trainiert zu identifizieren, wie mehrere Hilfsvektoren 514 von verschiedenen Abtastpunkten eines spezifischen Pixels verarbeitet und gemittelt werden sollen, um den zwischenzeitlichen Hilfsmerkmalsvektor 518 für jenes spezifische Pixel zu generieren. Bei einem bloßen Beispiel detektiert das Modul 510 Muster in den Hilfsvektoren und bestimmt die Art, auf die die Hilfsvektoren kombiniert oder gemittelt werden sollen, um die zwischenzeitlichen Hilfsmerkmalsvektoren 518 zu bilden.
  • Das Verfahren 800 geht sodann von 820 zu 828 über, wo für jedes Pixel ein entsprechender endgültiger Hilfsmerkmalsvektor beispielsweise von dem Hilfsmerkmalsvektoren generierenden Modul 108 von 5 generiert wird. Bei einigen Ausführungsformen empfängt, wie anhand 5 erläutert worden ist, das neuronale Netzwerkmodul 511, das auch als Raumausbreitungsstufe bezeichnet wird, die zwischenzeitlichen Hilfsmerkmalsvektoren und generiert die endgültigen Hilfsmerkmalsvektoren. Wie ebenfalls anhand 5 erläutert worden ist, breitet das Modul 511 Hilfsattribute eines ersten Pixels räumlich zu einem oder mehreren benachbarten Pixeln aus, und zwar beispielsweise dann, wenn das erste Pixel und ein oder mehrere benachbarte Pixel einige ähnliche Hilfsattribute aufweisen und/oder in einem selben oder ähnlichen Abschnitt des Bildes sind, und generiert die endgültigen Hilfsmerkmalsvektoren der Pixel entsprechend.
  • Das Verfahren 800 geht sodann von 824 und 828 zu 832 über. Bei 832 generiert das System 102 (beispielsweise das Kerne generierende Modul 112, das in 1 und 2 dargestellt ist) K Teilsätze von Kernen entsprechend der Zahl K von Entrauschungsstufen. Bei einem Beispiel weist jeder Teilsatz Kerne mit dem Wirkabstand 2(k-1) auf, wobei gilt: k = 1, ..., K.
  • Daher ist bei den Beispielen von 6A, 6B, 6C und 7A die Anzahl von Stufen gleich 3 (beispielsweise K = 3), weshalb drei Teilsätze von Kernen generiert werden. Der erste Teilsatz von Kernen wird beispielsweise mit k = 1 und dem Wirkabstand 2(1-1), was gleich 2° oder 1 ist, generiert. 6A zeigt einen exemplarischen Kern des ersten Teilsatzes von Kernen, und 7B zeigt weitere exemplarische Kerne des ersten Teilsatzes von Kernen. Für jedes Zielpixel des verrauschten Bildes wird beispielsweise ein entsprechender Kern des ersten Teilsatzes von Kernen generiert, wie anhand 7B erläutert wird. Gleichung 7 erläutert das Generieren von Gewichtungen für die Kerne des ersten Teilsatzes von Kernen. Das Generieren der Kerne des ersten Teilsatzes impliziert das Generieren der zugrunde liegenden Gewichtungen w1(i, j), wodurch der Beitrag der Strahldichte von dem Pixel j zu dem Pixel i festgelegt wird.
  • Der zweite Teilsatz von Kernen wird mit k = 2 und dem Wirkabstand 2(2-1), was gleich 21 oder 2 ist, generiert. 6B zeigt einen exemplarischen Kern des zweiten Teilsatzes von Kernen, wo Pixel, die 2 Pixel entfernt von dem Zielpixel sind, schattiert und gewichtet sind (die weißen Pixel in dem Kern 620b weisen eine Null-Gewichtung auf). Für jedes Pixel des verrauschten Bildes wird beispielsweise ein entsprechender Kern des zweiten Teilsatzes von Kernen generiert. Gleichung 8 erläutert das Generieren von Gewichtungen für die Kerne des zweiten Teilsatzes von Kernen. Das Generieren der Kerne impliziert das Generieren der zugrunde liegenden Gewichtungen w2(i, j), wodurch der Beitrag der Strahldichte von dem Pixel j zu dem Pixel i festgelegt wird.
  • Der dritte Teilsatz von Kernen wird mit k = 3 und dem Wirkabstand 2(3-1), was gleich 22 oder 4 ist, generiert. 6C zeigt einen exemplarischen Kern des dritten Teilsatzes von Kernen, wo Pixel, die 4 Pixel entfernt von dem Zielpixel sind, schattiert und gewichtet sind (die weißen Pixel in dem Kern 620c weisen eine Null-Gewichtung auf). Für jedes Pixel des verrauschten Bildes wird beispielsweise ein entsprechender Kern des dritten Teilsatzes von Kernen generiert. Gleichung 9 erläutert das Generieren von Gewichtungen für die Kerne des dritten Teilsatzes von Kernen. Das Generieren der Kerne impliziert das Generieren der zugrunde liegenden Gewichtungen w3(i, j), wodurch der Beitrag der Strahldichte von dem Pixel j zu dem Pixel i festgelegt wird.
  • Das Verfahren 800 geht sodann von 832 in 8A zu 836 in 8B über. Vorgänge, die anhand der Blöcke 836 bis 852 des Verfahrens 800 von 8B erläutert worden sind, sind auch in 7A dargestellt und werden kurz anhand der Pseudocodes 790 von 7C erläutert. Insbesondere wird bei 836 die Zählung k auf 1 initialisiert, und das erste verrauschte Bild von Block 804 wird als Eingabebild (beispielsweise von dem rauschverringerte Bilder generierenden Modul 120 von 1 und 2) initialisiert.
  • Das Verfahren 800 geht sodann von 836 zu 840 über. Bei 840 werden beispielsweise den Wirkabstand 2(k-1) aufweisende Kerne mit dem Eingabebild beispielsweise entsprechend Gleichung 10 gefaltet, um ein Ausgabebild zu generieren. Die erste Iteration des Verfahrens 800 ist für eine erste Stufe der Entrauschungspipeline, wie in 7A dargestellt ist. Beispielsweise werden für k = 1 den Wirkabstand 2° = 1 aufweisende Kerne gefaltet. Beispiele für Kerne mit dem Wirkabstand 1 sind die Kerne 620a, 620a_24, 620a_25 und 620a_26, die in 6A, 7A und 7B dargestellt sind. 7A zeigt die Faltung mit den den Wirkabstand 1 aufweisenden Kernen mit dem Eingabebild (das das verrauschtes Bild 340 ist), um das erste zwischenzeitliche Bild 708 zu generieren. Der Faltungsvorgang ist anhand Gleichung 10 erläutert worden, wobei die Gewichtungen w1 (i, j) in der ersten Stufe benutzt werden, wobei die Zahl „1“ nach „w“ impliziert, dass dies die Gewichtungen für die erste Stufe sind (oder Zählung k = 1).
  • Das Verfahren geht sodann zu 844 über, wo das rauschverringerte Bilder generierende Modul 120 prüft, ob die Zählung k gleich K ist, wobei K die Anzahl von Stufen in der Entrauschungspipeline von 7A ist.
  • Gilt „Nein“ bei 844, so impliziert dies, dass nachfolgende Stufen der Entrauschungspipeline vorhanden sind, die noch auszuführen sind. Entsprechend geht das Verfahren 800 zu 848 über, von wo es schleifenartig zu 840 zurückkehrt. Bei 848 wird die Zählung k um 1 inkrementiert, und das Ausgabebild von 840 wird nunmehr als Eingabebild genommen. Im Kontext von 7A wird das erste zwischenzeitliche Bild 708, das von der ersten Stufe ausgegeben wird, nunmehr als Eingabebild genommen. Das Verfahren kehrt sodann schleifenartig zu 840 zurück. Während der zweiten Iteration von 840 ist die Zählung k = 2. Daher werden Kerne mit dem Wirkabstand 21 oder 2 benutzt, so beispielsweise der exemplarische Kern 620b von 6B und 7A. 7A zeigt die Faltung der den Wirkabstand 2 aufweisenden Kerne 620b mit dem Eingabebild (das das erste zwischenzeitliche Bild 708 ist), um das zweite zwischenzeitliche Bild 712 zu generieren. Der Faltungsvorgang ist anhand Gleichung 10 erläutert worden, wobei die Gewichtungen w2(i, j) benutzt werden, wobei die Zahl „2“ nach „w“ impliziert, dass dies die Gewichtungen für die zweite Stufe sind (oder Zählung k = 2).
  • Das Verfahren 800 geht sodann von 840 zu 844 über. Da bei dem hier erläuterten Beispiel von 7A drei Stufen vorhanden sind (beispielsweise ist K gleich 3), werden die Vorgänge bei 848 und 840 noch einmal für die dritte Stufe wiederholt. Während der dritten Stufe ist die Zählung k = 3. Daher werden Kerne mit dem Wirkabstand 22 oder 4 verwendet, so beispielsweise der exemplarische Kern 620c von 6C und 7A. 7A zeigt die Faltung der den Wirkabstand 4 aufweisenden Kerne 620c mit dem Eingabebild (das das zweite zwischenzeitliche Bild 712 ist), um das rauschfreie Bild 716 zu generieren. Der Faltungsvorgang ist anhand Gleichung 10 erläutert worden, wobei die Gewichtungen w3(i, j) benutzt werden, wobei die Zahl „3“ nach „w“ impliziert, dass dies die Gewichtungen für die dritte Stufe sind (oder Zählung k = 3).
  • Das Verfahren 800 geht sodann zum dritten Mal zu 844 über. Während dieser Iteration ist die Zählung k gleich 3, was in einigen Fällen gleich der Anzahl von Stufen K, so beispielsweise im Fall von 7A, ist. Daher gibt der Entscheidungsblock 844 „Ja“ aus, und das Verfahren 800 geht zu 852 über, wo das System 102 (oder das System 202) das endgültige Ausgabebild (beispielsweise das Bild 344) als rauschfreies (oder rauschverringertes) und fotorealistisches Bild ausgibt. Bei 856 wird das endgültige Ausgabebild auf einem Anzeigebildschirm, so beispielsweise der Anzeige 142 von 1 und 2, angezeigt.
  • Daher weist das Ausgabebild einer jeden Stufe bei dem Verfahren 800 weniger Rauschen als das Ausgabebild der vorherigen Stufe auf. Wie in 7 gezeigt ist, weist das Bild 708 beispielsweise weniger Rauschen als das Bild 304 auf, das Bild 712 weist weniger Rauschen als das Bild 708 auf, und das Bild 344 schließlich weist weniger Rauschen als das Bild 712 auf. Das Bild 344 wird als „rauschfrei“ bezeichnet, da dieses Bild vergleichsweise weniger Rauschen (oder gar kein Rauschen) im Vergleich zu den Bildern 340, 708 und 712 aufweist, obwohl das Bild 344 einiges Restrauschen aufweisen kann. Das Bild 340 ist eine verrauschte Version, und das Bild 344 ist eine fotorealistische rauschverringerte (oder rauschfreie) Version der Szene.
  • Wie erläutert worden ist, werden bei einigen Ausführungsformen, um einen ausreichend großen räumlichen Kontext für die Kerne zu erhalten, anstatt der Nutzung einer einzigen Stufe mit einem einzigen Kern fester Größe mehrere Stufen mit mehreren Kernen mit entsprechenden Wirkabständen bei dem Verfahren 800 benutzt. Man beachte, dass ungeachtet dessen, dass der Kern 620c von 6C größer als der Kern 620b von 6B ist, der wiederum größer als der Kern 620a von 6A ist, in jedem der Kerne 620a, 620b, 620c nur 8 Pixel benachbart zu dem Zielpixel schattiert sind. Obwohl der räumliche Kontext des Kernes mit der Stufe zunimmt, nimmt die Berechnung daher nicht proportional zu, und es wird dieselbe Anzahl von Gewichtungen pro Kern unabhängig von der Stufe, in der der Kern benutzt wird, berechnet. Daher kann bei einigen Ausführungsformen das anhand 7A erläuterte Entrauschen bei einer interaktiven Framerate durchgeführt werden. Das Entrauschen ist schnell, da beispielsweise nicht alle Pixel innerhalb eines jeden Kernes berücksichtigt werden. Der Strahldichtewert nur der schattierten Pixel in den Kernen trägt, wie anhand 6B und 6C erläutert worden ist, beispielsweise zu dem entsprechenden Zielpixel bei.
  • Darüber hinaus sind die Strahldichte- und Hilfsmerkmalsattribute für mehrere Abtastpunkte intelligent gemittelt, um Mittel pro Pixel beispielsweise durch die Mittelungsmodule 434 und 534 von 4 beziehungsweise 5 zu generieren. Immer dann, wenn Attribute von neuen Abttastpunkten verfügbar sind, wird daher das Mittel aktualisiert, und man erhält verfeinerte Bilder, was den Entrauschungsprozess schnell macht und wodurch man eine interaktive Framerate für den Entrauschungsprozess erhält.
  • Wie erläutert worden ist, trägt der Skalierungsfaktor aj in Gleichungen 7, 8 und 9 zur Asymmetrie bei der Strahldichtewertbeitragsverteilung bei. Entsprechend kann ein Ausreißerpixel Strahldichtebeiträge von benachbarten Pixeln empfangen, während es zur Strahldichte der benachbarten Pixel im Wesentlichen nicht beiträgt. Ein Pixel ist ein Ausreißerpixel, wenn das Pixel eine Lichtquelle ist, wenn das Ausreißerpixel also beispielsweise eine merkliche Strahldichte (beispielsweise als Lichtquelle) im Vergleich zu einem oder mehreren benachbarten Pixeln emittiert.
  • Darüber hinaus setzt das System 102 Deep Learning ein, um das Entrauschen als Problem des überwachten Lernens (Supervised Learning) zu formulieren. Ist das verrauschte Eingabebild 340 gegeben, so sagen die in 4 und 5 dargestellten neuronalen Netzwerke Merkmalsvektoren pro Pixel voraus, indem sie jedes Pixel in dessen räumlicher Umgebung analysieren. Beim Bestimmen dessen, wie viel Strahldichte ein Pixel zu einem anderen Pixel beitragen soll, berechnet das System 102 explizit die Abstände zwischen Merkmalsvektoren dieser Pixel, wie anhand 7, 8 und 9 erläutert worden ist. Daher ermöglicht das System 102 die Nutzung von Netzwerken niedriger Kapazität bei geringen Rechenkosten, was bedingt, dass die in 7A dargestellten Entrauschungsvorgänge bei interaktiven Frameraten laufen. Daher kann das System 102 im Wesentlichen rauschfreie Bilder (so beispielsweise das Bild 344) generieren, auch wenn das System 102 nur einen Bruchteil der Parameter nutzt, die von herkömmlichen Entrauschungssystemen benutzt werden.
  • Es erschließen sich verschiedene Abwandlungen und Konfigurierungen im Lichte der vorliegenden Offenbarung und der nachfolgenden Beispiele.
  • Beispiel 1. Verfahren zum Entrauschen eines Bildes, wobei das Verfahren umfasst: innerhalb einzelner Pixel eines Satzes von Pixeln eines ersten Bildes erfolgendes Identifizieren von entsprechenden mehreren Abtastpunkten; für einzelne Abtastpunkte erfolgendes Abschätzen eines entsprechenden Strahldichtevektors, der Licht, das an dem entsprechenden Abtastpunkt empfangen wird, beschreibt; durch ein erstes maschinell lernendes Modul, für einzelne Pixel in dem Satz erfolgendes Generieren eines entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektors wenigstens teilweise auf Grundlage der Strahldichtevektoren, die den entsprechenden mehreren Abtastpunkten innerhalb des entsprechenden Pixels zugeordnet sind; durch ein zweites maschinell lernendes Modul, für einzelne Pixel in dem Satz erfolgendes Generieren eines entsprechenden endgültigen Strahldichtemerkmalsvektors wenigstens teilweise auf Grundlage von zwischenzeitlichen Strahldichtemerkmalsvektoren für das entsprechende Pixel und ein oder mehrere benachbarte Pixel; und Generieren eines zweiten Bildes wenigstens teilweise auf Grundlage der endgültigen Strahldichtemerkmalsvektoren, wobei das zweite Bild weniger Rauschen aufweist und fotorealistischer als das erste Bild ist.
  • Beispiel 2. Verfahren von Beispiel 1, wobei: das Generieren der endgültigen Strahldichtemerkmalsvektoren umfasst: für jedes Pixel des Satzes erfolgendes Generieren eines entsprechenden endgültigen Strahldichtemerkmalsvektors, der wenigstens einen entsprechenden ersten Abschnitt und einen entsprechenden zweiten Abschnitt aufweist; und das Verfahren des Weiteren umfasst: Generieren eines ersten Teilsatzes von Kernen mit einem ersten Wirkabstand wenigstens teilweise auf Grundlage der ersten Abschnitte der endgültigen Strahldichtemerkmalsvektoren, und Generieren eines zweiten Teilsatzes von Kernen mit einem zweiten Wirkabstand wenigstens teilweise auf Grundlage der zweiten Abschnitte der endgültigen Strahldichtemerkmalsvektoren.
  • Beispiel 3. Verfahren von Beispiel 2, wobei das Generieren des ersten Teilsatzes von Kernen umfasst: Generieren eines ersten Kernes des ersten Teilsatzes von Kernen, wobei der erste Kern ein erstes Pixel als Zielpixel und mehrere Pixel benachbart zu dem Zielpixel beinhaltet, wobei der erste Kern einen Wirkabstand X aufweist, der angibt, dass Pixeln, die X Pixel entfernt von dem ersten Zielpixel innerhalb des ersten Kernes sind, Nicht-Null-Gewichtungen zugewiesen werden, wobei X eine positive ganze Zahl ist, wobei ein zweites Pixel innerhalb des ersten Kernes X Pixel entfernt von dem ersten Zielpixel ist, und wobei eine erste Gewichtung, die einen Beitrag des Strahldichtewertes von dem zweiten Pixel für das erste Pixel festlegt, wenigstens teilweise auf Grundlage eines Abstandes zwischen (i) dem ersten Abschnitt des ersten endgültigen Strahldichtemerkmalsvektors für das erste Pixel und (ii) dem ersten Abschnitt des zweiten endgültigen Strahldichtemerkmalsvektors für das zweite Pixel berechnet wird.
  • Beispiel 4. Verfahren von Beispiel 3, des Weiteren umfassend: durch das zweite maschinell lernende Modul, für einzelne Pixel in dem Satz erfolgendes Generieren eines entsprechenden Skalierungsfaktors, wobei das Generieren des ersten Kernes umfasst: Generieren der ersten Gewichtung wenigstens teilweise auf Grundlage eines Skalierungsfaktors, der dem zweiten Pixel zugewiesen ist; und Generieren einer zweiten Gewichtung für einen zweiten Kern wenigstens teilweise auf Grundlage (i) des Abstandes und (ii) eines Skalierungsfaktors, der dem ersten Pixel zugewiesen ist, wobei die zweite Gewichtung einen Beitrag des Strahldichtewertes von dem ersten Pixel für das zweite Pixel festlegt; wobei die erste Gewichtung von der zweiten Gewichtung verschieden ist, was wenigstens teilweise darauf beruht, dass der Skalierungsfaktor, der dem ersten Pixel zugewiesen ist, von dem Skalierungsfaktor, der dem zweiten Pixel zugewiesen ist, verschieden ist.
  • Beispiel 5. Verfahren von Beispiel 4, des Weiteren umfassend: durch das zweite maschinell lernende Modul erfolgendes Zuweisen von verschiedenen Werten zu den Skalierungsfaktoren der ersten und zweiten Pixel in Reaktion auf eine Detektion dessen, dass eines von dem ersten oder dem zweiten Pixel einen Strahldichtewert aufweist, der höher als eine Schwelle ist, und ein weiteres von dem ersten oder dem zweiten Pixel einen Strahldichtewert aufweist, der niedriger als die Schwelle ist.
  • Beispiel 6. Verfahren eines der Beispiele 2 bis 5, wobei das Generieren des zweiten Bildes umfasst: Falten des ersten Teilsatzes von Kernen mit dem ersten Bild zum Generieren eines ersten zwischenzeitlichen Bildes; Falten des zweiten Teilsatzes von Kernen mit dem ersten zwischenzeitlichen Bild zum Generieren eines zweiten zwischenzeitlichen Bildes; und Falten eines dritten Teilsatzes von Kernen mit dem zweiten zwischenzeitlichen Bild zum Generieren des zweiten Bildes.
  • Beispiel 7. Verfahren von Beispiel 6, wobei: jeder von dem ersten Teilsatz von Kernen einen ersten Wirkabstand mit dem Wert 1 derart aufweist, dass mehreren benachbarten Pixeln, die 1 Pixel entfernt von einem Zielpixel in einem Kern des ersten Teilsatzes sind, entsprechende Nicht-Null-Gewichtungen zugewiesen werden; jeder von dem zweiten Teilsatz von Kernen einen zweiten Wirkabstand mit dem Wert 2 derart aufweist, dass mehreren benachbarten Pixeln, die 2 Pixel entfernt von einem Zielpixel in einem Kern des zweiten Teilsatzes sind, entsprechende Nicht-Null-Gewichtungen zugewiesen werden; und jeder von dem dritten Teilsatz von Kernen einen dritten Wirkabstand mit dem Wert 4 derart aufweist, dass mehreren benachbarten Pixeln, die 4 Pixel entfernt von einem Zielpixel in einem Kern des dritten Teilsatzes sind, entsprechende Nicht-Null-Gewichtungen zugewiesen werden.
  • Beispiel 8. Verfahren eines der Beispiele 1 bis 7, wobei ein oder mehrere Strahldichtewerte, die Licht, das an einem ersten Abtastpunkt empfangen wird, beschreiben, eines oder mehrere umfassen von: RGB-Farbwerten (Rot-Grün-Blau RGB) von Licht zur Darstellung einer direkten Beleuchtung und einer diffusen Reflexion an dem ersten Abtastpunkt; RGB-Farbwerten von Licht zur Darstellung einer direkten Beleuchtung und einer spiegelnden Reflexion an dem ersten Abtastpunkt; RGB-Farbwerten von Licht zur Darstellung einer indirekten Beleuchtung und einer diffusen Reflexion an dem ersten Abtastpunkt; und/oder RGB-Farbwerten von Licht zur Darstellung einer indirekten Beleuchtung und einer spiegelnden Reflexion an dem ersten Abtastpunkt.
  • Beispiel 9. Verfahren eines der Beispiele 1 bis 8, wobei vor dem Abschätzen der Strahldichtevektoren das Verfahren des Weiteren umfasst: Wiedergeben des ersten Bildes mit der Monte-Carlo-Methodik mittels mehrerer Abtastpunkte pro Pixel.
  • Beispiel 10. Verfahren eines der Beispiele 1 bis 9, des Weiteren umfassend: für einzelne Abtastpunkte von einzelnen Pixeln erfolgendes Abschätzen eines entsprechenden Hilfsvektors, der ein oder mehrere Hilfsmerkmale beinhaltet, die eine Oberfläche des entsprechenden Abtastpunktes beschreiben; durch ein drittes maschinell lernendes Modul, für einzelne Pixel erfolgendes Generieren eines entsprechenden zwischenzeitlichen Hilfsmerkmalsvektors wenigstens teilweise auf Grundlage der Hilfsvektoren, die den entsprechenden mehreren Abtastpunkten innerhalb des entsprechenden Pixels zugeordnet sind; und durch ein viertes maschinell lernendes Modul, für einzelne Pixel erfolgendes Generieren eines entsprechenden endgültigen Hilfsmerkmalsvektors, wobei ein erster endgültiger Hilfsmerkmalsvektor für das erste Pixel wenigstens teilweise auf Grundlage (a) eines ersten zwischenzeitlichen Hilfsmerkmalsvektors für das erste Pixel und (b) eines oder mehrerer weiterer zwischenzeitlicher Hilfsmerkmalsvektoren für ein oder mehrere weitere Pixel benachbart zu dem ersten Pixel generiert wird.
  • Beispiel 11. Verfahren von Beispiel 10, des Weiteren umfassend: Generieren eines oder mehrerer Teilsätze von Kernen wenigstens teilweise auf Grundlage der endgültigen Hilfsmerkmalsvektoren, wobei der eine oder die mehreren Teilsätze von Kernen zum Generieren des zweiten Bildes nutzbar sind.
  • Beispiel 12. Verfahren von Beispiel 11, wobei das Generieren des einen oder der mehreren Teilsätze von Kernen umfasst: Identifizieren eines zweiten Pixels benachbart zu einem ersten Pixel; und Berechnen einer ersten Gewichtung wenigstens teilweise auf Grundlage (i) einer ersten L2-Norm zwischen einem ersten endgültigen Strahldichtemerkmalsvektor für das erste Pixel und einem zweiten endgültigen Strahldichtemerkmalsvektor für das zweite Pixel und (ii) einer zweiten L2-Norm zwischen dem ersten endgültigen Hilfsmerkmalsvektor für das erste Pixel und einem zweiten endgültigen Hilfsmerkmalsvektor für das zweite Pixel.
  • Beispiel 13. Verfahren von Beispiel 12, des Weiteren umfassend: Generieren eines Kernes mit dem Wirkabstand X und mit dem ersten Pixel als zentralem Pixel derart, dass mehreren benachbarten Pixeln, die X Pixel entfernt von dem zentralen Pixel in dem Kern sind, entsprechende Nicht-Null-Gewichtungen zugewiesen werden, wobei X eine positive ganze Zahl ist, wobei das zweite Pixel X Pixel entfernt von dem zentralen Pixel ist und wobei dem zweiten Pixel die erste Gewichtung zugewiesen ist.
  • Beispiel 14. Verfahren eines der Beispiele 10 bis 13, wobei das eine oder die mehreren Hilfsmerkmale eines ersten Abtastpunktes eines oder mehrere umfassen von: Koordinaten zur Darstellung einer Richtung, die normal zu einer Oberfläche des ersten Abtastpunktes ist; RGB-Farbwerten (Rot-Grün-Blau RGB) zur Darstellung eines Albedomerkmals des ersten Abtastpunktes; einer Tiefe des ersten Abtastpunktes relativ zu einer virtuellen Kamera, die das erste Bild aufnimmt; Koordinaten zur Darstellung einer Position des ersten Abtastpunktes relativ zu einem Koordinatensystem der virtuellen Kamera; und/oder Werten zur Darstellung einer emissiven Eigenschaft, einer metallischen Eigenschaft, einer Transmissionseigenschaft und/oder einer Rauheitseigenschaft des ersten Abtastpunktes.
  • Beispiel 15. System zum Wiedergeben eines weniger verrauschten Bildes aus einem ursprünglichen Bild, das mehrere Pixel umfasst, wobei das System umfasst: einen oder mehrere Prozessoren; ein Entrauschungssystem, das von dem einen oder den mehreren Prozessoren ausführbar ist zum: für einzelne Pixel eines Satzes von Pixeln des ursprünglichen Bildes erfolgenden Generieren eines entsprechenden Strahldichtemerkmalsvektors und eines entsprechenden Hilfsmerkmalsvektors; Generieren wenigstens eines ersten Teilsatzes von Kernen und eines zweiten Teilsatzes von Kernen auf Grundlage eines Satzes von Strahldichtemerkmalsvektoren und eines Satzes von Hilfsmerkmalsvektoren des Satzes von Pixeln; Falten des ersten Teilsatzes von Kernen mit dem ursprünglichen Bild zum Generieren eines ersten Bildes; und Falten des zweiten Teilsatzes von Kernen mit dem ersten Bild zum Generieren eines zweiten Bildes, das relativ zu dem ursprünglichen Bild weniger Rauschen aufweist.
  • Beispiel 16. System von Beispiel 15, wobei zum Generieren eines ersten Kernes in dem ersten Teilsatz von Kernen das System ausgelegt ist zum: Berechnen einer ersten Gewichtung auf Grundlage (i) einer ersten L2-Norm zwischen einem ersten Strahldichtemerkmalsvektor eines ersten Pixels und einem zweiten Strahldichtemerkmalsvektor eines zweiten Pixels und (ii) einer zweiten L2-Norm zwischen einem ersten Hilfsmerkmalsvektor des ersten Pixels und einem zweiten Hilfsmerkmalsvektor des zweiten Pixels; und Generieren des ersten Kernes mit einem Wirkabstand, der eine erste Zahl aufweist, wobei der erste Kern das erste Pixel und das zweite Pixel beinhaltet, die durch die erste Zahl von Pixeln getrennt sind, und wobei der erste Kern die erste Gewichtung beinhaltet.
  • Beispiel 17. System eines der Beispiele 15 oder 16, wobei ein Strahldichtemerkmalsvektor eines Pixels eines oder mehrere darstellt von: RGB-Farbwerten (Rot-Grün-Blau RGB) von Licht zur Darstellung einer direkten Beleuchtung und einer diffusen Reflexion an mehreren Abtastpunkten innerhalb des Pixels; RGB-Farbwerten von Licht zur Darstellung einer direkten Beleuchtung und einer spiegelnden Reflexion an den mehreren Abtastpunkten innerhalb des Pixels; RGB-Farbwerten von Licht zur Darstellung einer indirekten Beleuchtung und einer diffusen Reflexion an den mehreren Abtastpunkten innerhalb des Pixels; und/oder RGB-Farbwerten von Licht zur Darstellung einer indirekten Beleuchtung und einer spiegelnden Reflexion an den mehreren Abtastpunkten innerhalb des Pixels.
  • Beispiel 18. Computerprogrammerzeugnis, das ein oder mehrere nichttemporäre maschinenlesbare Medien beinhaltet, die mit Anweisungen codiert sind, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass ein Prozess zum Verringern von Rauschen innerhalb eines Digitalbildes ausgeführt wird, wobei der Prozess umfasst: für einzelne Pixel eines Satzes von Pixeln des ursprünglichen Bildes erfolgendes Generieren eines entsprechenden Strahldichtemerkmalsvektors und eines entsprechenden Hilfsmerkmalsvektors; Generieren wenigstens eines ersten Kernes und eines zweiten Kernes auf Grundlage eines oder mehrerer Strahldichtemerkmalsvektoren und eines oder mehrerer Hilfsmerkmalsvektoren; Falten des ersten Kernes mit dem ursprünglichen Bild zum Generieren eines ersten Bildes; undFalten des zweiten Kernes mit dem ersten Bild zum Generieren eines zweiten Bildes, das relativ zu dem ursprünglichen Bild weniger Rauschen aufweist.
  • Beispiel 19. Computerprogrammerzeugnis von Beispiel 18, wobei das Generieren des ersten Kernes umfasst: Berechnen einer ersten Gewichtung auf Grundlage (i) einer ersten L2-Norm zwischen einem ersten Strahldichtemerkmalsvektor eines ersten Pixels und einem zweiten Strahldichtemerkmalsvektor eines zweiten Pixels und (ii) einer zweiten L2-Norm zwischen einem ersten Hilfsmerkmalsvektor des ersten Pixels und einem zweiten Hilfsmerkmalsvektor des zweiten Pixels; und Generieren des ersten Kernes mit einem Wirkabstand, der eine erste Zahl aufweist, wobei der erste Kern das erste Pixel und das zweite Pixel beinhaltet, die durch die erste Zahl von Pixeln getrennt sind, und wobei der erste Kern die erste Gewichtung beinhaltet.
  • Beispiel 20. Computerprogrammerzeugnis von Beispiel 19, wobei ein Hilfsmerkmalsvektor eines Pixels eines oder mehrere darstellt von: einer Angabe einer Richtung, die senkrecht zu einem Abtastpunkt des Pixels ist; einem Albedomerkmal des Abtastpunktes; einer Tiefe des Abtastpunktes relativ zu einer virtuellen Kamera, die ein Bild des Abtastpunktes aufnimmt; einem emissiven Merkmal des Abtastpunktes; einem metallischen Merkmal des Abtastpunktes; einem transmissiven Merkmal des Abtastpunktes; und/oder einem Rauheitsmerkmal bzw. Rauheitsmerkmalen des Abtastpunktes.
  • Die vorstehende Detailbeschreibung ist zur Illustration präsentiert worden. Sie soll nicht erschöpfend sein oder die Offenbarung genau auf die beschriebene Form beschränken. Es sind viele Abwandlungen und Variationen im Lichte der vorliegenden Offenbarung möglich. Es ist daher beabsichtigt, dass der Umfang der vorliegenden Anmeldung nicht durch die vorliegende Detailbeschreibung, sondern vielmehr durch die beigefügten Ansprüche beschränkt sein soll. In Zukunft eingereichte Anmeldungen, die die Priorität der vorliegenden Anmeldung beanspruchen, können den offenbarten Erfindungsgegenstand auf andere Weise beanspruchen und können allgemein einen beliebigen Satz aus einer oder mehreren Beschränkungen, wie sie hier verschiedentlich offenbart oder anderweitig demonstriert werden, beinhalten.

Claims (20)

  1. Verfahren zum Entrauschen eines Bildes, wobei das Verfahren umfasst: innerhalb einzelner Pixel eines Satzes von Pixeln eines ersten Bildes erfolgendes Identifizieren von entsprechenden mehreren Abtastpunkten; für einzelne Abtastpunkte erfolgendes Abschätzen eines entsprechenden Strahldichtevektors, der Licht, das an dem entsprechenden Abtastpunkt empfangen wird, beschreibt; durch ein erstes maschinell lernendes Modul, für einzelne Pixel in dem Satz erfolgendes Generieren eines entsprechenden zwischenzeitlichen Strahldichtemerkmalsvektors wenigstens teilweise auf Grundlage der Strahldichtevektoren, die den entsprechenden mehreren Abtastpunkten innerhalb des entsprechenden Pixels zugeordnet sind; durch ein zweites maschinell lernendes Modul, für einzelne Pixel in dem Satz erfolgendes Generieren eines entsprechenden endgültigen Strahldichtemerkmalsvektors wenigstens teilweise auf Grundlage von zwischenzeitlichen Strahldichtemerkmalsvektoren für das entsprechende Pixel und ein oder mehrere benachbarte Pixel; und Generieren eines zweiten Bildes wenigstens teilweise auf Grundlage der endgültigen Strahldichtemerkmalsvektoren, wobei das zweite Bild weniger Rauschen aufweist und fotorealistischer als das erste Bild ist.
  2. Verfahren nach Anspruch 1, wobei: das Generieren der endgültigen Strahldichtemerkmalsvektoren umfasst: für jedes Pixel des Satzes erfolgendes Generieren eines entsprechenden endgültigen Strahldichtemerkmalsvektors, der wenigstens einen entsprechenden ersten Abschnitt und einen entsprechenden zweiten Abschnitt aufweist; und das Verfahren des Weiteren umfasst: Generieren eines ersten Teilsatzes von Kerneln bzw. Kernen mit einem ersten Stride bzw. Wirkabstand wenigstens teilweise auf Grundlage der ersten Abschnitte der endgültigen Strahldichtemerkmalsvektoren, und Generieren eines zweiten Teilsatzes von Kerneln bzw. Kernen mit einem zweiten Stride bzw. Wirkabstand wenigstens teilweise auf Grundlage der zweiten Abschnitte der endgültigen Strahldichtemerkmalsvektoren.
  3. Verfahren nach Anspruch 2, wobei das Generieren des ersten Teilsatzes von Kernen umfasst: Generieren eines ersten Kernels bzw. Kernes des ersten Teilsatzes von Kernen, wobei der erste Kern ein erstes Pixel als Zielpixel und mehrere Pixel benachbart zu dem Zielpixel beinhaltet, wobei der erste Kern einen Stride bzw. Wirkabstand X aufweist, der angibt, dass Pixeln, die X Pixel entfernt von dem ersten Zielpixel innerhalb des ersten Kernes sind, Nicht-Null-Gewichtungen zugewiesen werden, wobei X eine positive ganze Zahl ist, wobei ein zweites Pixel innerhalb des ersten Kernes X Pixel entfernt von dem ersten Zielpixel ist, und wobei eine erste Gewichtung, die einen Beitrag des Strahldichtewertes von dem zweiten Pixel für das erste Pixel festlegt, wenigstens teilweise auf Grundlage eines Abstandes zwischen (i) dem ersten Abschnitt des ersten endgültigen Strahldichtemerkmalsvektors für das erste Pixel und (ii) dem ersten Abschnitt des zweiten endgültigen Strahldichtemerkmalsvektors für das zweite Pixel berechnet wird.
  4. Verfahren nach Anspruch 3, des Weiteren umfassend: durch das zweite maschinell lernende Modul, für einzelne Pixel in dem Satz erfolgendes Generieren eines entsprechenden Skalierungsfaktors, wobei das Generieren des ersten Kernes umfasst: Generieren der ersten Gewichtung wenigstens teilweise auf Grundlage eines Skalierungsfaktors, der dem zweiten Pixel zugewiesen ist; und Generieren einer zweiten Gewichtung für einen zweiten Kernel bzw. Kern wenigstens teilweise auf Grundlage (i) des Abstandes und (ii) eines Skalierungsfaktors, der dem ersten Pixel zugewiesen ist, wobei die zweite Gewichtung einen Beitrag des Strahldichtewertes von dem ersten Pixel für das zweite Pixel festlegt; wobei die erste Gewichtung von der zweiten Gewichtung verschieden ist, was wenigstens teilweise darauf beruht, dass der Skalierungsfaktor, der dem ersten Pixel zugewiesen ist, von dem Skalierungsfaktor, der dem zweiten Pixel zugewiesen ist, verschieden ist.
  5. Verfahren nach Anspruch 4, des Weiteren umfassend: durch das zweite maschinell lernende Modul erfolgendes Zuweisen von verschiedenen Werten zu den Skalierungsfaktoren der ersten und zweiten Pixel in Reaktion auf eine Detektion dessen, dass eines von dem ersten oder dem zweiten Pixel einen Strahldichtewert aufweist, der höher als eine Schwelle ist, und ein weiteres von dem ersten oder dem zweiten Pixel einen Strahldichtewert aufweist, der niedriger als die Schwelle ist.
  6. Verfahren nach einem der Ansprüche 2 bis 5, wobei das Generieren des zweiten Bildes umfasst: Falten des ersten Teilsatzes von Kernen mit dem ersten Bild zum Generieren eines ersten zwischenzeitlichen Bildes; Falten des zweiten Teilsatzes von Kernen mit dem ersten zwischenzeitlichen Bild zum Generieren eines zweiten zwischenzeitlichen Bildes; und Falten eines dritten Teilsatzes von Kernen mit dem zweiten zwischenzeitlichen Bild zum Generieren des zweiten Bildes.
  7. Verfahren nach Anspruch 6, wobei: jeder von dem ersten Teilsatz von Kernen einen ersten Stide bzw. Wirkabstand mit dem Wert 1 derart aufweist, dass mehreren benachbarten Pixeln, die 1 Pixel entfernt von einem Zielpixel in einem Kern des ersten Teilsatzes sind, entsprechende Nicht-Null-Gewichtungen zugewiesen werden; jeder von dem zweiten Teilsatz von Kernen einen zweiten Stride bzw. Wirkabstand mit dem Wert 2 derart aufweist, dass mehreren benachbarten Pixeln, die 2 Pixel entfernt von einem Zielpixel in einem Kern des zweiten Teilsatzes sind, entsprechende Nicht-Null-Gewichtungen zugewiesen werden; und jeder von dem dritten Teilsatz von Kernen einen dritten Stride bzw. Wirkabstand mit dem Wert 4 derart aufweist, dass mehreren benachbarten Pixeln, die 4 Pixel entfernt von einem Zielpixel in einem Kern des dritten Teilsatzes sind, entsprechende Nicht-Null-Gewichtungen zugewiesen werden.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei ein oder mehrere Strahldichtewerte, die Licht, das an einem ersten Abtastpunkt empfangen wird, beschreiben, eines oder mehrere umfassen von: RGB-Farbwerten (Rot-Grün-Blau RGB) von Licht zur Darstellung einer direkten Beleuchtung und einer diffusen Reflexion an dem ersten Abtastpunkt; RGB-Farbwerten von Licht zur Darstellung einer direkten Beleuchtung und einer spiegelnden Reflexion an dem ersten Abtastpunkt; RGB-Farbwerten von Licht zur Darstellung einer indirekten Beleuchtung und einer diffusen Reflexion an dem ersten Abtastpunkt; und/oder RGB-Farbwerten von Licht zur Darstellung einer indirekten Beleuchtung und einer spiegelnden Reflexion an dem ersten Abtastpunkt.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei vor dem Abschätzen der Strahldichtevektoren das Verfahren des Weiteren umfasst: Wiedergeben des ersten Bildes mit der Monte-Carlo-Methodik mittels mehrerer Abtastpunkte pro Pixel.
  10. Verfahren nach einem der vorhergehenden Ansprüche, des Weiteren umfassend: für einzelne Abtastpunkte von einzelnen Pixeln erfolgendes Abschätzen eines entsprechenden Hilfsvektors, der ein oder mehrere Hilfsmerkmale beinhaltet, die eine Oberfläche des entsprechenden Abtastpunktes beschreiben; durch ein drittes maschinell lernendes Modul, für einzelne Pixel erfolgendes Generieren eines entsprechenden zwischenzeitlichen Hilfsmerkmalsvektors wenigstens teilweise auf Grundlage der Hilfsvektoren, die den entsprechenden mehreren Abtastpunkten innerhalb des entsprechenden Pixels zugeordnet sind; und durch ein viertes maschinell lernendes Modul, für einzelne Pixel erfolgendes Generieren eines entsprechenden endgültigen Hilfsmerkmalsvektors, wobei ein erster endgültiger Hilfsmerkmalsvektor für das erste Pixel wenigstens teilweise auf Grundlage (a) eines ersten zwischenzeitlichen Hilfsmerkmalsvektors für das erste Pixel und (b) eines oder mehrerer weiterer zwischenzeitlicher Hilfsmerkmalsvektoren für ein oder mehrere weitere Pixel benachbart zu dem ersten Pixel generiert wird.
  11. Verfahren nach Anspruch 10, des Weiteren umfassend: Generieren eines oder mehrerer Teilsätze von Kernen wenigstens teilweise auf Grundlage der endgültigen Hilfsmerkmalsvektoren, wobei der eine oder die mehreren Teilsätze von Kernen zum Generieren des zweiten Bildes nutzbar sind.
  12. Verfahren nach Anspruch 11, wobei das Generieren des einen oder der mehreren Teilsätze von Kernen umfasst: Identifizieren eines zweiten Pixels benachbart zu einem ersten Pixel; und Berechnen einer ersten Gewichtung wenigstens teilweise auf Grundlage (i) einer ersten L2-Norm zwischen einem ersten endgültigen Strahldichtemerkmalsvektor für das erste Pixel und einem zweiten endgültigen Strahldichtemerkmalsvektor für das zweite Pixel und (ii) einer zweiten L2-Norm zwischen dem ersten endgültigen Hilfsmerkmalsvektor für das erste Pixel und einem zweiten endgültigen Hilfsmerkmalsvektor für das zweite Pixel.
  13. Verfahren nach Anspruch 12, des Weiteren umfassend: Generieren eines Kernes mit dem Stride bzw. Wirkabstand X und mit dem ersten Pixel als zentralem Pixel derart, dass mehreren benachbarten Pixeln, die X Pixel entfernt von dem zentralen Pixel in dem Kern sind, entsprechende Nicht-Null-Gewichtungen zugewiesen werden, wobei X eine positive ganze Zahl ist, wobei das zweite Pixel X Pixel entfernt von dem zentralen Pixel ist und wobei dem zweiten Pixel die erste Gewichtung zugewiesen ist.
  14. Verfahren nach einem der Ansprüche 10 bis 13, wobei das eine oder die mehreren Hilfsmerkmale eines ersten Abtastpunktes eines oder mehrere umfassen von: Koordinaten zur Darstellung einer Richtung, die normal zu einer Oberfläche des ersten Abtastpunktes ist; RGB-Farbwerten (Rot-Grün-Blau RGB) zur Darstellung eines Albedomerkmals des ersten Abtastpunktes; einer Tiefe des ersten Abtastpunktes relativ zu einer virtuellen Kamera, die das erste Bild aufnimmt; Koordinaten zur Darstellung einer Position des ersten Abtastpunktes relativ zu einem Koordinatensystem der virtuellen Kamera; und/oder Werten zur Darstellung einer emissiven Eigenschaft, einer metallischen Eigenschaft, einer Transmissionseigenschaft und/oder einer Rauheitseigenschaft des ersten Abtastpunktes.
  15. System zum Wiedergeben eines weniger verrauschten Bildes aus einem ursprünglichen Bild, das mehrere Pixel umfasst, wobei das System umfasst: einen oder mehrere Prozessoren; ein Entrauschungssystem, das von dem einen oder den mehreren Prozessoren ausführbar ist zum: für einzelne Pixel eines Satzes von Pixeln des ursprünglichen Bildes erfolgenden Generieren eines entsprechenden Strahldichtemerkmalsvektors und eines entsprechenden Hilfsmerkmalsvektors; Generieren wenigstens eines ersten Teilsatzes von Kerneln bzw. Kernen und eines zweiten Teilsatzes von Kerneln bzw. Kernen auf Grundlage eines Satzes von Strahldichtemerkmalsvektoren und eines Satzes von Hilfsmerkmalsvektoren des Satzes von Pixeln; Falten des ersten Teilsatzes von Kernen mit dem ursprünglichen Bild zum Generieren eines ersten Bildes; und Falten des zweiten Teilsatzes von Kernen mit dem ersten Bild zum Generieren eines zweiten Bildes, das relativ zu dem ursprünglichen Bild weniger Rauschen aufweist.
  16. System nach Anspruch 15, wobei zum Generieren eines ersten Kernes in dem ersten Teilsatz von Kernen das System ausgelegt ist zum: Berechnen einer ersten Gewichtung auf Grundlage (i) einer ersten L2-Norm zwischen einem ersten Strahldichtemerkmalsvektor eines ersten Pixels und einem zweiten Strahldichtemerkmalsvektor eines zweiten Pixels und (ii) einer zweiten L2-Norm zwischen einem ersten Hilfsmerkmalsvektor des ersten Pixels und einem zweiten Hilfsmerkmalsvektor des zweiten Pixels; und Generieren des ersten Kernes mit einem Wirkabstand, der eine erste Zahl aufweist, wobei der erste Kern das erste Pixel und das zweite Pixel beinhaltet, die durch die erste Zahl von Pixeln getrennt sind, und wobei der erste Kern die erste Gewichtung beinhaltet.
  17. System nach Anspruch 15 oder 16, wobei ein Strahldichtemerkmalsvektor eines Pixels eines oder mehrere darstellt von: RGB-Farbwerten (Rot-Grün-Blau RGB) von Licht zur Darstellung einer direkten Beleuchtung und einer diffusen Reflexion an mehreren Abtastpunkten innerhalb des Pixels; RGB-Farbwerten von Licht zur Darstellung einer direkten Beleuchtung und einer spiegelnden Reflexion an den mehreren Abtastpunkten innerhalb des Pixels; RGB-Farbwerten von Licht zur Darstellung einer indirekten Beleuchtung und einer diffusen Reflexion an den mehreren Abtastpunkten innerhalb des Pixels; und/oder RGB-Farbwerten von Licht zur Darstellung einer indirekten Beleuchtung und einer spiegelnden Reflexion an den mehreren Abtastpunkten innerhalb des Pixels.
  18. Computerprogrammerzeugnis, das ein oder mehrere nichttemporäre maschinenlesbare Medien beinhaltet, die mit Anweisungen codiert sind, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass ein Prozess zum Verringern von Rauschen innerhalb eines Digitalbildes ausgeführt wird, wobei der Prozess umfasst: für einzelne Pixel eines Satzes von Pixeln des ursprünglichen Bildes erfolgendes Generieren eines entsprechenden Strahldichtemerkmalsvektors und eines entsprechenden Hilfsmerkmalsvektors; Generieren wenigstens eines ersten Kernes und eines zweiten Kernes auf Grundlage eines oder mehrerer Strahldichtemerkmalsvektoren und eines oder mehrerer Hilfsmerkmalsvektoren; Falten des ersten Kernes mit dem ursprünglichen Bild zum Generieren eines ersten Bildes; und Falten des zweiten Kernes mit dem ersten Bild zum Generieren eines zweiten Bildes, das relativ zu dem ursprünglichen Bild weniger Rauschen aufweist.
  19. Computerprogrammerzeugnis nach Anspruch 18, wobei das Generieren des ersten Kernes umfasst: Berechnen einer ersten Gewichtung auf Grundlage (i) einer ersten L2-Norm zwischen einem ersten Strahldichtemerkmalsvektor eines ersten Pixels und einem zweiten Strahldichtemerkmalsvektor eines zweiten Pixels und (ii) einer zweiten L2-Norm zwischen einem ersten Hilfsmerkmalsvektor des ersten Pixels und einem zweiten Hilfsmerkmalsvektor des zweiten Pixels; und Generieren des ersten Kernes mit einem Wirkabstand, der eine erste Zahl aufweist, wobei der erste Kern das erste Pixel und das zweite Pixel beinhaltet, die durch die erste Zahl von Pixeln getrennt sind, und wobei der erste Kern die erste Gewichtung beinhaltet.
  20. Computerprogrammerzeugnis nach Anspruch 19, wobei ein Hilfsmerkmalsvektor eines Pixels eines oder mehrere darstellt von: einer Angabe einer Richtung, die senkrecht zu einem Abtastpunkt des Pixels ist; einem Albedomerkmal des Abtastpunktes; einer Tiefe des Abtastpunktes relativ zu einer virtuellen Kamera, die ein Bild des Abtastpunktes aufnimmt; einem emissiven Merkmal des Abtastpunktes; einem metallischen Merkmal des Abtastpunktes; einem transmissiven Merkmal des Abtastpunktes; und/oder einem Rauheitsmerkmal bzw. Rauheitsmerkmalen des Abtastpunktes.
DE102021004572.6A 2020-11-10 2021-09-09 Entrauschen von Bildern, die mittels Monte-Carlo-Wiedergaben wiedergegeben werden Pending DE102021004572A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/093,852 2020-11-10
US17/093,852 US11983854B2 (en) 2020-11-10 2020-11-10 Denoising images rendered using Monte Carlo renderings

Publications (1)

Publication Number Publication Date
DE102021004572A1 true DE102021004572A1 (de) 2022-06-02

Family

ID=78076694

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021004572.6A Pending DE102021004572A1 (de) 2020-11-10 2021-09-09 Entrauschen von Bildern, die mittels Monte-Carlo-Wiedergaben wiedergegeben werden

Country Status (5)

Country Link
US (1) US11983854B2 (de)
CN (1) CN114549374A (de)
AU (1) AU2021229124B2 (de)
DE (1) DE102021004572A1 (de)
GB (2) GB2600808B (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111160568B (zh) * 2019-12-27 2021-04-06 北京百度网讯科技有限公司 机器阅读理解模型训练方法、装置、电子设备和存储介质
US11978181B1 (en) * 2020-12-11 2024-05-07 Nvidia Corporation Training a neural network using luminance

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7831098B2 (en) * 2006-11-07 2010-11-09 Recognition Robotics System and method for visual searching of objects using lines
ES2765277T3 (es) * 2014-12-22 2020-06-08 Reactive Reality Gmbh Método y sistema para generar datos de modelo de prenda
KR20200084808A (ko) * 2019-01-03 2020-07-13 삼성전자주식회사 확장 컨벌루션 연산을 수행하는 시스템 및 방법
JP7298713B2 (ja) * 2019-12-06 2023-06-27 日本電気株式会社 パラメータ最適化装置、パラメータ最適化方法、およびパラメータ最適化プログラム

Also Published As

Publication number Publication date
GB2600808A (en) 2022-05-11
CN114549374A (zh) 2022-05-27
GB202215772D0 (en) 2022-12-07
GB2600808B (en) 2023-04-26
GB202112574D0 (en) 2021-10-20
GB2614385A (en) 2023-07-05
AU2021229124A1 (en) 2022-05-26
AU2021229124B2 (en) 2024-02-08
US11983854B2 (en) 2024-05-14
GB2614385B (en) 2024-01-31
US20220148135A1 (en) 2022-05-12

Similar Documents

Publication Publication Date Title
Kovesi MATLAB and Octave functions for computer vision and image processing
Amirkhani et al. An objective method to evaluate exemplar‐based inpainted images quality using Jaccard index
DE102015107872A1 (de) Neu beleuchtbare Textur zur Verwendung beim Rendern eines Bildes
DE102021004572A1 (de) Entrauschen von Bildern, die mittels Monte-Carlo-Wiedergaben wiedergegeben werden
US20230215132A1 (en) Method for generating relighted image and electronic device
DE102017006563A1 (de) Bildpatchabgleich unter Nutzung eines wahrscheinlichkeitsbasierten Abtastens auf Grundlage einer Vorhersage
Fan et al. Multi-scale depth information fusion network for image dehazing
Rahman et al. Diverse image enhancer for complex underexposed image
Singh et al. Illumination estimation for nature preserving low-light image enhancement
Yang et al. Low‐light image enhancement based on Retinex decomposition and adaptive gamma correction
Xing et al. Method based on bitonic filtering decomposition and sparse representation for fusion of infrared and visible images
Li et al. A novel detail weighted histogram equalization method for brightness preserving image enhancement based on partial statistic and global mapping model
US20240054605A1 (en) Methods and systems for wavelet domain-based normalizing flow super-resolution image reconstruction
CN116703744B (zh) 一种基于卷积神经网络的遥感影像匀光匀色方法和装置
Wu et al. Non-uniform low-light image enhancement via non-local similarity decomposition model
Pu et al. Fractional-order retinex for adaptive contrast enhancement of under-exposed traffic images
He et al. A night low‐illumination image enhancement model based on small probability area filtering and lossless mapping enhancement
Xu et al. Attention‐based multi‐channel feature fusion enhancement network to process low‐light images
CN114897884A (zh) 基于多尺度边缘特征融合的无参考屏幕内容图像质量评估方法
CN114926354A (zh) 运用深度低秩非负矩阵分解水下图像复原方法、系统、介质
Zhou et al. An improved algorithm using weighted guided coefficient and union self‐adaptive image enhancement for single image haze removal
De Decker et al. Mode estimation in high-dimensional spaces with flat-top kernels: Application to image denoising
Niu et al. Retracted: Research on image sharpening algorithm in weak illumination environment
Kuang et al. Two-stage low-light image enhancement network with an attention mechanism and cross-stage connection
Chen et al. Hcsam-Net: Multistage Network with a Hybrid of Convolution and Self-Attention Mechanism for Low-Light Image Enhancement

Legal Events

Date Code Title Description
R012 Request for examination validly filed