DE102021118479A1 - Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung - Google Patents

Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung Download PDF

Info

Publication number
DE102021118479A1
DE102021118479A1 DE102021118479.7A DE102021118479A DE102021118479A1 DE 102021118479 A1 DE102021118479 A1 DE 102021118479A1 DE 102021118479 A DE102021118479 A DE 102021118479A DE 102021118479 A1 DE102021118479 A1 DE 102021118479A1
Authority
DE
Germany
Prior art keywords
model
scene
orientation
images
object mask
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
DE102021118479.7A
Other languages
English (en)
Inventor
Danny Khazov
Itay Kaufman
Or Weiser
Zohar Avnat
Roee Lazar
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 DE102021118479A1 publication Critical patent/DE102021118479A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • 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/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • 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/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

Es werden Techniken erörtert, die sich auf das Einbetten eines 3D-Objektmodells in eine 3D-Szene beziehen. Derartige Techniken beinhalten ein Bestimmen von zwei oder mehr Objektmaskenbildern für zwei oder mehr entsprechende Kameras, die an der 3D-Szene trainiert werden; ein Projizieren von 3D-Punkten von dem 3D-Objektmodell auf die Bildebenen der zwei oder mehr Kameras; und ein Bestimmen einer Position und Orientierung des 3D-Objektmodells in der Szene unter Verwendung der Objektmaskenbilder und der projizierten 3D-Punkte.

