DE112022001485T5 - Verfahren und einrichtungen zum synthetisieren von ansichten mit sechs freiheitsgraden aus spärlichen rgb-tiefe-eingaben - Google Patents

Verfahren und einrichtungen zum synthetisieren von ansichten mit sechs freiheitsgraden aus spärlichen rgb-tiefe-eingaben Download PDF

Info

Publication number
DE112022001485T5
DE112022001485T5 DE112022001485.7T DE112022001485T DE112022001485T5 DE 112022001485 T5 DE112022001485 T5 DE 112022001485T5 DE 112022001485 T DE112022001485 T DE 112022001485T DE 112022001485 T5 DE112022001485 T5 DE 112022001485T5
Authority
DE
Germany
Prior art keywords
view
circuitry
reprojected
rgb
neural network
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
DE112022001485.7T
Other languages
English (en)
Inventor
Fan Zhang
Oscar Nestares
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112022001485T5 publication Critical patent/DE112022001485T5/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/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/77Retouching; Inpainting; Scratch removal
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • 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/20221Image fusion; Image merging

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

Hierin sind Verfahren und Einrichtungen offenbart, um Ansichten mit sechs Freiheitsgraden aus spärlichen RGB-Tiefe-Eingaben zu synthetisieren. Eine beispielhafte Einrichtung beinhaltet mindestens einen Speicher, Anweisungen in der Einrichtung und eine Prozessorschaltungsanordnung zum Ausführen der Anweisungen zum Reprojizieren einer ersten Rot-Grün-Blau(RGB)-Tiefenansicht und einer zweiten RGB-Tiefenansicht auf eine Zielkameraposition, um eine erste reprojizierte Ansicht und eine zweite reprojizierte Ansicht zu erhalten, Kombinieren der ersten reprojizierten Ansicht und der zweiten reprojizierten Ansicht in gemischte Ansichtsdaten basierend auf einer ersten Gewichtungskarte und einer zweiten Gewichtungskarte, wobei die gemischte Ansicht fehlende RGB-Tiefeninformationen aufgrund einer Okklusion oder einer Nichtokklusion beinhaltet, und Erzeugen einer synthetisierten Ansicht mit sechs Freiheitsgraden der gemischten Ansichtsdaten, wobei die synthetisierte Ansicht die fehlenden RGB-Tiefeninformationen beinhaltet.