Description

  • HINTERGRUND
  • Bei einem immersiven Videokontext und anderen Kontexten, wie etwa bei Computervisionsanwendungen, wird eine Anzahl von Kameras um eine interessierende Szene herum installiert. Die Kameras können zum Beispiel in einem Stadion um ein Spielfeld herum installiert sein. Unter Verwendung von Videos, die von den Kameras erhalten wird, wird ein punktwolkenvolumetrisches Modell erzeugt, das die Szene repräsentiert. Eine fotorealistische Ansicht aus einer virtuellen Ansicht innerhalb der Szene kann dann unter Verwendung einer Ansicht des volumetrischen Modells erzeugt werden, das mit einer erfassten Textur angemalt ist. Derartige Ansichten können in jedem Moment erzeugt werden, um eine immersive Erfahrung für einen Benutzer bereitzustellen. Des Weiteren kann die virtuelle Ansicht in dem 3D-Raum navigiert werden, um ein immersives Benutzererfahrung mit mehreren Freiheitsgraden bereitzustellen.
  • Das Erzeugen detaillierter 3D-Strukturen erfordert ressourcenmäßig einen hohen Aufwand, selbst wenn einige der Objekte statisch oder auf eine starre Bewegung beschränkt sind. Des Weiteren ist es schwierig, genaue Feindetailobjekte zu rekonstruieren. Derartige Schwierigkeiten können zum Teil dadurch überwunden werden, dass einige der Strukturen manuell vorkonstruiert und manuell in der Szene positioniert werden. Derartige Techniken weisen jedoch Probleme der Ausrichtung zwischen den Strukturen und der Szene auf. Andere Techniken zur automatisierten Objektpositionierung in einer 3D-Szene beinhalten visuelle Hüllentechniken und ein Trainieren eines Netzwerks, um das Objekt zu positionieren. Selbst für mäßig komplexe Objekte sind die Ergebnisse visueller Hüllentechniken jedoch mit dem in immersiven Videokontexten zur Verfügung stehenden Kameraerfassungsbereich ungenau. Auch Netzwerktrainingstechniken stellen keine ausreichende Genauigkeit bereit. Weitere Techniken beinhalten ein Vordefinieren von Merkmalen der 3D-Objekte und ein Auffinden von Entsprechungen in den Bildern. Wenn die Textur variiert oder in Kontexten mit einem begrenzten Kameraerfassungsbereich, sind derartige Techniken für nicht-texturierte Objekte jedoch nicht durchführbar.
  • Es ist wünschenswert, detaillierte 3D-Szenen bei einer immersiven Video- oder erweiterten Realitätsszenenerzeugung in Echtzeit bereitzustellen. Im Hinblick auf diese und andere Überlegungen werden die vorliegenden Verbesserungen benötigt. Derartige Verbesserungen können kritisch werden, da der Wunsch, neue und immersive Benutzererfahrungen bei der Bildgebung und dem Video bereitzustellen, eine zunehmende Verbreitung finden.
  • Figurenliste
  • Das hier beschriebene Material ist in den beiliegenden Figuren beispielhaft aber nicht einschränkend veranschaulicht. Aus Gründen der Einfachheit und Klarheit der Veranschaulichung sind Elemente, die in den Figuren veranschaulicht sind, nicht notwendigerweise maßstabsgetreu gezeichnet. Zum Beispiel können die Abmessungen einiger Elemente relativ zu anderen Elementen aus Klarheitsgründen übertrieben sein. Ferner werden, wo es als angebracht angesehen wird, Bezugszeichen in den verschiedenen Figuren wiederholt, um entsprechende oder analoge Elemente anzuzeigen. In den Figuren gilt:
    • 1 veranschaulicht ein beispielhaftes System zum Einbetten eines 3D-Modells eines 3D-Objekts in eine erweiterte Realitätsszene;
    • 2 veranschaulicht ein beispielhaftes Kamera-Array, das an einer beispielhaften 3D-Szene trainiert wird;
    • 3 veranschaulicht einen Teil eines beispielhaften 3D-Modells;
    • 4 veranschaulicht ein beispielhaftes Segmentierungsbild, das basierend auf einem entsprechenden Eingangsbild erzeugt wird;
    • 5 veranschaulicht eine beispielhafte binäre Objektmaske, die basierend auf einem entsprechenden Eingangsbild erzeugt wird;
    • 6 veranschaulicht ein beispielhaftes Objektmaskenbild, das basierend auf einem entsprechenden Eingangsbild erzeugt wird;
    • 7 veranschaulicht eine beispielhafte Überlagerung projizierter 3D-Modellpunkte mit einer 2D-Repräsentation eines 3D-Objekts;
    • 8 veranschaulicht eine beispielhafte Überlagerung projizierter 3D-Modellpunkte mit einer dilatierten 2D-Repräsentation eines 3D-Objekts;
    • 9 veranschaulicht eine beispielhafte Überlagerung projizierter 3D-Modellpunkte basierend auf einer endgültigen Position und Orientierung eines 3D-Modells mit einer 2D-Repräsentation eines 3D-Objekts;
    • 10 veranschaulicht einen beispielhaften Prozess zum Einbetten eines 3D-Modells eines 3D-Objekts in eine erweiterte Realitätsszene;
    • 11 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Erzeugen einer virtuellen Ansicht innerhalb einer 3D-Szene veranschaulicht;
    • 12 ist ein veranschaulichendes Diagramm eines beispielhaften Systems zum Erzeugen einer virtuellen Ansicht innerhalb einer 3D-Szene;
    • 13 ist ein veranschaulichendes Diagramm eines beispielhaften Systems; und
    • 14 veranschaulicht eine beispielhafte Vorrichtung, die gemäß mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine oder mehrere Ausführungsformen oder Implementierungen werden nun unter Bezugnahme auf die beigefügten Figuren beschrieben. Obwohl spezielle Konfigurationen und Anordnungen erfolgen werden, versteht es sich, dass dies lediglich zu veranschaulichenden Zwecken dient. Der Fachmann wird erkennen, dass andere Konfigurationen und Anordnungen eingesetzt werden können, ohne vom Inhaltsgedanken und dem Schutzumfang der Beschreibung abzuweichen. Für den Fachmann ist es offensichtlich, dass die hier beschriebenen Techniken und/oder Anordnungen auch in einer Vielfalt anderer Systeme und Anwendungen außer den hier beschriebenen eingesetzt werden können.
  • Obwohl die folgende Beschreibung verschiedene Implementierungen darlegt, die in Architekturen manifestiert sein können, wie etwa in Ein-Chip-System-Architekturen (System-ona-Chip architectures, SoC-Architekturen), sind Implementierungen der hier beschriebenen Techniken und/oder Anordnungen nicht auf spezielle Architekturen und/oder Rechensysteme beschränkt und können durch eine beliebige Architektur und/oder ein beliebiges Rechensystem für ähnliche Zwecke implementiert werden. Beispielsweise können verschiedene Architekturen, die zum Beispiel mehrere Integrierter-Schaltkreis-Chips (Integrated Circuit chips, IC-Chips) und/oder -Gehäuse und/oder verschiedene Rechenvorrichtungen und/oder Unterhaltungselektronikvorrichtungen (Consumer Electronics devices, CE-Vorrichtungen), wie etwa Settop-Boxen, Smartphones usw., einsetzen, die hier beschriebenen Techniken und/oder Anordnungen implementieren. Obwohl die folgende Beschreibung zahlreiche spezielle Einzelheiten, wie etwa Logikimplementierungen, Typen und Wechselbeziehungen von Systemkomponenten, Logikpartitionierungs-/Integrationsauswahlen usw. darlegt, kann der beanspruchte Gegenstand auch ohne derartige spezielle Einzelheiten in die Praxis umgesetzt werden. In anderen Fällen werden einige Gegenstände, wie etwa zum Beispiel Steuerstrukturen und vollständige Softwareanweisungssequenzen, nicht ausführlich gezeigt, um die Klarheit des hier offenbarten Gegenstands der Erfindung nicht zu beeinträchtigen.
  • Der hier offenbarte Gegenstand der Erfindung kann in Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert sein. Der hier offenbarte Gegenstand der Erfindung kann auch als auf einem maschinenlesbaren Medium gespeicherte Anweisungen implementiert sein, die durch einen oder mehrere Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Medium kann ein beliebiges Medium und/oder einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer durch eine Maschine (z. B. eine Rechenvorrichtung) lesbaren Form beinhalten. Beispielsweise kann ein maschinenlesbares Medium Festwertspeicher (ROM); Direktzugriffsspeicher (RAM); Magnetplattenspeichermedien; optische Speichermedien; Flash-Speichervorrichtungen; elektrische, optische, akustische oder andere Formen von propagierten Signalen (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.) und anderes beinhalten.
  • Bezüge in der Beschreibung auf „eine Implementierung“, „eine beispielhafte Implementierung “ usw. geben an, dass die beschriebene Implementierung ein besonderes Merkmal, eine besondere Struktur oder eine Eigenschaft beinhalten kann, wobei aber nicht notwendigerweise jede Ausführungsform dieses besondere Merkmal, die besondere Struktur oder die besondere Eigenschaft beinhalten muss. Zudem verweisen diese Ausdrücke nicht notwendigerweise auf dieselbe Implementierung. Wenn ein spezielles Merkmal, eine spezielle Struktur oder eine spezielle Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird außerdem vorausgesetzt, dass es im Kenntnisbereich eines Fachmanns liegt, ein derartiges Merkmal, eine derartige Struktur oder eine derartige Eigenschaft in Verbindung mit anderen Implementierungen einzusetzen, unabhängig davon, ob diese hier gegebenenfalls explizit beschrieben werden.
  • Die Begriffe „im Wesentlichen“, „nahe“, „ungefähr“, „in der Nähe von“ und „etwa“ verweisen allgemein darauf, dass ein Wert innerhalb von +/- 10% eines Zielwerts liegt. Sofern nichts anderes in dem expliziten Kontext ihrer Verwendung spezifiziert ist, bedeuten die Begriffe „im Wesentlichen gleich“, „etwa gleich“ und „ungefähr gleich“, dass es nicht mehr als zufällige Variationen zwischen den so beschriebenen Dingen gibt. In der Technik beträgt eine derartige Variation typischerweise nicht mehr als +/-10 % eines vorbestimmten Zielwerts. Sofern nicht anders angegeben, gibt die Verwendung der Ordnungsadjektive „erste“, „zweite“ und „dritte“ usw. zum Beschreiben eines gemeinsamen Objekts lediglich an, dass auf unterschiedliche Instanzen ähnlicher Objekte Bezug genommen wird, und ist nicht so zu verstehen, dass die so beschriebenen Objekte in einer gegebenen Reihenfolge vorliegen müssen, weder zeitlich, räumlich, in Rangfolge nach in irgendeiner anderen Weise.
  • Hier werden in Bezug auf das Einbetten komplexer 3D-Objekte in eine immersive erweiterte Realitätsszene, die auf einer Bildsegmentierung basiert, verschiedene Verfahren, Vorrichtungen, Einrichtungen, Rechenplattformen und Artikel beschrieben.
  • Wie oben beschrieben, weist das Erzeugen ausführlicher 3D-Strukturen in einer 3D-Szene eine Vielfalt von Schwierigkeiten auf. Bei einigen Ausführungsformen wird ein 3D-Modell so erzeugt, dass das Modell ein 3D-Objekt in einer Szene repräsentiert. Typischerweise werden derartige 3D-Modelle für Objekte erzeugt, von denen erwartet wird, dass sie in der Szene weitgehend statisch sind, wie etwa Ziele in einem Sportereignis oder andere stationäre und weitgehend bewegungslose Objekte (Flaggen, Pylonen usw.). Insbesondere kann es wünschenswert sein, eine große Detailmenge in diesen Objekten in einer virtuellen Ansicht der rekonstruierten 3D-Szene aufzuweisen, in der das 3D-Modell enthalten ist. Zum Einstellen einer Farbe für das Objekt muss darüber hinaus die Position des Objekts sehr genau sein. Das eine oder die mehreren 3D-Modelle können eine beliebige geeignete Datenstruktur beinhalten, wie etwa eine Netzmodelldatenstruktur, die Positionen von Eckpunkten des Netzes im 3D-Raum angibt. Das Modell kann auch Texturinformationen beinhalten.
  • Nach der Modellerzeugung befindet sich das Modell mit sechs oder mehr Freiheitsgraden (Position und Orientierung einschließlich x-, y-, z-Position und Gier-, Nick-, Rollorientierung oder anderen Positions- und Orientierungsdatenstrukturen) in einem 3D-Modell einer Szene. Die 3D-Szene kann als eine erweiterte Realität, eine immersive 3D-Szene usw. charakterisiert werden. Um die Position und Orientierung des 3D-Objekts unter Verwendung seiner gegebenen 3D-Struktur (d. h. des Modells) zu erhalten, werden die Projektionen des tatsächlichen 3D-Objekts in der Szene in zwei oder mehr Einzelbildern bestimmt, die Kameraansichten der Szene entsprechen. Die Projektionen können unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken bestimmt werden, wie etwa durch eine Anwendung eines Segmentierungsnetzwerks (z.B. eines neuronalen Faltungsnetzwerks) auf Einzelbilder (die z.B. Bildebenen entsprechen) der Szene, die von den Kameras erhalten wird. Zum Beispiel können die Projektionen binäre Bildmasken mit einem ersten Wert (z.B. 1) für Objektpixel und einem zweiten Wert (z.B. 0) für Nichtobjektpixel sein, die auch als Hintergrundpixel charakterisiert werden können. Die binären Projektionen werden dann zu Graustufenbildern dilatiert, um weiche Bilder oder Funktionen zum Positionieren des 3D-Modells in der Szene zu erzeugen.
  • Eine anfängliche Schätzung der Position und Orientierung des 3D-Modells wird erzeugt und das 3D-Modell wird auf die Einzelbilder (z.B. Bildebenen) projiziert, die den Kameras entsprechen, die für die Segmentierung bereitgestellt werden. Bei einigen Ausführungsformen werden ausgewählte Punkte auf Flächen des 3D-Modells (z.B. Dreiecke oder andere Formen zwischen den Eckpunkten) unter Verwendung kalibrierter Projektionsmatrizen, welche die 3D-Koordinaten der Szene in die 2D-Bildebenenkoordinaten für jede der Kameras überführen, auf die Bildebenen der Kameras projiziert, die an der Szene trainiert werden. Unter Verwendung der zwei oder mehr Graustufenprojektionsbilder aus der Segmentierung wird dann ein Optimierungsproblem (einschließlich entsprechender Projektionen des 3D-Modells auf die Bildebene) gelöst, um eine endgültige Position und Orientierung des 3D-Modells innerhalb der Szene so bereitzustellen, dass die Projektion des 3D-Modells mit den Segmentierungseinzelbildern zusammenfällt. Idealerweise positioniert die Lösung des Optimierungsproblems alle projizierten Punkte aus dem 3D-Modell innerhalb des 2D-Bildes des Objekts, das über die erörterten Maskierungs- und Dilatationsoperationen erreicht wird. Bei der Erzeugung einer virtuellen Ansicht innerhalb der 3D-Szene (z.B. einer beliebigen verfügbaren Position und einer beliebigen verfügbaren Orientierung) wird das positionierte und orientierte 3D-Modell dann als Teil der Szene verwendet, was ein verbessertes Detail des Objekts im Vergleich zur Erzeugung des Objekts in der Szene unter Verwendung anderer Techniken bereitstellt. Das positionierte und orientierte 3D-Modell ist dann Teil einer immersiven Ansicht der Szene, wie sie aus der Perspektive der virtuellen Ansicht bereitgestellt wird.
  • Derartige Techniken können in einem beliebigen immersiven 3D-Kontext oder einem erweiterten Realitätskontext angewandt werden. Es gibt zum Beispiel viele Kontexte und Anwendungen, die ein Verständnis der Szenenstruktur erfordern, wie etwa ein autonomes Fahren, eine Roboternavigation und/oder eine Interaktion mit der Umgebung und eine vollständige 3D-Rekonstruktion zum Erzeugen von freidimensionalen immersiven Videos. Bei derartigen Kontexten und Anwendungen besteht eine der Hauptaufgaben, die zum Wiedergeben einer Szene von einer virtuellen Kamera oder Ansicht erforderlich ist, darin, eine hochgenaue und stabile Position und Orientierung komplexer 3D-Objekte innerhalb der Szene zu erhalten. Die hier erörterten Techniken ermöglichen eine automatische Positions- und Orientierungsbestimmung für modellierte Strukturen komplexer Objekte, wodurch Arbeitskräfte eingespart und eine Genauigkeit verbessert werden. Zum Beispiel liefern die hier erörterten Techniken im Vergleich zu aktuellen manuellen Techniken eine ähnliche oder verbesserte Genauigkeit und, da manuelle Techniken typischerweise etwa 30 Minuten dauern, während die hier erörterten Techniken in Echtzeit (z.B. in der Größenordnung von 10 bis 30 Millisekunden oder weniger liegen), ermöglichen die erörterten Techniken neben anderen Vorteilen die Fähigkeit, mehrere Ereignisse gleichzeitig zu verbreiten.
  • 1 veranschaulicht ein beispielhaftes System 100 zum Einbetten eines 3D-Modells eines 3D-Objekts in eine erweiterte Realitätsszene, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung eingerichtet ist. Das System 100 kann über eine beliebige Anzahl von diskreten Vorrichtungen auf eine beliebige geeignete Weise implementiert werden. Wie in 1 gezeigt, weist das System 100 ein Kamera-Array 101, ein Bildsegmentierungs- und Maskierungsmodul 102, ein Bilddilatationsmodul 103, einen 3D-Modellgenerator 104, einen 3D-Modellpunktsampler 105, ein 3D-Punktprojektionsmodul 106, ein Positions- und Orientierungsoptimierungsmodul 107 und ein virtuelles Ansichtsmodul 108 auf. Das System 100 kann in einer beliebigen Anzahl von geeigneten Formfaktorvorrichtungen implementiert sein, die ein oder mehrere umfassen von einem Server-Computer, einer Cloud-Rechenumgebung, einem Personal Computer, einem Laptop-Computer, einem Tablet-Computer, einem Smartphone, einer Spielkonsole, einer tragbaren Vorrichtung, einer Anzeigevorrichtung und/oder einer Komplettvorrichtung und/oder einer dualen Komplettvorrichtung der Ähnlichen. Insbesondere kann das Kamera-Array 101 bei einigen Ausführungsformen separat von einer Vorrichtung implementiert werden, in der die verbleibenden Komponenten des Systems 100 implementiert sind. Die Eingangsbilder 111, die über das Kamera-Array 101 erfasst werden, weisen gleichzeitig aufgenommene Bilder einer Szene 110 auf. So wie der Begriff „gleichzeitig erfasste Bilder“ hier verwendet wird, gibt er Bilder an, die synchronisiert sind, um zum gleichen oder nahezu gleichen Zeitpunkt innerhalb einer Toleranz, wie etwa 300 ms, erfasst zu werden. Bei einigen Ausführungsformen werden die erfassten Bilder als synchronisiertes erfasstes Video erfasst. Zum Beispiel können die Komponenten des Systems 100 in ein beliebiges Multikamera-Multiprozessorsystem integriert sein, um immersive visuelle Erfahrungen für Betrachter einer Szene bereitzustellen. Obwohl dies in Bezug auf gleichzeitig erfasste Bilder erörtert wird, können bei einigen Ausführungsformen die Eingangsbilder 111 zu unterschiedlichen Zeiten erfasst werden, solange sie Bilder derselben Szene erfassen und die Kameras in Bezug auf die Szene kalibriert sind.
  • 2 veranschaulicht ein beispielhaftes Kamera-Array 101, das an einer beispielhaften 3D-Szene 110 trainiert wird, die gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. Bei der veranschaulichten Ausführungsform beinhaltet das Kamera-Array 101 38 Kameras, die auf einem Sportfeld trainiert werden. Das Kamera-Array 101 kann jedoch eine beliebige geeignete Anzahl von Kameras beinhalten, die an der Szene 110 trainiert werden, wie etwa nicht weniger als 20 Kameras. Zum Beispiel kann das Kamera-Array 101 an der Szene 110 trainiert werden, um ein 3D-Modell der Szene 110 zu erzeugen, und weniger Kameras können keine adäquaten Informationen bereitstellen, um das 3D-Modell zu erzeugen. Des Weiteren kann die Szene 110 eine beliebige geeignete Szene sein, wie etwa ein Sportfeld, ein Sportplatz, eine Bühne, ein Arenaboden usw. Das Kamera-Array 101 kann in einem (nicht gezeigten) Stadion oder einer anderen Struktur, welche die Szene 110 umgibt, und entlang der strukturumgebenden Szene 110 montiert, kalibriert und an der Szene 110 trainiert werden, um Bilder oder Video zu erfassen. Wie gezeigt, weist jede Kamera des Kamera-Arrays 101 eine spezielle Ansicht der Szene 110 auf. Zum Beispiel weist die Kamera 201 eine erste Ansicht der Szene 110 auf, die Kamera 202 weist eine zweite Ansicht der Szene 110 auf und so weiter. So wie der Begriff „Ansicht“ hier verwendet wird, gibt er den Bildinhalt einer Bildebene einer speziellen Kamera des Kamera-Arrays 101 oder einen Bildinhalt einer beliebigen Ansicht von einer virtuellen Kamera an, die sich innerhalb der Szene 110 befindet. Insbesondere kann die Ansicht eine erfasste Ansicht (z.B. eine Ansicht, die unter Verwendung einer Bilderfassung an einer Kamera erhalten wird) sein, sodass mehrere Ansichten Repräsentationen derselben Person, desselben Objekts, derselben Einheit usw. beinhalten. Des Weiteren weist jede Kamera des Kamera-Arrays 101 eine Bildebene auf, die dem von Szene 110 aufgenommenen Bild entspricht.
  • Unter Bezugnahme auf 1 fügen die hier erörterten Techniken ein 3D-Modell eines 3D-Objekts innerhalb der Szene 110 für eine verbesserte virtuelle Ansicht innerhalb der Szene 110 ein. Das heißt, das 3D-Modell wird mit einem verbesserten Detail in Bezug darauf erzeugt, was unter Verwendung von Bildgebungs- und Rekonstruktionstechniken erhalten werden kann. In dem Punktwolkenmodell oder einem anderen volumetrischen Modell der Szene 110 befindet sich das 3D-Modell in dem Punktwolkenmodell oder dem anderen volumetrischen Modell und ist darin enthalten, und Sichtpunkte, die das 3D-Modell (und das 3D-Objekt) enthalten, werden unter Verwendung des 3D-Modells für eine verbesserte immersive Erfahrung erzeugt. Um das 3D-Modell innerhalb der Szene zu positionieren, werden die Position (z.B. die x, y, z-Koordinaten) und die Orientierung (z.B. die Gier-, Nick- und Rollwerte) des 3D-Modells bestimmt. Die erörterten Techniken stellen ein automatisches Verfahren zum Bereitstellen einer hochgenauen und präzisen Position und Orientierung eines komplexen 3D-Modells basierend auf einer Segmentierung von 2D-Bildern bereit, welch die Repräsentationen des 3D-Objekts beinhalten, sodass die 2D-Bilder durch zwei oder mehr Kameras des Kamera-Arrays 101 erhalten werden. Insbesondere können derartige Techniken vorteilhaft selbst auf nicht texturierte komplexe 3D-Modelle angewandt werden.
  • Das Kamera-Array 101 erhält zwei oder mehr Eingangsbilder 111, die jeweils einer bestimmten Kamera des Kamera-Arrays 101 entsprechen. Insbesondere können zwei Eingangsbilder 111 eingesetzt werden, um die hier erörterten Techniken durchzuführen, aber mehr Eingangsbilder 111 stellen eine größere Genauigkeit und Stabilität bereit. Des Weiteren werden die folgenden Techniken in Bezug auf das Positionieren und Orientieren eines einzelnen 3D-Modells für ein entsprechendes 3D-Objekt 121 innerhalb der Szene 110 erörtert. Es kann jedoch eine beliebige Anzahl von 3D-Modellen, die jeweils einem speziellen 3D-Objekt entsprechen, innerhalb der Szene 110 positioniert und orientiert werden. Die erörterten Techniken können vor einer Echtzeitvideoerfassung und einer Punktwolkenerzeugung durchgeführt werden oder sie können in Echtzeit durchgeführt werden. Bei einigen Ausführungsformen kann eine zuvor bestimmte 3D-Modellposition in bestimmten Intervallen (z.B. jede Minute, alle 5 Minuten usw.) während der Echtzeitbilderfassung geändert oder verfeinert werden, sodass die erörterten Techniken in Echtzeit (z.B. nach einer bestimmten Zeitinstanz einer Videoeinzelbilderfassung und vor einer nächsten Zeitinstanz der Videoeinzelbilderfassung) durchgeführt werden.
  • Für jedes derartige 3D-Objekt 121 wird ein 3D-Modell 115 erzeugt, wie mit Bezug auf den 3D-Modellgenerator 104 gezeigt wird. Hier wird der Begriff Objekt verwendet, um ein tatsächliches Objekt der realen Welt anzugeben, während der Begriff Modell verwendet wird, um eine Datenstruktur anzugeben, die das Objekt repräsentiert. Das modellierte 3D-Objekt 121 kann ein beliebiges Objekt innerhalb der Szene 110 sein. Es ist zu beachten, dass allgemein statische Objekte mit höheren Detailniveaus zu einem größeren Grad von einer 3D-Modellierung profitieren können, da die Kameras eine größere Schwierigkeit aufweisen können, ein derartiges Detail zu erhalten, während die statische Natur des 3D-Objekts keine Änderung des Objekts in Echtzeit erfordert. Bei einigen Ausführungsformen ist das 3D-Modell 115 ein starres Modell des 3D-Objekts 121, sodass keine Bewegung von Komponenten des 3D-Modells bereitgestellt wird und das 3D-Modell 115 innerhalb der Szene 110 mit 6 Freiheitsgraden vollständig definiert ist: 3 für die Position und 3 für die Orientierung. Obwohl hier Koordinatensysteme mit Bezug auf x-, y- und z-Koordinaten, die eine Position angeben, und mit Bezug auf Gier-, Nick- und Rollwerte erörtert werden, die eine Orientierung angeben, können beliebige andere Koordinatensysteme verwendet werden. Zum Beispiel wird ein Koordinatensystem auf die Szene 110 angewandt und Objekte und Modelle können unter Verwendung des angewandten Koordinatensystems innerhalb der Szene positioniert und orientiert werden.
  • Obwohl das 3D-Modell 115 hier mit Bezug auf ein starres 3D-Modell veranschaulicht wird, ist bei einigen Ausführungsformen ein nicht-starres Modell, in dem Komponenten oder Segmente enthalten sind, die sich relativ zueinander bewegen können. Bei einigen Ausführungsformen ist das 3D-Modell 115 ein nicht-starres 3D-Modell, das einen oder mehrere Freiheitsgrade für Bewegungen zwischen 3D-Segmenten des 3D-Modells 115 beinhaltet. Eine derartige Bewegung kann um Verbindung, linear entlang einer definierten Achse erfolgen oder eine Rotation um eine definierte Achse usw. sein. Bei einigen Ausführungsformen kann eine derartige Intramodellbewegung innerhalb definierter Bereiche eingeschränkt sein. Wie hier erörtert wird, können die hier erörterten Techniken insbesondere auf diese nicht-starren oder komplexen Modelle erweitert werden, die Formationen von Teilen, Komponenten, Segmenten oder Objekten aufweisen, indem ermöglicht wird, dass sich die Freiheitsgrade, die mit den Teilen assoziiert sind, während der Positionierungs- und Orientierungsoptimierung ändern. Das heißt, die erörterten 6 Freiheitsgrade können so erweitert werden, dass sie weitere Freiheitsgrade zum Positionieren und Orientieren von Teilen des 3D-Modells 115 während einer derartigen Optimierung aufweisen. Bei einigen Ausführungsformen beinhaltet das Bestimmen einer endgültigen Position und Orientierung des 3D-Modells 115 (wie hier weiter unten erörtert wird) ein Bestimmen endgültiger Parameter für den einen oder die mehreren Freiheitsgrade für die Bewegungen zwischen Segmenten basierend auf einer Optimierung einer Kostenfunktion. Die anfänglichen Schätzungen für derartige Parameter können auf einem neutralen Zustand des 3D-Modells 115 oder auf einem vorherigen 3D-Szenenaufbau oder Ähnlichen basieren.
  • Für ein beliebiges gegebenes 3D-Objekt 121 wird das 3D-Modell 115 unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken erzeugt. Bei einigen Ausführungsformen wird das 3D-Modell 115 über einen LIDAR-Scan des 3D-Objekts 121 erzeugt. Bei einigen Ausführungsformen wird das 3D-Modell 115 über ein manuelles Anpassen in einer 3D-Wiedergabesoftware basierend auf mehreren Bildern von kalibrierten Kameras (Kamera-Array 101 oder einer anderen Kamera-Gruppierung oder einem anderen Kamera-Array) erzeugt, die von dem 3D-Objekt 121 aufgenommen wurden. Des Weiteren kann das 3D-Modell 115 eine beliebige geeignete Datenstruktur aufweisen. Bei einigen Ausführungsformen wird das 3D-Modell 115 durch eine 3D-Objektnetzdatenstruktur repräsentiert, die Positionen im 3D-Raum von Eckpunkten und Flächen des Netzes beinhaltet. Bei einigen Ausführungsformen ist das 3D-Modell 115 ein Netzobjektmodell, das Indizes, die das 3D-Objekt 121 repräsentieren, und Flächen aufweist, die zwischen den Indizes liegen und durch diese definiert werden. Des Weiteren kann das 3D-Modell 115 Texturinformationen beinhalten, die derartigen Eckpunkten und den Flächen (z.B. dreieckigen Flächen der Eckpunkte) entsprechen, jedoch werden diese Texturinformationen nicht benötigt, um das 3D-Modell 115 unter Verwendung der hier erörterten Techniken zu positionieren und zu orientieren. Zum Beispiel können die erörterten Techniken auf texturierte oder nicht texturierte Modelle angewandt werden.
  • 3 veranschaulicht einen Teil eines beispielhaften 3D-Modells 115, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung eingerichtet ist. Wie gezeigt, beinhaltet das 3D-Modell 115 eine große Anzahl von Eckpunkten, wie etwa den Eckpunkt 301, und Flächen, wie etwa die Flächen 302, 303, 304, die zwischen den Eckpunkten definiert sind. Bei dem veranschaulichten Beispiel ist das 3D-Modell 115 ein Dreiecksnetzmodell, sodass die Flächen jeweils eine Dreiecksform aufweisen. Das 3D-Modell 115 repräsentiert das 3D-Objekt 121, indem die Positionen der Eckpunkte variiert werden, um die Oberflächen und Kanten des 3D-Objekts 121 einander anzunähern. Unter Verwendung eines dichten Netzes sind 3D-Modelle hoher Qualität erreichbar und liefern hochrealistische virtuelle Ansichten, wenn sie in die 3D-Szene 110 eingefügt und repliziert werden.
  • Erneut in 1 kehrt die Erörterung jetzt zurück zum Verarbeiten von Eingangsbildern 111. Nachfolgend wird ein einzelnes Bild veranschaulicht und die Erörterung betrifft das Verarbeiten eines einzelnen Bildes. Die erörterten Techniken werden jedoch für eine beliebige Anzahl von Eingangsbildern 111 (d.h. zwei oder mehr Eingangsbilder 111) durchgeführt. Das Bildsegmentierungs- und Maskierungsmodul 102 empfängt Eingangsbilder 111, die zumindest einen Teil einer 2D-Repräsentation des 3D-Objekts 121 beinhalten. Das Bildsegmentierungs- und Maskierungsmodul 102 erzeugt für jedes der Eingangsbilder 111 eine entsprechende binäre Objektmaske 112, sodass jede binäre Objektmaske 112 einen ersten Pixelwert (z.B. 1) für Pixel, die als innerhalb der 2D-Repräsentation des 3D-Objekts 121 liegend bestimmt werden, und einen zweiten Pixelwert (z.B. 0) für Pixel beinhaltet, die als außerhalb der 2D-Repräsentation des 3D-Objekts 121 liegend bestimmt werden.
  • Das Bildsegmentierungs- und Maskierungsmodul 102 kann eine binäre Objektmaske 112 unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken erzeugen. Bei einigen Ausführungsformen wendet das Bildsegmentierungs- und Maskierungsmodul 102 ein vortrainiertes neuronales Faltungsnetzwerk (Convolutional Neural Network, CNN) auf jedes der Eingangsbilder 111 an, sodass die Ausgabe des CNN eine Wahrscheinlichkeit dafür bereitstellt, ob jedes Pixel (oder eine Gruppe von Pixeln) ein Teil der 2D-Repräsentation des 3D-Objekts 121 ist. Diese Werte können dann mit Schwellenwerten verglichen werden, um binäre Objektmasken 112 zu erzeugen. Andere Segmentierungstechniken stehen zur Verfügung und können durch das Bildsegmentierungs- und Maskierungsmodul 102 angewandt werden.
  • 4 veranschaulicht ein beispielhaftes Segmentierungsbild 401, das basierend auf einem entsprechenden Eingangsbild erzeugt wird, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. Wie gezeigt, wird das Bildsegmentierungs- und Maskierungsmodul 102 angewandt, um Bildgebiete oder Segmente 402, von denen angenommen wird, dass sie in der 2D-Projektion des 3D-Objekts 121 enthalten sind (oder eine hohe Wahrscheinlichkeit dafür aufweisen), die in diesem Beispiel als eine Basketballanlage mit einem Korb veranschaulicht ist, und ein Hintergrundgebiet 403 bereitzustellen. Wie erörtert, wird eine derartige Segmentierung für jedes der Eingangsbilder 111 unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken, wie etwa einer Anwendung eines vortrainierten CNN, bereitgestellt.
  • 5 veranschaulicht eine beispielhafte binäre Objektmaske 112, die basierend auf einem entsprechenden Eingangsbild erzeugt wird und die gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung eingerichtet ist. Wie gezeigt, erzeugt das Bildsegmentierungs- und Maskierungsmodul 102 eine binäre Objektmaske 112, sodass die binäre Objektmaske 112 erste Pixelwerte 501 (z.B. Pixelwerte von 1) für jene Pixel beinhaltet, die als Teil einer 2D-Repräsentation 511 des 3D-Objekts 121 angesehen werden und die als Objektpixel oder dergleichen charakterisiert werden können, und zweite Pixelwerte 502 (z.B. Pixelwerte von 0) für jene Pixel aufweist, die als außerhalb der 2D-Repräsentation 511 des 3D-Objekts 121 liegend angesehen werden und die als Hintergrundpixel oder Nichtobjektpixel oder dergleichen charakterisiert werden können.
  • Zurück in 1 wird jede binäre Objektmaske 112 durch das Bilddilatationsmodul 103 empfangen, das eine Dilatation, eine inverse Abstandstransformation oder eine andere Unschärfetechnik auf jede binäre Objektmaske 112 anwendet, um ein entsprechendes Objektmaskenbild 113 zu erzeugen. Bei einigen Ausführungsformen sind die Objektmaskenbilder 113 Graustufenbilder. Unter Bezugnahme auf 5 behält zum Beispiel bei einigen Ausführungsformen die Dilatationsverarbeitung einen Maximalwert für die ersten Pixelwerte 501 bei und stellt einen Gradienten bereit, der sich von den Rändern, die durch die ersten Pixelwerte 501 (und die 2D-Repräsentation 511) definiert sind, in das Hintergrundgebiet erstreckt, das durch die zweiten Pixelwerte 502 definiert ist. Derartige Techniken bieten Vorteile bei der nachfolgenden Positions- und Orientierungsoptimierungsverarbeitung. Beispielsweise stellt eine derartige Dilatationsverarbeitung eine schnellere Konvergenz bereit. Des Weiteren kann eine derartige Dilatationsverarbeitung vermeiden, dass Gittersuchtechniken in Kontexten notwendig sind, in denen die anfängliche Position ungenau ist.
  • 6 veranschaulicht ein beispielhaftes Objektmaskenbild 113, das basierend auf einem entsprechenden Eingangsbild erzeugt wird, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung eingerichtet ist. Wie gezeigt, beinhaltet das Objektmaskenbild 113 eine dilatierte 2D-Repräsentation 605 mit ersten Pixelwerten 501 wie bei der binären Objektmaske 112, sodass die ersten Pixelwerte 501 Maximalwerte in der Graustufe des Objektmaskenbildes 113 (z.B. Werte von 255) sein können. Auf ähnliche Weise beinhaltet das Objektmaskenbild 113 zweite Pixelwerte 502 wie bei der binären Objektmaske 112 für jene Pixel, die jenseits eines bestimmten Abstands von einem Rand der 2D-Repräsentation 511 (z.B. von Rändern in der binären Objektmaske 112) liegen, wie mit Bezug auf die dilatierte 2D-Repräsentation 605 gezeigt wird. Zum Beispiel können die zweiten Pixelwerte 502 Minimalwerte in der Graustufe des Objektmaskenbildes 113 (z.B. Werte von 0) sein. Zwischen diesen ersten Pixelwerten 501 und zweiten Pixelwerten 502 wird ein Randgradient 610 mittels einer Dilatation, einer inversen Abstandstransformation oder anderer Unschärfen bereitgestellt.
  • Wie gezeigt, wird in einem ersten Beispiel 611 der Randgradient 610 so bereitgestellt, dass Pixelwerte oder Intensitäten 602 ein bestimmtes Profil 612 bezüglich der Pixelposition 601 aufweisen. Im Kontext von 6 ist die Pixelposition 601 so definiert, dass sie sich von einer Position innerhalb eines Objekts über eine Objektgrenze (z.B. über eine erkannte Objektgrenze) entlang einer Richtung orthogonal (oder nahezu orthogonal) zu der Objektgrenze und zu einer Position außerhalb des Objekts erstreckt. Wie gezeigt, stellt das Profil 612, wie erörtert, eine Reduzierung der Pixelintensität 602 von einem Maximalwert (z.B. 255 vollständig innerhalb des Objekts) zu einem Minimalwert (z.B. 0 vollständig außerhalb des Objekts) bereit. Bei dem ersten Beispiel 611 beinhaltet das Profil 612 einen linearen Anteil 603, der sich von dem Maximalwert zu dem Minimalwert erstreckt. Obwohl ein linearer Anteil 603 veranschaulicht wird, kann eine beliebige monoton abnehmende Funktion verwendet werden. Wie gezeigt, beinhaltet die Dilatationsoperation ein Erzeugen eines zunehmenden Gradienten in der binären Objektmaske 112 (z.B. einem segmentierten Bild) von einem Teil der Pixel außerhalb der dilatierten 2D-Repräsentation 605 (z.B. außerhalb eines Objekts) in Richtung auf Pixel innerhalb der dilatierten 2D-Repräsentation 605.
  • Bei einigen Ausführungsformen wird für jede Anwendung eine konstante oder gleiche Dilatationsoperation und eine resultierende Randsteigung angewandt, wie mit Bezug auf das erste Beispiel 611 veranschaulicht ist. Das heißt, dass eine konstante Dilatation unabhängig von Eingangsbildern oder anderen Verarbeitungsparametern angewandt werden kann. Bei anderen Ausführungsformen werden unterschiedliche Ausmaße einer Dilatation bereitgestellt und unterschiedliche resultierende Randgradienten werden basierend auf der Zuverlässigkeit einer anfänglichen Schätzung der Position und Orientierung des 3D-Modells 115 innerhalb der Szene 110 erhalten. Zum Beispiel kann die anfängliche Schätzung der Position und Orientierung des 3D-Modells 115 unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken erhalten werden. Bei einigen Ausführungsformen wird die anfängliche Position und Orientierung des 3D-Modells als eine vorherige endgültige Position und Orientierung des 3D-Modells in einer vorherigen Modellierung der 3D-Szene festgelegt. Beispielsweise kann für Sportveranstaltungen dieselbe Arena wiederholt mit einigen Variationen in der Szene modelliert werden. Bei einigen Ausführungsformen wird eine frühere Modellierung der Szene durchgeführt, um die Position und Orientierung eines (früheren) 3D-Modells bereitzustellen. Eine aktuelle Modellierung der Szene verwendet dann die endgültige Position und Orientierung des (früheren) 3D-Modells (entweder dasselbe Modell oder ein ähnliches Modell) aus der früheren Modellierung als anfängliche Position und Orientierung zur Optimierung in der aktuellen Modellierung. Derartige Techniken stellen eine hohe Zuverlässigkeit der anfänglichen Position und Orientierung des (früheren) 3D-Modells in der Szene 110 bereit. Bei derartigen Kontexten oder anderen Kontexten mit hoher Zuverlässigkeit kann eine geringe oder keine Dilatation angewandt werden. In weiteren Kontexten steht jedoch keine derartige frühere Modellierung zur Verfügung oder es können andere mildernde Faktoren eingreifen, um zu veranlassen, dass es für die anfängliche Position und Orientierung weniger wahrscheinlich ist, dass sie genau sind oder dass die Zuverlässigkeit der anfänglichen Position und Orientierung geringer ist.
  • Obwohl dies mit Bezug auf eine frühere Modellierung erörtert wird, können die anfängliche Position und Orientierung basierend auf beliebigen geeigneten Faktoren eine höhere oder geringere Zuverlässigkeit aufweisen. Insbesondere wird das Ausmaß der Dilatation (oder des Gradienten) basierend auf der Zuverlässigkeit der anfänglichen Position und Orientierung des 3D-Modells 115 in der Szene 110 geändert. Bei einigen Ausführungsformen kann ein anfänglicher Positions- und Orientierungszuverlässigkeitswert (der z.B. in einem Bereich von 0, was keine Zuverlässigkeit anzeigt, bis zu 10 liegt, was eine hohe Zuverlässigkeit anzeigt, oder der innerhalb irgendeines anderen Bereichs liegt) erzeugt werden und die Dilatation wird in Abhängigkeit von dem Positions- und Orientierungszuverlässigkeitswert durchgeführt, wobei eine geringere Dilatation oder Unschärfe in Anwendungen mit hoher Zuverlässigkeit bereitgestellt wird und eine höhere Dilatation oder Unschärfe in Anwendungen mit hoher Zuverlässigkeit bereitgestellt wird.
  • Beispielsweise wird in einem zweiten Beispiel 621 der Randgradient 610 derart bereitgestellt, dass Pixelwerte oder Intensitäten 602 ein bestimmtes Profil 622 bezüglich der Pixelposition 601 aufweisen. Wie gezeigt, stellt das Profil 622 wiederum eine Reduzierung der Pixelintensität 602 von einem Maximalwert (z.B. 255 vollständig innerhalb des Objekts) zu einem Minimalwert (z.B. 0 vollständig außerhalb des Objekts) bereit. Im Vergleich zu dem ersten Beispiel 611 beinhaltet das Profil 622 bei dem zweiten Beispiel 621 jedoch einen linearen Anteil 604, der sich von dem Maximalwert zu dem Minimalwert erstreckt, der eine geringere Steigung mit Bezug auf das erste Beispiel 611 aufweist. In diesem Kontext ist die Steigung als eine Änderung des Pixelwerts oder der Intensität über einer Änderung der Pixelposition definiert (z.B. eine Pixelwertänderung über einer Pixelabstandsänderung).
  • Dadurch werden unterschiedliche Gradienten bereitgestellt, sodass in anfänglichen Positions- und Orientierungskontexten mit hoher Zuverlässigkeit eine höhere Steigung (und eine geringere Unschärfe hinsichtlich des Abstands) bereitgestellt wird, um die Geschwindigkeit der Konvergenz zu erhöhen, indem die vermutlich genauere anfängliche Position und Orientierung ausgenutzt wird. Des Weiteren wird die Rauschunterdrückung verbessert. In anfänglichen Positions- und Orientierungskontexten mit geringer Zuverlässigkeit wird eine geringere Steigung (und eine größere Unschärfe hinsichtlich des Abstands) bereitgestellt, um die Wahrscheinlichkeit des Erfassens der Projektion von 3D-Modellpunkten (wie unten erörtert wird) innerhalb der Unschärfe auf Kosten einer langsameren Konvergenz zu erhöhen.
  • Zurück in 1 werden dem Positions- und Orientierungsoptimierungsmodul 107 Objektmaskenbilder 113 bereitgestellt. Die Objektmaskenbilder 113 stellen unscharfe 2D-Graustufendarstellungen des 3D-Objekts 121 auf den Bildebenen von zwei oder mehr Kameras des Kamera-Arrays 101 bereit. Die Objektmaskenbilder 113 werden als eine Anleitung verwendet, um eine endgültige Position und Orientierung 119 für das 3D-Modell 115 zu bestimmen, wie nachfolgend erörtert wird. Nachfolgend wird Bezug genommen auf den 3D-Modellpunktsampler 105, wobei der 3D-Modellpunktsampler 105 das 3D-Modell 115 empfängt und Punkte aus dem 3D-Modell 115 zur Verwendung beim Anpassen der Position und Orientierung des 3D-Modellpunktsamplers 105 sampelt, um sie in die Objektmaskenbilder 113 einzupassen, und wobei der 3D-Modellpunktsampler 105 diese Punkte als die 3D-Modellpunkte 116 bereitstellt.
  • Ein derartiges Sampeln durch den 3D-Modellpunktsampler 105 zum Erzeugen der 3D-Modellpunkte 116 kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken durchgeführt werden. Bei einigen Ausführungsformen wird ein dichtes Punktfeld auf Flächen (z.B. alle Flächen oder jene Flächen, von denen erwartet wird, dass sie sich in der 2D-Ansicht befinden) des 3D-Modells 115 angewandt und jeder Punkt (z.B. der 3D-Position jedes Punktes) wird als Teil der 3D-Modellpunkte 116 verwendet. Zum Beispiel kann ein dichtes Punktfeld bei einer speziellen Punktdichte angewandt werden und die 3D-Position jedes Punktes kann in 3D-Modellpunkten 116 enthalten sein. Außerdem kann jeder Eckpunkt des 3D-Modells 115 als Teil der 3D-Modellpunkte 116 verwendet werden. Wie hier erörtert wird, stellen die Eckpunkte allein jedoch typischerweise keine ausreichende Punktdichte bereit, um sie bei der Positions- und Orientierungsoptimierung zu verwenden.
  • Unter Bezugnahme auf 3 wird jetzt ein dichtes Punktfeld 305 veranschaulicht, wie es auf die Fläche 303 und die Fläche 304 angewandt wird. Das dichte Punktfeld 305 kann auch auf die Fläche 302 und andere Flächen angewandt werden, jedoch ist eine derartige Anwendung in 3 der Übersichtlichkeit halber nicht dargestellt. Wie erörtert, wird die Position jedes Punktes des dichten Punktfeldes 305 im 3D-Raum bestimmt und in den 3D-Modellpunkten 116 bereitgestellt.
  • Zurück in 1 werden 3D-Modellpunkte 116 durch das 3D-Punktprojektionsmodul 106 empfangen, das 3D-Modellpunkte 116 auf jede Kameraebene projiziert, die Objektmaskenbildern 113 entspricht. Das heißt, dass für jedes der Objektmaskenbilder 113 eine Projektion auf die entsprechende Bildebene vorgenommen wird. Derartige Projektionen können unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken ausgeführt werden. Bei einigen Ausführungsformen beinhalten die Projektionen (z.B. auf mehrere Bildebenen) von jedem der 3D-Modellpunkte 116 ein Bestimmen einer 3D-Position von jedem der 3D-Modellpunkte 116 in der 3D-Szene unter Verwendung einer anfänglichen Position und Orientierung 117 des 3D-Modells 115 und ein Projizieren der 3D-Position auf Bildebenen unter Verwendung von Projektionsmatrizen, die diesen entsprechen. Wie erörtert, können die anfängliche Position und Orientierung 117 unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken bestimmt werden. Bei einigen Ausführungsformen ist die anfängliche Position und Orientierung 117 eine endgültige Position und Orientierung eines 3D-Objekts, das einem 3D-Objekt entspricht, das basierend auf einer vorherigen Rekonstruktion der Szene 110 erzeugt wurde. Obwohl veranschaulicht wird, dass das 3D-Punktprojektionsmodul 106 ein separates Modul ist und das projizierte Bild 118 für das Positions- und Orientierungsoptimierungsmodul 107 bereitstellt, wird bei einigen Ausführungsformen das 3D-Punktprojektionsmodul 106 nicht eingesetzt und diese Techniken werden durch das Positions- und Orientierungsoptimierungsmodul 107 während der Optimierung durchgeführt.
  • Unter Bezugnahme auf 3 werden 3D-Modellpunkte 116, die basierend auf dem dichten Punktfeld 305 bestimmt werden, (unter Verwendung von Positions- und Orientierungsinformationen für das 3D-Modell 115) in die 3D-Szene überführt und auf die Bildebene jeder Kamera des Kamera-Arrays 101 projiziert, die einem der Objektmaskenbilder 113 (und Eingangsbilder 111) entspricht, um ein projiziertes Bild 118 mit projizierten 3D-Modellpunkten 306 bereitzustellen. Diese projizierten 3D-Modellpunkte 306 werden dann mit projizierten dilatierten Objektbildern (z.B. Objektmaskenbildern 113) verglichen, um die Positions- und Orientierungsinformationen anzupassen und eine endgültige Position und Orientierung für das 3D-Modell 115 zu bestimmen.
  • Zurück in 1 wird zum Beispiel jeder der 3D-Modellpunkte 116 zuerst unter Verwendung einer anfänglichen Position und Orientierung 117 in die Szene 110 projiziert oder darin positioniert. Es ist zu beachten, dass in iterativen Verarbeitungsbeispielen oder Verfeinerungsbeispielen eine aktuelle Position und Orientierung des 3D-Modells 115 anstelle der anfänglichen Position und Orientierung 117 verwendet wird. Nach dem Positionieren des Punktes in der Szene 110 wird der Punkt dann auf jede zugehörige Bildebene unter Verwendung der (zuvor kalibrierten) Projektionsmatrix projiziert, ein Überführen zwischen den 3D-Punkten in der Szene 110 und den 2D-Punkten auf der Bildebene für jede Kamera des Kamera-Arrays 101 ausführt.
  • Insbesondere wird unter Verwendung der anfänglichen Position und Orientierung 117, die einen Parameter für jeden aus der Anzahl von Freiheitsgraden des 3D-Modells 115 (z.B. 6 Freiheitsgrade für starre Modelle: x, y, z, Gieren, Nicken, Rollen oder Ähnliche) beinhalten, die Projektion des 3D-Modells 115 in zwei oder mehr Kameraansichten bereitgestellt, die durch das Kamera-Array 101 bereitgestellt werden. Die Punkte des 3D-Modells 115, wie sie durch die 3D-Modellpunkte 116 bereitgestellt werden, werden dann auf die Bildebenen dieser Kamerabilder projiziert. Die Auswahl von 3D-Modellpunkten 116 erfolgt so, dass, wenn eine anfängliche Position und Orientierung 117 genau ist, die projizierten Punkte innerhalb der 2D-Darstellung des 3D-Objekts 121 in den Objektmaskenbildern 113 zumindest dünn verteilt sind.
  • 7 veranschaulicht eine beispielhafte Überlagerung 700 von projizierten 3D-Modellpunkten 701 auf eine 2D-Repräsentation 511 des 3D-Objekts 121, die gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. Wie gezeigt, überlappen die projizierten 3D-Modellpunkte 701 (als weiße Punkte veranschaulicht) teilweise die 2D-Repräsentation 511 (grau veranschaulicht), sodass einige der projizierten 3D-Modellpunkte 701 innerhalb der 2D-Repräsentation 511 liegen, während andere außerhalb der 2D-Repräsentation 511 liegen. Die Außenseite der 2D-Darstellung 511 ist am deutlichsten in Bezug auf den Rand und das Netz der beispielhaften 2D-Darstellung 511 zu erkennen. Die projizierten Punkte innerhalb der 2D-Repräsentation 511 sind, obwohl sie innerhalb der 2D-Repräsentation 511 liegen, nicht perfekt darauf ausgerichtet.
  • 8 veranschaulicht eine beispielhafte Überlagerung 800 von projizierten 3D-Modellpunkten 701 auf die dilatierte 2D-Repräsentation 605 des 3D-Objekts 121, die gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. Wie gezeigt, überlappen die projizierten 3D-Modellpunkte 701 (wiederum als weiße Punkte veranschaulicht) teilweise (aber vollständiger in Bezug auf die 2D-Repräsentation 511) die dilatierte 2D-Repräsentation 605 (in grau veranschaulicht), sodass mehr der projizierten 3D-Modellpunkte 701 innerhalb der dilatierten 2D-Repräsentation 605 liegen. Insbesondere stellt eine derartige Dilatation eine größere Überlappung und eine bessere Konvergenzwahrscheinlichkeit bereit, insbesondere da eine Fehlausrichtung der projizierten 3D-Modellpunkte 701 auf eine der 2D-Repräsentation 511 und der dilatierten 2D-Repräsentation 605 ernsthafter wird.
  • Zurück in 1 empfängt das Positions- und Orientierungsoptimierungsmodul 107 die Objektmaskenbilder 113 und die projizierten Bilder 118 und das Positions- und Orientierungsoptimierungsmodul 107 erzeugt eine endgültige Position und Orientierung 119 für das 3D-Modell 115, sodass die endgültige Position und Orientierung 119 einen Wert oder einen Parameter für jeden Freiheitsgrad des 3D-Modells beinhalten, was eine Kostenfunktion optimiert, welche die Objektmaskenbilder 113 und die Versionen projizierter Bilder 118 basierend auf der aktuellen Position und Orientierung des 3D-Modells 115 vergleicht. Das heißt, dass das Positions- und Orientierungsoptimierungsmodul 107 die endgültige Position und Orientierung 119 des 3D-Modells 115 in der 3D-Szene 110 basierend auf einer Optimierung einer Kostenfunktion bestimmt, welche die Objektmaskenbilder 113 mit den projizierten 3D-Punkten auf den Bildebenen vergleicht, die den Objektmaskenbildern 113 entsprechen. Die Optimierung der Kostenfunktion kann eine beliebige geeignete Optimierung beinhalten, wie etwa eine Minimierung einer stückweise linearen Funktion einschließlich einer Summe von Differenzen zwischen einem Maximalwert der Objektmaskenbilder 113, die sich von einem Wert der Objektmaskenbilder unterscheiden, die Projektionen jedes der 3D-Modellpunkte 116 auf Objektmaskenbilder 113 entsprechen, wie hier weiter unten erörtert wird. Obwohl dies mit Bezug auf die Optimierung einer Kostenfunktion erörtert wird, können die endgültige Position und Orientierung 119 unter Verwendung anderer Techniken, wie etwa einer exzessiven Gittersuche, erzeugt werden. Derartige Techniken unterliegen jedoch großen Rechenkosten.
  • Insbesondere ist das Ziel, eine Überführung, T, und eine Rotation, R, zu finden, die nach dem Transformieren von 3D-Modellpunkten 116 und Projizieren derselben auf die Bildebenen aller Kameras, die den Objektmaskenbildern 113 entsprechen, möglichst alle projizierten Punkte innerhalb der 2D-Repräsentation des Bildes auf die Bildebenen einpassen. Zum Beispiel wird die 2D-Projektion pj von jedem 3D-Modellpunkt 116 auf einer kalibrierten Kamerabildebene rj bereitgestellt, die eine Projektionsmatrix Ci aufweist, wie in Gleichung (1) gezeigt wird: p i j = C i ( R r j + T )
    Figure DE102021118479A1_0001
    wobei pij ∈ ℝ2 die 2D-Projektion des j-ten 3D-Modellpunkts 116 auf die i-te Bildebene (z.B. die i-te Kamera des Kamera-Arrays 101) ist, Ci die Projektionsmatrix für die i-te Kamera ist, R die Rotationsparameter für das 3D-Modell 115 repräsentiert, um das 3D-Modell 115 in der Szene 110 zu orientieren, rj der j-te 3D-Modellpunkt 116 ist und T den Überführungsparameter für das 3D-Modell 115 repräsentiert, welches das 3D-Modell 115 in der Szene 110 positioniert.
  • Jedes der Objektmaskenbilder 113 (z.B. dilatierte Maskenbilder) stellt dann eine Funktion Ii: ℝ2 → ℝ bereit, die zum Beispiel unter Verwendung eines bi-kubischen Interpolators ausgewertet werden kann. Insbesondere kann jedes der Objektmaskenbilder 113 ausgewertet werden, um einen Wert für jeden projizierten 3D-Modellpunkt 701 zu bestimmen. Das Ergebnis liefert einen Maximalwert, wenn der projizierte 3D-Modellpunkt 701 innerhalb der 2D-Darstellung 511 (z.B. innerhalb der Objektmaske und erste Pixelwerte 501 aufweist) liegt, einen Minimalwert, wenn der projizierte 3D-Modellpunkt 701 vollständig außerhalb der dilatierten 2D-Repräsentation 605 (z.B. vollständig außerhalb sogar der dilatierten Objektmaske und zweite Pixelwerte aufweist 502) liegt, oder einen Wert dazwischen, wenn er innerhalb des Gradienten 610 liegt. Dadurch kann das 3D-Modell 115 basierend auf einer aktuellen Überführung, T, und einer Rotation, R, bestraft werden, wenn sich die projizierten 3D-Modellpunkte 701 außerhalb der Objektmaske befinden (und nicht bestraft oder weniger bestraft werden, wenn sich die projizierten 3D-Modellpunkte 701 innerhalb der Objektmaske oder deren Dilatation befinden).
  • Zum Beispiel wird für jedes Objektmaskenbild 113 und die projizierten 3D-Modellpunkte 701, die diesem entsprechen, eine stückweise differenzierbare Funktion ƒi (z.B. eine zu optimierende Kostenfunktion) definiert, um zu bestimmen, wie nahe die projizierten 3D-Modellpunkte 701 (z.B. die Projektionen) zu der 2D-Repräsentation in den Objektmaskenbildern 113 (z.B. der dilatierten Maske) liegen, siehe auch 8. Zum Beispiel wird bei einem Maximalwert in jedem Objektmaskenbild 113 (z.B. 255 in Graustufenanwendungen) von M die Kostenfunktion, wie in Gleichung (2) gezeigt, bereitgestellt: f i = j ( M I i ( p i j ) ) = j ( M I i ( C i ( R r j + T ) ) )
    Figure DE102021118479A1_0002
    wobei ƒi die Kostenfunktion für die i-te Kamera (oder Bildebene) ist, M der Maximalwert ist, Ii der Wert im i-ten Objektmaskenbild 113 für jeden projizierten 3D-Modellpunkt 701 ist, der über jeden der j 3D-Modellpunkte 116 summiert wird.
  • Die resultierende endgültige Position und Orientierung 119 wird dann durch ein Minimieren der Kostenfunktionen über alle i Bildebenen bzw. Kameras bestimmt. Eine beliebige geeignete Summierung dieser Kostenfunktionen kann verwendet werden, wie etwa eine Fehlerannäherung 2. Ordnung, wie in Gleichung (3) gezeigt wird: min R , T i f i 2 = min R , T i j ( M I i ( C i ( R r j + T ) ) ) 2
    Figure DE102021118479A1_0003
    wobei R und T eine endgültige Position und Orientierung 119 für das 3D-Modell 115 bereitstellen, indem die erörterten Kostenfunktionen minimiert werden. Gleichung (3) kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken optimiert werden. Zum Beispiel kann Gleichung (3) unter Verwendung nicht-linearer Auflöser und/oder Optimierer der kleinsten Quadrate optimiert werden. Bei einigen Ausführungsformen fällt jede Projektion von jedem der 3D-Modellpunkte 116 in mindestens eine dilatierte 2D-Repräsentation 605. Bei einigen Ausführungsformen fällt jede Projektion jedes der 3D-Modellpunkte 116 in die 2D-Repräsentation 511.
  • 9 veranschaulicht eine beispielhafte Überlagerung 900 projizierter 3D-Modellpunkte 901 basierend auf einer endgültigen Position und Orientierung des 3D-Modells 115 mit der 2D-Repräsentation 511 des 3D-Objekts 121, die gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. Wie gezeigt, überlappen die projizierten 3D-Modellpunkte 901 (veranschaulicht als weiße Punkte) vollständig oder nahezu vollständig die 2D-Repräsentation 511 (veranschaulicht in Grau) und liegen innerhalb dieser. Dadurch wird, wenn eine virtuelle Ansicht innerhalb der Szene 110 erzeugt wird, das 3D-Modell 115 richtig positioniert und orientiert. Des Weiteren weist das 3D-Modell 115 im Vergleich zu einer 3D-Objektrepräsentation, die ausschließlich aufgrund von erhaltenen Bildern erzeugt wird, ein verbessertes Detail und eine verbesserte Textur auf.
  • Zurück in 1 empfängt das virtuelle Ansichtsmodul 108 das 3D-Modell 115 und die endgültige Position und Orientierung 119. Das virtuelle Ansichtsmodul 108 empfängt andere Daten, die zum Erzeugen einer virtuellen Ansicht 120 innerhalb der Szene 110 relevant sind, wie etwa eine gewünschte virtuelle Kameraposition und -ansicht, Punktwolkendaten für andere Objekte oder eine vollständige Punktwolke einschließlich der anderen Objekte (in die das 3D-Modell eingefügt werden kann). Basierend auf diesen empfangenen Daten erzeugt das virtuelle Ansichtsmodul 108 eine fotorealistische Ansicht für die virtuelle Ansicht 120 innerhalb der Szene 110 aus einer darin gegebenen Position und einer darin gegebenen Orientierung aufgrund einer Ansicht einer Punktwolke oder eines volumetrischen Modells einschließlich des 3D-Modells 115, das basierend auf der endgültigen Position und Orientierung 119 positioniert und orientiert wird. Zum Beispiel kann die Punktwolke oder das volumetrische Modell wiedergegeben und mit einer Textur angemalt werden, die über das Eingangsbild 111 erfasst wird. Die virtuelle Ansicht 120 kann bei jeder Einzelbildinstanz (oder jeder anderen) erzeugt werden, um eine immersive Erfahrung für einen Benutzer bereitzustellen. Des Weiteren kann die virtuelle Ansicht in dem 3D-Raum der Szene 110 navigiert werden, um eine Benutzererfahrung mit mehreren Freiheitsgraden bereitzustellen.
  • 10 veranschaulicht einen beispielhaften Prozess 1000 zum Einbetten eines 3D-Modells eines 3D-Objekts in eine erweiterte Realitätsszene, die gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung eingerichtet ist. Der Prozess 1000 kann eine oder mehrere Operationen 1001-1009 beinhalten, wie in 10 veranschaulicht ist. Die Operationen 1001-1009 können zum Beispiel durch das System 100 durchgeführt werden, um die virtuelle Ansicht 120 zu erzeugen.
  • Der Prozess 1000 beginnt mit der Operation 1001, in der ein 3D-Modell eines Objekts unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken, wie etwa eines LIDAR-Scans des Objekts erzeugt wird, indem ein Modell an das Objekt oder dergleichen angepasst wird. Das 3D-Modell kann eine beliebige geeignete Datenstruktur aufweisen, wie etwa eine Netzdatenstruktur, die Eckpunkte eines 3D-Netzes angibt, wobei zwischen den Eckpunkten Dreiecksflächen definiert werden. Das Verarbeiten geht weiter zur Operation 1002, in der die Kameras eines Kamera-Arrays um eine Szene herum installiert und unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken kalibriert werden und zwei oder mehr Bilder der Szene einschließlich des in der Operation 1001 modellierten Objekts erhalten werden. Wie erörtert, werden mindestens zwei Bilder benötigt, um die folgenden Techniken durchzuführen, obwohl mehr Bilder eine größere Genauigkeit bereitstellen. Bei einigen Ausführungsformen werden fünf bis zwanzig Bilder verwendet.
  • Das Verarbeiten geht weiter zur Operation 1003, in der 2D-Repräsentationen des Objekts in den erhaltenen Bildern unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken, wie etwa eine Anwendung eines Segmentierungs-CNN, segmentiert oder erkannt werden und binäre Masken der erkannten 2D-Repräsentationen erzeugt werden. Zum Beispiel kann das Segmentierungs-CNN auf jedes der erhaltenen Bilder angewandt werden und es können resultierende Pro-Pixel-Wahrscheinlichkeitsdaten mit Schwellenwerten verglichen werden, um die binären Bilder zu erzeugen.
  • Das Verarbeiten geht weiter zur Operation 1004 fort, in der die binären Masken dilatiert werden, um dilatierte Objektmasken zu erzeugen. Wie gezeigt, kann die Dilatation auf der Zuverlässigkeit einer anfänglichen Position und Orientierung des 3D-Modells in der Szene beruhen. Zum Beispiel kann für eine anfängliche Position und Orientierung mit höherer Zuverlässigkeit ein niedrigeres Ausmaß der Dilatation angewandt werden und für eine anfängliche Position und Orientierung mit einer niedrigeren Zuverlässigkeit kann ein höheres Ausmaß der Dilatation angewandt werden. Bei einigen Ausführungsformen beinhaltet das Dilatieren der binären Maskenbilder ein Anwenden eines ersten Gradienten bzw. eines zweiten Gradienten als Reaktion auf einen ersten anfänglichen Positions- und Orientierungszuverlässigkeitswert bzw. einen zweiten anfänglichen Positions- und Orientierungszuverlässigkeitswert, der kleiner als der erste anfängliche Positions- und Orientierungszuverlässigkeitswert ist, sodass der erste Gradient eine größere Steigung einer Pixelwertänderung über einer Pixelabstandsänderung aufweist als der zweite Gradient.
  • Das Verarbeiten geht weiter zur Operation 1005, in der die anfängliche Position und Orientierung des 3D-Modells empfangen wird und eine Kostenfunktion definiert wird. Die 3D-Kostenfunktion kann eine beliebige hier erörterte Kostenfunktion sein. Bei einigen Ausführungsformen stellt die 3D-Kostenfunktion einen Wert für jeden Punkt bereit, der von dem 3D-Modell (basierend auf der Position und Orientierung des 3D-Modells und der Projektionsmatrix für jede Kamera) projiziert wird, der gleich der Differenz zwischen dem maximal verfügbaren Wert in den dilatierten Objektmasken (z-B. 255) und dem Ausgangswert von der dilatierten Objektmaske für den projizierten Punkt ist. Das heißt, dass die Differenz Null ist, wenn der Punkt innerhalb der Objektmaske projiziert wird, die Differenz Eins ist, wenn der Punkt außerhalb der dilatierten Objektmaske projiziert wird, und ein Wert dazwischen ist, wenn der Punkt innerhalb eines Randgradienten zwischen der Objektmaske und einem Hintergrundgebiet projiziert wird.
  • Das Verarbeiten geht weiter zur Operation 1006, in der 3D-Modellpunkte zur Auswertung unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken ausgewählt werden. Bei einigen Ausführungsformen sind die Eckpunkte des 3D-Modells in den 3D-Modellpunkten enthalten und Punkte von einer Anzahl der (oder allen) Flächen des 3D-Modells sind in den 3D-Modellpunkten enthalten. Bei einigen Ausführungsformen werden nur Punkte von den Flächen verwendet. Zum Beispiel kann jede Fläche des 3D-Modells gesampelt werden und die 3D-Positionen der gesamplten Punkte können als die 3D-Modellpunkte eingesetzt werden.
  • Das Verarbeiten geht weiter zur Operation 1007, in der die in der Operation 1005 definierte Kostenfunktion basierend auf einem Vergleich der in der Operation 1004 erzeugten dilatierten Bilder und der bei der Operation 1006 ausgewählten Projektionen der 3D-Modellpunkte optimiert wird. Bei einigen Ausführungsformen wird jeder der in der Operation 1006 ausgewählten 3D-Modellpunkte auf die Bildebenen der dilatierten Bilder projiziert und die dilatierten Bilder werden an dieser Position ausgewertet, um einen Wert für den 3D-Modellpunkt zu bestimmen. Der Maximalwert der dilatierten Bilder wird dann mit dem ermittelten Wert differenziert und jede dieser Differenzen wird über alle 3D-Modellpunkte summiert, die auf alle Bildebenen der dilatierten Bilder projiziert werden. Wie erörtert wird, ist die Differenz gleich Null, wenn der Punkt innerhalb der Objektmaske projiziert wird, ist die Differenz gleich Eins, wenn der Punkt außerhalb der dilatierten Objektmaske projiziert wird, und ein Wert dazwischen, wenn der Punkt innerhalb eines Randgradienten zwischen der Objektmaske und einem Hintergrundgebiet projiziert wird. Die Kostenfunktion kann dann gelöst werden, um die Positions- (oder Überführungs-) und Orientierungsparameter unter Verwendung der dilatierten Objektmasken als Funktion zum Überführen der projizierten 3D-Modellpunkte in Kosten- oder Strafwerte zu optimieren. Das Ergebnis der gelösten bzw. optimierten Kostenfunktion ist die endgültige Position und Orientierung des 3D-Modells innerhalb der Szene.
  • Das Verarbeiten geht weiter zur Operation 1008, in der die endgültige Position und Orientierung des 3D-Modells zur Verwendung in einem beliebigen geeigneten Kontext, wie etwa einer Rekonstruktion der 3D-Szene, autonomen Fahranwendungen, Roboternavigations- und/oder Interaktionsanwendungen, erweiterten Realitätsanwendungen oder Ähnlichen, ausgegeben werden. Das Verarbeiten geht weiter zur Operation 1009, in der die endgültige Position und Orientierung des 3D-Modells verwendet werden, um eine virtuelle Ansicht innerhalb einer Szene einschließlich des 3D-Modells zu erzeugen. Zum Beispiel kann eine Punktwolkenrepräsentation der 3D-Szene einschließlich des 3D-Modells erzeugt werden, das die endgültige Position und Orientierung aufweist, und die virtuelle Ansicht kann basierend auf der Punktwolkenrepräsentation der 3D-Szene bestimmt werden.
  • 11 ist ein Flussdiagramm, das einen beispielhaften Prozess 1100 zum Erzeugen einer virtuellen Ansicht innerhalb einer 3D-Szene veranschaulicht, der gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung eingerichtet ist. Der Prozess 1100 kann eine oder mehrere Operationen 1101-1104 beinhalten, wie in 11 veranschaulicht ist. Der Prozess 1100 kann zum Beispiel mindestens einen Teil eines Erzeugungsprozesses einer virtuellen Ansicht für ein immersives Video oder eine erweiterte Realität bilden. Als ein nichtbeschränkendes Beispiel kann der Prozess 1100 mindestens einen Teil eines Prozesses bilden, wie er durch das System 100 durchgeführt wird, wie hier erörtert wird. Darüber hinaus wird der Prozess 1100 hier unter Bezugnahme auf das System 1100 aus 11 beschrieben.
  • 12 ist ein veranschaulichendes Diagramm eines beispielhaften Systems 1200 zum Erzeugen einer virtuellen Ansicht innerhalb einer 3D-Szene, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung eingerichtet ist. Wie in 12 gezeigt, kann das System 1200 einen Zentralprozessor 1201, einen Bildprozessor 1202, einen Speicher 1203 und ein Kamera-Array 101 beinhalten. Wie auch gezeigt wird, kann der Bildprozessor 1202 ein Bildsegmentierungs- und Maskierungsmodul 102, ein Bilddilatationsmodul 103, einen 3D-Modellgenerator 104, einen 3D-Modellpunktsampler 105, ein 3D-Punktprojektionsmodul 106, ein Positions- und Orientierungsoptimierungsmodul 107 und ein virtuelles Ansichtsmodul 108 beinhalten oder implementieren. Bei dem Beispiel des Systems 1200 können in dem Speicher 1203 Eingangsbilder, binäre Objektmaskendaten, Objektmaskenbilddaten, 3D-Modelldaten, ausgewählte 3D-Modellpunkte, projizierte Bilder, Positionen und Orientierungen, virtuelle Ansichtsdaten oder beliebige andere hier erörterte Daten gespeichert werden.
  • Wie gezeigt, werden bei einigen Beispielen ein oder mehrere oder Teile des Bildsegmentierungs- und Maskierungsmoduls 102, des Bilddilatationsmoduls 103, des 3D-Modellgenerators 104, des 3D-Modellpunktsamplers 105, des 3D-Punktprojektionsmoduls 106, des Positions- und Orientierungsoptimierungsmoduls 107 und des virtuellen Ansichtsmoduls 108 über den Bildprozessor 1202 implementiert. Bei anderen Beispielen können ein oder mehrere oder Teile des Bildsegmentierungs- und Maskierungsmoduls 102, des Bilddilatationsmoduls 103, des 3D-Modellgenerators 104, des 3D-Modellpunktsamplers 105, des 3D-Punktprojektionsmoduls 106, des Positions- und Orientierungsoptimierungsmoduls 107 und des virtuellen Ansichtsmoduls 108 über den Zentralprozessor 1201, eine Bildverarbeitungseinheit, eine Bildverarbeitungs-Pipeline, einen Bildsignalprozessor oder Ähnlich implementiert werden. Bei einigen Beispielen sind ein oder mehrere oder Teile des Bildsegmentierungs- und Maskierungsmoduls 102, des Bilddilatationsmoduls 103, des 3D-Modellgenerators 104, des 3D-Modellpunktsamplers 105, des 3D-Punktprojektionsmoduls 106, des Positions- und Orientierungsoptimierungsmoduls 107 und des virtuellen Ansichtsmoduls 108 in einer Hardware als ein Ein-Chip-System (SoC) implementiert. Bei einigen Beispielen sind ein oder mehrere oder Teile des Bildsegmentierungs- und Maskierungsmoduls 102, des Bilddilatationsmoduls 103, des 3D-Modellgenerators 104, des 3D-Modellpunktsamplers 105, des 3D-Punktprojektionsmoduls 106, des Positions- und Orientierungsoptimierungsmoduls 107 und des virtuellen Ansichtsmoduls 108 über ein FPGA in einer Hardware implementiert.
  • Der Bildprozessor 1202 kann eine beliebige Anzahl und einen beliebigen Typ von Bild- oder Grafikverarbeitungseinheiten enthalten, die die Operationen, wie sie hier erörtert werden, bereitstellen können. Diese Operationen können über Software oder Hardware oder eine Kombination davon implementiert werden. Zum Beispiel kann der Bildprozessor 1202 Schaltungsanordnungen enthalten, die für das Manipulieren und/oder Analysieren von Bildern zweckgebunden sind, die aus dem Speicher 1203 bezogen werden. Der Zentralprozessor 1201 kann eine beliebige Anzahl und einen beliebigen Typ von Verarbeitungseinheiten oder -modulen beinhalten, die eine Steuerung und andere höherschichtige Funktionen für das System 1200 bereitstellen können und/oder beliebige hier erörterte Operationen bereitstellen können. Der Speicher 1203 kann ein beliebiger Typ von Speichern sein, wie etwa ein flüchtiger Speicher (z.B. ein statischer Direktzugriffspeicher (SRAM), ein dynamischer Direktzugriffsspeicher (DRAM) usw.) oder ein nicht-flüchtiger Speicher (z.B. Flash-Speicher usw.) und so weiter. Bei einem nicht-einschränkenden Beispiel kann der Speicher 1203 durch einen Cache-Speicher implementiert sein. Bei einer Ausführungsform sind ein oder mehrere oder Teile des Bildsegmentierungs- und Maskierungsmoduls 102, des Bilddilatationsmoduls 103, des 3D-Modellgenerators 104, des 3D-Modellpunktsamplers 105, des 3D-Punktprojektionsmoduls 106, des Positions- und Orientierungsoptimierungsmoduls 107 und des virtuellen Ansichtsmoduls 108 über eine Ausführungseinheit (EU) des Bildprozessors 1202 implementiert. Die EU kann zum Beispiel eine programmierbare Logik oder Schaltungsanordnung beinhalten, wie etwa einen Logikkern oder Logikkerne, die ein weites Feld an programmierbaren Logikfunktionen bereitstellen können. Bei einer Ausführungsform sind ein oder mehrere oder Teile des Bildsegmentierungs- und Maskierungsmoduls 102, des Bilddilatationsmoduls 103, des 3D-Modellgenerators 104, des 3D-Modellpunktsamplers 105, des 3D-Punktprojektionsmoduls 106, des Positions- und Orientierungsoptimierungsmoduls 107 und des virtuellen Ansichtsmoduls 108 über eine zweckbestimmte Hardware, wie etwa eine feste Funktionsschaltungsanordnung oder Ähnliche, implementiert. Eine Festfunktionsschaltungsanordnung kann eine zweckbestimmte Logik oder Schaltungsanordnung beinhalten und kann einen Satz von Festfunktionszugangspunkten bereitstellen, die für einen festen Zweck oder eine feste Funktion der zweckbestimmten Logik zugeordnet sein können.
  • Zurückkehrend zur Erörterung von 11 beginnt der Prozess 1100 mit der Operation 1101, in der ein 3D-Modell eines 3D-Objekts innerhalb einer 3D-Szene empfangen wird. Das 3D-Modell kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken erzeugt werden und kann eine beliebige geeignete Datenstruktur beinhalten. Das 3D-Modell kann ein starres Modell mit 6 Freiheitsgraden sein: x-, y- und z-Positionen und Gier-, Nick- und Rollorientierungen; oder das 3D-Modell muss nicht-starr sein und kann diese 6 Freiheitsgrade plus zusätzliche Freiheitsgrade aufweisen, die eine Bewegung zwischen Teilen oder Komponenten davon definieren. Bei einigen Ausführungsformen ist das 3D-Modell ein Netzobjektmodell, das eine Anzahl von Indizes, die das 3D-Objekt repräsentieren, und die Flächen zwischen den Indizes beinhaltet.
  • Das Verarbeiten geht weiter zur Operation 1102, in der ein erstes Objektmaskenbild und ein zweites Objektmaskenbild erzeugt werden, wobei sowohl das erste als auch das zweite Objektmaskenbild eine 2D-Repräsentation des 3D-Objekts beinhalten und das erste und das zweite Objektmaskenbild eine erste und eine zweite Bildebene einer ersten und einer zweiten Kamera repräsentieren, die an der 3D-Szene trainiert werden. Obwohl hier ein Bezug auf ein erstes und ein zweites Objektmaskenbild, eine erste und eine zweite Bildebene, eine erste und eine zweite Kamera und so weiter erörtert wird, kann eine beliebige Anzahl, wie etwa fünf oder mehr, verwendet werden. Die Objektmaskenbilder können eine beliebige geeignete Datenstruktur beinhalten, wie etwa ein Graustufenbild mit großen Werten, die Pixel einschließlich der 2D-Repräsentation des 3D-Objekts angeben, und niedrigeren Werten, die Pixel außerhalb der 2D-Repräsentation des 3D-Objekts angeben. Bei einigen Ausführungsformen beinhaltet das Erzeugen des ersten und zweiten Objektmaskenbildes ein Bestimmen eines ersten und zweiten binären Maskenbildes einschließlich erster Pixelwerte für Pixel, die als innerhalb des 3D-Objekts liegend erachtet werden, und zweiter Pixelwerte für Pixel, die als außerhalb des 3D-Objekts liegend erachtet werden, und ein Dilatieren des ersten und des zweiten binären Bildes, um das erste und das zweite Objektmaskenbild zu erzeugen. Wie erörtert wird, sind bei einigen Ausführungsformen das erste und das zweite Objektmaskenbild Graustufenbilder. Bei einigen Ausführungsformen beinhaltet das Bestimmen des ersten und des zweiten binären Bildes ein Anwenden eines neuronalen Faltungsnetzwerks auf ein erstes und ein zweites Quellbild, die über die erste und die zweite Kamera erhalten werden. Zum Beispiel können die Quellbilder Eingangsbilder sein, die durch eine Belichtung der Szene durch die erste und zweite Kamera erhalten werden. Bei einigen Ausführungsformen beinhaltet das erörterte Dilatieren ein Erzeugen eines zunehmenden Gradienten in dem ersten segmentierten Bild in einem Teil der Pixel außerhalb des Objekts in Richtung auf die Pixel innerhalb des Objekts. Bei einigen Ausführungsformen beinhaltet das erörterte Dilatieren ein Anwenden eines ersten Gradienten bzw. eines zweiten Gradienten als Reaktion auf einen ersten anfänglichen Positions- und Orientierungszuverlässigkeitswert bzw. einen zweiten anfänglichen Positions- und Orientierungszuverlässigkeitswert, der kleiner als der erste anfängliche Positions- und Orientierungszuverlässigkeitswert ist, sodass der erste Gradient eine größere Steigung einer Pixelwertänderung über einer Pixelabstandsänderung aufweist als der zweite Gradient.
  • Das Verarbeiten geht weiter zur Operation 1103, in der eine Anzahl von 3D-Punkten des 3D-Modells basierend auf einer anfänglichen Position und Orientierung des 3D-Modells in der 3D-Szene auf die erste und die zweite Bildebene projiziert werden. Die 3D-Punkte des 3D-Modells können unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken ausgewählt werden. Bei einigen Ausführungsformen ist das 3D-Modell ein Netzobjektmodell, das eine Anzahl von Indizes, die das 3D-Objekt repräsentieren, und Flächen zwischen den Indizes aufweist, und wobei die 3D-Punkte die Punkte von Flächen des Netzmodells sind. Des Weiteren können die anfängliche Position und Orientierung unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken ausgewählt werden. Bei einigen Ausführungsformen beinhaltet das Verfahren 1100 ferner ein Auswählen der anfänglichen Position und Orientierung des 3D-Modells als eine vorherige endgültige Position und Orientierung des 3D-Modells in einer vorherigen Modellierung der 3D-Szene. Zum Beispiel kann die 3D-Szene für ein vorheriges Ereignis (z.B. ein Spiel, ein Konzert usw.) modelliert worden sein und eine vorherige endgültige Position und Orientierung des 3D-Modells (entweder des gleichen Modells oder eines ähnlichen Modells) kann verwendet werden, um die Position und Orientierung des 3D-Modells zu initialisieren.
  • Das Verarbeiten geht weiter zur Operation 1104, in der eine endgültige Position und Orientierung des 3D-Modells in der 3D-Szene basierend auf einer Optimierung einer Kostenfunktion bestimmt wird, die das erste und das zweite Objektmaskenbild mit den projizierten 3D-Punkten auf der ersten und der zweiten Bildebene vergleicht. Zum Beispiel kann die Kostenfunktion jene projizierten 3D-Punkte bestrafen, die außerhalb der 2D-Repräsentation des 3D-Objekts sowohl in dem ersten Objektmaskenbild als auch in einem zweiten Objektmaskenbild liegen. Bei einigen Ausführungsformen beinhaltet eine Optimierung der Kostenfunktion eine Minimierung einer Summe von stückweise linearen Funktionen, die jeweils eine Summe von Differenzen zwischen einem Maximalwert des ersten und des zweiten Objektmaskenbildes beinhalten, die sich von mit einem Wert des ersten und des zweiten Objektmaskenbildes unterscheiden, die den Projektionen von jedem aus der Vielzahl von 3D-Punkten auf das erste und das zweite Objektmaskenbild entsprechen. Bei einigen Ausführungsformen beinhaltet die Projektion von jedem aus der Vielzahl von 3D-Punkten ein Bestimmen einer 3D-Position von jedem aus der Vielzahl von 3D-Punkten in der 3D-Szene unter Verwendung einer aktuellen Position und Orientierung des 3D-Modells und ein Projizieren von der 3D-Position auf das erste und zweite Objektmaskenbild unter Verwendung einer ersten und zweiten Projektionsmatrix, die der ersten und zweiten Bildebene entsprechen. Wie erörtert wird, kann der Prozess 1100 auf starre oder nicht-starre 3D-Modelle angewandt werden. Bei einigen Ausführungsformen ist das 3D-Modell ein nicht-starres 3D-Modell, das einen oder mehrere Freiheitsgrade für Bewegungen zwischen 3D-Segmenten des 3D-Modells beinhaltet, und wobei das Bestimmen der endgültigen Position und Orientierung des 3D-Modells ferner ein Bestimmen endgültiger Parameter für den einen oder die mehreren Freiheitsgrade für die Bewegungen basierend auf einer Optimierung der Kostenfunktion beinhaltet.
  • Die endgültige Position und Orientierung des 3D-Modells kann zur Verwendung in einem beliebigen geeigneten Kontext, wie etwa eine Rekonstruktion der 3D-Szene, autonome Fahranwendungen, Roboternavigations- und/oder Interaktionsanwendungen, erweiterte Realitätsanwendungen oder Ähnlichen, ausgegeben werden. Bei einigen Ausführungsformen beinhaltet das Verfahren 1100 ferner ein Erzeugen einer virtuellen Ansicht innerhalb der 3D-Szene mindestens teilweise basierend auf der endgültigen Position und Orientierung des 3D-Modells in der 3D-Szene.
  • Der Prozess 1100 kann für eine beliebige Anzahl von 3D-Objekten beliebig oft entweder seriell oder parallel wiederholt werden. Der Prozess 1100 stellt das Positionieren und Orientieren eines 3D-Modells eines 3D-Objekts in einer Szene bereit. Der Prozess 1100 kann durch beliebige geeignete Vorrichtungen, Systeme, Einrichtungen oder Plattformen implementiert werden, wie etwa jene, die hier erörtert werden. Bei einer Ausführungsform wird der Prozess 1100 durch ein System oder eine Einrichtung, die einen Speicher zum Speichern einer 3D-Modellquelle und von Zielbildern sowie beliebiger anderer erörterter Datenstrukturen aufweisen, und einen Prozessor zum Durchführen der Operationen 1101-1104 implementiert. Bei einer Ausführungsform sind der Speicher und der Prozessor über eine integrierte monolithische feldprogrammierbare Gate-Array-Schaltung implementiert. So wie der Begriff „monolithisch“ hier verwendet wird, gibt er eine Vorrichtung an, die gegenüber anderen Vorrichtungen diskret ist, obwohl sie mit anderen Vorrichtungen zur Kommunikation und Stromversorgung verbunden sein kann.
  • Verschiedene Komponenten der hier beschriebenen Systeme können in Software, Firmware und/oder Hardware und/oder einer beliebigen Kombination davon implementiert werden. Zum Beispiel können verschiedene Komponente der Vorrichtungen oder Systeme, die hier erörtert werden, mindestens teilweise durch eine Hardware eines Computer-Ein-Chip-Systems (Computer-SoC) bereitgestellt werden, wie es in einem Rechensystem, wie zum Beispiel einem Smartphone, zu finden ist. Der Fachmann kann erkennen, dass die hier beschriebenen Systeme zusätzliche Komponenten beinhalten können, die in den entsprechenden Figuren nicht dargestellt wurden. Zum Beispiel können die hier erörterten Systeme zusätzliche Komponenten enthalten, die der Übersichtlichkeit halber nicht abgebildet sind.
  • Obwohl eine Implementierung der hier erörterten beispielhaften Prozesse das Ausführen aller gezeigten Operationen in der veranschaulichten Reihenfolge enthalten kann, ist die vorliegende Offenbarung in dieser Hinsicht nicht beschränkt, und eine Implementierung der hier gezeigten beispielhaften Prozesse kann bei verschiedenen Beispielen nur eine Teilmenge der gezeigten Operationen, die in einer anderen als der veranschaulichten Reihenfolge durchgeführt werden, oder zusätzliche Operationen beinhalten.
  • Außerdem können eine beliebige oder mehrere beliebige der hier erörterten Operationen als Reaktion auf Anweisungen ausgeführt werden, die von einem oder mehreren Computerprogrammprodukten bereitgestellt werden. Derartige Programmprodukte können signaltragende Medien beinhalten, die Anweisungen bereitstellen, die, wenn sie durch zum Beispiel einen Prozessor ausgeführt werden, die hier beschriebenen Funktionalitäten bereitstellen können. Die Computerprogrammprodukte können in einer beliebigen Form von einem oder mehreren maschinenlesbaren Medien bereitgestellt werden. Dementsprechend kann zum Beispiel ein Prozessor, der eine oder mehrere Grafikverarbeitungseinheiten oder einen oder mehrere Prozessorkerne enthält, einen oder mehrere der Blöcke der hier gezeigten beispielhaften Prozesse als Reaktion auf einen Programmcode und/oder auf Anweisungen oder Anweisungssätze ausführen, die dem Prozessor durch ein oder mehrere maschinenlesbare Medien übermittelt werden. Im Allgemeinen kann ein maschinenlesbares Medium eine Software in der Form eines Programmcodes und/oder von Anweisungen oder Anweisungssätzen bereitstellen, die veranlassen können, dass beliebige der hier beschriebenen Vorrichtungen und/oder Systeme mindestens Teile der Vorrichtungen oder Systeme oder eines beliebigen anderen Moduls oder einer beliebigen anderen Komponente implementieren, wie hier erörtert wird.
  • So wie der Begriff „Modul“ bei einer beliebigen hier beschriebenen Implementierung verwendet wird, bezieht er sich auf eine beliebige Kombination einer Softwarelogik, einer Firmwarelogik, einer Hardwarelogik und/oder einer Schaltungsanordnung, die zum Bereitstellen der hier beschriebenen Funktionalitäten konfiguriert sind. Die Software kann als ein Softwarepaket, ein Code und/oder ein Anweisungssatz oder Anweisungen ausgeführt sein, und so wie „Hardware“ in einer beliebigen hier beschriebenen Implementierung verwendet wird, kann sie zum Beispiel einzeln oder in einer beliebigen Kombination eine festverdrahtete Schaltungsanordnung, eine programmierbare Schaltungsanordnung, eine Zustandsmaschinenschaltungsanordnung, eine Festfunktionsschaltungsanordnung, eine Ausführungseinheitsschaltungsanordnung und/oder eine Firmware aufweisen, in der Anweisungen gespeichert sind, die durch eine programmierbare Schaltungsanordnung ausgeführt werden. Die Module können gemeinsam oder einzeln als Schaltungsanordnung ausgeführt sein, die einen Teil eines größeren Systems bildet, zum Beispiel eines integrierten Schaltkreises (IC), eines Ein-Chip-Systems (SoC) und so weiter.
  • 13 ist ein veranschaulichendes Diagramm eines beispielhaften Systems 1300, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung eingerichtet ist. Bei verschiedenen Implementierungen kann das System 1300 ein Mobilfunksystem sein, obwohl das System 1300 nicht auf diesen Kontext beschränkt ist. Zum Beispiel kann das System 1300 in einen Personal Computer (PC), einen Laptop-Computer, einen Ultra-Laptop-Computer, einen Tablet-Computer, ein Touchpad, einen tragbaren Computer, einen Handgerät-Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Mobiltelefon/PDA-Kombination, einen Fernseher, eine Smart-Einrichtung (z.B. ein Smartphone, ein Smart-Tablet-Computer oder einen Smart-Fernseher), eine mobile Interneteinrichtung (MID), eine Nachrichtenübermittlungsvorrichtung, eine Datenkommunikationsvorrichtung, Kameras (z. B. Kompaktkameras, Super-Zoom-Kameras, digitale Spiegelreflex-Kameras (DSLR-Kameras)), eine Überwachungskamera, ein Überwachungssystem, das eine Kamera enthält, und so weiter eingebunden sein.
  • Bei verschiedenen Implementierungen beinhaltet das System 1300 eine Plattform 1302, die mit einer Anzeige 1320 verbunden ist. Die Plattform 1302 kann einen Inhalt aus einer Inhalte-Vorrichtung empfangen, wie zum Beispiel von einer Inhaltsdienstvorrichtung (oder - vorrichtungen) 1330 oder einer Inhaltsabgabevorrichtung (oder -vorrichtungen) 1340 oder anderen Content-Inhaltsquellen, wie zum Beispiel von Bildsensoren 1319 empfangen. Wie hier erörtert wird, kann die Plattform 1302 zum Beispiel Bilddaten von Bildsensoren 1319 oder einer beliebigen anderen Inhaltsquelle empfangen. Eine Navigationssteuereinheit 1350, die ein oder mehrere Navigationsmerkmale aufweist, kann verwendet werden, um zum Beispiel mit der Plattform 1302 und/oder der Anzeige 1320 zu interagieren. Jede dieser Komponenten wird unten ausführlicher beschrieben.
  • Bei verschiedenen Implementierungen kann die Plattform 1302 eine beliebige Kombination aus einem Chipsatz 1305, einem Prozessor 1310, einem Speicher 1312, einer Antenne 1313, einem Datenspeicher 1314, einem Grafiksubsystem 1315, Anwendungen 1316, einem Bildsignalprozessor 1317 und/oder einem Funkelement 1318 beinhalten. Der Chipsatz 1305 kann eine wechselseitige Kommunikation zwischen dem Prozessor 1310, dem Speicher 1312, dem Datenspeicher 1314, dem Grafiksubsystem 1315, den Anwendungen 1316, dem Bildsignalprozessor 1317 und/oder dem Funkelement 1318 bereitstellen. Zum Beispiel kann der Chipsatz 1305 einen (nicht dargestellten) Speicheradapter beinhalten, der in der Lage ist, eine wechselseitige Kommunikation mit dem Speicher 1314 bereitzustellen.
  • Der Prozessor 1310 kann als Prozessoren mit einem komplexen Befehlssatz (Complex Instruction Set Computer, CISC) oder als Prozessoren mit einem reduzierten Befehlssatz (Reduced Instruction Set Computer, RISC), als mit einem x86-Befehlssatz kompatible Prozessoren, als Mehrkern-Prozessor oder als ein beliebiger anderer Mikroprozessor oder als eine zentrale Verarbeitungseinheit (Central Processing Unit, CPU) implementiert werden. Bei verschiedenen Implementierungen kann der Prozessor 1310 ein oder mehrere Dual-Kern-Prozessoren, ein oder mehrere Dual-Kern-Mobilprozessoren und so weiter sein.
  • Der Speicher 1312 kann als eine flüchtige Speichervorrichtung, wie etwa, ohne auf diese beschränkt zu sein, ein Direktzugriffsspeicher (RAM), ein dynamischer Direktzugriffsspeicher (DRAM) oder ein statischer RAM (SRAM) implementiert sein.
  • Der Datenspeicher 1314 kann als eine nicht-flüchtige Speichervorrichtung, wie etwa, ohne auf diese beschränkt zu sein, ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk, eine interne Speichervorrichtung, eine angeschlossene Speichervorrichtung, ein Flash-Speicher, ein batteriegestützter SDRAM (synchroner DRAM) und/oder eine netzwerkzugängliche Speichervorrichtung implementiert sein. Bei verschiedenen Implementierungen kann der Datenspeicher 1314 eine Technologie beinhalten, um den durch die Speicherleistung verbesserten Schutz für wertvolle digitale Medien zu erhöhen, wenn zum Beispiel mehrere Festplatten enthalten sind.
  • Der Bildsignalprozessor 1317 kann als ein spezialisierter Digitalsignalprozessor oder dergleichen implementiert werden, der zur Bildverarbeitung verwendet wird. Bei einigen Beispielen kann der Bildsignalprozessor 1317 basierend auf einer Single-Instruction-Multiple-Data- oder einer Multiple-Instruction-Multiple-Data-Architektur oder dergleichen implementiert werden. Bei einigen Beispielen kann der Bildsignalprozessor 1317 als ein Medienprozessor charakterisiert sein. Wie hier erörtert wird, kann der Bildsignalprozessor 1317 basierend auf einer Ein-Chip-System-Architektur und/oder basierend auf einer Mehrkernarchitektur implementiert werden.
  • Das Grafiksubsystem 1315 kann ein Verarbeiten von Bildern, wie etwa von Stand- oder Videobildern, für eine Anzeige durchführen. Das Grafiksubsystem 1315 kann zum Beispiel eine Grafikverarbeitungseinheit (GPU) oder eine visuelle Verarbeitungseinheit (VPU) sein. Eine Analog- oder Digitalschnittstelle kann verwendet werden, um das Grafiksubsystem 1315 und die Anzeige 1320 kommunikativ miteinander zu verbinden. Die Schnittstelle kann zum Beispiel eine beliebige sein von: einer High-Definition-Multimedia-Interface (HDMI), einem DisplayPort, einer drahtlose HDMI und/oder Techniken, die mit einem drahtlosen HD kompatibel sind. Das Grafiksubsystem 1315 kann in den Prozessor 1310 oder den Chipsatz 1305 integriert sein. Bei einigen Implementierungen kann das Grafiksubsystem 1315 eine eigenständige Vorrichtung sein, die kommunikativ mit dem Chipsatz 1305 verbunden ist.
  • Die hier beschriebenen Grafik- und/oder Videoverarbeitungstechniken können in verschiedenen Hardware-Architekturen umgesetzt werden. Zum Beispiel können Grafik- und/oder Videofunktionalitäten in einen Chipsatz integriert sein. Alternativ dazu kann ein diskreter Grafik- und/oder Videoprozessor verwendet werden. Als einer weiteren Implementierung können die Grafik- und/oder Videofunktionen durch einen Universal-Prozessor einschließlich eines Mehrkernprozessors bereitgestellt werden. Bei weiteren Ausführungsformen können die Funktionen in einer Unterhaltungselektronikvorrichtung implementiert werden.
  • Die Funkeinheit 1318 kann ein oder mehrere Funkeinheiten beinhalten, die in der Lage sind, Signale unter Verwendung verschiedener geeigneter drahtloser Kommunikationstechniken zu übertragen und zu empfangen. Derartige Techniken können Kommunikationen zwischen einem oder mehreren drahtlosen Netzwerken einbeziehen. Zu den beispielhaften drahtlosen Netzwerken gehören (ohne auf diese beschränkt zu sein) drahtlose lokale Netzwerke (WLANs), drahtlose Netzwerke für den persönlichen Bereich (WPANs), drahtlose Stadtbereichsnetzwerke (WMANs), Mobilfunknetzwerke und Satellitennetzwerke. Beim Kommunizieren über diese Netzwerke kann die Funkeinheit 1318 gemäß einer beliebigen Version von einem oder mehreren anwendbaren Standards arbeiten.
  • Bei verschiedenen Implementierungen kann die Anzeige 1320 einen beliebigen fernsehartigen Monitor oder eine beliebige fernsehartige Anzeige beinhalten. Die Anzeige 1320 kann zum Beispiel einen Computeranzeigebildschirm, eine Touchscreen-Anzeige, einen Videomonitor, eine fernsehähnliche Vorrichtung und/oder einen Fernseher beinhalten. Die Anzeige 1320 kann digital und/oder analog sein. Bei verschiedenen Implementierungen kann die Anzeige 1320 eine holografische Anzeige sein. Die Anzeige 1320 kann auch eine transparente Oberfläche sein, die eine visuelle Projektion empfangen kann. Derartige Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekte übertragen. Zum Beispiel können derartige Projektionen eine visuelle Überlagerung für eine Anwendung einer mobilen erweiterten Realität (Mobile Augmented Reality, MAR) sein. Gesteuert von einer oder mehreren Softwareanwendungen 1316 kann die Plattform 1302 eine Benutzeroberfläche 1322 auf der Anzeige 1320 anzeigen.
  • Bei verschiedenen Implementierungen kann/können die Inhaltsdienstvorrichtung(en) 1330 durch einen beliebigen nationalen, internationalen und/oder unabhängigen Dienst gehostet werden und somit für die Plattform 1302 zum Beispiel über das Internet zugänglich sein. Die Inhaltsdienstvorrichtung(en) 1330 kann/können mit der Plattform 1302 und/oder der Anzeige 1320 verbunden sein. Die Plattform 1302 und/oder die Inhaltsdienstvorrichtung(en) 1330 können mit einem Netzwerk 1360 verbunden sein, um Medieninformationen zu und von dem Netzwerk 1360 zu kommunizieren (z.B. zu senden und/oder zu empfangen). Die Inhaltsabgabevorrichtung(en) 1340 kann/können ebenfalls mit der Plattform 1302 und/oder der Anzeige 1320 verbunden sein.
  • Zu den Bildsensoren 1319 können beliebige geeignete Bildsensoren gehören, die Bilddaten bereitstellen können, die auf einer Szene basieren. Zum Beispiel können zu den Bildsensoren 1319 ein Sensor auf der Basis einer ladungsgekoppelten Halbleitervorrichtung (CCD-Vorrichtung), ein Sensor auf der Basis eines komplementären Metalloxidhalbleiters (CMOS), ein Sensor auf der Basis eines N-Typ-Metalloxidhalbleiters (NMOS) oder Ähnliche gehören. Zum Beispiel kann zu den Bildsensoren 1319 jede beliebige Vorrichtung gehören, die Informationen einer Szene erkennen kann, um Bilddaten zu erzeugen.
  • Bei verschiedenen Implementierungen können die Inhaltsdienstvorrichtungen 1330 eine Kabelfernsehbox, einen Personal Computer, ein Netzwerk, ein Telefon, internetfähige Vorrichtungen oder ein internetfähiges Gerät, die in der Lage sind, digitale Informationen und/oder Inhalte zu liefern, und eine beliebige andere ähnliche Vorrichtung beinhalten, die in der Lage ist, einen Inhalt zwischen Inhaltsanbietern und der Plattform 1302 und/oder der Anzeige 1320 über das Netzwerk 1360 oder direkt unidirektional oder bidirektional zu kommunizieren. Es versteht sich, dass die Inhalte unidirektional und/oder bidirektional an eine und von einer beliebigen der Komponenten in dem System 1300 und einem Inhaltsanbieter über das Netzwerk 1360 kommuniziert werden können. Beispiele für die Inhalte können beliebige Medieninformationen beinhalten, einschließlich zum Beispiel Videos, Musik, medizinische und Spielinformationen und so weiter.
  • Die Inhaltsdienstvorrichtung(en) 1330 kann/können Inhalt, wie etwa Kabelfernsehprogramme empfangen, die Medieninformationen, digitale Informationen und/oder anderen Inhalt beinhalten. Beispiele für Inhaltsanbieter können beliebige Anbieter von Fernseh- oder Radio- oder Internetinhalten über Kabel oder Satellit einschließen. Die bereitgestellten Beispiele sind nicht so zu verstehen, dass sie Implementierungen gemäß der vorliegenden Offenbarung in irgendeiner Weise einschränken.
  • Bei verschiedenen Implementierungen kann die Plattform 1302 Steuersignale von der Navigationssteuereinheit 1350 mit einem oder mehreren Navigationsmerkmalen empfangen. Die Navigationsmerkmale der Navigationssteuereinheit 1350 können zum Beispiel verwendet werden, um mit der Benutzeroberfläche 1322 zu interagieren. Bei verschiedenen Ausführungsformen kann die Navigationssteuereinheit 1350 eine Zeigervorrichtung sein, die eine Computerhardwarekomponente (insbesondere eine Benutzeroberflächenvorrichtung) sein kann, die es einem Benutzer ermöglicht, räumliche (z.B. kontinuierliche und multidimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie etwa grafische Benutzeroberflächen (GUI) und Fernseher und Monitore, erlauben es dem Benutzer, unter Verwendung physischer Gesten Daten zu steuern und sie dem Computer oder Fernseher bereitzustellen.
  • Bewegungen der Navigationsmerkmale der Navigationssteuereinheit 1350 können auf einer Anzeige (z.B. der Anzeige 1320) durch Bewegungen eines Zeigers, Cursors, Fokusrings oder anderer visueller Indikatoren wiedergegeben werden, die auf der Anzeige angezeigt werden. Zum Beispiel können die sich in der Navigationssteuereinheit 1350 befindlichen durch die Softwareanwendungen 1316 gesteuerten Navigationsmerkmale virtuellen Navigationsmerkmalen zugeordnet werden, die zum Beispiel auf der Benutzeroberfläche 1322 angezeigt werden. Bei verschiedenen Ausführungsformen muss die Navigationssteuereinheit 1350 keine separate Komponente sein, sondern sie kann in die Plattform 1302 und/oder die Anzeige 1320 integriert sein. Die vorliegende Offenbarung ist jedoch nicht auf die Elemente oder auf den Kontext beschränkt, die hier dargestellt oder beschrieben werden.
  • Bei verschiedenen Implementierungen können (nicht gezeigte) Treiber eine Technologie beinhalten, um Benutzern zu ermöglichen, die Plattform 1302, wie zum Beispiel ein Fernsehgerät, sofort nach dem anfänglichen Hochfahren durch das Berühren einer Schaltfläche ein- und auszuschalten, wenn diese aktiviert ist. Eine Programmlogik kann es der Plattform 1302 erlauben, Inhalte an die Medienadapter oder andere Inhaltsdienstvorrichtungen 1330 oder Inhaltsabgabevorrichtungen 1340 zu streamen, selbst wenn die Plattform „ausgeschaltet“ ist. Außerdem kann der Chipsatz 1305 beispielsweise eine Hardware- und/oder Softwareunterstützung für ein 5.1-Raumklang-Audiosystem und/oder ein hochauflösendes 7.1-Raumklang-Audiosystem umfassen. Die Treiber können einen Grafiktreiber für integrierte Grafikplattformen beinhalten. Bei verschiedenen Ausführungsformen kann der Grafiktreiber eine Express-Grafikkarte für eine periphere Komponentenverbindung (Peripheral-Component-Interconnect Express graphics card, PCI-Express-Grafikkarte) umfassen.
  • Bei verschiedenen Implementierungen können eine oder mehrere beliebige der in dem System 1300 gezeigten Komponenten integriert sein. Zum Beispiel können die Plattform 1302 und die Inhaltsdienstvorrichtungen 1330 integriert sein oder können die Plattform 1302 und die Inhaltsabgabevorrichtungen 1340 integriert sein oder können die Plattform 1302, die Inhaltsdienstvorrichtungen 1330 und die Inhaltsabgabevorrichtung(en) 1340 integriert sein. Bei verschiedenen Ausführungsformen können die Plattform 1302 und die Anzeige 1320 eine integrierte Einheit sein. Zum Beispiel können die Anzeige 1320 und die Inhaltsdienstvorrichtungen 1330 integriert sein oder die Anzeige 1320 und die Inhaltsabgabevorrichtungen 1340 können integriert sein. Diese Beispiele sollen die vorliegende Offenbarung nicht beschränken.
  • Bei verschiedenen Ausführungsformen kann das System 1300 als ein drahtloses System, ein verdrahtetes System oder eine Kombination von beiden implementiert sein. Wenn es als ein drahtloses System implementiert ist, kann das System 1300 Komponenten und Schnittstellen beinhalten, die zum Kommunizieren über ein drahtloses gemeinsam genutztes Medium, wie etwa eine oder mehrere Antennen, Sender, Empfänger, Transceiver, Verstärker, Filter, Steuerlogiken und so weiter, geeignet sind. Ein Beispiel für gemeinsam genutzte drahtlose Medien kann Teile eines drahtlosen Spektrums, wie etwa das HF-Spektrum und so weiter, enthalten. Wenn es als ein verdrahtetes System implementiert ist, kann das System 1300 Komponenten und Schnittstellen beinhalten, die zum Kommunizieren über verdrahtete Kommunikationsmedien geeignet sind, wie etwa Eingabe/Ausgabe-Adapter (E/A-Adapter), physische Anschlüsse zum Verbinden des E/A-Adapters mit einem entsprechenden verdrahteten Kommunikationsmedium, eine Netzwerkschnittstellenkarte (NIC), eine Laufwerkssteuereinheit, eine Videosteuereinheit, eine Audiosteuereinheit und Ähnliche. Beispiele für verdrahtete Kommunikationsmedien können einen Draht, ein Kabel, Metallanschlusselemente, eine gedruckte Leiterplatte (PCB), eine Rückwandplatine, eine Schaltstruktur, ein Halbleitermaterial, ein verdrilltes Leitungspaar, ein Koaxialkabel, Glasfasern und so weiter beinhalten.
  • Die Plattform 1302 kann einen oder mehrere logische oder physische Kanäle zum Kommunizieren von Informationen einrichten. Die Informationen können Medieninformationen und Steuerinformationen enthalten. Die Medieninformationen können sich auf beliebige Daten beziehen, die einen für einen Benutzer bestimmten Inhalt repräsentieren. Die Beispiele von Inhalten können zum Beispiel Daten von einer Sprachkonversation, einer Videokonferenz, ein Streaming-Video, eine E-Mail-Nachricht, eine Voicemail-Nachricht, alphanumerische Symbole, eine Grafik, ein Bild, ein Video, einen Text und so weiter beinhalten. Die Daten von einer Sprachkonversation können zum Beispiel Sprachinformationen, stille Perioden, Hintergrundrauschen, Komfortrauschen, Töne und so weiter sein. Die Steuerinformationen können sich auf beliebige Daten beziehen, die Befehle, Anweisungen oder Steuerwörter repräsentieren, die für ein automatisiertes System bestimmt sind. Zum Beispiel können Steuerinformationen dazu verwendet werden, um Medieninformationen durch ein System zu leiten oder einen Knoten anzuweisen, die Medieninformationen auf eine vorbestimmte Weise zu verarbeiten. Die Ausführungsformen sind jedoch nicht auf die Elemente oder auf den Kontext beschränkt, die in der 13 gezeigt oder beschrieben werden.
  • Wie oben beschrieben, kann das System 1300 in verschiedenen physischen Weisen oder Formfaktoren ausgeführt werden. 14 veranschaulicht eine beispielhafte Vorrichtung 1400 mit kleinem Formfaktor, die gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung eingerichtet ist. Bei einigen Beispielen kann das System 1400 durch die Vorrichtung 1400 implementiert werden. Bei anderen Beispielen können andere hier erörterte Systeme, Komponenten oder Module oder Teile davon durch die Vorrichtung 1400 implementiert werden. Bei verschiedenen Ausführungsformen kann die Vorrichtung 1400 zum Beispiel als eine mobile Rechenvorrichtung implementiert sein, die Drahtlosfähigkeiten aufweist. Eine mobile Rechenvorrichtung kann sich auf eine beliebige Vorrichtung beziehen, die ein Verarbeitungssystem und eine mobile Stromquelle oder -versorgung, wie etwa eine oder mehrere Batterien aufweist.
  • Beispiele für eine mobile Rechenvorrichtung können einen Personal Computer (PC), einen Laptop-Computer, einen Ultra-Laptop-Computer, einen Tablet-Computer, ein Touchpad, einen tragbaren Computer, einen Handgerät-Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Mobiltelefon-/PDA-Kombination, eine intelligente Vorrichtung (z. B. ein Smartphone, ein Smart-Tablet oder einen mobilen Smart-Fernseher), eine mobile Internetvorrichtung (MID), eine Messaging-Vorrichtung, eine Datenkommunikationsvorrichtung, Kameras (z. B. Kompaktkameras, Superzoom-Kameras, digitale Spiegelreflexkameras (DSLR-Kameras)) und so weiter beinhalten.
  • Beispiele für eine mobile Rechenvorrichtung können auch Computer beinhalten, die dazu eingerichtet sind, in ein Kraftfahrzeug oder in einen Roboter implementiert zu werden oder von einer Person als Kleidung oder Ähnliches getragen zu werden, wie etwa ein Handgelenkcomputer, ein Fingercomputer, ein Ringcomputer, ein Brillencomputer, ein Gürtelclipcomputer, ein Armbandcomputer, ein Schuhcomputer, ein Kleidungscomputer und andere als Kleidung oder Ähnliches tragbare Computer. Bei verschiedenen Ausführungsformen kann eine mobile Rechenvorrichtung beispielsweise als ein Smartphone implementiert sein, das dazu in der Lage ist, Computeranwendungen sowie Sprachkommunikationen und/oder Datenkommunikationen auszuführen. Obwohl einige Ausführungsformen beispielhaft mit einer mobilen Rechenvorrichtung, die als ein Smartphone implementiert ist, beschrieben sein können, versteht es sich, dass auch andere Ausführungsformen unter Verwendung anderer drahtloser mobiler Rechenvorrichtungen implementiert werden können. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
  • Wie in 14 gezeigt wird, kann die Vorrichtung 1400 ein Gehäuse mit einer Vorderseite 1401 und einer Rückseite 1402 beinhalten. Die Vorrichtung 1400 weist eine Anzeige 1404, eine Eingabe/Ausgabe-Vorrichtung (E/A-Vorrichtung) 1406, eine Farbkamera 1421, eine Farbkamera 1422, einen Infrarotsender 1423 und eine integrierte Antenne 1408 auf. Wie hier erörtert wird, erhalten die Farbkamera 1421 und die Farbkamera 1422 bei einigen Ausführungsformen planare Bilder. Bei einigen Ausführungsformen beinhaltet die Vorrichtung 1400 keine Farbkamera 1421 und 1422 und die Vorrichtung 1400 erhält die Eingangsbilddaten (z.B. beliebige hier erörterte Eingangsbilddaten) von einer anderen Vorrichtung. Die Vorrichtung 1400 kann auch Navigationsmerkmale 1412 beinhalten. Die E/A-Vorrichtung 1406 kann eine beliebige geeignete E/A-Vorrichtung zum Eingeben von Informationen in eine mobile Rechenvorrichtung beinhalten. Zu den Beispielen für eine E/A-Vorrichtung 1406 können eine alphanumerische Tastatur, ein numerisches Tastenfeld, ein Touchpad, Eingabetasten, Schaltflächen, Schalter, Mikrofone, Lautsprecher, eine Spracherkennungsvorrichtung und eine Software usw. gehören. Informationen können auch mithilfe eines (nicht gezeigten) Mikrofons in die Vorrichtung 1400 eingegeben werden oder können durch eine Spracherkennungsvorrichtung digitalisiert werden. Wie gezeigt, kann die Vorrichtung 1400 die Farbkameras 1421, 1422 und einen Blitz 1410 beinhalten, der in die Rückseite 1402 (oder an einer anderen Stelle) der Vorrichtung 1400 integriert ist. Bei anderen Beispielen können die Farbkameras 1421, 1422 und der Blitz 1410 in die Vorderseite 1401 der Vorrichtung 1400 integriert sein oder es können sowohl Vorderseiten- als auch Rückseitensätze von Kameras bereitgestellt werden. Die Farbkameras 1421, 1422 und ein Blitz 1410 können Komponenten eines Kameramoduls sein, um Farbbilddaten mit einer IR-Texturkorrektur zu erzeugen, die zu einem Bild oder Streaming-Video verarbeitet werden können, die zum Beispiel an die Anzeige 1404 ausgegeben werden, und/oder die von der Vorrichtung 1400 über die Antenne 1408 zu einem fernen Ort kommuniziert werden.
  • Verschiedene Ausführungsformen können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beiden implementiert werden. Zu den Beispielen für Hardwareelemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z.B. Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Logikvorrichtungen (PLDs), digitale Signalprozessoren (DSPs), feldprogrammierbare Gate-Arrays (FPGAs), Logikgatter, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze und so weiter gehören. Zu den Beispielen für Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (APIs), Befehlssätze, Rechencodes, Computercodes, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon gehören. Das Bestimmen, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert ist, kann gemäß einer beliebigen Anzahl von Faktoren variieren, wie etwa einer gewünschten Rechenrate, Leistungspegeln, Wärmetoleranzen, eines Verarbeitungszyklusbudgets, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und anderen Gestaltungs- oder Leistungsfähigkeitseinschränkungen.
  • Ein oder mehrere Aspekte von mindestens einer Ausführungsform können durch repräsentative Anweisungen implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logiken innerhalb des Prozessors repräsentiert, die, wenn sie durch eine Maschine gelesen werden, die Maschine veranlassen, eine Logik herzustellen, um die hier beschriebenen Techniken durchzuführen. Derartige Repräsentationen, die als IP-Kerne bekannt sind, können auf einem gegenständlichen maschinenlesbaren Medium gespeichert sein und an verschiedene Kunden oder Herstellungsanlagen geliefert werden, um sie in die Fertigungsmaschinen zu laden, welche die Logik oder den Prozessor tatsächlich herstellen.
  • Obwohl gewisse hier dargelegte Merkmale mit Bezug auf verschiedene Implementierungen beschrieben wurden, ist diese Beschreibung nicht so zu verstehen, dass sie in einem beschränkenden Sinne ausgelegt werden. Daher werden verschiedene Modifikationen der hier beschriebenen Implementierungen sowie andere Implementierungen, die für den Fachmann offensichtlich sind, als innerhalb des Erfindungsgedankens und des Schutzumfangs der vorliegenden Offenbarung liegend angesehen.
  • Bei einer oder mehreren ersten Ausführungsformen umfasst ein Verfahren zum Erzeugen einer virtuellen Ansicht innerhalb einer 3D-Szene ein Empfangen eines 3D-Modells eines 3D-Objekts innerhalb der 3D-Szene; ein Erzeugen eines ersten Objektmaskenbildes und eines zweiten Objektmaskenbildes, wobei jedes des ersten und des zweiten Objektmaskenbildes eine 2D-Darstellung des 3D-Objekts umfasst, und wobei das erste und das zweite Objektmaskenbild, welche die erste und die zweite Bildebene der ersten und der zweiten Kamera repräsentieren, die an der 3D-Szene trainiert werden; ein Projizieren, basierend auf einer anfänglichen Position und Ausrichtung des 3D-Modells in der 3D-Szene, einer Vielzahl von 3D-Punkten des 3D-Modells auf die erste und die zweite Bildebene; und ein Bestimmen einer endgültigen Position und Orientierung des 3D-Modells in der 3D-Szene basierend auf einer Optimierung einer Kostenfunktion, die das erste und das zweite Objektmaskenbild mit den projizierten 3D-Punkten auf der ersten und der zweiten Bildebene vergleicht.
  • Eine oder mehrere zweite Ausführungsformen weisen zusätzlich zur ersten Ausführungsform ein Optimieren der Kostenfunktion auf, die ein Minimieren einer Summe von stückweise linearen Funktionen umfasst, die jeweils eine Summe von Differenzen zwischen einem Maximalwert des ersten und des zweiten Objektmaskenbildes umfassen, die sich von einem Wert des ersten und des zweiten Objektmaskenbildes unterscheiden, die Projektionen jedes aus der Vielzahl von 3D-Punkten auf das erste und das zweite Objektmaskenbild entsprechen.
  • Bei einer oder mehreren dritten Ausführungsformen umfasst das Projizieren jedes der Vielzahl von 3D-Punkten, zusätzlich zu der ersten oder zweiten Ausführungsform, ein Bestimmen einer 3D-Position jedes aus der Vielzahl von 3D-Punkten in der 3D-Szene unter Verwendung einer aktuellen Position und Orientierung des 3D-Modells und ein Projizieren von der 3D-Position auf das erste und das zweite Objektmaskenbild unter Verwendung einer ersten und einer zweiten Projektionsmatrix, die der ersten und der zweiten Bildebene entsprechen.
  • Bei einer oder mehreren vierten Ausführungsformen umfasst das Verfahren, zusätzlich zu einer der ersten bis dritten Ausführungsformen, ferner ein Auswählen der anfänglichen Position und Orientierung des 3D-Modells als eine vorherige endgültige Position und Orientierung des 3D-Modells in einer vorherigen Modellierung der 3D-Szene.
  • Bei einer oder mehreren fünften Ausführungsformen umfasst das Erzeugen des ersten und des zweiten Objektmaskenbildes, zusätzlich zu einer beliebigen der ersten bis vierten Ausführungsformen, ein Bestimmen eines ersten und eines zweiten binären Maskenbildes, die erste Pixelwerte für Pixel, die als innerhalb des 3D-Objekts liegend erachtet werden, und zweite Pixelwerte für Pixel umfassen, die als außerhalb des 3D-Objekts liegend erachtet werden, und ein Dilatieren des ersten und des zweiten binären Bildes, um das erste und das zweite Objektmaskenbild zu erzeugen, wobei das erste und das zweite Objektmaskenbild Graustufenbilder umfassen.
  • Bei einer oder mehreren sechsten Ausführungsformen umfasst das Bestimmen des ersten und des zweiten binären Bildes, zusätzlich zu einer beliebigen der ersten bis fünften Ausführungsformen, ein Anwenden eines neuronalen Faltungsnetzwerks auf ein erstes und ein zweites Quellbild, die über die erste und die zweite Kamera erhalten werden.
  • Bei einer oder mehreren siebten Ausführungsformen umfasst das Dilatieren, zusätzlich zu einer beliebigen der ersten bis sechsten Ausführungsformen, ein Erzeugen eines zunehmenden Gradienten in dem ersten segmentierten Bild von einem Teil der Pixel, die außerhalb des Objekts liegen, in Richtung auf die Pixel, die innerhalb des Objekts liegen.
  • Bei einer oder mehreren achten Ausführungsformen umfasst das Dilatieren, zusätzlich zu einer beliebigen der ersten bis siebten Ausführungsformen, ein Anwenden eines ersten Gradienten bzw. eines zweiten Gradienten als Reaktion auf einen ersten anfänglichen Positions- und Orientierungszuverlässigkeitswert bzw. einen zweiten anfänglichen Positions- und Orientierungszuverlässigkeitswert, der kleiner als der erste anfängliche Positions- und Orientierungszuverlässigkeitswert ist, wobei der erste Gradient eine größere Steigung einer Pixelwertänderung über einer Pixelabstandsänderung aufweist als der zweite Gradient.
  • Bei einer oder mehreren neunten Ausführungsformen umfasst das 3D-Modell, zusätzlich zu einer beliebigen der ersten bis achten Ausführungsformen, ein Netzobjektmodell, das eine Vielzahl von Indizes, die das 3D-Objekt repräsentieren, und Flächen zwischen den Indizes umfasst, und wobei die Vielzahl von 3D-Punkten die Punkte von den Flächen des Netzmodells umfassen.
  • Bei einer oder mehreren zehnten Ausführungsformen umfasst das 3D-Modell, zusätzlich zu einer beliebigen der ersten bis neunten Ausführungsformen, ein nicht starres 3D-Modell, das einen oder mehrere Freiheitsgrade für Bewegungen zwischen 3D-Segmenten des 3D-Modells umfasst, und wobei das Bestimmen der endgültigen Position und Orientierung des 3D-Modells ferner ein Bestimmen endgültiger Parameter für den einen oder die mehreren Freiheitsgrade für die Bewegungen basierend auf der Optimierung der Kostenfunktion umfasst.
  • Bei einer oder mehreren elften Ausführungsformen umfasst das Verfahren, zusätzlich zu einer beliebigen der ersten bis zehnten Ausführungsformen, ferner ein Erzeugen der virtuellen Ansicht innerhalb der 3D-Szene mindestens teilweise basierend auf der endgültigen Position und Orientierung des 3D-Modells in der 3D-Szene.
  • Bei einer oder mehreren zwölften Ausführungsformen weist eine Vorrichtung oder ein System einen Speicher und einen oder mehrere Prozessoren zum Durchführen eines Verfahrens gemäß einer der obigen Ausführungsformen auf.
  • Bei einer oder mehreren dreizehnten Ausführungsformen weist mindestens ein maschinenlesbares Medium eine Vielzahl von Anweisungen auf, die als Reaktion darauf, dass sie in einer Rechenvorrichtung ausgeführt werden, veranlassen, dass die Rechenvorrichtung ein Verfahren gemäß einer der obigen Ausführungsformen durchführt.
  • Bei einer oder mehreren vierzehnten Ausführungsformen weist eine Einrichtung ein Element zum Durchführen eines Verfahrens gemäß einer der obigen Ausführungsformen auf.
  • Es versteht sich, dass die Ausführungsformen nicht auf die hier beschriebenen Ausführungsformen beschränkt sind, sondern mit Modifikationen und Abänderungen ausgeführt werden können, ohne vom Schutzumfang der beigefügten Ansprüche abzuweichen. Zum Beispiel können die obigen Ausführungsformen spezielle Kombinationen von Merkmalen beinhalten. Die obigen Ausführungsformen sind jedoch in dieser Hinsicht nicht beschränkt und bei verschiedenen Implementierungen können die obigen Ausführungsformen das Durchführen lediglich eines Teils dieser Merkmale, das Durchführen einer anderen Reihenfolge derartiger Merkmale, ein Durchführen in einer anderen Kombination dieser Merkmale und/oder das Durchführen von zusätzlichen Merkmalen beinhalten, die verschieden von den explizit aufgelisteten Merkmalen sind. Der Schutzumfang der Ausführungsformen sollte daher unter Bezugnahme auf die beigefügten Ansprüche zusammen mit dem vollen Schutzumfang von Äquivalenzen bestimmt werden, zu denen diese Ansprüche berechtigen.

Claims (24)

  1. System zum Erzeugen einer virtuellen Ansicht innerhalb einer 3D-Szene, umfassend: einen Speicher zum Speichern eines 3D-Modells eines 3D-Objekts innerhalb der 3D-Szene; und einen oder mehrere Prozessoren, die mit dem Speicher verbunden sind, wobei der eine oder die mehreren Prozessoren ausgelegt sind zum: Erzeugen eines ersten Objektmaskenbildes und eines zweiten Objektmaskenbildes, wobei jedes des ersten und des zweiten Objektmaskenbildes eine 2D-Darstellung des 3D-Objekts umfasst, und wobei das erste und das zweite Objektmaskenbild eine erste und eine zweite Bildebene einer ersten und einer zweiten Kamera repräsentieren, die an der 3D-Szene trainiert werden; Projizieren, basierend auf einer anfänglichen Position und Orientierung des 3D-Modells in der 3D-Szene, einer Vielzahl von 3D-Punkten des 3D-Modells auf die erste und zweite Bildebene; und Bestimmen einer endgültigen Position und Orientierung des 3D-Modells in der 3D-Szene basierend auf einer Optimierung einer Kostenfunktion, die das erste und das zweite Objektmaskenbild mit den projizierten 3D-Punkten auf der ersten und der zweiten Bildebene vergleicht.
  2. System nach Anspruch 1, wobei das Optimieren der Kostenfunktion ein Minimieren einer Summe von stückweise linearen Funktionen umfasst, die jeweils eine Summe von Differenzen zwischen einem Maximalwert des ersten und des zweiten Objektmaskenbildes umfassen, die sich von einem Wert des ersten und des zweiten Objektmaskenbildes unterscheiden, die Projektionen von jedem aus der Vielzahl von 3D-Punkten auf das erste und das zweite Objektmaskenbild entsprechen.
  3. System nach Anspruch 2, wobei das Projizieren von jedem aus der Vielzahl von 3D-Punkten ein Bestimmen einer 3D-Position von jedem aus der Vielzahl von 3D-Punkten in der 3D-Szene unter Verwendung einer aktuellen Position und Orientierung des 3D-Modells und ein Projizieren von der 3D-Position auf das erste und das zweite Objektmaskenbild unter Verwendung einer ersten und einer zweiten Projektionsmatrix umfasst, die der ersten und der zweiten Bildebene entsprechen.
  4. System nach einem der Ansprüche 1 bis 3, das ferner umfasst, dass der eine oder die mehreren Prozessoren die anfängliche Position und Orientierung des 3D-Modells als eine vorherige endgültige Position und Orientierung des 3D-Modells in einer vorherigen Modellierung der 3D-Szene auswählt.
  5. System nach einem der Ansprüche 1 bis 4, wobei der eine oder die mehreren Prozessoren zum Erzeugen des ersten und des zweiten Objektmaskenbildes den einen oder die mehreren Prozessoren umfasst, um ein erstes und ein zweites binäres Maskenbild zu bestimmen, die erste Pixelwerte für Pixel, die als innerhalb des 3D-Objekts liegend erachtet werden, und zweite Pixelwerte für Pixel umfasst, die als außerhalb des 3D-Objekts liegend erachtet werden, und das erste und das zweite binäre Bild zu dilatieren, um das erste und das zweite Objektmaskenbild zu erzeugen, wobei das erste und das zweite Objektmaskenbild Graustufenbilder umfassen.
  6. System nach Anspruch 5, wobei der eine oder die mehreren Prozessoren zum Bestimmen des ersten und des zweiten binären Bildes ein Anwenden eines neuronalen Faltungsnetzwerks auf erste und zweite Quellbilder umfassen, die über die erste und die zweite Kamera erhalten werden.
  7. System nach Anspruch 5, wobei der eine oder die mehreren Prozessoren zum Dilatieren umfassen, dass der eine oder die mehreren Prozessoren einen zunehmenden Gradienten in dem ersten segmentierten Bild in einem Teil der Pixel außerhalb des Objekts in Richtung auf Pixeln innerhalb des Objekts erzeugen.
  8. System nach Anspruch 7, wobei der eine oder die mehreren Prozessoren zum Dilatieren den einen oder die mehreren Prozessoren umfassen, um einen ersten Gradienten bzw. einen zweiten Gradienten als Reaktion auf einen ersten anfänglichen Positions- und Orientierungszuverlässigkeitswert bzw. einen zweiten anfänglichen Positions- und Orientierungszuverlässigkeitswert anzuwenden, der kleiner als der erste anfängliche Positions- und Orientierungszuverlässigkeitswert ist, wobei der erste Gradient eine größere Steigung einer Pixelwertänderung über einer Pixelabstandsänderung aufweist als der zweite Gradient.
  9. System nach einem der Ansprüche 1 bis 8, wobei das 3D-Modell ein Netzobjektmodell umfasst, das eine Vielzahl von Indizes, die für das 3D-Objekt repräsentativ sind, und Flächen zwischen den Indizes umfasst, und wobei die Vielzahl von 3D-Punkten die Punkte von den Flächen des Netzmodells umfasst.
  10. System nach einem der Ansprüche 1 bis 9, wobei das 3D-Modell ein nicht-starres 3D-Modell umfasst, das einen oder mehrere Freiheitsgrade für Bewegungen zwischen 3D-Segmenten des 3D-Modells umfasst, und wobei der einen oder die mehreren Prozessoren zum Bestimmen der endgültigen Position und Orientierung des 3D-Modells ferner umfasst, dass der eine oder die mehreren Prozessoren einen endgültigen Parameter für den einen oder die mehreren Freiheitsgrade für die Bewegungen basierend auf einer Optimierung der Kostenfunktion bestimmen.
  11. System nach einem der Ansprüche 1 bis 10, wobei der eine oder die mehreren Prozessoren ausgelegt sind zum: Erzeugen der virtuellen Ansicht innerhalb der 3D-Szene zumindest teilweise basierend auf der endgültigen Position und Orientierung des 3D-Modells in der 3D-Szene.
  12. Verfahren zum Erzeugen einer virtuellen Ansicht innerhalb einer 3D-Szene, umfassend: Empfangen eines 3D-Modells eines 3D-Objekts innerhalb der 3D-Szene; Erzeugen eines ersten Objektmaskenbildes und eines zweiten Objektmaskenbildes, wobei jedes des ersten und des zweiten Objektmaskenbildes eine 2D-Darstellung des 3D-Objekts umfasst, und wobei das erste und zweite Objektmaskenbild eine erste und eine zweite Bildebene einer ersten und einer zweiten Kamera darstellen, die an der 3D-Szene trainiert werden; Projizieren, basierend auf einer anfänglichen Position und Orientierung des 3D-Modells in der 3D-Szene, einer Vielzahl von 3D-Punkten des 3D-Modells auf die erste und die zweite Bildebene; und Bestimmen einer endgültigen Position und Orientierung des 3D-Modells in der 3D-Szene basierend auf einer Optimierung einer Kostenfunktion, die das erste und das zweite Objektmaskenbild mit den projizierten 3D-Punkten auf der ersten und der zweiten Bildebene vergleicht.
  13. Verfahren nach Anspruch 12, wobei das Optimieren der Kostenfunktion ein Minimieren einer Summe von stückweise linearen Funktionen umfasst, die jeweils eine Summe von Differenzen zwischen einem Maximalwert des ersten und des zweiten Objektmaskenbildes, die sich von einem Wert des ersten und des zweiten Objektmaskenbildes unterscheiden, die den Projektionen von jedem aus der Vielzahl von 3D-Punkten auf das erste und das zweite Objektmaskenbild entsprechen.
  14. Verfahren nach Anspruch 12, wobei das Erzeugen des ersten und des zweiten Objektmaskenbildes ein Bestimmen eines ersten und eines zweiten binären Maskenbildes, die erste Pixelwerte für Pixel, die als innerhalb des 3D-Objekts liegend betrachtet werden, und zweite Pixelwerte für Pixel umfassen, die als außerhalb des 3D-Objekts liegend betrachtet werden, und ein Dilatieren des ersten und des zweiten binären Bildes umfasst, um das erste und das zweite Objektmaskenbild zu erzeugen, wobei das erste und das zweite Objektmaskenbild Graustufenbilder umfassen.
  15. Verfahren nach Anspruch 14, wobei das Dilatieren ein Erzeugen eines zunehmenden Gradienten in dem ersten segmentierten Bild in einem Teil der Pixel außerhalb des Objekts in Richtung auf die Pixel innerhalb des Objekts umfasst, und wobei das Dilatieren ein Anwenden eines ersten Gradienten bzw. eines zweiten Gradienten als Reaktion auf einen ersten anfänglichen Positions- und Orientierungszuverlässigkeitswert bzw. oder einen zweiten anfänglichen Positions- und Orientierungszuverlässigkeitswert, der kleiner als der erste anfängliche Positions- und Orientierungszuverlässigkeitswert ist, wobei der erste Gradient eine größere Steigung einer Pixelwertänderung über einer Pixelabstandsänderung aufweist als der zweite Gradient.
  16. Verfahren nach einem der Ansprüche 12 bis 15, wobei das 3D-Modell ein nicht-starres 3D-Modell umfasst, das einen oder mehrere Freiheitsgrade für Bewegungen zwischen 3D-Segmenten des 3D-Modells umfasst, und wobei das Bestimmen der endgültigen Position und Orientierung des 3D-Modells ferner ein Bestimmen endgültiger Parameter für den einen oder die mehreren Freiheitsgrade für die Bewegungen basierend auf einer Optimierung der Kostenfunktion umfasst.
  17. Maschinenlesbares Medium, das eine Vielzahl von Anweisungen umfasst, die als Reaktion darauf, dass sie auf einer Rechenvorrichtung ausgeführt werden, veranlassen, dass die Rechenvorrichtung eine virtuelle Ansicht innerhalb einer 3D-Szene erzeugt durch: Empfangen eines 3D-Modells eines 3D-Objekts innerhalb der 3D-Szene; Erzeugen eines ersten Objektmaskenbildes und eines zweiten Objektmaskenbildes, wobei jedes des ersten und des zweiten Objektmaskenbildes eine 2D-Darstellung des 3D-Objekts umfasst, und wobei das erste und zweite Objektmaskenbild eine erste und eine zweite Bildebene einer ersten und einer zweiten Kamera darstellen, die an der 3D-Szene trainiert werden; Projizieren, basierend auf einer anfänglichen Position und Orientierung des 3D-Modells in der 3D-Szene, einer Vielzahl von 3D-Punkten des 3D-Modells auf die erste und die zweite Bildebene; und Bestimmen einer endgültigen Position und Orientierung des 3D-Modells in der 3D-Szene basierend auf einer Optimierung einer Kostenfunktion, die das erste und das zweite Objektmaskenbild mit den projizierten 3D-Punkten auf der ersten und der zweiten Bildebene vergleicht.
  18. Maschinenlesbares Medium nach Anspruch 17, wobei das Optimieren der Kostenfunktion ein Minimieren einer Summe von stückweise linearen Funktionen umfasst, die jeweils eine Summe von Differenzen zwischen einem Maximalwert des ersten und des zweiten Objektmaskenbildes umfassen, die sich von einem Wert des ersten und des zweiten Objektmaskenbildes unterscheiden, die Projektionen von jedem aus der Vielzahl von 3D-Punkten auf das erste und das zweite Objektmaskenbild entsprechen.
  19. Maschinenlesbares Medium nach Anspruch 17, wobei das Erzeugen des ersten und des zweiten Objektmaskenbildes ein Bestimmen eines ersten und eines zweiten binären Maskenbildes, die erste Pixelwerte für Pixel, die als innerhalb des 3D-Objekts liegend betrachtet werden, und zweite Pixelwerte für Pixel umfassen, die als außerhalb des 3D-Objekts liegend betrachtet werden, und ein Dilatieren des ersten und des zweiten binären Bildes umfasst, um das erste und das zweite Objektmaskenbild zu erzeugen, wobei das erste und das zweite Objektmaskenbild Graustufenbilder umfassen.
  20. Maschinenlesbares Medium nach Anspruch 19, wobei das Dilatieren ein Erzeugen eines zunehmenden Gradienten in dem ersten segmentierten Bild in einem Teil der Pixel außerhalb des Objekts in Richtung auf die Pixel innerhalb des Objekts umfasst und wobei das Dilatieren ein Anwenden eines ersten Gradienten bzw. eines zweiten Gradienten als Reaktion auf einen ersten anfänglichen Positions- und Orientierungszuverlässigkeitswert bzw. eines zweiten anfänglichen Positions- und Orientierungszuverlässigkeitswert, der kleiner als der erste anfängliche Positions- und Orientierungszuverlässigkeitswert ist, wobei der erste Gradient eine größere Steigung einer Pixelwertänderung über einer Pixelabstandsänderung aufweist als der zweite Gradient.
  21. System, umfassend: ein Element zum Empfangen eines 3D-Modells eines 3D-Objekts innerhalb der 3D-Szene; ein Element zum Erzeugen eines ersten Objektmaskenbildes und eines zweiten Objektmaskenbildes, wobei jedes des ersten und des zweiten Objektmaskenbildes eine 2D-Darstellung des 3D-Objekts umfasst und wobei das erste und das zweite Objektmaskenbild eine erste und eine zweite Bildebene einer ersten und einer zweiten Kamera darstellen, die an der 3D-Szene trainiert werden; ein Element zum Projizieren, basierend auf einer anfänglichen Position und Orientierung des 3D-Modells in der 3D-Szene, einer Vielzahl von 3D-Punkten des 3D-Modells auf die erste und die zweite Bildebene; und ein Element zum Bestimmen einer endgültigen Position und Orientierung des 3D-Modells in der 3D-Szene basierend auf einer Optimierung einer Kostenfunktion, die das erste und das zweite Objektmaskenbild mit den projizierten 3D-Punkten auf der ersten und der zweiten Bildebene vergleicht.
  22. System nach Anspruch 21, wobei das Optimieren der Kostenfunktion ein Minimieren einer Summe von stückweise linearen Funktionen umfasst, die jeweils eine Summe von Differenzen zwischen einem Maximalwert des ersten und des zweiten Objektmaskenbildes umfassen, die sich von einem Wert des ersten und des zweiten Objektmaskenbildes unterscheiden, die Projektionen von jedem aus der Vielzahl von 3D-Punkten auf das erste und das zweite Objektmaskenbild entsprechen.
  23. System nach Anspruch 21, wobei das Element zum Erzeugen des ersten und des zweiten Objektmaskenbildes ein Element zum Bestimmen eines ersten und eines zweiten binären Maskenbildes, die erste Pixelwerte für Pixel, die als innerhalb des 3D-Objekts liegend betrachtet werden, und zweite Pixelwerte für Pixel umfassen, die als außerhalb des 3D-Objekts liegend betrachtet werden, und ein Element zum Dilatieren der ersten und zweiten binären Bilder umfasst, um das erste und das zweite Objektmaskenbild zu erzeugen, wobei das erste und das zweite Objektmaskenbild Graustufenbilder umfassen.
  24. System nach Anspruch 23, wobei das Element zum Dilatieren ein Element zum Erzeugen eines zunehmenden Gradienten in dem ersten segmentierten Bild in einem Teil der Pixel außerhalb des Objekts in Richtung auf die Pixel innerhalb des Objekts umfasst, und wobei das Element zum Dilatieren ein Element zum Anwenden eines ersten Gradienten bzw. eines zweiten Gradienten als Reaktion auf einen ersten anfänglichen Positions- und Orientierungszuverlässigkeitswert bzw. einen zweiten anfänglichen Positions- und Orientierungszuverlässigkeitswert umfasst, der kleiner als der erste anfängliche Positions- und Orientierungszuverlässigkeitswert ist, wobei der erste Gradient eine größere Steigung einer Pixelwertänderung über einer Pixelabstandsänderung aufweist als der zweite Gradient.
DE102021118479.7A 2020-08-20 2021-07-16 Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung Pending DE102021118479A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/998,333 US11880939B2 (en) 2020-08-20 2020-08-20 Embedding complex 3D objects into an augmented reality scene using image segmentation
US16/998,333 2020-08-20

Publications (1)

Publication Number Publication Date
DE102021118479A1 true DE102021118479A1 (de) 2022-02-24

Family

ID=73550296

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021118479.7A Pending DE102021118479A1 (de) 2020-08-20 2021-07-16 Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung

Country Status (4)

Country Link
US (1) US11880939B2 (de)
CN (1) CN114078135A (de)
DE (1) DE102021118479A1 (de)
GB (1) GB2602180A (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11465279B2 (en) * 2018-11-29 2022-10-11 X Development Llc Robot base position planning
CN114730476A (zh) * 2019-12-03 2022-07-08 美国西门子医疗***股份有限公司 有限角度重建的网络确定
US12003792B2 (en) * 2020-12-08 2024-06-04 Tencent America LLC Adaptation of 2D video for streaming to heterogenous client end-points
US11943271B2 (en) 2020-12-17 2024-03-26 Tencent America LLC Reference of neural network model by immersive media for adaptation of media for streaming to heterogenous client end-points
DE102021201550A1 (de) * 2021-02-18 2022-08-18 Psa Automobiles Sa Verfahren zum Betreiben eines hochauflösenden Projektionsscheinwerfers und Projektionsscheinwerfersystem für ein Kraftfahrzeug
US11527047B2 (en) 2021-03-11 2022-12-13 Quintar, Inc. Augmented reality system for viewing an event with distributed computing
US12003806B2 (en) * 2021-03-11 2024-06-04 Quintar, Inc. Augmented reality system for viewing an event with multiple coordinate systems and automatically generated model
US11645819B2 (en) 2021-03-11 2023-05-09 Quintar, Inc. Augmented reality system for viewing an event with mode based on crowd sourced images
US11657578B2 (en) 2021-03-11 2023-05-23 Quintar, Inc. Registration for augmented reality system for viewing an event
US11845184B2 (en) * 2022-04-18 2023-12-19 Dextrous Robotics, Inc. System and/or method for grasping objects

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050190966A1 (en) * 2002-08-08 2005-09-01 Etienne-Cummings Ralph R. Self-contained integrated color processing imager
US8682063B2 (en) * 2010-11-24 2014-03-25 Adobe Systems Incorporated Methods and apparatus for dynamic color flow modeling
US10778949B2 (en) * 2012-04-06 2020-09-15 Adobe Inc. Robust video-based camera rotation estimation
JP6333871B2 (ja) * 2016-02-25 2018-05-30 ファナック株式会社 入力画像から検出した対象物を表示する画像処理装置
US10290111B2 (en) * 2016-07-26 2019-05-14 Qualcomm Incorporated Systems and methods for compositing images
US10885636B2 (en) * 2017-11-07 2021-01-05 Electronics And Telecommunications Research Institute Object segmentation apparatus and method using Gaussian mixture model and total variation
US10949960B2 (en) * 2019-06-20 2021-03-16 Intel Corporation Pose synthesis in unseen human poses

Also Published As

Publication number Publication date
US11880939B2 (en) 2024-01-23
GB2602180A (en) 2022-06-22
CN114078135A (zh) 2022-02-22
US20200380779A1 (en) 2020-12-03
GB202110434D0 (en) 2021-09-01

Similar Documents

Publication Publication Date Title
DE102021118479A1 (de) Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung
DE102019216136A1 (de) Verfahren und system zur 3d-rekonstruktion mit volumenbasierter filterung zur bildverarbeitung
DE102020125612A1 (de) Kontinuierliche lokale 3d-rekonstruktionsverfeinerung in video
DE102020123304A1 (de) Tiefes lernen für engmaschige semantische segmentierung in video mit automatisierter interaktivität und verbesserter zeitlicher kohärenz
DE102020125197A1 (de) Feinkörnige objektsegmentierung in video mit tiefen merkmalen und graphischen mehrebenenmodellen
DE102018132245A1 (de) Verfahren und System zur rekurrenten semantischen Segmentierung zur Bildverarbeitung
Ancuti et al. Single-scale fusion: An effective approach to merging images
DE112020003794T5 (de) Tiefenbewusste Fotobearbeitung
DE102018130924A1 (de) Systeme und Verfahren zur dynamischen Gesichtsanalyse mittels eines rekurrenten neuronalen Netzes
DE102020129800A1 (de) Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen
DE112018001050T5 (de) System und verfahren zur virtuell erweiterten visuellen gleichzeitigen lokalisierung und kartographierung
DE102018111407A1 (de) Methode zum maschinellen lernen für automatisches modellieren von mehrwertigen ausgaben
DE112017002119T5 (de) Augenkontaktkorrektur in Echtzeit unter Verwendung von auf neuronalen Netzwerken basierendem maschinellem Lernen
DE102015010096A1 (de) Konfigurationseinstellungen einer Digitalkamera zur Tiefenkarten-Erzeugung
DE102020202059A1 (de) Mehrdurchgangs-zusatzwerkzeug zur kohärenten und vollständigen ansichtssynthese
DE102015107872A1 (de) Neu beleuchtbare Textur zur Verwendung beim Rendern eines Bildes
DE102004049676A1 (de) Verfahren zur rechnergestützten Bewegungsschätzung in einer Vielzahl von zeitlich aufeinander folgenden digitalen Bildern, Anordnung zur rechnergestützten Bewegungsschätzung, Computerprogramm-Element und computerlesbares Speichermedium
DE112018007730T5 (de) 3d objekterkennung unter verwendung von 3d konvolutionalen neuronalen netzen mit tiefenbasierten multiskalierungsfiltern
DE102018130086A1 (de) Mehrkameraprozessor mit merkmalsabgleich
DE102021119882A1 (de) Videohintergrundschätzung unter verwendung von räumlich-zeitlichen modellen
DE102020200310A1 (de) Verfahren und System zur Dunstreduzierung für die Bildverarbeitung
DE112019001702T5 (de) Verfahren, systeme, herstellungsgegenstände und vorrichtungen zur erzeugung digitaler szenen
DE102019216979A1 (de) Oberflächenrekonstruktion für interaktive augmented reality
DE102021125897A1 (de) History-blockieren zum entrauschen dynamischer raytracing-szenen unter verwendung zeitlicher anhäufung
DE102021109050A1 (de) Durch ein neuronales generative adversarial netzwerk unterstützte videokompression und -übertragung