Description

  • VERWANDTE ANMELDUNGEN
  • Dieses Patent beansprucht Priorität für die US-Patentanmeldung mit der Seriennummer 17/483,635, jetzt US-Patent Nr. __, eingereicht am 23. September 2021. Die US-Patentanmeldung mit der Seriennummer 17/483,635 wird hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen.
  • GEBIET DER OFFENBARUNG
  • Diese Offenbarung betrifft allgemein Rechensysteme und insbesondere Verfahren und Einrichtungen zum Synthetisieren von Ansichten mit sechs Freiheitsgraden aus spärlichen RGB-Tiefe-Eingaben.
  • HINTERGRUND
  • Tiefe neuronale Netzwerke (DNNs) haben das Gebiet der künstlichen Intelligenz (KI) mit Ergebnissen auf dem neuesten Stand der Technik in vielen Domänen revolutioniert, einschließlich Computervision, Sprachverarbeitung und Verarbeitung natürlicher Sprache. DNN-basierte Lernalgorithmen können darauf fokussiert werden, wie bereits trainierte Modelle effizient ausgeführt werden können (z. B. unter Verwendung von Inferenz) und wie die DNN-Recheneffizienz über eine Bildklassifizierung bewertet werden kann. Verbesserungen beim effizienten Training von DNN-Modellen können unter anderem in Bereichen von Maschinenübersetzung, Spracherkennung und Empfehlungssystemen nützlich sein.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
    • 1 veranschaulicht ein beispielhaftes faltendes Ende-zu-Ende-Deep-Learning-Netzwerk zum Synthetisieren neuartiger Ansichten mit sechs Freiheitsgraden (DOF) aus spärlichen RGB-Tiefe-Eingaben unter Verwendung einer Vorverarbeitungsschaltungsanordnung, einer Mischschaltungsanordnung, einer Inpainting-Schaltungsanordnung und/oder einer Trainingsschaltungsanordnung.
    • 2 veranschaulicht ein Blockdiagramm der Vorverarbeitungsschaltungsanordnung und der Mischschaltungsanordnung aus 1 konstruiert gemäß Lehren dieser Offenbarung.
    • 3 veranschaulicht ein Blockdiagramm der Inpainting-Schaltungsanordnung und der Trainingsschaltungsanordnung aus 2 konstruiert gemäß Lehren dieser Offenbarung.
    • 4 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Anweisungen repräsentiert, die durch eine beispielhafte Prozessorschaltungsanordnung ausgeführt werden können, um die Vorverarbeitungsschaltungsanordnung, die Mischschaltungsanordnung, die Inpainting-Schaltungsanordnung und/oder die Trainingsschaltungsanordnung aus 1 zu implementieren.
    • 5 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Anweisungen repräsentiert, die durch eine beispielhafte Prozessorschaltungsanordnung ausgeführt werden können, um die Mischschaltungsanordnung aus 1 und/oder 2 zu implementieren.
    • 6 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Anweisungen repräsentiert, die durch eine beispielhafte Prozessorschaltungsanordnung ausgeführt werden können, um die Inpainting-Schaltungsanordnung aus 1 und/oder 3 zu implementieren.
    • 7 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Anweisungen repräsentiert, die durch eine beispielhafte Prozessorschaltungsanordnung ausgeführt werden können, um die Trainingsschaltungsanordnung aus 1 und/oder 3 zu implementieren.
    • 8 ist eine beispielhafte Veranschaulichung von Ground-Truth-Daten und reprojizierten Ansichten.
    • 9 ist ein Beispiel für das Trainieren von Eingabeansichten und Ground-Truth-Daten.
    • 10 ist ein Beispiel für die Datensatzerzeugung, die während des Trainings und der Identifikation eines Zielorts verwendet wird.
    • 11 ist ein Beispiel für Kameraanordnungsorte, spärliche Eingabeansichten und finale synthetisierte Ansichten, die unter Verwendung des faltenden Ende-zu-Ende-Deep-Learning-Netzwerks aus 1 erhalten werden.
    • 12 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform, die eine Prozessorschaltungsanordnung beinhaltet, die strukturiert ist, um die beispielhaften maschinenlesbaren Anweisungen aus 4 zum Implementieren der Vorverarbeitungsschaltungsanordnung aus 2 auszuführen.
    • 13 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform, die eine Prozessorschaltungsanordnung beinhaltet, die strukturiert ist, um die beispielhaften maschinenlesbaren Anweisungen aus 5 zum Implementieren der Mischschaltungsanordnung aus 2 auszuführen.
    • 14 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform, die eine Prozessorschaltungsanordnung beinhaltet, die strukturiert ist, um die beispielhaften maschinenlesbaren Anweisungen aus 6 zum Implementieren der Inpainting-Schaltungsanordnung aus 3 auszuführen.
    • 15 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform, die eine Prozessorschaltungsanordnung beinhaltet, die strukturiert ist, um die beispielhaften maschinenlesbaren Anweisungen aus 7 zum Implementieren der Trainingsschaltungsanordnung aus 3 auszuführen.
    • 16 ist ein Blockdiagramm einer beispielhaften Implementierung der Prozessorschaltungsanordnung aus 12, 13, 14 und/oder 15.
    • 17 ist ein Blockdiagramm einer anderen beispielhaften Implementierung der Prozessorschaltungsanordnung aus 12, 13, 14 und/oder 15.
    • 18 ist ein Blockdiagramm einer beispielhaften Softwareverteilungsplattform (z. B. eines oder mehrerer Server) zum Verteilen von Software (z. B. Software, die den beispielhaften maschinenlesbaren Anweisungen der 4, 5, 6, 7 entspricht) an Client-Vorrichtungen, die mit Endbenutzern und/oder Verbrauchern (z. B. für Lizenz, Verkauf und/oder Verwendung), Einzelhändler (z. B. für Verkauf, Wiederverkauf, Lizenz und/oder Unterlizenz) und/oder Originalgerätehersteller (OEMs) (z. B. zur Aufnahme in Produkte, die zum Beispiel an Einzelhändler und/oder an andere Endbenutzer, wie etwa Direktkaufskunden, zu verteilen sind) assoziiert sind.
  • Die Figuren sind nicht maßstabsgetreu. Allgemein werden die gleichen Bezugsziffern durchweg durch die Zeichnung(en) und die begleitende geschriebene Beschreibung verwendet, um sich auf dieselben oder ähnliche Teile zu beziehen. Sofern nicht spezifisch anders angegeben, werden Deskriptoren, wie etwa „erste/r/s“, „zweite/r/s“, „dritte/r/s“ usw., hierin verwendet, ohne irgendeine Bedeutung von Priorität, physischer Reihenfolge, Anordnung in einer Liste und/oder Ordnung auf irgendeine Weise zu unterstellen oder anderweitig anzugeben, sondern werden lediglich als Bezeichnungen und/oder willkürliche Namen verwendet, um Elemente zum einfachen Verständnis der offenbarten Beispiele zu unterscheiden. Bei manchen Beispielen kann der Deskriptor „erstes“ verwendet werden, um auf ein Element in der ausführlichen Beschreibung zu verweisen, während auf das gleiche Element in einem Anspruch mit einem unterschiedlichen Deskriptor, wie etwa „zweites“ oder „drittes“, verwiesen wird. In derartigen Fällen versteht es sich, dass derartige Deskriptoren lediglich zum eindeutigen Identifizieren jener Elemente verwendet werden, die zum Beispiel ansonsten einen gleichen Namen teilen könnten. Wie hierin verwendet, verweisen „ungefähr“ und „etwa“ auf Abmessungen, die aufgrund von Herstellungstoleranzen und/oder anderen realen Unvollkommenheiten möglicherweise nicht exakt sind. Wie hierin verwendet, bezieht sich „im Wesentlichen Echtzeit“ auf ein nahezu augenblickliches Auftreten, wobei anerkannt wird, dass es in der realen Welt Verzögerungen für Datenverarbeitungszeit, Übertragung usw. geben kann. Somit bezieht sich „im Wesentlichen Echtzeit“, sofern nicht anders spezifiziert, auf Echtzeit +/- 1 Sekunde. Wie hierin verwendet, umfasst der Ausdruck „in Kommunikation“, einschließlich Variationen davon, direkte Kommunikation und/oder indirekte Kommunikation durch eine oder mehrere Zwischenkomponenten, und erfordert keine direkte physische (zum Beispiel drahtgebundene) Kommunikation und/oder konstante Kommunikation, sondern beinhaltet zusätzlich eine selektive Kommunikation in periodischen Intervallen, geplanten Intervallen, aperiodischen Intervallen und/oder einmaligen Ereignissen. Wie hier verwendet, ist „Prozessorschaltungsanordnung“ so definiert, dass sie (i) eine oder mehrere elektrische Spezialschaltungen beinhaltet, die zum Durchführen einer oder mehrerer spezieller Operationen strukturiert sind und eine oder mehrere halbleiterbasierte Logikvorrichtungen (z. B. elektrische Hardware, die durch einen oder mehrere Transistoren implementiert ist) beinhalten, und/oder (ii) eine oder mehrere halbleiterbasierte elektrische Mehrzweckschaltungen, die mit Anweisungen zum Durchführen spezieller Operationen programmiert werden und eine oder mehrere halbleiterbasierte Logikvorrichtungen (z. B. elektrische Hardware, die durch einen oder mehrere Transistoren implementiert wird) beinhalten. Beispiele für eine Prozessorschaltungsanordnung beinhalten programmierte Mikroprozessoren, feldprogrammierbare Gate-Arrays (FPGAs), die Anweisungen instanziieren können, Zentralprozessoreinheiten (CPUs), Grafikprozessoreinheiten (GPUs), Digitalsignalprozessoren (DSPs), XPUs oder Mikrocontroller und integrierte Schaltungen wie etwa anwendungsspezifische integrierte Schaltungen (ASICs). Zum Beispiel kann eine XPU durch ein heterogenes Rechensystem implementiert werden, das mehrere Typen von Prozessorschaltungsanordnungen (z. B. ein oder mehrere FPGAs, eine oder mehrere CPUs, eine oder mehrere GPUs, einen oder mehrere DSPs usw. und/oder eine Kombination aus diesen) und Anwendungsprogrammierschnittstelle(n) (API(s)) beinhaltet, die Rechenaufgabe(n) jedem der mehreren Typen von Verarbeitungsschaltungsanordnung zuweisen können, die am besten zum Ausführen der Rechenaufgabe(n) geeignet ist/sind.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Tiefe neuronale Netzwerke (DNNs) haben das Gebiet der künstlichen Intelligenz (KI) mit Ergebnissen auf dem neuesten Stand der Technik in vielen Domänen revolutioniert, einschließlich Computervision, Sprachverarbeitung und Verarbeitung natürlicher Sprache. Insbesondere werden neuronale Netzwerke beim maschinellen Lernen verwendet, um einem Computer zu ermöglichen, durch das Analysieren von Trainingsbeispielen zu lernen, bestimmte Aufgaben durchzuführen. Zum Beispiel können einem Objekterkennungssystem zahlreiche gelabelte Bilder von Objekten (z. B. Autos, Züge, Tiere usw.) eingespeist werden, um dem System zu ermöglichen, visuelle Muster in solchen Bildern zu identifizieren, die konsistent mit einem bestimmten Objektlabel korrelieren. DNNs sind auf mehrere Schichten angewiesen, um nach und nach Merkmale höherer Ebene aus der Rohdateneingabe zu extrahieren (z. B. vom Identifizieren von Kanten eines Menschen unter Verwendung niedrigerer Schichten bis zum Identifizieren tatsächlicher Gesichtsmerkmale unter Verwendung höherer Schichten usw.). In einigen Beispielen können neuronale Netzwerke für immersive Virtual-Reality-Anwendungen verwendet werden. Während die Verwendung von 360°-Video die Darstellung von Ansichten ermöglicht, die mit einer Drehung des Kopfes eines Betrachters entlang drei Achsen konsistent sind, können Translationen in x-, y- und z-Richtungen mit der Unterstützung von sechs Freiheitsgraden (6 DOF) eine Verbesserung immersiver Videoanwendungen unter Verwendung von drei Translationsfreiheitsgraden und/oder drei Rotationsfreiheitsgraden bereitstellen. Zum Beispiel ermöglicht ein erster Translations-DOF eine Vorwärts- und/oder Rückwärtsbewegung entlang der x-Achse, wobei ein entsprechender erster Rotations-DOF zum Neigen auf derselben Achse dient. Ein zweiter Translations-DOF ermöglicht eine Seitezu-Seite-Bewegung (z. B. Bewegung nach links oder rechts eines Objekts entlang der y-Achse), wobei ein entsprechender zweiter Rotations-DOF eine Fähigkeit bereitstellt, sich auf derselben Achse zu drehen. Ein dritter Translations-DOF ermöglicht niedrigere oder höhere Ansichten (z. B. Bewegung höher als ein Objekt oder niedriger als ein Objekt entlang der z-Achse), wobei ein entsprechender dritter Rotations-DOF ein Kippen auf derselben Achse (z. B. Aufwärts- oder Abwärtsansicht) ermöglicht.
  • Zu den üblichen Kategorien von 6-DOF-Inhaltserzeugungstechniken gehören (1) Geometrierekonstruktion-basierte Verfahren und (2) bildbasierte Rendering-Verfahren. Bildbasierte Rendering-Techniken können eine schnelle Laufzeitleistung bieten und anspruchsvolle Szenarien handhaben, die die 3D-Rekonstruktion möglicherweise nicht verarbeiten kann. In einigen Beispielen schätzen herkömmliche 3D-Geometrierekonstruktionstechniken 3D-Modelle unter Verwendung von Mehrfachansichts-Geometrieinformationen aus den aufgenommenen unstrukturierten Fotodatensätzen. Fortschrittliche Patch-Match-basierte Rekonstruktionsalgorithmen können es schaffen, die 3D-Modellgenauigkeit weitgehend zu verbessern, während bildbasierte Rendering-Lösungen neuartige Ansichten unter Verwendung fortschrittlicher Reprojektions- und Mischalgorithmen synthetisieren, ohne irgendwelche komplexen 3D-Modelle für die Szenen zu konstruieren. Zusätzlich wurden verschiedene auf Deep Learning basierende Verfahren vorgeschlagen, um faltende neuronale Netzwerke zu verwenden, um neuartige Ansichten aus spärlichem aufgenommenem Inhalt zu synthetisieren.
  • Es gibt jedoch mehrere Nachteile mit der Verwendung solcher 6-DOF-Inhaltserzeugungstechniken. Zum Beispiel erzeugen Geometrierekonstruktion-basierte Lösungen üblicherweise 3D-Modelle mit unzureichender Genauigkeit und erzeugen dadurch keine realistischen Syntheseergebnisse. Zusätzlich ist die 3D-Modellrekonstruktion zeitaufwendig und kann nicht für Anwendungen mit bestimmten Laufzeitleistungsanforderungen verwendet werden. Obwohl herkömmliche bildbasierte Rendering-Techniken keine komplexen 3D-Modelle konstruieren, sind viele solcher Techniken immer noch auf ein globales spärliches 3D-Modell angewiesen. Daher ist der Realismus solcher Bild-Rendering-Techniken durch die Genauigkeit des spärlichen Modells beschränkt. Währenddessen können bekannte Deep-Learning-basierte Verfahren neuartige Syntheseergebnisse mit deutlich verbesserter Qualität erzeugen. Solche Verfahren beinhalten jedoch harte Einschränkungen für Kamera-Basislinien, sodass Disparitätswerte des Eingabeinhalts innerhalb eines Bereichs verbleiben können, mit begrenzten Fähigkeiten, eine 6-DOF-Freiansichtssynthese zu unterstützen. Während einige bekannte Techniken die Beschränkungen der allgemeinen Deep-Learning-Lösungen überwinden und ein großräumiges Rendering mit freiem Blickpunkt für eine realistische neuartige Inhaltserzeugung ermöglichen, sind solche neuartigen Ansichtssyntheseverfahren in mehrere Module mit Mischschritten, die auf das tiefe neuronale Netzwerk beschränkt sind, entkoppelt und stellen keine Ende-zu-Ende-Lösung bereit.
  • Hierin offenbarte Verfahren und Einrichtungen synthetisieren 6-DOF-Ansichten aus spärlichen Rot-Grün-Blau(RGB)-Tiefe-Eingaben. Zum Beispiel verwenden hierin offenbarte Verfahren und Einrichtungen ein 6-DOF-Bild-basiertes Deep-Learning-Rendering-Verfahren für eine neuartige Ansichtssynthese. In den hierin offenbarten Beispielen werden vier spärliche RGB-Tiefe(RGBD)-Eingaben und eine beliebige Zielposition als Eingaben verwendet, um eine neuartige virtuelle Ansicht zu erzeugen, als ob die Ansicht von dem Zielort erfasst worden wäre. In einigen Beispielen ist das tiefe neuronale Netzwerk (DNN) ein vollständig faltendes Ende-zu-Ende-Netzwerk ohne separate Vorverarbeitungs- oder Nachverarbeitungsmodule. Von daher kann das hierin offenbarte DNN im Gegensatz zu bekannten Lichtfelderzeugungsnetzwerken, die nur begrenzte Blickpunkt-Änderungen handhaben können, neuartige Blickpunkte in einem großen Raum erzeugen. Zum Beispiel kann in den hierin offenbarten Verfahren und Einrichtungen ein vollständig faltendes Ende-zu-Ende-Deep-Learning-Netzwerk verwendet werden, um neuartige 6-DOF-Ansichten aus spärlichen RGBD-Eingaben zu synthetisieren. Zum Beispiel reprojizieren die hierin offenbarten Verfahren und Einrichtungen bei vier RGBD-Eingängen und einer beliebigen virtuellen Zielposition die vier RGB-Eingaben gemäß Kameraparametern und/oder Tiefenkarten auf die virtuelle Zielposition. In einigen Beispielen werden die reprojizierten Ansichten in ein Mischnetzwerk eingegeben, um eine gemischte Ansicht mit fehlenden Daten zu erzeugen. In einigen Beispielen kann ein Inpainting-Netzwerk verwendet werden, um die fehlenden Daten der gemischten Ansicht einzufüllen und die finalen neuartigen Ansichten zu erzeugen, wodurch neuartige 6-DOF-Ansichten in einem großen Raum mit sehr spärlichen Eingaben erzeugt werden. Hierin offenbarte Verfahren und Einrichtungen können verwendet werden, um Lichtfeldinhalt für immersive Virtual-Reality-Anwendungen zu erzeugen. In einigen Beispielen können hierin offenbarte Verfahren und Einrichtungen für Echtzeit-6-DOF-Inhaltserzeugungsanwendungen nach Deep-Learning-Inferenz-basierter Beschleunigung (z. B. unter Verwendung von TensorRT) verwendet werden.
  • 1 veranschaulicht ein beispielhaftes faltendes Ende-zu-Ende-Deep-Learning-Netzwerk 100 zum Synthetisieren neuartiger Ansichten mit sechs Freiheitsgraden (DOF) aus spärlichen RGB-Tiefe-Eingaben unter Verwendung einer Vorverarbeitungsschaltungsanordnung, einer Mischschaltungsanordnung, einer Inpainting-Schaltungsanordnung und/oder einer Trainingsschaltungsanordnung. Im Beispiel von 1 beinhaltet das Deep-Learning-Netzwerk eine beispielhafte Vorverarbeitungsschaltungsanordnung 110, eine beispielhafte Mischschaltungsanordnung 120, eine beispielhafte Inpainting-Schaltungsanordnung 130 und eine beispielhafte Trainingsschaltungsanordnung 140. Im Beispiel von 1 empfängt die Vorverarbeitungsschaltungsanordnung 110 Eingaben, die beispielhafte RGB-Tiefe-Eingabe(n) 102, eine beispielhafte Kameraparametereingabe 104 und/oder eine beispielhafte Zielkamerapositionseingabe 106 beinhalten können. In einigen Beispielen beinhalten die RGBD-Eingabe(n) 102 RGBD-Eingaben, die aus unterschiedlichen Winkeln aufgenommen werden. In einigen Beispielen werden die RGBD-Eingabe(n) 102 von RGBD-Sensoren (die z. B. mit Tiefenerfassungsvorrichtungen assoziiert sind) erhalten, die in Verbindung mit einer oder mehreren RGB(Rot-Grün-Blau)-Sensorkameras arbeiten. Zum Beispiel erweitern RGBD-Sensoren herkömmliche Bilder mit Tiefeninformationen (die z. B. mit einem Abstand zwischen einem Objekt und dem Sensor assoziiert sind) auf einer Pro-Pixel-Basis. In einigen Beispielen beinhaltet die Kameraparametereingabe 104 kameraintrinsische Parameter (z. B. Parameter, die verwendet werden, um Pixelkoordinaten eines Bildpunkts mit entsprechenden Koordinaten in einem Kamerareferenzrahmen zu verknüpfen) und/oder kameraextrinsische Parameter (z. B. relative Rotation und/oder Translation zwischen Kameras, um Tiefenschätzung und Structure-from-Motion zu identifizieren). Die Zielkamerapositionseingabe 106 stellt Koordinaten einer Zielposition bereit, aus der das faltende Ende-zu-Ende-Deep-Learning-Netzwerk 100 eine virtuelle neuartige Ansicht synthetisiert, als ob die Ansicht von dem Zielort aufgenommen worden wäre.
  • Im Beispiel von 1 gibt die Vorverarbeitungsschaltungsanordnung 110 reprojizierte Ansichten 112 der ursprünglichen RGBD-Eingabe(n) 102 aus, wie in Verbindung mit 2 und 4 beschrieben. Zum Beispiel werden Eingabebilder 102 auf die Zielposition reprojiziert (z. B. basierend auf der Zielkamerapositionseingabe 106 erhalten), wodurch die reprojizierten Ansichten 112 bereitgestellt werden. Die Mischschaltungsanordnung 120 mischt die reprojizierten Ansichten 112 unter Verwendung einer oder mehrerer beispielhafter Gewichtungskarten 124, um eine beispielhafte gewichtete Kombination 126 zu erzeugen. Zum Beispiel schätzt die Mischschaltungsanordnung 120 die Gewichtungskarten 124, die zum Kombinieren der reprojizierten Ansichten 112 basierend auf einer beispielhaften gewichteten Kombination 126 der reprojizierten Ansichten 112 verwendet werden, um eine beispielhafte gemischte Ansicht 128 zu erhalten, wie in Verbindung mit 2 und 5 beschrieben. Die Mischschaltungsanordnung 120 kann ein faltendes neuronales Netzwerk (CNN) beinhalten. Im Beispiel eines faltenden neuronalen Netzwerks können ein zweidimensionales Bild und/oder eine Klasse des Bildes als Eingabe für die Neuronalnetzwerk-Trainingsschaltungsanordnung 140 dienen. Als ein Ergebnis des Trainings werden trainierte Gewichtungen erhalten, die Datenmuster oder Regeln repräsentieren, die aus den Eingabebildern extrahiert werden. In einigen Beispielen kann ein Bild als eine einzige Eingabe dienen, die an ein trainiertes Modell weitergeleitet wird, sodass das trainierte Modell die Klasse des Bildes basierend auf den gelernten Datenmustern ausgibt, die durch das CNN während des Trainings unter Verwendung der Neuronalnetzwerk-Trainingsschaltungsanordnung 140 erfasst werden.
  • In einigen Beispielen beinhaltet die gemischte Ansicht 128 fehlende Daten aufgrund von Okklusion/Nichtokklusion in der (den) ursprünglichen RGBD-Eingabe(n) 102. In 1 empfängt die Inpainting-Schaltungsanordnung 130 die Eingabe der gemischten Ansicht 128 zur weiteren Verarbeitung, um fehlende Daten der gemischten Ansicht 128 einzufüllen und die virtuelle Zielansicht durch Analysieren und/oder Verwenden von Nachbarschaftsinformationen, die mit den fehlenden Daten der reprojizierten Ansichten 112 assoziiert sind, zu vervollständigen, wie in Verbindung mit 3 und 6 beschrieben. Die Inpainting-Schaltungsanordnung 130 liefert dadurch eine beispielhafte finale synthetisierte Ansicht 132, die an einen Benutzer ausgegeben und/oder für Trainingszwecke als Teil der Trainingsschaltungsanordnung 140 verwendet werden kann. In einigen Beispielen beinhaltet die Inpainting-Schaltungsanordnung 130 ein Generative Adversarial Network (GAN). Dieses neuronale Netzwerk kann beim unüberwachten Aufgabenlernen verwendet werden, das das automatische Entdecken und/oder Lernen von Regelmäßigkeiten und/oder Mustern in Eingabedaten auf eine Weise beinhaltet, die es dem Modell ermöglicht, neue Beispiele zu erzeugen und/oder auszugeben, die aus dem ursprünglichen Datensatz bezogen worden sein könnten.
  • Die Trainingsschaltungsanordnung 140 beinhaltet die Verwendung einer Verlustfunktion, einschließlich eines beispielhaften L1-Verlusts 142, eines beispielhaften VGG-Verlusts 144 und/oder eines beispielhaften GAN-Verlusts 146. In einigen Beispielen reduziert die Trainingsschaltungsanordnung 140 Fehler basierend auf dem Training des neuronalen Netzwerks, indem eine Funktion an einen gegebenen Trainingssatz angepasst wird. In einigen Beispielen kann die Trainingsschaltungsanordnung 140 verwendet werden, um eine Überanpassung zu vermeiden. Zum Beispiel kann die Trainingsschaltungsanordnung 140 einen Bestrafungsterm in einer Fehlerfunktion beinhalten, um Fluktuation und Mangel an ordnungsgemäßer Anpassung zu steuern. Dies kann relevant sein, wenn Modelle gut an einem Trainingssatz arbeiten, aber Ungenauigkeiten zeigen, wenn ein Testsatz verwendet wird (z. B. ein Satz von Bildern, auf die das Modell während des Trainings nicht gestoßen ist). In einigen Beispielen kann die Trainingsschaltungsanordnung 140 die Belastung eines spezifischen Satzes von Modellgewichtungen reduzieren, um die Modellkomplexität zu steuern. Zum Beispiel beinhalten Bilder mit vielen Merkmalen inhärent viele Gewichtungen, wodurch das Modell gegenüber einer Überanpassung anfällig ist. Die Trainingsschaltungsanordnung 140 reduziert die Auswirkung gegebener Gewichtungen auf die Verlustfunktion, die zum Bestimmen von Fehlern zwischen tatsächlichen Labeln und vorhergesagten Labeln verwendet wird. In einigen Beispielen kann die Trainingsschaltungsanordnung 140 Regularisierungstechniken basierend auf einer L1-Regularisierung beinhalten, um den L1-Verlust 142 einzuführen (wobei z. B. die L1-Regularisierung Ausgaben in Binärgewichtungen von 0 bis 1 für die Merkmale eines Modells gibt und zum Verringern der Gesamtanzahl von Merkmalen in einem großen dimensionalen Datensatz angenommen werden kann). Es kann jedoch eine beliebige andere Art von Regularisierung verwendet werden. Der Regularisierungsterm reduziert den Wert bestimmter Gewichtungen, um eine Modellvereinfachung zu ermöglichen, wodurch eine Überanpassung reduziert wird. Gleichermaßen führt der VGG-Verlust einen Inhaltsverlust ein, der eine Alternative zu pixelweisen Verlusten bereitstellt, wodurch versucht wird, die Wahrnehmungsähnlichkeit zu verbessern. In einigen Beispielen basiert der VGG-Verlust auf ReLU-Aktivierungsschichten (ReLU: Rectified Linear Unit - rektifizierte Lineareinheit) eines vortrainierten VGG-Netzwerks. ReLUs sind zum Beispiel stückweise lineare Funktionen, die die Eingabe direkt ausgeben, wenn die Eingabe positiv ist. Die Verwendung von ReLUs ermöglicht eine Verbesserung des Gesamtmodelllernens und der Gesamtleistung. Die Trainingsschaltungsanordnung 140 kann ferner den GAN-Verlust 146 beinhalten. In einigen Beispielen kann der GAN-Verlust 146 verwendet werden, um die Distanz zwischen der Verteilung von Daten, die durch das GAN erzeugt werden, und der Verteilung der realen Dateneingabe (z. B. repräsentiert durch beispielhafte Ground-Truth-Daten 148) widerzuspiegeln. Im Beispiel von 1 können die Ground-Truth-Daten 148 der Trainingsschaltungsanordnung 140 und/oder zur Berechnung des beispielhaften L1-Verlusts 150 bereitgestellt werden. Die Ausgabe der Trainingsschaltungsanordnung 140 kann ferner verwendet werden, um eine Trainingsrückmeldung 152, 154, 156 an die Mischschaltungsanordnung 120 (z. B. unter Verwendung eines CNN zum Durchführen des Mischens) und/oder die Inpainting-Schaltungsanordnung 130 (z. B. unter Verwendung eines GAN zum Durchführen des Inpainting) bereitzustellen. In einigen Beispielen trainiert die Trainingsschaltungsanordnung 140 das faltende neuronale Netzwerk und das Generative Adversarial Network gleichzeitig und/oder gemeinsam.
  • 2 veranschaulicht Blockdiagramme 200, 250 der Vorverarbeitungsschaltungsanordnung 110 und der Mischschaltungsanordnung 120 aus 1 konstruiert gemäß Lehren dieser Offenbarung. Die Vorverarbeitungsschaltungsanordnung 110 beinhaltet eine beispielhafte Bilddatenempfangsschaltungsanordnung 202, eine beispielhafte Kameraparameterempfangsschaltungsanordnung 204, eine beispielhafte Kamerapositionsempfangsschaltungsanordnung 206, eine beispielhafte Reprojektionsschaltungsanordnung 208 und/oder eine beispielhafte Datenspeicherung 210. Die Bilddatenempfangsschaltungsanordnung 202, die Kameraparameterempfangsschaltungsanordnung 204, die Kamerapositionsempfangsschaltungsanordnung 206, die Reprojektionsschaltungsanordnung 208 und/oder die Datenspeicherung 210 stehen unter Verwendung eines beispielhaften Busses 212 in Kommunikation.
  • Die Bilddatenempfangsschaltungsanordnung 202 empfängt Bilddaten, wie etwa Daten, die mit RGBD-Ansichten assoziiert sind (z. B. RGBD-Eingaben 102 aus 1). In einigen Beispielen beinhalten die RGBD-Eingaben 102 Ansichten eines Objekts aus unterschiedlichen Winkeln. Die Bilddatenempfangsschaltungsanordnung 202 verarbeitet die RGBD-Eingaben 102 zur Verwendung in der Vorverarbeitungsschaltungsanordnung 110 als Teil des Erzeugens reprojizierter Ansichten, die mit den RGBD-Eingaben 102 assoziiert sind. Die Kameraparameterempfangsschaltungsanordnung 204 empfängt Kameraparameterbasierte Eingaben (z. B. Kameraparametereingabe 104 aus 1). In einigen Beispielen empfängt die Parameterempfangsschaltungsanordnung 204 eine intrinsische Kameraparametereingabe (z. B. Parameter, die verwendet werden, um Pixelkoordinaten eines Bildpunkts mit entsprechenden Koordinaten in einem Kamerareferenzrahmen zu verknüpfen) und/oder eine extrinsische Kameraparametereingabe (z. B. relative Rotation und/oder Translation zwischen Kameras, um Tiefenschätzung und Structure-from-Motion zu identifizieren). Die Kamerapositionsempfangsschaltungsanordnung 206 empfängt Kamerapositionsinformationen, einschließlich der Zielkamerapositionseingabe 106 aus 1. Zum Beispiel können reprojizierte Ansichten basierend auf der eingegebenen Zielkameraposition erzeugt werden, um zu ermöglichen, dass eine virtuelle Ansicht basierend auf der beabsichtigten Zielposition rekonstruiert wird (z. B. unter Verwendung eines RGB-Pixel-Remapping). Somit können die Eingabebilder auf die Zielposition reprojiziert werden. Die Reprojektionsschaltungsanordnung 208 reprojiziert die Eingabe-RGBD-Ansichten auf die Zielposition, die durch die Zielkamerapositionseingabe 106 bereitgestellt wird. Zum Beispiel sind die reprojizierten Ansichten auf die Zielkameraposition fokussiert, wobei die RGBD-Ansichten, die anfänglich der Vorverarbeitungsschaltungsanordnung 110 bereitgestellt wurden, reprojiziert werden, um die gleiche Anzahl reprojizierter Ansichten zu ergeben, wie in dem Beispiel von 1 gezeigt. Die Datenspeicherung 210 kann verwendet werden, um beliebige Informationen zu speichern, die mit der Bilddatenempfangsschaltungsanordnung 202, der Kameraparameterempfangsschaltungsanordnung 204, der Kamerapositionsempfangsschaltungsanordnung 206 und/oder der Reprojektionsschaltungsanordnung 208 assoziiert sind. Die beispielhafte Datenspeicherung 210 des veranschaulichten Beispiels von 2 kann durch einen beliebigen Speicher, eine beliebige Speicherungsvorrichtung und/oder eine beliebige Speicherungsplatte zum Speichern von Daten, wie etwa Flash-Speicher, magnetische Medien, optische Medien usw., implementiert werden. Des Weiteren können die in der beispielhaften Datenspeicherung 210 gespeicherten Daten in einem beliebigen Datenformat vorliegen, wie etwa Binärdaten, kommagetrennte Daten, tabulatorgetrennte Daten, Structured-Query-Language(SQL)-Strukturen, Bilddaten usw.
  • Die Mischschaltungsanordnung 120 beinhaltet eine beispielhafte Reprojizierte-Ansicht-Empfangsschaltungsanordnung 252, eine beispielhafte Gewichtungskartenerzeugungsschaltungsanordnung 254, eine beispielhafte Kombinationsschaltungsanordnung 256, eine beispielhafte Normierungsschaltungsanordnung 256 und/oder eine beispielhafte Datenspeicherung 260. Die Reprojizierte-Ansicht-Empfangsschaltungsanordnung 252, die Gewichtungskartenerzeugungsschaltungsanordnung 254, die Kombinationsschaltungsanordnung 256, die Normierungsschaltungsanordnung 256 und/oder die Datenspeicherung 260 stehen unter Verwendung eines beispielhaften Busses 262 in Kommunikation.
  • Die Reprojizierte-Ansicht-Empfangsschaltungsanordnung 252 empfängt die reprojizierte Ansichtsausgabe, die durch die Vorverarbeitungsschaltungsanordnung 110 erzeugt wird. Die Gewichtungskartenerzeugungsschaltungsanordnung 254 erzeugt eine oder mehrere Gewichtungskarten als Teil eines faltenden neuronalen Netzwerks. Beispielsweise können Gewichtungskarten gelernt werden, um sie mit den reprojizierten Ansichten zu kombinieren, um eine gemischte Ansicht zu erhalten. In einigen Beispielen beschränkt die Gewichtungskartenerzeugungsschaltungsanordnung 254 die Ausgabeparameterwertebereiche für die Gewichtungskarte auf [0,1]. Die Kombinationsschaltungsanordnung 256 kombiniert die Gewichtungskarte(n) und die reprojizierten Ansichten, um eine gewichtete Kombination zu erhalten. Die Normierungsschaltungsanordnung 256 folgt einer oder mehreren Faltungsschichten des Netzwerks mit einer Gruppennormierung und einer undichten rektifizierten Lineareinheit (ReLU). In einigen Beispielen folgt die Normierungsschaltungsanordnung 258 der letzten Faltungsschicht des Netzwerks mit einer Gruppennormierungs- und/oder Sigmoid-Einheit, um die Ausgabeparameterwertebereiche für eine gegebene Gewichtungskarte einzuschränken. Die Datenspeicherung 260 kann verwendet werden, um beliebige Informationen zu speichern, die mit der Reprojizierte-Ansicht-Empfangsschaltungsanordnung 252, der Gewichtungskartenerzeugungsschaltungsanordnung 254, der Kombinationsschaltungsanordnung 256 und/oder der Normierungsschaltungsanordnung 256 assoziiert sind. Die beispielhafte Datenspeicherung 260 des veranschaulichten Beispiels von 2 kann durch einen beliebigen Speicher, eine beliebige Speicherungsvorrichtung und/oder eine beliebige Speicherungsplatte zum Speichern von Daten, wie etwa Flash-Speicher, magnetische Medien, optische Medien usw., implementiert werden. Des Weiteren können die in der beispielhaften Datenspeicherung 260 gespeicherten Daten in einem beliebigen Datenformat vorliegen, wie etwa Binärdaten, kommagetrennte Daten, tabulatorgetrennte Daten, Structured-Query-Language(SQL)-Strukturen, Bilddaten usw.
  • 3 veranschaulicht Blockdiagramme 300, 350 der Inpainting-Schaltungsanordnung 130 und der Trainingsschaltungsanordnung 140 aus 2 konstruiert gemäß Lehren dieser Offenbarung. Die Inpainting-Schaltungsanordnung 130 beinhaltet eine beispielhafte Gemischte-Ansicht-Empfangsschaltungsanordnung 302, eine beispielhafte Ansichtssynthetisierungsschaltungsanordnung 304 und/oder eine beispielhafte Datenspeicherung 306. Die Gemischte-Ansicht-Empfangsschaltungsanordnung 302, die Ansichtssynthetisierungsschaltungsanordnung 304 und/oder die Datenspeicherung 306 stehen unter Verwendung eines beispielhaften Busses 308 in Kommunikation.
  • Die Gemischte-Ansicht-Empfangsschaltungsanordnung 302 empfängt die gemischte Ansicht, die durch die Mischschaltungsanordnung 120 erzeugt wird. Sobald die gemischte Ansicht empfangen wurde, synthetisiert die Ansichtssynthetisierungsschaltungsanordnung 304 die finale Ansicht, um jegliche fehlenden Daten einzufüllen, die in den ursprünglichen gemischten Bildern vorhanden sind (z. B. infolge von Okklusion/Nichtokklusion in den ursprünglichen Eingaben). In einigen Beispielen beinhaltet die Ansichtssynthetisierungsschaltungsanordnung 304 ein Generative Adversarial Network (GAN). Die Ansichtssynthetisierungsschaltungsanordnung 304 verwendet das GAN, um die Gebiete, in denen RGB-Informationen fehlen, durch Analysieren und Verwenden ihres Nachbarschaftsinhalts zu vervollständigen. Zum Beispiel empfängt die Ansichtssynthetisierungsschaltungsanordnung 304 eine Eingabe von der Trainingsschaltungsanordnung 140, wobei für jedes RGB-Bild Merkmalskorrespondenzen zwischen einem aktuellen RGB-Bild und den verbleibenden Bildern einer gegebenen Szene geschätzt werden können, wobei Nachbarn des RGB-Bildes mit Merkmalskorrespondenzzahlen assoziiert sind. Eine Trainingsrückmeldung, die von der Trainingsschaltungsanordnung 140 empfangen wird, kann verwendet werden, um die Genauigkeit der finalen Ansichtssynthese zu verbessern. Die Datenspeicherung 306 kann verwendet werden, um beliebige Informationen zu speichern, die mit der Gemischte-Ansicht-Empfangsschaltungsanordnung 302 und/oder der Ansichtssynthetisierungsschaltungsanordnung 304 assoziiert sind. Die beispielhafte Datenspeicherung 306 des veranschaulichten Beispiels von 3 kann durch einen beliebigen Speicher, eine beliebige Speicherungsvorrichtung und/oder eine beliebige Speicherungsplatte zum Speichern von Daten, wie etwa Flash-Speicher, magnetische Medien, optische Medien usw., implementiert werden. Des Weiteren können die in der beispielhaften Datenspeicherung 306 gespeicherten Daten in einem beliebigen Datenformat vorliegen, wie etwa Binärdaten, kommagetrennte Daten, tabulatorgetrennte Daten, Structured-Query-Language(SQL)-Strukturen, Bilddaten usw.
  • Die Trainingsschaltungsanordnung 140 beinhaltet eine beispielhafte Ground-Truth-Empfangsschaltungsanordnung 352, eine beispielhafte Bilddatenempfangsschaltungsanordnung 354, eine beispielhafte Datensatzerzeugungsschaltungsanordnung 356, eine beispielhafte Merkmalsschätzungsschaltungsanordnung 358 und/oder eine beispielhafte Datenspeicherung 360. Die Ground-Truth-Empfangsschaltungsanordnung 352, die Bilddatenempfangsschaltungsanordnung 354, die Datensatzerzeugungsschaltungsanordnung 356, die Merkmalsschätzungsschaltungsanordnung 358 und/oder die Datenspeicherung 360 stehen unter Verwendung eines beispielhaften Busses 362 in Kommunikation.
  • Die Ground-Truth-Empfangsschaltungsanordnung 352 empfängt Ground-Truth-Daten (z. B. Ground-Truth-Ansicht 148), die dem realen Bild entsprechen, das mit dem finalen beabsichtigten synthetisierten Bild (z. B. der finalen synthetisierten Ansicht 132) assoziiert ist, basierend auf der ursprünglichen Zielkamerapositionseingabe 106. Die Ground-Truth-Informationen, die durch die Ground-Truth-Empfangsschaltungsanordnung 352 empfangen werden, können beim Training des neuronalen Netzwerks der Mischschaltungsanordnung 120 und/oder des neuronalen Netzwerks der Inpainting-Schaltungsanordnung 130 verwendet werden. Die Bilddatenempfangsschaltungsanordnung 354 empfängt die finale(n) synthetisierte(n) Ansicht(en) von der Inpainting-Schaltungsanordnung 130 (z. B. finale synthetisierte Ansicht 132) und/oder die gemischte(n) Ansicht(en) von der Mischschaltungsanordnung 120. Die Datensatzerzeugungsschaltungsanordnung 356 erzeugt einen Datensatz für ein Ansichtssynthesetraining basierend auf spärlichen RGB-Umgebungsaufnahmen des Innen- und/oder Außenbereichs. Zum Beispiel identifiziert die Datensatzerzeugungsschaltungsanordnung 356 kameraintrinsische Parameter, Rotations-/Translationsmatrizen und/oder Tiefenkarten für jedes Bild, um eine Ansichtssynthese einschließlich Eingabeansichten und/oder der rekonstruierten neuartigen Ansicht zu erzeugen. Zusätzlich kann die Datensatzerzeugungsschaltungsanordnung 356 ein aktuelles RGB-Bild als die Ground-Truth verwenden, während Nachbarbilder aus einer Nachbarliste zufällig als die Eingabeansichten ausgewählt werden. In einigen Beispielen konstruiert die Datensatzerzeugungsschaltungsanordnung 356 einen Trainingsdatenpunkt unter Verwendung von Rotations-/Translationsmatrizen eines aktuellen RGB-Bildes als die Zielposition. Die Merkmalsschätzungsschaltungsanordnung 358 schätzt Merkmalskorrespondenzen zwischen einem aktuellen RGB-Bild und dem Rest der Bilder in einer gegebenen Szene. Zum Beispiel identifiziert die Merkmalsschätzungsschaltungsanordnung 358 benachbarte Ansichten eines gegebenen Bildes basierend auf assoziierten Merkmalskorrespondenzzahlen. Die Datenspeicherung 360 kann verwendet werden, um beliebige Informationen zu speichern, die mit der Ground-Truth-Empfangsschaltungsanordnung 352, der Bilddatenempfangsschaltungsanordnung 354, der Datensatzerzeugungsschaltungsanordnung 356 und/oder der Merkmalsschätzungsschaltungsanordnung 358 assoziiert sind. Die beispielhafte Datenspeicherung 360 des veranschaulichten Beispiels von 3 kann durch einen beliebigen Speicher, eine beliebige Speicherungsvorrichtung und/oder eine beliebige Speicherungsplatte zum Speichern von Daten, wie etwa Flash-Speicher, magnetische Medien, optische Medien usw., implementiert werden. Des Weiteren können die in der beispielhaften Datenspeicherung 360 gespeicherten Daten in einem beliebigen Datenformat vorliegen, wie etwa Binärdaten, kommagetrennte Daten, tabulatorgetrennte Daten, Structured-Query-Language(SQL)-Strukturen, Bilddaten usw.
  • In einigen Beispielen beinhaltet die Einrichtung Mittel zum Reprojizieren einer ersten Rot-Grün-Blau(RGB)-Tiefenansicht und einer zweiten RGB-Tiefenansicht. Zum Beispiel können die Mittel zum Reprojizieren durch die Vorverarbeitungsschaltungsanordnung 110 implementiert werden. In manchen Beispielen kann die Vorverarbeitungsschaltungsanordnung 110 durch maschinenausführbare Anweisungen implementiert werden, wie etwa jene, die durch zumindest Blöcke 408, 410 von 4 implementiert werden, die durch eine Prozessorschaltungsanordnung ausgeführt werden, die durch die beispielhafte Prozessorschaltungsanordnung 1212 von 12, die beispielhafte Prozessorschaltungsanordnung 1600 von 16 und/oder die beispielhafte Feldprogrammierbares-Gate-Array(FPGA)-Schaltungsanordnung 1700 von 17 implementiert werden kann. In anderen Beispielen wird die Vorverarbeitungsschaltungsanordnung 110 durch andere Hardwarelogikschaltungsanordnungen, hardwareimplementierte Zustandsmaschinen und/oder eine beliebige andere Kombination aus Hardware, Software und/oder Firmware implementiert. Zum Beispiel kann die Vorverarbeitungsschaltungsanordnung 110 durch mindestens eine oder mehrere Hardwareschaltungen (z. B. eine Prozessorschaltungsanordnung, eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, ein FPGA, eine anwendungsspezifische integrierte Schaltung (ASIC), einen Komparator, einen Operationsverstärker (Op-Amp), eine Logikschaltung usw.) implementiert werden, die zum Durchführen der entsprechenden Operation strukturiert sind, ohne Software oder Firmware auszuführen, aber andere Strukturen sind ebenfalls geeignet.
  • In einigen Beispielen beinhaltet die Einrichtung Mittel zum Kombinieren der ersten reprojizierten Ansicht und der zweiten reprojizierten Ansicht. Zum Beispiel können die Mittel zum Kombinieren durch die Mischschaltungsanordnung 120 implementiert werden. In einigen Beispielen kann die Mischschaltungsanordnung 120 durch maschinenausführbare Anweisungen implementiert werden, wie etwa jene, die durch zumindest Blöcke 502, 504, 506, 508 von 5 implementiert werden, die durch eine Prozessorschaltungsanordnung ausgeführt werden, die durch die beispielhafte Prozessorschaltungsanordnung 1312 aus 13, die beispielhafte Prozessorschaltungsanordnung 1600 aus 16 und/oder die beispielhafte Feldprogrammierbares-Gate-Array(FPGA)-Schaltungsanordnung 1700 aus 17 implementiert werden kann. In anderen Beispielen wird die Mischschaltungsanordnung 120 durch eine andere Hardwarelogikschaltungsanordnung, hardwareimplementierte Zustandsmaschinen und/oder eine beliebige andere Kombination aus Hardware, Software und/oder Firmware implementiert. Zum Beispiel kann die Mischschaltungsanordnung 120 durch mindestens eine oder mehrere Hardwareschaltungen (z. B. eine Prozessorschaltungsanordnung, eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, ein FPGA, eine anwendungsspezifische integrierte Schaltung (ASIC), einen Komparator, einen Operationsverstärker (Op-Amp), eine Logikschaltung usw.) implementiert werden, die zum Durchführen der entsprechenden Operation strukturiert sind, ohne Software oder Firmware auszuführen, aber andere Strukturen sind ebenfalls geeignet.
  • In einigen Beispielen beinhaltet die Einrichtung Mittel zum Erzeugen einer synthetisierten Ansicht mit sechs Freiheitsgraden der gemischten Ansichtsdaten. Zum Beispiel können die Mittel zum Erzeugen durch die Inpainting-Schaltungsanordnung 130 implementiert werden. In einigen Beispielen kann die Inpainting-Schaltungsanordnung 130 durch maschinenausführbare Anweisungen implementiert werden, wie etwa jene, die durch zumindest Blöcke 602, 604, 606 von 6 implementiert werden, die durch eine Prozessorschaltungsanordnung ausgeführt werden, die durch die beispielhafte Prozessorschaltungsanordnung 1412 aus 14, die beispielhafte Prozessorschaltungsanordnung 1600 aus 16 und/oder die beispielhafte Feldprogrammierbares-Gate-Array(FPGA)-Schaltungsanordnung 1700 aus 17 implementiert werden kann. In anderen Beispielen wird die Inpainting-Schaltungsanordnung 130 durch eine andere Hardwarelogikschaltungsanordnung, hardwareimplementierte Zustandsmaschinen und/oder eine beliebige andere Kombination aus Hardware, Software und/oder Firmware implementiert. Zum Beispiel kann die Inpainting-Schaltungsanordnung 130 durch mindestens eine oder mehrere Hardwareschaltungen (z. B. eine Prozessorschaltungsanordnung, eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, ein FPGA, eine anwendungsspezifische integrierte Schaltung (ASIC), einen Komparator, einen Operationsverstärker (Op-Amp), eine Logikschaltung usw.) implementiert werden, die zum Durchführen der entsprechenden Operation strukturiert sind, ohne Software oder Firmware auszuführen, aber andere Strukturen sind ebenfalls geeignet.
  • In einigen Beispielen beinhaltet die Einrichtung Mittel zum Trainieren eines ersten neuronalen Netzwerks und/oder eines zweiten neuronalen Netzwerks. Zum Beispiel können die Mittel zum Trainieren durch die Trainingsschaltungsanordnung 140 implementiert werden. In einigen Beispielen kann die Trainingsschaltungsanordnung 140 durch maschinenausführbare Anweisungen implementiert werden, wie etwa jene, die durch zumindest Blöcke 702, 704, 706, 708, 710, 712, 714 aus 7 implementiert werden, die durch eine Prozessorschaltungsanordnung ausgeführt werden, die durch die beispielhafte Prozessorschaltungsanordnung 1512 aus 15, die beispielhafte Prozessorschaltungsanordnung 1600 aus 16 und/oder die beispielhafte Feldprogrammierbares-Gate-Array(FPGA)-Schaltungsanordnung 1700 aus 17 implementiert werden kann. In anderen Beispielen wird die Trainingsschaltungsanordnung 140 durch eine andere Hardwarelogikschaltungsanordnung, hardwareimplementierte Zustandsmaschinen und/oder eine beliebige andere Kombination aus Hardware, Software und/oder Firmware implementiert. Zum Beispiel kann die Trainingsschaltungsanordnung 140 durch mindestens eine oder mehrere Hardwareschaltungen (z. B. eine Prozessorschaltungsanordnung, eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, ein FPGA, eine anwendungsspezifische integrierte Schaltung (ASIC), einen Komparator, einen Operationsverstärker (Op-Amp), eine Logikschaltung usw.) implementiert werden, die zum Durchführen der entsprechenden Operation strukturiert sind, ohne Software oder Firmware auszuführen, aber andere Strukturen sind ebenfalls geeignet.
  • Während eine beispielhafte Art und Weise zum Implementieren der Vorverarbeitungsschaltungsanordnung 110 aus 1 in 2 veranschaulicht ist, können ein(e) oder mehrere der Elemente, Prozesse und/oder Vorrichtungen, die in 2 veranschaulicht sind, kombiniert, geteilt, umgeordnet, weggelassen, eliminiert und/oder auf eine beliebige andere Weise implementiert werden. Ferner können die beispielhafte Bilddatenempfangsschaltungsanordnung 202, die beispielhafte Kameraparameterempfangsschaltungsanordnung 204, die beispielhafte Kamerapositionsempfangsschaltungsanordnung 206, die beispielhafte Reprojektionsschaltungsanordnung und/oder allgemeiner die beispielhafte Vorverarbeitungsschaltungsanordnung 110 aus 2, durch Hardware, Software, Firmware und/oder eine beliebige Kombination aus Hardware, Software und/oder Firmware implementiert werden. Somit könnte zum Beispiel eine beliebige der beispielhaften Bilddatenempfangsschaltungsanordnung 202, der beispielhaften Kameraparameterempfangsschaltungsanordnung 204, der beispielhaften Kamerapositionsempfangsschaltungsanordnung 206, der beispielhaften Reprojektionsschaltungsanordnung, und/oder allgemeiner die beispielhafte Vorverarbeitungsschaltungsanordnung 110 von 2, durch Prozessorschaltungsanordnung, analoge Schaltung(en), digitale Schaltung(en), Logikschaltung(en), programmierbare(n) Prozessor(en), programmierbare(n) Mikrocontroller, Grafikverarbeitungseinheit(en) (GPU(s)), Digitalsignalprozessor(en) (DSP(s)), anwendungsspezifische integrierte Schaltung(en) (ASIC(s)), programmierbare Logikvorrichtung(en) (PLD(s)) und/oder feldprogrammierbare Logikvorrichtung(en) (FPLD(s)), wie etwa feldprogrammierbare Gate-Arrays (FPGAs), implementiert werden. Beim Lesen eines beliebigen der Einrichtungs- oder Systemansprüche dieses Patents, um eine reine Software- und/oder Firmwareimplementierung abzudecken, wird mindestens eine der beispielhaften Bilddatenempfangsschaltungsanordnung 202, der beispielhaften Kameraparameterempfangsschaltungsanordnung 204, der beispielhaften Kamerapositionsempfangsschaltungsanordnung 206, der beispielhaften Reprojektionsschaltungsanordnung, und/oder allgemeiner die beispielhafte Vorverarbeitungsschaltungsanordnung 110 aus 2, hiermit ausdrücklich so definiert, dass sie eine nichtflüchtige computerlesbare Speicherungsvorrichtung oder Speicherungsplatte einschließt, wie etwa einen Speicher, eine Digital Versatile Disk (DVD), eine Compact Disk (CD), eine Blu-ray-Disk usw., einschließlich der Software und/oder Firmware. Ferner kann die beispielhafte Vorverarbeitungsschaltungsanordnung 110 aus 2 ein(e) oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu oder anstelle der in 2 veranschaulichten einschließen und/oder kann mehr als eine(s) von beliebigen oder allen der veranschaulichten Elemente, Prozesse und Vorrichtungen einschließen.
  • Während eine beispielhafte Art und Weise zum Implementieren der Mischschaltungsanordnung 120 aus 1 in 2 veranschaulicht ist, können ein(e) oder mehrere der Elemente, Prozesse und/oder Vorrichtungen, die in 2 veranschaulicht sind, kombiniert, geteilt, umgeordnet, weggelassen, eliminiert und/oder auf eine beliebige andere Weise implementiert werden. Ferner können die beispielhafte Reprojizierte-Ansicht-Empfangsschaltungsanordnung 252, die beispielhafte Gewichtungskartenerzeugungsschaltungsanordnung 254, die beispielhafte Kombinationsschaltungsanordnung 256, die beispielhafte Normierungsschaltungsanordnung, und/oder allgemeiner die beispielhafte Mischschaltungsanordnung 120 aus 1, durch Hardware, Software, Firmware und/oder eine beliebige Kombination aus Hardware, Software und/oder Firmware implementiert werden. Somit könnte zum Beispiel eine beliebige der beispielhaften Reprojizierte-Ansicht-Empfangsschaltungsanordnung 252, der beispielhaften Gewichtungskartenerzeugungsschaltungsanordnung 254, der beispielhaften Kombinationsschaltungsanordnung 256, der beispielhaften Normierungsschaltungsanordnung, und/oder allgemeiner die beispielhafte Mischschaltungsanordnung 120 von 1, durch Prozessorschaltungsanordnung, analoge Schaltung(en), digitale Schaltung(en), Logikschaltung(en), programmierbare(n) Prozessor(en), programmierbare(n) Mikrocontroller, Grafikverarbeitungseinheit(en) (GPU(s)), Digitalsignalprozessor(en) (DSP(s)), anwendungsspezifische integrierte Schaltung(en) (ASIC(s)), programmierbare Logikvorrichtung(en) (PLD(s)) und/oder feldprogrammierbare Logikvorrichtung(en) (FPLD(s)), wie etwa feldprogrammierbare Gate-Arrays (FPGAs), implementiert werden. Beim Lesen eines beliebigen der Einrichtungs- oder Systemansprüche dieses Patents, um eine reine Software- und/oder Firmwareimplementierung abzudecken, sind mindestens eine der beispielhaften Reprojizierte-Ansicht-Empfangsschaltungsanordnung 252, der beispielhaften Gewichtungskartenerzeugungsschaltungsanordnung 254, der beispielhaften Kombinationsschaltungsanordnung 256, der beispielhaften Normierungsschaltungsanordnung, und/oder allgemeiner die beispielhafte Mischschaltungsanordnung 120 aus 1, hiermit ausdrücklich so definiert, dass sie eine nichtflüchtige computerlesbare Speicherungsvorrichtung oder Speicherungsplatte einschließt, wie etwa einen Speicher, eine Digital Versatile Disk (DVD), eine Compact Disk (CD), eine Blu-ray-Disk usw., einschließlich der Software und/oder Firmware. Ferner kann die beispielhafte Mischschaltungsanordnung 120 aus 1 ein(e) oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu oder anstelle der in 2 veranschaulichten einschließen und/oder kann mehr als eine(s) von beliebigen oder allen der veranschaulichten Elemente, Prozesse und Vorrichtungen einschließen.
  • Während eine beispielhafte Art und Weise zum Implementieren der Inpainting-Schaltungsanordnung 130 aus 1 in 3 veranschaulicht ist, können ein(e) oder mehrere der Elemente, Prozesse und/oder Vorrichtungen, die in 3 veranschaulicht sind, kombiniert, geteilt, umgeordnet, weggelassen, eliminiert und/oder auf eine beliebige andere Weise implementiert werden. Ferner können die beispielhafte Gemischte-Ansicht-Empfangsschaltungsanordnung 302, die beispielhafte Ansichtssynthetisierungsschaltungsanordnung 304 und/oder allgemeiner die beispielhafte Inpainting-Schaltungsanordnung 130 aus 1, durch Hardware, Software, Firmware und/oder eine beliebige Kombination aus Hardware, Software und/oder Firmware implementiert werden. Somit könnte zum Beispiel eine beliebige der beispielhaften Gemischte-Ansicht-Empfangsschaltungsanordnung 302, der beispielhaften Ansichtssynthetisierungsschaltungsanordnung 304, und/oder allgemeiner die beispielhafte Inpainting-Schaltungsanordnung 130 von 1, durch Prozessorschaltungsanordnung, analoge Schaltung(en), digitale Schaltung(en), Logikschaltung(en), programmierbare(n) Prozessor(en), programmierbare(n) Mikrocontroller, Grafikverarbeitungseinheit(en) (GPU(s)), Digitalsignalprozessor(en) (DSP(s)), anwendungsspezifische integrierte Schaltung(en) (ASIC(s)), programmierbare Logikvorrichtung(en) (PLD(s)) und/oder feldprogrammierbare Logikvorrichtung(en) (FPLD(s)), wie etwa feldprogrammierbare Gate-Arrays (FPGAs), implementiert werden. Beim Lesen eines beliebigen der Einrichtung- oder Systemansprüche dieses Patents, um eine reine Software- und/oder Firmwareimplementierung abzudecken, sind mindestens eine der beispielhaften Gemischte-Ansicht-Empfangsschaltungsanordnung 302, der beispielhaften Ansichtssynthetisierungsschaltungsanordnung 304, und/oder allgemeiner die beispielhafte Inpainting-Schaltungsanordnung 130 aus 1, hiermit ausdrücklich so definiert, dass sie eine nichtflüchtige computerlesbare Speicherungsvorrichtung oder Speicherungsplatte einschließt, wie etwa einen Speicher, eine Digital Versatile Disk (DVD), eine Compact Disk (CD), eine Blu-ray-Disk usw., einschließlich der Software und/oder Firmware. Ferner kann die beispielhafte Inpainting-Schaltungsanordnung 130 aus 1 ein(e) oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu oder anstelle der in 3 veranschaulichten einschließen und/oder kann mehr als eine(s) von beliebigen oder allen der veranschaulichten Elemente, Prozesse und Vorrichtungen einschließen.
  • Während eine beispielhafte Art und Weise zum Implementieren der Trainingsschaltungsanordnung 140 aus 1 in 3 veranschaulicht ist, können ein(e) oder mehrere der Elemente, Prozesse und/oder Vorrichtungen, die in 3 veranschaulicht sind, kombiniert, geteilt, umgeordnet, weggelassen, eliminiert und/oder auf eine beliebige andere Weise implementiert werden. Ferner können die beispielhafte Ground-Truth-Empfangsschaltungsanordnung 352, die beispielhafte Bilddatenempfangsschaltungsanordnung 354, die beispielhafte Datensatzerzeugungsschaltungsanordnung 356, die beispielhafte Merkmalsschätzungsschaltungsanordnung 358, und/oder allgemeiner die beispielhafte Trainingsschaltungsanordnung 140 aus 1, durch Hardware, Software, Firmware und/oder eine beliebige Kombination aus Hardware, Software und/oder Firmware implementiert werden. Somit könnte zum Beispiel eine beliebige der beispielhaften Ground-Truth-Empfangsschaltungsanordnung 352, der beispielhaften Bilddatenempfangsschaltungsanordnung 354, der beispielhaften Datensatzerzeugungsschaltungsanordnung 356, der beispielhaften Merkmalsschätzungsschaltungsanordnung 358, und/oder allgemeiner die beispielhafte Trainingsschaltungsanordnung 140 von 1, durch Prozessorschaltungsanordnung, analoge Schaltung(en), digitale Schaltung(en), Logikschaltung(en), programmierbare(n) Prozessor(en), programmierbare(n) Mikrocontroller, Grafikverarbeitungseinheit(en) (GPU(s)), Digitalsignalprozessor(en) (DSP(s)), anwendungsspezifische integrierte Schaltung(en) (ASIC(s)), programmierbare Logikvorrichtung(en) (PLD(s)) und/oder feldprogrammierbare Logikvorrichtung(en) (FPLD(s)), wie etwa feldprogrammierbare Gate-Arrays (FPGAs), implementiert werden. Beim Lesen eines beliebigen der Einrichtungs- oder Systemansprüche dieses Patents, um eine reine Software- und/oder Firmwareimplementierung abzudecken, sind mindestens eine der beispielhaften Ground-Truth-Empfangsschaltungsanordnung 352, der beispielhaften Bilddatenempfangsschaltungsanordnung 354, der beispielhaften Datensatzerzeugungsschaltungsanordnung 356, der beispielhaften Merkmalsschätzschaltungsanordnung 358, und/oder allgemeiner die beispielhafte Trainingsschaltungsanordnung 140 aus 1, hiermit ausdrücklich so definiert, dass sie eine nichtflüchtige computerlesbare Speicherungsvorrichtung oder Speicherungsplatte einschließt, wie etwa einen Speicher, eine Digital Versatile Disk (DVD), eine Compact Disk (CD), eine Blu-ray-Disk usw., einschließlich der Software und/oder Firmware. Ferner kann die beispielhafte Trainingsschaltungsanordnung 140 aus 1 ein(e) oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu oder anstelle der in 3 veranschaulichten einschließen und/oder kann mehr als eine(s) von beliebigen oder allen der veranschaulichten Elemente, Prozesse und Vorrichtungen einschließen.
  • Ein Flussdiagramm, das beispielhafte Hardwarelogikschaltungsanordnungen, maschinenlesbare Anweisungen, hardwareimplementierte Zustandsmaschinen und/oder eine beliebige Kombination davon zum Implementieren der Vorverarbeitungsschaltungsanordnung 110 aus 2 repräsentiert, ist in 4 gezeigt. Die maschinenlesbaren Anweisungen können ein oder mehrere ausführbare Programme oder Teil(e) eines ausführbaren Programms zur Ausführung durch eine Prozessorschaltungsanordnung sein, wie etwa die Prozessorschaltungsanordnung 1212, die in der unten in Verbindung mit 12 besprochenen beispielhaften Prozessorplattform 1200 gezeigt ist, und/oder die unten in Verbindung mit den 16 und/oder 17 besprochene beispielhafte Prozessorschaltungsanordnung. Das Programm kann in Software umgesetzt sein, die auf einem oder mehreren nichtflüchtigen computerlesbaren Speicherungsmedien gespeichert ist, wie etwa einer CD, einer Diskette, einem Festplattenlaufwerk (HDD), einer DVD, einer Blu-Ray-Disk, einem flüchtigen Speicher (z. B. Direktzugriffsspeicher (RAM) eines beliebigen Typs usw.) oder einem nichtflüchtigen Speicher (z. B. FLASH-Speicher, einem HDD usw.), die mit einer Prozessorschaltungsanordnung assoziiert sind, die sich in einer oder mehreren Hardwarevorrichtungen befindet, jedoch könnten alternativ das gesamte Programm und/oder Teile davon durch eine oder mehrere andere Hardwarevorrichtungen als die Prozessorschaltungsanordnung ausgeführt werden und/oder in Firmware oder dedizierter Hardware umgesetzt werden. Die maschinenlesbaren Anweisungen können über mehrere Hardwarevorrichtungen verteilt und/oder durch zwei oder mehr Hardwarevorrichtungen
    (z. B. eine Server- und eine Client-Hardwarevorrichtung) ausgeführt werden. Die Client-Hardwarevorrichtung kann zum Beispiel durch eine Endpunkt-Client-Hardwarevorrichtung (z. B. eine Hardwarevorrichtung, die mit einem Benutzer assoziiert ist) oder eine Zwischen-Client-Hardwarevorrichtung (z. B. ein Funkzugangsnetz(RAN)-Gateway, das eine Kommunikation zwischen einem Server und einer Endpunkt-Client-Hardwarevorrichtung ermöglichen kann) implementiert werden. Gleichermaßen können die nichtflüchtigen computerlesbaren Speicherungsmedien ein oder mehrere Medien beinhalten, die sich in einer oder mehreren Hardwarevorrichtungen befinden. Obwohl das Beispielprogramm unter Bezugnahme auf das in 4 veranschaulichte Flussdiagramm beschrieben ist, können ferner viele andere Verfahren zur Implementierung der beispielhaften Vorverarbeitungsschaltungsanordnung 110 von 2 alternativ verwendet werden. Beispielsweise kann die Reihenfolge der Ausführung der Blöcke geändert werden und/oder manche der beschriebenen Blöcke können geändert, entfernt oder kombiniert werden. Zusätzlich oder alternativ dazu können beliebige oder alle der Blöcke durch eine oder mehrere Hardwareschaltungen (z. B. eine Prozessorschaltungsanordnung, eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, ein FPGA, eine ASIC, einen Komparator, einen Operationsverstärker (Op-Amp), eine Logikschaltung usw.) implementiert werden, die strukturiert sind, um die entsprechende Operation durchzuführen, ohne Software oder Firmware auszuführen. Die Prozessorschaltungsanordnung kann an unterschiedlichen Netzwerkstandorten verteilt und/oder lokal zu einer oder mehreren Hardwarevorrichtungen sein (z. B. ein Einzelkernprozessor (z. B. eine Einzelkern-Zentralprozessoreinheit (CPU)), ein Mehrkernprozessor (z. B. eine Mehrkern-CPU) usw.) in einer einzigen Maschine, mehreren Prozessoren, die über mehrere Server eines Server-Racks verteilt sind, mehreren Prozessoren, die über ein oder mehrere Server-Racks verteilt sind, einer CPU und/oder einem FPGA, die sich in demselben Package (z. B. demselben IC(Integrierte Schaltung)-Package oder in zwei oder mehr separaten Gehäusen usw. befinden).
  • Flussdiagramme, die beispielhafte Hardwarelogikschaltungsanordnungen, maschinenlesbare Anweisungen, hardwareimplementierte Zustandsmaschinen und/oder eine beliebige Kombination davon zum Implementieren der Mischschaltungsanordnung 120 aus 2 repräsentieren, sind in den 4, 5 gezeigt. Die maschinenlesbaren Anweisungen können ein oder mehrere ausführbare Programme oder Teil(e) eines ausführbaren Programms zur Ausführung durch eine Prozessorschaltungsanordnung sein, wie etwa die Prozessorschaltungsanordnung 1312, die in der unten in Verbindung mit 13 besprochenen beispielhaften Prozessorplattform 1300 gezeigt ist, und/oder die unten in Verbindung mit den 16 und/oder 17 besprochene beispielhafte Prozessorschaltungsanordnung. Das Programm kann in Software umgesetzt sein, die auf einem oder mehreren nichtflüchtigen computerlesbaren Speicherungsmedien gespeichert ist, wie etwa einer CD, einer Diskette, einem Festplattenlaufwerk (HDD), einer DVD, einer Blu-Ray-Disk, einem flüchtigen Speicher (z. B. Direktzugriffsspeicher (RAM) eines beliebigen Typs usw.) oder einem nichtflüchtigen Speicher (z. B. FLASH-Speicher, einem HDD usw.), die mit einer Prozessorschaltungsanordnung assoziiert sind, die sich in einer oder mehreren Hardwarevorrichtungen befindet, jedoch könnten alternativ das gesamte Programm und/oder Teile davon durch eine oder mehrere andere Hardwarevorrichtungen als die Prozessorschaltungsanordnung ausgeführt werden und/oder in Firmware oder dedizierter Hardware umgesetzt werden. Die maschinenlesbaren Anweisungen können über mehrere Hardwarevorrichtungen verteilt und/oder durch zwei oder mehr Hardwarevorrichtungen (z. B. eine Server- und eine Client-Hardwarevorrichtung) ausgeführt werden. Die Client-Hardwarevorrichtung kann zum Beispiel durch eine Endpunkt-Client-Hardwarevorrichtung (z. B. eine Hardwarevorrichtung, die mit einem Benutzer assoziiert ist) oder eine Zwischen-Client-Hardwarevorrichtung (z. B. ein Funkzugangsnetz(RAN)-Gateway, das eine Kommunikation zwischen einem Server und einer Endpunkt-Client-Hardwarevorrichtung ermöglichen kann) implementiert werden. Gleichermaßen können die nichtflüchtigen computerlesbaren Speicherungsmedien ein oder mehrere Medien beinhalten, die sich in einer oder mehreren Hardwarevorrichtungen befinden. Obwohl das Beispielprogramm unter Bezugnahme auf das in 4, 5 veranschaulichte Flussdiagramm beschrieben ist, können ferner viele andere Verfahren zur Implementierung der beispielhaften Mischschaltungsanordnung 120 von 2 alternativ verwendet werden. Beispielsweise kann die Reihenfolge der Ausführung der Blöcke geändert werden und/oder manche der beschriebenen Blöcke können geändert, entfernt oder kombiniert werden. Zusätzlich oder alternativ dazu können beliebige oder alle der Blöcke durch eine oder mehrere Hardwareschaltungen (z. B. eine Prozessorschaltungsanordnung, eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, ein FPGA, eine ASIC, einen Komparator, einen Operationsverstärker (Op-Amp), eine Logikschaltung usw.) implementiert werden, die strukturiert sind, um die entsprechende Operation durchzuführen, ohne Software oder Firmware auszuführen. Die Prozessorschaltungsanordnung kann an unterschiedlichen Netzwerkstandorten verteilt und/oder lokal zu einer oder mehreren Hardwarevorrichtungen sein (z. B. ein Einzelkernprozessor (z. B. eine Einzelkern-Zentralprozessoreinheit (CPU)), ein Mehrkernprozessor (z. B. eine Mehrkern-CPU) usw.) in einer einzigen Maschine, mehreren Prozessoren, die über mehrere Server eines Server-Racks verteilt sind, mehreren Prozessoren, die über ein oder mehrere Server-Racks verteilt sind, einer CPU und/oder einem FPGA, die sich in demselben Package (z. B. demselben IC(Integrierte Schaltung)-Package oder in zwei oder mehr separaten Gehäusen usw. befinden).
  • Flussdiagramme, die beispielhafte Hardwarelogikschaltungsanordnungen, maschinenlesbare Anweisungen, hardwareimplementierte Zustandsmaschinen und/oder eine beliebige Kombination davon zum Implementieren der Inpainting-Schaltungsanordnung 130 aus 3 repräsentieren, sind in den 4, 6 gezeigt. Die maschinenlesbaren Anweisungen können ein oder mehrere ausführbare Programme oder Teil(e) eines ausführbaren Programms zur Ausführung durch eine Prozessorschaltungsanordnung sein, wie etwa die Prozessorschaltungsanordnung 1412, die in der unten in Verbindung mit 14 besprochenen beispielhaften Prozessorplattform 1400 gezeigt ist, und/oder die unten in Verbindung mit den 16 und/oder 17 besprochene beispielhafte Prozessorschaltungsanordnung. Das Programm kann in Software umgesetzt sein, die auf einem oder mehreren nichtflüchtigen computerlesbaren Speicherungsmedien gespeichert ist, wie etwa einer CD, einer Diskette, einem Festplattenlaufwerk (HDD), einer DVD, einer Blu-Ray-Disk, einem flüchtigen Speicher (z. B. Direktzugriffsspeicher (RAM) eines beliebigen Typs usw.) oder einem nichtflüchtigen Speicher (z. B. FLASH-Speicher, einem HDD usw.), die mit einer Prozessorschaltungsanordnung assoziiert sind, die sich in einer oder mehreren Hardwarevorrichtungen befindet, jedoch könnten alternativ das gesamte Programm und/oder Teile davon durch eine oder mehrere andere Hardwarevorrichtungen als die Prozessorschaltungsanordnung ausgeführt werden und/oder in Firmware oder dedizierter Hardware umgesetzt werden. Die maschinenlesbaren Anweisungen können über mehrere Hardwarevorrichtungen verteilt und/oder durch zwei oder mehr Hardwarevorrichtungen (z. B. eine Server- und eine Client-Hardwarevorrichtung) ausgeführt werden. Die Client-Hardwarevorrichtung kann zum Beispiel durch eine Endpunkt-Client-Hardwarevorrichtung (z. B. eine Hardwarevorrichtung, die mit einem Benutzer assoziiert ist) oder eine Zwischen-Client-Hardwarevorrichtung (z. B. ein Funkzugangsnetz(RAN)-Gateway, das eine Kommunikation zwischen einem Server und einer Endpunkt-Client-Hardwarevorrichtung ermöglichen kann) implementiert werden. Gleichermaßen können die nichtflüchtigen computerlesbaren Speicherungsmedien ein oder mehrere Medien beinhalten, die sich in einer oder mehreren Hardwarevorrichtungen befinden. Obwohl das Beispielprogramm unter Bezugnahme auf das in 4, 6 veranschaulichte Flussdiagramm beschrieben ist, können ferner viele andere Verfahren zur Implementierung der beispielhaften Inpainting-Schaltungsanordnung 130 von 3 alternativ verwendet werden. Beispielsweise kann die Reihenfolge der Ausführung der Blöcke geändert werden und/oder manche der beschriebenen Blöcke können geändert, entfernt oder kombiniert werden. Zusätzlich oder alternativ dazu können beliebige oder alle der Blöcke durch eine oder mehrere Hardwareschaltungen (z. B. eine Prozessorschaltungsanordnung, eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, ein FPGA, eine ASIC, einen Komparator, einen Operationsverstärker (Op-Amp), eine Logikschaltung usw.) implementiert werden, die strukturiert sind, um die entsprechende Operation durchzuführen, ohne Software oder Firmware auszuführen. Die Prozessorschaltungsanordnung kann an unterschiedlichen Netzwerkstandorten verteilt und/oder lokal zu einer oder mehreren Hardwarevorrichtungen sein (z. B. ein Einzelkernprozessor (z. B. eine Einzelkern-Zentralprozessoreinheit (CPU)), ein Mehrkernprozessor (z. B. eine Mehrkern-CPU) usw.) in einer einzigen Maschine, mehreren Prozessoren, die über mehrere Server eines Server-Racks verteilt sind, mehreren Prozessoren, die über ein oder mehrere Server-Racks verteilt sind, einer CPU und/oder einem FPGA, die sich in demselben Package (z. B. demselben IC(Integrierte Schaltung)-Package oder in zwei oder mehr separaten Gehäusen usw. befinden).
  • Flussdiagramme, die beispielhafte Hardwarelogikschaltungsanordnungen, maschinenlesbare Anweisungen, hardwareimplementierte Zustandsmaschinen und/oder eine beliebige Kombination davon zum Implementieren der Trainingsschaltungsanordnung 140 aus 3 repräsentieren, sind in den 4, 7 gezeigt. Die maschinenlesbaren Anweisungen können ein oder mehrere ausführbare Programme oder Teil(e) eines ausführbaren Programms zur Ausführung durch eine Prozessorschaltungsanordnung sein, wie etwa die Prozessorschaltungsanordnung 1512, die in der unten in Verbindung mit 15 besprochenen beispielhaften Prozessorplattform 1500 gezeigt ist, und/oder die unten in Verbindung mit den 16 und/oder 17 besprochene beispielhafte Prozessorschaltungsanordnung. Das Programm kann in Software umgesetzt sein, die auf einem oder mehreren nichtflüchtigen computerlesbaren Speicherungsmedien gespeichert ist, wie etwa einer CD, einer Diskette, einem Festplattenlaufwerk (HDD), einer DVD, einer Blu-Ray-Disk, einem flüchtigen Speicher (z. B. Direktzugriffsspeicher (RAM) eines beliebigen Typs usw.) oder einem nichtflüchtigen Speicher (z. B. FLASH-Speicher, einem HDD usw.), die mit einer Prozessorschaltungsanordnung assoziiert sind, die sich in einer oder mehreren Hardwarevorrichtungen befindet, jedoch könnten alternativ das gesamte Programm und/oder Teile davon durch eine oder mehrere andere Hardwarevorrichtungen als die Prozessorschaltungsanordnung ausgeführt werden und/oder in Firmware oder dedizierter Hardware umgesetzt werden. Die maschinenlesbaren Anweisungen können über mehrere Hardwarevorrichtungen verteilt und/oder durch zwei oder mehr Hardwarevorrichtungen (z. B. eine Server- und eine Client-Hardwarevorrichtung) ausgeführt werden. Die Client-Hardwarevorrichtung kann zum Beispiel durch eine Endpunkt-Client-Hardwarevorrichtung (z. B. eine Hardwarevorrichtung, die mit einem Benutzer assoziiert ist) oder eine Zwischen-Client-Hardwarevorrichtung (z. B. ein Funkzugangsnetz(RAN)-Gateway, das eine Kommunikation zwischen einem Server und einer Endpunkt-Client-Hardwarevorrichtung ermöglichen kann) implementiert werden. Gleichermaßen können die nichtflüchtigen computerlesbaren Speicherungsmedien ein oder mehrere Medien beinhalten, die sich in einer oder mehreren Hardwarevorrichtungen befinden. Obwohl das Beispielprogramm unter Bezugnahme auf das in 4, 7 veranschaulichte Flussdiagramm beschrieben ist, können ferner viele andere Verfahren zur Implementierung der beispielhaften Trainingsschaltungsanordnung 140 von 3 alternativ verwendet werden. Beispielsweise kann die Reihenfolge der Ausführung der Blöcke geändert werden und/oder manche der beschriebenen Blöcke können geändert, entfernt oder kombiniert werden. Zusätzlich oder alternativ dazu können beliebige oder alle der Blöcke durch eine oder mehrere Hardwareschaltungen (z. B. eine Prozessorschaltungsanordnung, eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, ein FPGA, eine ASIC, einen Komparator, einen Operationsverstärker (Op-Amp), eine Logikschaltung usw.) implementiert werden, die strukturiert sind, um die entsprechende Operation durchzuführen, ohne Software oder Firmware auszuführen. Die Prozessorschaltungsanordnung kann an unterschiedlichen Netzwerkstandorten verteilt und/oder lokal zu einer oder mehreren Hardwarevorrichtungen sein (z. B. ein Einzelkernprozessor (z. B. eine Einzelkern-Zentralprozessoreinheit (CPU)), ein Mehrkernprozessor (z. B. eine Mehrkern-CPU) usw.) in einer einzigen Maschine, mehreren Prozessoren, die über mehrere Server eines Server-Racks verteilt sind, mehreren Prozessoren, die über ein oder mehrere Server-Racks verteilt sind, einer CPU und/oder einem FPGA, die sich in demselben Package (z. B. demselben IC(Integrierte Schaltung)-Package oder in zwei oder mehr separaten Gehäusen usw. befinden).
  • Die hierin beschriebenen maschinenlesbaren Anweisungen können in einem komprimierten Format und/oder einem verschlüsselten Format und/oder einem fragmentierten Format und/oder einem kompilierten Format und/oder einem ausführbaren Format und/oder einem verpackten Format usw. gespeichert sein. Die hierin beschriebenen maschinenlesbaren Anweisungen können als Daten oder Datenstruktur (z. B. als Teile von Anweisungen, Code, Repräsentationen von Code usw.) gespeichert sein, die genutzt werden können, um maschinenlesbare Anweisungen zu erstellen, herzustellen und/oder zu erzeugen. Zum Beispiel können die maschinenlesbaren Anweisungen fragmentiert und auf einer oder mehreren Speicherungsvorrichtungen und/oder Rechenvorrichtungen (z. B. Servern) gespeichert sein, die sich an denselben oder unterschiedlichen Orten eines Netzwerks oder einer Sammlung von Netzwerken (z. B. in der Cloud, in Edge-Vorrichtungen usw.) befinden. Die maschinenlesbaren Anweisungen können eines oder mehrere von Installation, Modifikation, Anpassung, Aktualisierung, Kombinierung, Ergänzung, Konfigurierung, Entschlüsselung, Dekomprimierung, Entpackung, Verteilung, Neuzuordnung, Kompilierung usw. erfordern, um sie direkt durch eine Rechenvorrichtung und/oder eine andere Maschine lesbar, interpretierbar und/oder ausführbar zu machen. Zum Beispiel können die maschinenlesbaren Anweisungen in mehreren Teilen gespeichert sein, die einzeln komprimiert, verschlüsselt und/oder auf separaten Rechenvorrichtungen gespeichert sind, wobei die Teile, wenn sie entschlüsselt, dekomprimiert und/oder kombiniert werden, einen Satz maschinenausführbarer Anweisungen bilden, die eine oder mehrere Operationen implementieren, die zusammen ein Programm, wie etwa das hierin beschriebene, bilden können.
  • In einem anderen Beispiel können die maschinenlesbaren Anweisungen in einem Zustand gespeichert sein, in dem sie durch eine Prozessorschaltungsanordnung gelesen werden können, aber ein Hinzufügen einer Bibliothek (z. B. einer Dynamic Link Library (DLL)), eines Softwareentwicklungskits (SDK), einer Anwendungsprogrammierungsschnittstelle (API) usw. erfordern, um die maschinenlesbaren Anweisungen auf einer bestimmten Rechenvorrichtung oder einer anderen Vorrichtung auszuführen. In einem anderen Beispiel müssen die maschinenlesbaren Anweisungen möglicherweise konfiguriert werden (z. B. Einstellungen gespeichert, Daten eingegeben, Netzwerkadressen aufgezeichnet werden usw.), bevor die maschinenlesbaren Anweisungen und/oder das (die) entsprechende(n) Programm(e) vollständig oder teilweise ausgeführt werden können. Somit können maschinenlesbare Medien, wie hierin verwendet, maschinenlesbare Anweisungen und/oder Programm(e) unabhängig von dem bestimmten Format oder Zustand der maschinenlesbaren Anweisungen und/oder Programm(e), wenn sie gespeichert sind oder sich anderweitig im Ruhe- oder im Transportzustand befinden, beinhalten.
  • Die hierin beschriebenen maschinenlesbaren Anweisungen können durch eine beliebige vergangene, aktuelle oder zukünftige Befehlssprache, Skriptsprache, Programmiersprache usw. repräsentiert sein. Beispielsweise können die maschinenlesbaren Anweisungen unter Verwendung beliebiger der folgenden Sprachen repräsentiert sein: C, C++, Java, C#, Perl, Python, JavaScript, HyperText Markup Language (HTML), Structured Query Language (SQL), Swift usw.
  • Wie oben erwähnt, können die beispielhaften Operationen von 10 unter Verwendung ausführbarer Anweisungen (z. B. computer- und/oder maschinenlesbarer Anweisungen) implementiert werden, die auf einem oder mehreren nichtflüchtigen computer- und/oder maschinenlesbaren Medien gespeichert sind, wie etwa optischen Speicherungsvorrichtungen, magnetischen Speicherungsvorrichtungen, einem HDD, einem Flash-Speicher, einem Nur-Lese-Speicher (ROM), einer CD, einer DVD, einem Cache, einem RAM eines beliebigen Typs, einem Register und/oder einer beliebigen anderen Speicherungsvorrichtung oder Speicherungsplatte, auf der Informationen für eine beliebige Dauer (z. B. für längere Zeiträume, permanent, kurzzeitig, zum temporären Puffern und/oder zum Cachen der Informationen) gespeichert sind. Wie hierin verwendet, sind die Begriffe „nichtflüchtiges computerlesbares Medium“ und „nichtflüchtiges computerlesbares Speicherungsmedium“ ausdrücklich so definiert, dass sie jede Art von computerlesbarer Speicherungsvorrichtung und/oder Speicherplatte einschließen und die Propagation von Signalen und Übertragungsmedien ausschließen.
  • „Beinhaltend“ und „umfassend“ (und alle Formen und Zeitformen davon) werden hierin als offene Begriffe verwendet. Wenn somit ein Anspruch eine beliebige Form von „beinhalten“ oder „umfassen“ (z. B. umfasst, beinhaltet, umfassend, beinhaltend, aufweisend usw.) als eine Präambel oder innerhalb einer Anspruchsrezitation einer beliebigen Art einsetzt, versteht es sich somit, dass zusätzliche Elemente, Begriffe usw. vorhanden sein können, ohne außerhalb des Schutzumfangs des entsprechenden Anspruchs oder der entsprechenden Rezitation zu fallen. Wie hierin verwendet, ist, wenn die Formulierung „mindestens“ als der Übergangsausdruck in zum Beispiel einer Präambel eines Anspruchs verwendet wird, dies auf die gleiche Weise ein offener Ausdruck wie der Ausdruck „umfassend“ und „beinhaltend“ ein offener Ausdruck ist. Der Begriff „und/oder“ bezieht sich, wenn er zum Beispiel in einer Form wie etwa A, B und/oder C verwendet wird, auf eine beliebige Kombination oder Teilmenge von A, B, C, wie etwa (1) A allein, (2) B allein, (3) C allein, (4) A mit B, (5) A mit C, (6) B mit C oder (7) A mit B und mit C. Wie hierin im Kontext der Beschreibung von Strukturen, Komponenten, Gegenständen, Objekten und/oder Dingen verwendet, soll der Ausdruck „mindestens eines von A und B“ auf Implementierungen verweisen, die beliebige von (1) mindestens einem A, (2) mindestens einem B oder (3) mindestens einem A und mindestens einem B beinhalten. Gleichermaßen, wie hierin im Kontext der Beschreibung von Strukturen, Komponenten, Gegenständen, Objekten und/oder Dingen verwendet, soll der Ausdruck „mindestens eines von A oder B“ auf Implementierungen verweisen, die beliebige von (1) mindestens einem A, (2) mindestens ein B oder (3) mindestens einem A und mindestens einem B beinhalten. Wie hierin im Kontext der Beschreibung der Leistungsfähigkeit oder Ausführung von Prozessen, Anweisungen, Handlungen, Aktivitäten und/oder Schritten verwendet, soll sich der Ausdruck „mindestens eines von A und B“ auf Implementierungen beziehen, die beliebige von (1) mindestens einem A, (2) mindestens einem B, oder (3) mindestens einem A und mindestens einem B beinhalten. Ähnlich, wie hierin im Kontext der Beschreibung der Leistungsfähigkeit oder Ausführung von Prozessen, Anweisungen, Handlungen, Aktivitäten und/oder Schritten verwendet, soll sich der Ausdruck „mindestens eines von A oder B“ auf Implementierungen beziehen, die beliebige von (1) mindestens einem A, (2) mindestens einem B oder (3) mindestens einem A und mindestens einem B beinhalten.
  • Wie hierin verwendet, schließen Bezugnahmen im Singular (z. B. „ein“, „eine“, „erste/r/s“, „zweite/r/s“ usw.) eine Mehrzahl nicht aus. Der Begriff „ein“ Objekt, wie hierin verwendet, verweist auf eines oder mehrere dieses Objekts. Die Begriffe „ein“, „ein oder mehrere“ und „mindestens ein“ werden hierin austauschbar verwendet. Wenngleich einzeln aufgelistet, können ferner eine Vielzahl von Mitteln, Elementen oder Verfahrenshandlungen durch z. B. dieselbe Entität oder dasselbe Objekt implementiert werden. Zusätzlich dazu, obwohl einzelne Merkmale in unterschiedlichen Beispielen oder Ansprüchen enthalten sein können, können diese möglicherweise kombiniert werden, und der Einschluss in verschiedenen Beispielen oder Ansprüchen deutet nicht an, dass eine Kombination von Merkmalen nicht machbar und/oder vorteilhaft ist.
  • 4 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Anweisungen 400 repräsentiert, die durch eine beispielhafte Prozessorschaltungsanordnung ausgeführt werden können, um die Vorverarbeitungsschaltungsanordnung 110, die Mischschaltungsanordnung 120, die Inpainting-Schaltungsanordnung 130 und/oder die Trainingsschaltungsanordnung 140 von 1 zu implementieren. Im Beispiel von 1 empfängt die Vorverarbeitungsschaltungsanordnung 110 Eingabedaten, die der RGBD-Eingabe 102 (Block 402), der Eingabe 106 der virtuellen Zielkameraposition (Block 404) und/oder der Kameraparametereingabe 104 (Block 406) entsprechen, über die Bilddatenempfangsschaltungsanordnung 202, die Kameraparameterempfangsschaltungsanordnung 204 und/oder die Kamerapositionsempfangsschaltungsanordnung 206 aus 2. Die Vorverarbeitungsschaltungsanordnung 110 verwendet die empfangenen Eingabedaten, um eine oder mehrere Bildeingaben 102 auf die virtuelle Zielkameraposition zu reprojizieren (Block 408). Zum Beispiel beinhalten die RGBD-Eingabe(n) 102 kameraintrinsische/- extrinsische Parameter. In einigen Beispielen werden die RGBD-Eingabe(n) 102 aus unterschiedlichen Winkeln erhalten. Im Beispiel von 4 reprojiziert die Vorverarbeitungsschaltungsanordnung 110 das eine oder die mehreren Eingabebilder unter Verwendung der Reprojektionsschaltungsanordnung 208 auf die Zielposition, wodurch beispielhafte reprojizierte Ansichten (z. B. reprojizierte Ansicht(en) 112 aus 1) bereitgestellt werden (Block 410). Zum Beispiel sind die reprojizierten Ansichten auf die Zielkameraposition fokussiert, wobei die RGBD-Ansichten, die anfänglich der Vorverarbeitungsschaltungsanordnung 110 bereitgestellt wurden, reprojiziert werden, um die gleiche Anzahl reprojizierter Ansichten zu ergeben, wie in dem Beispiel von 1 gezeigt. Die reprojizierte(n) Ansicht(en) 112 dienen als Eingabe in die Mischschaltungsanordnung 120 von 1 über die Reprojizierte-Ansicht-Empfangsschaltungsanordnung 252 aus 2. Die Mischschaltungsanordnung 120 erzeugt eine gemischte Ansicht basierend auf Gewichtungskarten, wie in Verbindung mit 5 beschrieben (Block 412). Zum Beispiel gibt die Mischschaltungsanordnung 120 die gemischte Ansicht 128 aus 1 aus. In einigen Beispielen fehlen in der gemischten Ansicht 128 Daten, die aufgrund von Okklusion/Nichtokklusion (z. B. dunkle Gebiete ohne Bildinformationen, wie in den reprojizierten Ansichten 852, 854, 856, 858 von 8 gezeigt) in den ursprünglichen Eingaben keine RGB-Zuweisung aufweisen. Im Beispiel von 4 empfängt die Inpainting-Schaltungsanordnung 130 die Eingabeinformationen der gemischten Ansicht 128 unter Verwendung der Gemischte-Ansicht-Empfangsschaltungsanordnung 302, um zu bestimmen, ob es irgendwelche fehlenden Gebiete in der gemischten Ansicht 128 und/oder der einen oder den mehreren individuellen reprojizierten Ansichten 112 gibt (Block 414). Falls bestimmt wird, dass Daten fehlen, fährt die Inpainting-Schaltungsanordnung 130 fort, die fehlenden RGB-Daten unter Verwendung der Ansichtssynthetisierungsschaltungsanordnung 304 aus 3 einzufüllen, wie in Verbindung mit 6 beschrieben (Block 416). Falls die Inpainting-Schaltungsanordnung 130 bestimmt, dass keine RGB-Daten fehlen, geht die Steuerung zu der Trainingsschaltungsanordnung 140 über (Block 418). Gleichermaßen geht die Steuerung, sobald die fehlenden RGB-Daten über die Inpainting-Schaltungsanordnung 130 bereitgestellt wurden, auch zu der Trainingsschaltungsanordnung 140 über (Block 418). In einigen Beispielen kann die Trainingsschaltungsanordnung 140 Training durchführen, um die Sechs-Freiheitsgrade(DOF)-Ausgabegenauigkeit zu verbessern, indem das eine oder die mehreren neuronalen Netzwerke unter Verwendung synthetisierter Ansichten trainiert werden (Block 420), wie in Verbindung mit 7 beschrieben. In einigen Beispielen kann die Ausgabe von der Trainingsschaltungsanordnung 140 der Mischschaltungsanordnung 120 und/oder der Inpainting-Schaltungsanordnung 130 bereitgestellt werden, wie in Verbindung mit 1 gezeigt. Sobald das Training abgeschlossen ist, wird die Inpainting-Schaltungsanordnung 130 verwendet, um eine finale Ansicht zu erzeugen (z. B. ein Synthesevideoergebnis einer spezifischen Bewegungstrajektorie folgend) (Block 422).
  • 5 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Anweisungen 412 repräsentiert, die durch eine beispielhafte Prozessorschaltungsanordnung ausgeführt werden können, um die Mischschaltungsanordnung 120 aus 1 und/oder 2 zu implementieren. Im Beispiel von 5 empfängt die Mischschaltungsanordnung 120 eine oder mehrere reprojizierte Ansichten 112 von der Vorverarbeitungsschaltungsanordnung 110 über die Reprojizierte-Ansicht-Empfangsschaltungsanordnung 252 aus 2. Die Gewichtungskartenerzeugungsschaltungsanordnung 254 erzeugt eine oder mehrere Gewichtungskarten, wie in Verbindung mit der einen oder den mehreren Gewichtungskarten 124 aus 1 gezeigt (Block 502). Zum Beispiel kann die Gewichtungskartenerzeugungsschaltungsanordnung 254 die Verwendung eines faltenden neuronalen Netzwerks (CNN) beinhalten. In einigen Beispielen verwendet die Gewichtungskartenerzeugungsschaltungsanordnung 254 eine oder mehrere Skip-Verbindungen, um eine oder mehrere Gewichtungskarten (z. B. Gewichtungskarten 124) zu lernen. In einigen Beispielen folgt die Normierungsschaltungsanordnung 258 einer oder mehreren Faltungsschichten des Netzwerks mit einer Gruppennormierung und einer undichten rektifizierten Lineareinheit (ReLU). In einigen Beispielen folgt die Normierungsschaltungsanordnung 258 der letzten Faltungsschicht des Netzwerks mit einer Gruppennormierungs- und/oder Sigmoid-Einheit, um den Ausgabeparameterwertebereich für die Gewichtungskarte auf [0,1] zu beschränken (Block 504). In einigen Beispielen kombiniert die Kombinationsschaltungsanordnung 256 die reprojizierten Ansichten (z. B. reprojizierte Ansichten 112), um die gemischte Ansicht 128 zu erhalten (Block 506). Die Mischschaltungsanordnung 120 gibt dann die gemischte Ansicht zur weiteren Verarbeitung durch die Inpainting-Schaltungsanordnung 130 aus (Block 508).
  • 6 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Anweisungen 416 repräsentiert, die durch eine beispielhafte Prozessorschaltungsanordnung ausgeführt werden können, um die Inpainting-Schaltungsanordnung 130 aus 1 und/oder 3 zu implementieren. Im Beispiel von 6 empfängt die Gemischte-Ansicht-Empfangsschaltungsanordnung 302 die gemischte Ansichtsausgabe, die durch die Mischschaltungsanordnung 120 erzeugt wird (z. B. gemischte Ansicht 128 aus 1). Die Gemischte-Ansicht-Empfangsschaltungsanordnung 302 beurteilt ein oder mehrere benachbarte Pixel der Ansichten (Block 602). Zum Beispiel kann die Inpainting-Schaltungsanordnung 130 ein Generative Adversarial Network (GAN) beinhalten, sodass gemischte reprojizierte Ansichten mit Gebieten, die fehlende RGB-Informationen beinhalten, durch Analysieren und Verwenden ihres Nachbarschaftsinhalts ordnungsgemäß vervollständigt werden können. Die Ansichtssynthetisierungsschaltungsanordnung 304 erzeugt eine synthetisierte Ansicht des inpainted Inhalts, um die finale synthetisierte Ansicht 132 aus 1 zu ergeben (Block 604). Von daher kann die finale synthetisierte Ansicht ferner durch die Trainingsschaltungsanordnung 140 verarbeitet werden, um die Genauigkeit der Ausgabe im Vergleich zu den Ground-Truth-Daten (z. B. erhalten aus der Ground-Truth-Ansicht 148 von 1) zu verbessern. Von daher füllt die Inpainting-Schaltungsanordnung 130 fehlende Daten der gemischten Ansichten ein und vervollständigt die virtuelle Zielansicht (z. B. die finale synthetisierte Ansicht 132) durch Analysieren und/oder Verwenden von Nachbarschaftsinformationen, die mit den fehlenden Daten der reprojizierten Ansichten 112 assoziiert sind.
  • 7 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Anweisungen 420 repräsentiert, die durch eine beispielhafte Prozessorschaltungsanordnung ausgeführt werden können, um die Trainingsschaltungsanordnung 140 aus 1 und/oder 3 zu implementieren. Im Beispiel von 7 empfängt die Ground-Truth-Empfangsschaltungsanordnung 352 die Ground-Truth-Daten (z. B. Ground-Truth-Ansicht 148) (Block 702). Die Bilddatenempfangsschaltungsanordnung 354 erhält synthetisierte Ansichtsdaten von der Inpainting-Schaltungsanordnung 130 (Block 704) und/oder eine oder mehrere gemischte Ansichten von der Mischschaltungsanordnung 120. In einigen Beispielen trainiert die Trainingsschaltungsanordnung 140 das eine oder die mehreren Netzwerke unter Verwendung des L1-Verlusts (Block 706). Zum Beispiel verwendet die Trainingsschaltungsanordnung 140 einen Intermedia-L1-Verlust zwischen der Ground-Truth und der gemischten Ansicht, nachdem die Mischschaltungsanordnung 120 die Eingabeansichten verarbeitet hat, wie in dem Beispiel von 1 gezeigt. Um die Auswirkung der Gebiete ohne RGB-Informationen zu eliminieren, kann die Trainingsschaltungsanordnung 140 eine Maske für die gemischte Ansicht beibehalten, um nur den L1-Verlust auf das gültige Inhaltsgebiet zu berücksichtigen. Sobald die Trainingsschaltungsanordnung 140 die finale synthetisierte Ansicht erhält (Block 708), kann das Training unter Verwendung des L1-Verlusts, des VGG-basierten Wahrnehmungsverlusts und/oder des GAN-Verlusts durchgeführt werden, um das Synthesenetzwerk weiter zu trainieren, nachdem die Ansichtsverarbeitung unter Verwendung der Inpainting-Schaltungsanordnung 130 abgeschlossen ist (Block 710). Falls die synthetisierte(n) Ansicht(en) nicht verfügbar sind, stellt die Trainingsschaltungsanordnung 140 eine Trainingsrückmeldung an die Mischschaltungsanordnung 120 bereit (Block 714). Sobald das Training unter Verwendung des L1-Verlusts, des VGG-basierten Wahrnehmungsverlusts und/oder des GAN-Verlusts abgeschlossen ist, stellt die Trainingsschaltungsanordnung 140 eine Rückmeldung an die Inpainting-Schaltungsanordnung bereit (Block 712). In einigen Beispielen beinhaltet die Trainingsschaltungsanordnung 140 eine Datensatzerzeugungsschaltungsanordnung 356 zum Erzeugen eines Datensatzes für ein Ansichtssynthesetraining basierend auf spärlichen RGB-Umgebungsaufnahmen in Innen- und/oder Außenbereichen. Zum Beispiel können kameraintrinsische Parameter, Rotations-/Translationsmatrizen und/oder Tiefenkarten für jedes Bild so identifiziert werden, dass das RGB-Bild mit seiner Tiefenkarte und/oder seinen Kameraparametern in eine Binärdatei gepackt werden kann. Die Datensatzerzeugungsschaltungsanordnung 356 kann verwendet werden, um eine Ansichtssynthese einschließlich Eingabeansichten und/oder der rekonstruierten neuartigen Ansicht zu erzeugen. Zum Beispiel kann für jedes RGB-Bild die Merkmalsschätzungsschaltungsanordnung 358 verwendet werden, um Merkmalskorrespondenzen zwischen einem aktuellen RGB-Bild und dem Rest der Bilder in einer gegebenen Szene zu schätzen. Zum Beispiel können Nachbarn eines gegebenen Bildes basierend auf den Merkmalskorrespondenzzahlen identifiziert werden. In einigen Beispielen kann die Datensatzerzeugungsschaltungsanordnung 356 ein aktuelles RGB-Bild als die Ground-Truth verwenden, während Nachbarbilder (z. B. vier Bilder) zufällig aus der Nachbarliste (die z. B. insgesamt acht Bilder enthält) als die Eingabeansichten ausgewählt werden, während die Rotations-/Translationsmatrizen des aktuellen RGB-Bildes als die Zielposition verwendet werden können, um einen Trainingsdatenpunkt zu konstruieren.
  • 8 ist eine beispielhafte Veranschaulichung von Ground-Truth-Daten 800 und reprojizierten Ansichten 850. Im Beispiel von 8 werden die Ground-Truth-Daten 800 (z. B. entsprechend der Ground-Truth-Ansicht 148 von 1) und beispielhafte reprojizierte Ansichten 850 aus spärlichen Rot-Grün-Blau(RGB)-Tiefe-Eingaben erhalten, die einem tiefen neuronalen Netzwerk zum Synthetisieren von 6-DOF-Ansichten (z. B. dem Ende-zu-Ende-Deep-Learning-Netzwerk 100 aus 1) bereitgestellt werden. Im Beispiel von 8 beinhalten RGBD-Eingaben kameraintrinsische/-extrinsische Parameter und/oder eine virtuelle Zielposition mit Orientierung. Zum Beispiel können vier RGBD-Eingaben aus unterschiedlichen Winkeln genommen werden. Es kann jedoch eine beliebige Anzahl von RGBD-Eingaben bereitgestellt werden und/oder eine beliebige Positionierung der Ansichten, die mit den RGBD-Eingaben assoziiert sind, kann verwendet werden. Unter Verwendung hierin offenbarter Verfahren und Einrichtungen kann eine virtuelle neuartige Ansicht synthetisiert werden, als ob die Ansicht von dem Zielort aus aufgenommen worden wäre. Wie in den hierin offenbarten Verfahren und Einrichtungen beschrieben, kann der Trainings-/Inferenzprozess Ende-zu-Ende ohne separate Vorverarbeitungs- und/oder Nachverarbeitungsmodule durchgeführt werden. Zum Beispiel kann ein Trainings-/Testdatenvorprozessor in die Deep-Learning-Pipeline zur Datenflussverwaltung integriert werden. Von daher können RGBD-Eingaben und ihre Kameraparameter einem Datenvorprozessor zur Ansichtsreprojektion bereitgestellt werden (z. B. der Vorverarbeitungsschaltungsanordnung 110 aus 1). In einigen Beispielen können kameraintrinsische Parameter, kameraextrinsische Parameter und/oder Tiefenkarten verwendet werden, um eine virtuelle Ansicht an der Zielposition durch RGB-Pixel-Remapping zu rekonstruieren. Im Beispiel von 8 werden Eingabebilder auf die Zielposition reprojiziert (z. B. eine Ansicht zwischen zwei Objekten von Interesse), wodurch beispielhafte reprojizierte Ansichten 852, 854, 856, 858 bereitgestellt werden. In einigen Beispielen können die reprojizierten Ansichten 852, 854, 856, 858 fehlende Daten beinhalten, die aufgrund von Okklusion/Nichtokklusion in den ursprünglichen Eingaben (z. B. dunkle Gebiete ohne Bildinformationen, wie in den reprojizierten Ansichten 852, 854, 856, 858 gezeigt) keine RGB-Zuweisung aufweisen. Im Beispiel von 8 dienen die reprojizierten Ansichten 852, 854, 856, 858 als Eingaben für das tiefe neutrale Netzwerk (z. B. das faltende neuronale Netzwerk der Mischschaltungsanordnung 120 aus 1), wodurch ermöglicht wird, dass diese reprojizierten Ansichten 852, 854, 856, 858 durch den Trainingsprozess des neuronalen Netzwerks weiter verfeinert werden. In einigen Beispielen wird ein Generative Adversarial Network (GAN) verwendet, um die reprojizierten Ansichten 852, 854, 856, 858 unter Verwendung der Inpainting-Schaltungsanordnung 130 zu mischen und/oder an diesen ein Inpainting durchzuführen. Zum Beispiel kann eine gestapelte Netzwerkstruktur mit zwei Stufen so implementiert werden, dass die erste Stufe ein Mischnetzwerk ist (z. B. unter Verwendung der Mischschaltungsanordnung 120 aus 1) das verwendet wird, um vier Gewichtungskarten (z. B. Gewichtungskarten 124) zu schätzen und/oder vier reprojizierte Ansichten 852, 854, 856, 858 zu einer finalen Ansicht (z. B. gemischte Ansicht 128) gemäß den erzeugten Gewichtungskarten zu kombinieren. In einigen Beispielen beinhaltet die gestapelte Netzwerkstruktur eine zweite Stufe, die als ein Inpainting-Netzwerk dient (z. B. unter Verwendung der Inpainting-Schaltungsanordnung 130 aus 1), das fehlende Daten der gemischten Ansichten einfüllt und die virtuelle Zielansicht (z. B. die finale synthetisierte Ansicht 132) durch Analysieren und/oder Verwenden von Nachbarschaftsinformationen, die mit den fehlenden Daten der reprojizierten Ansichten 852, 854, 856, 858 assoziiert sind, vervollständigt.
  • 9 ist ein Beispiel für Ground-Truth-Daten 900 und Trainingseingabeansichten 950, die als Teil des Trainings verwendet werden können, das durch die Trainingsschaltungsanordnung 140 von 1 durchgeführt wird. Im Beispiel von 9 kann das Training an einem Datensatz mit 70561 Trainingsdatenpunkten, einem Adam-Optimierer, einer Lernrate von 0,001 und einer Batch-Größe von 1 durchgeführt werden. Es kann jedoch auch eine beliebige andere Menge an Datenpunkten, Optimierererauswahl, Lernrate und/oder Batch-Größe verwendet werden. Um zum Beispiel einen Datensatz für ein Ansichtssynthesetraining zu erzeugen, können insgesamt 20 Szenen spärlicher RGB-Umgebungsaufnahmen in Innen-/Außenbereichen gesammelt werden. Für jede Szene kann eine universelle Structure-from-Motion(SFM)- und Multi-View-Stereo(MVS)-Pipeline mit einer Grafik- und Befehlszeilenschnittstelle (z. B. COLMAP) verwendet werden, um die kameraintrinsischen Parameter, Rotations-/Translationsmatrizen und/oder Tiefenkarten für jedes Bild zu schätzen. In einigen Beispielen wird das RGB-Bild mit seiner Tiefenkarte und seinen Kameraparametern in eine Binärdatei gepackt, wie in Verbindung mit 10 gezeigt. Um den Trainingsdatenpunkt zu konstruieren, wird eine Ansichtssynthesebeziehung benötigt, die die Eingabeansichten (z. B. beispielhafte Eingabeansichten 952, 954, 956, 958) und die rekonstruierte neuartige Ansicht enthält. Insbesondere können für jedes RGB-Bild (z. B. aus insgesamt vier Bildern) Merkmalskorrespondenzen zwischen einem aktuellen RGB-Bild und den verbleibenden Bildern einer gegebenen Szene geschätzt werden, wobei Nachbarn des RGB-Bildes (z. B. insgesamt acht Nachbarn) mit Merkmalskorrespondenzzahlen assoziiert sind. Das aktuelle RGB-Bild (z. B. das beispielhafte Bild 902) kann als die Ground-Truth-Daten 900 verwendet werden, wobei zufällig vier Nachbarbilder aus der Liste mit acht Nachbarn als die Eingabeansichten ausgewählt werden. In einigen Beispielen können die Rotations-/Translationsmatrizen des aktuellen RGB-Bildes 902 als die Zielposition zum Konstruieren eines Trainingsdatenpunktes ausgewählt werden, wie in Verbindung mit 10 gezeigt.
  • 10 ist ein Beispiel für die Datensatzerzeugung 1000, die während des Trainings und der Identifikation eines Zielorts verwendet wird. Im Beispiel von 10 kann ein Satz binärer Bilddateien 1002 identifiziert und als Eingabe während der Identifikation einer Synthesebeziehungsdatei 1004 verwendet werden. Zusätzlich kann eine beispielhafte Zielortsdatei 1006 verwendet werden, um eine Zielposition und/oder eine Zielrotation zu bestimmen. In einigen Beispielen kann die Trainingsschaltungsanordnung 140 aus 1 70561 Synthesetrainingsdatenpunkte erzeugen und eine JavaScript-Object-Notation-Datei (JSON-Datei) verwenden, um mit der Trainings-Pipeline zu kommunizieren. In einigen Beispielen weisen die gesammelten Szenen unterschiedliche Auflösungen auf (z. B. Auflösungen im Bereich von 1228x816 bis 3264x4912). In einigen Beispielen kann die Trainingsschaltungsanordnung 140 aus 1 zufällig 640x640-Patches aus dem ursprünglichen Datenpunkt zuschneiden. In einigen Beispielen kann jeder Datenpunkt 4 RGBD-Eingaben beinhalten. Angesichts dessen, dass jeder Datenpunkt einen Ansichtsreprojektionsvorverarbeitungsschritt durchlaufen muss (z. B. unter Verwendung der Vorprozessorschaltungsanordnung 110 aus 1), muss der Datenfluss sorgfältig für effizientes Training konzipiert werden. Zum Beispiel ist das Verwenden eines einzelnen Patches mit großer Auflösung für das Training viel effizienter als das Verwenden mehrerer Patches mit kleiner Auflösung. Daher kann die Eingabe in das neuronale Netzwerk Daten mit einem einzelnen Patch mit 4 gestapelten reprojizierten Ansichten sein, wobei jede Ansicht eine Auflösung von 640x640 aufweist.
  • 11 ist eine beispielhafte Veranschaulichung 1100 von Kameraanordnungsorten 1102, spärlichen Eingabeansichten 1110 und finalen synthetisierten Ansichten 1112, die unter Verwendung des faltenden Ende-zu-Ende-Deep-Learning-Netzwerks 100 aus 1 erhalten werden. Im Beispiel von 11 kann das Deep-Learning-Netzwerk 100 aus 1 unter Verwendung verschiedener Datensätze evaluiert werden, einschließlich eines Simulationsdatensatzes, der aus einem spärlichen Kameraarrayerfassten Datensatz erfasst wird, eines Moving-Picture-Experts-Group(MPEG)-Ansichtssynthesedatensatzes und/oder eines Google-Soft-3D-Rekonstruktionsdatensatzes. In einigen Beispielen werden virtuelle Blickpunkt-Bewegungstrajektorien mit einer Sequenz von Zielpositionen und/oder Rotationsmatrizen erzeugt. Die Bewegungstrajektorien können als die Zielortseingaben für die neuartige Ansichtssynthese verwendet werden, die durch das Deep-Learning-Netzwerk 100 aus 1 durchgeführt wird. Im Beispiel von 11 werden insgesamt 15 Kameras (z. B. an beispielhaften Kamerapositionen 1104, 1106, 110) in einen großen Raum platziert, um unterschiedliche Seiten eines Objekts und/oder einer Person von Interesse (z. B. Yoga-Trainer) zu erfassen. Im Beispiel von 11 ist eine beispielhafte spärliche Eingabeansicht 1110 gezeigt (z. B. von insgesamt 15 spärlichen Eingabeansichten). Im Beispiel von 11 ist die synthetisierte Ausgabe 1112 als ein Bild gezeigt. Die finale Ausgabe ist jedoch ein Synthesevideoergebnis, das einer spezifischen Bewegungstrajektorie folgt. Zusätzlich, wenn derselbe RGB-Datensatz mit unterschiedlicher Tiefenkarteneingabe, die durch das Deep-Learning-Netzwerk 100 aus 1 erzeugt wird, mit einem RGB-Datensatz mit Tiefenkarteneingabe verglichen wird, die durch andere Verfahren (z. B. ein Facebook-pixFlow-Verfahren, ein Realitätserfassungsverfahren usw.) erzeugt wird, können alle drei Tiefenkarten angemessene neuartige Ansichtssyntheseergebnisse erzeugen. Die Tiefenkarten, die unter Verwendung hierin offenbarter Verfahren und Einrichtungen erzeugt werden, ergeben jedoch eine verbesserte Synthesequalität mit einer reduzierten Anzahl von Artefakten. Von daher ermöglichen hierin offenbarte Verfahren und Einrichtungen die Erzeugung virtueller neuartiger Blickpunkte, die weit von dem ursprünglichen Kameraport liegen. In einigen Beispielen können Syntheseartefakte, die zu beschränkten Eingabeansichtsinformationen führen, durch Erhöhen der Eingabeansichtsdatenmenge reduziert werden.
  • 12 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform 1200, die eine Prozessorschaltungsanordnung beinhaltet, die strukturiert ist, um die beispielhaften maschinenlesbaren Anweisungen von 4 zum Implementieren der Vorverarbeitungsschaltungsanordnung 110 aus 2 auszuführen. Die Prozessorplattform 1200 kann zum Beispiel ein Server, ein Personal Computer, eine Workstation, eine selbstlernende Maschine (z. B. ein neuronales Netzwerk), eine Mobilvorrichtung (z. B. ein Mobiltelefon, ein Smartphone, ein Tablet wie etwa ein iPad™), ein Personal Digital Assistant (PDA), ein Internetgerät, ein DVD-Spieler, ein CD-Spieler, ein digitaler Videorecorder, ein Blu-Ray-Spieler, eine Spielekonsole, ein persönlicher Videorecorder, eine Set-Top-Box, ein Headset (z. B. ein Augmented-Reality(AR)-Headset, ein Virtual-Reality(VR)-Headset usw.) oder eine andere Wearable-Vorrichtung oder eine beliebige andere Art von Rechenvorrichtung sein.
  • Die Prozessorplattform 1200 des veranschaulichten Beispiels beinhaltet die Prozessorschaltungsanordnung 1212. Die Prozessorschaltungsanordnung 1212 des veranschaulichten Beispiels ist Hardware. Zum Beispiel kann die Prozessorschaltungsanordnung 1212 durch eine oder mehrere integrierte Schaltungen, Logikschaltungen, FPGAs, Mikroprozessoren, CPUs, GPUs, DSPs und/oder Mikrocontroller einer beliebigen gewünschten Familie oder eines beliebigen gewünschten Herstellers implementiert werden. Die Prozessorschaltungsanordnung 1212 kann durch eine oder mehrere halbleiterbasierte (z. B. siliziumbasierte) Vorrichtungen implementiert werden. In diesem Beispiel implementiert die Prozessorschaltungsanordnung 1212 eine Bilddatenempfangsschaltungsanordnung 202, die Kameraparameterempfangsschaltungsanordnung 204, die Kamerapositionsempfangsschaltungsanordnung 206 und/oder die Reprojektionsschaltungsanordnung 208.
  • Die Prozessorschaltungsanordnung 1212 des veranschaulichten Beispiels beinhaltet einen lokalen Speicher 1213 (z. B. einen Cache, Register usw.). Die Prozessorschaltungsanordnung 1212 des veranschaulichten Beispiels befindet sich durch einen Bus 1218 in Kommunikation mit einem Hauptspeicher, der einen flüchtigen Speicher 1214 und einen nichtflüchtigen Speicher 1216 beinhaltet. Der flüchtige Speicher 1214 kann durch SDRAM (synchroner dynamischer Direktzugriffsspeicher), DRAM (dynamischer Direktzugriffsspeicher), RDRAM® (RAMBUS® dynamischer Direktzugriffsspeicher) und/oder eine beliebige andere Art von RAM-Vorrichtung implementiert werden. Der nichtflüchtige Speicher 1216 kann durch Flash-Speicher und/oder eine beliebige andere gewünschte Art von Speichervorrichtung implementiert werden. Der Zugriff auf den Hauptspeicher 1214, 1216 des veranschaulichten Beispiels wird durch eine Speichersteuerung 1217 gesteuert.
  • Die Prozessorplattform 1200 des veranschaulichten Beispiels beinhaltet auch eine Schnittstellenschaltungsanordnung 1220. Die Schnittstellenschaltungsanordnung 1220 kann durch Hardware gemäß einer beliebigen Art von Schnittstellenstandard implementiert werden, wie etwa einer Ethernet-Schnittstelle, einer USB(Universal Serial Bus)-Schnittstelle, einer Bluetooth®-Schnittstelle, einer NFC(Nahfeldkommunikation)-Schnittstelle, einer PCI-Schnittstelle und/oder einer PCIe-Schnittstelle.
  • Bei dem veranschaulichten Beispiel sind eine oder mehrere Eingabevorrichtungen 1222 mit der Schnittstellenschaltungsanordnung 1220 verbunden. Die eine oder die mehreren Eingabevorrichtungen 1222 ermöglichen einem Benutzer, Daten und/oder Befehle in die Prozessorschaltungsanordnung 1212 einzugeben. Die eine oder die mehreren Eingabevorrichtungen 1222 können zum Beispiel durch einen Audiosensor, ein Mikrofon, eine Kamera (Standbild oder Video), eine Tastatur, eine Taste, eine Maus, einen Touchscreen, ein Trackpad, einen Trackball, eine Isopoint-Vorrichtung und/oder ein Spracherkennungssystem implementiert werden.
  • Eine oder mehrere Ausgabevorrichtungen 1224 sind auch mit der Schnittstellenschaltungsanordnung 1220 des veranschaulichten Beispiels verbunden. Die Ausgabevorrichtungen 1224 können zum Beispiel durch Anzeigevorrichtungen (z. B. eine Leuchtdiode (LED), eine organische Leuchtdiode (OLED), eine Flüssigkristallanzeige (LCD), eine Kathodenstrahlröhren(CRT)-Anzeige, eine In-Place-Switching(IPS)-Anzeige, einen Touchscreen usw.), eine taktile Ausgabevorrichtung, einen Drucker und/oder einen Lautsprecher implementiert werden. Die Schnittstellenschaltungsanordnung 1220 des veranschaulichten Beispiels beinhaltet somit typischerweise eine Grafiktreiberkarte, einen Grafiktreiberchip und/oder eine Grafikprozessorschaltungsanordnung, wie etwa eine GPU.
  • Die Schnittstellenschaltungsanordnung 1220 des veranschaulichten Beispiels beinhaltet auch eine Kommunikationsvorrichtung, wie etwa einen Sender, einen Empfänger, einen Sendeempfänger, ein Modem, ein Heim-Gateway, einen drahtlosen Zugangspunkt und/oder eine Netzwerkschnittstelle, um den Austausch von Daten mit externen Maschinen (z. B. Rechenvorrichtungen einer beliebigen Art) durch ein Netzwerk 1226 zu ermöglichen. Die Kommunikation kann zum Beispiel durch eine Ethernet-Verbindung, eine DSL-Verbindung (DSL: Digital Subscriber Line), eine Telefonleitungsverbindung, ein Koaxialkabelsystem, ein Satellitensystem, ein drahtloses Sichtliniensystem, ein Mobilfunksystem, eine optische Verbindung usw. erfolgen.
  • Die Prozessorplattform 1200 des veranschaulichten Beispiels beinhaltet auch eine oder mehrere Massenspeicherungsvorrichtungen 1228 zum Speichern von Software und/oder Daten. Beispiele für solche Massenspeicherungsvorrichtungen 1228 beinhalten magnetische Speicherungsvorrichtungen, optische Speicherungsvorrichtungen, Diskettenlaufwerke, HDDs, CDs, Blu-Ray-Disk-Laufwerke, RAID-Systeme (RAID: Redundant Array of Independent Disks), Solid-State-Speicherungsvorrichtungen, wie etwa Flash-Speichervorrichtungen, und DVD-Laufwerke.
  • Die maschinenausführbaren Anweisungen 1232, die durch die maschinenlesbaren Anweisungen der 4 implementiert werden können, können in der Massenspeicherungsvorrichtung 1228, in dem flüchtigen Speicher 1214, in dem nichtflüchtigen Speicher 1216 und/oder auf einem entfernbaren nichtflüchtigen computerlesbaren Speicherungsmedium, wie etwa einer CD oder DVD, gespeichert sein.
  • 13 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform 1300, die eine Prozessorschaltungsanordnung beinhaltet, die strukturiert ist, um die beispielhaften maschinenlesbaren Anweisungen von 5 zum Implementieren der Mischschaltungsanordnung 120 aus 2 auszuführen. Die Prozessorplattform 1300 kann zum Beispiel ein Server, ein Personal Computer, eine Workstation, eine selbstlernende Maschine (z. B. ein neuronales Netzwerk), eine Mobilvorrichtung (z. B. ein Mobiltelefon, ein Smartphone, ein Tablet wie etwa ein iPad™), ein Personal Digital Assistant (PDA), ein Internetgerät, ein DVD-Spieler, ein CD-Spieler, ein digitaler Videorecorder, ein Blu-Ray-Spieler, eine Spielekonsole, ein persönlicher Videorecorder, eine Set-Top-Box, ein Headset (z. B. ein Augmented-Reality(AR)-Headset, ein Virtual-Reality(VR)-Headset usw.) oder eine andere Wearable-Vorrichtung oder eine beliebige andere Art von Rechenvorrichtung sein.
  • Die Prozessorplattform 1300 des veranschaulichten Beispiels beinhaltet die Prozessorschaltungsanordnung 1312. Die Prozessorschaltungsanordnung 1312 des veranschaulichten Beispiels ist Hardware. Zum Beispiel kann die Prozessorschaltungsanordnung 1312 durch eine oder mehrere integrierte Schaltungen, Logikschaltungen, FPGAs, Mikroprozessoren, CPUs, GPUs, DSPs und/oder Mikrocontroller einer beliebigen gewünschten Familie oder eines beliebigen gewünschten Herstellers implementiert werden. Die Prozessorschaltungsanordnung 1312 kann durch eine oder mehrere halbleiterbasierte (z. B. siliziumbasierte) Vorrichtungen implementiert werden. In diesem Beispiel implementiert die Prozessorschaltungsanordnung 1312 eine Reprojizierte-Ansicht-Empfangsschaltungsanordnung 252, eine Gewichtungskartenerzeugungsschaltungsanordnung 254, eine Kombinationsschaltungsanordnung 256 und/oder eine Normierungsschaltungsanordnung 258.
  • Die Prozessorschaltungsanordnung 1312 des veranschaulichten Beispiels beinhaltet einen lokalen Speicher 1313 (z. B. einen Cache, Register usw.). Die Prozessorschaltungsanordnung 1312 des veranschaulichten Beispiels befindet sich durch einen Bus 1318 in Kommunikation mit einem Hauptspeicher, der einen flüchtigen Speicher 1314 und einen nichtflüchtigen Speicher 1316 beinhaltet. Der flüchtige Speicher 1314 kann durch SDRAM (synchroner dynamischer Direktzugriffsspeicher), DRAM (dynamischer Direktzugriffsspeicher), RDRAM® (RAMBUS® dynamischer Direktzugriffsspeicher) und/oder eine beliebige andere Art von RAM-Vorrichtung implementiert werden. Der nichtflüchtige Speicher 1216 kann durch Flash-Speicher und/oder eine beliebige andere gewünschte Art von Speichervorrichtung implementiert werden. Der Zugriff auf den Hauptspeicher 1314, 1316 des veranschaulichten Beispiels wird durch eine Speichersteuerung 1317 gesteuert.
  • Die Prozessorplattform 1300 des veranschaulichten Beispiels beinhaltet auch eine Schnittstellenschaltungsanordnung 1320. Die Schnittstellenschaltungsanordnung 1320 kann durch Hardware gemäß einer beliebigen Art von Schnittstellenstandard implementiert werden, wie etwa einer Ethernet-Schnittstelle, einer USB(Universal Serial Bus)-Schnittstelle, einer Bluetooth®-Schnittstelle, einer NFC(Nahfeldkommunikation)-Schnittstelle, einer PCI-Schnittstelle und/oder einer PCIe-Schnittstelle.
  • Bei dem veranschaulichten Beispiel sind eine oder mehrere Eingabevorrichtungen 1322 mit der Schnittstellenschaltungsanordnung 1320 verbunden. Die eine oder die mehreren Eingabevorrichtungen 1322 ermöglichen einem Benutzer, Daten und/oder Befehle in die Prozessorschaltungsanordnung 1312 einzugeben. Die eine oder die mehreren Eingabevorrichtungen 1322 können zum Beispiel durch einen Audiosensor, ein Mikrofon, eine Kamera (Standbild oder Video), eine Tastatur, eine Taste, eine Maus, einen Touchscreen, ein Trackpad, einen Trackball, eine Isopoint-Vorrichtung und/oder ein Spracherkennungssystem implementiert werden.
  • Eine oder mehrere Ausgabevorrichtungen 1324 sind auch mit der Schnittstellenschaltungsanordnung 1320 des veranschaulichten Beispiels verbunden. Die Ausgabevorrichtungen 1324 können zum Beispiel durch Anzeigevorrichtungen (z. B. eine Leuchtdiode (LED), eine organische Leuchtdiode (OLED), eine Flüssigkristallanzeige (LCD), eine Kathodenstrahlröhren(CRT)-Anzeige, eine In-Place-Switching(IPS)-Anzeige, einen Touchscreen usw.), eine taktile Ausgabevorrichtung, einen Drucker und/oder einen Lautsprecher implementiert werden. Die Schnittstellenschaltungsanordnung 1320 des veranschaulichten Beispiels beinhaltet somit typischerweise eine Grafiktreiberkarte, einen Grafiktreiberchip und/oder eine Grafikprozessorschaltungsanordnung, wie etwa eine GPU.
  • Die Schnittstellenschaltungsanordnung 1320 des veranschaulichten Beispiels beinhaltet auch eine Kommunikationsvorrichtung, wie etwa einen Sender, einen Empfänger, einen Sendeempfänger, ein Modem, ein Heim-Gateway, einen drahtlosen Zugangspunkt und/oder eine Netzwerkschnittstelle, um den Austausch von Daten mit externen Maschinen (z. B. Rechenvorrichtungen einer beliebigen Art) durch ein Netzwerk 1326 zu ermöglichen. Die Kommunikation kann zum Beispiel durch eine Ethernet-Verbindung, eine DSL-Verbindung (DSL: Digital Subscriber Line), eine Telefonleitungsverbindung, ein Koaxialkabelsystem, ein Satellitensystem, ein drahtloses Sichtliniensystem, ein Mobilfunksystem, eine optische Verbindung usw. erfolgen.
  • Die Prozessorplattform 1300 des veranschaulichten Beispiels beinhaltet auch eine oder mehrere Massenspeicherungsvorrichtungen 1328 zum Speichern von Software und/oder Daten. Beispiele für solche Massenspeicherungsvorrichtungen 1328 beinhalten magnetische Speicherungsvorrichtungen, optische Speicherungsvorrichtungen, Diskettenlaufwerke, HDDs, CDs, Blu-Ray-Disk-Laufwerke, RAID-Systeme (RAID: Redundant Array of Independent Disks), Solid-State-Speicherungsvorrichtungen, wie etwa Flash-Speichervorrichtungen, und DVD-Laufwerke.
  • Die maschinenausführbaren Anweisungen 1332, die durch die maschinenlesbaren Anweisungen der 5 implementiert werden können, können in der Massenspeicherungsvorrichtung 1328, in dem flüchtigen Speicher 1314, in dem nichtflüchtigen Speicher 1316 und/oder auf einem entfernbaren nichtflüchtigen computerlesbaren Speicherungsmedium, wie etwa einer CD oder DVD, gespeichert sein.
  • 14 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform 1400, die eine Prozessorschaltungsanordnung beinhaltet, die strukturiert ist, um die beispielhaften maschinenlesbaren Anweisungen von 6 zum Implementieren der Inpainting-Schaltungsanordnung 130 aus 3 auszuführen. Die Prozessorplattform 1400 kann zum Beispiel ein Server, ein Personal Computer, eine Workstation, eine selbstlernende Maschine (z. B. ein neuronales Netzwerk), eine Mobilvorrichtung (z. B. ein Mobiltelefon, ein Smartphone, ein Tablet wie etwa ein iPad™), ein Personal Digital Assistant (PDA), ein Internetgerät, ein DVD-Spieler, ein CD-Spieler, ein digitaler Videorecorder, ein Blu-Ray-Spieler, eine Spielekonsole, ein persönlicher Videorecorder, eine Set-Top-Box, ein Headset (z. B. ein Augmented-Reality(AR)-Headset, ein Virtual-Reality(VR)-Headset usw.) oder eine andere Wearable-Vorrichtung oder eine beliebige andere Art von Rechenvorrichtung sein.
  • Die Prozessorplattform 1400 des veranschaulichten Beispiels beinhaltet die Prozessorschaltungsanordnung 1412. Die Prozessorschaltungsanordnung 1412 des veranschaulichten Beispiels ist Hardware. Zum Beispiel kann die Prozessorschaltungsanordnung 1412 durch eine oder mehrere integrierte Schaltungen, Logikschaltungen, FPGAs, Mikroprozessoren, CPUs, GPUs, DSPs und/oder Mikrocontroller einer beliebigen gewünschten Familie oder eines beliebigen gewünschten Herstellers implementiert werden. Die Prozessorschaltungsanordnung 1412 kann durch eine oder mehrere halbleiterbasierte (z. B. siliziumbasierte) Vorrichtungen implementiert werden. In diesem Beispiel implementiert die Prozessorschaltungsanordnung 1412 die Gemischte-Ansicht-Empfangsschaltungsanordnung 302 und/oder die Ansichtssynthetisierungsschaltungsanordnung 304.
  • Die Prozessorschaltungsanordnung 1412 des veranschaulichten Beispiels beinhaltet einen lokalen Speicher 1413 (z. B. einen Cache, Register usw.). Die Prozessorschaltungsanordnung 1412 des veranschaulichten Beispiels befindet sich durch einen Bus 1418 in Kommunikation mit einem Hauptspeicher, der einen flüchtigen Speicher 1414 und einen nichtflüchtigen Speicher 1416 beinhaltet. Der flüchtige Speicher 1414 kann durch SDRAM (synchroner dynamischer Direktzugriffsspeicher), DRAM (dynamischer Direktzugriffsspeicher), RDRAM® (RAMBUS® dynamischer Direktzugriffsspeicher) und/oder eine beliebige andere Art von RAM-Vorrichtung implementiert werden. Der nichtflüchtige Speicher 1416 kann durch Flash-Speicher und/oder eine beliebige andere gewünschte Art von Speichervorrichtung implementiert werden. Der Zugriff auf den Hauptspeicher 1414, 1416 des veranschaulichten Beispiels wird durch eine Speichersteuerung 1417 gesteuert.
  • Die Prozessorplattform 1400 des veranschaulichten Beispiels beinhaltet auch eine Schnittstellenschaltungsanordnung 1420. Die Schnittstellenschaltungsanordnung 1420 kann durch Hardware gemäß einer beliebigen Art von Schnittstellenstandard implementiert werden, wie etwa einer Ethernet-Schnittstelle, einer USB(Universal Serial Bus)-Schnittstelle, einer Bluetooth®-Schnittstelle, einer NFC(Nahfeldkommunikation)-Schnittstelle, einer PCI-Schnittstelle und/oder einer PCIe-Schnittstelle.
  • Bei dem veranschaulichten Beispiel sind eine oder mehrere Eingabevorrichtungen 1422 mit der Schnittstellenschaltungsanordnung 1420 verbunden. Die eine oder die mehreren Eingabevorrichtungen 1422 ermöglichen einem Benutzer, Daten und/oder Befehle in die Prozessorschaltungsanordnung 1412 einzugeben. Die eine oder die mehreren Eingabevorrichtungen 1422 können zum Beispiel durch einen Audiosensor, ein Mikrofon, eine Kamera (Standbild oder Video), eine Tastatur, eine Taste, eine Maus, einen Touchscreen, ein Trackpad, einen Trackball, eine Isopoint-Vorrichtung und/oder ein Spracherkennungssystem implementiert werden.
  • Eine oder mehrere Ausgabevorrichtungen 1424 sind auch mit der Schnittstellenschaltungsanordnung 1420 des veranschaulichten Beispiels verbunden. Die Ausgabevorrichtungen 1424 können zum Beispiel durch Anzeigevorrichtungen (z. B. eine Leuchtdiode (LED), eine organische Leuchtdiode (OLED), eine Flüssigkristallanzeige (LCD), eine Kathodenstrahlröhren(CRT)-Anzeige, eine In-Place-Switching(IPS)-Anzeige, einen Touchscreen usw.), eine taktile Ausgabevorrichtung, einen Drucker und/oder einen Lautsprecher implementiert werden. Die Schnittstellenschaltungsanordnung 1420 des veranschaulichten Beispiels beinhaltet somit typischerweise eine Grafiktreiberkarte, einen Grafiktreiberchip und/oder eine Grafikprozessorschaltungsanordnung, wie etwa eine GPU.
  • Die Schnittstellenschaltungsanordnung 1420 des veranschaulichten Beispiels beinhaltet auch eine Kommunikationsvorrichtung, wie etwa einen Sender, einen Empfänger, einen Sendeempfänger, ein Modem, ein Heim-Gateway, einen drahtlosen Zugangspunkt und/oder eine Netzwerkschnittstelle, um den Austausch von Daten mit externen Maschinen (z. B. Rechenvorrichtungen einer beliebigen Art) durch ein Netzwerk 1426 zu ermöglichen. Die Kommunikation kann zum Beispiel durch eine Ethernet-Verbindung, eine DSL-Verbindung (DSL: Digital Subscriber Line), eine Telefonleitungsverbindung, ein Koaxialkabelsystem, ein Satellitensystem, ein drahtloses Sichtliniensystem, ein Mobilfunksystem, eine optische Verbindung usw. erfolgen.
  • Die Prozessorplattform 1400 des veranschaulichten Beispiels beinhaltet auch eine oder mehrere Massenspeicherungsvorrichtungen 1428 zum Speichern von Software und/oder Daten. Beispiele für solche Massenspeicherungsvorrichtungen 1428 beinhalten magnetische Speicherungsvorrichtungen, optische Speicherungsvorrichtungen, Diskettenlaufwerke, HDDs, CDs, Blu-Ray-Disk-Laufwerke, RAID-Systeme (RAID: Redundant Array of Independent Disks), Solid-State-Speicherungsvorrichtungen, wie etwa Flash-Speichervorrichtungen, und DVD-Laufwerke.
  • Die maschinenausführbaren Anweisungen 1432, die durch die maschinenlesbaren Anweisungen der 6 implementiert werden können, können in der Massenspeicherungsvorrichtung 1428, in dem flüchtigen Speicher 1414, in dem nichtflüchtigen Speicher 1416 und/oder auf einem entfernbaren nichtflüchtigen computerlesbaren Speicherungsmedium, wie etwa einer CD oder DVD, gespeichert sein.
  • 15 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform 1500, die eine Prozessorschaltungsanordnung beinhaltet, die strukturiert ist, um die beispielhaften maschinenlesbaren Anweisungen von 7 zum Implementieren der Trainingsschaltungsanordnung 140 aus 3 auszuführen. Die Prozessorplattform 1500 kann zum Beispiel ein Server, ein Personal Computer, eine Workstation, eine selbstlernende Maschine (z. B. ein neuronales Netzwerk), eine Mobilvorrichtung (z. B. ein Mobiltelefon, ein Smartphone, ein Tablet wie etwa ein iPad™), ein Personal Digital Assistant (PDA), ein Internetgerät, ein DVD-Spieler, ein CD-Spieler, ein digitaler Videorecorder, ein Blu-Ray-Spieler, eine Spielekonsole, ein persönlicher Videorecorder, eine Set-Top-Box, ein Headset (z. B. ein Augmented-Reality(AR)-Headset, ein Virtual-Reality(VR)-Headset usw.) oder eine andere Wearable-Vorrichtung oder eine beliebige andere Art von Rechenvorrichtung sein.
  • Die Prozessorplattform 1500 des veranschaulichten Beispiels beinhaltet die Prozessorschaltungsanordnung 1512. Die Prozessorschaltungsanordnung 1512 des veranschaulichten Beispiels ist Hardware. Zum Beispiel kann die Prozessorschaltungsanordnung 1512 durch eine oder mehrere integrierte Schaltungen, Logikschaltungen, FPGAs, Mikroprozessoren, CPUs, GPUs, DSPs und/oder Mikrocontroller einer beliebigen gewünschten Familie oder eines beliebigen gewünschten Herstellers implementiert werden. Die Prozessorschaltungsanordnung 1512 kann durch eine oder mehrere halbleiterbasierte (z. B. siliziumbasierte) Vorrichtungen implementiert werden. In diesem Beispiel implementiert die Prozessorschaltungsanordnung 1512 die Ground-Truth-Empfangsschaltungsanordnung 352, die Bilddatenempfangsschaltungsanordnung 354, die Datensatzerzeugungsschaltungsanordnung 356 und/oder die Merkmalsschätzungsschaltungsanordnung 358.
  • Die Prozessorschaltungsanordnung 1512 des veranschaulichten Beispiels beinhaltet einen lokalen Speicher 1513 (z. B. einen Cache, Register usw.). Die Prozessorschaltungsanordnung 1512 des veranschaulichten Beispiels befindet sich durch einen Bus 1518 in Kommunikation mit einem Hauptspeicher, der einen flüchtigen Speicher 1514 und einen nichtflüchtigen Speicher 1516 beinhaltet. Der flüchtige Speicher 1514 kann durch SDRAM (synchroner dynamischer Direktzugriffsspeicher), DRAM (dynamischer Direktzugriffsspeicher), RDRAM® (RAMBUS® dynamischer Direktzugriffsspeicher) und/oder eine beliebige andere Art von RAM-Vorrichtung implementiert werden. Der nichtflüchtige Speicher 1516 kann durch Flash-Speicher und/oder eine beliebige andere gewünschte Art von Speichervorrichtung implementiert werden. Der Zugriff auf den Hauptspeicher 1514, 1516 des veranschaulichten Beispiels wird durch eine Speichersteuerung 1517 gesteuert.
  • Die Prozessorplattform 1500 des veranschaulichten Beispiels beinhaltet auch eine Schnittstellenschaltungsanordnung 1520. Die Schnittstellenschaltungsanordnung 1520 kann durch Hardware gemäß einer beliebigen Art von Schnittstellenstandard implementiert werden, wie etwa einer Ethernet-Schnittstelle, einer USB(Universal Serial Bus)-Schnittstelle, einer Bluetooth®-Schnittstelle, einer NFC(Nahfeldkommunikation)-Schnittstelle, einer PCI-Schnittstelle und/oder einer PCIe-Schnittstelle.
  • Bei dem veranschaulichten Beispiel sind eine oder mehrere Eingabevorrichtungen 1522 mit der Schnittstellenschaltungsanordnung 120 verbunden. Die eine oder die mehreren Eingabevorrichtungen 1522 ermöglichen einem Benutzer, Daten und/oder Befehle in die Prozessorschaltungsanordnung 1512 einzugeben. Die eine oder die mehreren Eingabevorrichtungen 1522 können zum Beispiel durch einen Audiosensor, ein Mikrofon, eine Kamera (Standbild oder Video), eine Tastatur, eine Taste, eine Maus, einen Touchscreen, ein Trackpad, einen Trackball, eine Isopoint-Vorrichtung und/oder ein Spracherkennungssystem implementiert werden.
  • Eine oder mehrere Ausgabevorrichtungen 1524 sind auch mit der Schnittstellenschaltungsanordnung 1520 des veranschaulichten Beispiels verbunden. Die Ausgabevorrichtungen 1524 können zum Beispiel durch Anzeigevorrichtungen (z. B. eine Leuchtdiode (LED), eine organische Leuchtdiode (OLED), eine Flüssigkristallanzeige (LCD), eine Kathodenstrahlröhren(CRT)-Anzeige, eine In-Place-Switching(IPS)-Anzeige, einen Touchscreen usw.), eine taktile Ausgabevorrichtung, einen Drucker und/oder einen Lautsprecher implementiert werden. Die Schnittstellenschaltungsanordnung 1520 des veranschaulichten Beispiels beinhaltet somit typischerweise eine Grafiktreiberkarte, einen Grafiktreiberchip und/oder eine Grafikprozessorschaltungsanordnung, wie etwa eine GPU.
  • Die Schnittstellenschaltungsanordnung 1520 des veranschaulichten Beispiels beinhaltet auch eine Kommunikationsvorrichtung, wie etwa einen Sender, einen Empfänger, einen Sendeempfänger, ein Modem, ein Heim-Gateway, einen drahtlosen Zugangspunkt und/oder eine Netzwerkschnittstelle, um den Austausch von Daten mit externen Maschinen (z. B. Rechenvorrichtungen einer beliebigen Art) durch ein Netzwerk 1526 zu ermöglichen. Die Kommunikation kann zum Beispiel durch eine Ethernet-Verbindung, eine DSL-Verbindung (DSL: Digital Subscriber Line), eine Telefonleitungsverbindung, ein Koaxialkabelsystem, ein Satellitensystem, ein drahtloses Sichtliniensystem, ein Mobilfunksystem, eine optische Verbindung usw. erfolgen.
  • Die Prozessorplattform 1500 des veranschaulichten Beispiels beinhaltet auch eine oder mehrere Massenspeicherungsvorrichtungen 1528 zum Speichern von Software und/oder Daten. Beispiele für solche Massenspeicherungsvorrichtungen 1528 beinhalten magnetische Speicherungsvorrichtungen, optische Speicherungsvorrichtungen, Diskettenlaufwerke, HDDs, CDs, Blu-Ray-Disk-Laufwerke, RAID-Systeme (RAID: Redundant Array of Independent Disks), Solid-State-Speicherungsvorrichtungen, wie etwa Flash-Speichervorrichtungen, und DVD-Laufwerke.
  • Die maschinenausführbaren Anweisungen 1532, die durch die maschinenlesbaren Anweisungen der 7 implementiert werden können, können in der Massenspeicherungsvorrichtung 1528, in dem flüchtigen Speicher 1514, in dem nichtflüchtigen Speicher 1516 und/oder auf einem entfernbaren nichtflüchtigen computerlesbaren Speicherungsmedium, wie etwa einer CD oder DVD, gespeichert sein.
  • 16 ist ein Blockdiagramm 1600 einer beispielhaften Implementierung der Prozessorschaltungsanordnung aus 12, 13, 14 und/oder 15. FIG. In diesem Beispiel wird die Prozessorschaltungsanordnung 1212, 1312, 1412, 1512 aus 12, 13, 14, 15 durch einen Mikroprozessor 1600 implementiert. Zum Beispiel kann der Mikroprozessor 1600 eine Mehrkernhardwareschaltungsanordnung implementieren, wie etwa eine CPU, einen DSP, eine GPU, eine XPU usw. Obwohl er eine beliebige Anzahl beispielhafter Kerne 1602 (z. B. 1 Kern) beinhalten kann, ist der Mikroprozessor 1600 dieses Beispiels eine Mehrkernhalbleitervorrichtung, die N Kerne beinhaltet. Die Kerne 1602 des Mikroprozessors 1600 können unabhängig arbeiten oder können zusammenwirken, um maschinenlesbare Anweisungen auszuführen. Zum Beispiel kann Maschinencode, der einem Firmware-Programm, einem eingebetteten Software-Programm oder einem Software-Programm entspricht, durch einen der Kerne 1602 ausgeführt werden oder kann durch mehrere der Kerne 1602 zur gleichen oder zu unterschiedlichen Zeiten ausgeführt werden. Bei manchen Beispielen ist der Maschinencode, der dem Firmware-Programm, dem eingebetteten Software-Programm oder dem Software-Programm entspricht, in Threads aufgeteilt und wird parallel durch zwei oder mehr der Kerne 1602 ausgeführt. Das Softwareprogramm kann einem Teil oder allen der maschinenlesbaren Anweisungen und/oder Operationen entsprechen, die durch die Flussdiagramme der 4, 5, 6, 7 repräsentiert werden.
  • Die Kerne 1602 können durch einen beispielhaften Bus 1604 kommunizieren. In einigen Beispielen kann der Bus 1604 einen Kommunikationsbus implementieren, um eine Kommunikation zu bewirken, die mit einem bzw. mehreren der Kerne 1602 assoziiert ist. Zum Beispiel kann der Bus 1604 einen Inter-Integrated-Circuit(I2C)-Bus und/oder einen Serial-Peripheral-Interface(SPI)-Bus und/oder einen PCI-Bus und/oder einen PCIe-Bus implementieren. Zusätzlich oder alternativ kann der Bus 1604 eine beliebige andere Art von Rechen- oder elektrischem Bus implementieren. Die Kerne 1602 können Daten, Anweisungen und/oder Signale von einer oder mehreren externen Vorrichtungen durch die beispielhafte Schnittstellenschaltungsanordnung 1606 erhalten. Die Kerne 1602 können Daten, Anweisungen und/oder Signale durch die Schnittstellenschaltungsanordnung 1606 an die eine oder die mehreren externen Vorrichtungen ausgeben. Obwohl die Kerne 1602 dieses Beispiels einen beispielhaften lokalen Speicher 1620 (z. B. Level-1(L1)-Cache, der in einen L1-Datencache und einen L1-Anweisungscache geteilt sein kann) beinhalten, beinhaltet der Mikroprozessor 1600 auch einen beispielhaften gemeinsam genutzten Speicher 1610, der von den Kernen (z. B. Level-2(L2)-Cache)) für einen Hochgeschwindigkeitszugriff auf Daten und/oder Anweisungen gemeinsam genutzt werden kann. Daten und/oder Anweisungen können durch Schreiben in den und/oder Lesen aus dem gemeinsam genutzten Speicher 1610 übertragen (z. B. gemeinsam genutzt) werden. Der lokale Speicher 1620 von jedem der Kerne 1602 und der gemeinsam genutzte Speicher 1610 können Teil einer Hierarchie von Speicherungsvorrichtungen sein, einschließlich mehrerer Ebenen von Cachespeicher und des Hauptspeichers (z. B. des Hauptspeichers 1214, 1216, 1314, 1316, 1414, 1416, 1514, 1516 von 12, 13, 14, 15). Typischerweise weisen höhere Speicherebenen in der Hierarchie eine niedrigere Zugriffszeit auf und weisen eine kleinere Speicherungskapazität als niedrigere Speicherebenen auf. Änderungen auf den verschiedenen Ebenen der Cache-Hierarchie werden durch eine Cache-Kohärenzrichtlinie verwaltet (z. B. koordiniert).
  • Jeder Kern 1602 kann als eine CPU, ein DSP, eine GPU usw. oder eine beliebige andere Art von Hardwareschaltungsanordnung bezeichnet werden. Jeder Kern 1602 beinhaltet eine Steuereinheitsschaltungsanordnung 1614, eine Arithmetik-und-Logik(AL)-Schaltungsanordnung (manchmal als eine ALU bezeichnet) 1616, mehrere Register 1618, den L1-Cache 1620 und einen beispielhaften Bus 1622. Andere Strukturen können vorhanden sein. Zum Beispiel kann jeder Kern 1602 eine Vektoreinheitsschaltungsanordnung, eine SIMD-Einheitsschaltungsanordnung (SIMD: Single Instruction Multiple Data - einzelne Anweisung, mehrere Daten), eine Lade-/Speichereinheit(LSU)-Schaltungsanordnung, eine Verzweigungs-/Sprungeinheitsschaltungsanordnung, eine Gleitkommaeinheit(FPU)-Schaltungsanordnung usw. beinhalten. Die Steuereinheitsschaltungsanordnung 1614 beinhaltet halbleiterbasierte Schaltungen, die zum Steuern (z. B. Koordinieren) einer Datenbewegung innerhalb des entsprechenden Kerns 1602 strukturiert sind. Die AL-Schaltungsanordnung 1616 beinhaltet halbleiterbasierte Schaltungen, die dazu strukturiert sind, eine oder mehrere mathematische und/oder logische Operationen an den Daten innerhalb des entsprechenden Kerns 1602 durchzuführen. Die AL-Schaltungsanordnung 1616 mancher Beispiele führt ganzzahlbasierte Operationen durch. In anderen Beispielen führt die AL-Schaltungsanordnung 1616 auch Gleitkommaoperationen durch. In noch anderen Beispielen kann die AL-Schaltungsanordnung 1616 eine erste AL-Schaltungsanordnung, die ganzzahlbasierte Operationen durchführt, und eine zweite AL-Schaltungsanordnung, die Gleitkommaoperationen durchführt, beinhalten. In manchen Beispielen kann die AL-Schaltungsanordnung 1616 als eine Arithmetik-Logik-Einheit (ALU) bezeichnet werden. Die Register 1618 sind halbleiterbasierte Strukturen zum Speichern von Daten und/oder Anweisungen, wie etwa Ergebnissen einer oder mehrerer der Operationen, die durch die AL-Schaltungsanordnung 1616 des entsprechenden Kerns 1602 durchgeführt werden. Die Register 1618 können zum Beispiel ein oder mehrere Vektorregister, ein oder mehrere SIMD-Register, ein oder mehrere Allzweckregister, ein oder mehrere Flag-Register, ein oder mehrere Segmentregister, ein oder mehrere maschinenspezifische Register, ein oder mehrere Anweisungszeigerregister, ein oder mehrere Steuerregister, ein oder mehrere Debug-Register, ein oder mehrere Speicherverwaltungsregister, ein oder mehrere Maschinenprüfregister usw. beinhalten. Die Register 1618 können in einer Bank angeordnet sein, wie in 16 gezeigt ist. Alternativ dazu können die Register 1618 in einer beliebigen anderen Anordnung, einem beliebigen anderen Format oder einer beliebigen anderen Struktur organisiert sein, einschließlich einer Verteilung im Kern 1602, um die Zugriffszeit zu verkürzen. Der Bus 1620 kann einen I2C-Bus und/oder einen SPI-Bus und/oder einen PCI-Bus und/oder einen PCIe-Bus implementieren.
  • Jeder Kern 1602 und/oder allgemeiner der Mikroprozessor 1600 kann zusätzliche und/oder alternative Strukturen zu den oben gezeigten und beschriebenen beinhalten. Zum Beispiel können eine oder mehrere Taktschaltungen, eine oder mehrere Leistungsversorgungen, ein oder mehrere Leistungsgatter, ein oder mehrere Cache-Home-Agenten (CHAs), ein oder mehrere konvergierte/gemeinsame Mesh-Stopps (CMSs), ein oder mehrere Shifter (z. B. Barrel-Shifter) und/oder eine andere Schaltungsanordnung vorhanden sein. Der Mikroprozessor 1600 ist eine Halbleitervorrichtung, die so gefertigt ist, dass sie viele Transistoren beinhaltet, die miteinander verbunden sind, um die oben beschriebenen Strukturen in einer oder mehreren integrierten Schaltungen (ICs) zu implementieren, die in einem oder mehreren Packages enthalten sind. Die Prozessorschaltungsanordnung kann einen oder mehrere Beschleuniger beinhalten und/oder mit diesen zusammenwirken. In manchen Beispielen werden Beschleuniger durch eine Logikschaltungsanordnung implementiert, um gewisse Aufgaben schneller und/oder effizienter durchzuführen, als durch einen Allzweckprozessor durchgeführt werden kann. Beispiele für Beschleuniger beinhalten ASICs und FPGAs, wie etwa die hierin besprochenen. Eine GPU oder eine andere programmierbare Vorrichtung kann auch ein Beschleuniger sein. Beschleuniger können sich in der Prozessorschaltungsanordnung, in demselben Chipgehäuse wie die Prozessorschaltungsanordnung und/oder in einem oder mehreren von der Prozessorschaltungsanordnung getrennten Gehäusen befinden.
  • 17 ist ein Blockdiagramm 1700 einer anderen beispielhaften Implementierung der Prozessorschaltungsanordnung von 12, 13, 14 und/oder 15. In diesem Beispiel wird die Prozessorschaltungsanordnung 1212, 1312, 1412, 1512 durch die FPGA-Schaltungsanordnung 1700 implementiert. Die FPGA-Schaltungsanordnung 1700 kann zum Beispiel verwendet werden, um Operationen durchzuführen, die ansonsten durch den beispielhaften Mikroprozessor 1600 von 16 durchgeführt werden könnten, der entsprechende maschinenlesbare Anweisungen ausführt. Sobald sie jedoch konfiguriert ist, instanziiert die FPGA-Schaltungsanordnung 1700 die maschinenlesbaren Anweisungen in Hardware und kann dementsprechend die Operationen häufig schneller ausführen, als sie durch einen Allzweckmikroprozessor durchgeführt werden könnten, der die entsprechende Software ausführt.
  • Genauer gesagt, im Gegensatz zu dem oben beschriebenen Mikroprozessor 1600 von 16 (der eine Allzweckvorrichtung ist, die dazu programmiert sein kann, einen Teil oder alle der maschinenlesbaren Anweisungen auszuführen, die durch die Flussdiagramme von 4, 5, 6, 7 repräsentiert werden, deren Zwischenverbindungen und eine Logikschaltungsanordnung aber nach der Fertigung fixiert sind), beinhaltet die FPGA-Schaltungsanordnung 1700 des Beispiels von 17 Zwischenverbindungen und eine Logikschaltungsanordnung, die nach der Fertigung auf unterschiedliche Weisen konfiguriert und/oder miteinander verbunden werden können, um zum Beispiel einen Teil oder alle der maschinenlesbaren Anweisungen, die durch die Flussdiagramme von 4, 5, 6, 7 repräsentiert werden, zu instanziieren. Insbesondere kann das FPGA 1700 als ein Array aus Logikgattern, Zwischenverbindungen und Schaltern angesehen werden. Die Schalter können dazu programmiert sein, zu ändern, wie die Logikgatter durch die Zwischenverbindungen miteinander verbunden sind, wodurch effektiv eine oder mehrere dedizierte Logikschaltungen gebildet werden (es sei denn, dass und bis die FPGA-Schaltungsanordnung 1700 neu programmiert ist). Die konfigurierten Logikschaltungen ermöglichen, dass die Logikgatter auf unterschiedliche Weisen zusammenwirken, um unterschiedliche Operationen an Daten durchzuführen, die durch die Eingangsschaltungsanordnung empfangen werden. Diese Operationen können einem Teil oder der gesamten Software entsprechen, die durch die Flussdiagramme von 4, 5, 6, 7 repräsentiert werden. Von daher kann die FPGA-Schaltungsanordnung 1700 strukturiert sein, um einen Teil oder alle der maschinenlesbaren Anweisungen der Flussdiagramme von 4, 5, 6, 7 effektiv als dedizierte Logikschaltungen zu instanziieren, um die Operationen, die diesen Softwareanweisungen entsprechen, auf eine dedizierte Weise analog zu einer ASIC durchzuführen. Daher kann die FPGA-Schaltungsanordnung 1700 die Operationen, die dem Teil oder allen der maschinenlesbaren Anweisungen von 4, 5, 6, 7 entsprechen, schneller durchführen, als der Allzweckmikroprozessor dieselben ausführen kann.
  • In dem Beispiel von 17 ist die FPGA-Schaltungsanordnung 1700 strukturiert, um durch einen Endbenutzer durch eine Hardwarebeschreibungssprache (HDL), wie etwa Verilog, programmiert (und/oder einmal oder mehrmals umprogrammiert) zu werden. Die FPGA-Schaltungsanordnung 1700 von 17 beinhaltet eine beispielhafte Eingabe/Ausgabe(E/A)-Schaltungsanordnung 1702, um Daten von der beispielhaften Konfigurationsschaltungsanordnung 1704 und/oder externer Hardware (z. B. einer externen Hardwareschaltungsanordnung) 1706 zu erhalten und/oder an diese auszugeben. Zum Beispiel kann die Konfigurationsschaltungsanordnung 1704 eine Schnittstellenschaltungsanordnung implementieren, die maschinenlesbare Anweisungen zum Konfigurieren der FPGA-Schaltungsanordnung 1700 oder eines oder mehrerer Teile davon erhalten kann. In manchen solchen Beispielen kann die Konfigurationsschaltungsanordnung 1704 die maschinenlesbaren Anweisungen von einem Benutzer, einer Maschine (z. B. Hardwareschaltungsanordnung (z. B. programmierte oder dedizierte Schaltungsanordnung), die ein Künstliche-Intelligenz-/Maschinenlernmodell (KI-/ML-Modell) implementieren kann, um die Anweisungen zu erzeugen) usw. erhalten. In einigen Beispielen kann die externe Hardware 1706 den Mikroprozessor 1600 von 16 implementieren. Die FPGA-Schaltungsanordnung 1700 beinhaltet auch ein Array aus einer beispielhaften Logikgatterschaltungsanordnung 1708, mehreren beispielhaften konfigurierbaren Zwischenverbindungen 1710 und einer beispielhaften Speicherungsschaltungsanordnung 1712. Die Logikgatterschaltungsanordnung 1708 und die Zwischenverbindungen 1710 sind konfigurierbar, um eine oder mehrere Operationen zu instanziieren, die zumindest einigen der maschinenlesbaren Anweisungen von 4, 5, 6, 7 und/oder anderen gewünschten Operationen entsprechen. Die in 17 gezeigte Logikgatterschaltungsanordnung 1708 ist in Gruppen oder Blöcken gefertigt. Jeder Block beinhaltet halbleiterbasierte elektrische Strukturen, die in Logikschaltungen konfiguriert werden können. In manchen Beispielen beinhalten die elektrischen Strukturen Logikgatter (z. B. AND-Gatter, OR-Gatter, NOR-Gatter usw.), die Basisbausteine für Logikschaltungen bereitstellen. Elektrisch steuerbare Schalter (z. B. Transistoren) sind innerhalb jeder der Logikgatterschaltungsanordnungen 1708 vorhanden, um eine Konfiguration der elektrischen Strukturen und/oder der Logikgatter zu ermöglichen, um Schaltungen zum Durchführen gewünschter Operationen zu bilden. Die Logikgatterschaltungsanordnung 1708 kann andere elektrische Strukturen beinhalten, wie etwa Nachschlagetabellen (LUTs), Register (z. B. Flip-Flops oder Latches), Multiplexer usw.
  • Die Zwischenverbindungen 1710 des veranschaulichten Beispiels sind leitfähige Pfade, Leiterbahnen, Vias oder dergleichen, die elektrisch steuerbare Schalter (z. B. Transistoren) beinhalten können, deren Zustand durch Programmieren (z. B. unter Verwendung einer HDL-Anweisungssprache) geändert werden kann, um eine oder mehrere Verbindungen zwischen einer oder mehreren der Logikgatterschaltungsanordnungen 1708 zu aktivieren oder zu deaktivieren, um gewünschte Logikschaltungen zu programmieren.
  • Die Speicherungsschaltungsanordnung 1712 des veranschaulichten Beispiels ist dazu strukturiert, ein oder mehrere Ergebnisse der einen oder der mehreren Operationen zu speichern, die durch entsprechende Logikgatter durchgeführt werden. Die Speicherungsschaltungsanordnung 1712 kann durch Register oder dergleichen implementiert werden. In dem veranschaulichten Beispiel ist die Speicherungsschaltungsanordnung 1712 unter der Logikgatterschaltungsanordnung 1708 verteilt, um den Zugriff zu ermöglichen und die Ausführungsgeschwindigkeit zu erhöhen.
  • Die beispielhafte FPGA-Schaltungsanordnung 1700 von 17 beinhaltet auch eine beispielhafte dedizierte Operationsschaltungsanordnung 1714. In diesem Beispiel beinhaltet die dedizierte Operationsschaltungsanordnung 1714 eine Spezialschaltungsanordnung 1716, die aufgerufen werden kann, um üblicherweise verwendete Funktionen zu implementieren, um die Notwendigkeit zu vermeiden, diese Funktionen im Feld zu programmieren. Beispiele für eine solche Spezialschaltungsanordnung 1716 beinhalten eine Speicher(z. B. DRAM)-Steuerungsschaltungsanordnung, eine PCIe-Steuerungsschaltungsanordnung, eine Taktschaltungsanordnung, eine Sendeempfängerschaltungsanordnung, einen Speicher und eine Multiplizierer-Akkumulator-Schaltungsanordnung. Andere Arten von Spezialschaltungsanordnungen können vorhanden sein. In manchen Beispielen kann die FPGA-Schaltungsanordnung 1700 auch eine beispielhafte programmierbare Allzweckschaltungsanordnung 1718, wie etwa eine beispielhafte CPU 1720 und/oder einen beispielhaften DSP 1722, beinhalten. Eine andere programmierbare Allzweckschaltungsanordnung 1718 kann zusätzlich oder alternativ vorhanden sein, wie etwa eine GPU, eine XPU usw., die dazu programmiert sein kann, andere Operationen durchzuführen.
  • Obwohl die 16 und 17 zwei beispielhafte Implementierungen der Prozessorschaltungsanordnung 1212, 1312, 1412, 1512 aus 12, 13, 14, 15 veranschaulichen, werden viele andere Ansätze in Betracht gezogen. Wie oben erwähnt, kann zum Beispiel eine moderne FPGA-Schaltungsanordnung eine On-Board-CPU, wie etwa eine oder mehrere der beispielhaften CPU 1720 von 17, beinhalten. Daher kann die Prozessorschaltungsanordnung 1212, 1312, 1412, 1512 aus 12, 13, 14, 15 zusätzlich durch Kombinieren des beispielhaften Mikroprozessors 1600 aus 16 und der beispielhafte FPGA-Schaltungsanordnung 1700 aus 17 implementiert werden. In einigen solchen hybriden Beispielen kann ein erster Teil der maschinenlesbaren Anweisungen, der durch die Flussdiagramme von 4, 5, 6, 7 repräsentiert wird, durch einen oder mehrere der Kerne 1602 aus 16 ausgeführt werden, und ein zweiter Teil der maschinenlesbaren Anweisungen, der durch die Flussdiagramme von 4, 5, 6, 7 repräsentiert wird, kann durch die FPGA-Schaltungsanordnung 1700 aus 17 ausgeführt werden.
  • In einigen Beispielen kann sich die Prozessorschaltungsanordnung 1212, 1312, 1412, 1512 aus 12, 13, 14, 15 in einem oder mehreren Packages befinden. Zum Beispiel können sich die Prozessorschaltungsanordnung 1600 von 16 und/oder die FPGA-Schaltungsanordnung 1700 von 17 in einem oder mehreren Packages befinden. In einigen Beispielen kann eine XPU durch die Prozessorschaltungsanordnung 1212, 1312, 1412, 1512 aus 12, 13, 14, 15 implementiert werden, die sich in einem oder mehreren Packages befinden kann. Zum Beispiel kann die XPU eine CPU in einem Package, einen DSP in einem anderen Package, eine GPU in noch einem anderen Package und ein FPGA in noch einem anderen Package beinhalten.
  • Ein Blockdiagramm, das eine beispielhafte Softwareverteilungsplattform 1805 zum Verteilen von Software, wie etwa die beispielhaften maschinenlesbaren Anweisungen 1232, 1332, 1432, 1532 von 12, 13, 14, 15, an Hardwarevorrichtungen veranschaulicht, die sich im Besitz von Drittparteien befinden und/oder von diesen betrieben werden, ist in 18 veranschaulicht. Die beispielhafte Softwareverteilungsplattform 1805 kann durch einen beliebigen Computerserver, eine beliebige Dateneinrichtung, einen beliebigen Cloud-Dienst usw. implementiert werden, der/die in der Lage ist, Software zu speichern und zu anderen Rechenvorrichtungen zu übertragen. Die Drittparteien können Kunden der Entität sein, die die Softwareverteilungsplattform 1805 besitzt und/oder betreibt. Zum Beispiel kann die Entität, die die Softwareverteilungsplattform 1805 besitzt und/oder betreibt, ein Entwickler, ein Verkäufer und/oder ein Lizenzgeber von Software, wie etwa den beispielhaften maschinenlesbaren Anweisungen 1232, 1332, 1432, 1532 von 12, 13, 14, 15 sein. Die Drittparteien können Verbraucher, Benutzer, Einzelhändler, OEMs usw. sein, die die Software zur Verwendung erwerben und/oder lizenzieren und/oder wiederverkaufen und/oder sublizenzieren. In dem veranschaulichten Beispiel beinhaltet die Softwareverteilungsplattform 1805 einen oder mehrere Server und eine oder mehrere Speicherungsvorrichtungen. Die Speicherungsvorrichtungen speichern die maschinenlesbaren Anweisungen 1232, 1332, 1432, 1532, die den beispielhaften maschinenlesbaren Anweisungen 400 von 4 entsprechen können, wie oben beschrieben. Der eine oder die mehreren Server der beispielhaften Softwareverteilungsplattform 1805 stehen in Kommunikation mit einem Netzwerk 1810, das einem oder mehreren beliebigen des Internets und/oder beliebigen der oben beschriebenen beispielhaften Netzwerke entsprechen kann. In einigen Beispielen reagieren der eine oder die mehreren Server auf Anforderungen zur Übertragung der Software an eine anfordernde Partei als Teil einer kommerziellen Transaktion. Die Zahlung für die Lieferung, den Verkauf und/oder die Lizenz der Software kann durch den einen oder die mehreren Server der Softwareverteilungsplattform und/oder durch eine Drittpartei-Zahlungsentität gehandhabt werden. Die Server ermöglichen Käufern und/oder Lizenzgebern, die maschinenlesbaren Anweisungen 1232, 1332, 1432, 1532 von der Softwareverteilungsplattform 1805 herunterzuladen. Zum Beispiel kann die Software, die den beispielhaften maschinenlesbaren Anweisungen 400 von 4 entsprechen kann, auf die beispielhafte(n) Prozessorplattform(en) 1200, 1300, 1400, 1500 heruntergeladen werden, die die maschinenlesbaren Anweisungen 1232, 1332, 1432, 1532 ausführen soll, um die Vorverarbeitungsschaltungsanordnung 110, die Mischschaltungsanordnung 120, die Inpainting-Schaltungsanordnung 130, die Trainingsschaltungsanordnung 140 zu implementieren. In einigen Beispielen bieten ein oder mehrere Server der Softwareverteilungsplattform 1805 periodisch Aktualisierungen für die Software (z. B. die beispielhaften maschinenlesbaren Anweisungen 1232, 1332, 1432, 1532 von 12, 13, 14, 15) an, übertragen und/oder erzwingen diese, um sicherzustellen, dass Verbesserungen, Patches, Aktualisierungen usw. verteilt und auf die Software an den Endbenutzervorrichtungen angewendet werden.
  • Aus dem Vorstehenden versteht es sich, dass hierin offenbarte Verfahren und Einrichtungen die Erzeugung von Ansichten mit sechs Freiheitsgraden (DOF) aus spärlichen Rot-Grün-Blau(RGB)-Tiefe-Eingaben verbessern. In den hierin offenbarten Beispielen wird ein Sechs-DOF-Bild-basiertes Deep-Learning-Rendering-Verfahren zur neuartigen Ansichtssynthese implementiert. In einigen Beispielen werden spärliche RGB-Tiefe(RGBD)-Eingaben und/oder eine beliebige Zielposition als Eingaben verwendet, um eine neuartige virtuelle Ansicht zu erzeugen, als ob die Ansicht von dem Zielort aus erfasst worden wäre. Zum Beispiel ist das hierin offenbarte tiefe neuronale Netzwerk (DNN) ein vollständig faltendes Ende-zu-Ende-Netzwerk ohne separate Vorverarbeitungs- und/oder Nachverarbeitungsmodule. Von daher kann das hierin offenbarte DNN im Gegensatz zu bekannten Lichtfelderzeugungsnetzwerken, die nur begrenzte Blickpunkt-Änderungen handhaben können, neuartige Blickpunkte in einem großen Raum erzeugen. In einigen Beispielen werden reprojizierte Ansichten in ein Mischnetzwerk eingegeben, um eine gemischte Ansicht mit fehlenden Daten zu erzeugen. In einigen Beispielen wird ein Inpainting-Netzwerk verwendet, um die fehlenden Daten der gemischten Ansicht einzufüllen und die finalen neuartigen Ansichten zu erzeugen, wodurch neuartige 6-DOF-Ansichten in einem großen Raum mit sehr spärlichen Eingaben erzeugt werden. Hierin offenbarte Verfahren und Einrichtungen können verwendet werden, um Lichtfeldinhalt für immersive Virtual-Reality-Anwendungen zu erzeugen.
  • Beispielhafte Verfahren, Einrichtungen, Systeme und Herstellungsartikel zum Erzeugen von Ansichten mit sechs Freiheitsgraden (DOF) aus spärlichen RGBD-Eingaben sind hierin offenbart. Weitere Beispiele und Kombinationen davon beinhalten das Folgende:
  • Beispiel 1 beinhaltet eine Einrichtung, umfassend mindestens einen Speicher, Anweisungen in der Einrichtung und eine Prozessorschaltungsanordnung zum Ausführen der Anweisungen zum Reprojizieren einer ersten Rot-Grün-Blau(RGB)-Tiefenansicht und einer zweiten RGB-Tiefenansicht auf eine Zielkameraposition, um eine erste reprojizierte Ansicht und eine zweite reprojizierte Ansicht zu erhalten, Kombinieren der ersten reprojizierten Ansicht und der zweiten reprojizierten Ansicht in gemischte Ansichtsdaten basierend auf einer ersten Gewichtungskarte und einer zweiten Gewichtungskarte, wobei die gemischte Ansicht fehlende RGB-Tiefeninformationen aufgrund einer Okklusion oder einer Nichtokklusion beinhaltet, und Erzeugen einer synthetisierten Ansicht mit sechs Freiheitsgraden der gemischten Ansichtsdaten, wobei die synthetisierte Ansicht die fehlenden RGB-Tiefeninformationen beinhaltet.
  • Beispiel 2 beinhaltet die Einrichtung des Beispiels 1, wobei die Prozessorschaltungsanordnung die erste RGB-Tiefenansicht und die zweite RGB-Tiefenansicht basierend auf Kameraparametern reprojizieren soll, wobei die Kameraparameter mindestens eines von einem extrinsischen Kameraparameter oder einem intrinsischen Kameraparameter beinhalten.
  • Beispiel 3 beinhaltet die Einrichtung des Beispiels 1, wobei die Prozessorschaltungsanordnung ein faltendes neuronales Netzwerk anwenden soll, um die erste reprojizierte Ansicht und die zweite reprojizierte Ansicht in die gemischten Ansichtsdaten zu kombinieren.
  • Beispiel 4 beinhaltet die Einrichtung des Beispiels 3, wobei die Prozessorschaltungsanordnung ein Generative Adversarial Network anwenden soll, um die synthetisierte Ansicht einschließlich der fehlenden RGB-Tiefeninformationen zu erzeugen.
  • Beispiel 5 beinhaltet die Einrichtung des Beispiels 4, wobei die Prozessorschaltungsanordnung das faltende neuronale Netzwerk und das Generative Adversarial Network gemeinsam trainieren soll.
  • Beispiel 6 beinhaltet die Einrichtung des Beispiels 1, wobei die Prozessorschaltungsanordnung ein erstes neuronales Netzwerk, das zum Erzeugen der gemischten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion trainieren soll, wobei das erste neuronale Netzwerk ein faltendes neuronales Netzwerk ist.
  • Beispiel 7 beinhaltet die Einrichtung des Beispiels 1, wobei die Prozessorschaltungsanordnung ein zweites neuronales Netzwerk, das zum Erzeugen der synthetisierten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion und/oder einer VGG-Verlustfunktion und/oder einer GAN-Verlustfunktion trainieren soll, wobei das zweite neuronale Netzwerk ein Generative Adversarial Network ist.
  • Beispiel 8 beinhaltet die Einrichtung des Beispiels 1, wobei die Prozessorschaltungsanordnung die synthetisierte Ansicht basierend auf einer Bewegungstrajektorie mit virtuellem Blickpunkt mit einer Sequenz von Zielpositionen oder Rotationsmatrizen erzeugen soll.
  • Beispiel 9 beinhaltet ein Verfahren, umfassend Reprojizieren einer ersten Rot-Grün-Blau(RGB)-Tiefenansicht und einer zweiten RGB-Tiefenansicht auf eine Zielkameraposition, um eine erste reprojizierte Ansicht und eine zweite reprojizierte Ansicht zu erhalten, Kombinieren der ersten reprojizierten Ansicht und der zweiten reprojizierten Ansicht in gemischte Ansichtsdaten basierend auf einer ersten Gewichtungskarte und einer zweiten Gewichtungskarte, wobei die gemischte Ansicht fehlende RGB-Tiefeninformationen aufgrund einer Okklusion oder einer Nichtokklusion beinhaltet, und Erzeugen einer synthetisierten Ansicht mit sechs Freiheitsgraden der gemischten Ansichtsdaten, wobei die synthetisierte Ansicht die fehlenden RGB-Tiefeninformationen beinhaltet.
  • Beispiel 10 beinhaltet das Verfahren des Beispiels 9, ferner einschließlich Reprojizieren der ersten RGB-Tiefenansicht und der zweiten RGB-Tiefenansicht basierend auf Kameraparametern, wobei die Kameraparameter mindestens eines von einem extrinsischen Kameraparameter oder einem intrinsischen Kameraparameter beinhalten.
  • Beispiel 11 beinhaltet das Verfahren des Beispiels 9, ferner einschließlich Anwenden eines faltenden neuronalen Netzwerks, um die erste reprojizierte Ansicht und die zweite reprojizierte Ansicht in die gemischten Ansichtsdaten zu kombinieren.
  • Beispiel 12 beinhaltet das Verfahren des Beispiels 11, ferner einschließlich Anwenden eines Generative Adversarial Network, um die synthetisierte Ansicht einschließlich der fehlenden RGB-Tiefeninformationen zu erzeugen.
  • Beispiel 13 beinhaltet das Verfahren des Beispiels 12, wobei das faltende neuronale Netzwerk und das Generative Adversarial Network gemeinsam trainiert werden.
  • Beispiel 14 beinhaltet das Verfahren des Beispiels 9, ferner einschließlich Trainieren eines ersten neuronalen Netzwerks, das zum Erzeugen der gemischten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion, wobei das erste neuronale Netzwerk ein faltendes neuronales Netzwerk ist.
  • Beispiel 15 beinhaltet das Verfahren des Beispiels 9, ferner einschließlich Trainieren eines zweiten neuronalen Netzwerks, das zum Erzeugen der synthetisierten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion und/oder einer VGG-Verlustfunktion und/oder einer GAN-Verlustfunktion, wobei das zweite neuronale Netzwerk ein Generative Adversarial Network ist.
  • Beispiel 16 beinhaltet das Verfahren des Beispiels 9, ferner einschließlich Erzeugen der synthetisierten Ansicht basierend auf einer Bewegungstrajektorie mit virtuellem Blickpunkt mit einer Sequenz von Zielpositionen oder Rotationsmatrizen.
  • Beispiel 17 beinhaltet ein nichtflüchtiges computerlesbares Speicherungsmedium, das computerlesbare Anweisungen umfasst, die bei ihrer Ausführung einen Prozessor zumindest veranlassen zum Reprojizieren einer ersten Rot-Grün-Blau(RGB)-Tiefenansicht und einer zweiten RGB-Tiefenansicht auf eine Zielkameraposition, um eine erste reprojizierte Ansicht und eine zweite reprojizierte Ansicht zu erhalten, Kombinieren der ersten reprojizierten Ansicht und der zweiten reprojizierten Ansicht in gemischte Ansichtsdaten basierend auf einer ersten Gewichtungskarte und einer zweiten Gewichtungskarte, wobei die gemischte Ansicht fehlende RGB-Tiefeninformationen aufgrund einer Okklusion oder einer Nichtokklusion beinhaltet, und Erzeugen einer synthetisierten Ansicht mit sechs Freiheitsgraden der gemischten Ansichtsdaten, wobei die synthetisierte Ansicht die fehlenden RGB-Tiefeninformationen beinhaltet.
  • Beispiel 18 beinhaltet das nichtflüchtige computerlesbare Speicherungsmedium des Beispiels 17, wobei die computerlesbaren Anweisungen bei ihrer Ausführung den einen oder die mehreren Prozessoren veranlassen zum Reprojizieren der ersten RGB-Tiefenansicht und der zweiten RGB-Tiefenansicht basierend auf Kameraparametern, wobei die Kameraparameter mindestens eines von einem extrinsischen Kameraparameter oder einem intrinsischen Kameraparameter beinhalten.
  • Beispiel 19 beinhaltet das nichtflüchtige computerlesbare Speicherungsmedium des Beispiels 17, wobei die computerlesbaren Anweisungen bei ihrer Ausführung den einen oder die mehreren Prozessoren veranlassen zum Anwenden eines faltenden neuronalen Netzwerks, um die erste reprojizierte Ansicht und die zweite reprojizierte Ansicht in die gemischten Ansichtsdaten zu kombinieren.
  • Beispiel 20 beinhaltet das nichtflüchtige computerlesbare Speicherungsmedium des Beispiels 19, wobei die computerlesbaren Anweisungen bei ihrer Ausführung den einen oder die mehreren Prozessoren veranlassen zum Anwenden eines Generative Adversarial Network, um die synthetisierte Ansicht einschließlich der fehlenden RGB-Tiefeninformationen zu erzeugen.
  • Beispiel 21 beinhaltet das nichtflüchtige computerlesbare Speicherungsmedium des Beispiels 20, wobei die computerlesbaren Anweisungen bei ihrer Ausführung den einen oder die mehreren Prozessoren veranlassen zum gemeinsamen Trainieren des faltenden neuronalen Netzwerks und des Generative Adversarial Network.
  • Beispiel 22 beinhaltet das nichtflüchtige computerlesbare Speicherungsmedium des Beispiels 17, wobei die computerlesbaren Anweisungen bei ihrer Ausführung den einen oder die mehreren Prozessoren veranlassen zum Trainieren eines ersten neuronalen Netzwerks, das zum Erzeugen der gemischten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion, wobei das erste neuronale Netzwerk ein faltendes neuronales Netzwerk ist.
  • Beispiel 23 beinhaltet das nichtflüchtige computerlesbare Speicherungsmedium des Beispiels 17, wobei die computerlesbaren Anweisungen bei ihrer Ausführung den einen oder die mehreren Prozessoren veranlassen zum Trainieren eines zweiten neuronalen Netzwerks, das zum Erzeugen der synthetisierten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion und/oder einer VGG-Verlustfunktion und/oder einer GAN-Verlustfunktion, wobei das zweite neuronale Netzwerk ein Generative Adversarial Network ist.
  • Beispiel 24 beinhaltet eine Einrichtung, umfassend Mittel zum Reprojizieren einer ersten Rot-Grün-Blau(RGB)-Tiefenansicht und einer zweiten RGB-Tiefenansicht auf eine Zielkameraposition, um eine erste reprojizierte Ansicht und eine zweite reprojizierte Ansicht zu erhalten, Mittel zum Kombinieren der ersten reprojizierten Ansicht und der zweiten reprojizierten Ansicht in gemischte Ansichtsdaten basierend auf einer ersten Gewichtungskarte und einer zweiten Gewichtungskarte, wobei die gemischte Ansicht fehlende RGB-Tiefeninformationen aufgrund einer Okklusion oder einer Nichtokklusion beinhaltet, und Mittel zum Erzeugen einer synthetisierten Ansicht mit sechs Freiheitsgraden der gemischten Ansichtsdaten, wobei die synthetisierte Ansicht die fehlenden RGB-Tiefeninformationen beinhaltet.
  • Beispiel 25 beinhaltet die Einrichtung des Beispiels 24, wobei die Mittel zum Reprojizieren das Reprojizieren der ersten RGB-Tiefenansicht und der zweiten RGB-Tiefenansicht basierend auf Kameraparametern beinhalten, wobei die Kameraparameter mindestens eines von einem extrinsischen Kameraparameter oder einem intrinsischen Kameraparameter beinhalten.
  • Beispiel 26 beinhaltet die Einrichtung des Beispiels 24, wobei die Mittel zum Kombinieren das Anwenden eines faltenden neuronalen Netzwerks beinhalten, um die erste reprojizierte Ansicht und die zweite reprojizierte Ansicht in die gemischten Ansichtsdaten zu kombinieren.
  • Beispiel 27 beinhaltet die Einrichtung des Beispiels 26, wobei die Mittel zum Erzeugen das Anwenden eines Generative Adversarial Network beinhalten, um die synthetisierte Ansicht einschließlich der fehlenden RGB-Tiefeninformationen zu erzeugen.
  • Beispiel 28 beinhaltet die Einrichtung des Beispiels 24, ferner einschließlich Mittel zum Trainieren eines ersten neuronalen Netzwerks, das zum Erzeugen der gemischten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion, wobei das erste neuronale Netzwerk ein faltendes neuronales Netzwerk ist.
  • Beispiel 29 beinhaltet die Einrichtung des Beispiels 28, ferner einschließlich Mittel zum Trainieren eines zweiten neuronalen Netzwerks, das zum Erzeugen der synthetisierten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion und/oder einer VGG-Verlustfunktion und/oder einer GAN-Verlustfunktion, wobei das zweite neuronale Netzwerk ein Generative Adversarial Network ist.
  • Beispiel 30 beinhaltet die Einrichtung des Beispiels 29, wobei die Mittel zum Trainieren das gemeinsame Trainieren des faltenden neuronalen Netzwerks und des Generative Adversarial Network beinhalten.
  • Beispiel 31 beinhaltet das Verfahren des Beispiels 24, wobei die Mittel zum Erzeugen das Erzeugen der synthetisierten Ansicht basierend auf einer Bewegungstrajektorie mit virtuellem Blickpunkt mit einer Sequenz von Zielpositionen oder Rotationsmatrizen beinhalten.
  • Obwohl hierin gewisse beispielhafte Systeme, Verfahren, Einrichtungen und Herstellungsartikel offenbart wurden, ist der Schutzumfang dieses Patents nicht darauf beschränkt. Im Gegenteil deckt dieses Patent alle Systeme, Verfahren, Einrichtungen und Herstellungsartikel ab, die ziemlich in den Schutzumfang der Ansprüche dieses Patents fallen.
  • Die folgenden Ansprüche werden hiermit durch diese Bezugnahme in diese ausführliche Beschreibung aufgenommen, wobei jeder Anspruch für sich allein als eine separate Ausführungsform der vorliegenden Offenbarung steht.

Claims (20)

  1. Einrichtung, umfassend: mindestens einen Speicher; Anweisungen in der Einrichtung; und eine Prozessorschaltungsanordnung zum Ausführen der Anweisungen zum: Reprojizieren einer ersten Rot-Grün-Blau(RGB)-Tiefenansicht und einer zweiten RGB-Tiefenansicht auf eine Zielkameraposition, um eine erste reprojizierte Ansicht und eine zweite reprojizierte Ansicht zu erhalten; Kombinieren der ersten reprojizierten Ansicht und der zweiten reprojizierten Ansicht in gemischte Ansichtsdaten basierend auf einer ersten Gewichtungskarte und einer zweiten Gewichtungskarte, wobei die gemischte Ansicht fehlende RGB-Tiefeninformationen aufgrund einer Okklusion oder einer Nichtokklusion beinhaltet; und Erzeugen einer synthetisierten Ansicht mit sechs Freiheitsgraden der gemischten Ansichtsdaten, wobei die synthetisierte Ansicht die fehlenden RGB-Tiefeninformationen beinhaltet.
  2. Einrichtung nach Anspruch 1, wobei die Prozessorschaltungsanordnung die erste RGB-Tiefenansicht und die zweite RGB-Tiefenansicht basierend auf Kameraparametern reprojizieren soll, wobei die Kameraparameter mindestens eines von einem extrinsischen Kameraparameter oder einem intrinsischen Kameraparameter beinhalten.
  3. Einrichtung nach Anspruch 1, wobei die Prozessorschaltungsanordnung ein faltendes neuronales Netzwerk anwenden soll, um die erste reprojizierte Ansicht und die zweite reprojizierte Ansicht in die gemischten Ansichtsdaten zu kombinieren.
  4. Einrichtung nach Anspruch 3, wobei die Prozessorschaltungsanordnung ein Generative Adversarial Network anwenden soll, um die synthetisierte Ansicht einschließlich der fehlenden RGB-Tiefeninformationen zu erzeugen.
  5. Einrichtung nach Anspruch 4, wobei die Prozessorschaltungsanordnung das faltende neuronale Netzwerk und das Generative Adversarial Network gemeinsam trainieren soll.
  6. Einrichtung nach Anspruch 1, wobei die Prozessorschaltungsanordnung ein erstes neuronales Netzwerk, das zum Erzeugen der gemischten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion trainieren soll, wobei das erste neuronale Netzwerk ein faltendes neuronales Netzwerk ist.
  7. Einrichtung nach Anspruch 1, wobei die Prozessorschaltungsanordnung ein zweites neuronales Netzwerk, das zum Erzeugen der synthetisierten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion und/oder einer VGG-Verlustfunktion und/oder einer GAN-Verlustfunktion trainieren soll, wobei das zweite neuronale Netzwerk ein Generative Adversarial Network ist.
  8. Einrichtung nach Anspruch 1, wobei die Prozessorschaltungsanordnung die synthetisierte Ansicht basierend auf einer Bewegungstrajektorie mit virtuellem Blickpunkt mit einer Sequenz von Zielpositionen oder Rotationsmatrizen erzeugen soll.
  9. Verfahren, umfassend: Reprojizieren einer ersten Rot-Grün-Blau(RGB)-Tiefenansicht und einer zweiten RGB-Tiefenansicht auf eine Zielkameraposition, um eine erste reprojizierte Ansicht und eine zweite reprojizierte Ansicht zu erhalten; Kombinieren der ersten reprojizierten Ansicht und der zweiten reprojizierten Ansicht in gemischte Ansichtsdaten basierend auf einer ersten Gewichtungskarte und einer zweiten Gewichtungskarte, wobei die gemischte Ansicht fehlende RGB-Tiefeninformationen aufgrund einer Okklusion oder einer Nichtokklusion beinhaltet; und Erzeugen einer synthetisierten Ansicht mit sechs Freiheitsgraden der gemischten Ansichtsdaten, wobei die synthetisierte Ansicht die fehlenden RGB-Tiefeninformationen beinhaltet.
  10. Verfahren nach Anspruch 9, ferner einschließlich Reprojizieren der ersten RGB-Tiefenansicht und der zweiten RGB-Tiefenansicht basierend auf Kameraparametern, wobei die Kameraparameter mindestens eines von einem extrinsischen Kameraparameter oder einem intrinsischen Kameraparameter beinhalten.
  11. Verfahren nach Anspruch 9, ferner einschließlich Anwenden eines faltenden neuronalen Netzwerks, um die erste reprojizierte Ansicht und die zweite reprojizierte Ansicht in die gemischten Ansichtsdaten zu kombinieren.
  12. Verfahren nach Anspruch 11, ferner einschließlich Anwenden eines Generative Adversarial Network, um die synthetisierte Ansicht einschließlich der fehlenden RGB-Tiefeninformationen zu erzeugen.
  13. Verfahren nach Anspruch 12, wobei das faltende neuronale Netzwerk und das Generative Adversarial Network gemeinsam trainiert werden.
  14. Verfahren nach Anspruch 9, ferner einschließlich Trainieren eines ersten neuronalen Netzwerks, das zum Erzeugen der gemischten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion, wobei das erste neuronale Netzwerk ein faltendes neuronales Netzwerk ist.
  15. Verfahren nach Anspruch 9, ferner einschließlich Trainieren eines zweiten neuronalen Netzwerks, das zum Erzeugen der synthetisierten Ansicht verwendet wird, unter Verwendung einer L1-Verlustfunktion und/oder einer VGG-Verlustfunktion und/oder einer GAN-Verlustfunktion, wobei das zweite neuronale Netzwerk ein Generative Adversarial Network ist.
  16. Verfahren nach Anspruch 9, ferner einschließlich Erzeugen der synthetisierten Ansicht basierend auf einer Bewegungstrajektorie mit virtuellem Blickpunkt mit einer Sequenz von Zielpositionen oder Rotationsmatrizen.
  17. Nichtflüchtiges computerlesbares Speicherungsmedium, das computerlesbare Anweisungen umfasst, die bei ihrer Ausführung einen Prozessor zu zumindest Folgendem veranlassen: Reprojizieren einer ersten Rot-Grün-Blau(RGB)-Tiefenansicht und einer zweiten RGB-Tiefenansicht auf eine Zielkameraposition, um eine erste reprojizierte Ansicht und eine zweite reprojizierte Ansicht zu erhalten; Kombinieren der ersten reprojizierten Ansicht und der zweiten reprojizierten Ansicht in gemischte Ansichtsdaten basierend auf einer ersten Gewichtungskarte und einer zweiten Gewichtungskarte, wobei die gemischte Ansicht fehlende RGB-Tiefeninformationen aufgrund einer Okklusion oder einer Nichtokklusion beinhaltet; und Erzeugen einer synthetisierten Ansicht mit sechs Freiheitsgraden der gemischten Ansichtsdaten, wobei die synthetisierte Ansicht die fehlenden RGB-Tiefeninformationen beinhaltet.
  18. Nichtflüchtiges computerlesbares Speicherungsmedium nach Anspruch 17, wobei die computerlesbaren Anweisungen bei ihrer Ausführung den einen oder die mehreren Prozessoren veranlassen zum Reprojizieren der ersten RGB-Tiefenansicht und der zweiten RGB-Tiefenansicht basierend auf Kameraparametern, wobei die Kameraparameter mindestens eines von einem extrinsischen Kameraparameter oder einem intrinsischen Kameraparameter beinhalten.
  19. Nichtflüchtiges computerlesbares Speicherungsmedium nach Anspruch 17, wobei die computerlesbaren Anweisungen bei ihrer Ausführung den einen oder die mehreren Prozessoren veranlassen zum Anwenden eines faltenden neuronales Netzwerks, um die erste reprojizierte Ansicht und die zweite reprojizierte Ansicht in die gemischten Ansichtsdaten zu kombinieren.
  20. Nichtflüchtiges computerlesbares Speicherungsmedium nach Anspruch 19, wobei die computerlesbaren Anweisungen bei ihrer Ausführung den einen oder die mehreren Prozessoren veranlassen zum Anwenden eines Generative Adversarial Network, um die synthetisierte Ansicht einschließlich der fehlenden RGB-Tiefeninformationen zu erzeugen.
DE112022001485.7T 2021-09-23 2022-09-12 Verfahren und einrichtungen zum synthetisieren von ansichten mit sechs freiheitsgraden aus spärlichen rgb-tiefe-eingaben Pending DE112022001485T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/483,635 2021-09-23
US17/483,635 US20220012860A1 (en) 2021-09-23 2021-09-23 Methods and apparatus to synthesize six degree-of-freedom views from sparse rgb-depth inputs
PCT/US2022/043242 WO2023048983A1 (en) 2021-09-23 2022-09-12 Methods and apparatus to synthesize six degree-of-freedom views from sparse rgb-depth inputs

Publications (1)

Publication Number Publication Date
DE112022001485T5 true DE112022001485T5 (de) 2024-02-01

Family

ID=79172739

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022001485.7T Pending DE112022001485T5 (de) 2021-09-23 2022-09-12 Verfahren und einrichtungen zum synthetisieren von ansichten mit sechs freiheitsgraden aus spärlichen rgb-tiefe-eingaben

Country Status (4)

Country Link
US (1) US20220012860A1 (de)
CN (1) CN118076969A (de)
DE (1) DE112022001485T5 (de)
WO (1) WO2023048983A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220012860A1 (en) * 2021-09-23 2022-01-13 Intel Corporation Methods and apparatus to synthesize six degree-of-freedom views from sparse rgb-depth inputs

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3090301A1 (en) * 2018-03-08 2019-09-12 Simile Inc. Methods and systems for producing content in multiple reality environments
GB2582315B (en) * 2019-03-19 2023-05-17 Sony Interactive Entertainment Inc Method and system for generating an image
US11049277B1 (en) * 2020-07-17 2021-06-29 Microsoft Technology Licensing, Llc Using 6DOF pose information to align images from separated cameras
CN112927279A (zh) * 2021-02-24 2021-06-08 中国科学院微电子研究所 一种图像深度信息生成方法、设备及存储介质
US20220012860A1 (en) * 2021-09-23 2022-01-13 Intel Corporation Methods and apparatus to synthesize six degree-of-freedom views from sparse rgb-depth inputs

Also Published As

Publication number Publication date
WO2023048983A1 (en) 2023-03-30
US20220012860A1 (en) 2022-01-13
CN118076969A (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
DE112019002589T5 (de) Tiefenlernsystem
DE102018111407A1 (de) Methode zum maschinellen lernen für automatisches modellieren von mehrwertigen ausgaben
DE102019130889A1 (de) Schätzung der tiefe eines mit einer monokularen rgb-kamera aufgenommenen videodatenstroms
DE112020003547T5 (de) Transfer Learning für neuronale Netzwerke
DE102017100609A1 (de) Online-Erfassung und Klassifizierung von dynamischen Gesten mit rekurrenten faltenden neuronalen Netzwerken
DE102021118479A1 (de) Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung
DE102020131896A1 (de) Deep learning-basierte auswahl von abtastwerten für adaptives supersampling
DE102019103310A1 (de) Schätzer for einen optimalen betriebspunkt für hardware, die unter einer beschränkung der gemeinsam genutzten leistung/wärme arbeitet
DE112021002965T5 (de) Generierung von szenengraphen für unmarkierte daten
DE102022119386A1 (de) Verfahren und einrichtung zum durchführen einer dichten vorhersage unter verwendung von transformatorblöcken
DE102020132557A1 (de) Vorrichtung und verfahren für asynchrones raytracing
DE112020002425T5 (de) Bewegungsvorhersage unter verwendung eines oder mehrerer neuronaler netzwerke
DE102019132001A1 (de) Vorrichtung und verfahren für einen hierarchischen beamtracer
DE102018124211A1 (de) Lernbasierte Kameraposenschätzung von Bildern einer Umgebung
DE102022100360A1 (de) Framework für maschinelles lernen angewandt bei einer halbüberwachten einstellung, um instanzenverfolgung in einer sequenz von bildframes durchzuführen
DE102021205690A1 (de) Trainieren neuronaler Netze mit begrenzten Daten unter Verwendung invertierbarer Augmentationsoperatoren
DE102021125897A1 (de) History-blockieren zum entrauschen dynamischer raytracing-szenen unter verwendung zeitlicher anhäufung
DE102021119882A1 (de) Videohintergrundschätzung unter verwendung von räumlich-zeitlichen modellen
DE102022118651A1 (de) Mehrfachauflösung-hash-codierung für neuronale netzwerke
DE102022113244A1 (de) Gemeinsame Form- und Erscheinungsbildoptimierung durch Topologieabtastung
DE102021109050A1 (de) Durch ein neuronales generative adversarial netzwerk unterstützte videokompression und -übertragung
DE102023113190A1 (de) Identifizieren von Applikationspuffern zum Nachbearbeiten und Wiederverwenden in sekundären Applikationen
DE102022121509A1 (de) Einzelbild-inversrendering
DE112022001485T5 (de) Verfahren und einrichtungen zum synthetisieren von ansichten mit sechs freiheitsgraden aus spärlichen rgb-tiefe-eingaben
DE102022107232A1 (de) Gepackter fehlerkorrekturcode (ecc) für komprimierten datenschutz